社区导航

 

搜索
查看: 537|回复: 22

[求助] 单片机寄存器地址,为什么有些是00H,有些是0000H?有区别吗?80H到FFH有多少个地...

[复制链接]

1048

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2020-6-23 10:57 | 显示全部楼层 |阅读模式

单片机寄存器地址,为什么有些是00H,有些是0000H?有区别吗?80H到FFH有多少个地址怎么计算呢?

此帖出自单片机论坛
QQ图片20200623104617.png

回复

使用道具 举报

1297

TA的帖子

1

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2020-6-23 11:22 | 显示全部楼层

单纯就数值来讲,00H 和 0000H 都是0.  在汇编里面写 0, 0H, 00H, 0000H ,或者C语言里面写 0, 0x0,  0x00,  0x0000 是没有区别的。

又比如 6月5日,可能会在电子设备上显示成 06月05日,那表示的意义是一样的。

你引用的这里写成 00H, 0000H 这样子,是为了暗示这个值用于8位或者16位的寄存器、地址之类的表示。

点评

恩恩。讲得挺好的。还有, 00H, 0000H这个能看出是多少位的寄存器不 00H为什么一眼就能看出是8位    详情 回复 发表于 2020-6-23 14:27

回复

使用道具 举报

1万

TA的帖子

0

TA的资源

超级版主

Rank: 6Rank: 6

发表于 2020-6-23 11:24 | 显示全部楼层

8051单片机,片内RAM地址从0到127,当然用一字节表示就够了。8052单片机,片内RAM地址从0到255,一字节也够了。

程序存储器地址从0到65535,当然必须用两个字节表示。


回复

使用道具 举报

1297

TA的帖子

1

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2020-6-23 11:27 | 显示全部楼层

80H 到 FFH,  就是 FFH-80H+1 = 80H (十进制128)个地址。两个地址数值相减再加1就得到答案了。

点评

要换算成十进制再相减吗  详情 回复 发表于 2020-6-23 14:28
从楼主贴出的图看,片内RAM地址直接用高半段的FFH减去低半段的7FH,正好。  详情 回复 发表于 2020-6-23 11:47

回复

使用道具 举报

1万

TA的帖子

0

TA的资源

超级版主

Rank: 6Rank: 6

发表于 2020-6-23 11:28 | 显示全部楼层

“80H到FFH有多少个地址怎么计算呢?”

前一回复已经说明地址从00H到FFH,一共是256字节,那么80H到FFH是256的一半。

点评

256是怎么计算来的  2^8次方?  详情 回复 发表于 2020-6-23 14:30
一个字节就是一个地址是吗    详情 回复 发表于 2020-6-23 14:29

回复

使用道具 举报

1万

TA的帖子

0

TA的资源

超级版主

Rank: 6Rank: 6

发表于 2020-6-23 11:29 | 显示全部楼层

“怎么计算呢?”

对你来说,把十六进制转换成十进制计算吧。


回复

使用道具 举报

1万

TA的帖子

0

TA的资源

超级版主

Rank: 6Rank: 6

发表于 2020-6-23 11:47 | 显示全部楼层
cruelfox 发表于 2020-6-23 11:27 80H 到 FFH,  就是 FFH-80H+1 = 80H (十进制128)个地址。两个地址数值相减再加1就得到答案了。

从楼主贴出的图看,片内RAM地址直接用高半段的FFH减去低半段的7FH,正好。


回复

使用道具 举报

1048

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2020-6-23 14:27 | 显示全部楼层
cruelfox 发表于 2020-6-23 11:22 单纯就数值来讲,00H 和 0000H 都是0.  在汇编里面写 0, 0H, 00H, 0000H ,或者C语言里面写 0, 0x0, & ...

恩恩。讲得挺好的。还有, 00H, 0000H这个能看出是多少位的寄存器不 00H为什么一眼就能看出是8位  

点评

