官术网_书友最值得收藏!

1.2.5 特殊功能寄存器

特殊功能寄存器是通過專門規(guī)定而且具有特定用途的RAM單元,它是單片機(jī)內(nèi)部很重要的部件。特殊功能寄存器能綜合反映單片機(jī)系統(tǒng)內(nèi)部的工作狀態(tài)和工作方式。包含部分專用寄存器在內(nèi),其中一部分控制程序運(yùn)行,另一部分控制內(nèi)部部件,如定時器/計數(shù)器和串行口的控制,改變控制寄存器的狀態(tài)就可以改變這些部件的工作方式。

1.特殊功能寄存器標(biāo)示符

51系列單片機(jī)內(nèi)部堆棧指針(SP)、累加器(A)、程序狀態(tài)字(PSW)、I/O鎖存器、定時器、計數(shù)器以及控制寄存器和狀態(tài)寄存器等都是特殊功能寄存器,和片內(nèi)RAM統(tǒng)一編址,分散占用80H~FFH單元,共有21個,增強(qiáng)型的52系列單片機(jī)則有26個。表1-4列出了單片機(jī)的特殊功能寄存器名稱、標(biāo)識符和對應(yīng)的字節(jié)地址,其中含有52系列的寄存器T2、T2CON等。在單片機(jī)C語言編程應(yīng)用中,單片機(jī)的特殊功能寄存器標(biāo)識符經(jīng)常用到。下面只介紹其中部分寄存器,一些控制寄存器會在單片機(jī)內(nèi)部資源編程應(yīng)用中詳細(xì)介紹。

表1-4 單片機(jī)的特殊功能寄存器及其地址

(續(xù))

2.特殊功能寄存器的位操作

在程序設(shè)計過程中,單片機(jī)的功能發(fā)揮很多情況下是設(shè)置和檢測單片機(jī)內(nèi)部的特殊功能寄存器來實現(xiàn)的,如果采用匯編設(shè)計程序,必須牢記單片機(jī)內(nèi)部通用寄存器和特殊功能寄存器的作用,所以要求設(shè)計者必須有更多的硬件基礎(chǔ)。如果采用C語言設(shè)計單片機(jī)的程序,因為程序中的數(shù)據(jù)處理和分配是由編譯軟件自動完成的,通用寄存器在程序設(shè)計過程中就可以忽略,并且也不需要記住特殊功能寄存器的地址,只需要記住特殊功能寄存器和每個特殊功能寄存器的位標(biāo)識符和作用就可以了。

在單片機(jī)C語言程序設(shè)計中,對特殊功能寄存器的操作很簡單,只需對某個寄存器或位標(biāo)識符賦值即可。比如,PSW=PSW&0x7f與CY=0結(jié)果一樣,前一個語句是字節(jié)操作,后一個語句是位操作。單片機(jī)C語言程序設(shè)計中常用于控制的特殊功能寄存器的位標(biāo)識符和位地址表見表1-5,其中T2CON為增強(qiáng)51系列。

表1-5 特殊功能寄存器位標(biāo)識符和位地址表

(續(xù))

不是所有的特殊功能寄存器都可以進(jìn)行位的編程操作,對于沒有定義位標(biāo)識符或位標(biāo)識符重復(fù)的寄存器,用戶無法對位直接訪問,如TMOD,由于其高4位和低4位標(biāo)識符同名,只能采用字節(jié)操作。如要設(shè)定低4位為0001B,只需使TMOD=0xf1 & TMOD。特殊功能寄存器有很多用來控制單片機(jī)內(nèi)部各個部件的運(yùn)行狀態(tài),這些寄存器都有針對性的應(yīng)用,如單片機(jī)中斷需要IE、IP等寄存器控制。

定時器/計數(shù)器、并行I/O口、串行口、中斷系統(tǒng)等部件是單片機(jī)內(nèi)部重要的硬件資源,這些資源在以后的學(xué)習(xí)過程中將通過應(yīng)用項目重點介紹。另外,特殊功能寄存器是學(xué)習(xí)單片機(jī)程序設(shè)計的基礎(chǔ),其應(yīng)用會在以后章節(jié)的相關(guān)項目中詳細(xì)說明。

主站蜘蛛池模板: 东乡| 砚山县| 鹤岗市| 闻喜县| 岑溪市| 大兴区| 临沂市| 当雄县| 桐庐县| 安吉县| 云浮市| 长武县| 清水河县| 保山市| 阿图什市| 澄城县| 南澳县| 无棣县| 靖安县| 容城县| 溧水县| 行唐县| 沐川县| 正镶白旗| 五大连池市| 富蕴县| 阿坝县| 确山县| 呼玛县| 黎城县| 南华县| 邯郸县| 台山市| 保亭| 合肥市| 怀集县| 罗甸县| 射阳县| 安仁县| 肥乡县| 芒康县|