5743|22

1922

帖子

0

资源

纯净的硅(高级)

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

 

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

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

回复

1427

帖子

2

资源

五彩晶圆(初级)

单纯就数值来讲,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万

帖子

0

资源

超级版主

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

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


回复

1427

帖子

2

资源

五彩晶圆(初级)

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

点评

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

回复

1万

帖子

0

资源

超级版主

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

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

点评

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

回复

1万

帖子

0

资源

超级版主

“怎么计算呢?”

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


回复

1万

帖子

0

资源

超级版主

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

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


回复

1922

帖子

0

资源

纯净的硅(高级)

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

回复

1922

帖子

0

资源

纯净的硅(高级)

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

要换算成十进制再相减吗


回复

1922

帖子

0

资源

纯净的硅(高级)

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

回复

1922

帖子

0

资源

纯净的硅(高级)

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

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

点评

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

回复

1万

帖子

0

资源

超级版主

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万

帖子

0

资源

超级版主

QWE4562009 发表于 2020-6-23 14:30 256是怎么计算来的  2^8次方?

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

是的。

点评

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

回复

1427

帖子

2

资源

五彩晶圆(初级)

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位。


回复

1922

帖子

0

资源

纯净的硅(高级)

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

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

点评

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

回复

1922

帖子

0

资源

纯净的硅(高级)

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万

帖子

0

资源

超级版主

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万

帖子

0

资源

超级版主

QWE4562009 发表于 2020-6-23 17:54 FF换算成十进制是255 

“FF换算成十进制是255”

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


回复

1万

帖子

0

资源

超级版主

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

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

一字节地址。

 

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

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


回复

1922

帖子

0

资源

纯净的硅(高级)

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/5 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表