确切说是不能。 你想我们日常写数字若非要用0开头是什么场合?比如快递三轮车编号 00245,就暗示了这个编号系统的范围是 5 位数能表示的范围,暗示这个地区可能有超过一万辆这类三轮车——但不一  详情 回复 发表于 2020-6-23 15:51

回复

使用道具 举报

1048

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2020-6-23 14:28 | 显示全部楼层
cruelfox 发表于 2020-6-23 11:27 80H 到 FFH,  就是 FFH-80H+1 = 80H (十进制128)个地址。两个地址数值相减再加1就得到答案了。

要换算成十进制再相减吗


回复

使用道具 举报

1048

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2020-6-23 14:29 | 显示全部楼层
maychang 发表于 2020-6-23 11:28 “80H到FFH有多少个地址怎么计算呢?” 前一回复已经说明地址从00H到FFH,一共是256字节,那 ...

一个字节就是一个地址是吗  

点评

“一个字节就是一个地址是吗 ” 不一定。对256个地址(00H~FFH,或者0~255)来说,是一字节。对65536个地址(0000H~FFFFH,或者0~65535)来说,是二字节。 当然,不够256个,例如8031单片机的RAM,  详情 回复 发表于 2020-6-23 15:06

回复

使用道具 举报

1048

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2020-6-23 14:30 | 显示全部楼层
maychang 发表于 2020-6-23 11:28 “80H到FFH有多少个地址怎么计算呢?” 前一回复已经说明地址从00H到FFH,一共是256字节,那 ...

256是怎么计算来的  2^8次方?

点评

“256是怎么计算来的  2^8次方?” 是的。  详情 回复 发表于 2020-6-23 15:08

回复

使用道具 举报

1万

TA的帖子

0

TA的资源

超级版主

Rank: 6Rank: 6

发表于 2020-6-23 15:06 | 显示全部楼层
QWE4562009 发表于 2020-6-23 14:29 一个字节就是一个地址是吗  

“一个字节就是一个地址是吗 ”

不一定。对256个地址(00H~FFH,或者0~255)来说,是一字节。对65536个地址(0000H~FFFFH,或者0~65535)来说,是二字节。

当然,不够256个,例如8031单片机的RAM,只有00H~7FH,那也要占一字节。对51系列单片机来说,外部RAM可能只占用了很少一部分地址,例如可能只有0000H~03FFH,那么地址也需要二字节。

点评

00H~7FH,那也要占一字节------------------这个怎么是一字节?怎么看出来只占了一字节啊  这个范围是128个字节啊  详情 回复 发表于 2020-6-23 17:53

回复

使用道具 举报

1万

TA的帖子

0

TA的资源

超级版主

Rank: 6Rank: 6

发表于 2020-6-23 15:08 | 显示全部楼层
QWE4562009 发表于 2020-6-23 14:30 256是怎么计算来的  2^8次方?

“256是怎么计算来的  2^8次方?”

是的。

点评

FF换算成十进制是255   详情 回复 发表于 2020-6-23 17:54

回复

使用道具 举报

1297

TA的帖子

1

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2020-6-23 15:51 | 显示全部楼层
QWE4562009 发表于 2020-6-23 14:27 恩恩。讲得挺好的。还有, 00H, 0000H这个能看出是多少位的寄存器不 00H为什么一眼就能看出是8位 &n ...

确切说是不能。

你想我们日常写数字若非要用0开头是什么场合?比如快递三轮车编号 00245,就暗示了这个编号系统的范围是 5 位数能表示的范围,暗示这个地区可能有超过一万辆这类三轮车——但不一定有这么多。

一个十六进制的符号(0,1,...到 F)能表示16个数值。用2个这样符号书写的数字表示整数范围是0~255,  用4个可表示的范围是0~65535.  但是寄存器是多少位(能存的整数范围有多大)是需要单独说明的。

比如说某个“寄存器 A 当前值是 0000H”, 给了一个暗示—— 寄存器A的值的范围需要用4个十六进制数来书写表示。但它可以是16位, 还可以是15位,14位,13位。


回复

使用道具 举报

