定時器T2和連接到這個寄存器上的4個16位捕捉寄存器及1個比較器組成定時器T2與捕捉比較邏輯。當(dāng)在相應(yīng)引腳上電平發(fā)生變化時,捕捉寄存器將捕捉定時器T2的內(nèi)容,比較邏輯是以固定的時間去設(shè)置、復(fù)位和觸發(fā)P4口的輸出。
Philips公司生產(chǎn)的與MCS 51單片機(jī)兼容的CMOS型單片機(jī)中,8XC552的功能最強(qiáng),最具有代表性。它除了具有8051單片機(jī)的全部功能之外,又增加了大量的硬件:高速I/O、PWM、A/D、WDT、計數(shù)器的捕獲/比較邏輯、串行總線I2CBUS等都集成在片內(nèi)。
8XC51GB有15個中斷源,對應(yīng)有15個固定的中斷矢量地址(見圖10.8)。其中有7個外部中斷是INT0~INT6,外部中斷引腳與端口3和端口5引腳的功能復(fù)用;有8個內(nèi)部中斷,它們分別是3個定時器中斷(定時器T0、T1、T2)、2個可編程定時計數(shù)器陣列中斷(PCA、PCA1)、1個串行口中斷、1個SEP中斷和1個A/D中斷。下面分別對各個中斷作簡要介紹。
為增進(jìn)大家對電阻的認(rèn)識,本文將對保險絲電阻、電阻和保險絲電阻的區(qū)別等內(nèi)容予以介紹。
為增進(jìn)大家對電阻的認(rèn)識,本文將對制動電阻的工作原理、制動電阻的作用以及制動電阻的阻值的選擇予以介紹。
為增進(jìn)大家對電阻的認(rèn)識,本文將對貼片電阻的特性、貼片電阻的基本參數(shù)、貼片電阻識別方法予以介紹。
中斷服務(wù)處理子程序可簡稱為中斷服務(wù)處理程序或中斷程序,用于處理單片機(jī)的中斷事件,只能被單片機(jī)硬件調(diào)用執(zhí)行,而不能通過子程序調(diào)用指令(ACALL或LCALL)調(diào)用執(zhí)行。中斷服務(wù)處理程序只能通過RETI指令返回。
當(dāng)需要清0操作的字節(jié)單元的個數(shù)增加時,程序中MOV指令的個數(shù)也會隨之增加。為了降低程序中重復(fù)代碼的數(shù)量,縮短程序的長度,可以采用循環(huán)程序結(jié)構(gòu)進(jìn)行程序設(shè)計。
分支結(jié)構(gòu)程序的指令執(zhí)行順序與指令在ROM中的存放順序不同,其中某些具有判斷功能的指令會根據(jù)判斷結(jié)果改變接下來的指令執(zhí)行順序,從而使程序產(chǎn)生一個或多個分支流向??捎糜诜种ЫY(jié)構(gòu)程序設(shè)計的判斷指令主要包括JZ、CJNE和JB等有條件轉(zhuǎn)移指令。根據(jù)程序分支的數(shù)量,可以將分支程序分為三類:單分支、一般多分支和散轉(zhuǎn)多分支。
目前,結(jié)構(gòu)化是程序設(shè)計的基本要求,可以使程序結(jié)構(gòu)清晰、易于讀寫且方便調(diào)試,也能夠提高程序設(shè)計的效率。在結(jié)構(gòu)化程序設(shè)計中,程序的基本結(jié)構(gòu)有三種,即順序結(jié)構(gòu)、分支結(jié)構(gòu)及循環(huán)結(jié)構(gòu)。而子程序(也被稱為函數(shù)或過程)是一種提高程序模塊化程度和重復(fù)利用率的程序設(shè)計技巧,有時也被當(dāng)作一種基本的程序結(jié)構(gòu)。
AT89C2051單片機(jī)內(nèi)部有2KB的閃速存儲器陣列,一片新的AT89C2051,其存儲陣列處于擦除狀態(tài)(FFH),此時可對其編程,存儲陣列一次編程1字節(jié),若編程任何非空字節(jié)時,需對整個存儲陣列進(jìn)行片擦除。
AT89C系列與MCS 51系列單片機(jī)相比有兩大優(yōu)勢:第一,片內(nèi)程序存儲器采用閃速存儲器,使程序的寫入更加方便;第二,提供了更小尺寸的芯片(AT89C2051/1051),使整個硬件電路的體積更小。
前面列舉的各項措施只解決了如何發(fā)現(xiàn)系統(tǒng)受到干擾和如何捕捉“跑飛”的程序,但僅此還不夠,還要能夠讓單片機(jī)根據(jù)被破壞的殘留信息自動恢復(fù)到正常的工作狀態(tài)。硬件復(fù)位是使單片機(jī)重新恢復(fù)正常工作狀態(tài)的一個簡單有效的方法。硬件復(fù)位后CPU被重新初始化,所有被激活的中斷標(biāo)志都被清除,程序從0000H地址重新開始執(zhí)行。
前面幾項抗干擾措施都是針對I/O通道而言的。若干擾信號還未作用到CPU本身,則CPU還能正確地執(zhí)行各種抗干擾程序;若干擾信號已經(jīng)通過某種途徑作用到CPU上,則CPU就不能按正常狀態(tài)執(zhí)行程序,從而引起混亂,這就是通常所說的程序“跑飛”。程序“跑飛”后使其恢復(fù)正常最簡單的方法是讓CPU復(fù)位,讓程序從頭開始重新運(yùn)行。這種方法雖然簡單,但需要人的參與,而且復(fù)位不及時。人工復(fù)位一般是在整個系統(tǒng)已經(jīng)癱瘓,無計可施的情況下才不得已而為之的。因此在進(jìn)行軟件設(shè)計時就要考慮到萬一程序“跑
由于數(shù)字量輸入過程中干擾的作用時間較短,因此在采集數(shù)字信號時,可多次重復(fù)采集,直到若干次采樣結(jié)果一致時,才認(rèn)為其有效。例如通過A/D轉(zhuǎn)換器測量各種模擬量時,如果有干擾作用于模擬信號上,就會使A/D轉(zhuǎn)換結(jié)果偏離真實值。這時如果只采樣一次A/D轉(zhuǎn)換結(jié)果,就無法知道其是否真實可靠,而必須進(jìn)行多次采樣,得到一個A/D轉(zhuǎn)換結(jié)果的數(shù)據(jù)系列,對這些數(shù)據(jù)系列進(jìn)行各種數(shù)字濾波處理,最后才能得到一個可信度較高的結(jié)果值。