標(biāo)題: 關(guān)于89c52單片機(jī)地址以及存儲器的問題 [打印本頁]
作者: Laptop 時(shí)間: 2017-11-2 22:31
標(biāo)題: 關(guān)于89c52單片機(jī)地址以及存儲器的問題
如下圖 HURBUF,MINBUF....DISBUF為啥要這樣定義啊直接定義一個(gè)變量不就行了么還有這個(gè)用的是指針,意思就是指向下面圖三中的 可位選址寄存器嘍(只要是這個(gè)
范圍都可以隨意定義吧?)?如果是這樣的話
DISBUF這個(gè)地址0x40 不就和28h這個(gè)重復(fù)了?
還有就是*(DISBUF+1)這個(gè)是指向哪個(gè)?
像書上這樣寫程序值得學(xué)習(xí)么?
還有 非常感謝有這么多大神能回答我的問題。謝謝!
1.JPG (2.54 MB, 下載次數(shù): 47)
下載附件
2017-11-2 22:18 上傳
2.JPG (1.95 MB, 下載次數(shù): 66)
下載附件
2017-11-2 22:18 上傳
3.JPG (1.62 MB, 下載次數(shù): 54)
下載附件
2017-11-2 22:18 上傳
作者: yzwzfyz 時(shí)間: 2017-11-3 10:12
本帖最后由 yzwzfyz 于 2017-11-3 17:04 編輯
看看與這個(gè)章節(jié)的目的就明白了。
作者: Laptop 時(shí)間: 2017-11-14 19:35
很仔細(xì)的看了 不然也不會(huì)來這里問了
作者: Laptop 時(shí)間: 2017-11-18 20:41
沒有人知道么
作者: Laptop 時(shí)間: 2017-11-19 16:25
!在線等
作者: zl2168 時(shí)間: 2017-11-19 19:06
本帖最后由 zl2168 于 2017-11-19 19:14 編輯
哼!你看這些書,當(dāng)然看不懂。。
介紹你一本書,張志良編著的:《80C51單片機(jī)實(shí)用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9, 用于學(xué)習(xí)51單片機(jī)原理,程序(雙解c和匯編)語句條條有注解,便于閱讀理解,便于自學(xué),最主要是能解答你的疑問。
作者: zyfei 時(shí)間: 2017-11-19 19:13
同求大神指點(diǎn)
作者: zl2168 時(shí)間: 2017-11-20 22:22
80C51特殊功能寄存器定義方式
4.2.2 變量及其定義方法
……
⒌ 80C51特殊功能寄存器定義方式
80C51片內(nèi)有21個(gè)特殊功能寄存器,在C51的文件夾里,有一個(gè)取名reg51.h的庫函數(shù)文件,對80C51片內(nèi)21個(gè)特殊功能寄存器按MCS-51中取的名字(必須大寫)全部作了定義,并賦予了既定的字節(jié)地址。因此,該21個(gè)特殊功能寄存器已不需重復(fù)定義,只需在程序開頭的頭文件部分寫一條預(yù)處理命令:#include <reg51.h>,表示程序可以調(diào)用該庫函數(shù)reg51.h(52系列單片機(jī)應(yīng)用#include <reg52.h>)。但對于不符合MCS-51中特殊功能寄存器名的標(biāo)識符,或未在頭文件中寫入上述預(yù)處理命令的,則應(yīng)重新定義,否則出錯(cuò)。
……
需要注意的是,特殊功能寄存器定義應(yīng)放在函數(shù)外(即作為全局變量)。
需要說明的是,雖然C51允許用關(guān)鍵詞sfr和sfr16定義80C51特殊功能寄存器,體現(xiàn)了C51編譯功能的多樣性和完整性,但編者還是建議讀者不要去重新定義,而直接使用預(yù)處理命令,既省事又不易出錯(cuò)。
……
⒍ 位變量定義方式
80C51片內(nèi)RAM有16字節(jié)128位的可尋址位(字節(jié)地址20H~2FH,位地址00H~7FH),還有11個(gè)特殊功能寄存器是可位尋址的,C51編譯器擴(kuò)充了關(guān)鍵詞bit和sbit,用于定義這些可尋址位。位變量也需先定義,后使用。
……
⑵ 定義11個(gè)特殊功能寄存器可尋址位的位變量
80C51單片機(jī)11個(gè)可尋址位的特殊功能寄存器中,有6個(gè)SFR(PSW、TCON、SCON、IE、IP和P3),它們每一可尋址位有位定義名稱,C51庫函數(shù)reg51.h也已對其按MCS-51中取的位定義名稱(必須大寫)全部作了定義,并賦予了既定的位地址。只要在頭文件中聲明包含庫函數(shù)reg51.h,就可按位定義名稱直接引用。
但是,還有5個(gè)SFR(ACC、B、P0、P1和P2),可尋址位沒有專用的位定義名稱,只有位編號,但這些位編號不符合ANSI C標(biāo)識符要求,例如,ACC.0、P1.0等(C51標(biāo)識符規(guī)定不可用小數(shù)點(diǎn)),應(yīng)重新定義。其格式如下:
……
以上摘自張志良編著
《80C51單片機(jī)實(shí)用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |