單片機原理與應(yīng)用_第1頁
單片機原理與應(yīng)用_第2頁
單片機原理與應(yīng)用_第3頁
單片機原理與應(yīng)用_第4頁
單片機原理與應(yīng)用_第5頁
已閱讀5頁,還剩188頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

單片機原理與應(yīng)用主講梁祥瑩11MCS51單片機概貌12MCS51單片機的主要性能特點138051的內(nèi)部總體結(jié)構(gòu)148051的引腳描述15存儲器配置16振蕩器、時鐘電路和CPU時序17輸入/輸出端口18定時器/計數(shù)器19串行接口110中斷111單步操作112復(fù)位113低功耗操作方式114編程、程序驗證與加密第一章MCS51系列單片機的基本硬件結(jié)構(gòu)一、有關(guān)本課程學(xué)習(xí)的幾點建議二、課堂授課時間分配三、MCS51單片機概貌四、單片機的特點及其應(yīng)用領(lǐng)域五、MCS51單片機的結(jié)構(gòu)六、8051的引腳描述七、存儲器配置一、有關(guān)本課程學(xué)習(xí)的幾點建議1、本課程的前期基礎(chǔ)課程是數(shù)字電路和微機原理。2、本課程是一門實踐性、應(yīng)用性很強的學(xué)科。3、硬件/軟件同樣重要,不可偏廢。4、預(yù)習(xí)、聽課、復(fù)習(xí)、作業(yè)、實驗環(huán)環(huán)都重要。二、課堂授課時間分配(35學(xué)時)第一章MCS51系列單片機的基本硬件結(jié)構(gòu)(18學(xué)時)第二章MCS51指令系統(tǒng)(4學(xué)時)第三章MCS51單片機的系統(tǒng)擴展與應(yīng)用(10學(xué)時)第四章實用程序及其設(shè)計方法(3學(xué)時)三、MCS51單片機概貌1、微處理器、微機、單片機和單片機系統(tǒng)的概念微處理器(MICROPROCESSOR)本身不是計算機,是小型計算機或微型計算機的控制和處理部分。微機(MICROCOMPUTER)是指由CPU、存儲器、I/O接口電路等各種大型集成電路芯片組裝在一塊或者由幾塊印制電路板組裝而成的機器。單片機(SINGLECHIPMICROCOMPUTER)在一個芯片上集成CPU、存儲器、I/O接口等電子電路的超微型計算機。單片機系統(tǒng)在單片機芯片的基礎(chǔ)上擴展其它電路或芯片構(gòu)成的具有一定應(yīng)用功能的計算機系統(tǒng)。在單片機系統(tǒng)中,單片機處于核心地位,是構(gòu)成單片機系統(tǒng)的硬件和軟件基礎(chǔ)。返回目錄四、單片機的特點及應(yīng)用領(lǐng)域1、單片機的特點(1)小巧靈活、成本低、易于產(chǎn)品化。能組裝成各種智能式測控設(shè)備及智能儀器儀表。(2)可靠性好,應(yīng)用范圍廣。單片機芯片本身是按工業(yè)測控環(huán)境要求設(shè)計的,抗干擾性強,能適應(yīng)各種惡劣的環(huán)境,這是其他機種無法比擬的。(3)易擴展,很容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),控制功能強。單片機的邏輯控制功能很強,指令系統(tǒng)有各種控制功能指令,可以對邏輯功能比較復(fù)雜的系統(tǒng)進行控制。(4)具有通訊功能,可以很方便地實現(xiàn)多機和分布式控制,形成控制網(wǎng)絡(luò)和遠程控制。2、單片機的應(yīng)用(1)工業(yè)方面各種測控系統(tǒng)。數(shù)據(jù)采集系統(tǒng),工業(yè)機器人,智能化儀器,機、電一體化產(chǎn)品。(2)智能儀器儀表方面。(3)通訊方面調(diào)制解調(diào)器、程控交換技術(shù)等。(4)消費產(chǎn)品方面電動玩具、錄像機、激光唱機。(5)導(dǎo)彈與控制方面導(dǎo)彈控制、魚雷制導(dǎo)控制、智能武器裝備、飛機導(dǎo)航系統(tǒng)。(6)計算機外部設(shè)備及電器方面打印機、硬盤驅(qū)動器、彩色與黑白復(fù)印機、磁帶機等。(7)多機分布式系統(tǒng)可用單片機構(gòu)成分布式測控系統(tǒng),它使單片機應(yīng)用進入了一個全新的階段。五、單片機與PC機的比較PC機單片機單價高低功能多單一體積大小到不能再小內(nèi)存以百MB計2KB8KB操作環(huán)境WINDOWS、LINUX等自行發(fā)展標準輸出CRT或LCD屏幕LED或七段數(shù)碼管標準輸入鍵盤、鼠標數(shù)個按鍵常用控制用程序VB或VC匯編語言或C語言返回目錄六、MCS51單片機的結(jié)構(gòu)框圖七、MCS51單片機的邏輯結(jié)構(gòu)1、中央處理器(CPU中央處理器簡稱CPU,是單片機的核心,完成運算和控制操作。按其功能,中央處理器包括運算器和控制器兩部分電路。1)運算器電路功能單片機的運算部件,用于實現(xiàn)算術(shù)和邏輯運算。8051運算器還包含一個布爾處理器,用來處理位操作。2)控制器電路功能單片機的指揮控制部件,保證單片機各部分能自動而協(xié)調(diào)地工作。2、內(nèi)部數(shù)據(jù)存儲器組成RAM(1288)和RAM地址寄存器等。功能用于存放可讀寫的數(shù)據(jù)。3、內(nèi)部程序存儲器組成ROM(4K8)和程序地址寄存器等。功能用于存放程序和原始數(shù)據(jù)。4、定時器計數(shù)器80C51共有兩個16位的定時器計數(shù)器。功能實現(xiàn)定時或計數(shù)功能,并以其定時或計數(shù)結(jié)果對單片機進行控制,以滿足控制應(yīng)用的需要。5、并行I/O口MCS51共有4個8位的I/O口(P0、P1、P2、P3)功能實現(xiàn)數(shù)據(jù)的并行輸入輸出。6、串行口MCS51單片機有一個全雙工的串行口。功能以實現(xiàn)單片機和其它數(shù)據(jù)設(shè)備之間的串行數(shù)據(jù)傳送。7、中斷控制系統(tǒng)80C51共有5個中斷源,即外中斷2個,定時計數(shù)中斷2個,串行中斷1個。全部中斷分為高級和低級共兩個優(yōu)先級別。8、時鐘電路MCS51芯片的內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容需外接。功能時鐘電路為單片機產(chǎn)生時鐘脈沖序列。典型的晶振頻率6MHZ、110592MHZ、12MHZ。9、位處理器位處理器稱為布爾處理器。功能以狀態(tài)寄存器中的進位標志位C為累加位,可進行各種位操作。10、總線總線連接計算機各部件的一組公共信號線。分類地址總線、數(shù)據(jù)總線和控制總線。作用減少了單片機的連線和引腳,提高了集成度和可靠性。返回目錄八、8051單片機的引腳描述1、VCC電源正端,容許正常工作的電壓是510,即CPU可工作于45V55V的電壓環(huán)境。2、VSS電源低端,所有輸入/輸出信號都以此點為參考電壓點,如P10的輸出電壓為40V時,即指輸出端為VSS點的電壓差為40V3、RSTCPU的復(fù)位引腳。平常應(yīng)工作于低電位狀態(tài),當(dāng)要對CPU做復(fù)位操作時,只要將此引腳升到邏輯1的狀態(tài),并保持2個機器周期以上時間。單片機將立刻進行系統(tǒng)重置的各項工作,并且開始由0000H地址上讀入程序碼。4、ALE地址鎖存控制信號功能一、在系統(tǒng)擴展時,ALE用于控制把P0口輸出的低8位地址送入鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的分時傳送。功能二、ALE是以六分之一晶振頻率的固定頻率輸出的正脈沖,可作為外部時鐘或外部定時脈沖使用。5、/PSEN外部程序存儲器讀選通信號在讀外部ROM時/PSEN有效(低電平),以實觀外部ROM單元的讀操作。6、/EA訪問程序存儲器控制信號當(dāng)/EA信號為低電平時,對ROM的讀操作限定在外部程序存儲器;當(dāng)/EA信號為高電平時,對ROM的讀操作是從內(nèi)部程序存儲器開始,并可延續(xù)至外部程序存儲器。7、XTAL1系統(tǒng)振蕩晶體的反相放大輸入端。8、XTAL2系統(tǒng)振蕩晶體的反相放大輸出端。9、P0口端口0,一個8位的漏極開路型雙向I/O,內(nèi)部不帶上拉電阻,P0口能以吸收電流的方式驅(qū)動8個LSTTL負載電路,通常在使用時外接上拉電阻。用來驅(qū)動多個數(shù)碼管。在訪問外部數(shù)據(jù)存儲器時,P0口時分時轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線。10、P1口一個雙向的I/O端口,有內(nèi)部的上拉電阻,能驅(qū)動4個LSTTL負載,通常在使用時不需要接上拉電阻,就可以直接驅(qū)動發(fā)光二極管。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。11、P2口帶內(nèi)部上拉電阻的8位雙向I/O口,能驅(qū)動4個LSTTL負載,端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用,對內(nèi)部FLASH程序存儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數(shù)據(jù)存儲器時,P2口送出高8位地址。12、P3口內(nèi)部有上拉電阻的8位雙向I/O口,可驅(qū)動4個LSTTL負載,置成1可當(dāng)作I/O使用。每個引腳均有其他特殊功能。返回目錄九、存儲器配置MCS51的存儲器可分為程序存儲器和數(shù)據(jù)存儲器,又有片內(nèi)和片外之分。(1)程序存儲器一般將只讀存儲器(ROM)用做程序存儲器??蓪ぶ房臻g為64KB,用于存放用戶程序、數(shù)據(jù)和表格等信息。MCS51單片機按程序存儲器可分為內(nèi)部無ROM型(如8031)和內(nèi)部有ROM型(如8051)兩種,連接時引腳有區(qū)別。程序存儲器結(jié)構(gòu)如下頁圖所示(2)數(shù)據(jù)存儲器一般將隨機存儲器(RAM)用做數(shù)據(jù)存儲器??蓪ぶ房臻g為64KB。MCS51數(shù)據(jù)存儲器可分為片內(nèi)和片外兩部分。片外RAM最大范圍0000HFFFFH,64KB;用指令MOVX訪問。片內(nèi)RAM最大范圍00HFFH,256B;用指令MOV訪問。又分為兩部分低128B(007FH)為真正的RAM區(qū),高128B(80FFH)為特殊功能寄存器(SFR)區(qū)。如上頁圖所示。內(nèi)部內(nèi)部RAM的的20H2FH單元為單元為位尋址區(qū),既可作位尋址區(qū),既可作為一般單元用字節(jié)為一般單元用字節(jié)尋址,也可對它們尋址,也可對它們的位進行尋址。位的位進行尋址。位地址為地址為00H7FH。CPU能直接尋能直接尋址這些位(稱址這些位(稱MCS51具有布爾具有布爾處理功能),位地處理功能),位地址分配如右表所示址分配如右表所示。3、MCS51的專用寄存器(SFR)(1)程序存儲器中7個特殊定義的地址(不屬于SFR)入口意義0000H系統(tǒng)程序的啟動地址0003H外部中斷0入口地址000BH定時器0溢出入口地址0013H外部中斷1入口地址001BH定時器1溢出入口地址0023H串行口中斷002BH定時器2溢出或T2EX(P11)端負跳通常在這些入口地址都安放一條絕對跳轉(zhuǎn)指令,跳轉(zhuǎn)到相應(yīng)中斷服務(wù)程序入口去執(zhí)行中斷服務(wù)程序。(2)專用寄存器MCS51共有23個特殊功能寄存器(3個屬于8032/8052),其中5個是雙字節(jié)寄存器,程序計數(shù)器PC在物理上是獨立的,其余22個寄存器都屬于片內(nèi)數(shù)據(jù)存儲器SFR塊,共26個字節(jié)。程序計數(shù)器PC(16BIT)累加器A寄存器B程序狀態(tài)字PSW堆棧指針SP數(shù)據(jù)指針DPTRI/O端口P0P3程序計數(shù)器PC(PROGRAMCOUNTER)程序計數(shù)器PC在物理上是獨立的,它不屬于SFR存儲器塊。PC是一個16位的計數(shù)器,專門用于存放CPU將要執(zhí)行的指令地址(即下一條指令的地址),尋址范圍為64KB,PC有自動加1功能,不可尋址,用戶無法對它進行讀寫,但是可以通過轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以控制程序執(zhí)行的順序。執(zhí)行指令時,PC內(nèi)容的低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。程序狀態(tài)字PSWCYACF0RS1RS0OVPCY進位/借位標志位AC輔助進位位/借位標志位F0可由用戶定義的標志位RS1、RS0工作寄存器組選擇位OV溢出標志位PSW1未定義P奇偶標志位(采用偶校驗)堆棧指針SP1)MCS51堆棧設(shè)在內(nèi)部RAM中,是一個按“先進先出”順序,受SP管理的存儲區(qū)域。2)在程序中斷、子程序調(diào)用等情況下,會用到堆棧來保存斷點和現(xiàn)場(也可作數(shù)據(jù)傳送的中轉(zhuǎn)站)3)堆棧深度為128個字節(jié),系統(tǒng)復(fù)位時,硬件使SP07H,用戶可修改SP來改變堆棧位置。返回目錄16振蕩器、時鐘電路和CPU時序一、振蕩器電路的兩種接法說明使用內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻。使用外部方式時,外部振蕩信號應(yīng)直接加到XTAL1,而XTAL2懸空二、CPU時序1、幾個周期的概念振蕩周期/時鐘周期TC晶振頻率FOSC(或外加頻率)的倒數(shù)狀態(tài)周期TS2個時鐘周期機器周期TM6個狀態(tài)周期(TS)12個振蕩周期(TC)指令周期TI執(zhí)行一條指令所需要的機器周期數(shù)振蕩周期為單片機提供時鐘信號的振蕩源的周期。時鐘周期是振蕩源信號經(jīng)二分頻后形成的時鐘脈沖信號。機器周期通常將完成一個基本操作所需的時間稱為機器周期。指令周期是指CPU執(zhí)行一條指令所需要的時間。一個指令周期通常含有14個機器周期。時鐘電路產(chǎn)生的振蕩脈沖,經(jīng)過觸發(fā)器進行時鐘電路產(chǎn)生的振蕩脈沖,經(jīng)過觸發(fā)器進行二分頻之后才能為單片機的時鐘脈沖信號。二分頻之后才能為單片機的時鐘脈沖信號。請?zhí)貏e注意時鐘脈沖與振蕩脈沖之間的二分請?zhí)貏e注意時鐘脈沖與振蕩脈沖之間的二分頻關(guān)系,頻關(guān)系,否則會造成概念上的錯誤。否則會造成概念上的錯誤。2、時鐘脈沖和振蕩脈沖時鐘脈沖和振蕩脈沖3、時序的定時單位時序是用定時單位來說明的,80C51的時序定時單位共有個,從小到大依次是N節(jié)拍N狀態(tài)N機器周期N指令周期。節(jié)拍與狀態(tài)N振蕩脈沖的周期叫做節(jié)拍,用表示。振蕩脈沖經(jīng)過二分頻后,就是單片機的時鐘信號,把時鐘信號的周期定義為狀態(tài),用表示。N這樣,一個狀態(tài)就包括兩個節(jié)拍,其前半周期對應(yīng)的節(jié)拍叫節(jié)拍(),后半周期對應(yīng)的節(jié)拍叫節(jié)拍()。機器周期N80C51采用定時控制方式,因此它有固定的機器周期。80C51的一個機器周期的寬度為個狀態(tài),并依次表示為,由于一個狀態(tài)又包括兩個節(jié)拍,因此一個機器周期總共有個節(jié)拍,分別記作S1P1、S1P2S6P1、S6P2。N由于一個機器周期共有個振蕩脈沖周期,因此機器周期就是振蕩脈沖的十二分頻。當(dāng)振蕩脈沖頻率為Z時,一個機器周期為S,當(dāng)振蕩脈沖頻率為Z時,一個機器周期為S。指令周期指令周期是最大的時序定時單位,執(zhí)行一條指令需要的時間稱之為指令周期。根據(jù)指令的不同,80C51的指令周期可以包含有1、2、4個機器周期。當(dāng)然,1個機器周期的指令執(zhí)行的最快。P1P2S1P2振蕩周期時鐘周期機器周期機器周期指令周期XTAL2OSCS2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2圖212MCS51單片機各種周期的相互關(guān)系4、振蕩周期、時鐘周期、機器周期和指令周期例若MCS51單片機外接晶振為12MHZ時,則單片機的四個周期的具體值為振蕩周期1/12MHZ1/12S00833S時鐘周期1/6S0167S機器周期1S指令周期14S指令的集合稱為程序,執(zhí)行程序的過程就是執(zhí)行指令的過程,單片機執(zhí)行任何一條指令時,都可以分為取指階段和執(zhí)行階段。在取指階段,CPU從程序存儲器中取出指令操作碼,送指令寄存器,再經(jīng)指令譯碼器譯碼,產(chǎn)生一系列控制信號,完成本指令規(guī)定的操作。5、MCS51單片機指令的取指和執(zhí)行時序一個機器周期P1P2P1P2單字節(jié)單周期指令例INCA單字節(jié)單周期指令例INCA雙字節(jié)單周期指令例ADDA,DATA單字節(jié)雙周期指令例INCDPTR說明ALE信號是用于鎖存低8位地址的選通信號,每出現(xiàn)一次該信號,單片機即進行一次讀指令操作,當(dāng)指令為多字節(jié)或多周期指令時,只有第一個ALE信號進行讀指令操作,其余的ALE信號為無效操作(或讀操作數(shù)操作)6、訪問片外ROM/RAM指令的時序外部程序存儲器讀時序從外部程序存儲器讀取指令,必須有兩個信號進行控制ALE信號和信號(外部ROM讀選通脈沖)。外部數(shù)據(jù)存儲器讀時序第一個機器周期是取指周期,是從ROM中讀取指令數(shù)據(jù),第二個機器周期才開始讀取外部數(shù)據(jù)存儲器RAM中的內(nèi)容。有三個信號進行控制ALE信號、信號(外部RAM讀選通脈沖)和信號(外部ROM讀選通脈沖)。返回目錄17輸入/輸出(I/O)端口MCS51單片機有4個雙向并行的8位I/O口P0P3,P0口為開漏極輸出,內(nèi)部沒有上拉電阻,為三態(tài)雙向I/O口,可驅(qū)動8個TTL電路,P1、P2、P3三個口內(nèi)部有上拉電阻,稱為準雙向口。171P0口1P0口結(jié)構(gòu)P0口是一個三態(tài)雙向口,可作為地址/數(shù)據(jù)分時復(fù)用口,也可作為通用I/O接口。其1位的結(jié)構(gòu)原理下頁圖中所示。P0口由8個這樣的電路組成鎖存器起輸出鎖存作用,8個鎖存器構(gòu)成了特殊功能寄存器P0場效應(yīng)管(FET)V1、V2組成輸出驅(qū)動器,以增大帶負載能力三態(tài)門1是引腳輸入緩沖器三態(tài)門2是用于讀鎖存器端口與門3、反相器4及模擬轉(zhuǎn)換開關(guān)構(gòu)成輸出控制電路。P0口的工作原理P00P07雙向I/O(內(nèi)置場效應(yīng)管上拉)尋址外部程序存儲器時分時作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0X34VCC21DQCK/Q讀引腳1讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0X34控制0時,此腳作輸入口(事先必須對它寫“1”)00100截止截止0VCCP0口的工作原理P00P07雙向I/O(內(nèi)置場效應(yīng)管上拉)尋址外部程序存儲器時分時作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳0讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制1引腳P0X34控制1時,此腳作地址/數(shù)據(jù)復(fù)用口(1)輸出地址/數(shù)據(jù)0時10110導(dǎo)通截止0VCCP0口工作原理P00P07雙向I/O(內(nèi)置場效應(yīng)管上拉)尋址外部程序存儲器時分時作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳0讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制1引腳P0X34控制1時,此腳作地址/數(shù)據(jù)復(fù)用口(2)輸出地址/數(shù)據(jù)1時11001截止導(dǎo)通1VCCP0口的工作原理P00P07雙向I/O(內(nèi)置場效應(yīng)管上拉)尋址外部程序存儲器時分時作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳1讀鎖存器寫鎖存器內(nèi)部總線地址/數(shù)據(jù)控制1引腳P0X34控制1時,此腳作地址/數(shù)據(jù)復(fù)用口(3)輸入數(shù)據(jù)時,輸入指令將使引腳與內(nèi)部總線直通VCCP0口工作原理P00P07雙向I/O(內(nèi)置場效應(yīng)管上拉)尋址外部程序存儲器時分時作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲器時可作為8位準雙向I/O口使用。讀鎖存器在端口已處于輸出狀態(tài)的情況下讀鎖存器。讀鎖存器是通過上方的緩沖器讀鎖存器端的狀態(tài)。在端口已處于輸出狀態(tài)的情況下,不能正常讀取引腳的信號,只能讀取鎖存器的狀態(tài);這樣安排的目的是適應(yīng)對端口進行“讀修改寫”操作指令的需要。例如“ANLP0,A”就屬于這類指令,執(zhí)行時先讀入P0口鎖存器中的數(shù)據(jù),然后與A的內(nèi)容進行邏輯“與”,再把結(jié)果送到P0口輸出。從這種意義上說,該指令又可看作是輸出指令。除MOV類指令外的其它口操作指令都屬于這種情況。說明一、當(dāng)P0口作為通用I/O接口時,要注意兩點在輸出數(shù)據(jù)1時,由于V2截止,輸出級是漏極開路電路,要使“1”信號正常輸出,必須外接上拉電阻。P0口作為通用I/O使用時是一準雙向口。二、MCS51單片機有不少指令可直接進行端口操作,例如ANLP0,A(P0)(P0)(A)ORLP0,DATA(P0)(P0)DATADELP0(P0)(P0)1172P1口P1口為準雙向口,其1位的內(nèi)部結(jié)構(gòu)如下圖所示。它在結(jié)構(gòu)上與P0口的區(qū)別在于輸出驅(qū)動部分,其輸出驅(qū)動部分由場效應(yīng)管V1與內(nèi)部上拉電阻組成。當(dāng)其某位輸出高電平時,可以提供拉電流負載,不必象P0口那樣需要外接電阻。從功能上來看P1只有一種功能(對MCS51子系列),即通用輸入輸出I/O接口,具有輸入、輸出、端口操作3種工作方式,每1位口線能獨立地用作輸入或輸出線。P1口工作原理P10P17準雙向I/O口(內(nèi)置了上拉電阻)輸出時一切照常,僅在作輸入口用時要先對其寫“1”。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線VCC引腳P1X內(nèi)部上拉電阻21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線VCC引腳P1X內(nèi)部上拉電阻輸出數(shù)據(jù)1時110截止1P1口工作原理P10P17準雙向I/O口(內(nèi)置了上拉電阻)輸出時一切照常,僅在作輸入口用時要先對其寫“1”。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線VCC引腳P1X內(nèi)部上拉電阻輸出數(shù)據(jù)0時0010導(dǎo)通P1口工作原理P10P17準雙向I/O口(內(nèi)置了上拉電阻)輸出時一切照常,僅在作輸入口用時要先對其寫“1”。21DQCK/Q讀引腳1讀鎖存器寫鎖存器內(nèi)部總線VCC引腳P1X內(nèi)部上拉電阻輸入數(shù)據(jù)時,要先對其寫“1”110截止P1口工作原理P10P17準雙向I/O口(內(nèi)置了上拉電阻)輸出時一切照常,僅在作輸入口用時要先對其寫“1”。173P2口P2口也是一準雙向口,其1位的內(nèi)部結(jié)構(gòu)如下頁圖所示。它具有通用I/O接口或高8位地址總線輸出兩種功能,所以其輸出驅(qū)動結(jié)構(gòu)比P1口輸出驅(qū)動結(jié)構(gòu)多了一個輸出模擬轉(zhuǎn)換開關(guān)MUX和反相器3。P2口工作原理P20P27雙向I/O(內(nèi)置了上拉電阻)尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制引腳P2X3內(nèi)部上拉電阻VCC21DQCK/Q讀引腳0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制引腳P2X控制0時,此腳作通用輸出口輸出1時110截止3內(nèi)部上拉電阻11VCC10P2口工作原理P20P27雙向I/O(內(nèi)置了上拉電阻)尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制引腳P2X控制0時,此腳作通用輸出口輸出0時001導(dǎo)通3內(nèi)部上拉電阻00VCC00P2口工作原理P20P27雙向I/O(內(nèi)置了上拉電阻)尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制1引腳P2X控制1時,此腳作高8位地址A8A15輸出口當(dāng)輸出1時10截止3內(nèi)部上拉電阻11VCC1P2口工作原理P20P27雙向I/O(內(nèi)置了上拉電阻)尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳0讀鎖存器寫鎖存器內(nèi)部總線地址高8位控制1引腳P2X01導(dǎo)通3內(nèi)部上拉電阻00VCC0控制1時,此腳作高8位地址A8A15輸出口當(dāng)輸出0時P2口工作原理P20P27雙向I/O(內(nèi)置了上拉電阻)尋址外部程序存儲器時輸出高8位地址;不接外部程序存儲器時可作為8位準雙向I/O口使用。說明當(dāng)作為準雙向通用I/O接口使用時,控制信號使轉(zhuǎn)換開關(guān)接向左側(cè),鎖存器Q端經(jīng)反相器3接V1,其工作原理與P1相同,也具有輸入、輸出、端口操作三種工作方式,負載能力也與P1口相同。174P3口P3口的1位結(jié)構(gòu)如下頁圖所示。它的輸出驅(qū)動由與非門3、V1組成,比P0、P1、P2口結(jié)構(gòu)多了一個緩沖器4。P3口除了可作為通用準雙向I/O接口外,每1根線還具有第2功能。P3口工作原理P30P37雙功能口(內(nèi)置了上拉電阻)它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準雙向I/O口。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線第二功能輸出引腳P3X3內(nèi)部上拉電阻VCC第二功能輸入421DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線第二功能輸出(WR,RD,TXD)引腳P3X3內(nèi)部上拉電阻VCC4第二功能輸出時,內(nèi)部自動D1111反相器P3口工作原理P30P37雙功能口(內(nèi)置了上拉電阻)它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準雙向I/O口。21DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線此端自動1引腳P3X3內(nèi)部上拉電阻VCC第二功能輸入(RXD,T0,T1,INT0,INT1)4第二功能輸入時,信號經(jīng)緩沖器4直接進入內(nèi)總線1110截止P3口工作原理P30P37雙功能口(內(nèi)置了上拉電阻)它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準雙向I/O口。P3口的第二功能表P32P33位線引腳第二功能P3010RXD(串行輸入口)P3111TXD(串行輸出口)12INT0(外部中斷0)13INT1(外部中斷1)P3414T0(定時器0的計數(shù)輸入)P3515T1(定時器1的計數(shù)輸入)16WR(外部數(shù)據(jù)存儲器寫脈沖)17RD(外部數(shù)據(jù)存儲器讀脈沖)P37P36175端口的負載能力及接口要求端口的負載能力及接口要求1P0口得每一位輸出可驅(qū)動8個LSTTL輸入,但把它當(dāng)通用I/O口用時,輸出級屬漏極開路,在驅(qū)動NMOS電路時應(yīng)外接上拉電阻。當(dāng)P0口作地址數(shù)據(jù)總線使用時,則無需外接上拉電阻。21P3口的輸出級接有上拉電阻,它們的每一位輸出可驅(qū)動3個LSTTL輸入。對于HMOS型的單片機,當(dāng)1和P3口作輸入時,任何TTL或NMOS電路都能以正常的方式去驅(qū)動這些口。不管是HMOS型的還是NMOS型的單片機,它們的1P3的輸入端都可以被集電極開路或漏級開路電路所驅(qū)動,而無需上拉電阻。3CHMOS端口只能提供幾毫安的輸出電流,故當(dāng)作為輸出口去驅(qū)動一個普通晶體管的基極時,應(yīng)在端口與晶體管基極間串接一個電阻,以限制高電平輸出時的電流。返回目錄18定時器/計數(shù)器一、基本概念(1)計數(shù)計數(shù)是指對外部事件的個數(shù)進行計量。其實質(zhì)就是對外部輸入脈沖的個數(shù)進行計數(shù)。實現(xiàn)計數(shù)功能的器件稱為計數(shù)器。(2)定時8051單片機中的定時器和計數(shù)器是一個部件,只不過計數(shù)器記錄的是外界發(fā)生的事件,而定時器則是由單片機內(nèi)部提供一個非常穩(wěn)定的計數(shù)源進行定時的。這個計數(shù)源是由單片機的晶振經(jīng)過12分頻后獲得的一個脈沖源。所以定時器計數(shù)脈沖的時間間隔與晶振有關(guān)。(3)定時的種類軟件定時利用執(zhí)行一個循環(huán)程序進行時間延遲。其特點是定時時間精確,不需外加硬件電路,但占用CPU時間。因此軟件定時的時間不宜過長。硬件定時利用硬件電路實現(xiàn)定時。其特點是不占用CPU時間,通過改變電路元器件參數(shù)來調(diào)節(jié)定時,但使用不夠靈活方便。對于時間較長的定時,常用硬件電路來實現(xiàn)??删幊潭〞r器通過專用的定時器/計數(shù)器芯片實現(xiàn)。其特點是通過對系統(tǒng)時鐘脈沖進行計數(shù)實現(xiàn)定時,定時時間可通過程序設(shè)定的方法改變,使用靈活方便。也可實現(xiàn)對外部脈沖的計數(shù)功能。二、MCS51內(nèi)部定時器/計數(shù)器MCS51單片機內(nèi)部有兩個16位可編程的定時器/計數(shù)器,簡稱為T0和T1,均可作定時器用,也可用作計數(shù)器,它們均是二進制加法計數(shù)器,當(dāng)計數(shù)器計滿,回零時能自動產(chǎn)生溢出中斷請求,表示定時時間已到或計數(shù)已終止。適用于定時控制、延時、外部計數(shù)和檢測等。當(dāng)它對外部事件進行計數(shù)時,由于頻率不固定,此時稱之為計數(shù)器;當(dāng)它對內(nèi)部固定頻率的機器周期進行計數(shù)時,稱之為定時器。定時器/計數(shù)器的基本結(jié)構(gòu)(1)定時器/計數(shù)器的結(jié)構(gòu)組成16位加法計數(shù)器、工作方式寄存器TMOD和控制寄存器TCON。T0TL0(低8位)和TH0(高8位)T1TL1(低8位)和TH1(高8位)定時器對片內(nèi)機器時鐘周期方波進行計數(shù)計數(shù)速率為振蕩器速率的1/12。計數(shù)器對TX引腳輸入的負脈沖進行計數(shù)外部輸入的計數(shù)脈沖的最高頻率為振蕩器頻率的1/24。(2)說明上圖中,TH1,TL1是定時器T1的計數(shù)器,TH0,TL0是T0的計數(shù)器。TH1和TL1、TH0和TL0分別構(gòu)成兩個16位加法計數(shù)器,他們的工作狀態(tài)及工作方式由兩個特殊功能寄存器TMOD和TCON的各位來決定。工作狀態(tài)有定時和計數(shù)兩種,由TMOD的第2位或第6位決定。工作模式有四種,也是由TMOD其中的兩位來決定,TMOD和TCON的內(nèi)容由軟件寫入。當(dāng)T0或T1加1溢出后,記滿溢出信號使TCON中的TF0或TF1置1,作為定時器/計數(shù)器的溢出中斷標志。三、T0和T1的控制和狀態(tài)寄存器1、定時器模式控制寄存器TMOD89HGATEC/TM1M0GATEC/TM1M0T1T0M1,M0工作方式選擇位工作方式選擇位。0013位定時器位定時器/計數(shù)器(計數(shù)器(用它無益,不要記它);0116位定時器位定時器/計數(shù)器(計數(shù)器(經(jīng)常用到););10可自動重裝的可自動重裝的8位定時器位定時器/計數(shù)器(計數(shù)器(經(jīng)常用到););11T0分為分為2個個8位定時器位定時器/計數(shù)器;僅適用于計數(shù)器;僅適用于T0(幾乎無用)。GATEC/TM1M0GATEC/TM1M0T1T0C/T計數(shù)器計數(shù)器/定時器選擇位定時器選擇位1外部事件計數(shù)器,對外部事件計數(shù)器,對T0/T1引腳輸入的外部引腳輸入的外部事件的負脈沖計數(shù);事件的負脈沖計數(shù);0片內(nèi)時鐘定時器。對機器周期脈沖計數(shù)定時片內(nèi)時鐘定時器。對機器周期脈沖計數(shù)定時GATE門控位TIMER可由軟件與硬件兩者控制GATE0普通用法TIMER的啟/停由軟件對TRX位寫“1”/“0”控制GATE1門控用法TIMER的啟/停由軟件對TRX位寫“1”/“0”和在INTX引腳上出現(xiàn)的信號的高/低共同控制即只有當(dāng)INTX引腳為高電平且TRX置1時,相應(yīng)的定時器計數(shù)器才被選通工作,這時可用于測量在INTX端出現(xiàn)的正脈沖的寬度。GATEC/TM1M0GATEC/TM1M0T1T0GATE位的控制邏輯圖位的控制邏輯圖2、定時器控制寄存器TCON88HTF1TR1TF0TR0IE1IT1IE0IT0TFXTIMER0/1計數(shù)溢出標志位。計數(shù)溢出標志位。1計數(shù)溢出計數(shù)溢出;0計數(shù)未滿計數(shù)未滿TFX標志位可用于申請中斷或供標志位可用于申請中斷或供CPU查詢。查詢。在進入中斷服務(wù)程序后由硬件自動清零;但在在進入中斷服務(wù)程序后由硬件自動清零;但在查詢方式時必須軟件清零。查詢方式時必須軟件清零。TRXTIMER0/1運行控制位。運行控制位。1啟動計數(shù);啟動計數(shù);0停止計數(shù)停止計數(shù)TF1TR1TF0TR0IE1IT1IE0IT0IE0/IE1外部中斷申請標志位檢測到在外部中斷申請標志位檢測到在INTX引腳上出現(xiàn)引腳上出現(xiàn)的外部中斷信號的下降沿時的外部中斷信號的下降沿時,由硬件置位由硬件置位,請求中斷請求中斷進入中斷進入中斷服務(wù)后被硬件自動清除。服務(wù)后被硬件自動清除。0沒有外部中斷申請;沒有外部中斷申請;1有外部中斷申請。有外部中斷申請。IT0/IT1外部中斷請求的觸發(fā)方式選擇位外部中斷請求的觸發(fā)方式選擇位0在在INT0/INT1端申請中斷的信號低電平有效端申請中斷的信號低電平有效1在在INT0/INT1端申請中斷的信號負跳變有效。端申請中斷的信號負跳變有效。定時器T0/T1中斷申請過程定時/計數(shù)器可按片內(nèi)機器周期定時,也可對由T0/T1引腳輸入一個負脈沖進行加法計數(shù)在已經(jīng)開放T0/T1中斷允許且已被啟動的前提下;T0/T1加滿溢出時TF0/TF1標志位自動置“1”;檢測到TCON中TF0/TF1變“1”后,將產(chǎn)生指令LCALL000BH/LCALL001BH執(zhí)行中斷服務(wù)程序;TF0/TF1標志位會自動清“0”,以備下次中斷申請。四、定時器結(jié)構(gòu)與工作方式1、工作方式0(M1M000,13位定時器/計數(shù)器)振蕩器12TLXTHX5位8位TFX申請中斷TX端TRX位GATE位INTX端1對T1不要開中斷3、串行口工作方式2、方式311位UART1811位這兩種方式都是11位異步通信,操作方式完全一樣,只有波特率不同,適用于多機通信。在方式2或方式3下,數(shù)據(jù)由TXD端發(fā)送,RXD端接收。收發(fā)一幀數(shù)據(jù)為11位一位起始位(低電平)、8位數(shù)據(jù)位、1位可編程的第9位(D8用于奇偶校驗或地址/數(shù)據(jù)選擇,發(fā)送時位TB8,接收時送入RB8)、1位停止位(高電平)。波特率(區(qū)別所在)方式2B2SMOD/64FOSC。方式3B2SMOD/32T1溢出率。奇偶校驗是檢驗串行通信雙方傳輸?shù)臄?shù)據(jù)正確奇偶校驗是檢驗串行通信雙方傳輸?shù)臄?shù)據(jù)正確與否的一個措施,并不能保證通信數(shù)據(jù)的傳輸一與否的一個措施,并不能保證通信數(shù)據(jù)的傳輸一定正確。定正確。換言之如果換言之如果奇偶校驗發(fā)生錯誤,表明數(shù)據(jù)傳奇偶校驗發(fā)生錯誤,表明數(shù)據(jù)傳輸一定出錯了;如果奇偶校驗沒有出錯,絕不等輸一定出錯了;如果奇偶校驗沒有出錯,絕不等于數(shù)據(jù)傳輸完全正確。于數(shù)據(jù)傳輸完全正確。奇校驗奇校驗8位有效數(shù)據(jù)連同位有效數(shù)據(jù)連同1位附加位中,位附加位中,二進制二進制“1”的個數(shù)為奇數(shù)的個數(shù)為奇數(shù)偶校驗偶校驗8位有效數(shù)據(jù)連同位有效數(shù)據(jù)連同1位附加位中,位附加位中,二進制二進制“1”的個數(shù)為偶數(shù)的個數(shù)為偶數(shù)約定接收采用約定接收采用奇校驗奇校驗若接收到的若接收到的9位數(shù)據(jù)中位數(shù)據(jù)中“1”的個數(shù)為奇數(shù),的個數(shù)為奇數(shù),則表明接收正確,取出則表明接收正確,取出8位有效數(shù)據(jù)即可;位有效數(shù)據(jù)即可;若接收到的若接收到的9位數(shù)據(jù)中位數(shù)據(jù)中“1”的個數(shù)為偶數(shù),的個數(shù)為偶數(shù),則表明接收出錯應(yīng)當(dāng)進行出錯處理。則表明接收出錯應(yīng)當(dāng)進行出錯處理。約定發(fā)送采用約定發(fā)送采用奇校驗奇校驗若發(fā)送的若發(fā)送的8位有效數(shù)據(jù)中位有效數(shù)據(jù)中“1”的個數(shù)為偶數(shù),的個數(shù)為偶數(shù),則要人為添加一個附加位則要人為添加一個附加位“1”一起發(fā)送;一起發(fā)送;若發(fā)送的若發(fā)送的8位有效數(shù)據(jù)中位有效數(shù)據(jù)中“1”的個數(shù)為奇數(shù),的個數(shù)為奇數(shù),則要人為添加一個附加位則要人為添加一個附加位“0”一起發(fā)送。一起發(fā)送。采用采用偶校驗時,處理方法與奇校驗相反偶校驗時,處理方法與奇校驗相反回顧程序狀態(tài)字寄存器PSW中有一個奇偶狀態(tài)位PCYACF0RS0OVPRS1PSW7PSW0PPSW0奇偶狀態(tài)位。P1表示目前累加器中“1”的個數(shù)為奇數(shù)P0表示目前累加器中“1”的個數(shù)為偶數(shù)CPU隨時監(jiān)視著ACC的“1”的個數(shù)并自動反映在P工作方式2的奇偶校驗用法發(fā)送過程發(fā)送前,先根據(jù)通信協(xié)議由軟件設(shè)置TB8,然后執(zhí)行一條將發(fā)送數(shù)據(jù)寫入SBUF的指令即可啟動發(fā)送過程。串行口能自動把TB8取出并裝入到第9位數(shù)據(jù)位(D8)的位置,發(fā)送完一幀數(shù)據(jù)時,由硬件置位TI。接收過程當(dāng)用軟件使REN1時,允許接收。接收器開始采樣RXD引腳上的信號,檢測和接收數(shù)據(jù)的方法與方式1相似。當(dāng)接收到第9位數(shù)據(jù)送入接收移位寄存器后,若同時滿足以下兩個條件RI0SM20或接收到的第9位數(shù)據(jù)為1(SM21)則這次接收有效,8位數(shù)據(jù)裝入SBUF,第9位數(shù)據(jù)裝入RB8,并由硬件置位RI。否則這次接收的數(shù)據(jù)將丟失。(3)方式2、方式39位UART一般用于多機通信。一幀信息11位。D0D1D2D3D4D5D6D7TB8停止位起始位發(fā)送發(fā)送完數(shù)據(jù)置位TI。TB8D7D6D5D4D3D2D1D0起始位停止位接收接收到有效數(shù)據(jù)完畢,置位RI的條件REN1,RI0且SM20或接收到第9位數(shù)據(jù)為1,此時,數(shù)據(jù)裝載SBUF,RI置1,第9位數(shù)據(jù)(TB8)RB8。送RB84、波特率的計算方式0為固定波特率BFOSC/12方式2可選兩種波特率,由PCON中的SMOD位控制B2SMODFOSC/64方式1、3為可變波特率,由定時器T1的溢出速率和SMOD值共同決定。MCS51系列單片機定時器的定時時間TC的計算公式為TC2NN12/FOSC式中,TC為定時器溢出周期;N為定時器位數(shù);N為時間常數(shù);FOSC為振蕩頻率。定時器T1的溢出速率計算公式為T1溢出速率1/TCFOSC/12(2NN)因此,方式1和方式3的波特率計算公式為B2SMODT1溢出速率/322SMODFOSC/3212(2NN)例8051單片機的時鐘振蕩頻率為12MHZ,串行通信波特率為4800BPS,串行口工作于方式1,定時器選擇工作于模式2,求時間常數(shù)并編制串行口初始化程序。解設(shè)SMOD1,則T1的時間常數(shù)為N282112106/(32124800)242982430F3H定時器T1和串行口的初始化程序如下MOVTMOD,20HMOVTH1,0F3HMOVTL1,0F3HSETBTR1MOVPCON,80HMOVSCON,40H5、多機通信(1)硬件連接單片機構(gòu)成的多機系統(tǒng)常使串行口工作在方式2或方式3,采用總線型主從式結(jié)構(gòu)(一臺是主機,其余的是從機,從機要服從主機的調(diào)度、支配)。有時還要對信號進行光電隔離、電平轉(zhuǎn)換等。在實際的多機應(yīng)用系統(tǒng)中,常采用RS485串行標準總線進行數(shù)據(jù)傳輸。簡單的硬件連接如下圖所示(圖中沒有畫出RS485接口)。(2)通信協(xié)議主機的SM2位置為0,所有從機的SM2位置為1,處于接收地址幀狀態(tài)。主機發(fā)送一地址幀,其中包含8位是地址,第9位為1表示該幀為地址幀。所有從機收到地址幀后,都將接收的地址與本機的地址比較。對于地址相符的從機,使自己的SM2位置為0(以接收主機隨后發(fā)來的數(shù)據(jù)幀),并把本站地址發(fā)回主機作為應(yīng)答;對于地址不符的從機,仍保持SM21,對主機隨后發(fā)來的數(shù)據(jù)幀不予理睬。從機發(fā)送數(shù)據(jù)結(jié)束后,要發(fā)送一幀校驗和,并置第9位(TB8)為1,作為從機數(shù)據(jù)傳送結(jié)束的標志。接上頁主機接收數(shù)據(jù)時先判斷數(shù)據(jù)接收標志(RB8),若接收幀的RB80,則存儲數(shù)據(jù)到緩沖區(qū),并準備接收下幀信息。若RB81,表示數(shù)據(jù)傳送結(jié)束,并比較此幀校驗和,若正確則回送正確信號00H,此信號命令該從機復(fù)位(即重新等待地址幀);若校驗和出錯,則發(fā)送0FFH,命令該從機重發(fā)數(shù)據(jù)。發(fā)送數(shù)據(jù)。主機收到從機應(yīng)答地址后,確認地址是否相符,如果地址不符,發(fā)復(fù)位信號(數(shù)據(jù)幀中TB81);如果地址相符,則清TB8,開始發(fā)送數(shù)據(jù)。從機收到復(fù)位命令后回到監(jiān)聽地址狀態(tài)(SM21)。否則開始接收數(shù)據(jù)和命令。返回目錄110中斷計算機與外界的聯(lián)系是通過外部設(shè)備(也稱為外設(shè)、輸入/輸出設(shè)備或I/O設(shè)備)與外界聯(lián)系的。計算機與外設(shè)之間不是直接相連的,而是通過不同的接口電路來達到彼此間的信息傳送的目的。計算機與外設(shè)之間交換信息的方式(1)無條件傳送方式外設(shè)對計算機來說總是準備好的。(2)查詢傳送方式傳送前計算機先查詢外設(shè)的狀態(tài),若已經(jīng)準備好就傳送,否則就繼續(xù)查詢/等待。(3)中斷傳送方式外設(shè)通過申請中斷的方式與計算機進行數(shù)據(jù)傳送。(4)直接存儲器存取方式DMA傳送數(shù)據(jù)的雙方直接通過總線傳送數(shù)據(jù),不經(jīng)CPU中轉(zhuǎn)。一、中斷的基本概念1中斷的定義所謂“中斷”,是指CPU執(zhí)行正常程序時,系統(tǒng)中出現(xiàn)特殊請求,CPU暫時中止當(dāng)前的程序,轉(zhuǎn)去處理更緊急的事件(執(zhí)行中斷服務(wù)程序),處理完畢(中斷服務(wù)完成)后,CPU自動返回原程序的過程。作用采用中斷技術(shù)可以提高CPU效率、解決速度矛盾、實現(xiàn)并行工作、分時操作、實時處理、故障處理、應(yīng)付突發(fā)事件,可使多項任務(wù)共享一個資源(CPU)。中斷與子程序的最主要區(qū)別子程序是預(yù)先安排好的,中斷是隨機發(fā)生的。中斷涉及的幾個環(huán)節(jié)中斷源、中斷申請、開放中斷、保護現(xiàn)場、中斷服務(wù)、恢復(fù)現(xiàn)場、中斷返回。2中斷源中斷源是指引起中斷的設(shè)備或事件,或發(fā)出中斷請求的源頭。3中斷的分類中斷按功能通常可分為可屏蔽中斷、非屏蔽中斷和軟件中斷三類??善帘沃袛嗍侵窩PU可以通過指令來允許或屏蔽中斷的請求。非屏蔽中斷是指CPU對中斷請求是不可屏蔽的,一旦出現(xiàn),CPU必須響應(yīng)。軟件中斷則是指通過相應(yīng)的中斷指令使CPU響應(yīng)中斷。4中斷優(yōu)先權(quán)與中斷嵌套中斷優(yōu)先級(也稱為中斷優(yōu)先權(quán))給每個中斷源指定中斷響應(yīng)的優(yōu)先級別,CPU按中斷源的優(yōu)先級高低順序響應(yīng)各中斷源發(fā)出的中斷請求。中斷嵌套在某一瞬間,CPU因響應(yīng)某一中斷源的中斷請求而正在執(zhí)行它的中斷服務(wù)程序時,若又有一級別高的中斷源向CPU發(fā)出中斷請求,且CPU的中斷是開放的,CPU可以把正在執(zhí)行的中斷服務(wù)程序暫停下來,轉(zhuǎn)而響應(yīng)和處理優(yōu)先權(quán)更高的中斷源的中斷請求,等處理完后再轉(zhuǎn)回來,繼續(xù)執(zhí)行原來的中斷服務(wù)程序,這就是中斷嵌套。中斷嵌套的過程和子程序嵌套過程類似,子程序的返回指令是RET,而中斷服務(wù)程序的返回指令是RETI。5中斷響應(yīng)及處理過程保護斷點尋找中斷源中斷處理中斷返回保護斷點和尋找中斷源都是由硬件自動完成的,用戶不用考慮。6中斷系統(tǒng)的功能中斷系統(tǒng)能夠?qū)崿F(xiàn)中斷功能的硬件電路和軟件程序。中斷系統(tǒng)的功能能夠?qū)崿F(xiàn)中斷優(yōu)先權(quán)排隊、中斷嵌套、自動響應(yīng)中斷和中斷返回等功能。MCS51單片機的大部分中斷電路都是集成在芯片內(nèi)部的,只有外部中斷請求信號產(chǎn)生電路才分散在各中斷源電路和接口電路中。二、MCS51和MCS52系列單片機的中斷源MCS51子系列有5個中斷源,MCS52子系列有6個中斷源;可分為兩個優(yōu)先級,其中每個中斷的優(yōu)先級可編程。1、8051允許5個中斷源(1)外部中斷源(中斷標志為IE0和IE1)INT0由P32端口線引入,低電平或下降沿引起。INT1由P33端口線引入,低電平或下降沿引起。(2)內(nèi)部中斷源(中斷標志為TF0、TF1和TI/RI)TF0定時/計數(shù)器0中斷,由T0回零溢出引起。TF1定時/計數(shù)器1中斷,由T1回零溢出引起。TI/RI串行I/O中斷,完成一幀字符發(fā)送/接收引起。2、CPU識別中斷申請的依據(jù)CPU在每個機器周期的S5P2期間,會自動查詢各個中斷申請標志位,若查到某標志位被置位,將啟動中斷機制。三、MCS51中斷的控制1、5個中斷源的中斷請求是否會得到響應(yīng),受允許中斷寄存器IE中各位的控制;2、它們的優(yōu)先級分別由中斷優(yōu)先級寄存器IP的各位確定;3、同一優(yōu)先級內(nèi)的各中斷源同時要求中斷時,還要靠內(nèi)部的查詢邏輯來確定響應(yīng)的次序;4、不同的中斷源有不同的中斷矢量。四、中斷系統(tǒng)硬件結(jié)構(gòu)注各中斷允許控制位0,開關(guān)斷開;1,開關(guān)接通IE0EX0TF0IE1TF1TIESET1EX1ET0外部中斷請求0外部中斷請求1內(nèi)部定時器0內(nèi)部定時器1內(nèi)部串行口TRRIIE寄存器EA位IP寄存器各單路開關(guān)總開關(guān)中斷源標志位查詢機構(gòu)高中斷級中斷請求低中斷級中斷請求中斷入口中斷源標志位INT0INT1中斷入口中斷源標志位2、中斷優(yōu)先級控制寄存器、中斷優(yōu)先級控制寄存器IP(0B8H)PSPT1PX1PT0PX0PX0/PX1INT0/1優(yōu)先級控制位優(yōu)先級控制位0時屬低優(yōu)先級;時屬低優(yōu)先級;1時屬高優(yōu)先級。時屬高優(yōu)先級。PT0/PT1T0/1中斷優(yōu)先級控制位中斷優(yōu)先級控制位0時屬低優(yōu)先級;時屬低優(yōu)先級;1時屬高優(yōu)先級。時屬高優(yōu)先級。PS串行口中斷優(yōu)先級控制位串行口中斷優(yōu)先級控制位0時屬低優(yōu)先級;時屬低優(yōu)先級;1時屬高優(yōu)先級。時屬高優(yōu)先級。3、定時器控制寄存器、定時器控制寄存器TCON88HTF1TF0IE1IT1IE0IT0TF0/TF1定時器溢出中斷申請標志位(由硬件自動置位)。定時器溢出中斷申請標志位(由硬件自動置位)。0定時器未溢出;定時器未溢出;1定時器溢出時由硬件自動置位,申請中斷定時器溢出時由硬件自動置位,申請中斷,中斷被中斷被CPU響應(yīng)后由硬件自動清零。響應(yīng)后由硬件自動清零。IE0/IE1外部中斷申請標志位(由硬件自動置位外部中斷申請標志位(由硬件自動置位,中斷響應(yīng),中斷響應(yīng)后轉(zhuǎn)向中斷服務(wù)程序時,由硬件自動清后轉(zhuǎn)向中斷服務(wù)程序時,由硬件自動清0)。)。0沒有外部中斷申請;沒有外部中斷申請;1有外部中斷申請。有外部中斷申請。IT0/IT1外部中斷請求的觸發(fā)方式控制位(可由用戶通過軟外部中斷請求的觸發(fā)方式控制位(可由用戶通過軟件設(shè)置件設(shè)置)。)。0在在INT0/INT1端申請中斷的信號低電平有效;端申請中斷的信號低電平有效;1在在INT0/INT1端申請中斷的信號負跳變有效。端申請中斷的信號負跳變有效。4、串行口控制寄存器、串行口控制寄存器(98H)TIRITI/RI串行口發(fā)送串行口發(fā)送/接收中斷申請標志位(由硬件接收中斷申請標志位(由硬件自動置位,必須由用戶在中斷服務(wù)程序中用軟件清自動置位,必須由用戶在中斷服務(wù)程序中用軟件清0)。)。0沒有串行口發(fā)送沒有串行口發(fā)送/接收中斷申請;接收中斷申請;1有串行口發(fā)送有串行口發(fā)送/接收中斷申請。接收中斷申請。SCON的高的高6位用于串行口工作方式設(shè)置和串行位用于串行口工作方式設(shè)置和串行口發(fā)送口發(fā)送/接收控制。接收控制。六、中斷優(yōu)先級一、高低優(yōu)先級的中斷響應(yīng)所遵循的2條基本規(guī)則1低優(yōu)先級中斷可被高優(yōu)先級中斷所中斷,反之不能;2一種中斷不管是什么優(yōu)先級一旦得到響應(yīng),與它同級的中斷不能再中斷它。二、同級中斷響應(yīng)遵循的規(guī)則二、同級中斷響應(yīng)遵循的規(guī)則輔助優(yōu)先結(jié)構(gòu)輔助優(yōu)先結(jié)構(gòu)8051單片機的中斷優(yōu)先級采用了自然優(yōu)先級和人工設(shè)置高、低優(yōu)先級的策略,中斷處于同一級別時,就由自然優(yōu)先級確定。開機時,每個中斷都處于低優(yōu)先級,中斷優(yōu)先級可以通過程序來設(shè)定,由中斷優(yōu)先級寄存器IP來統(tǒng)一管理。8051有兩個中斷優(yōu)先級,即高優(yōu)先級和低優(yōu)先級,每個中斷源都可設(shè)置為高或低中斷優(yōu)先級,以便CPU對所有的中斷實現(xiàn)兩級中斷嵌套。8051內(nèi)部中斷系統(tǒng)對各中斷源的中斷優(yōu)先級有一個統(tǒng)一的規(guī)定,稱為自然優(yōu)先級(也稱為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論