找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2423|回复: 12
打印 上一主题 下一主题
收起左侧

8位单片机每8个寄存器中才有一个能够进行可位寻址?

  [复制链接]
跳转到指定楼层
楼主
ID:1087905 发表于 2023-7-11 19:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问一个51单片机的问题
为什么51单片机这种8位单片机的寄存器 ,每8个中才有一个能够进行可位寻址。在网上搜索不到想要的答案,特来求助。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1088156 发表于 2023-7-12 00:19 | 只看该作者
因为51单片机寻址是按照8位寻址的 也就是说每次跳跃8个bit 就是你定义的sbit的大小 一共8个 因为能被8整除就表示符合一次寻址的大小,所以才能进行寻址。
回复

使用道具 举报

板凳
ID:624769 发表于 2023-7-12 01:16 来自触屏版 | 只看该作者
8位单片机,表示他的标准差寻址能力只有8位,即0-255,256个地址位,是他可以直接管理的,那么,256个位地址,分布后就是32个字节,其中16个字节用在bdata,方便用户定义flag,16个字节映射到sfr,所以每8个字节只能有一个,是你看到的表象,本质是,他有128个位地址份额,把他平均映射在可以被8整除的寄存器而已。你如果自己开发一个单片机完全可以把他一股脑映射在 0x80-0x8f 这段寄存器,或者不给bdata额度,全部用在sfr,那么你就能每4个有一个了。
回复

使用道具 举报

地板
ID:116103 发表于 2023-7-12 07:41 | 只看该作者
像TH0  TL0   等寄存器没有位寻址的必要吧
回复

使用道具 举报

5#
ID:320306 发表于 2023-7-12 09:14 | 只看该作者
2的8次方是255,超过就不行了。
回复

使用道具 举报

6#
ID:94031 发表于 2023-7-12 09:53 | 只看该作者
这是单片机的硬件设计,要弄懂要学计算机硬件原理,作为单片机应用者记住就行。
回复

使用道具 举报

7#
ID:996773 发表于 2023-7-12 09:54 | 只看该作者
51单片机可以20H-2FH都可以位寻址的,不是才有一个
回复

使用道具 举报

8#
ID:111463 发表于 2023-7-12 10:35 | 只看该作者
因为这是8位单片机的架构决定的,此外进行位寻址与段寻址其实从应用角度是一样的,对应读写相对应的位即可
回复

使用道具 举报

9#
ID:1088185 发表于 2023-7-12 10:43 | 只看该作者
因为要压缩指令在最少的字节数, 位寻址只能是被8整除的地址, 就能省下3 bits,这刚好就能放要被操作的位位置,b0~b7刚好3 bits, 这样就能只用一个字节指定位寻址的地址及位的位置。
回复

使用道具 举报

10#
ID:883242 发表于 2023-7-12 13:44 | 只看该作者
问题就不成立,绝大多数8位单片机不可以位寻址。
回复

使用道具 举报

11#
ID:401564 发表于 2023-7-13 15:02 | 只看该作者
这个几乎不叫问题
人家做8051就是这个样子的,也许是架构的问题,也许是制造工艺的问题
回复

使用道具 举报

12#
ID:1054554 发表于 2023-7-13 17:05 | 只看该作者
8051就是这个样子的,也许是架构的问题,也许是制造工艺的问题
回复

使用道具 举报

13#
ID:123289 发表于 2023-7-14 17:30 | 只看该作者
1、在设计指令系统时,51系统中增加了位寻址指令,由于是8位的系统,自然是用一个字节区分指令(本码表示寻址了),一个字节表示寻址哪一个(本码指向欲寻的位),这时关键字来了,8位只能区分256个位址了)。【用双字节指令位寻址,后一个字节指向要寻的位】
2、51系统中给了用户128个位,它们对应在RAM的20H-2FH这16个字节上,20H.0位对指令的00H,2FH.7对应指令的7FH。(指令的第二个字节)
3、51系统中的许多特殊寄存器也是非常需要位寻的,特殊突破口有128个字节(地址从80H-FFH),全部位寻需要1024个位。如前所述,总共256位,用户用去128位,还剩余128位,合算成字节,也只能位寻16个字节。
4、于是将特殊突破口80-FFH中,选出能被8整除的地址字节(80H,88H,90H...F0H,F8H),恰好16个字节的128位,分配给了剩余的位寻址。
5、其中80H.0(也就是P0.0口)对应指令码80H,88H.6(也就是TCON.6 = TR1)对应指令码8EH。
6、明白以上,就知道:TMDO(89H),SBUF(99H)是不可以位寻址的了(地址不是8的整数倍)。
以上是个人对51的理解与猜想。
51的位寻功能,这其最灵活的特点。许多其它系统,无独立的位寻址指令。
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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