找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2472|回復(fù): 12
收起左側(cè)

8位單片機(jī)每8個寄存器中才有一個能夠進(jìn)行可位尋址?

  [復(fù)制鏈接]
ID:1087905 發(fā)表于 2023-7-11 19:15 | 顯示全部樓層 |閱讀模式
問一個51單片機(jī)的問題
為什么51單片機(jī)這種8位單片機(jī)的寄存器 ,每8個中才有一個能夠進(jìn)行可位尋址。在網(wǎng)上搜索不到想要的答案,特來求助。
回復(fù)

使用道具 舉報

ID:1088156 發(fā)表于 2023-7-12 00:19 | 顯示全部樓層
因為51單片機(jī)尋址是按照8位尋址的 也就是說每次跳躍8個bit 就是你定義的sbit的大小 一共8個 因為能被8整除就表示符合一次尋址的大小,所以才能進(jìn)行尋址。
回復(fù)

使用道具 舉報

ID:624769 發(fā)表于 2023-7-12 01:16 來自觸屏版 | 顯示全部樓層
8位單片機(jī),表示他的標(biāo)準(zhǔn)差尋址能力只有8位,即0-255,256個地址位,是他可以直接管理的,那么,256個位地址,分布后就是32個字節(jié),其中16個字節(jié)用在bdata,方便用戶定義flag,16個字節(jié)映射到sfr,所以每8個字節(jié)只能有一個,是你看到的表象,本質(zhì)是,他有128個位地址份額,把他平均映射在可以被8整除的寄存器而已。你如果自己開發(fā)一個單片機(jī)完全可以把他一股腦映射在 0x80-0x8f 這段寄存器,或者不給bdata額度,全部用在sfr,那么你就能每4個有一個了。
回復(fù)

使用道具 舉報

ID:116103 發(fā)表于 2023-7-12 07:41 | 顯示全部樓層
像TH0  TL0   等寄存器沒有位尋址的必要吧
回復(fù)

使用道具 舉報

ID:320306 發(fā)表于 2023-7-12 09:14 | 顯示全部樓層
2的8次方是255,超過就不行了。
回復(fù)

使用道具 舉報

ID:94031 發(fā)表于 2023-7-12 09:53 | 顯示全部樓層
這是單片機(jī)的硬件設(shè)計,要弄懂要學(xué)計算機(jī)硬件原理,作為單片機(jī)應(yīng)用者記住就行。
回復(fù)

使用道具 舉報

ID:996773 發(fā)表于 2023-7-12 09:54 | 顯示全部樓層
51單片機(jī)可以20H-2FH都可以位尋址的,不是才有一個
回復(fù)

使用道具 舉報

ID:111463 發(fā)表于 2023-7-12 10:35 | 顯示全部樓層
因為這是8位單片機(jī)的架構(gòu)決定的,此外進(jìn)行位尋址與段尋址其實從應(yīng)用角度是一樣的,對應(yīng)讀寫相對應(yīng)的位即可
回復(fù)

使用道具 舉報

ID:1088185 發(fā)表于 2023-7-12 10:43 | 顯示全部樓層
因為要壓縮指令在最少的字節(jié)數(shù), 位尋址只能是被8整除的地址, 就能省下3 bits,這剛好就能放要被操作的位位置,b0~b7剛好3 bits, 這樣就能只用一個字節(jié)指定位尋址的地址及位的位置。
回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2023-7-12 13:44 | 顯示全部樓層
問題就不成立,絕大多數(shù)8位單片機(jī)不可以位尋址。
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2023-7-13 15:02 | 顯示全部樓層
這個幾乎不叫問題
人家做8051就是這個樣子的,也許是架構(gòu)的問題,也許是制造工藝的問題
回復(fù)

使用道具 舉報

ID:1054554 發(fā)表于 2023-7-13 17:05 | 顯示全部樓層
8051就是這個樣子的,也許是架構(gòu)的問題,也許是制造工藝的問題
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2023-7-14 17:30 | 顯示全部樓層
1、在設(shè)計指令系統(tǒng)時,51系統(tǒng)中增加了位尋址指令,由于是8位的系統(tǒng),自然是用一個字節(jié)區(qū)分指令(本碼表示尋址了),一個字節(jié)表示尋址哪一個(本碼指向欲尋的位),這時關(guān)鍵字來了,8位只能區(qū)分256個位址了)!居秒p字節(jié)指令位尋址,后一個字節(jié)指向要尋的位】
2、51系統(tǒng)中給了用戶128個位,它們對應(yīng)在RAM的20H-2FH這16個字節(jié)上,20H.0位對指令的00H,2FH.7對應(yīng)指令的7FH。(指令的第二個字節(jié))
3、51系統(tǒng)中的許多特殊寄存器也是非常需要位尋的,特殊突破口有128個字節(jié)(地址從80H-FFH),全部位尋需要1024個位。如前所述,總共256位,用戶用去128位,還剩余128位,合算成字節(jié),也只能位尋16個字節(jié)。
4、于是將特殊突破口80-FFH中,選出能被8整除的地址字節(jié)(80H,88H,90H...F0H,F8H),恰好16個字節(jié)的128位,分配給了剩余的位尋址。
5、其中80H.0(也就是P0.0口)對應(yīng)指令碼80H,88H.6(也就是TCON.6 = TR1)對應(yīng)指令碼8EH。
6、明白以上,就知道:TMDO(89H),SBUF(99H)是不可以位尋址的了(地址不是8的整數(shù)倍)。
以上是個人對51的理解與猜想。
51的位尋功能,這其最靈活的特點(diǎn)。許多其它系統(tǒng),無獨(dú)立的位尋址指令。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表