8051是一種8位元的單芯片微控制器,屬于MCS-51單芯片的一種,由英特爾公司于1981年制造。INTEL公司將MCS51的核心技術(shù)授權(quán)給了很多其它公司,所以有很多公司在做以8051為核心的單片機(jī),如Atmel、飛利浦、深聯(lián)華等公司,相繼開(kāi)發(fā)了功能更多、更強(qiáng)大的兼容產(chǎn)品。
8051單芯片是同步式的順序邏輯系統(tǒng),整個(gè)系統(tǒng)的工作完全是依賴(lài)系統(tǒng)內(nèi)部的時(shí)脈信號(hào),用以來(lái)產(chǎn)生各種動(dòng)作周期及同步信號(hào)。在8051單片機(jī)中已內(nèi)建時(shí)鐘產(chǎn)生器,在使用時(shí)只需接上石英晶體諧振器(或其它振蕩子)及電容,就可以讓系統(tǒng)產(chǎn)生正確的時(shí)鐘信號(hào)。
8051單片微型計(jì)算機(jī)簡(jiǎn)稱(chēng)為單片機(jī),又稱(chēng)為微型控制器,是微型計(jì)算機(jī)的一個(gè)重要分支。單片機(jī)是70年代中期發(fā)展起來(lái)的一種超大規(guī)模集成電路芯片,是集成CPU、RAM、ROM、I/O接口和中斷系統(tǒng)于同一硅片上的器件。80年代以來(lái),單片機(jī)發(fā)展迅速,各類(lèi)新產(chǎn)品不斷涌現(xiàn),出現(xiàn)了許多高性能新型型號(hào),現(xiàn)已逐漸成為工廠自動(dòng)化和各控制領(lǐng)域的支柱產(chǎn)業(yè)之一。
8051特殊功能寄存器基礎(chǔ)詳解
程序狀態(tài)寄存器PSW是計(jì)算機(jī)系統(tǒng)的核心部件—控制器的一部分,可位尋址,字節(jié)地址為D0H,單元地址是D0H~D7H。
PSW寄存器結(jié)構(gòu)
各控制位功能介紹如下:
1)CY:進(jìn)位標(biāo)志位,作用有兩種:(1)算術(shù)運(yùn)算中進(jìn)位或借位時(shí),CY=1。(2)作為布爾代數(shù)位處理的累加器。
2)AC:輔助進(jìn)位標(biāo)志位,算術(shù)運(yùn)算時(shí)低半字節(jié)有進(jìn)位或借位時(shí),AC=1。
3)F0:通用標(biāo)志位
4)RS1:寄存器組選擇位高位,RS1與RS0選擇四組工作寄存器,每組分別為8個(gè)寄存器(R0~R7),如RS1=0、RS0=0,則R0~R7對(duì)地址為00H~07H,如RS1=0、RS0=1,則R0~R7對(duì)地址為08H~0FH,四組寄存器地址從00H~1FH。5)RS0:寄存器組選擇位低位。
6)OV:溢出標(biāo)志位,當(dāng)進(jìn)行正負(fù)號(hào)數(shù)值的加減運(yùn)算時(shí),如結(jié)果超出7位或2的補(bǔ)碼(+27至-128)時(shí),OV=1
7)USR:用戶定義標(biāo)志位,保留。
8)P:奇偶標(biāo)志位,當(dāng)累加器中有奇數(shù)個(gè)1,則P=1;偶數(shù)個(gè)1,則P=0.在串行傳輸時(shí)可用來(lái)檢測(cè)傳送是否有錯(cuò)
PCON寄存器
PCON主要是為CHMOS型單片機(jī)的電源控制而設(shè)置的專(zhuān)用寄存器,在CHMOS型單片機(jī)中,除SMOD位外,其他位均為虛設(shè)的,SMOD是串行口波特率倍增位,當(dāng)SMOD=1時(shí),串行口波特率加倍。系統(tǒng)復(fù)位默認(rèn)為SMOD=0。單元地址是87H,其結(jié)構(gòu)格式如下:
PCON電源管理寄存器結(jié)構(gòu)
各控制位功能介紹如下:
1)SMOD:該位與串口通信有關(guān)。SMOD=0;串口方式1,2,3時(shí),波特率正常。SMOD=1;串口方式1,2,3時(shí),波特率加倍。
2)GF1、GF0:兩個(gè)通用工作標(biāo)志位,用戶可以自由使用。
3)PD:掉電模式設(shè)定位。PD=0單片機(jī)處于正常工作狀態(tài)。PD=1單片機(jī)進(jìn)入掉電(PowerDown)模式,可由外部中斷或硬件復(fù)位模式喚醒,進(jìn)入掉電模式后,外部晶振停振,CPU、定時(shí)器、串行口全部停止工作,只有外部中斷工作。
4)IDL:空閑模式設(shè)定位。IDL=0單片機(jī)處于正常工作狀態(tài)。IDL=1單片機(jī)進(jìn)入空閑(Idle)模式,除CPU不工作外,其余仍繼續(xù)工作,在空閑模式下可由任一個(gè)中斷或硬件復(fù)位喚醒。
SCON控制寄存器
SCON控制寄存器,它是一個(gè)可位尋址的專(zhuān)用寄存器,用于串行數(shù)據(jù)的通信控制,字節(jié)地址為98H,單元地址是98H~9FH,其結(jié)構(gòu)格式如下:
SCON寄存器結(jié)構(gòu)
各控制位功能介紹如下:
1)SM0、SM1:串行口工作方式控制位。SM0,SM1工作方式:00方式0、01方式1、10方式2、11方式3。
2)SM2:多機(jī)通信控制位。多機(jī)通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收狀態(tài),當(dāng)串行口工作于方式2或3,以及SM2=1時(shí),只有當(dāng)接收到第9位數(shù)據(jù)(RB8)為1時(shí),才把接收到的前8位數(shù)據(jù)送入SBUF,且置位RI發(fā)出中斷申請(qǐng),否則會(huì)將接受到的數(shù)據(jù)放棄。當(dāng)SM2=0時(shí),就不管第位數(shù)據(jù)是0還是1,都難得數(shù)據(jù)送入SBUF,并發(fā)出中斷申請(qǐng)。工作于方式0時(shí),SM2必須為0。
3)REN:允許接收位。REN用于控制數(shù)據(jù)接收的允許和禁止,REN=1時(shí),允許接收,REN=0時(shí),禁止接收。
4)TB8:發(fā)送接收數(shù)據(jù)位8。在方式2和方式3中,TB8是要發(fā)送的——即第9位數(shù)據(jù)位。在多機(jī)通信中同樣亦要傳輸這一位,并且它代表傳輸?shù)牡刂愤€是數(shù)據(jù),TB8=0為數(shù)據(jù),TB8=1時(shí)為地址。
5)RB8:接收數(shù)據(jù)位8。在方式2和方式3中,RB8存放接收到的第9位數(shù)據(jù),用以識(shí)別接收到的數(shù)據(jù)特征。
6)TI:發(fā)送中斷標(biāo)志位??蓪ぶ窐?biāo)志位。方式0時(shí),發(fā)送完第8位數(shù)據(jù)后,由硬件置位,其它方式下,在發(fā)送或停止位之前由硬件置位,因此,TI=1表示幀發(fā)送結(jié)束,TI可由軟件清“0”。
7)RI:接收中斷標(biāo)志位。可尋址標(biāo)志位。接收完第8位數(shù)據(jù)后,該位由硬件置位,在其他工作方式下,該位由硬件置位,RI=1表示幀接收完成。在串口中斷處理時(shí),TI,RI都需要軟件清“0”,硬件置位后不可能自動(dòng)清0,此外,在進(jìn)行緩沖區(qū)操作時(shí),需要ES=0,以防止中斷出現(xiàn)。
TCON定時(shí)器/計(jì)數(shù)器控制寄存器
TCON在特殊功能寄存器中,字節(jié)地址為88H,單元地址是88H-8FH,由于有位地址,十分便于進(jìn)行位操作。TCON的作用是控制定時(shí)器的啟、停,標(biāo)志定時(shí)器溢出和中斷情況。其中,TFl、TRl、TF0和TR0位用于定時(shí)器/計(jì)數(shù)器;IEl、ITl、IE0和IT0位用于中斷系統(tǒng)。由于TCON是可以位尋址的,因而如果只清溢出或啟動(dòng)定時(shí)器工作,可以用位操作命令。例如:執(zhí)行“CLRTF0”后則清定時(shí)器0的溢出;執(zhí)行“SETBTR1”后可啟動(dòng)定時(shí)器1開(kāi)始工作(當(dāng)然前面還要設(shè)置方式定)。
TCON寄存器結(jié)構(gòu)
各控制位功能介紹如下:
1)TF1:定時(shí)器1溢出標(biāo)志位。當(dāng)定時(shí)器1計(jì)滿溢出時(shí),由硬件使TF1置“1”,并且申請(qǐng)中斷。進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清“0”,在查詢方式下用軟件清“0”。
2)TR1:定時(shí)器1運(yùn)行控制位。由軟件清“0”關(guān)閉定時(shí)器1。當(dāng)GATE=1,且INT1為高電平時(shí),TR1置“1”啟動(dòng)定時(shí)器1;當(dāng)GATE=0,TR1置“1”啟動(dòng)定時(shí)器1。
3)TF0:定時(shí)器0溢出標(biāo)志。其功能及操作情況同TF1。
4)TR0:定時(shí)器0運(yùn)行控制位。其功能及操作情況同TR1。
5)IE1:外部中斷1請(qǐng)求標(biāo)志位。
6)IT1:外部中斷1觸發(fā)方式選擇位。當(dāng)IT1=0,為低電平觸發(fā)方式;當(dāng)IT1=1,為下降沿觸發(fā)方式。
7)IE0:外部中斷0請(qǐng)求標(biāo)志位。
8)IT0:外部中斷0觸發(fā)方式選擇位。當(dāng)IT0=0,為低電平觸發(fā)方式;當(dāng)IT0=1,為下降沿觸發(fā)方式。
TMOD定時(shí)器/計(jì)數(shù)器模式控制寄存器
定時(shí)器/計(jì)數(shù)器模式控制寄存器TMOD是一個(gè)逐位定義的8位寄存器,其中低四位定義定時(shí)器/計(jì)數(shù)器T0,高四位定義定時(shí)器/計(jì)數(shù)器T1,但只能使用字節(jié)尋址,其字節(jié)地址為89H。其格式為:
TMOD寄存器結(jié)構(gòu)
各控制位功能介紹如下:
1)GATE:門(mén)控制。GATE=1時(shí),由外部中斷引腳INT0、INT1和控制寄存器的TR0,TR1來(lái)啟動(dòng)定時(shí)器。當(dāng)INT0引腳為高電平時(shí)TR0置位,啟動(dòng)定時(shí)器T0;當(dāng)INT1引腳為高電平時(shí)TR1置位,啟動(dòng)定時(shí)器T。GATE=0時(shí),僅由TR0,TR1置位分別啟動(dòng)定時(shí)器T0、T1。
2)C/T:功能選擇位。C/T=0時(shí)為定時(shí)功能,C/T=1時(shí)為計(jì)數(shù)功能。置位時(shí)選擇計(jì)數(shù)功能,清零時(shí)選擇定時(shí)功能。
3)M0、M1:方式選擇功能。由于有2位,因此有4種工作方式M1M0工作方式計(jì)數(shù)器模式TMOD(設(shè)置定時(shí)器模式),00方式0,13位計(jì)數(shù)器TMOD=0x00。01方式1,16位計(jì)數(shù)器TMOD=0x01。10方式2,自動(dòng)重裝8位計(jì)數(shù)器TMOD=0x02。11方式3,T0分為2個(gè)8位獨(dú)立計(jì)數(shù)器,T1為無(wú)中斷重裝8位計(jì)數(shù)器TMOD=0x03。
IE中斷使能寄存器
通過(guò)設(shè)置中斷使能寄存器IE的EA位,使能所有中斷每個(gè)中斷源都有單獨(dú)的使能位,可通過(guò)軟件設(shè)置IE中相應(yīng)的使能位在任何時(shí)候使能或禁能中斷,中斷使能寄存器IE可位尋址,IE寄存器地址為A8H,位地址(由低位到高位)為A8H-AFH。
IE寄存器結(jié)構(gòu)
各控制位功能介紹如下:
1)EA:使能標(biāo)志位置位則所有中斷使能復(fù)位則禁止所有中斷
2)ET2:定時(shí)器2中斷使能。
3)ES:串行通信中斷使能。
4)ET1:定時(shí)器1中斷使能。
5)EX1:外部中斷1使能。
6)ET0:定時(shí)器0中斷使能。
7)EX0:外部中斷0使能。
IP中斷優(yōu)先級(jí)寄存器
每個(gè)中斷源都可通過(guò)設(shè)置中斷優(yōu)先級(jí)寄存器IP來(lái)單獨(dú)設(shè)置中斷優(yōu)先級(jí),如果每個(gè)中斷源的相應(yīng)位被置位,則該中斷源的優(yōu)先級(jí)為高如果相應(yīng)的位被復(fù)位,則該中斷源的優(yōu)先級(jí)為低。此寄存器可位尋址,字節(jié)地址為B8H,單元地址是B8H-BDH。
IP寄存器結(jié)構(gòu)
各控制位功能介紹如下:
1)-保留
2)-保留
3)PT2定時(shí)器2中斷優(yōu)先級(jí)
4)PS串行通信中斷優(yōu)先級(jí)
5)PT1定時(shí)器1中斷優(yōu)先級(jí)
6)PX1外部中斷1優(yōu)先級(jí)
7)PT0定時(shí)器0中斷優(yōu)先級(jí)
8)PX0外部中斷0優(yōu)先級(jí)
T2CON定時(shí)器/計(jì)數(shù)器控制寄存器
51系列單片機(jī),如8052第三個(gè)定時(shí)/計(jì)數(shù)器定時(shí)器2,他的控制位在特殊功能寄存器定時(shí)器2控制寄存器可位尋址。通過(guò)由軟件設(shè)置T2CON,可使定時(shí)/計(jì)數(shù)器以三種基本工作:
方式一,第一種為捕捉方式,設(shè)置為捕捉方式時(shí),和定時(shí)器0或定時(shí)器1一樣以16位方式工作。這種方式通過(guò)位EXEN2來(lái)選擇,當(dāng)置位EXEN2時(shí),如果T2EX有負(fù)跳變電平,將把當(dāng)前的數(shù)據(jù)鎖存在RCAP2H和RCAP2L中,這個(gè)事件可用來(lái)產(chǎn)生中斷。
方式二,自動(dòng)重裝方式,其中包含了兩個(gè)子功能,由EXEN2來(lái)選擇,當(dāng)EXEN2復(fù)位時(shí)16位定時(shí)器溢出將觸發(fā)一個(gè)中斷,并將RCAP2H和RCAP2L中的數(shù)裝入定時(shí)器中。當(dāng)EXEN2置位時(shí),除上述功能外T2EX引腳的負(fù)跳變將產(chǎn)生一次重裝操作。
方式三,用來(lái)產(chǎn)生串行口通訊所需的波特率,這通過(guò)同時(shí)或分別置位RCLK和TCLK來(lái)實(shí)現(xiàn),在這種方式中,每個(gè)機(jī)器周期都將使定時(shí)器加1。而不像定時(shí)器0和1那樣需要12個(gè)機(jī)器周期,這使得串行通訊的波特率更高。
T2CON寄存器結(jié)構(gòu)
各控制位功能介紹如下:
1)TF2,定時(shí)器2溢出標(biāo)志位,定時(shí)器2溢出時(shí)將置位,當(dāng)TCLK或RCLK為1時(shí)將不會(huì)置位。
2)EXF2,定時(shí)器2外部標(biāo)志,當(dāng)EXEN2=1并在引腳T2EX檢測(cè)到負(fù)跳變時(shí)置位,如果定時(shí)器2中斷被允許將產(chǎn)生中斷。
3)RCLK,接收時(shí)鐘標(biāo)志當(dāng)串行口以方式1或3工作時(shí)將使用定時(shí)器2的溢出率作為串行口接收時(shí)鐘頻率。
4)TCLK,發(fā)送時(shí)鐘標(biāo)志位當(dāng)串行口以方式1或3工作時(shí)將使用定時(shí)器2的溢出率作為串行口接收時(shí)鐘頻率。
5)EXEN2,定時(shí)器2外部允許標(biāo)志當(dāng)EXEN2=1時(shí)在T2EX引腳出現(xiàn)負(fù)跳變時(shí)將造成定時(shí)器2捕捉或重裝并置位EXF2產(chǎn)生中斷。
6)TR2,定時(shí)器運(yùn)行控制位置位時(shí)定時(shí)器2將開(kāi)始工作否則定時(shí)器2停止工作。7)
C/T2,定時(shí)器計(jì)數(shù)方式選擇位如果C/T2=1定時(shí)器2將作為外部事件計(jì)數(shù)器否則對(duì)內(nèi)部時(shí)鐘脈沖計(jì)數(shù)。
8)CP/RL2,捕捉/重裝標(biāo)志位當(dāng)EXEN2=1時(shí)如果CP/RL2=1T2EX引腳的負(fù)跳變將造成捕捉如果CP/RL2=0T2EX引腳的負(fù)跳變將造成重裝。
評(píng)論