




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1章 概述1、單片機(jī)的定義與內(nèi)部組成單片機(jī)是一種集成電路芯片,一片單片機(jī)芯片就具有組成計(jì)算機(jī)的全部功能。它采用超大規(guī)模技術(shù)將具有數(shù)據(jù)處理能力的微處理器(CPU)、存儲(chǔ)器(含程序存儲(chǔ)器ROM和數(shù)據(jù)存儲(chǔ)器RAM)、輸入、輸出接口電路(I/O接口)集成在同一塊芯片上,構(gòu)成一個(gè)即小巧又很完善的計(jì)算機(jī)硬件系統(tǒng)。2、單片機(jī)的特點(diǎn)與發(fā)展前景。從硬件角度看:?jiǎn)纹瑱C(jī)具有小型化的特點(diǎn),它采用超大規(guī)模技術(shù)將具有數(shù)據(jù)處理能力的微處理器(CPU)、存儲(chǔ)器(含程序存儲(chǔ)器ROM和數(shù)據(jù)存儲(chǔ)器RAM)、輸入、輸出接口電路(I/O接口)集成在同一塊芯片上,一片單片機(jī)芯片就具有組成計(jì)算機(jī)的全部功能。從軟件角度看:?jiǎn)纹瑱C(jī)指令系統(tǒng)有
2、精單指令的特點(diǎn),容易學(xué)習(xí)。利用單片機(jī)指令編寫的源程序短小精悍,使單片機(jī)應(yīng)用產(chǎn)品即體積小又具有智能化。發(fā)展前景:縱觀單片機(jī)的發(fā)展過程,可以預(yù)見單片機(jī)的發(fā)展有著廣泛的前景。尤其在工業(yè)控制、智能儀器儀表、計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域、家用電器、醫(yī)用設(shè)備等領(lǐng)域中將有著廣泛的發(fā)展前景。3、單片機(jī)的各種主要用途。(1)在智能儀器儀表上的應(yīng)用(2)在工業(yè)控制中的應(yīng)用(3)在家用電器中的應(yīng)用(4)在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用(5)單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用此外,單片機(jī)在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。4. 有符號(hào)數(shù)的表示(1) D7=0表示正數(shù) D7=1表示負(fù)數(shù)(2) 原碼:符號(hào)位
3、正數(shù)為0,負(fù)數(shù)為1(3) 反碼:正數(shù)的反碼與正數(shù)相同,反碼也一樣;數(shù)值位由其絕對(duì)值按位求反而得到。(4) 補(bǔ)碼:正數(shù)的補(bǔ)碼與原碼一樣,負(fù)數(shù)的補(bǔ)碼是對(duì)負(fù)數(shù)的絕對(duì)值求反后加1,(反之可以對(duì)負(fù)數(shù)補(bǔ)碼的絕對(duì)值求反加1得到該數(shù)的絕對(duì)值)第2章 單片機(jī)結(jié)構(gòu)及原理1、80C51單片機(jī)的內(nèi)部組成及外觀(1)中央處理器:中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器 (2)數(shù)據(jù)存儲(chǔ)器(RAM):8051內(nèi)部有128字節(jié)數(shù)據(jù)存儲(chǔ)器(RAM)和21個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器有專門的用途,通常用于存放控制指令數(shù)據(jù),不能用作用戶數(shù)據(jù)的存放,用戶能使用的RAM只有128個(gè)字節(jié),可存
4、放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。89S52供用戶使用的數(shù)據(jù)存儲(chǔ)器256個(gè)字節(jié)。(3)程序存儲(chǔ)器(ROM):8051共有4K字節(jié)閃存,用于存放程序和固定的常數(shù)等。89S52/C52配置了8KB閃存。(4)定時(shí)/計(jì)數(shù)器(ROM):8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù),當(dāng)定時(shí)/計(jì)數(shù)器產(chǎn)生溢出時(shí),可用中斷方式控制程序轉(zhuǎn)向。(5) 并行輸入輸出(I/O)口:8051共有4個(gè)8位的并行I/O口(P0、 P1、P2、P3),用于對(duì)外部數(shù)據(jù)的傳輸。(6)全雙工串行口:8051內(nèi)置一個(gè)全雙工異步串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也
5、可以當(dāng)同步移位器使用。(7)中斷系統(tǒng):8051具備較完善的中斷功能,有五個(gè)中斷源(兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷),可基本滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。(8)時(shí)鐘電路:8051內(nèi)置最高頻率達(dá)12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的時(shí)序脈沖,但需外接晶體振蕩器和振蕩電容。2、按照寫入的方式不同,ROM可分為MaskROM(掩膜ROM)、OTPROM、EPROM、E2PROM和FlashROM。Flash ROM:Flash ROM是一種新型的電可擦除、非易失性存儲(chǔ)器,使用方便,價(jià)格低廉,可多次擦寫,近年來應(yīng)用廣泛。3、51系列單片機(jī)的存儲(chǔ)器組織結(jié)構(gòu),采用典型
6、的哈佛結(jié)構(gòu),即程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器完全獨(dú)立。片內(nèi)RAM又按功能分為幾個(gè)區(qū),每個(gè)區(qū)都有自己獨(dú)特的功能。4、 51單片機(jī)的四個(gè)并行I/O口,其中P0口可作I/O口,也可以分時(shí)實(shí)現(xiàn)地址數(shù)據(jù)總線功能。P3口除了可作I/O口外,還具有第二功能,P2口除了可作I/O口外,還能作高位地址總線。5、51單片機(jī)的復(fù)位電路有上電復(fù)位、手動(dòng)復(fù)位電路兩種。復(fù)位后,一些特殊功能寄存器的內(nèi)容會(huì)恢復(fù)為初始值。特殊功能寄存器初始態(tài)特殊功能寄存器初始態(tài)ACC00HB00HPSW00HSP07HDPH00HTH000HDPL00HTL000HIPxxx00000BTH100HIE0xx00000BTL100HTMOD00HTC
7、ON00HSCONxxxxxxxxBSBUF00HP0-P31111111BPCON0xxxxxxxB第3章指令系統(tǒng)1、指令尋址方式直接尋址、立即尋址、寄存器尋址、間接尋址、變址尋址、相對(duì)尋址、位尋址。2、指令系統(tǒng)對(duì)指令功能的理解以及常用與不常用指令(1)數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令中大部份指令的功能較為簡(jiǎn)單容易理解,難點(diǎn)是對(duì)查表指令MOVC A,A+DPTR和MOVC A,A+PC的理解。(2)算術(shù)運(yùn)算指令算術(shù)運(yùn)送指令大多是常用指令,功能簡(jiǎn)明確,大多數(shù)指令以累加A為第一操作數(shù),運(yùn)算結(jié)果保存在累加A中,同一種運(yùn)算的指令,第二操作數(shù)的來源于以來自不同的存儲(chǔ)空間,也可以是相同的存儲(chǔ)空間,但采用不同的尋
8、址方式,例如將累加器A中的內(nèi)容與片內(nèi)RAM中50H單元的內(nèi)容相加。第二操作數(shù)采用直接尋址:ADD A,50H第二操作數(shù)采用寄存器間接尋址:MOV R0,#50H ADD A,R051單片機(jī)指令系統(tǒng)中有帶進(jìn)位的減法指令,應(yīng)用時(shí)要根據(jù)實(shí)際情況確定是否對(duì)進(jìn)位標(biāo)志清零。使用乘除法指令時(shí),應(yīng)注意每次操作(被乘數(shù)或被除數(shù))與第二操作數(shù)(乘數(shù)或除數(shù))的存儲(chǔ)位置以及運(yùn)算結(jié)果的存儲(chǔ)位置。(3)邏輯運(yùn)算指令邏輯運(yùn)算指令大多也是功能簡(jiǎn)單常用指令,移位指令的作有征收數(shù)字電子技術(shù)中移位寄存器的作用類似,每次將累加器A中的內(nèi)容左移(或右移)一位,數(shù)值上相當(dāng)于將原數(shù)乘以2(或除以2)。(4)轉(zhuǎn)移指令控制轉(zhuǎn)移指令是系統(tǒng)學(xué)習(xí)的
9、難點(diǎn)之一,它難在條件轉(zhuǎn)移指令中對(duì)轉(zhuǎn)移條件的理解,它即要判斷條件是否滿足,又要確定程序是否轉(zhuǎn)移。其實(shí)掌握這類指令并不難,簡(jiǎn)言之“滿足條件則轉(zhuǎn)移,不滿足條件則執(zhí)行下一條指令”。無條件轉(zhuǎn)移指令容易理解,但要注意轉(zhuǎn)移范圍分別是-127B+128B(短轉(zhuǎn)移)或2KB范圍(相對(duì)轉(zhuǎn)移)或64KB范圍(長轉(zhuǎn)移)。子程序調(diào)用與返回指令操作與堆拽操作有一定關(guān)系,要注意出入拽順序。(5)位指令位操作指令是51單片機(jī)的特色,由于可以按位操作,方便了程序設(shè)計(jì)。位操作指令中的條件轉(zhuǎn)移指令是短轉(zhuǎn)移指令(-127+128B范圍),而且都是以條件位的狀態(tài)作轉(zhuǎn)移條件的。SETB C;1-C,累加器C置1CLR C;0-C;位累加
10、器清零MOVMOVXMOVCXCHXCHDSWAPPUSH directPOP direct普通四則運(yùn)算指令A(yù)DDADDCSUBBMUL ABDIV AB特殊運(yùn)算指令I(lǐng)NCDECDA A邏輯運(yùn)算和循環(huán)類指令A(yù)NLORLXRL累加器的操作指令CLRCPLRLRLCRRRRC程序轉(zhuǎn)移類指令1. 長轉(zhuǎn)移指令LJMP add16AJMP addr113. 相對(duì)轉(zhuǎn)移指 SJMP4. 相對(duì)長轉(zhuǎn)移指令JMP A+DPTR條件轉(zhuǎn)移指令1. 累加器內(nèi)容判零JZ relJNZ rel2. 循環(huán)轉(zhuǎn)移指令DJNZ Rn,relDJNZ direct,rel3. 兩操作數(shù)比較不相等轉(zhuǎn)移CJNE A,direct,rel
11、子程序及其調(diào)用和返回指令1. 長調(diào)子指令LCALL addr162. 短調(diào)子指令A(yù)CLL addr113. 返回指令RETRETI4. 空操作指令NOP 除了消耗一個(gè)機(jī)械周期外,沒有執(zhí)行任何操作位操作指令1. 位傳送指令MOV C,bitMOV bit,C2. 位置1指令SETB CSETB bit3. 位清零指令CLR CCLR bit4. 位取反指令CPL CCPL bit5. 位邏輯“與”指令A(yù)NL C,bitANL C,/bit6. 位邏輯“或”指令ORL C, bit ORL C,/bit位條件轉(zhuǎn)移指令1. 判C轉(zhuǎn)移指令JC relJNC rel2. 判位變量轉(zhuǎn)移指令JB bit ,
12、relJNB bit,rel3. 判位變量并清零轉(zhuǎn)移指令JBC bit,rel第4章 匯編語言程序設(shè)計(jì)1、單片機(jī)程序設(shè)計(jì)中常用偽指令偽指令不是真正的指令,它只向編譯程序提供編譯信息,而不產(chǎn)生機(jī)器代碼。常用偽指令有:(1)標(biāo)號(hào)等值偽指令EQU格 式:標(biāo)號(hào):EQU表達(dá)式指令的含義為本語句的標(biāo)號(hào)等值于表達(dá)式,亦即將表達(dá)式值賦予標(biāo)號(hào)。這里的標(biāo)號(hào)和表達(dá)式是必不可少的。(2)數(shù)據(jù)存儲(chǔ)說明偽指令數(shù)據(jù)存儲(chǔ)說明偽指令的作用是將數(shù)據(jù)存儲(chǔ)在程序存儲(chǔ)器單元中。 定義字節(jié)數(shù)據(jù)偽指令DB格 式:標(biāo)號(hào):DB表達(dá)式或表達(dá)式串 定義字?jǐn)?shù)據(jù)偽指令DW格 式:標(biāo)號(hào):DW表達(dá)式或表達(dá)式串(3)程序起始地址偽指令ORG格 式:ORG表
13、達(dá)式(4)匯編結(jié)束偽指令END格 式1:標(biāo)號(hào):END表達(dá)式格 式2:標(biāo)號(hào):END或者 END2、程序設(shè)計(jì)(1)順序程序設(shè)計(jì)一種最簡(jiǎn)單、最基本的程序(也稱為簡(jiǎn)單程序)。特點(diǎn)是按程序編寫的順序依次執(zhí)行,程序流向不便。需要正確地選擇指令,以達(dá)到提高程序執(zhí)行效率、減少程序長度、最大限度地優(yōu)化程序的目的。(2)循環(huán)程序任何計(jì)算機(jī)程序都不可能是無限長的順序程序,程序總是根據(jù)不同的條件不斷循環(huán)的轉(zhuǎn)移執(zhí)行的。將循環(huán)程序從結(jié)構(gòu)上分成循環(huán)初始化,循環(huán)體,循環(huán)修改和循環(huán)結(jié)構(gòu)四個(gè)部分,是為了便于理解。實(shí)際應(yīng)用時(shí)應(yīng)視具體問題靈活應(yīng)用。(3)分支程序條件轉(zhuǎn)移指令是指分支程序產(chǎn)生的原因,條件轉(zhuǎn)移指令執(zhí)行時(shí),如果轉(zhuǎn)移條件(y
14、es)程序轉(zhuǎn)向一個(gè)分支,如果不轉(zhuǎn)移條件(no)程序轉(zhuǎn)向是一個(gè)分支。(4)散轉(zhuǎn)程序設(shè)計(jì)用間接轉(zhuǎn)移指令,也稱為散轉(zhuǎn)指令,即“JMP A+DPTR”。把16位數(shù)據(jù)指針DPTR的內(nèi)容與累加器A中的8位無符號(hào)數(shù)相加,形成散轉(zhuǎn)的目的地址,裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)入響應(yīng)的分支程序中去。通常方法是固定DPTR的內(nèi)容,然后根據(jù)A中的內(nèi)容進(jìn)行散轉(zhuǎn)。(5)查表程序數(shù)學(xué)變量與函數(shù)之間的關(guān)系是一種確定的關(guān)系,可以用數(shù)學(xué)表達(dá)式表示,計(jì)算機(jī)編程時(shí),可根據(jù)變量及與函數(shù)的關(guān)系式計(jì)算出函數(shù)值。但有的變量與函數(shù)之間的關(guān)系不能用數(shù)學(xué)表達(dá)式表示,如七段數(shù)碼顯示代碼(函數(shù))與顯示字符(變量)就是這樣。它們之間只能用表格形式建立函數(shù)關(guān)
15、系,單片機(jī)程序設(shè)計(jì)中的查表程序就是解決這類問題。當(dāng)然有確定數(shù)學(xué)關(guān)系的數(shù)學(xué)變量也可以用查表程序求函數(shù)值。(3)子程序采用子程序結(jié)構(gòu)的程序設(shè)計(jì)最大的好處是優(yōu)化了程序設(shè)計(jì),將可局部獨(dú)立處理的問題編寫成子程序,可供主程序反復(fù)多次調(diào)用,它將復(fù)雜的運(yùn)標(biāo)或檢制問題,細(xì)分成許多小的事件進(jìn)行處理,這種主程序調(diào)用子程序的結(jié)構(gòu)形式被稱為模塊式的結(jié)構(gòu)形式。第5章定時(shí)/計(jì)數(shù)器1、定時(shí)/計(jì)數(shù)器內(nèi)部結(jié)構(gòu)51單片機(jī)內(nèi)部設(shè)有兩個(gè)16位可編程的定時(shí)器計(jì)數(shù)器,簡(jiǎn)稱定時(shí)器0、定時(shí)器1。2、定時(shí)器的工作原理(1)定時(shí)功能 定時(shí)功能是通過計(jì)數(shù)的計(jì)數(shù)來實(shí)現(xiàn)的,不過此時(shí)的計(jì)數(shù)脈沖來自單片機(jī)的內(nèi)部,每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器加1,直
16、到計(jì)數(shù)器溢出。 由于1個(gè)機(jī)器周期等于12個(gè)時(shí)鐘振蕩周期。因此計(jì)數(shù)頻率為振蕩周期的1/12。(2)計(jì)數(shù)功能所謂計(jì)數(shù)是對(duì)外部事件進(jìn)行計(jì)數(shù),計(jì)數(shù)脈沖來自相應(yīng)的外部輸入引腳T0、T1。 當(dāng)外部輸入脈沖信號(hào)產(chǎn)生由1至0的跳變時(shí),計(jì)數(shù)器的值加1。 計(jì)數(shù)方式下,單片機(jī)在每個(gè)機(jī)器周期的S5P2期間對(duì)外部計(jì)數(shù)脈沖進(jìn)行采樣。如果前一個(gè)機(jī)器周期采樣為高電平,后一個(gè)機(jī)器周期采樣為低電平,則在緊跟著的再下一個(gè)(第三個(gè))機(jī)器周期的S3P1期間計(jì)數(shù)器加1。 由于確認(rèn)一次由1至0的跳變要花兩個(gè)機(jī)器周期,即24個(gè)振蕩周期,故計(jì)數(shù)脈沖的頻率不能高于振蕩頻率的1/24。3、定時(shí)/計(jì)數(shù)器的控制51單片機(jī)對(duì)內(nèi)部定時(shí)器計(jì)數(shù)器的控制主要是
17、通過模式控制寄存器TMOD、控制寄存器-TCON兩個(gè)特殊功能寄存器實(shí)現(xiàn)的。(1)工作方式寄存器TMOD工作方式寄存器TMOD為8位寄存器,各位定義如圖所示: D7 D6 D5 D4 D3 D2 D1 D0GATECTM1M0GATECTM1M0控制定時(shí)器T1控制定時(shí)器T0GATE:門控位。GATE=0時(shí),定時(shí)器由軟件控制位TR0或TR1來控制啟停。TRi位為1時(shí),定時(shí)器啟動(dòng)開始工作;為0時(shí)定時(shí)器停止工作。GATE=1時(shí),定時(shí)器的啟停由外部中斷引腳和TRi位共同控制。只有當(dāng)外部中斷引腳INT0或INT1為高時(shí),TR0或TR1置1才能啟動(dòng)定時(shí)器工作。CT:功能選擇位。當(dāng)CT=0時(shí)設(shè)置為定時(shí)器工作模
18、式;當(dāng)CT=1時(shí)設(shè)置為計(jì)數(shù)器工作模式。M1、M0:工作方式選擇位。定時(shí)器計(jì)數(shù)器有4種工作方式,由M0、M1來定義:M0M1操作方式功能說明00方式013位定時(shí)器計(jì)數(shù)器,TLi只用低5位01方式116位定時(shí)器計(jì)數(shù)器10方式2自動(dòng)重裝初值的8位定時(shí)器計(jì)數(shù)器,Thi的值在保持不變,TLi溢出時(shí),THi的值自動(dòng)裝入TLi中。11方式3僅適用于T0,T0分成2個(gè)獨(dú)立的8位計(jì)數(shù)器,T1停止計(jì)數(shù)。TMOD寄存器不能進(jìn)行位尋址,只能用字節(jié)傳送指令設(shè)置定時(shí)器的工作模式及工作方式。系統(tǒng)復(fù)位時(shí)TMOD所有位均為零。(2)定時(shí)/計(jì)數(shù)器控制寄存器-TCON(位地址)8FH 8EH 8DH 8CH 8BH 8AH 89H
19、 88HTF1TR1TF0TR0IE1IT1IE0IT0TF1和TF0:分別為定時(shí)器1和定時(shí)器0溢出標(biāo)志。當(dāng)計(jì)數(shù)器計(jì)滿產(chǎn)生溢出時(shí),由硬件自動(dòng)置“1”,并可申請(qǐng)中斷。進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清零。TR1和TR0:定時(shí)器1和定時(shí)器0啟動(dòng)控制位。IE1和IE0:外部中斷引腳INT0或INT1中斷請(qǐng)求標(biāo)志位。當(dāng)外部中斷源有請(qǐng)求時(shí)其對(duì)應(yīng)的中斷標(biāo)志位置“1”。其復(fù)位方式由觸發(fā)方式來設(shè)置。IT1和IT0:為外部中斷1和外部中斷0的觸發(fā)方式選擇位。ITi設(shè)置為“0”時(shí)為電平觸發(fā);設(shè)置為“1”時(shí)為邊沿觸發(fā)方式。TCON可以位尋址,可以位操作。當(dāng)系統(tǒng)復(fù)位時(shí)所有位均為0。3、定時(shí)器的工作方式通過對(duì)定時(shí)器的TM
20、OD中M1、M2位的設(shè)置,可選擇四種工作方式。(1)工作方式0工作方式0是一個(gè)13位的定時(shí)/計(jì)數(shù)器,16位計(jì)數(shù)器只用了高8位THi和低5位(TLi的D4D0位),TLi的高3信未用。(2)工作方式116位的定時(shí)/計(jì)數(shù)器,原理同工作方式0(3)工作方式2自動(dòng)重裝計(jì)數(shù)器。16位計(jì)數(shù)器拆成兩個(gè)8位計(jì)數(shù)器,低8位作計(jì)數(shù)器用,高8位用于保存計(jì)數(shù)初值。當(dāng)?shù)?位計(jì)數(shù)產(chǎn)生溢出時(shí),將TFi位置1,同時(shí)又將保存在高8位中的計(jì)數(shù)初值重新裝入低8位計(jì)數(shù)器中,又繼續(xù)計(jì)數(shù),循環(huán)重復(fù)不止。(4)工作方式3方式3只適用定時(shí)器T0,T0在該模式下被拆成兩個(gè)獨(dú)立的8位計(jì)數(shù)器TH0和TL0。其中TL0使用原來T0的一些控制位和引腳
21、,它們是:C/T,GATE,TR0,TF0和T0(P3.4)引腳INT0(P3.2)引腳。此方式下的TL0除作8位計(jì)數(shù)器外,其功能和操作與方式0,方式1完全相同,可作計(jì)數(shù)也可作定時(shí)用。該方式下的TH0,此時(shí)只可作簡(jiǎn)單的內(nèi)部定時(shí)器功能。它借用原定時(shí)器1的控制位和溢出標(biāo)志位TR1和TF1,同時(shí)占用了T1的中斷源。TH0的啟動(dòng)和關(guān)閉幕式僅受TR1的控制,TR1=1,TH0啟動(dòng)定時(shí);TR1=0,TH0停止定時(shí)工作。此方式下的T1仍可設(shè)置為方式0、方式1、方式2,用于任何不需要中斷的場(chǎng)合。4、典型例題分析【例題5.1 】若fOSC=6MHZ,要求T1定時(shí)10ms,選擇方式0,裝入時(shí)間初值后T1計(jì)數(shù)器自啟
22、動(dòng)。計(jì)算時(shí)間初值X=?并填入TMOD、TCON和TH1、TL1的值?答案:X3192C78H,TH163H,TL118H,TMOD00h,TCON40H【例題5.2 】已知51單片機(jī),fosc6MHz,試編寫程序,利用T0和P1.7產(chǎn)生如下圖所示的連續(xù)矩形脈沖。參考程序如下: ORG 0000H LJMP main ORG 000BH LJMP int_t0 ORG 0030Hmain: MOV TMOD,#00000010B MOV IE,#10000010B MOV TH0,#0ECH MOV TL0,#4CH CLR P1.7 SETB TR0 SJMP $int_t0: JB P1.7
23、,loop MOV TH0,#4CH SETB P1.7 RETIloop: CLR P1.7 MOV TH0,#0ECH RETI END第7章 中斷系統(tǒng)1、中斷概述(1)中斷源中斷源指引起正在執(zhí)行的程序中斷,轉(zhuǎn)而執(zhí)行中斷服務(wù)程序的設(shè)備或事件??煞譃橛仓袛唷④浿袛?。51單片機(jī)的5個(gè)中斷源:外部中斷2個(gè),中斷請(qǐng)求信號(hào)分別由P3.2、P3.1輸入,低電平有效、脈沖下降沿有效可選。入口地址:0003H,0013H。定時(shí)/計(jì)數(shù)溢出中斷3個(gè):T0、T1,計(jì)數(shù)溢出時(shí)置“1”TF0、TF1位,從而發(fā)出內(nèi)部中斷請(qǐng)求。入口地址:000BH,001BH。串行中斷1個(gè):串行接收或發(fā)送完一幀數(shù)據(jù)時(shí)就產(chǎn)生一個(gè)內(nèi)部中斷
24、請(qǐng)求RI或TI。入口地址:0023H。(2)中斷處理過程包含:中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)、中斷返回四個(gè)階段.中斷請(qǐng)求:中斷源將相應(yīng)請(qǐng)求中斷的標(biāo)志位置“1”,表示發(fā)出請(qǐng)求,并由CPU 查詢。中斷響應(yīng):在一條指令的最后一個(gè)周期按優(yōu)先級(jí)順序查詢中斷標(biāo)志,為“1”并滿足響應(yīng)條件時(shí)響應(yīng)。響應(yīng)操作: 斷點(diǎn)壓棧撤除中斷標(biāo)志關(guān)閉低同級(jí)中斷允許中斷入口地址送PC。實(shí)際上響應(yīng)中斷的主要操作是有硬件自動(dòng)產(chǎn)生一條長調(diào)用指令LCALL。中斷服務(wù):根據(jù)入口地址轉(zhuǎn)中斷服務(wù)程序,保護(hù)現(xiàn)場(chǎng)、執(zhí)行中斷主體、恢復(fù)現(xiàn)場(chǎng)。中斷返回:斷點(diǎn)出棧開放中斷允許返回原程序。(3)中斷優(yōu)先級(jí)及其嵌套高優(yōu)先級(jí)、低優(yōu)先級(jí),可通過SFR寄存器IP設(shè)置
25、。中斷嵌套原則為高優(yōu)先級(jí)的中斷不能被低優(yōu)先的中斷所中斷,同級(jí)中斷不能相互中斷。(4)中斷控制的特點(diǎn) 中斷是隨機(jī)發(fā)生的,并且是可編程的。 通過執(zhí)行特定功能的程序段而獲得預(yù)定目的。2、中斷控制通過對(duì)特殊功能寄存器TCON、SCON、IE、IP等四個(gè)寄存器的設(shè)定而實(shí)現(xiàn)。(1)中斷請(qǐng)求控制TCON定時(shí)中斷、外中斷請(qǐng)求控制寄存器TCON字節(jié)地址88H,位地址8FH88H,與中斷請(qǐng)求有關(guān)的各位表示如下:串行中斷請(qǐng)求控制寄存器SCON串行中斷請(qǐng)求由TI、RI的邏輯“或”得到。即不論是發(fā)送標(biāo)志還是接收標(biāo)志,都將發(fā)生串行中斷請(qǐng)求。字節(jié)地址98H,位地址9FH98H,與中斷請(qǐng)求有關(guān)的各位表示如下:TI為發(fā)送中斷
26、,RI為接收中斷 ,為“1”時(shí),請(qǐng)求中斷,響應(yīng)后必須由用戶軟件清零。中斷請(qǐng)求的撤銷中斷響應(yīng)后,必須及時(shí)清除TCON、SCON中的已響應(yīng)中斷請(qǐng)求標(biāo)志,否則,會(huì)引起中斷的重復(fù)查詢和響應(yīng)。a外中斷請(qǐng)求的撤銷:對(duì)于邊沿觸發(fā)方式:由于觸發(fā)信號(hào)過后就消失,撤銷自然也就是自動(dòng)的。對(duì)于電平觸發(fā)方式:需通過軟硬件結(jié)合的方法來實(shí)現(xiàn)撤銷。b定時(shí)中斷請(qǐng)求的撤銷:定時(shí)中斷后,硬件自動(dòng)清“0”。c串行中斷請(qǐng)求的撤銷:不能自動(dòng)清“0”,須用軟件的方法在中斷服務(wù)子程序中進(jìn)行清“0”。(2)中斷允許控制IE由SFR寄存器IE設(shè)置,分二級(jí)允許控制。以EA位作為總控,以各中斷源的允許位作為分控。中斷允許控制寄存器IE,字節(jié)地址A8
27、H,位地址AFHA8H,與中斷允許有關(guān)的各位表示如下:?jiǎn)纹瑱C(jī)復(fù)位后,(IE)=00H,因此,整個(gè)中斷系統(tǒng)為禁止?fàn)顟B(tài)。(3)中斷優(yōu)先級(jí)控制IP由SFR寄存器IP設(shè)置,有2個(gè)優(yōu)先級(jí),相應(yīng)位置“1”,為高優(yōu)先級(jí)。相應(yīng)位置“0”,為低優(yōu)先級(jí)。中斷優(yōu)先級(jí)寄存器IP,字節(jié)地址B8H,位地址BFHB8H,與中斷允許有關(guān)的各位表示如下: 注意:5個(gè)中斷允許位全部置“1”時(shí),和全部清0效果一樣,為同優(yōu)先級(jí)中斷,按自然優(yōu)先級(jí)處理,即為T0 T1串行口PT2,優(yōu)先級(jí)依次從高到低。2、中斷響應(yīng)(1)、中斷響應(yīng)的條件CPU響應(yīng)中斷的基本條件有以下幾種:有中斷源提出中斷請(qǐng)求;中斷總允許位EA1,即CPU開中斷;申請(qǐng)中斷的
28、中斷源的中斷允許位為1,即沒有被屏蔽。51系列單片機(jī)的CPU在每個(gè)機(jī)器周期的S5P2期間順序采樣各中斷請(qǐng)求標(biāo)志位,如有置位,只要以上條件滿足,且下列三種情況都不存在,那么,在下一周期的S1期間CPU響應(yīng)中斷。否則,采樣的結(jié)果被取消。這三種情況是:CPU正在處理同級(jí)或高級(jí)優(yōu)先級(jí)的中斷。現(xiàn)行的機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期。正在執(zhí)行的指令是RETI或訪問IE、IP指令。CPU在執(zhí)行RETI或訪問IE、IP的指令后,至少需要再執(zhí)行一條其他指令后才會(huì)響應(yīng)中斷請(qǐng)求。(2)中斷響應(yīng)過程單片機(jī)在每個(gè)機(jī)器周期的S5P2期間,順序采樣每個(gè)中斷源,CPU在下一個(gè)機(jī)器周期S6期間按優(yōu)先級(jí)順序查詢中斷標(biāo)志,
29、如查詢到某個(gè)中斷標(biāo)志為1,將在再下一個(gè)機(jī)器周期S1期間按優(yōu)先級(jí)進(jìn)行中斷處理。中斷得到響應(yīng)后自動(dòng)清除中斷標(biāo)志,由硬件將程序計(jì)數(shù)器PC內(nèi)容壓入堆棧保護(hù),然后將對(duì)應(yīng)的中斷矢量裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向中斷矢量地址單元中去執(zhí)行相應(yīng)的中斷服務(wù)程序。 下列任何一種情況存在中斷申請(qǐng)將被封鎖:CPU正在執(zhí)行一個(gè)同級(jí)或高一級(jí)的中斷服務(wù)程序。當(dāng)前正在執(zhí)行的那條指令還未執(zhí)行完。當(dāng)前正在執(zhí)行的指令是RETI或?qū)E,IP寄存器進(jìn)行讀/寫指令,執(zhí)行這些指令后至少再執(zhí)行一條指令才會(huì)響應(yīng)中斷。(3)復(fù)位狀態(tài) CPU響應(yīng)中斷請(qǐng)求后,在中斷返回(執(zhí)行RETI)前,必須撤除請(qǐng)求,將中斷標(biāo)志位清除,回復(fù)到原始的狀態(tài),否則會(huì)錯(cuò)誤
30、地再一次引起中斷響應(yīng)。如前所述,對(duì)于定時(shí)器計(jì)數(shù)器0、1的中斷請(qǐng)求及邊沿觸發(fā)方式的外部中斷0、1,CPU在響應(yīng)中斷后用硬件清除了相應(yīng)的中斷請(qǐng)求標(biāo)志TF0、TF1、IE0、IE1,即自動(dòng)撤除了中斷請(qǐng)求。對(duì)于串行接口中斷及定時(shí)器計(jì)數(shù)器2中斷,CPU響應(yīng)中斷后沒有用硬件清除中斷標(biāo)志位,必須由用戶編制的中斷服務(wù)程序來清除相應(yīng)的中斷標(biāo)志。如用指令CLR TF2清除TF2,用指令CLR EXF2清除EXF2等。4、程序的初始化及中斷服務(wù)程序(1)程序初始化的概念及步驟所謂程序中斷系統(tǒng)初始化,就是指用戶對(duì)中斷控制的相關(guān)特殊寄存器中的各有關(guān)控制位進(jìn)行賦值。其步驟如下:置位相應(yīng)中斷的中斷允許標(biāo)志及EA。設(shè)定所用中
31、斷源的中斷優(yōu)先級(jí)。對(duì)外部中斷應(yīng)設(shè)定中斷請(qǐng)求信號(hào)形式(電平觸發(fā)邊沿觸發(fā))。對(duì)于定時(shí)計(jì)數(shù)中斷應(yīng)設(shè)置工作方式(定時(shí)計(jì)數(shù) )?!纠?-1】通過P1.0P1.7控制發(fā)光二極管,輸出兩種節(jié)日燈,并利用外中斷P3.2,在兩種狀態(tài)之間切換。分析:主程序中狀態(tài):亮1燈左移循環(huán),中斷程序中的狀態(tài):以1秒間隔8燈依次亮起,再依次熄滅,循環(huán)3次后返回。主流程圖(略),程序如下:ORG 0000HLJMP MAINORG0003H ;中斷入口LJMP0100H ORG0030HSTART:MOVSP,#60HSETBIT0;設(shè)定下跳有效SETBEX0;開中SETBEAMOVIP,#01H MOVA,#01H LOOP:
32、MOVP1,ARLALCALLDELAY AJMPLOOP中斷服務(wù)程序: ORG0100HPUSHACCCLRAMOVR0,#00HLOOP1:SETBCRLCAMOVP1,ALCALLDELAYJNB ACC.7,LOOP1LOOP2:CLRCRLCAMOVP1,ALCALL DELAYJBACC.7,LOOP2INCR0CJNER0, #03H, LOOP1POPACCRETDELAY:(略);1秒延時(shí)第8章 單片機(jī)的系統(tǒng)擴(kuò)展1、概念:系統(tǒng)擴(kuò)展是指單片機(jī)內(nèi)部各功能部件不能滿足應(yīng)用系統(tǒng)的要求時(shí),在片外連接相應(yīng)的外圍芯片,對(duì)單片機(jī)的功能進(jìn)行擴(kuò)展以滿足應(yīng)均要求。單片機(jī)的系統(tǒng)擴(kuò)展主要有程序存儲(chǔ)器擴(kuò)
33、數(shù)據(jù)存儲(chǔ)器擴(kuò)展、并行I/O口擴(kuò)展、串行口擴(kuò)展以及串行總線擴(kuò)展等。2、并行擴(kuò)展及外部并行擴(kuò)展總線總線:地址總線、數(shù)據(jù)總線、控制總線單片機(jī)與其他微型計(jì)算機(jī)不同,為了減少芯片封裝引腳,單片機(jī)芯片并沒有提供專用的地址線和數(shù)據(jù)線,而是采用I/O口線的復(fù)用技術(shù),把I/O口線改造為總線?!皹?gòu)造”總線的具體方法:(1)以P0口的8位口線作地址/數(shù)據(jù)線地址線使用單向,數(shù)據(jù)線使用雙向。(2)以P2口的口線作高位地址線(3)控制信號(hào)線3、單片機(jī)的串行擴(kuò)展技術(shù)串行擴(kuò)展是通過串行接口實(shí)現(xiàn)的,這樣可以減少芯片的封裝引腳,降低成本,簡(jiǎn)化系統(tǒng)結(jié)構(gòu),增加系統(tǒng)擴(kuò)展的靈活性。4、系統(tǒng)擴(kuò)展常用芯片(1)鎖存器作用:鎖存地址或數(shù)據(jù)例子
34、:74HC373,簡(jiǎn)稱373。a使能控制端功能,低電平導(dǎo)通。b.3種工作狀態(tài)c.作鎖存器使用:置低電平,鎖存信號(hào)受控于單片機(jī)地址有效信號(hào)ALE。(2)74 244 8同相三態(tài)數(shù)據(jù)緩沖/驅(qū)動(dòng)器作用:緩沖隔離和驅(qū)動(dòng)特點(diǎn):輸入阻抗高,輸出阻抗低最大吸收電流24mA,可加強(qiáng)數(shù)據(jù)總線的驅(qū)動(dòng)力。4輸入,4輸出。a.74244的1和2連在一起并接低電平,在系統(tǒng)中處于門通狀態(tài)。b.地址編碼線, CPU讀寫控制信號(hào)。只有這三樣全為低電平,系統(tǒng)選擇該芯片并處在讀或?qū)懼芷跁r(shí),數(shù)據(jù)才能通過輸入輸出,否則為高阻態(tài),輸入輸出與系統(tǒng)數(shù)據(jù)總線隔離。(3)74245 8總線接受/發(fā)送器作用:雙向緩沖和驅(qū)動(dòng)作用,數(shù)據(jù)總線的收發(fā)器
35、。a.DIR接固定TTL,單項(xiàng)緩沖器。b.DIR可控,與相結(jié)合控制數(shù)據(jù)傳輸方向,可使用雙向傳輸功能。有效時(shí),數(shù)據(jù)B入A出,有效時(shí),數(shù)據(jù)A入B出。(4)譯碼器作用:譯碼。種類:變量譯碼器、代碼譯碼器、顯示器譯碼器例子:741383個(gè)輸入,8個(gè)輸出,8中輸出狀態(tài),E3、3個(gè)使能端,必須輸入有效電平100才能選通,譯碼器輸出才有效。5、并行擴(kuò)展的尋址方法(1)系統(tǒng)并行擴(kuò)展的尋址概念(2)存儲(chǔ)器尋址的概念(3)存儲(chǔ)器尋址的兩個(gè)步驟:存儲(chǔ)器芯片尋址和芯片內(nèi)部存儲(chǔ)單元的尋址所謂的存儲(chǔ)器編址,實(shí)際上主要是研究芯片的選擇問題。為了芯片選擇的需要,存儲(chǔ)芯片都有片選信號(hào)引腳,因此,芯片選擇的實(shí)質(zhì)就是如何產(chǎn)生芯片的
36、片選信號(hào)。(4)芯片尋址方法:線選法和譯碼法6、存儲(chǔ)器的并行擴(kuò)展(1)程序存儲(chǔ)器擴(kuò)展特性(2)程序存儲(chǔ)器擴(kuò)展電路芯片快擦些存儲(chǔ)器芯片,例子7、數(shù)據(jù)存儲(chǔ)器擴(kuò)展概述(隨機(jī))概念、尋址范圍、控制端、訪問指令、例子8、存儲(chǔ)器擴(kuò)展舉例各存儲(chǔ)芯片對(duì)應(yīng)存儲(chǔ)空間9、并行I/O接口的擴(kuò)展(1)I/O擴(kuò)展概述 (2)簡(jiǎn)單的并行I/O擴(kuò)展80C51系列單片機(jī)的P0P3口具有輸人數(shù)據(jù)可以緩沖,輸出數(shù)據(jù)可以鎖存的功能,并且有一定的帶負(fù)載能力。因而在有些簡(jiǎn)單應(yīng)用的場(chǎng)合I/O口可以直接與外設(shè)相接。例如,開關(guān)、發(fā)光二極管等。單片機(jī)應(yīng)用系統(tǒng)中經(jīng)常采用的方法:在需要擴(kuò)展IO口,或者需要提高系統(tǒng)的帶負(fù)載能力的情況,常采用鎖存器、緩沖驅(qū)動(dòng)器等作為IO口擴(kuò)展芯片,這種IO口一般都是通過P0口擴(kuò)展,具有電路簡(jiǎn)單、成本低、配置靈活的優(yōu)點(diǎn)。一般在擴(kuò)展單個(gè)8位輸出做入口時(shí)十分方便。作為I/O口擴(kuò)展使用的芯片有:373、377、244、245、273、367等對(duì)簡(jiǎn)單I/
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB31/T 1057-2017在用工業(yè)鍋爐安全、節(jié)能和環(huán)保管理基本要求
- CBWQA/T 0002-2013螺旋空氣分離器
- 足部按摩與調(diào)節(jié)血壓考核試卷
- 資產(chǎn)轉(zhuǎn)讓補(bǔ)充協(xié)議
- 物流企業(yè)智能分揀中心租賃與運(yùn)營支持協(xié)議
- 網(wǎng)絡(luò)配偶忠誠協(xié)議及社交賬號(hào)監(jiān)管執(zhí)行合同
- 2025年中國辦公室儲(chǔ)物柜行業(yè)市場(chǎng)前景預(yù)測(cè)及投資價(jià)值評(píng)估分析報(bào)告
- 電池梯次利用與環(huán)保產(chǎn)業(yè)鏈協(xié)同發(fā)展合作協(xié)議
- 資產(chǎn)評(píng)估機(jī)構(gòu)與金融機(jī)構(gòu)股權(quán)合作投資合同
- 證券公司經(jīng)紀(jì)人培訓(xùn)與派遣一體化服務(wù)協(xié)議
- GB 15831-2006鋼管腳手架扣件
- 浙教版八年級(jí)科學(xué)第四章電學(xué)測(cè)試
- 機(jī)電顧問服務(wù)建議書123
- 廣西壯族自治區(qū)工程造價(jià)綜合定額答疑匯編2022年11月更新
- 科學(xué)發(fā)展觀基本解讀(完整版)課件
- 基坑工程施工驗(yàn)收記錄表
- 夜間施工專項(xiàng)方案
- 微生物實(shí)驗(yàn)室病原微生物評(píng)估報(bào)告
- 護(hù)理風(fēng)險(xiǎn)管理與護(hù)理安全
- 綜采工作面液壓支架壓死救活技術(shù)研究
- 主體結(jié)構(gòu)監(jiān)理實(shí)施細(xì)則范本
評(píng)論
0/150
提交評(píng)論