1048

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2020-6-23 17:53 | 显示全部楼层
maychang 发表于 2020-6-23 15:06 “一个字节就是一个地址是吗 ” 不一定。对256个地址(00H~FFH,或者0~255)来说,是一字节 ...

00H~7FH,那也要占一字节------------------这个怎么是一字节?怎么看出来只占了一字节啊  这个范围是128个字节啊

点评

“00H~7FH,那也要占一字节------------------这个怎么是一字节?” 一字节地址。   “怎么看出来只占了一字节啊  这个范围是128个字节啊” 一字节地址,这个一字节地址  详情 回复 发表于 2020-6-23 18:14

回复

使用道具 举报

1048

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2020-6-23 17:54 | 显示全部楼层
maychang 发表于 2020-6-23 15:08 “256是怎么计算来的  2^8次方?” 是的。

FF换算成十进制是255 

点评

“FF换算成十进制是255” 写出FF,本身就是错误。必须写成FFH。十进制数字7写成二进制必须写成111B,否则会被误解为十进制一百一十一。  详情 回复 发表于 2020-6-23 18:09
“FF换算成十进制是255” 没错,FFH换算成十进制是255。但是,0这个数,你计算进去了吗?数数字个数的时候,0是第一个数。  详情 回复 发表于 2020-6-23 18:07

回复

使用道具 举报

1万

TA的帖子

0

TA的资源

超级版主

Rank: 6Rank: 6

发表于 2020-6-23 18:07 | 显示全部楼层
QWE4562009 发表于 2020-6-23 17:54 FF换算成十进制是255 

“FF换算成十进制是255”

没错,FFH换算成十进制是255。但是,0这个数,你计算进去了吗?数数字个数的时候,0是第一个数。

点评

引用:工 作寄存器区后面的 16B单 元 (20H~2FH)为 位寻址区-----------按这样说 这是16个位的地址?而不是16个字节啊  详情 回复 发表于 2020-6-24 11:04

回复

使用道具 举报

1万

TA的帖子

0

TA的资源

超级版主

Rank: 6Rank: 6

发表于 2020-6-23 18:09 | 显示全部楼层
QWE4562009 发表于 2020-6-23 17:54 FF换算成十进制是255 

“FF换算成十进制是255”

写出FF,本身就是错误。必须写成FFH。十进制数字7写成二进制必须写成111B,否则会被误解为十进制一百一十一。


回复

使用道具 举报

1万

TA的帖子

0

TA的资源

超级版主

Rank: 6Rank: 6

发表于 2020-6-23 18:14 | 显示全部楼层
QWE4562009 发表于 2020-6-23 17:53 00H~7FH,那也要占一字节------------------这个怎么是一字节?怎么看出来只占了一字节啊  这个范 ...

“00H~7FH,那也要占一字节------------------这个怎么是一字节?”

一字节地址。

 

“怎么看出来只占了一字节啊  这个范围是128个字节啊”

一字节地址,这个一字节地址,内容从00H到FFH,可以指向128个地址,即128个存储位置。正如手机号为十进制11位数,却可以指向世界上所有手机。


回复

使用道具 举报

1048

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2020-6-24 11:04 | 显示全部楼层
maychang 发表于 2020-6-23 18:07 “FF换算成十进制是255” 没错,FFH换算成十进制是255。但是,0这个数,你计算进去了吗?数 ...

引用:工 作寄存器区后面的 16B单 元 (20H~2FH)为 位寻址区-----------按这样说 这是16个位的地址?而不是16个字节啊

点评

这16字节可以按位寻址,是51系列单片机的特点,其它单片机往往没有这个可以按位寻址的区域。  详情 回复 发表于 2020-6-24 11:52
是16个字节,共128位。 这128位(16个字节),可以按位寻址,也可以按字节寻址。两种寻址方法,地址是不一样的。按位寻址,当然读出或者写入的是一位二进制数,不是 “0” 就是 “1”。按字节  详情 回复 发表于 2020-6-24 11:51

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/8 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

词云| Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-7-16 00:51 , Processed in 0.527817 second(s), 41 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表