![]() |
發(fā)布時(shí)間: 2017-11-2 22:31
正文摘要:如下圖 HURBUF,MINBUF....DISBUF為啥要這樣定義啊直接定義一個(gè)變量不就行了么還有這個(gè)用的是指針,意思就是指向下面圖三中的 可位選址寄存器嘍(只要是這個(gè) 范圍都可以隨意定義吧?)?如果是這樣的話 DISBUF這個(gè) ... |
zyfei 發(fā)表于 2017-11-19 19:13 80C51特殊功能寄存器定義方式 4.2.2 變量及其定義方法 …… ⒌ 80C51特殊功能寄存器定義方式 80C51片內(nèi)有21個(gè)特殊功能寄存器,在C51的文件夾里,有一個(gè)取名reg51.h的庫(kù)函數(shù)文件,對(duì)80C51片內(nèi)21個(gè)特殊功能寄存器按MCS-51中取的名字(必須大寫)全部作了定義,并賦予了既定的字節(jié)地址。因此,該21個(gè)特殊功能寄存器已不需重復(fù)定義,只需在程序開頭的頭文件部分寫一條預(yù)處理命令:#include <reg51.h>,表示程序可以調(diào)用該庫(kù)函數(shù)reg51.h(52系列單片機(jī)應(yīng)用#include <reg52.h>)。但對(duì)于不符合MCS-51中特殊功能寄存器名的標(biāo)識(shí)符,或未在頭文件中寫入上述預(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庫(kù)函數(shù)reg51.h也已對(duì)其按MCS-51中取的位定義名稱(必須大寫)全部作了定義,并賦予了既定的位地址。只要在頭文件中聲明包含庫(kù)函數(shù)reg51.h,就可按位定義名稱直接引用。 但是,還有5個(gè)SFR(ACC、B、P0、P1和P2),可尋址位沒有專用的位定義名稱,只有位編號(hào),但這些位編號(hào)不符合ANSI C標(biāo)識(shí)符要求,例如,ACC.0、P1.0等(C51標(biāo)識(shí)符規(guī)定不可用小數(shù)點(diǎn)),應(yīng)重新定義。其格式如下: …… 以上摘自張志良編著 《80C51單片機(jī)實(shí)用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9 |
同求大神指點(diǎn)![]() |
本帖最后由 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和匯編)語(yǔ)句條條有注解,便于閱讀理解,便于自學(xué),最主要是能解答你的疑問。 |
!在線等 |
沒有人知道么 |
yzwzfyz 發(fā)表于 2017-11-3 10:12 很仔細(xì)的看了 不然也不會(huì)來(lái)這里問了 |
本帖最后由 yzwzfyz 于 2017-11-3 17:04 編輯 看看與這個(gè)章節(jié)的目的就明白了。 |
Powered by 單片機(jī)教程網(wǎng)