




已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單 片 機(jī) 原 理 及 應(yīng) 用教 案機(jī)電工程學(xué)院電氣工程系第一章 緒論第一節(jié) 單片機(jī)單片機(jī)即單片機(jī)微型計(jì)算機(jī),是將計(jì)算機(jī)主機(jī)(CPU、內(nèi)存和I/O接口)集成在一小塊硅片上的微型機(jī)。第二節(jié) 單片機(jī)的歷史與現(xiàn)狀第一階段(19761978年):低性能單片機(jī)的探索階段。以Intel公司的MCS-48為代表,采用了單片結(jié)構(gòu),即在一塊芯片內(nèi)含有8位CPU、定時(shí)/計(jì)數(shù)器、并行I/O口、RAM和ROM等。主要用于工業(yè)領(lǐng)域。第二階段(19781982年):高性能單片機(jī)階段,這一類單片機(jī)帶有串行I/O口,8位數(shù)據(jù)線、16位地址線可以尋址的范圍達(dá)到64K字節(jié)、控制總線、較豐富的指令系統(tǒng)等。這類單片機(jī)的應(yīng)用范圍較廣,并在不斷的改進(jìn)和發(fā)展。第三階段(19821990年):16位單片機(jī)階段。16位單片機(jī)除CPU為16位外,片內(nèi)RAM和ROM容量進(jìn)一步增大,實(shí)時(shí)處理能力更強(qiáng),體現(xiàn)了微控制器的特征。例如Intel公司的MCS-96主振頻率為12M,片內(nèi)RAM為232字節(jié),ROM為8K字節(jié),中斷處理能力為8級(jí),片內(nèi)帶有10位A/D轉(zhuǎn)換器和高速輸入/輸出部件等。第四階段(1990年):微控制器的全面發(fā)展階段,各公司的產(chǎn)品在盡量兼容的同時(shí),向高速、強(qiáng)運(yùn)算能力、尋址范圍大以及小型廉價(jià)方面發(fā)展。第三節(jié) 單片機(jī)的應(yīng)用領(lǐng)域一、 單片機(jī)在儀器儀表中的應(yīng)用二、 單片機(jī)在機(jī)電一體化中的應(yīng)用三、 單片機(jī)在智能接口和多機(jī)系統(tǒng)中的應(yīng)用四、 單片機(jī)在生活中的應(yīng)用第二章 硬件結(jié)構(gòu)第一節(jié) MCS-51單片機(jī)及其演變特點(diǎn)(1)一個(gè)8位微處理器CPU。(2)數(shù)據(jù)存儲(chǔ)器RAM和特殊功能寄存器SFR。(3)內(nèi)部程序存儲(chǔ)器ROM。(4)兩個(gè)定時(shí)/計(jì)數(shù)器,用以對(duì)外部事件進(jìn)行計(jì)數(shù),也可用作定時(shí)器。(5)四個(gè)8位可編程的I/O(輸入/輸出)并行端口,每個(gè)端口既可做輸入,也可做輸出。(6)一個(gè)串行端口,用于數(shù)據(jù)的串行通信。(7)中斷控制系統(tǒng)。(8)內(nèi)部時(shí)鐘電路。第二節(jié) 80C51單片機(jī)的基本結(jié)構(gòu)1) 中央處理器(CPU)中央處理器是單片機(jī)的核心,完成運(yùn)算和控制功能。MCS-51的CPU能處理8位二進(jìn)制數(shù)或代碼。2) 內(nèi)部數(shù)據(jù)存儲(chǔ)器(內(nèi)部RAM)8051芯片中共有256個(gè)RAM單元,但其中后128單元被專用寄存器占用,能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫(xiě)的數(shù)據(jù)。因此通常所說(shuō)的內(nèi)部數(shù)據(jù)存儲(chǔ)器就是指前128單元,簡(jiǎn)稱內(nèi)部RAM。3) 內(nèi)部程序存儲(chǔ)器(內(nèi)部ROM)8051共有4 KB掩膜ROM,用于存放程序、原始數(shù)據(jù)或表格,因此,稱之為程序存儲(chǔ)器,簡(jiǎn)稱內(nèi)部ROM。4) 定時(shí)/計(jì)數(shù)器8051共有兩個(gè)16位的定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能,并以其定時(shí)或計(jì)數(shù)結(jié)果對(duì)計(jì)算機(jī)進(jìn)行控制。5) 并行I/O口MCS-51共有4個(gè)8位的I/O口(P0、P1、P2、P3),以實(shí)現(xiàn)數(shù)據(jù)的并行輸入/輸出。在實(shí)訓(xùn)中我們已經(jīng)使用了P1口,通過(guò)P1口連接8個(gè)發(fā)光二極管。第三節(jié) 80C51單片機(jī)的引腳功能 MCS-51是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,引腳排列請(qǐng)參見(jiàn)圖P0.0 P0.7: P0口8位雙向口線。P1.0 P1.7 :P1口8位雙向口線。P2.0 P2.7 :P2口8位雙向口線。P3.0 P3.7 :P3口8位雙向口線。 ALE:地址鎖存控制信號(hào)。在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口輸出的低8位地址鎖存起來(lái),以實(shí)現(xiàn)低位地址和數(shù)據(jù)的隔離。此外,由于ALE是以晶振1/6的固定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。 PSEN:外部程序存儲(chǔ)器讀選通信號(hào)。在讀外部ROM時(shí),PSEN有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。 EA:訪問(wèn)程序存儲(chǔ)控制信號(hào)。當(dāng)信號(hào)為低電平時(shí),對(duì)ROM的讀操作限定在外部程序存儲(chǔ)器;當(dāng)信號(hào)為高電平時(shí),對(duì)ROM的讀操作是從內(nèi)部程序存儲(chǔ)器開(kāi)始,并可延至外部程序存儲(chǔ)器。 RST:復(fù)位信號(hào)。當(dāng)輸入的復(fù)位信號(hào)延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作。 XTAL1和XTAL2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。 VSS:地線。 VCC:+5 V電源。 以上是MCS-51單片機(jī)芯片40條引腳的定義及簡(jiǎn)單功能說(shuō)明,讀者可以對(duì)照實(shí)訓(xùn)電路找到相應(yīng)引腳,在電路中查看每個(gè)引腳的連接使用。 P3口線的第二功能。P3的8條口線都定義有第二功能第四節(jié) 存儲(chǔ)器結(jié)構(gòu)MCS-51單片機(jī)的芯片內(nèi)部有RAM和ROM兩類存儲(chǔ)器,即所謂的內(nèi)部RAM和內(nèi)部ROMMCS-51內(nèi)部程序存儲(chǔ)器MCS-51的程序存儲(chǔ)器用于存放編好的程序和表格常數(shù)。8051片內(nèi)有4 KB的ROM,8751片內(nèi)有4 KB的EPROM,8031片內(nèi)無(wú)程序存儲(chǔ)器。 MCS-51的片外最多能擴(kuò)展64 KB程序存儲(chǔ)器,片內(nèi)外的ROM是統(tǒng)一編址的。如端保持高電平,8051的程序計(jì)數(shù)器PC在0000H0FFFH地址范圍內(nèi) (即前4 KB地址) 是執(zhí)行片內(nèi)ROM中的程序,當(dāng)PC在1000HFFFFH地址范圍時(shí),自動(dòng)執(zhí)行片外程序存儲(chǔ)器中的程序;當(dāng)保持低電平時(shí),只能尋址外部程序存儲(chǔ)器,片外存儲(chǔ)器可以從0000H開(kāi)始編址。MCS-51的程序存儲(chǔ)器中有些單元具有特殊功能,使用時(shí)應(yīng)予以注意。 其中一組特殊單元是0000H0002H。系統(tǒng)復(fù)位后,(PC)=0000H,單片機(jī)從0000H單元開(kāi)始取指令執(zhí)行程序。如果程序不從0000H單元開(kāi)始,應(yīng)在這三個(gè)單元中存放一條無(wú)條件轉(zhuǎn)移指令,以便直接轉(zhuǎn)去執(zhí)行指定的程序。 還有一組特殊單元是0003H002AH,共40個(gè)單元。這40個(gè)單元被均勻地分為5段,作為5個(gè)中斷源的中斷地址區(qū)。其中:0003H000AH 外部中斷0中斷地址區(qū)000BH0012H 定時(shí)/計(jì)數(shù)器0中斷地址區(qū)0013H001AH 外部中斷1中斷地址區(qū)001BH0022H 定時(shí)/計(jì)數(shù)器1中斷地址區(qū)0023H002AH 串行中斷地址區(qū)中斷響應(yīng)后,按中斷種類,自動(dòng)轉(zhuǎn)到各中斷區(qū)的首地址去執(zhí)行程序,因此在中斷地址區(qū)中理應(yīng)存放中斷服務(wù)程序。但通常情況下,8個(gè)單元難以存下一個(gè)完整的中斷服務(wù)程序,因此通常也是從中斷地址區(qū)首地址開(kāi)始存放一條無(wú)條件轉(zhuǎn)移指令,以便中斷響應(yīng)后,通過(guò)中斷地址區(qū),再轉(zhuǎn)到中斷服務(wù)程序的實(shí)際入口地址。MCS-51內(nèi)部數(shù)據(jù)存儲(chǔ)器內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元 8051的內(nèi)部RAM共有256個(gè)單元,通常把這256個(gè)單元按其功能劃分為兩部分:低128單元(單元地址00H7FH)和高128單元(單元地址80HFFH)。如圖所示為低128單元的配置圖。 寄存器區(qū) 8051共有4組寄存器,每組8個(gè)寄存單元(各為8),各組都以R0R7作寄存單元編號(hào)。寄存器常用于存放操作數(shù)中間結(jié)果等。由于它們的功能及使用不作預(yù)先規(guī)定,因此稱之為通用寄存器,有時(shí)也叫工作寄存器。4組通用寄存器占據(jù)內(nèi)部RAM的00H1FH單元地址。 在任一時(shí)刻,CPU只能使用其中的一組寄存器,并且把正在使用的那組寄存器稱之為當(dāng)前寄存器組。到底是哪一組,由程序狀態(tài)字寄存器PSW中RS1、RS0位的狀態(tài)組合來(lái)決定。 通用寄存器為CPU提供了就近存儲(chǔ)數(shù)據(jù)的便利,有利于提高單片機(jī)的運(yùn)算速度。此外,使用通用寄存器還能提高程序編制的靈活性,因此,在單片機(jī)的應(yīng)用編程中應(yīng)充分特殊功能寄存器通用RAM區(qū)位尋址區(qū)00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位尋址外部ROM內(nèi)部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外 部RAM(I/O口地址)0000HFFFFH內(nèi)部數(shù)據(jù)存儲(chǔ)器(a)外部數(shù)據(jù)存儲(chǔ)器(b)程序存儲(chǔ)器(c)工作寄存器區(qū)利用這些寄存器,以簡(jiǎn)化程序設(shè)計(jì),提高程序運(yùn)行速度。 位尋址區(qū) 內(nèi)部RAM的20H2FH單元,既可作為一般RAM單元使用,進(jìn)行字節(jié)操作,也可以對(duì)單元中每一位進(jìn)行位操作,因此把該區(qū)稱之為位尋址區(qū)。位尋址區(qū)共有16個(gè)RAM單元,計(jì)128位,地址為00H7FH。MCS-51具有布爾處理機(jī)功能,這個(gè)位尋址區(qū)可以構(gòu)成布爾處理機(jī)的存儲(chǔ)空間。這種位尋址能力是MCS-51的一個(gè)重要特點(diǎn)。 用戶RAM區(qū) 在內(nèi)部RAM低128單元中,通用寄存器占去32個(gè)單元,位尋址區(qū)占去16個(gè)單元,剩下80個(gè)單元,這就是供用戶使用的一般RAM區(qū),其單元地址為30H7FH。對(duì)用戶RAM區(qū)的使用沒(méi)有任何規(guī)定或限制,但在一般應(yīng)用中常把堆棧開(kāi)辟在此區(qū)中。 內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元 內(nèi)部RAM的高128單元是供給專用寄存器使用的,其單元地址為80HFFH。因這些寄存器的功能已作專門規(guī)定,故稱之為專用寄存器(Special Function Register),也可稱為特殊功能寄存器。第五節(jié) 特殊功能存儲(chǔ)器SFR8051共有21個(gè)專用寄存器,現(xiàn)把其中部分寄存器簡(jiǎn)單介紹如下:程序計(jì)數(shù)器(PCProgram Counter)。在實(shí)訓(xùn)中,我們已經(jīng)知道PC是一個(gè)16位的計(jì)數(shù)器,它的作用是控制程序的執(zhí)行順序。其內(nèi)容為將要執(zhí)行指令的地址,尋址范圍達(dá)64 KB。PC有自動(dòng)加1功能,從而實(shí)現(xiàn)程序的順序執(zhí)行。PC沒(méi)有地址,是不可尋址的,因此用戶無(wú)法對(duì)它進(jìn)行讀寫(xiě),但可以通過(guò)轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以實(shí)現(xiàn)程序的轉(zhuǎn)移。因地址不在SFR(專用寄存器)之內(nèi),一般不計(jì)作專用寄存器。累加器(ACCAccumulator)。累加器為8位寄存器,是最常用的專用寄存器,功能較多,地位重要。它既可用于存放操作數(shù),也可用來(lái)存放運(yùn)算的中間結(jié)果。MCS-51單片機(jī)中大部分單操作數(shù)指令的操作數(shù)就取自累加器,許多雙操作數(shù)指令中的一個(gè)操作數(shù)也取自累加器。B寄存器。B寄存器是一個(gè)8位寄存器,主要用于乘除運(yùn)算。乘法運(yùn)算時(shí),B存乘數(shù)。乘法操作后,乘積的高8位存于B中,除法運(yùn)算時(shí),B存除數(shù)。除法操作后,余數(shù)存于B中。此外,B寄存器也可作為一般數(shù)據(jù)寄存器使用。 程序狀態(tài)字(PSWProgram Status Word)。程序狀態(tài)字是一個(gè)8位寄存器,用于存放程序運(yùn)行中的各種狀態(tài)信息。其中有些位的狀態(tài)是根據(jù)程序執(zhí)行結(jié)果,由硬件自動(dòng)設(shè)置的,而有些位的狀態(tài)則使用軟件方法設(shè)定。PSW的位狀態(tài)可以用專門指令進(jìn)行測(cè)試,也可以用指令讀出。一些條件轉(zhuǎn)移指令將根據(jù)PSW有些位的狀態(tài),進(jìn)行程序轉(zhuǎn)移。PSW的各位定義如下:PSW位地址D7HD6HD5HD4HD3HD2HD1HD0H字節(jié)地址 CY ACF0RS1RS0OVF1P除PSW.1位保留未用外,其余各位的定義及使用如下:CY(PSW.7)進(jìn)位標(biāo)志位。CY是PSW中最常用的標(biāo)志位。其功能有二:一是存放算術(shù)運(yùn)算的進(jìn)位標(biāo)志,在進(jìn)行加或減運(yùn)算時(shí),如果操作結(jié)果的最高位有進(jìn)位或借位時(shí),CY由硬件置“1”,否則清“0”;二是在位操作中,作累加位使用。位傳送、位與位或等位操作,操作位之一固定是進(jìn)位標(biāo)志位。AC(PSW.6)輔助進(jìn)位標(biāo)志位。在進(jìn)行加減運(yùn)算中,當(dāng)?shù)?位向高4位進(jìn)位或借位時(shí),AC由硬件置“1”,否則AC位被清“0”。在BCD碼調(diào)整中也要用到AC位狀態(tài)。F0(PSW.5)用戶標(biāo)志位。這是一個(gè)供用戶定義的標(biāo)志位,需要利用軟件方法置位或復(fù)位,用以控制程序的轉(zhuǎn)向。RS1和RS0(PSW.4,PSW.3)寄存器組選擇位。它們被用于選擇CPU當(dāng)前使用的通用寄存器組。通用寄存器共有4組,其對(duì)應(yīng)關(guān)系如下:00:0組 01:1組 10:2組 11:3組這兩個(gè)選擇位的狀態(tài)是由軟件設(shè)置的,被選中的寄存器組即為當(dāng)前通用寄存器組。但當(dāng)單片機(jī)上電或復(fù)位后,RS1 RS0=00。OV(PSW.2)溢出標(biāo)志位。在帶符號(hào)數(shù)加減運(yùn)算中,OV=1表示加減運(yùn)算超出了累加器A所能表示的符號(hào)數(shù)有效范圍(-128 +127),即產(chǎn)生了溢出,因此運(yùn)算結(jié)果是錯(cuò)誤的,否則,OV=0表示運(yùn)算正確,即無(wú)溢出產(chǎn)生。P(PSW.0)奇偶標(biāo)志位。表明累加器A中內(nèi)容的奇偶性。如果A中有奇數(shù)個(gè)“1”,則P置“1”,否則置“0”。凡是改變累加器A中內(nèi)容的指令均會(huì)影響P標(biāo)志位。此標(biāo)志位對(duì)串行通信中的數(shù)據(jù)傳輸有重要的意義。在串行通信中常采用奇偶校驗(yàn)的辦法來(lái)校驗(yàn)數(shù)據(jù)傳輸?shù)目煽啃?。?shù)據(jù)指針(DPTR)。數(shù)據(jù)指針為16位寄存器。編程時(shí),DPTR既可以按16位寄存器使用,也可以按兩個(gè)8位寄存器分開(kāi)使用,即:DPH DPTR高位字節(jié),DPL DPTR低位字節(jié)。DPTR通常在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)作地址指針使用。由于外部數(shù)據(jù)存儲(chǔ)器的尋址范圍為64 KB,故把DPTR設(shè)計(jì)為16位。堆棧指針(SPStack Pointer)。堆棧是一個(gè)特殊的存儲(chǔ)區(qū),用來(lái)暫存數(shù)據(jù)和地址,它是按“先進(jìn)后出”的原則存取數(shù)據(jù)的。堆棧共有兩種操作:進(jìn)棧和出棧。由于MCS-51單片機(jī)的堆棧設(shè)在內(nèi)部RAM中,因此SP是一個(gè)8位寄存器。系統(tǒng)復(fù)位后,SP的內(nèi)容為07H,從而復(fù)位后堆棧實(shí)際上是從08H單元開(kāi)始的。但08H1FH單元分別屬于工作寄存器13區(qū),如程序要用到這些區(qū),最好把SP值改為1FH或更大的值。對(duì)專用寄存器的字節(jié)尋址問(wèn)題作如下幾點(diǎn)說(shuō)明: (1)21個(gè)可字節(jié)尋址的專用寄存器是不連續(xù)地分散在內(nèi)部RAM高128單元之中,盡管還余有許多空閑地址,但用戶并不能使用。 (2) 程序計(jì)數(shù)器PC不占據(jù)RAM單元,它在物理上是獨(dú)立的,因此是不可尋址的寄存器。 (3) 對(duì)專用寄存器只能使用直接尋址方式,書(shū)寫(xiě)時(shí)既可使用寄存器符號(hào),也可使用寄存器。第六節(jié) 輸入輸出端口單片機(jī)芯片內(nèi)還有一項(xiàng)主要內(nèi)容就是并行I/O口。MCS-51共有4個(gè)8位的并行I/O口,分別記作P0、P1、P2、P3。每個(gè)口都包含一個(gè)鎖存器、一個(gè)輸出驅(qū)動(dòng)器和輸入緩沖器。實(shí)際上,它們已被歸入專用寄存器之列,并且具有字節(jié)尋址和位尋址功能。 在訪問(wèn)片外擴(kuò)展存儲(chǔ)器時(shí),低8位地址和數(shù)據(jù)由P0口分時(shí)傳送,高8位地址由P2口傳送。在無(wú)片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,這4個(gè)口的每一位均可作為雙向的I/O端口使用。第七節(jié) 時(shí)鐘電路在MCS-51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2 。而在芯片的外部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,這就是單片機(jī)的時(shí)鐘電路。XTAL2XTAL1MCS-51C1C2CYSXTAL2XTAL1MCS-51+5VVSSTTL外部時(shí)鐘源1振蕩周期:為單片機(jī)提供時(shí)鐘信號(hào)的振蕩源的周期。2時(shí)鐘周期:是振蕩源信號(hào)經(jīng)二分頻后形成的時(shí)鐘脈沖信號(hào)。 3機(jī)器周期:通常將完成一個(gè)基本操作所需的時(shí)間稱為機(jī)器周期。4指令周期:是指CPU執(zhí)行一條指令所需要的時(shí)間。一個(gè)指令周期通常含有14個(gè)機(jī)器周期。 P1P2S1P2振蕩周期時(shí)鐘周期機(jī)器周期機(jī)器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2第八節(jié) 復(fù)位電路單片機(jī)復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作,例如復(fù)位后PC=0000H,使單片機(jī)從第一個(gè)單元取指令。實(shí)訓(xùn)中已經(jīng)看出,無(wú)論是在單片機(jī)剛開(kāi)始接上電源時(shí),還是斷電后或者發(fā)生故障后都要復(fù)位,所以我們必須弄清楚MCS-51型單片機(jī)復(fù)位的條件、復(fù)位電路和復(fù)位后狀態(tài)。 第三章MCS-51指令系統(tǒng)第一節(jié) 指令格式采用助記符表示的匯編語(yǔ)言指令格式如下:標(biāo)號(hào)是程序員根據(jù)編程需要給指令設(shè)定的符號(hào)地址,可有可無(wú);標(biāo)號(hào)由18個(gè)字符組成,第一個(gè)字符必須是英文字,不能是數(shù)字或其它符號(hào);標(biāo)號(hào)后必須用冒號(hào)。 操作碼表示指令的操作種類,如MOV表示數(shù)據(jù)傳送操作,ADD表示加法操作等。操作數(shù)或操作數(shù)地址表示參加運(yùn)算的數(shù)據(jù)或數(shù)據(jù)的有效地址。操作數(shù)一般有以下幾種形式:沒(méi)有操作數(shù)項(xiàng),操作數(shù)隱含在操作碼中,如RET指令;只有一個(gè)操作數(shù),如CPL A指令;有兩個(gè)操作數(shù),如MOV A,#00H指令,操作數(shù)之間以逗號(hào)相隔;有三個(gè)操作數(shù),如CJNE A,#00H,NEXT指令,操作數(shù)之間也以逗號(hào)相隔。注釋是對(duì)指令的解釋說(shuō)明,用以提高程序的可讀性;注釋前必須加分號(hào)。 第二節(jié) 尋址方式尋找操作數(shù)地址的方式稱為尋址方式。1. 寄存器尋址 寄存器尋址是指將操作數(shù)存放于寄存器中,寄存器包括工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR等。例如,指令MOV R1,A的操作是把累加器A中的數(shù)據(jù)傳送到寄存器R1中,其操作數(shù)存放在累加器A中,所以尋址方式為寄存器尋址。如果程序狀態(tài)寄存器PSW的RS1RS0=01(選中第二組工作寄存器,對(duì)應(yīng)地址為08H0FH),設(shè)累加器A的內(nèi)容為20H,則執(zhí)行MOV R1,A指令后,內(nèi)部RAM 09H單元的值就變?yōu)?0H。2. 直接尋址 直接尋址是指把存放操作數(shù)的內(nèi)存單元的地址直接寫(xiě)在指令中。在MCS-51單片機(jī)中,可以直接尋址的存儲(chǔ)器主要有內(nèi)部RAM區(qū)和特殊功能寄存器SFR區(qū)。例如,指令MOV A,3AH執(zhí)行的操作是將內(nèi)部RAM 中地址為3AH的單元內(nèi)容傳送到累加器A中,其操作數(shù)3AH就是存放數(shù)據(jù)的單元地址,因此該指令是直接尋址。3. 立即數(shù)尋址 立即數(shù)尋址是指將操作數(shù)直接寫(xiě)在指令中。 例如,指令MOV A,#3AH執(zhí)行的操作是將立即數(shù)3AH送到累加器A中,該指令就是立即數(shù)尋址。4. 寄存器間接尋址 寄存器間接尋址是指將存放操作數(shù)的內(nèi)存單元的地址放在寄存器中,指令中只給出該寄存器。執(zhí)行指令時(shí),首先根據(jù)寄存器的內(nèi)容,找到所需要的操作數(shù)地址,再由該地址找到操作數(shù)并完成相應(yīng)操作。 在MCS-51指令系統(tǒng)中,用于寄存器間接尋址的寄存器有R0、R1和DPTR,稱為寄存器間接尋址寄存器。設(shè)R0=3AH,內(nèi)部RAM 3AH中的值是65H,則指令MOV A,R0的執(zhí)行結(jié)果是累加器A的值為65H。5. 變址尋址 變址尋址是指將基址寄存器與變址寄存器的內(nèi)容相加,結(jié)果作為操作數(shù)的地址。DPTR或PC是基址寄存器,累加器A是變址寄存器。該類尋址方式主要用于查表操作。 例如,指令MOVC A,A+DPTR執(zhí)行的操作是將累加器A和基址寄存器DPTR的內(nèi)容相加,相加結(jié)果作為操作數(shù)存放的地址,再將操作數(shù)取出來(lái)送到累加器A中。 設(shè)累加器A=02H,DPTR=0300H,外部ROM中,0302H單元的內(nèi)容是55H,則指令MOVC A,A+DPTR的執(zhí)行結(jié)果是累加器A的內(nèi)容為55H。6. 相對(duì)尋址 相對(duì)尋址是指程序計(jì)數(shù)器PC的當(dāng)前內(nèi)容與指令中的操作數(shù)相加,其結(jié)果作為跳轉(zhuǎn)指令的轉(zhuǎn)移地址(也稱目的地址)。該類尋址方式主要用于跳轉(zhuǎn)指令。 例如,指令SJMP 54H執(zhí)行的操作是將PC當(dāng)前的內(nèi)容與54H相加,結(jié)果再送回PC中,成為下一條將要執(zhí)行指令的地址。 設(shè)指令SJMP 54H的機(jī)器碼80H 54H存放在2000H處,當(dāng)執(zhí)行到該指令時(shí),先從2000H和2001H單元取出指令,PC自動(dòng)變?yōu)?002H;再把PC的內(nèi)容與操作數(shù)54H相加,形成目標(biāo)地址2056H,再送回PC,使得程序跳轉(zhuǎn)到2056H單元繼續(xù)執(zhí)行。7. 位尋址 位尋址是指按位進(jìn)行的尋址操作,而上述介紹的指令都是按字節(jié)進(jìn)行的尋址操作。MCS-51單片機(jī)中,操作數(shù)不僅可以按字節(jié)為單位進(jìn)行操作,也可以按位進(jìn)行操作。當(dāng)我們把某一位作為操作數(shù)時(shí),這個(gè)操作數(shù)的地址稱為位地址。位尋址區(qū)包括專門安排在內(nèi)部RAM中的兩個(gè)區(qū)域:一是內(nèi)部RAM的位尋址區(qū),地址范圍是20H2FH,共16個(gè)RAM單元,位地址為00H7FH;二是特殊功能寄存器SFR中有11個(gè)寄存器可以位尋址,參見(jiàn)有關(guān)章節(jié)中位地址定義。 第三節(jié) 數(shù)據(jù)操作和指令類型MCS-51單片機(jī)指令系統(tǒng)包括111條指令,按功能可以劃分為以下5類數(shù)據(jù)傳送指令(29條)算術(shù)運(yùn)算指令(24條)邏輯運(yùn)算指令(24條)控制轉(zhuǎn)移指令(17條)位操作指令(17條)第四節(jié) 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令是MCS-51單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)中使用最頻繁的指令,包括內(nèi)部 RAM、寄存器、外部RAM以及程序存儲(chǔ)器之間的數(shù)據(jù)傳送。 數(shù)據(jù)傳送操作是指把數(shù)據(jù)從源地址傳送到目的地址,源地址內(nèi)容不變。 1. 以累加器A為目的操作數(shù)的指令MOV A, data ; A data MOV A, Rn ; n=07, A (Rn) MOV A, Ri ; i=0,1 , A (Ri) MOV A, direct ; A (Rn) direct為內(nèi)部RAM或SFR地址2. 以Rn為目的操作數(shù)的指令MOV Rn, A ;Rn (A) , n=07MOV Rn , direct ;Rn (direct) MOV Rn ,data ;Rn data 3.以直接地址為目的操作數(shù)的指令 MOV direct, A ;direct (A) MOV direct, Rn ; direct (Rn) , n=07MOV direct, Ri ; direct ( Ri ) ) , i=0,1MOV direct, direct ;direct (direct) MOV direct, #data ;direct data 4. 以寄存器間接地址為目的操作數(shù)指令MOV Ri, A ; (Ri) ) (A) ,i=0,1MOV Ri , direct ; (Ri) ) (direct) MOV Ri ,data ; (Ri) ) data字節(jié)交換指令XCH A , Rn ; (A) (Ri)XCH A , direct ; (A) (direct)XCH A , Ri ; (A) (Ri)半字節(jié)交換指令XCHD A, Ri ;(A)0-3 (Ri ) 0-3累加器A與外部數(shù)據(jù)傳輸指令MOVX A, DPTR ; A (DPTR) 地址范圍64KMOVX A, Ri ; A (Ri) 地址范圍0255MOVX DPTR, A ; (DPTR) (A)MOVX Ri , A ; (Ri) (A)查表指令1)MOVC A, A+DPTR ; A (A)+(DPTR)2)MOVC A, A+PC ; A (A)+(pc)第五節(jié) 算術(shù)運(yùn)算指令加法指令(Addtion)ADD A, Rn ; A(A)+(Rn)ADD A, Ri ;A(A)+((Ri))ADD A, direct ;A(A)+(direct)ADD A, data ;A(A)+#data帶進(jìn)位加法指令A(yù)DDC A, Rn ; A(A)+(Rn)+(Cy)ADDC A, Ri ;A(A)+(Ri ) +(Cy)ADDC A, direct ;A(A)+(direct) +(Cy)ADDC A, data ;A(A)+#data +(Cy)加1指令I(lǐng)NC A ;A(A)+1INC Ri ;Ri(A)+1INC direct ;direct(direct)+1INC Ri ;(Ri)(Ri)+1INC DPTR ;DPTR(DPTR)+1十進(jìn)制調(diào)整指令DA A帶借位減法指令(Subtraction)SUBB A, Rn ; A(A)-(Rn)-(Cy)SUBB A, Ri ;A(A)-(Ri) ) -(Cy)SUBB A, direct ;A(A)-(direct) -(Cy)SUBB A, data ;A(A)-#data -(Cy)減1指令(Decrease)DEC A ;A(A)1DEC Ri ;Ri(A)1DEC direct ;direct(direct)1DEC Ri ;(Ri)(Ri)1乘法指令(Multiplication)MUL AB 除法指令(Division)DIV AB 第六節(jié) 邏輯運(yùn)算指令簡(jiǎn)單邏輯操作指令CLR A ; A “0”CPL A ; A ASWAP A ; A03 A47左循環(huán)指令 (Rotate Accumulator Left)RL A帶進(jìn)位左循環(huán)指令(Rotate Accumulator Left through Carry flag) RLC A右循環(huán)指令(Rotate Accumulator Right)RR A帶進(jìn)位右循環(huán)指令(Rotate A Right with C)RRC A邏輯與指令A(yù)NL A, Rn ANL A, direct ANL A, dataANL A, RiANL direct, AANL direct, data邏輯或指令ORL A, Rn ORL A, direct ORL A, dataORL A, RiORL direct, AORL direct, data邏輯異或指令XRL A, Rn XRL A, direct XRL A, dataXRL A, RiXRL direct, AXRL direct, data第七節(jié) 位操作指令數(shù)據(jù)位傳送指令MOV C, bit ;bit 可直接尋址位 C(bit)MOV bit,C ;C 進(jìn)位位 (bit) C 位變量修改指令CLR C ; 將C0CLR bitCPL C ; 將C求反再存入CCPL bit ; 將bit求反再存入bitSETB C ; 將C1SETB bit ; (bit) 1 位變量邏輯指令A(yù)NL C, bit ANL C, bit ORL C, bit ORL C, bit第八章 控制轉(zhuǎn)移指令跳轉(zhuǎn)指令短跳指令 AJMP addr11 PCaddr11,跳轉(zhuǎn)范圍2k長(zhǎng)跳指令 LJMP addr16 PCaddr16,跳轉(zhuǎn)范圍64k間接跳轉(zhuǎn)指令 JMP A+DPTR PC(A)(DPTR)相對(duì)轉(zhuǎn)移指令 SJMP rel 條件轉(zhuǎn)移指令JZ rel ;(A)0,轉(zhuǎn)移JNZ rel ;(A)0,轉(zhuǎn)移JC rel ;如 C=1, 轉(zhuǎn)移JNC rel ;如 C=0, 轉(zhuǎn)移JB bit,rel ;如 bit=1, 轉(zhuǎn)移JNB bit,rel ;如 bit=0, 轉(zhuǎn)移JBC bit,rel ;如 bit=1, 轉(zhuǎn)移并 bit0比較不相等轉(zhuǎn)移指令CJNE A,#data,rel;(A)=#data,繼續(xù)C0 (A)#data,轉(zhuǎn)C0 (A)#data,轉(zhuǎn)C1 特點(diǎn):只有時(shí), C1CJNE A,direct,relCJNE Rn,#data,relCJNE Ri,#data,rel減 1 不為 0 轉(zhuǎn)移指令DJNZ Rn,rel ; DJNZ direct,rel例:延時(shí)子程序 delay: MOV R7, #03H delay0: MOV R6, #19H delay1: DJNZ R6, delay1 DJNZ R7, delay0 RET調(diào)用子程序指令短調(diào)用指令 ACALL addr11長(zhǎng)調(diào)用指令 LCALL addr16子程序返回指令 RET中斷返回指令 RETI空操作指令 NOP第四章 定時(shí)器/計(jì)數(shù)器第一節(jié) 概述第二節(jié) 結(jié)構(gòu)和工作原理實(shí)質(zhì)是計(jì)數(shù)器,脈沖每一次下降沿,計(jì)數(shù)寄存器數(shù)值將加1。計(jì)數(shù)的脈沖如果來(lái)源于單片機(jī)內(nèi)部的晶振,由于其周期極為準(zhǔn)確,這時(shí)稱為定時(shí)器。計(jì)數(shù)的脈沖如果來(lái)源于單片機(jī)外部的引腳,由于其周期一般不準(zhǔn)確,這時(shí)稱為計(jì)數(shù)器。定時(shí)/計(jì)數(shù)器方式寄存器TMOD(1) M1和M0:方式選擇位。(2) c/T :功能選擇位。時(shí),設(shè)置為定時(shí)器工作方式;時(shí),設(shè)置為計(jì)數(shù)器工作方式。(3) GATE:門控位。當(dāng)GATE=0時(shí),軟件控制位TR0或TR1置1即可啟動(dòng)定時(shí)器;當(dāng)GATE=1時(shí),軟件控制位TR0或TR1須置1,同時(shí)還須(P3.2)或(P3.3)為高電平方可啟動(dòng)定時(shí)器,即允許外中斷、啟動(dòng)定時(shí)器。定時(shí)器/計(jì)數(shù)器控制寄存器TCON(1) TCON.7 TF1:定時(shí)器1溢出標(biāo)志位。當(dāng)定時(shí)器1計(jì)滿數(shù)產(chǎn)生溢出時(shí),由硬件自動(dòng)置TF1=1。在中斷允許時(shí),向CPU發(fā)出定時(shí)器1的中斷請(qǐng)求,進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清0。在中斷屏蔽時(shí),TF1可作查詢測(cè)試用,此時(shí)只能由軟件清0。(2) TCON.6 TR1:定時(shí)器1運(yùn)行控制位。由軟件置1或清0來(lái)啟動(dòng)或關(guān)閉定時(shí)器1。當(dāng)GATE=1,且為高電平時(shí),TR1置1啟動(dòng)定時(shí)器1;當(dāng)GATE=0時(shí),TR1置1即可啟動(dòng)定時(shí)器1。(3) TCON.5 TF0:定時(shí)器0溢出標(biāo)志位。其功能及操作情況同TF1。(4) TCON.4 TR0:定時(shí)器0運(yùn)行控制位。其功能及操作情況同TR1。(5) TCON.3 IE1:外部中斷1( )請(qǐng)求標(biāo)志位。(6)TCON.2 IT1:外部中斷1觸發(fā)方式選擇位。(7)TCON.1 IE0:外部中斷0 ( )請(qǐng)求標(biāo)志位。 (8) TCON.0 IT0:外部中斷0觸發(fā)方式選擇位。 第三節(jié) 定時(shí)/計(jì)數(shù)器的工作方式1方式0方式0構(gòu)成一個(gè)13位定時(shí)/計(jì)數(shù)器。圖是定時(shí)器0在方式0時(shí)的邏輯電路結(jié)構(gòu),定時(shí)器1的結(jié)構(gòu)和操作與定時(shí)器0完全相同。2方式1定時(shí)器工作于方式1時(shí)。由圖可知,方式1構(gòu)成一個(gè)16位定時(shí)/計(jì)數(shù)器,其結(jié)構(gòu)與操作幾乎完全與方式0相同,惟一差別是二者計(jì)數(shù)位數(shù)不同。3方式2 定時(shí)/計(jì)數(shù)器工作于方式2時(shí),。由圖可知,方式2中,16位加法計(jì)數(shù)器的TH0和TL0具有不同功能,其中,TL0是8位計(jì)數(shù)器,TH0是重置初值的8位緩沖器。4方式3定時(shí)/計(jì)數(shù)器工作于方式3時(shí),其邏輯結(jié)構(gòu)圖如圖所示。第四節(jié) 編程和使用1計(jì)數(shù)器初值的計(jì)算把計(jì)數(shù)器計(jì)滿為零所需要的計(jì)數(shù)值設(shè)定為C,計(jì)數(shù)初值設(shè)定為TC,由此可得到公式:TC=M-C式中,M為計(jì)數(shù)器模值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)M為213;在方式1時(shí)M為216;在方式2和方式3時(shí)M為28。2定時(shí)器初值的計(jì)算在定時(shí)器模式下,計(jì)數(shù)器由單片機(jī)主脈沖經(jīng)12分頻后計(jì)數(shù)。因此,定時(shí)器定時(shí)時(shí)間T的公式:T=(M-TC)T計(jì)數(shù),上式也可寫(xiě)成:TC=M-T/ T計(jì)數(shù)。式中,M為模值,和定時(shí)器的工作方式有關(guān);T計(jì)數(shù)是單片機(jī)振蕩周期TCLK的12倍;TC為定時(shí)器的定時(shí)初值。 第五章 串行通訊基礎(chǔ)第一節(jié) 串行通信基礎(chǔ)在計(jì)算機(jī)系統(tǒng)中,CPU和外部通信有兩種通信方式:并行通信和串行通信。并行通信,即數(shù)據(jù)的各位同時(shí)傳送;串行通信,即數(shù)據(jù)一位一位順序傳送。串行通信的分類按照串行數(shù)據(jù)的時(shí)鐘控制方式,串行通信可分為同步通信和異步通信兩類。1. 異步通信(Asynchronous Communication) 在異步通信中,數(shù)據(jù)通常是以字符為單位組成字符幀傳送的。字符幀由發(fā)送端一幀一幀地發(fā)送,每一幀數(shù)據(jù)均是低位在前,高位在后,通過(guò)傳輸線被接收端一幀一幀地接收。發(fā)送端和接收端可以由各自獨(dú)立的時(shí)鐘來(lái)控制數(shù)據(jù)的發(fā)送和接收,這兩個(gè)時(shí)鐘彼此獨(dú)立,互不同步。 在異步通信中,接收端是依靠字符幀格式來(lái)判斷發(fā)送端是何時(shí)開(kāi)始發(fā)送,何時(shí)結(jié)束發(fā)送的。字符幀格式是異步通信的一個(gè)重要指標(biāo)。字符幀(Character Frame)字符幀也叫數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位等4部分組成,波特率(baud rate)異步通信的另一個(gè)重要指標(biāo)為波特率。 波特率為每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù),也叫比特?cái)?shù),單位為b/s,即位/秒。波特率用于表征數(shù)據(jù)傳輸?shù)乃俣?,波特率越高,?shù)據(jù)傳輸速度越快。但波特率和字符的實(shí)際傳輸速率不同,字符的實(shí)際傳輸速率是每秒內(nèi)所傳字符幀的幀數(shù),和字符幀格式有關(guān)。2. 同步通信(Synchronous Communication) 同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳輸一幀信息。這里的信息幀和異步通信的字符幀不同,通常有若干個(gè)數(shù)據(jù)字符,如圖8.4所示。圖8.4(a)為單同步字符幀結(jié)構(gòu),圖8.4(b)為雙同步字符幀結(jié)構(gòu),但它們均由同步字符、數(shù)據(jù)字符和校驗(yàn)字符CRC三部分組成。在同步通信中,同步字符可以采用統(tǒng)一的標(biāo)準(zhǔn)格式,也可以由用戶約定。 第二節(jié) 串行通訊口的工作方式1.數(shù)據(jù)緩沖器SBUF發(fā)送SBUF和接收SBUF共用一個(gè)地址99H。 1)發(fā)送SBUF存放待發(fā)送的8位數(shù)據(jù),寫(xiě)入SBUF將同時(shí)啟動(dòng)發(fā)送。發(fā)送指令:MOVSBUF,A2)接收SBUF存放已接收成功的8位數(shù)據(jù),供CPU讀取。讀取串行口接收數(shù)據(jù)指令:MOV A,SBUF2.串行口控制/狀態(tài)寄存器SCON(98H)SM0,SM1:選擇串行口4種工作方式。SM2:多機(jī)控制位,用于多機(jī)通訊。REN:允許接收控制位,REN=1,允許接收;REN=0,禁止接收。TB8發(fā)送的第9位數(shù)據(jù)位,可用作校驗(yàn)位和地址/數(shù)據(jù)標(biāo)識(shí)位RB8:接收的第9位數(shù)據(jù)位或停止位TI:發(fā)送中斷標(biāo)志,發(fā)送一幀結(jié)束,TI=1,必須軟件清零RI:接收中斷標(biāo)志,接收一幀結(jié)束,RI=1,必須軟件清零3.節(jié)電控制寄存器PCONSMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍, SMOD=0,則不加倍。串行接口的工作方式SM0,SM1選擇四種工作方式。(1) 方式0:同步移位寄存器方式。用于擴(kuò)展并行I/O接口。1.一幀8位,無(wú)起始位和停止位。2.RXD:數(shù)據(jù)輸入/輸出端。TXD:同步脈沖輸出端,每個(gè)脈沖對(duì)應(yīng)一個(gè)數(shù)據(jù)位。3.波特率B = fosc/12如: fosc=12MHz,B=1MHz,每位數(shù)據(jù)占1ms。4.發(fā)送過(guò)程:寫(xiě)入SBUF,啟動(dòng)發(fā)送,一幀發(fā)送結(jié)束,TI=1。接收過(guò)程:REN=1且RI=0,啟動(dòng)接收,一幀接收完畢,RI=1。(2) 方式1:8位數(shù)據(jù)異步通訊方式。1.一幀10位:8位數(shù)據(jù)位,1個(gè)起始位(0),1個(gè)停止位(1)。 2.RXD:接收數(shù)據(jù)端。 TXD:發(fā)送數(shù)據(jù)端。3.波特率:用T1作為波特率發(fā)生器,B=(2SMOD/32)T1溢出率。4.發(fā)送:寫(xiě)入SBUF,同時(shí)啟動(dòng)發(fā)送,一幀發(fā)送結(jié)束,TI=1。接收:REN=1,允許接收。接收完一幀,若RI=0且停止位為1 (或SM2=0),將接收數(shù)據(jù)裝入SBUF,停止位裝入RB8,并使RI=1;否則丟棄接收數(shù)據(jù),不置位RI。(3) 方式2和方式3:9位數(shù)據(jù)異步通訊方式。1.一幀為11位:9位數(shù)據(jù)位,1個(gè)起始位(0),1個(gè)停止位(1)。第9位數(shù)據(jù)位在TB8/RB8中,常用作校驗(yàn)位和多機(jī)通訊標(biāo)識(shí)位。2.RXD:接收數(shù)據(jù)端,TXD:發(fā)送數(shù)據(jù)端。3.波特率: 方式2:B=(2SMOD/64)fosc 。 方式3:B=(2SMOD/32)T1溢出率 。4.發(fā)送:先裝入TB8,寫(xiě)入SBUF并啟動(dòng)發(fā)送,發(fā)送結(jié)束,TI=1。接收:REN=1,允許接收。接收完一幀,若RI=0且第9位為1 (或SM2=0),將接收數(shù)據(jù)裝入接收SBUF,第9位裝入RB8,使RI=1;否則丟棄接收數(shù)據(jù),不置位RI。第三節(jié) 波特率的設(shè)置方法方式0為固定波特率:B=fosc/12方式2可選兩種波特率: B=(2SMOD /64)fosc 方式1、3為可變波特率,用T1作波特率發(fā)生器。B=(2SMOD/32)T1溢出率T1為方式2的時(shí)間常數(shù): X = 28 - t/T溢出時(shí)間: t= (28 -X)T = (28 -X)12/ foscT1溢出率=1/t= fosc /12(2n -X) 波特率B=(2SMOD /32)fosc/12(28-X)串行口方式1、3,根據(jù)波特率選擇T1工作方式,計(jì)算時(shí)間常數(shù)。T1選方式2: TH1=X= 28-fosc/122SMOD/(32B)T1選方式1用于低波特率,需考慮T1重裝時(shí)間常數(shù)時(shí)間。第六章 中斷系統(tǒng)第一節(jié) 概述中斷是通過(guò)硬件來(lái)改變CPU的運(yùn)行方向的。計(jì)算機(jī)在執(zhí)行程序的過(guò)程中,當(dāng)出現(xiàn)CPU以外的某種情況時(shí),由服務(wù)對(duì)象向CPU發(fā)出中斷請(qǐng)求信號(hào),要求CPU暫時(shí)中斷當(dāng)前程序的執(zhí)行而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理程序執(zhí)行完畢后,再繼續(xù)執(zhí)行原來(lái)被中斷的程序。這種程序在執(zhí)行過(guò)程中由于外界的原因而被中間打斷的情況稱為“中斷”。與中斷有關(guān)的寄存器有4個(gè),分別為中斷源寄存器TCON和SCON、中斷允許控制寄存器IE和中斷優(yōu)先級(jí)控制寄存器IP;中斷源有5個(gè),分別為外部中斷0請(qǐng)求 、外部中斷1請(qǐng)求、定時(shí)器0溢出中斷請(qǐng)求TF0、定時(shí)器1溢出中斷請(qǐng)求TF1和串行中斷請(qǐng)求RI或TI。5個(gè)中斷源的排列順序由中斷優(yōu)先級(jí)控制寄存器IP和順序查詢邏輯電路共同決定,5個(gè)中斷源分別對(duì)應(yīng)5個(gè)固定的中斷入口地址。 第二節(jié) 中斷源與中斷申請(qǐng)標(biāo)志中斷源(1)外部中斷0請(qǐng)求,由P3.2腳輸入。通過(guò)IT0腳(TCON.0)來(lái)決定是低電平有效還是下跳變有效。一旦輸入信號(hào)有效,就向CPU申請(qǐng)中斷,并建立IE0標(biāo)志。(2)外部中斷1請(qǐng)求,由P3.3腳輸入。通過(guò)IT1腳TCON.2)來(lái)決定是低電平有效還是下跳變有效。一旦輸入信號(hào)有效,就向CPU申請(qǐng)中斷,并建立IE1標(biāo)志。 (3)TF0:定時(shí)器T0溢出中斷請(qǐng)求。當(dāng)定時(shí)器0產(chǎn)生溢出時(shí),定時(shí)器0中斷請(qǐng)求標(biāo)志位(TCON.5)置位(由硬件自動(dòng)執(zhí)行),請(qǐng)求中斷處理。(4)TF1:定時(shí)器1溢出中斷請(qǐng)求。當(dāng)定時(shí)器1產(chǎn)生溢出時(shí),定時(shí)器1中斷請(qǐng)求標(biāo)志位(TCON.7)置位(由硬件自動(dòng)執(zhí)行),請(qǐng)求中斷處理。(5) RI或TI:串行中斷請(qǐng)求。當(dāng)接收或發(fā)送完一串行幀時(shí),內(nèi)部串行口中斷請(qǐng)求標(biāo)志位RI(SCON.0)或TI(SCON.1)置
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人購(gòu)銷農(nóng)機(jī)合同范本
- 辦證合同范本模板
- 2025年黑龍江貨運(yùn)從業(yè)資格證模擬考試題目
- 2025年固原貨運(yùn)從業(yè)資格證考試試題
- 農(nóng)業(yè)招標(biāo)合同范本
- 供水項(xiàng)目施工合同范本
- 分級(jí)銷售合同范本
- 做布料生意合同范本
- 辦公花卉采購(gòu)合同范本
- 鹿邑牛犢購(gòu)買合同范本
- 成人重癥患者人工氣道濕化護(hù)理專家共識(shí) 解讀
- 關(guān)于進(jìn)一步加強(qiáng)路基路面施工質(zhì)量的通知
- 新版蘇教版六年級(jí)數(shù)學(xué)上冊(cè)全冊(cè)解析
- AQ/T 2080-2023 金屬非金屬地下礦山在用人員定位系統(tǒng)安全檢測(cè)檢驗(yàn)規(guī)范(正式版)
- GB/T 36548-2024電化學(xué)儲(chǔ)能電站接入電網(wǎng)測(cè)試規(guī)程
- JTT 1499-2024 公路水運(yùn)工程臨時(shí)用電技術(shù)規(guī)程(正式版)
- 2024年甘肅省天水市中考生物·地理試題卷(含答案)
- 壓力變送器的拆卸及安裝 壓力變送器維護(hù)和修理保養(yǎng)
- 2024遼寧大連中遠(yuǎn)海運(yùn)川崎船舶工程限公司招聘73人公開(kāi)引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 2024年上海市法院系統(tǒng)輔助文員招聘筆試參考題庫(kù)附帶答案詳解
- 企業(yè)復(fù)產(chǎn)復(fù)工方案
評(píng)論
0/150
提交評(píng)論