版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章80C51內(nèi)核衍生型單片機(jī)芯片及應(yīng)用
以增強(qiáng)型MCS-51作內(nèi)核的衍生型嵌入式單片機(jī)芯片品種很多,如P8XC51RX、P89C66X、P89C6XX2、P8XC55X、P8XC59X、LPC76X、LPC900系列等。本章將簡要介紹通用性較強(qiáng)、性價(jià)比高、硬件資源豐富的8XC51RX、P89C6XX2、P89C66X以及SST公司的SST89E(V)系列單片機(jī)芯片特點(diǎn)、新增硬件資源及其使用方法。在敘述過程中,采用對(duì)比手法,著重,甚至僅僅介紹這些芯片新增功能及其用法,不介紹與8XC5X、8XC5XX2系列相同的硬件功能。1/23/2026單片機(jī)原理與應(yīng)用5.189C51RX系列單片機(jī)概述
89C51RX系列單片機(jī)以增強(qiáng)型MCS-51CPU作內(nèi)核,硬件資源、指令系統(tǒng)、引腳排列與相同封裝形式的增強(qiáng)型80C51芯片保持100%兼容。與增強(qiáng)型MCS-51相比,89C51RX系列的最大特點(diǎn)是擴(kuò)展了片內(nèi)存儲(chǔ)器的種類、容量,在89C51RX系列芯片中程序存儲(chǔ)器容量最大為64KB,片內(nèi)RAM存儲(chǔ)器容量為512~1024字節(jié),并集成了可編程計(jì)數(shù)器陣列PCA(與Intel8XC51FX系列內(nèi)嵌的可編程計(jì)數(shù)器陣列兼容)、硬件看門狗計(jì)數(shù)器WDT??梢姡?9C51RX系列硬件資源豐富,一片89C51RX芯片即可構(gòu)成一個(gè)功能相對(duì)較完善的單片機(jī)應(yīng)用系統(tǒng)。1/23/2026單片機(jī)原理與應(yīng)用89C51RX系列包括Philips公司的P89C51RXXH系列(Philips公司第一代89C51RX系列芯片)、P89C51RXX(Philips公司第二代89C51RX系列芯片)和Atmel公司的89C51RX系列(包括AT89C51RX系列、T89C51RX、TS87C51RX)以及SST公司的SST89E(V)554RC、SST89E(V)564RD和SST89E(V)5XRD2芯片。1/23/2026單片機(jī)原理與應(yīng)用5.2P89C51RX引腳功能
P89C51RX系列具有PDIP40、PLCC44(CLCC44)LQFP44三種封裝形式,引腳排列與相同封裝形式的增強(qiáng)型MCS-51芯片保持兼容,如圖5-2所示。由于P89C51RX比增強(qiáng)型MCS-51多了5模塊可編程計(jì)數(shù)器陣列PCA,因此P1口的P1.2~P1.7引腳具有復(fù)用功能,既可作為一般I/O引腳使用,也可作為5個(gè)PCA模塊的計(jì)數(shù)脈沖輸入端、捕獲/比較模式外部輸入/輸出端。
1/23/2026單片機(jī)原理與應(yīng)用1/23/2026單片機(jī)原理與應(yīng)用1/23/2026單片機(jī)原理與應(yīng)用圖5-2P89C51RX系列芯片封裝形式及引腳排列1/23/2026單片機(jī)原理與應(yīng)用5.3P89C51RX系列片內(nèi)存儲(chǔ)器結(jié)構(gòu)在介紹89C51RX系列CPU內(nèi)部資源前,先列出89C51RX系列芯片特殊功能寄存器(或寄存器位),如表5-3所示。1/23/2026單片機(jī)原理與應(yīng)用5.3.1片內(nèi)程序存儲(chǔ)器89C51RX系列采用FlashROM作為片內(nèi)程序存儲(chǔ)器,容量從8KB~64KB,無須通過EPROM、FlashROM芯片擴(kuò)展外部程序存儲(chǔ)器,因此引腳一般通過2.0K~4.7K電阻接電源Vcc。
可以在通用編程器上對(duì)89C51RX系列芯片編程,也可以用ISP、IAP方式進(jìn)行編程。1/23/2026單片機(jī)原理與應(yīng)用5.3.2片內(nèi)數(shù)據(jù)存儲(chǔ)器
P89C51RX數(shù)據(jù)存儲(chǔ)器包括片內(nèi)RAM和外部RAM兩大部分,其中片內(nèi)RAM存儲(chǔ)器由256字節(jié)的內(nèi)部RAM(與增強(qiáng)型MCS-51芯片相同)和256~768字節(jié)的內(nèi)部擴(kuò)展RAM組成,如圖5-3所示。圖5-3P89C51RX/87C51RX存儲(chǔ)器結(jié)構(gòu)1/23/2026單片機(jī)原理與應(yīng)用256字節(jié)內(nèi)部RAM、外部RAM讀寫方法與增強(qiáng)型MCS-51相同;內(nèi)部擴(kuò)展RAM地址空間與外部RAM地址空間重疊,也是通過MOVX指令讀寫。為區(qū)別MOVX指令的讀寫對(duì)象——是內(nèi)部擴(kuò)展RAM,還是外部RAM,在89C51RX系列輔助功能寄存器AUXR中增加了EXTRAM選擇位。當(dāng)EXTRAM為0時(shí),MOVX指令讀寫對(duì)象為內(nèi)部擴(kuò)展RAM;反之,當(dāng)EXTRAM為1時(shí),MOVX指令讀寫對(duì)象為外部RAM。由于復(fù)位時(shí),AUXR寄存器內(nèi)容為xxxxxx00B,因此復(fù)位后,MOVX指令讀寫對(duì)象為內(nèi)部擴(kuò)展RAM。當(dāng)需要讀寫外部RAM時(shí),須通過如下指令,將EXTRAM位置1。1/23/2026單片機(jī)原理與應(yīng)用ORAUXR,#00000010B ;由于AUXR寄存器不具有位尋址功能,只能通過或;指令將指定位置1。MOVDPTR,#XXXXH ;外部RAM地址送DPTR。MOVXA,@DPTR ;讀外部RAM單元內(nèi)容。在讀寫內(nèi)部擴(kuò)展RAM期間,P0、P2口及、引腳無效,因此當(dāng)以R0或R1作間接尋址寄存器讀寫擴(kuò)展RAM時(shí),只能訪問擴(kuò)展RAM前256字節(jié)。
1/23/2026單片機(jī)原理與應(yīng)用5.4可編程計(jì)數(shù)器陣列PCA及應(yīng)用
P89C51RX系列可編程計(jì)數(shù)器陣列含有5個(gè)結(jié)構(gòu)相同的16位捕捉/比較計(jì)數(shù)器,每個(gè)模塊均可以編程為捕捉模式、軟件定時(shí)器模式、高速輸出模式、脈寬調(diào)制(PWM)模式,此外模塊4還可作為看門狗定時(shí)器WDT使用,如圖5-4所示。
1/23/2026單片機(jī)原理與應(yīng)用圖5-4可編程計(jì)數(shù)器陣列PCA
1/23/2026單片機(jī)原理與應(yīng)用5.4.1PCA結(jié)構(gòu)及控制在P89C51RX中,為簡化硬件結(jié)構(gòu),PCA單元電路內(nèi)五個(gè)計(jì)數(shù)模塊共用一個(gè)16位加法計(jì)數(shù)器(CH和CL)作為記時(shí)基準(zhǔn),計(jì)數(shù)脈沖來源由PCA模式寄存器CMOD的CPS1、CPS0位決定,允許/禁止PCA計(jì)數(shù)器計(jì)數(shù)由PCA控制寄存器CCON的CR位控制,如圖5-5所示。
1/23/2026單片機(jī)原理與應(yīng)用圖5-5PCA計(jì)數(shù)器及控制
1/23/2026單片機(jī)原理與應(yīng)用
PCA中斷控制邏輯如圖5-6所示。當(dāng)某一模塊產(chǎn)生捕捉(將PCA計(jì)數(shù)器捕捉到相應(yīng)模塊捕捉/比較寄存器)或匹配(PCA計(jì)數(shù)器與相應(yīng)模塊捕捉/比較寄存器相等)時(shí),CCON寄存器相應(yīng)模塊匹配/捕捉標(biāo)志位CCFn置1,能否產(chǎn)生PCA中斷請(qǐng)求由相應(yīng)模塊的ECCFn位控制。
1/23/2026單片機(jī)原理與應(yīng)用圖5-6PCA中斷控制邏輯1/23/2026單片機(jī)原理與應(yīng)用1.PCA模式寄存器CMOD
PCA模式寄存器CMOD各位含義如下:
(1)
CPS1、CPS0——用于選擇PCA計(jì)數(shù)器計(jì)數(shù)脈沖來源。PCA內(nèi)五個(gè)模塊共用一個(gè)16位加法計(jì)數(shù)器(CH和CL),計(jì)數(shù)脈沖來源由CMOD寄存器的CPS1、CPS0位決定:CPS1、CPS1、CPS0
計(jì)數(shù)脈沖源00
00
內(nèi)部時(shí)鐘信號(hào)fosc/6(6時(shí)鐘模式)或fosc/12(12時(shí)鐘模式)01
01內(nèi)部時(shí)鐘信號(hào)fosc/2(6時(shí)鐘模式)或fosc/4(12時(shí)鐘模式)((可見,PCA模塊最高計(jì)數(shù)頻率比T0、T1、T2高了3倍)1010定時(shí)器T0的溢出脈沖。11來自ECI/P1.2引腳的外部脈沖。在6時(shí)鐘模式下,外部脈沖最高頻率為fosc/4;在12時(shí)鐘模式下,外部脈沖最高頻率為fosc/8。1/23/2026單片機(jī)原理與應(yīng)用(2)
ECF——PCA計(jì)數(shù)器CH/CL溢出中斷允許。當(dāng)PCA計(jì)數(shù)器溢出時(shí),PCA控制寄存器CCON的溢出標(biāo)志CF有效。如果ECF=1,且中斷允許寄存器IE的EC、EA位為1,則CPU將響應(yīng)PCA計(jì)數(shù)器溢出中斷。(3)
CIDL——節(jié)電狀態(tài)下PCA運(yùn)行控制。當(dāng)CIDL=0時(shí),在節(jié)電狀態(tài)下,PCA計(jì)數(shù)器繼續(xù)計(jì)數(shù)(圖5-5中的與非門輸出恒為1,與PCON寄存器節(jié)電運(yùn)行控制位IDL內(nèi)容無關(guān));反之,當(dāng)CIDL=1時(shí),在節(jié)電狀態(tài)下,PCA計(jì)數(shù)器停止計(jì)數(shù)(由于CIDL位為1,圖5-5中與非門輸出狀態(tài)由PCON寄存器節(jié)電運(yùn)行控制位IDL決定,當(dāng)IDL位為1時(shí),與非門輸出為0,PCA計(jì)數(shù)器停止計(jì)數(shù))。(4)
WDTE——禁止/允許模塊4看門狗工作。1/23/2026單片機(jī)原理與應(yīng)用2.PCA計(jì)數(shù)器(CH和CL)
16位加法計(jì)數(shù)器,計(jì)數(shù)脈沖由CMOD寄存器的CPS1、CPS0位定義,每來一個(gè)脈沖,計(jì)數(shù)器加1,當(dāng)CH溢出時(shí),CCON寄存器內(nèi)的溢出標(biāo)志CF置位。
1/23/2026單片機(jī)原理與應(yīng)用3.PCA控制寄存器CCON(具有位地址(1)
CCF4~CCF0——分別是模塊4~0的中斷標(biāo)志位。當(dāng)產(chǎn)生匹配(比較)或捕捉時(shí)由硬件置1。但CPU響應(yīng)PCA中斷請(qǐng)求后,不能自動(dòng)清除,需要軟件清0。(2)
CR——PCA計(jì)數(shù)器啟動(dòng)控制位。在正常狀態(tài)下,CR=1時(shí),計(jì)數(shù)脈沖開關(guān)閉合,每來一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器加1;當(dāng)CR=0時(shí),PCA計(jì)數(shù)器停止計(jì)數(shù)。(3)CF——PCA計(jì)數(shù)器溢出標(biāo)志。當(dāng)PCA計(jì)數(shù)器溢出時(shí),CF自動(dòng)置1(不自動(dòng)清除,需要軟件清0)。
1/23/2026單片機(jī)原理與應(yīng)用4.模塊比較/捕捉寄存器(CCAPnH和CCAPnL)和模塊模式寄存器CCAPMn
每一模塊對(duì)應(yīng)一個(gè)16位比較/捕捉寄存器(即高8位CCAPnH和低8位CCAPnL)、模塊工作方式寄存器CCAPMn。
每一模塊的工作方式由對(duì)應(yīng)模塊的工作方式寄存器CCAPMn決定,如模塊0的工作方式由模塊0的工作方式寄存器CCAPM0決定、模塊1的工作方式由模塊1的工作方式寄存器CCAPM1決定,依此類推,模塊4的工作方式由模塊4的工作方式寄存器CCAPM4決定。模塊工作方式寄存器CCAPM0~CCAPM4結(jié)構(gòu)、各位含義相同,如下所示:1/23/2026單片機(jī)原理與應(yīng)用CCAPMn(n=0~4)寄存器位模塊工作方式-ECOMnCAPPnCAPNnMATnTOGnPWMnECCFnX0000000無XX10000X16位捕捉(CEXn引腳上升沿觸發(fā))XX01000X16位捕捉(CEXn引腳下降沿觸發(fā))XX11000X16位捕捉(CEXn引腳上、下沿觸發(fā))X100100X16位軟件定時(shí)器X100110X16位高速輸出X10000108位PWM輸出X1001X0X看門狗定時(shí)器(模塊4)表5-4PCA模塊工作方式
1/23/2026單片機(jī)原理與應(yīng)用5.4.2PCA模塊初始化步驟PCA模塊初始化步驟包括:(1)初始化PCA模式寄存器CMOD,選擇PCA計(jì)數(shù)器計(jì)數(shù)脈沖源、允許/禁止節(jié)電狀態(tài)下PCA計(jì)數(shù)器計(jì)數(shù)、禁止/允許PCA計(jì)數(shù)器溢出中斷。(2)計(jì)數(shù)初值送CH/CL,完成PCA計(jì)數(shù)器CH/CL的初試化。(3)初始化相應(yīng)模塊工作方式寄存器CCAPMn,選擇所需的工作模式。(4)
初始化相應(yīng)模塊的比較/捕捉寄存器(CCAPnL、CCAPnH)。注意:必須先初始化低8位CCAPnL,后初始化CCAPnH,否則會(huì)關(guān)閉模式寄存器CCAPMn的ECOMn位(或者說完成CCAPnH寄存器初始化后,比較器使能控制ECOMn位自動(dòng)置1)。(5)啟動(dòng)PCA計(jì)數(shù)器(即執(zhí)行“SETBCR”命令,將CCON寄存器的CR位置1)。1/23/2026單片機(jī)原理與應(yīng)用5.4.3PCA模塊工作模式1/23/2026單片機(jī)原理與應(yīng)用1.捕捉模式
當(dāng)CCAPMn寄存器的CAPP(上升沿捕捉)、CAPN(下降沿捕捉)之一為1,而其他位為0時(shí),相應(yīng)的PCA模塊就工作于捕捉模式,如圖5-7所示。圖5-7捕捉模式1/23/2026單片機(jī)原理與應(yīng)用2.軟件定時(shí)器
當(dāng)PCA模式寄存器CMOD的WDTE位為0;而模塊模式CCAPMn寄存器的MAT位為1(否則匹配時(shí)相應(yīng)CCFn位不置1,無法通過查詢或中斷方式確定定時(shí)時(shí)間到),其他位為0時(shí),相應(yīng)PCA模塊工作于定時(shí)器狀態(tài),定時(shí)時(shí)間由CH/CL初值、模塊比較/捕捉寄存器CCAPnH、CCAPnL決定,如圖5-8所示。完成比較/捕捉寄存器高8位CCAPnH裝入后,ECOM位置1,比較即處于允許狀態(tài)。當(dāng)PCA計(jì)數(shù)器等于模塊比較/捕捉寄存器(即發(fā)生匹配)時(shí),CCON寄存器相應(yīng)標(biāo)志位CCFn即有效,如果ECCFn位為1,將產(chǎn)生PCA中斷請(qǐng)求。1/23/2026單片機(jī)原理與應(yīng)用圖5-8PCA軟件定時(shí)器模式當(dāng)PCA模塊工作于軟件定時(shí)模式時(shí),不影響相關(guān)引腳的狀態(tài),即相應(yīng)CEXn引腳依然可作為I/O引腳使用。1/23/2026單片機(jī)原理與應(yīng)用3.高速輸出模式
高速輸出模式也是一種軟件定時(shí)方式。在軟件定時(shí)模式中,如果模塊控制寄存器CCAPMn的TOG位為1,則匹配(定時(shí)時(shí)間到)時(shí),將觸發(fā)CEXn引腳狀態(tài)翻轉(zhuǎn)。當(dāng)MATn、ECCFn位為1時(shí),觸發(fā)引腳翻轉(zhuǎn)的同時(shí),將產(chǎn)生PCA中斷請(qǐng)求,如圖5-9所示。使用高速PCA模式觸發(fā)引腳狀態(tài)獲得的定時(shí)信號(hào)比用軟件定時(shí)器在中斷服務(wù)程序中通過SETBP1.X、CLRP1.X或CPLP1.X指令獲得的定時(shí)信號(hào)要精確得多。1/23/2026單片機(jī)原理與應(yīng)用圖5-9高速輸出模式1/23/2026單片機(jī)原理與應(yīng)用4.8位PWM輸出
8位PWM輸出結(jié)構(gòu)如圖5-10所示。圖5-108位PWM輸出方式1/23/2026單片機(jī)原理與應(yīng)用5.看門狗模式
圖5-14PCA看門狗方式1/23/2026單片機(jī)原理與應(yīng)用如果PCA模式寄存器CMOD的WDTE位為1,且模塊4的模式寄存器CCAMP4為01001x0xB時(shí),則模塊4工作于看門狗狀態(tài),如圖5-14所示。將初值寫入模塊4比較/捕捉寄存器高8位后,模塊4的模式寄存器CCAPM4的ECOM4位即為1(允許比較),看門狗定時(shí)器就開始工作:當(dāng)PCA計(jì)數(shù)器等于模塊4的比較/捕捉寄存器時(shí),高電平的匹配輸出信號(hào)將觸發(fā)CPU內(nèi)部復(fù)位操作(與硬件看門狗WDT不同,PCA模塊4看門狗僅引起CPU內(nèi)部復(fù)位,但不會(huì)將CPU的復(fù)位引腳RST置高電平)。
1/23/2026單片機(jī)原理與應(yīng)用5.589C51RX系列中斷控制系統(tǒng)
89C51RX系列中斷控制系統(tǒng)與增強(qiáng)型MCS-51相同,但由于89C51RX系列內(nèi)嵌了PCA計(jì)數(shù)陣列,因此89C51RX系列具有7個(gè)中斷源(6個(gè)增強(qiáng)型MCS-51中斷源+PCA中斷源)。89C51RX系列使用增強(qiáng)型MCS-51中斷控制寄存器IE、中斷優(yōu)先級(jí)控制寄存器IP和IPH中的保留位分別作為PCA中斷允許位和優(yōu)先級(jí)控制位,PCA中斷入口地址規(guī)定為0033B。即在89C51RX系列中IE寄存器的b6位是PCA中斷允許/禁止控制位,IP、IPH的b6位是PCA中斷優(yōu)先級(jí)控制位。如圖5-15所示。1/23/2026單片機(jī)原理與應(yīng)用(a)89C51RX中斷控制寄存器IE1/23/2026單片機(jī)原理與應(yīng)用(b)89C51RX中斷優(yōu)先級(jí)IP(c)89C51RX中斷優(yōu)先級(jí)高位IPH1/23/2026單片機(jī)原理與應(yīng)用在同優(yōu)先級(jí)中斷中,硬件查詢順序如下:中斷源 入口地址外中斷 0003H定時(shí)器T0溢出中斷 000BH外中斷 0013H定時(shí)器T1溢出中斷 001BHPCA計(jì)數(shù)器中斷 0033H串行口中斷 0023H定時(shí)器T2中斷 002BH1/23/2026單片機(jī)原理與應(yīng)用5.7P89C6XX2系列
2002年4月,Philips公司推出了P89C6XX2系列芯片,該系列芯片實(shí)際上是P89C51RX芯片的簡化版,功能介于P89C5XX2系列和P89C51RX系列之間。與P89C51RX系列相比,最大特征是去掉了PCA模塊(相應(yīng)地也就沒有與PCA模塊有關(guān)的特殊功能寄存器);而與P89C5XX2系列相比,片內(nèi)程序存儲(chǔ)器容量大(64KB),且集成了256B~768B的片內(nèi)擴(kuò)展RAM(即ERAM),其中ERAM讀寫方法與P89C51RX相同。硬件資源、引腳排列、指令系統(tǒng)與P89C5XX2保持100%兼容。該系列主要包括P89C60X2(64KBFlashROM、256字節(jié)內(nèi)部RAM+256字節(jié)的片內(nèi)擴(kuò)展RAM)、P89C61X2(64KBFlashROM、256字節(jié)內(nèi)部RAM+768字節(jié)的片內(nèi)擴(kuò)展RAM)芯片,非常適合需要少量數(shù)據(jù)存儲(chǔ)器的單片機(jī)應(yīng)用系統(tǒng)。1/23/2026單片機(jī)原理與應(yīng)用由于P89C60X2/61X2帶有片內(nèi)擴(kuò)展RAM,與P89C5XX2系列相比,輔助寄存器AUXR各位含義與P89C51RX相同,也是通過EXTRAM控制位現(xiàn)實(shí)內(nèi)部擴(kuò)展RAM與外部RAM之間的切換,其他方面,如硬件資源、特殊功能寄存器(位)地址及各位含義與P89C5XX2系列完全相同,不再重復(fù)。1/23/2026單片機(jī)原理與應(yīng)用5.8P89C66X系列簡介
P89C66X系列芯片包括了P89C660、P89C662、P89C664、P89C668四款芯片,他們之間的差別僅僅是片內(nèi)程序存儲(chǔ)器、片內(nèi)擴(kuò)展RAM容量的不同,其中P89C660含有16KB的片內(nèi)程序存儲(chǔ)器,256字節(jié)片內(nèi)擴(kuò)展RAM;P89C662含有32KB的片內(nèi)程序存儲(chǔ)器,768字節(jié)片內(nèi)擴(kuò)展RAM;P89C664含有64KB的片內(nèi)程序存儲(chǔ)器,1792字節(jié)片內(nèi)擴(kuò)展RAM;P89C668含有64KB的片內(nèi)程序存儲(chǔ)器,7936字節(jié)片內(nèi)擴(kuò)展RAM。
P89C66X系列硬件資源與與P89C51RX系列基本相同,惟一區(qū)別是:加大了片內(nèi)RAM的容量,其中P89C668片內(nèi)RAM容量為8KB,扣除與標(biāo)準(zhǔn)80C52系列兼容的可直接尋址的256字節(jié)內(nèi)部RAM后,片內(nèi)擴(kuò)展RAM容量高達(dá)7936字節(jié);增加了I2C總線功能,因此增加了與I2C總線控制有關(guān)的特殊功能寄存器,相應(yīng)地中斷數(shù)量也增加到8個(gè)。
1/23/2026單片機(jī)原理與應(yīng)用5.8.1封裝形式及引腳功能
P89C66x采用PLCC44、PQFP44兩種封裝形式,引腳排列與相同封裝形式的P89C51RX系列兼容,惟一區(qū)別是P89C66X系列集成了I2C總線接口單元電路,因此P1.6、P1.7引腳具有復(fù)用功能,既可以作為P1口I/O引腳使用,也可以作為I2C總線時(shí)鐘信號(hào)SCL和數(shù)據(jù)線SDA,如下所示:
P1.6/SCL ;漏極開路。P1口I/O引腳(輸入/輸出);I2C總線同步時(shí)鐘信號(hào)(當(dāng)處理器作為主器件時(shí),輸出;當(dāng)處理器作為從器件時(shí),輸入)。
P1.7/SDA ;漏極開路。P1口I/O引腳(輸入/輸出);I2C總線數(shù)據(jù)/地址線,雙向。1/23/2026單片機(jī)原理與應(yīng)用5.8.2PCA模塊
P89C66X系列內(nèi)的PCA模塊功能與P89C51RX系列兼容,惟一區(qū)別是PCA模塊部分特殊功能寄存器地址不同,如表5-5所示。寄存器名功能描述P89C66X系列地址P89C51RX系列地址CCONPCA控制寄存器*C0HD8HCMODPCA模式寄存器C1HD9HCCAPM0模塊0模式寄存器C2HDAHCCAPM1模塊1模式寄存器C3HDBHCCAPM2模塊2模式寄存器C3HDCHCCAPM3模塊3模式寄存器C5HDDHCCAPM4模塊4模式寄存器C6HDEH1/23/2026單片機(jī)原理與應(yīng)用5.8.3中斷系統(tǒng)由于P89C66X系列增加了I2C總線接口單元電路,因此中斷源的數(shù)量增加到8個(gè),即多了I2C總線中斷標(biāo)志SI,需要9個(gè)中斷允許/禁止控制位,因此P89C66X系列與中斷控制有關(guān)的特殊功能寄存器比P89C51RX系列多,具體如下:1.中斷允許控制寄存器(IEN0和IEN1)P89C66X系列中斷允許控制寄存器(IEN0和IEN1)各含義如圖5-16所示。(a)中斷允許控制寄存器IEN01/23/2026單片機(jī)原理與應(yīng)用(b)中斷允許控制寄存器IEN1圖5-16中斷允許控制在P89C66X系列中,中斷控制寄存器IEN0相當(dāng)于增強(qiáng)型MCS-51系列的IE寄存器,但I(xiàn)2C總線中斷允許占用了定時(shí)器T2的中斷允許位,而將定時(shí)器T2中斷允許位ET2放在IEN1寄存器中。1/23/2026單片機(jī)原理與應(yīng)用2.中斷優(yōu)先級(jí)控制寄存器IP和IPH(a)P89C66X系列中斷優(yōu)先級(jí)IP(b)P89C66X系列中斷優(yōu)先級(jí)高位1/23/2026單片機(jī)原理與應(yīng)用在同優(yōu)先級(jí)中斷源中,硬件查詢順序如下:中斷源 入口地址外中斷 0003HI2C中斷 002BH定時(shí)器T0溢出中斷 000BH外中斷 0013H定時(shí)器T1溢出中斷 001BH串行口中斷 0023H定時(shí)器T2中斷 003BHPCA計(jì)數(shù)器中斷 0033H
可見,在P89C66X系列中,中斷優(yōu)先級(jí)控制寄存器IP、IPH與增強(qiáng)型MCS-51系列IP、IPH基本相同,但I(xiàn)2C總線中斷優(yōu)先級(jí)占用了原定時(shí)器T2的中斷優(yōu)先級(jí),而將定時(shí)器T2中斷優(yōu)先級(jí)放在IP、IPH的b7位1/23/2026單片機(jī)原理與應(yīng)用5.9SST公司SST89E(V)RD及SST89C5XRD2系列芯片
1.SST89E(V)系列芯片特點(diǎn)
SST(SiliconStorageTechnology)公司SST89E(V)系列芯片包括了SST89E554RC、SST89V554RC、SST89E564RD、SST89V564RD、SST89E554A以及SST89E(V)5XRD2系列芯片,與Philips、Atmel公司的89C51RX系列兼容性好(內(nèi)置的5模塊可編程計(jì)數(shù)器陣列PCA與P89C51RX系列完全兼容),但功能更強(qiáng)(功能及技術(shù)指標(biāo)與Philips公司的P89V51RD2、P89LV51RD2相似),價(jià)格更低1/23/2026單片機(jī)原理與應(yīng)用主要差別如下:(1)
大部分型號(hào)集成了SPI總線接口。(2)
硬件看門狗溢出時(shí)間可調(diào)(而P89C51RX系列內(nèi)置的硬件看門狗屬于“一次使能復(fù)位輸出”,溢出時(shí)間不調(diào))。(3)
提供軟件復(fù)位功能,并內(nèi)置了掉電檢測電路(而P89C51RX系列只有上電檢測電路)。(4)程序存儲(chǔ)器結(jié)構(gòu)略有不同,將程序存儲(chǔ)器分為兩大塊,即Block0和Block1。支持ISP和單字節(jié)寫入的IAP編程,理論上可作數(shù)據(jù)存儲(chǔ)器使用。但由于程序存儲(chǔ)器只支持扇區(qū)(容量為128字節(jié))擦除,沒有單字節(jié)擦除功能,因此當(dāng)需要重寫扇區(qū)內(nèi)任一已編程字節(jié)時(shí),先將該扇區(qū)內(nèi)所有字節(jié)讀到內(nèi)部擴(kuò)展RAM中修改,執(zhí)行扇區(qū)擦除操作后,再整體寫入。換句話說,需采用“讀—改—擦除—寫入”方式完成。1/23/2026單片機(jī)原理與應(yīng)用
(5)
預(yù)置了ISP編程引導(dǎo)指令碼,通過PC串行口即可實(shí)現(xiàn)代碼寫入,無須專用編程器。芯片出廠前已將ISP編程引導(dǎo)指令碼寫入Block1塊的前4K(舊型號(hào)為前2KB)空間內(nèi)。因此,最好不要擦除Bolck1的前4KB代碼,以免失去ISP編程功能(意外刪除ISP編程引導(dǎo)碼后,只能通過并行編程器重新寫入)。(6)
SST89E系列所有型號(hào)芯片均集成了768字節(jié)的ERAM,讀寫方式與P89C51RX、P89C6XX2相同。1/23/2026單片機(jī)原理與應(yīng)用2.SST89E(V)系列不同型號(hào)芯片之間的差異
SST89E554A、SST89E(V)5XRD2系列(包括了SST89E(V)52RD2、SST89E(V)54RD2、SST89E(V)58RD2、SST89E(V)516RD2等芯片)與SST89E(V)564RD、SST89E(V)554RC完全兼容,可直接替換相同存儲(chǔ)器容量的SST89E(V)系列芯片,彼此之間區(qū)別在于:PLCC及44-leadTQFP封裝的SST89C5XRD2系列芯片提供了一個(gè)4位的P4口(P4.3~P4.0)及兩個(gè)外部輸入端(、 ),因此SST89C5XRD2系列芯片中斷源總數(shù)為10個(gè)。
DIP、PLCC封裝引腳排列如圖5-18所示。
1/23/2026單片機(jī)原理與應(yīng)用圖5-18SST89E(V)系列芯片引腳排列1/23/2026單片機(jī)原理與應(yīng)用2.SST89E(V)系列新增特殊功能寄存器(位)
方便查閱、使用,表5-5列出SST89E(V)系列新增的特殊功能寄存器及寄存器位。表5-5SST89E(V)系列新增特殊功能寄存器及寄存器位1/23/2026單片機(jī)原理與應(yīng)用SFR寄存器名符號(hào)位地址/位定義名字節(jié)地址復(fù)位后初值b7b6b5B4b3b2b1b0FlashROM配置寄存器SFCF-IAPEN
---SWRBSELB1Hx0xxxxxxBFlashROM命令寄存器SFCMFIEb6-b0(FlashROM命令)B2H00HFlashROM地址寄存器SFALFlashROM存儲(chǔ)器地址低8位(A7~A0)B3H00HFlashROM地址寄存器SFAHFlashROM地址存儲(chǔ)器高8位(A15~A8)B4H00HFlashROM數(shù)據(jù)寄存器SFDT
B5H00HFlash狀態(tài)寄存器SFSTSB1SB2SB3-EDCFLASH_BUSY--B6HXxxxx0xxBSPI控制寄存器SPCRSPIESPEDORDMSTRCPOLCPHASPR1SPR0D5H00000100BSPI狀態(tài)寄存器SPSRSPIFWCOL
AAH00xxxxxxBSPI數(shù)據(jù)寄存器SPDR
86H00H看門狗控制寄存器WDTC*---WDOUTWDREWDTSWDTSWDTC0Hxxx00x00b看門狗數(shù)據(jù)寄存器WDTD
85H00H電源控制寄存器PCONSMOD1SMOD0BOFPOFGF1GF0PDIDL87H00010000中斷控制寄存器AIEA*----EBO---E8Hxxxx0xxxB中斷優(yōu)先級(jí)1低8位IP1*1--1PBOPX3PX21F8H1xx10001B中斷優(yōu)先級(jí)1高8位IP1H1--1PBOHPX3HPX2H1F7H1xx10001B外中斷2、3控制寄存器XICON-EX3IE3IT3-EX2IE2IT2AEH00HP4口寄存器P41111P4.3P4.2P4.1P4.0A5HFFH1/23/2026單片機(jī)原理與應(yīng)用說明:(1)
帶“*”寄存器具有位尋址功能。(2)
帶灰色背景寄存器是SST89E554A、SST89E5XRD2系列新增的特殊功能寄存器。(3)PCON寄存器中除新增的BOF位外,其他位含義與P89C51RX系列相同。(4)P89C51RX系列特殊寄存器(參見表5-3)相比,SST系列沒有時(shí)鐘控制寄存器CKCON(即SST時(shí)鐘選擇在FlashROM存儲(chǔ)器中)、看門狗復(fù)位寄存器WDTRST(因?yàn)镾ST89E系列看門狗計(jì)數(shù)器與P89C51RX系列不兼容,有自己專用的控制寄存器)。(5)SST89E系列輔助功能寄存器AUXR1的b5位沒有定義。1/23/2026單片機(jī)原理與應(yīng)用5.9.1SST89E(V)系列程序存儲(chǔ)器結(jié)構(gòu)及映像
SST89E(V)564RD、SST89E(V)554RC、SST89E554A、SST89E(V)5XRD2芯片F(xiàn)lashROM程序存儲(chǔ)器由Block0(64KB/32KB/16KB/8KB)和Block1(8KB)組成,支持ISP及單字節(jié)寫入的IAP編程方式,可作數(shù)據(jù)存儲(chǔ)器使用。每個(gè)存儲(chǔ)器塊被分成若干扇區(qū),每扇區(qū)容量為128字節(jié)。1/23/2026單片機(jī)原理與應(yīng)用對(duì)SST89E(V)564RD、SST89E(V)516RD2芯片來說,程序存儲(chǔ)器實(shí)際容量為72KB,其中Block0容量為64KB,物理地址空間為0000~FFFFH;Block1容量為8KB,物理地址空間為10000~11FFFH。但因PC指針只有16位,最大尋址范圍為64KB,這就涉及存儲(chǔ)器Block0、Block1重定位問題。對(duì)SST89E(V)554RC、SST89E(V)554A、SST89E(V)58RD2芯片來說,程序存儲(chǔ)器實(shí)際容量為48KB,其中Block0容量為32KB,物理地址空間為0000~7FFFH;Block1容量為8KB,物理地址空間為E000~FFFFH。在SST89E(V)系列單片機(jī)芯片中,與程序存儲(chǔ)器有關(guān)的特殊功能寄存器如表5-6所示。表5-6與FlashROM存儲(chǔ)器有關(guān)特殊功能寄存器1/23/2026單片機(jī)原理與應(yīng)用SFR寄存器名符號(hào)位地址/位定義名字節(jié)地址復(fù)位后初值b7b6B5B4B3B2b1b0FlashROM配置寄存器SFCF-IAPEN
---SWRBSELB1HX0xxxxxxBFlashROM命令寄存器SFCMFIEb6-b0(FlashROM命令)B2H00HFlashROM地址寄存器SFAL低8位地址A7~A0B3H00HFlashROM地址寄存器SFAH高8位地址A15~A8B4H00HFlashROM數(shù)據(jù)寄存器SFDT
B5H00HFlashROM狀態(tài)寄存器SFSTSB1SB2SB3-EDCFLASH_BUSY--B6HXxxxx0xxB1/23/2026單片機(jī)原理與應(yīng)用其中:FlashROM配置寄存器SFCF各位含義如下:IAPEN(EnableIAPoperation)是IAP操作開關(guān)。當(dāng)IAPEN為1時(shí),允許IAP編程操作;反之禁止IAP操作。BSEL(Programmemoryblockswitching)是存儲(chǔ)器塊切換開關(guān);SWR(SoftwareReset),即軟件復(fù)位。當(dāng)通過軟件(如ORLSFCF,#02H)方式將SWR位置1時(shí),將產(chǎn)生軟件復(fù)位操作——PC指針置為0000H、重新初始化除SFCF[1](SWR)、WDTC[2](WDTS)兩位外所有特殊功能寄存器位(但不改變內(nèi)部RAM)。復(fù)位后,F(xiàn)lashROM配置寄存器SFCF的b1、b0(為敘述方便常用寄存器名[位編號(hào)]表示,如SFCF的b1、b0位用SFCF[1,0])初值由硬件配置位SC1、SC0(這兩位內(nèi)容只能通過編程方式設(shè)置)決定,如表5-7、5-8所示:1/23/2026單片機(jī)原理與應(yīng)用表5-7SST89E(V)544、SST89E554A、SST89E(V)52RD2、SST89E(V)54RD2、SST89E(V)58RD2復(fù)位后FlashROM配置寄存器SFCF[1,0]內(nèi)容
存儲(chǔ)器塊定位配置位復(fù)位后SFCF[1,0]位內(nèi)容
外部復(fù)位、上電復(fù)位看門狗計(jì)數(shù)器溢出復(fù)位、掉電復(fù)位軟件復(fù)位SC1SC0
1(未編程)1(未編程)00(缺省值)X010
1(未編程)0(已編程)01X111
0(已編程)1(未編程)101010
0(已編程)0(已編程)111111
1/23/2026單片機(jī)原理與應(yīng)用表5-8SST89E(V)564、SST89E(V)516RD2復(fù)位后FlashROM配置寄存器SFCF[1,0]內(nèi)容存儲(chǔ)器塊地址定位配置復(fù)位后SFCF[1,0]位內(nèi)容
外部復(fù)位、上電復(fù)位看門狗計(jì)數(shù)器溢出復(fù)位、掉電復(fù)位軟件復(fù)位SC0
1(未編程)00(缺省值)X010
0(已編程)01X111
1/23/2026單片機(jī)原理與應(yīng)用由此可見,復(fù)位后SFCF[0](即BESL)位內(nèi)容由SC0硬件配置位確定;SFCF[1](即SWR)位內(nèi)容由SC1硬件配置位確定。當(dāng)然也可以在運(yùn)行中,重新設(shè)置SFCF[0](即BESL)、SFCF[1](即SWR)位內(nèi)容。SFCF[1,0]位狀態(tài)編碼決定了存儲(chǔ)器塊Block0、Block1在程序存儲(chǔ)器地址空間分配,如圖5-19、5-20、5-21、5-22所示:1/23/2026單片機(jī)原理與應(yīng)用圖5-19SST89E(V)564RD、SST89V516RD2存儲(chǔ)器結(jié)構(gòu)1/23/2026單片機(jī)原理與應(yīng)用圖5-20SST89E(V)554RC、SST89E(V)58RD2存儲(chǔ)器結(jié)構(gòu)1/23/2026單片機(jī)原理與應(yīng)用圖5-21SST89E(V)54RD2存儲(chǔ)器結(jié)構(gòu)1/23/2026單片機(jī)原理與應(yīng)用圖5-22SST89E(V)52RD2存儲(chǔ)器結(jié)構(gòu)1/23/2026單片機(jī)原理與應(yīng)用對(duì)32KB+8KB芯片來說,在=1情況下,當(dāng)FlashROM配置寄存器SFCF[1,0]=00以及SFCF[1,0]=10或11時(shí),與64KB+8KB芯片相同。而當(dāng)SFCF[1,0]=01時(shí),Block0被定位在0000H~7FFFH(即低32KB程序存儲(chǔ)器空間內(nèi)),而Block1位于程序存儲(chǔ)器空間最后8KB,即E000H~FFFFH。SST89E(V)52RD2、SST89E(V)54RD2芯片存儲(chǔ)器結(jié)構(gòu)與SST89E(V)58RD2相似,只是Bolck0存儲(chǔ)塊容量小,分別為8KB、16KB。
盡管允許在運(yùn)行中,通過軟件方式修改SFCF[1,0]位信息。但SFCF[1,0]被修改后,Block0、Block1將立即重新定位,為避免混亂,盡量不要在PC指針小于2000H情況下修改SFCF[1,0]位信息。1/23/2026單片機(jī)原理與應(yīng)用5.9.2FlashROM狀態(tài)寄存器與芯片加密設(shè)置位關(guān)系FlashROM狀態(tài)寄存器SFST是只讀寄存器,相當(dāng)于Philips公司P89C51RX系列芯片的配置寄存器,只能通過編程方式(并行編程或IAP)方式修改。其中SB1~SB3是存儲(chǔ)器塊Block0、Block1加密位映像信息,例如當(dāng)加密位SB1被編程后,SFST[7]位為1,這樣即可通過狀態(tài)寄存器SFST了解存儲(chǔ)器塊加密的狀況。EDC(DoubleClockStatus)是雙時(shí)鐘選擇映象位,通過編程方式選擇雙時(shí)鐘模式時(shí),EDC為1,作用類似于P89C51RX系列的FX2位。FLASHBUSY是FlashROMIAP編程操作狀態(tài)指示位。當(dāng)該位為1時(shí),表示編程操作尚未完成,處于忙狀態(tài)。FlashROM狀態(tài)寄存器(SFST)的SB1~SB3位編碼確定了FlashROM中代碼的安全狀態(tài),如表5-10所示。1/23/2026單片機(jī)原理與應(yīng)用安全級(jí)別保密位SB1~SB3狀態(tài)(U-表示未編程;P-表示已編程)存儲(chǔ)器塊鎖定狀態(tài)說明SB1SB2SB3SFST[7,5]Block1Block01UUU000未鎖未鎖未加密,允許所有操作。2PUU100軟件鎖軟件鎖禁止外部程序通過MOVC指令讀3UPU010軟件鎖軟件鎖禁止外部程序通過MOVC指令讀及校驗(yàn)操作;在Block0執(zhí)行代碼時(shí),可通過IAP方式對(duì)Block1編程,反之亦然。PPU110硬件鎖
軟件瑣禁止外部程序通過MOVC指令讀及校驗(yàn)操作;在Block1執(zhí)行代碼時(shí),可通過IAP方式對(duì)Block0編程。Block1的IAP編程被禁止(因?yàn)锽lock1處于硬件鎖定狀態(tài))UUP001UPP011硬件鎖硬件鎖禁止外部程序通過MOVC指令讀及校驗(yàn)操作。禁止IAP編程(因?yàn)锽lock1、Block0均處于硬件鎖定狀態(tài))。PUP1014PPP111硬件鎖硬件鎖安全級(jí)別最高,除了具備安全級(jí)別3的硬件鎖定特征外,復(fù)位期間不理會(huì)EA引腳電平狀態(tài),只執(zhí)行FlashROM中代碼。1/23/2026單片機(jī)原理與應(yīng)用由此可見:(1)
SB1~SB3中任一位被編程,就禁止外部程序存儲(chǔ)器中的“MOVC”指令讀FlashROM中的代碼。(2)
處于硬件鎖定狀態(tài)下的存儲(chǔ)器塊(Bolck1或Block0)的IAP編程方式被禁止。(3)
為保證程序代碼不被非法讀出,可將SB1~SB3位編程為UPU狀態(tài)(即Block1和Block0均處于軟件鎖定狀態(tài)的安全級(jí)3),兩塊的IAP編程均處于允許狀態(tài),根據(jù)需要可對(duì)其中任一塊進(jìn)行IAP編程,靈活性大。當(dāng)SB1~SB3位編程為PPU或UUP狀態(tài)時(shí),Block1處于硬件鎖定狀態(tài),而Block0處于軟件鎖定狀態(tài),允許通過IAP方式對(duì)Bolck0編程。這適合于關(guān)鍵程序代碼位于Block1中,可根據(jù)需要對(duì)Block0進(jìn)行IAP編程。1/23/2026單片機(jī)原理與應(yīng)用5.9.3FlashROMIAP編程1.IAP編程操作初始化在SST89E564RD、SST89E554RC及SST89E554A芯片中,允許通過IAP方式對(duì)芯片、塊、扇區(qū)、字節(jié)、硬件配置位進(jìn)行擦除及編程操作,其過程如下:(1)
允許IAP操作,即通過“ORLSFCF,#40H”,將FlashROM配置寄存器SFCF的IAP位置1。允許IAP進(jìn)入編程的條件是:對(duì)于PLCC及PQFP封裝芯片來說,DISIAPL引腳處于懸空(對(duì)SST89E(V)564RD、SST89E(V)554RC)、對(duì)應(yīng)存儲(chǔ)器塊不處于硬件鎖定狀態(tài)。(2)初始化FlashROMIAP編程地址寄存器SFAH和SFAL,即將FlashROM單元高、低地址(即目標(biāo)地址)送地址寄存器SFAH、SFAL。編程數(shù)據(jù)送FlashROM數(shù)據(jù)寄存器SFDT。1/23/2026單片機(jī)原理與應(yīng)用(3)
控制命令及操作完成檢測方式送FlashROM命令寄存器SFCM。等待中斷或通過檢測FlashROM狀態(tài)寄存器SFST的FlashBusy位狀態(tài),確定當(dāng)前IAP操作是否完成。啟動(dòng)IAP操作后,F(xiàn)lashBusy位即刻變1,表示IAP編程操作尚未完成。當(dāng)IAP操作結(jié)束后,F(xiàn)lashBusy位清0,表示IAP操作結(jié)束。(4)
通過校驗(yàn)操作,檢查被擦除單元是否為0FFH(即空白);通過校驗(yàn)操作與寫入數(shù)據(jù)比較,檢查字節(jié)編程是否成功。(5)
關(guān)閉IAP操作。為防止代碼意外丟失,IAP操作結(jié)束后,執(zhí)行“ANLSFCF,#10111111B”指令,將IAPEN位清0,禁止IAP操作。1/23/2026單片機(jī)原理與應(yīng)用IAP編程命令及含義如表5-11所示。2.IAP編程命令1/23/2026單片機(jī)原理與應(yīng)用IAP編程命令SFCM[6:0]SFDT[7:0]SFAH[7:0]SFAL[7:0]說明Chip-Erase01H55HX(忽略)X(忽略)(整片擦除)Block-Erase0DH55HAHX(忽略)塊擦除,Sector-Erase(執(zhí)行時(shí)間<30ms)0BHXAHAL扇區(qū)擦除(1扇區(qū)容量為128字節(jié),將忽略AL[6,0])Byte-Program(執(zhí)行時(shí)間<50us)0EH寫入數(shù)據(jù)AH
AL字節(jié)編程Byte-Verity(Read)0CH單元內(nèi)容AHAL字節(jié)校驗(yàn)(讀操作)Prog-SB10FHAAHX(忽略)X(忽略)對(duì)加密位SB1編程Prog-SB203HAAHX(忽略)X(忽略)對(duì)加密位SB2編程Prog-SB305HAAHX(忽略)X(忽略)對(duì)加密位SB3編程Prog-SC109HAAHAAHX(忽略)對(duì)硬件配置位SC1編程Prog-SC009HAAH5AHX(忽略)對(duì)硬件配置位SC0編程Enable-Clock-Double08HAAH55HX(忽略)對(duì)時(shí)鐘配置位編程1/23/2026單片機(jī)原理與應(yīng)用說明:(1)
由于執(zhí)行IAP操作的指令碼與操作目標(biāo)地址不能位于同一存儲(chǔ)器塊內(nèi),因此只能在Bolck1中對(duì)Block0進(jìn)行IAP編程操作,反之亦然。只有IAP操作指令碼位于外部程序存儲(chǔ)器時(shí)才能執(zhí)行“整片擦除”操作。(2)
對(duì)包括加密位(即SB1~SB3)、復(fù)位后存儲(chǔ)器塊映像地址控制位(即SC0、SC1)、X2時(shí)鐘模式選擇位Enable-Clock-Double等硬件配置位(即表中帶背景命令)編程時(shí),IAP編程操作指令碼必須位于Block1或外部ROM中,否則無效。為此建議最好通過并行編程器完成硬件配置位(bit)的編程。這些硬件配置位一旦被編程后只能通過整體擦除方式恢復(fù)為未編程狀態(tài)。1/23/2026單片機(jī)原理與應(yīng)用(3)
當(dāng)命令寄存器SFCM的EIF位被初始化為0時(shí),可通過讀FlashROM狀態(tài)寄存器SFST的FlashBusy位確定IAP操作是否結(jié)束。反之,當(dāng)命令寄存器SFCM的EIF位為1時(shí),將借用下降沿觸發(fā)的中斷作為IAP操作結(jié)束標(biāo)志,在這種情況下,進(jìn)行IAP操作前,中斷控制寄存器IE中的EA、EX1位必須為1,且需初始化為下降沿觸發(fā)方式。在IAP操作期間P3.3引腳只能作為一般I/O引腳使用,而不能再作為外部中斷使用。(4)
可通過字節(jié)校驗(yàn)命令(Byte-Verity)讀出指定單元內(nèi)容,不過當(dāng)Block1與Block0地址空間不重疊,且均位于64KB尋址空間內(nèi)時(shí),通過“MOVCA,@A+DPTR”指令讀出指定單元內(nèi)容更方便(但會(huì)給芯片升級(jí)帶來隱患)。(5)由于沒有單字節(jié)擦除操作,因此當(dāng)需要重寫扇區(qū)內(nèi)任一已編程(內(nèi)容不是FFH)單元時(shí),可先將該扇區(qū)內(nèi)所有單元讀到擴(kuò)展RAM中保存后,再執(zhí)行扇區(qū)擦除操作,然后整體寫入。即只能采用“讀—改—擦除—寫入”方式完成。1/23/2026單片機(jī)原理與應(yīng)用3.IAP編程應(yīng)用舉例(1)
塊擦除操作ORLSFCF,#40H ;IAP位置1,允許IAP操作MOVSFAH,#XXH ;塊地址高位送SFAH寄存器。SFAH寄存器內(nèi)容可以是目標(biāo);塊內(nèi)任一單元的高8位地址。MOVSFDT,#55H ;塊擦除特征字送數(shù)據(jù)寄存器SFDTMOVSFCM,#0DH ;塊擦除命令碼送SFCM。當(dāng)采用查詢方式檢測塊擦除操作是;否結(jié)束時(shí),SFCM.7為0。WAIT:MOVA,SFSTJBACC.2,WAIT ;如果FlashBusy為1,就等待
當(dāng)通過中斷檢測IAP操作是否結(jié)束時(shí),上述程序段可改為:ORLTCON,#04H ;
定義為下降沿觸發(fā)ORLIE,#84H ;EA、EX1位置1ORLSFCF,#40H ;IAPEN位置1,允許IAP操作MOVSFAH,#XXH ;塊地址高位送SFAH寄存器,SFAH寄存器內(nèi)容可以是;目標(biāo)塊內(nèi)任一單元的高8位地址MOVSFDT,#55H ;塊擦除特征字送數(shù)據(jù)寄存器SFDTMOVSFCM,#8DH ;塊擦除操作碼送SFCM,采用中斷檢測操作是否結(jié)束1/23/2026單片機(jī)原理與應(yīng)用
(2)
扇區(qū)擦除操作ORLSFCF,#40H ;IAP位置1,允許IAP操作MOVSFAH,#XXH ;扇區(qū)地址高8位送SFAH寄存器MOVSFAL,#XXH ;扇區(qū)地址低位送SFAL寄存器 ;SFDT寄存器沒有定義MOVSFCM,#0BH ;扇區(qū)擦除操作碼送SFCM寄存器。 ;當(dāng)采用查詢方式檢測擦;除操作是否結(jié)束時(shí),SFCM.7為0或;MOVSFCM,#8BH ;當(dāng)采用中斷檢測操作是否完成時(shí),SFCM.7為11/23/2026單片機(jī)原理與應(yīng)用
(3)
字節(jié)編程操作ORLSFCF,#40H ;IAPEN位置1,允許IAP操作MOVSFAH,#XXH ;單元地址高8位送SFAH寄存器MOVSFAL,#XXH ;單元地址低位送SFAL寄存器MOVSFDT,#XXH ;寫入信息送數(shù)據(jù)寄存器SFDTMOVSFCM,#0EH ;字節(jié)編程操作命令碼0EH送SFCM[6-0], ;當(dāng)采用查詢方式檢測塊擦除操作是否結(jié)束時(shí), ;SFCM.7為0或MOVSFCM,#8EH ;當(dāng)采用中斷檢測操作是否完成時(shí), ;SFCM.7為1
1/23/2026單片機(jī)原理與應(yīng)用
(1)
字節(jié)校驗(yàn)操作(讀操作)
ORLSFCF,#40H ;IAPEN位置1,允許IAP操作 MOVSFAH,#XXH ;待讀出單元地址高8位送SFAH寄存器 MOVSFAL,#XXH ;待讀出單元地址地址低位送SFAL寄存器 MOVSFCM,#0CH ;字節(jié)校驗(yàn)操作碼0CH送SFCM。在校驗(yàn)操作中,無須查詢 ;FlashBusy位狀態(tài)或等待中斷有效;指定單元信息出現(xiàn)在數(shù)據(jù)寄存器SFDT中當(dāng)然,當(dāng)IAP編程操作的目的地址PC可以訪問時(shí),也可以用“MOVCA,@A+DPTR”指令直接讀出。但考慮到程序升級(jí)的方便,最好使用如下程序段從指定單元中讀取數(shù)據(jù)。;從FlashROM單字節(jié)讀程序段;入口參數(shù):DPTR指向讀出單元地址;出口參數(shù):A存放讀出的數(shù)據(jù)SF_READ:ORLSFCF,#40H ;將IAPEN位置1,允許IAP操作
MOVSFAH,DPH ;待讀出單元地址高8位送SFAH寄存器
MOVSFAL,DPL ;待讀出單元地址低8位送SFAL寄存器
MOVSFCM,#0CH ;字節(jié)校驗(yàn)操作碼0CH送SFCM。在校驗(yàn)操作中,無須查詢
MOVA,SFDT ;單元信息送Acc;關(guān)閉IAP編程,防止數(shù)據(jù)意外丟失
ANLSFCF,#10111111B ;IAPEN位清0,禁止IAP操作,防止數(shù)據(jù)以外丟失1/23/2026單片機(jī)原理與應(yīng)用4.軟件復(fù)位當(dāng)FlashROM配置寄存器SFCF的SWR(b1)位置1時(shí),將觸發(fā)軟件復(fù)位操作:初始化特殊功能寄存器,程序計(jì)數(shù)器PC置為0000H(但內(nèi)部RAM保持不變)。1/23/2026單片機(jī)原理與應(yīng)用5.9.4SPI串行總線SST89E(V)系列內(nèi)置了SPI(SerialPeripheralInterface,即串行外設(shè)接口)部件。SPI是一種高速、全雙工、同步串行通信方式,數(shù)據(jù)傳輸率比I2C串行總線高,通訊協(xié)議簡單,是單片機(jī)應(yīng)用系統(tǒng)常用的一種串行通訊方式之一。SPI總線有主、從兩種工作模式,使用MOSI(即MasterOut/SalveIn的簡稱)引腳、MISO(即MasterIn/SalveOut的簡稱)引腳、輸入/輸出同步時(shí)鐘信號(hào)SPICLK、
片選信號(hào)來完成兩個(gè)SPI接口設(shè)備之間的數(shù)據(jù)傳輸。1/23/2026單片機(jī)原理與應(yīng)用1.SPI總線控制SST89E564RD/V564RDSPI總線最大數(shù)據(jù)傳輸率為10Mb/s,與SPI總線通信有關(guān)的特殊功能寄存器包括了SPI總線控制寄存器SPCR(即SPIControlRegister的簡稱)、SPI總線狀態(tài)寄存器SPSR(即SPIStatusRegister的簡稱)、SPI數(shù)據(jù)寄存器SPDR(即SPIDataRegister的簡稱)。
(1)SPI控制寄存器SPCRSPI總線工作方式由SPI總線控制寄存器SPCR控制,各位含義如圖5-23所示。1/23/2026單片機(jī)原理與應(yīng)用圖5-23SPI總線控制寄存器SPCR各位含義
1/23/2026單片機(jī)原理與應(yīng)用SPIE——SPI中斷允許。當(dāng)SPIE=1時(shí),允許SPI中斷;反之禁止SPI中斷。在SST89E(V)系列芯片中,UART串行發(fā)送結(jié)束中斷TI/串行接收有效中斷RI以及SPI傳送結(jié)束中斷SPIF相或后作為一個(gè)中斷源,共用同一中斷入口地址,由串行中斷允許ES位控制。SPE——SPI總線使能位。當(dāng)SPE=0時(shí),SPI總線被禁止,SPCR寄存器其他位沒有定義;MOSI(P1.5)、MISO(P1.6)、SCK(P1.7)、(P1.4)可作一般I/O引腳使用。MSTR——主從設(shè)備選擇位。當(dāng)SPE為1時(shí),由MSTR位決定SST89E(V)系列芯片SPI總線是主設(shè)備(MSTR=1),還是從設(shè)備(MSTR=0)。由于主設(shè)備不需片選信號(hào),因此當(dāng)MSTR位為1(作主機(jī))時(shí),(P1.4)引腳可作一般I/O引腳使用。當(dāng)從設(shè)備片選信號(hào)(P1.4)為低電平時(shí),從設(shè)備處于選中狀態(tài),MOSI(P1.5)、SCK(P1.7)引腳處于輸入狀態(tài),MIS0(P1.6)處于輸出狀態(tài);反之,當(dāng)(P1.4)引腳為高電平時(shí),從設(shè)備處于非選中狀態(tài),MOSI(P1.5)引腳處于高阻態(tài)。1/23/2026單片機(jī)原理與應(yīng)用DORD——數(shù)據(jù)傳輸順序。當(dāng)DORD=0時(shí),先發(fā)送數(shù)據(jù)寄存器的b7位;反之,當(dāng)DORD=1時(shí),先發(fā)送數(shù)據(jù)寄存器的b0位。CPOL——SPI時(shí)鐘極性選擇。當(dāng)CPOL=0時(shí),空閑時(shí)SCK輸出低電平,時(shí)鐘前沿對(duì)應(yīng)SCK的上升沿,時(shí)鐘后沿對(duì)應(yīng)SCK的下降沿,即采用正極性同步脈沖;當(dāng)CPOL=1時(shí),剛好相反,空閑時(shí)SCK輸出高電平,時(shí)鐘前沿對(duì)應(yīng)SCK的下降沿,時(shí)鐘后沿對(duì)應(yīng)SCK的上升沿,即采用負(fù)極性同步脈沖。CPHA——SPI時(shí)鐘相位選擇。當(dāng)CPHA=0時(shí),SPI總線在SCK時(shí)鐘前沿讀輸入數(shù)據(jù),在SCK時(shí)鐘后沿輸出數(shù)據(jù);而當(dāng)CPHA=1時(shí),SPI總線在SCK時(shí)鐘前沿輸出數(shù)據(jù),在SCK時(shí)鐘后沿讀輸入數(shù)據(jù)。1/23/2026單片機(jī)原理與應(yīng)用SPR1、SPR0——SPI總線時(shí)鐘SCK頻率選擇位,當(dāng)SPR1、SPR0=00時(shí),SCK=fOSC/4(即4分頻)。SPR1、SPR0=01時(shí),SCK=fOSC/16(即16分頻)。SPR1、SPR0=10時(shí),SCK=fOSC/64(即64分頻)。SPR1、SPR0=11時(shí),SCK=fOSC/128(即128分頻)。在SPI通信協(xié)議中,同步時(shí)鐘信號(hào)SCK由主設(shè)備提供(頻率高低受從設(shè)備SPI接口限制),因此當(dāng)SPI接口作從設(shè)備使用時(shí),SPR1、SPR0位無效,總是按最高速度輸出數(shù)據(jù)。對(duì)于SPI主設(shè)備來說,當(dāng)SPI總線使能時(shí),對(duì)SPI總線數(shù)據(jù)寄存器SPDR執(zhí)行寫操作將觸發(fā)SPI總線數(shù)據(jù)傳輸過程。1/23/2026單片機(jī)原理與應(yīng)用SPI總線數(shù)據(jù)傳輸格式如圖5-24所示。1/23/2026單片機(jī)原理與應(yīng)用(2)SPI狀態(tài)寄存器SPSRSPI總線狀態(tài)寄存器SPSR各位含義如下:SPIF——SPI傳送結(jié)束標(biāo)志。當(dāng)一次串行傳輸完成后,SPIF標(biāo)志置1,如果SPI中斷處于允許(SPIE和ES位為1)狀態(tài),那么在滿足中斷響應(yīng)條件時(shí),CPU將響應(yīng)SPI中斷。但CPU響應(yīng)SPI中斷后,不會(huì)自動(dòng)清除SPIF標(biāo)志。WCOL——SPI寫沖突標(biāo)志。在數(shù)據(jù)傳送過程中,對(duì)SPI數(shù)據(jù)寄存器SPDR進(jìn)行寫操作時(shí),WCOL標(biāo)志有效,表示出現(xiàn)寫沖突。也只能通過軟件將WCOL位清零。1/23/2026單片機(jī)原理與應(yīng)用2.SPI初始化MOVSPCR,#11X110XX ;SPI總線控制寄存器SPCR;SPIE=1,允許SPI中斷,當(dāng)SPI總線速率較低,如選擇fOSC/64或;fOSC/128分頻時(shí),最好使用中斷方式確定傳輸是否結(jié)束。;SPE=1,使能SPI總線;DODR可以選擇0(先發(fā)b7)或1(先發(fā)b0),但收發(fā)雙方必須一致。;
MSTR=1,主設(shè)備MSTR位必須為1。;COPL=1,推薦用負(fù)極性脈沖。;CPHA=0,選擇前沿輸入(讀),后沿輸出(寫)。;SPR1、SPR0(SPI總線時(shí)鐘)位由從設(shè)備速度決定。1/23/2026單片機(jī)原理與應(yīng)用;下面是SPI主設(shè)備采用查詢方式傳送一字節(jié)的程序段:CLRP1.X ;置從設(shè)備片選信號(hào)為低電平MOVSPDR,#XXH ;輸出數(shù)據(jù)送SPI數(shù)據(jù)寄存器WAIT:MOVA,SPSR ;讀SPI狀態(tài)寄存器JNBACC.7,WAIT ;等待傳送結(jié)束ANLSPSR,#7FH ;清除SPI傳送結(jié)束中斷SPIFMOVA,SPDR ;讀出從機(jī)回送的數(shù)據(jù)SETBP1.X ;每字節(jié)傳輸結(jié)束后,必須將從設(shè) ;備片選信號(hào)置1盡管在SPI串行通信中,字節(jié)內(nèi)數(shù)據(jù)傳輸率很高,但傳送一字節(jié)后,需延遲一段時(shí)間,以便從設(shè)備分析、處理接收到的信息,并把下一字節(jié)信息放入數(shù)據(jù)寄存器中。1/23/2026單片機(jī)原理與應(yīng)用5.9.5硬件看門狗
1.看門狗控制
與硬件看門狗有關(guān)的特殊功能寄存器是看門狗控制寄存器WDTC(即WatchdogTimerControl)和看門狗數(shù)據(jù)/重裝控制寄存器WDTD(WatchdogTimerData/ReloadRegister),硬件看門狗結(jié)構(gòu)如圖5-25所示。圖5-25看門狗計(jì)數(shù)器結(jié)構(gòu)
1/23/2026單片機(jī)原理與應(yīng)用看門狗控制寄存器WDTC(具有位尋址)各位含義如下:WDRE——禁止/允許看門狗定時(shí)器復(fù)位。當(dāng)WDRE為1時(shí),看門狗定時(shí)器溢出將觸發(fā)復(fù)位操作;反之,當(dāng)WDRE位為0時(shí),看門狗定時(shí)器溢出時(shí)不產(chǎn)生復(fù)位動(dòng)作。WDOUT——允許看門狗復(fù)位信號(hào)輸出。當(dāng)WDRE位為1,即允許看門狗定時(shí)器復(fù)位時(shí),如果WDOUT位為1,則看門狗計(jì)數(shù)器復(fù)位時(shí)將在RST引腳上輸出持續(xù)時(shí)間為32個(gè)時(shí)鐘周期高電平復(fù)位信號(hào),使外設(shè)同步復(fù)位;反之,當(dāng)WDOUT位為0時(shí),不輸出復(fù)位信號(hào)。WDTS——看門狗定時(shí)器復(fù)位標(biāo)志。如果看門狗定時(shí)器溢出觸發(fā)復(fù)位,則WDTS標(biāo)志置1(硬件復(fù)位、上電復(fù)位時(shí),該位清0)。在看門狗溢出處理子程序中,可通過置“1”指令,如“SETBWDTS”清除WDTS標(biāo)志。WDT——看門狗定時(shí)器刷新控制。當(dāng)WDT位置1時(shí),將強(qiáng)迫看門狗定時(shí)器刷新(重裝初值)。SWDT——看門狗定時(shí)器啟動(dòng)/停止控制。當(dāng)SWDT為0時(shí),看門狗定時(shí)器停止計(jì)數(shù)。即允許在看門狗啟動(dòng)后,通過該位停止看門狗計(jì)數(shù)器計(jì)數(shù)。1/23/2026單片機(jī)原理與應(yīng)用2.溢出時(shí)間從圖5-20可以看出:系統(tǒng)時(shí)鐘信號(hào)(即XTAL1引腳上的時(shí)鐘信號(hào))送計(jì)數(shù)器,經(jīng)過344064個(gè)周期后,計(jì)數(shù)器溢出(即該計(jì)數(shù)器實(shí)際
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025山西忻州保德縣社區(qū)工作者招(選)聘36人備考題庫附答案
- 裝訂工崗前競爭分析考核試卷含答案
- 電器附件制造工崗前安全技能測試考核試卷含答案
- 水聲換能器裝配工安全教育模擬考核試卷含答案
- 2024年海南省特崗教師招聘考試真題題庫附答案
- 2024年璧山縣事業(yè)單位聯(lián)考招聘考試歷年真題附答案
- 2024年湖南涉外經(jīng)濟(jì)學(xué)院輔導(dǎo)員考試筆試真題匯編附答案
- 2025年企業(yè)企業(yè)內(nèi)部審計(jì)制度手冊(cè)
- 2024年莎車縣幼兒園教師招教考試備考題庫附答案
- 2024年鄭州信息工程職業(yè)學(xué)院輔導(dǎo)員考試筆試題庫附答案
- GB/T 46755-2025智能紡織產(chǎn)品通用技術(shù)要求
- 2026北京市中央廣播電視總臺(tái)招聘124人參考題庫附答案
- 十五五規(guī)劃綱要解讀:循環(huán)經(jīng)濟(jì)模式推廣
- 2026年山西警官職業(yè)學(xué)院單招綜合素質(zhì)筆試備考題庫帶答案解析
- 2026年農(nóng)夫山泉-AI-面試題目及答案
- 2026凱翼汽車全球校園招聘(公共基礎(chǔ)知識(shí))綜合能力測試題附答案
- 山東省威海市環(huán)翠區(qū)2024-2025學(xué)年一年級(jí)上學(xué)期1月期末數(shù)學(xué)試題
- 2025年手術(shù)室護(hù)理實(shí)踐指南知識(shí)考核試題及答案
- 外貿(mào)公司采購專員績效考核表
- 彩禮分期合同范本
- 胸腺瘤伴重癥肌無力課件
評(píng)論
0/150
提交評(píng)論