《嵌入式系統(tǒng)應(yīng)用》課件:單片機(jī)4 第四章 功能單元_第1頁
《嵌入式系統(tǒng)應(yīng)用》課件:單片機(jī)4 第四章 功能單元_第2頁
《嵌入式系統(tǒng)應(yīng)用》課件:單片機(jī)4 第四章 功能單元_第3頁
《嵌入式系統(tǒng)應(yīng)用》課件:單片機(jī)4 第四章 功能單元_第4頁
《嵌入式系統(tǒng)應(yīng)用》課件:單片機(jī)4 第四章 功能單元_第5頁
已閱讀5頁,還剩102頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)原理及應(yīng)用北京化工大學(xué)北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院信息科學(xué)與技術(shù)學(xué)院主講教師:郭青主講教師:郭青E-mail: 第四章第四章80C51單片機(jī)的功能單元單片機(jī)的功能單元主要內(nèi)容主要內(nèi)容u并行并行I/OI/O接口接口u定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器u串行通訊接口串行通訊接口u中斷系統(tǒng)中斷系統(tǒng)概述:概述:4個(gè)并行個(gè)并行I/O端口端口P0、P1、P2、P3,共,共32根根I/O線線每一個(gè)口都有一個(gè)每一個(gè)口都有一個(gè)8位的鎖存器,復(fù)位后,初態(tài)位的鎖存器,復(fù)位后,初態(tài)為為1,即,即FFH4個(gè)個(gè)I/O端口分別對應(yīng)于內(nèi)部端口分別對應(yīng)于內(nèi)部RAM的四個(gè)特殊功的四個(gè)特殊功能寄存器能寄存器4.1 并行I/O接口一

2、、內(nèi)部結(jié)構(gòu)一、內(nèi)部結(jié)構(gòu)(以(以P1口為例)口為例)DCL P1X鎖存器鎖存器QQ讀鎖存器讀鎖存器內(nèi)部總線內(nèi)部總線寫鎖存器寫鎖存器讀引腳讀引腳輸入緩沖器輸入緩沖器BUF1Vcc R(上拉電阻)(上拉電阻)P1X引腳引腳特點(diǎn):輸出鎖存,輸入緩沖特點(diǎn):輸出鎖存,輸入緩沖輸入緩沖器輸入緩沖器BUF2二、第一功能:通用二、第一功能:通用I/OI/O口口雙向通道,即可輸入又可輸出雙向通道,即可輸入又可輸出可作可作8位并行位并行I/O口,每一位也可單獨(dú)使用,應(yīng)用位口,每一位也可單獨(dú)使用,應(yīng)用位操作指令操作指令1、用作輸出口、用作輸出口可直接與外設(shè)相連,不必外加鎖存器可直接與外設(shè)相連,不必外加鎖存器輸出指令:

3、輸出指令:MOV P1,A ;MOV P1,RnMOV P1,#data ;MOV P1,RiMOV P1,direct字節(jié)尋址字節(jié)尋址MOV P1.X , C位操作位操作P10位位DCL P1X鎖存器鎖存器QQ讀鎖存器讀鎖存器內(nèi)部總線內(nèi)部總線寫鎖存器寫鎖存器讀引腳讀引腳輸入緩沖器輸入緩沖器Vcc R(上拉電阻)(上拉電阻)P1X引腳引腳101驅(qū)動能力:驅(qū)動能力:P1、P2、P3可驅(qū)動可驅(qū)動4個(gè)個(gè)LSTTL負(fù)載負(fù)載 P0可驅(qū)動可驅(qū)動8個(gè)個(gè)LSTTL負(fù)載負(fù)載1例:例: MOV P1,#0FH輸入緩沖器輸入緩沖器2、用作輸入口、用作輸入口兩種工作方式:兩種工作方式:讀鎖存器讀鎖存器讀引腳讀引腳1)

4、讀鎖存器)讀鎖存器 將端口鎖存器的內(nèi)容讀入內(nèi)部總線,經(jīng)過運(yùn)算和變換,再將端口鎖存器的內(nèi)容讀入內(nèi)部總線,經(jīng)過運(yùn)算和變換,再寫回到端口鎖存器。寫回到端口鎖存器。稱為稱為 讀讀修改修改寫指令寫指令例:例:ANL P1,#0FH10種讀種讀修改修改寫指令:寫指令: (以(以I/O口或位為目標(biāo)操作數(shù))口或位為目標(biāo)操作數(shù))ANL 、ORL 、XRL、CPL (位取反)、(位取反)、INC、DEC、DJNZ、CLR、SETBMOV (MOV PXY,C)DCL P1X鎖存器鎖存器QQ讀鎖存器讀鎖存器內(nèi)部總線內(nèi)部總線寫鎖存器寫鎖存器讀引腳讀引腳輸入緩沖器輸入緩沖器Vcc R(上拉電阻)(上拉電阻)P1X引腳引

5、腳讀引腳內(nèi)容與鎖存器內(nèi)容,可能不一致讀引腳內(nèi)容與鎖存器內(nèi)容,可能不一致引腳輸出引腳輸出為為1,驅(qū)動,驅(qū)動三極管基三極管基極極 ,將被,將被鉗位為鉗位為010所以用所以用“讀讀修改修改寫寫”指令讀指令讀I/OI/O口鎖存器口鎖存器如用如用P1.X口驅(qū)口驅(qū)動三極管基極動三極管基極0輸入緩沖器輸入緩沖器2 2)讀引腳)讀引腳讀引腳狀態(tài),將外部的數(shù)據(jù)讀入到內(nèi)部總線,讀引腳狀態(tài),將外部的數(shù)據(jù)讀入到內(nèi)部總線,所以讀引腳指令是所以讀引腳指令是 輸入指令輸入指令例:例:MOV A,P1 MOV Rn,P1 MOV direct,P1 MOV C,P1X注意:注意:當(dāng)端口作為輸入口使用時(shí),必須將端口當(dāng)端口作為輸

6、入口使用時(shí),必須將端口鎖存器的相應(yīng)位置鎖存器的相應(yīng)位置“1”,該位才能正確的讀入,該位才能正確的讀入原因:如某位為原因:如某位為“0”,則不管引腳狀態(tài)如何,則不管引腳狀態(tài)如何,讀引腳的結(jié)果始終為讀引腳的結(jié)果始終為“0”字節(jié)操作字節(jié)操作位操作位操作DCL P1X鎖存器鎖存器QQ讀鎖存器讀鎖存器內(nèi)部總線內(nèi)部總線寫鎖存器寫鎖存器讀引腳讀引腳輸入緩沖器輸入緩沖器Vcc R(上拉電阻)(上拉電阻)P1X引腳引腳如如P10口鎖存器為口鎖存器為“0”01導(dǎo)通導(dǎo)通00無論引腳輸入如何,始終讀到無論引腳輸入如何,始終讀到0;且外設(shè)輸入高電平時(shí),易損壞輸出且外設(shè)輸入高電平時(shí),易損壞輸出MOS管管有效有效輸入緩沖器

7、輸入緩沖器DCL P1X鎖存器鎖存器QQ讀鎖存器讀鎖存器內(nèi)部總線內(nèi)部總線寫鎖存器寫鎖存器讀引腳讀引腳輸入緩沖器輸入緩沖器Vcc R(上拉電阻)(上拉電阻)P1X引腳引腳P10口鎖存器為口鎖存器為“1”1011有效有效輸入緩沖器輸入緩沖器DCL P1X鎖存器鎖存器QQ讀鎖存器讀鎖存器內(nèi)部總線內(nèi)部總線寫鎖存器寫鎖存器讀引腳讀引腳輸入緩沖器輸入緩沖器Vcc R(上拉電阻)(上拉電阻)P1X引腳引腳P10口鎖存器為口鎖存器為“1”1000因?yàn)橐驗(yàn)镮/O端口在執(zhí)行輸入指令時(shí),須先使用指令將端口鎖存端口在執(zhí)行輸入指令時(shí),須先使用指令將端口鎖存器置器置“1”,所以稱,所以稱 準(zhǔn)雙向口準(zhǔn)雙向口系統(tǒng)復(fù)位后,系統(tǒng)

8、復(fù)位后,I/OI/O端口鎖存器狀態(tài)為全端口鎖存器狀態(tài)為全“1”1”,即,即P0P0、P1P1、P2P2、P3P3均為均為FFHFFH,可直接作為輸入口使用,可直接作為輸入口使用有效有效輸入緩沖器輸入緩沖器3、輸入、輸出操作、輸入、輸出操作字節(jié)操作:字節(jié)操作: 8位一組,并行輸入、輸出位一組,并行輸入、輸出例:例:MOV P1,A位操作:位操作: 利用位操作指令,進(jìn)行逐位的輸入、輸出利用位操作指令,進(jìn)行逐位的輸入、輸出例:例:MOV P1.0,C多位分組操作:多位分組操作:利用讀改寫指令,僅對選定位進(jìn)行輸出操作利用讀改寫指令,僅對選定位進(jìn)行輸出操作例例1: ORL P1,#0000 0110B使

9、使P1.1、P1.2輸出為輸出為1,其余位不變,其余位不變例例2:ANL P1,#1111 0110BP1.0、P1.3輸出為輸出為0,其余位不變,其余位不變4、作為雙向口使用、作為雙向口使用80C51的的4個(gè)個(gè)I/O口在進(jìn)行數(shù)據(jù)的輸入輸出操作時(shí),口在進(jìn)行數(shù)據(jù)的輸入輸出操作時(shí),均可作為雙向口使用。即,同一口線既作為輸入均可作為雙向口使用。即,同一口線既作為輸入口,又用作輸出口。口,又用作輸出口。操作方法:操作方法:以以P1口為例口為例MOV P1, A MOV P1,#0FFHMOV A,P1;直接使用輸出指令;直接使用輸出指令;鎖存器置;鎖存器置1;輸入指令;輸入指令80C51的的P1由輸出

10、口轉(zhuǎn)為輸入口時(shí),需先將鎖由輸出口轉(zhuǎn)為輸入口時(shí),需先將鎖存器置存器置1,然后使用輸入指令。,然后使用輸入指令。準(zhǔn)雙向口準(zhǔn)雙向口三、第二功能三、第二功能1)P0口:口:8位數(shù)據(jù)總線,地址總線低位數(shù)據(jù)總線,地址總線低8位分時(shí)復(fù)用位分時(shí)復(fù)用2)P2口:高口:高8位地址總線位地址總線3)P3口:每一位具有不同的第二功能口:每一位具有不同的第二功能注:注:對于對于P0、P2口,如用作第二功能,將不能作為通用口,如用作第二功能,將不能作為通用I/O口使用;口使用;P3口,剩余位仍可用作通用口,剩余位仍可用作通用I/O口。復(fù)位時(shí),口。復(fù)位時(shí),因各口鎖存器初態(tài)均為因各口鎖存器初態(tài)均為“1”,可直接用作第二功能,

11、可直接用作第二功能四、帶負(fù)載能力四、帶負(fù)載能力P0口:口:8個(gè)個(gè)TTL負(fù)載負(fù)載P1、P2、P3口:口:4個(gè)個(gè)TTL負(fù)載負(fù)載五、五、80C5180C51的外部總線的外部總線單片微機(jī)系統(tǒng)特點(diǎn):面向測控系統(tǒng)單片微機(jī)系統(tǒng)特點(diǎn):面向測控系統(tǒng)要求單片微機(jī)能夠提供實(shí)時(shí)功能,以實(shí)現(xiàn)定時(shí)、要求單片微機(jī)能夠提供實(shí)時(shí)功能,以實(shí)現(xiàn)定時(shí)、延時(shí)或?qū)崟r(shí)時(shí)鐘;也常要求計(jì)數(shù)功能,以實(shí)現(xiàn)延時(shí)或?qū)崟r(shí)時(shí)鐘;也常要求計(jì)數(shù)功能,以實(shí)現(xiàn)對外部事件計(jì)數(shù)對外部事件計(jì)數(shù)80C51系列單片微機(jī)提供系列單片微機(jī)提供2個(gè)(個(gè)(8051型)或型)或3個(gè)個(gè)(8052型)型)16位的定時(shí)位的定時(shí)/計(jì)數(shù)器,可程控為計(jì)數(shù)器,可程控為4種種工作方式工作方式4.2

12、 定時(shí)/計(jì)數(shù)器fosc/12TXP3.4, P3.5 T0 , T1 TLX THX(8) (8) TFXTMOD TCON加加1計(jì)數(shù)器計(jì)數(shù)器控制邏輯控制邏輯C/T80C51定時(shí)定時(shí)/計(jì)數(shù)器原理框圖計(jì)數(shù)器原理框圖X=0,1一、定時(shí)一、定時(shí)/計(jì)數(shù)器的基本原理計(jì)數(shù)器的基本原理1 1、定時(shí)方式、定時(shí)方式計(jì)數(shù)脈沖來源于內(nèi)部振蕩器(計(jì)數(shù)脈沖來源于內(nèi)部振蕩器(12分頻)分頻)例:主頻為例:主頻為12MHz,機(jī)器周期為,機(jī)器周期為1 s0TC/ fosc/12TXP3.4, P3.5 T0 , T1 TLX THX(8) (8) TFXTMOD TCON加加1計(jì)數(shù)器計(jì)數(shù)器控制邏輯控制邏輯C/TX=0,10一

13、個(gè)機(jī)器一個(gè)機(jī)器周期加周期加12 2、計(jì)數(shù)方式、計(jì)數(shù)方式計(jì)數(shù)脈沖來源于外部引腳計(jì)數(shù)脈沖來源于外部引腳1TC/ fosc/12TXP3.4, P3.5 T0 , T1 TLX THX(8) (8) TFXTMOD TCON加加1計(jì)數(shù)器計(jì)數(shù)器控制邏輯控制邏輯C/TX=0,11P3.4, P3.5T0 , T12 2、計(jì)數(shù)方式、計(jì)數(shù)方式計(jì)數(shù)脈沖來源于外部引腳(計(jì)數(shù)脈沖來源于外部引腳(Tx,x=0,1)1TC/ 有效脈沖為負(fù)跳變脈沖有效脈沖為負(fù)跳變脈沖Tx10S5P2S5P2A)最大計(jì)數(shù)速率為振蕩頻率的)最大計(jì)數(shù)速率為振蕩頻率的1/24。B)計(jì)數(shù)脈沖給出的高電平應(yīng)至少保持)計(jì)數(shù)脈沖給出的高電平應(yīng)至少保持

14、1個(gè)完整的個(gè)完整的機(jī)器周期,以保證被采樣機(jī)器周期,以保證被采樣對計(jì)數(shù)脈沖要求:對計(jì)數(shù)脈沖要求:計(jì)數(shù)器計(jì)數(shù)器加加1 13 3、計(jì)數(shù)器、計(jì)數(shù)器“溢出溢出”整個(gè)定時(shí)整個(gè)定時(shí)/計(jì)數(shù)器功能由用戶通過指令對特殊功能計(jì)數(shù)器功能由用戶通過指令對特殊功能寄存器寄存器TMOD和和TCON編程實(shí)現(xiàn)編程實(shí)現(xiàn)fosc/12TXP3.4, P3.5 T0 , T1 TLX THX(8) (8) TFXTMOD TCON加加1計(jì)數(shù)器計(jì)數(shù)器控制邏輯控制邏輯C/TX=0,11111 1111 1111 11110000 0000 0000 0000TF=1全全“1” 全全“0”,計(jì)數(shù)器,計(jì)數(shù)器溢出溢出,置位,置位TF,請求中斷

15、,請求中斷二、定時(shí)/計(jì)數(shù)器控制與狀態(tài)寄存器1、工作方式寄存器、工作方式寄存器TMOD用于定義定時(shí)用于定義定時(shí)/計(jì)數(shù)器的操作方式及工作模式計(jì)數(shù)器的操作方式及工作模式字節(jié)地址:字節(jié)地址:89HM1 M0:操作方式選擇位:操作方式選擇位M1 M0 操作方式操作方式 功能說明功能說明 0 0 方式方式0 13位計(jì)數(shù)器位計(jì)數(shù)器 0 1 方式方式1 16位計(jì)數(shù)器位計(jì)數(shù)器 1 0 方式方式2 自動重裝的自動重裝的8位計(jì)數(shù)器位計(jì)數(shù)器 1 1 方式方式3 T0分成兩個(gè)分成兩個(gè)8位計(jì)數(shù)器位計(jì)數(shù)器 T1無效(停止計(jì)數(shù))無效(停止計(jì)數(shù))C/T:選擇定時(shí)或計(jì)數(shù)模式:選擇定時(shí)或計(jì)數(shù)模式 C/T=1,計(jì)數(shù)模式;,計(jì)數(shù)模式;

16、C/T=0,定時(shí)模式,定時(shí)模式GATE:選通控制:選通控制GATE=1,當(dāng),當(dāng)INTx端口為高電平且端口為高電平且TRx=1,定,定時(shí)計(jì)數(shù)器才啟動計(jì)數(shù)。時(shí)計(jì)數(shù)器才啟動計(jì)數(shù)。應(yīng)用:對脈沖的寬度進(jìn)應(yīng)用:對脈沖的寬度進(jìn)行測量行測量GATE=0,只要,只要TRx置位為置位為1,定時(shí)計(jì)數(shù)器就啟動,定時(shí)計(jì)數(shù)器就啟動計(jì)數(shù)計(jì)數(shù)復(fù)位時(shí),復(fù)位時(shí),TMOD=00H允許定時(shí)計(jì)數(shù)器工作的條件是:允許定時(shí)計(jì)數(shù)器工作的條件是:GATE=1時(shí):時(shí):TRx=1且且INTx=1GATE=0時(shí):時(shí):TRx=1101111 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1INT0 is “1”TR0 is “1” 0

17、0 1 0 0 0 0 12 2、啟停與中斷控制寄存器、啟停與中斷控制寄存器TCONTCON用于控制定時(shí)用于控制定時(shí)/計(jì)數(shù)器的啟停與中斷請求。計(jì)數(shù)器的啟停與中斷請求。字節(jié)地址:字節(jié)地址:88H各位含義如下:各位含義如下:TF1:T1溢出中斷請求標(biāo)志位。當(dāng)溢出中斷請求標(biāo)志位。當(dāng)T1計(jì)數(shù)回計(jì)數(shù)回0溢溢出時(shí),由硬件置位為出時(shí),由硬件置位為1,向,向CPU請求中斷。當(dāng)請求中斷。當(dāng)CPU響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序,響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序,由硬件清由硬件清0。TR1:T1啟啟/停控制位。當(dāng)軟件置位停控制位。當(dāng)軟件置位TR1=1,T1啟動啟動計(jì)數(shù)。計(jì)數(shù)。TR1=0,停止計(jì)數(shù)。,停止計(jì)數(shù)。TF0:T0溢出

18、中斷請求標(biāo)志位,同溢出中斷請求標(biāo)志位,同TF1。TR0:T0啟啟/??刂莆?,同??刂莆唬琓R1。TCON字節(jié)地址為字節(jié)地址為88H,可以位尋址??梢晕粚ぶ贰?fù)位時(shí),復(fù)位時(shí),TCON=00H三、定時(shí)/計(jì)數(shù)器的工作方式TMOD中的中的C/T位的設(shè)置,可選擇定時(shí)位的設(shè)置,可選擇定時(shí)/計(jì)數(shù)器工計(jì)數(shù)器工作在定時(shí)或計(jì)數(shù)模式作在定時(shí)或計(jì)數(shù)模式M1、M0位的位的4種編碼,可用于選擇種編碼,可用于選擇4種工作方式種工作方式1 1、方式、方式0 0 M1、M0編碼為編碼為00,由,由TLX低低5位及位及THX8位組位組成成13位計(jì)數(shù)器位計(jì)數(shù)器組成結(jié)構(gòu)示意圖見下頁組成結(jié)構(gòu)示意圖見下頁允許定時(shí)計(jì)數(shù)器工作的條件是:允

19、許定時(shí)計(jì)數(shù)器工作的條件是:GATE=1時(shí):時(shí):TRx=1且且INTx=1GATE=0時(shí):時(shí):TRx=12 2、方式、方式1 1M1、M0編碼為編碼為01,TLx、THx組成組成16位定時(shí)計(jì)數(shù)器位定時(shí)計(jì)數(shù)器,其組成結(jié)構(gòu)同方式其組成結(jié)構(gòu)同方式03 3、方式、方式2 2M1、M0編碼為編碼為10,自動重裝的,自動重裝的8位定時(shí)計(jì)數(shù)器。位定時(shí)計(jì)數(shù)器。4 4、方式、方式3 3 M1、M0編碼為編碼為11,將,將T0分為兩個(gè)獨(dú)立的分為兩個(gè)獨(dú)立的8位計(jì)數(shù)位計(jì)數(shù)器,器,TL0組成完整的組成完整的8位定時(shí)位定時(shí)/計(jì)數(shù)器,計(jì)數(shù)器,TH0組成只組成只能定時(shí)的能定時(shí)的8位定時(shí)器。位定時(shí)器。T1無方式無方式3功能,如功

20、能,如T1設(shè)定為方式設(shè)定為方式3,則停止工作。,則停止工作。TL0使用定時(shí)使用定時(shí)/計(jì)數(shù)器計(jì)數(shù)器0的全部控制位,組成一個(gè)完的全部控制位,組成一個(gè)完整的整的8位定時(shí)位定時(shí)/計(jì)數(shù)器。計(jì)數(shù)器。TH0借用定時(shí)借用定時(shí)/計(jì)數(shù)器計(jì)數(shù)器1的的TR1和和TF1位,只能用于位,只能用于定時(shí),不能對外部事件計(jì)數(shù)定時(shí),不能對外部事件計(jì)數(shù)此時(shí),定時(shí)此時(shí),定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1可工作在方式可工作在方式0、1、2,但不,但不能使用中斷。典型應(yīng)用為串行通訊波特率發(fā)生器能使用中斷。典型應(yīng)用為串行通訊波特率發(fā)生器方式方式3 T0 結(jié)構(gòu)簡圖結(jié)構(gòu)簡圖補(bǔ)充說明:T0方式3時(shí),T1的設(shè)置與控制 在方式在方式3中,中,TL0和和TH0成

21、為兩個(gè)相互獨(dú)立的成為兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器。位計(jì)數(shù)器。TL0占用了全部占用了全部T0的控制位和信號引腳,即的控制位和信號引腳,即GATE、CT、TR0、TF0等。而等。而TH0只用作定時(shí)器使用。而且由于定時(shí)器只用作定時(shí)器使用。而且由于定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器0的控制位已被的控制位已被TL0獨(dú)占,因此獨(dú)占,因此TH0只好借用定時(shí)器只好借用定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器1的控制位的控制位TR1和和TF1進(jìn)行工作。進(jìn)行工作。 同時(shí),由于同時(shí),由于TR1,TF1已已“出借出借”給給TH0,TH1和和TL1的的溢出就送給串行口,作為串行口時(shí)鐘信號發(fā)生器(即波特率溢出就送給串行口,作為串行口時(shí)鐘信號發(fā)生器(即波特率信

22、號發(fā)生器),并且只要設(shè)置好工作方式(方式信號發(fā)生器),并且只要設(shè)置好工作方式(方式0,方式,方式1,方式方式2)以及計(jì)數(shù)初值,)以及計(jì)數(shù)初值,T1無須啟動使可自動運(yùn)行。如要停無須啟動使可自動運(yùn)行。如要停止止T1工作,只要將其設(shè)置工作方式工作,只要將其設(shè)置工作方式3即可。即可。四、定時(shí)/計(jì)數(shù)器應(yīng)用舉例初始化順序:初始化順序:設(shè)置工作方式控制字(設(shè)置工作方式控制字(TMOD)計(jì)算計(jì)數(shù)初值,并置計(jì)算計(jì)數(shù)初值,并置TLX,THX設(shè)置中斷允許位設(shè)置中斷允許位ETX、EA,開放中斷,開放中斷設(shè)置啟設(shè)置啟/??刂莆煌?刂莆籘RX定時(shí)時(shí)間:定時(shí)時(shí)間: TC=XTP X:計(jì)數(shù)次數(shù):計(jì)數(shù)次數(shù)計(jì)數(shù)初值:計(jì)數(shù)初值:

23、2n-X方式方式0:n=13方式方式1:n=16方式方式2:n=8設(shè)振蕩頻率設(shè)振蕩頻率 fosc=6MHZ,TP= 12 6MHZ=2us機(jī)器周期:機(jī)器周期: TP=12/fosc以定時(shí)模式為例:以定時(shí)模式為例:設(shè)定時(shí)時(shí)間為設(shè)定時(shí)時(shí)間為5ms,計(jì)數(shù)次數(shù),計(jì)數(shù)次數(shù) X=Tc/Tp=25001、計(jì)數(shù)初值的計(jì)算、計(jì)數(shù)初值的計(jì)算因?yàn)橐驗(yàn)镸CS51定時(shí)計(jì)數(shù)器為加定時(shí)計(jì)數(shù)器為加1計(jì)數(shù)器,所以設(shè)置入計(jì)數(shù)器,所以設(shè)置入THX、TLX的計(jì)數(shù)初值為實(shí)際計(jì)數(shù)長度的補(bǔ)碼的計(jì)數(shù)初值為實(shí)際計(jì)數(shù)長度的補(bǔ)碼 方式方式0: (X)補(bǔ)補(bǔ)=213-X=8192-2500=5692=163CH0 0 0 1 0 1 1 0 0 0

24、1 1 1 1 0 0 B TLX低低5位位THX8位位計(jì)數(shù)初值:計(jì)數(shù)初值:THX=B1H TLX=1CH方式方式1: (X)補(bǔ)補(bǔ)=216-X=65536-2500=63036=F63CH計(jì)數(shù)初值:計(jì)數(shù)初值: THX=F6H TLX=3CH最大計(jì)數(shù)次數(shù):方式最大計(jì)數(shù)次數(shù):方式0為為8192次,方式次,方式1為為65536次,次,方式方式2為為256次次2、方式、方式0應(yīng)用舉例應(yīng)用舉例設(shè)系統(tǒng)主頻為設(shè)系統(tǒng)主頻為6MHZ,要求,要求P10口輸出周期為口輸出周期為10ms的方波,使用的方波,使用T0,方式,方式0分析:周期為分析:周期為10ms方波方波定時(shí)時(shí)間為定時(shí)時(shí)間為5ms,定時(shí)時(shí)間到對,定時(shí)時(shí)間

25、到對P10取反取反計(jì)數(shù)初值:計(jì)數(shù)初值: TH0=B1H TL0=1CH工作方式控制字:工作方式控制字: TMOD=00H程序如下:程序如下:MOV TMOD , #00HSETB TR0MOV TH0 , #0B1HMOV TL0 , #1CHJNB TF0 , HERECLR TF0?CPL P1.0SJMP LOOPLOOP:HERE:; 置置T0方式方式0;啟動計(jì)數(shù);啟動計(jì)數(shù);置計(jì)數(shù)初值;置計(jì)數(shù)初值;TF0=0,定時(shí)時(shí)間未到,等待,定時(shí)時(shí)間未到,等待;定時(shí)時(shí)間到,定時(shí)時(shí)間到,TF0清清0?;繼續(xù)下一次計(jì)數(shù);繼續(xù)下一次計(jì)數(shù);P10取反取反方式方式0及方式及方式1,計(jì)數(shù)滿后,計(jì)數(shù)器回,計(jì)數(shù)滿

26、后,計(jì)數(shù)器回0,需重新,需重新置計(jì)數(shù)初值置計(jì)數(shù)初值3、方式、方式2應(yīng)用應(yīng)用設(shè)系統(tǒng)主頻為設(shè)系統(tǒng)主頻為12MHZ,使用,使用T1方式方式2在在P10口輸口輸出出5KHZ方波方波機(jī)器周期:機(jī)器周期:TP=1us5KHZ方波,周期為方波,周期為200us,即每隔,即每隔100us將將P10口取反。口取反。定時(shí)時(shí)間:定時(shí)時(shí)間:TC=100us計(jì)數(shù)次數(shù):計(jì)數(shù)次數(shù):X=100計(jì)數(shù)初值:計(jì)數(shù)初值: 28-X=156=9CH程序如下:程序如下:MOV TMOD , #20HMOV TH1 , #9CHMOV TL1 , #9CHSETB TR1JNB TF1 , HERECLR TF1CPL P1.0SJMP

27、HEREHERE:;置工作方式為方式;置工作方式為方式2;置計(jì)數(shù)初值;置計(jì)數(shù)初值;啟動計(jì)數(shù);啟動計(jì)數(shù);定時(shí)時(shí)間未到,等待;定時(shí)時(shí)間未到,等待;定時(shí)時(shí)間到,;定時(shí)時(shí)間到,TF1清清0;轉(zhuǎn)下一次定時(shí);轉(zhuǎn)下一次定時(shí)方式方式2為自動重裝方式,無須重置計(jì)數(shù)初值。但計(jì)數(shù)為自動重裝方式,無須重置計(jì)數(shù)初值。但計(jì)數(shù)初值應(yīng)同時(shí)裝入初值應(yīng)同時(shí)裝入THX及及TLX;P10取反取反4、應(yīng)注意的問題、應(yīng)注意的問題1)定時(shí))定時(shí)/計(jì)數(shù)器的實(shí)時(shí)性計(jì)數(shù)器的實(shí)時(shí)性定時(shí)定時(shí)/計(jì)數(shù)器計(jì)滿回計(jì)數(shù)器計(jì)滿回0,向主機(jī)請求中斷,主,向主機(jī)請求中斷,主機(jī)響應(yīng)中斷進(jìn)入中斷服務(wù)程序,存在時(shí)間延機(jī)響應(yīng)中斷進(jìn)入中斷服務(wù)程序,存在時(shí)間延遲,一般應(yīng)用場合

28、可忽略不記。但在一些實(shí)遲,一般應(yīng)用場合可忽略不記。但在一些實(shí)時(shí)性要求很高的場合,應(yīng)采用補(bǔ)償措施時(shí)性要求很高的場合,應(yīng)采用補(bǔ)償措施2)動態(tài)讀取運(yùn)行中的計(jì)數(shù)器動態(tài)讀取運(yùn)行中的計(jì)數(shù)器先讀先讀THX,后讀,后讀TLX,再讀,再讀THX。如兩次讀取的。如兩次讀取的THX相同,說明讀得的值是正確的;如不同,則相同,說明讀得的值是正確的;如不同,則重復(fù)以上過程,重復(fù)讀得的值一般不會再錯(cuò)。重復(fù)以上過程,重復(fù)讀得的值一般不會再錯(cuò)。4.3 中斷系統(tǒng)概述:概述:5到到6個(gè)(個(gè)(52系列)中斷源,系列)中斷源,2個(gè)中斷優(yōu)先級,可個(gè)中斷優(yōu)先級,可用軟件設(shè)定。用戶可通過軟件來屏蔽或接受中用軟件設(shè)定。用戶可通過軟件來屏蔽或

29、接受中斷請求斷請求一、一、 中斷源中斷源8051提供提供5個(gè)中斷源,其中兩個(gè)中斷請求信號由個(gè)中斷源,其中兩個(gè)中斷請求信號由外部產(chǎn)生并輸入,稱外部中斷;其余的中斷請外部產(chǎn)生并輸入,稱外部中斷;其余的中斷請求信號均由內(nèi)部產(chǎn)生,稱內(nèi)部中斷。求信號均由內(nèi)部產(chǎn)生,稱內(nèi)部中斷。1、外部中斷源、外部中斷源INT0: 外部中斷外部中斷0請求輸入(請求輸入(P32)INT1: 外部中斷外部中斷1請求輸入(請求輸入(P33)中斷請求觸發(fā)方式:中斷請求觸發(fā)方式: (CPU在在S5P2采樣采樣INT0和和INT1)2)負(fù)跳變觸發(fā),前一機(jī)周采樣高電平,后一機(jī))負(fù)跳變觸發(fā),前一機(jī)周采樣高電平,后一機(jī)周為低電平周為低電平1

30、)低電平觸發(fā),采樣低電平)低電平觸發(fā),采樣低電平2、定時(shí)器類、定時(shí)器類 當(dāng)當(dāng)T0、T1溢出時(shí),置位溢出時(shí),置位TF0、TF1,向向CPU請求中斷請求中斷3、串行通訊口、串行通訊口 發(fā)送或接收到一幀數(shù)據(jù)后,向發(fā)送或接收到一幀數(shù)據(jù)后,向CPU請求中斷請求中斷二、二、 中斷控制中斷控制4個(gè)與中斷系統(tǒng)有關(guān)的個(gè)與中斷系統(tǒng)有關(guān)的SFRTCON:啟停中斷控制寄存器啟停中斷控制寄存器IE:中斷允許控制寄存器中斷允許控制寄存器IP:中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器SCON:串行控制寄存器串行控制寄存器這這4個(gè)個(gè)SFR均可位尋址,改變某些標(biāo)志位的狀態(tài)均可位尋址,改變某些標(biāo)志位的狀態(tài)1、TCON: 地址地址88H高

31、高4位與定時(shí)位與定時(shí)/計(jì)數(shù)器有關(guān)計(jì)數(shù)器有關(guān)TF1:T1溢出中斷請求標(biāo)志位溢出中斷請求標(biāo)志位TF0:T0溢出中斷請求標(biāo)志位溢出中斷請求標(biāo)志位1:請求中斷:請求中斷低低4位與外部中斷源有關(guān)位與外部中斷源有關(guān)IT0:選擇外部中斷請求:選擇外部中斷請求0為邊沿觸發(fā)方式或電平觸為邊沿觸發(fā)方式或電平觸發(fā)方式的控制位(發(fā)方式的控制位(INT0中斷觸發(fā)方式選擇位)中斷觸發(fā)方式選擇位)IT0=0,電平觸發(fā)方式;,電平觸發(fā)方式;IT0=1,邊沿觸發(fā)方式,邊沿觸發(fā)方式IT1:選擇外部中斷請求:選擇外部中斷請求1觸發(fā)方式控制位觸發(fā)方式控制位IE0:外部中斷:外部中斷0中斷請求標(biāo)志位。中斷請求標(biāo)志位。如如IT0=0,電

32、平觸發(fā)方式時(shí),電平觸發(fā)方式時(shí),INT0為低電平為低電平時(shí)時(shí), IE0IE0由硬件置由硬件置1 1,向,向CPUCPU請求中斷。當(dāng)請求中斷。當(dāng)CPUCPU響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件清響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件清0 0。如如IT0=1,邊沿觸發(fā)方式時(shí),邊沿觸發(fā)方式時(shí),INT0出現(xiàn)有效出現(xiàn)有效負(fù)跳變時(shí),負(fù)跳變時(shí),IE0由硬件置由硬件置1,向,向CPU請求中斷。請求中斷。當(dāng)當(dāng)CPU響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序時(shí),由響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件清硬件清0。IE1:外部中斷:外部中斷1中斷請求標(biāo)志位,同中斷請求標(biāo)志位,同IE02、串行控制寄存器、串行控制寄存器SCON 地址:地址

33、:98H 可位尋址可位尋址功能:用于設(shè)置串行通訊的工作方式和某些控功能:用于設(shè)置串行通訊的工作方式和某些控制功能。其中低二位與中斷有關(guān)制功能。其中低二位與中斷有關(guān)TI:發(fā)送中斷請求標(biāo)志位:發(fā)送中斷請求標(biāo)志位RI:接收中斷請求標(biāo)志位:接收中斷請求標(biāo)志位串行通訊口發(fā)送或接收完一幀數(shù)據(jù),由硬件置串行通訊口發(fā)送或接收完一幀數(shù)據(jù),由硬件置1,向向CPU請求中斷;響應(yīng)中斷后,需由軟件清除請求中斷;響應(yīng)中斷后,需由軟件清除3、中斷允許控制寄存器、中斷允許控制寄存器IE地址:地址:A8H 可位尋址可位尋址功能:通過對某一位的設(shè)置,可以允許(開放)功能:通過對某一位的設(shè)置,可以允許(開放)或屏蔽(禁止)各中斷源

34、的中斷請求。又稱中斷或屏蔽(禁止)各中斷源的中斷請求。又稱中斷允許寄存器允許寄存器EA:開放:開放/禁止所有中斷。如禁止所有中斷。如EA=0,禁止所有,禁止所有中斷。中斷。EA=1,各中斷源的開放與否,取決于各,各中斷源的開放與否,取決于各自的中斷控制位的狀態(tài)。自的中斷控制位的狀態(tài)。X:保留位,無定義:保留位,無定義ET2:定時(shí):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器2中斷允許控制位。僅對中斷允許控制位。僅對8052有有效,效,8051及及31系列,此位為保留位系列,此位為保留位ES:串行口中斷允許控制位:串行口中斷允許控制位ET1:定時(shí):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器1中斷允許控制位中斷允許控制位EX1:外部中斷:外部中斷

35、1中斷允許控制位中斷允許控制位ET0:定時(shí):定時(shí)/計(jì)數(shù)器計(jì)數(shù)器0中斷允許控制位中斷允許控制位EX0:外部中斷:外部中斷0中斷允許控制位中斷允許控制位以上各位均為:以上各位均為: 設(shè)置為設(shè)置為1,開放對應(yīng)中斷源;,開放對應(yīng)中斷源;0,禁止對應(yīng)中斷源申請中斷。禁止對應(yīng)中斷源申請中斷。復(fù)位時(shí),復(fù)位時(shí),IE=00H,禁止所有中斷,禁止所有中斷4、中斷優(yōu)先級控制寄存器、中斷優(yōu)先級控制寄存器IP 地址:地址:B8H 可位尋址可位尋址通過用軟件對相應(yīng)位置通過用軟件對相應(yīng)位置“1”或清或清“0”,設(shè)定對應(yīng),設(shè)定對應(yīng)中斷源的優(yōu)先級。中斷源的優(yōu)先級。1:高優(yōu)先級,:高優(yōu)先級,0:低優(yōu)先級:低優(yōu)先級各位對應(yīng)中斷源:

36、各位對應(yīng)中斷源:PT2:定時(shí)計(jì)數(shù)器:定時(shí)計(jì)數(shù)器2(8052)PS:串行通訊口:串行通訊口PT1:定時(shí)計(jì)數(shù)器:定時(shí)計(jì)數(shù)器1PX1:外部中斷:外部中斷1PT0:定時(shí)計(jì)數(shù)器:定時(shí)計(jì)數(shù)器0PX0:外部中斷:外部中斷0復(fù)位時(shí),復(fù)位時(shí), IP=00H。所有中斷源均為低優(yōu)先級中斷。所有中斷源均為低優(yōu)先級中斷80C5180C51對中斷優(yōu)先級的處理原則:對中斷優(yōu)先級的處理原則:1)不同級的中斷源同時(shí)申請中斷時(shí),先高后低,)不同級的中斷源同時(shí)申請中斷時(shí),先高后低,高級優(yōu)先高級優(yōu)先2)處理低級中斷又接到高級中斷請求時(shí):停止低)處理低級中斷又接到高級中斷請求時(shí):停止低級中斷服務(wù)程序,轉(zhuǎn)而執(zhí)行高級中斷服務(wù)程序,級中斷服

37、務(wù)程序,轉(zhuǎn)而執(zhí)行高級中斷服務(wù)程序,即停低轉(zhuǎn)高即停低轉(zhuǎn)高3)處理高級中斷又接到低級中斷請求時(shí):不理睬)處理高級中斷又接到低級中斷請求時(shí):不理睬可實(shí)現(xiàn)兩級中斷嵌套,低級或同級不能嵌套可實(shí)現(xiàn)兩級中斷嵌套,低級或同級不能嵌套4)同一級的多個(gè)中斷源同時(shí)申請中斷時(shí),由內(nèi)部)同一級的多個(gè)中斷源同時(shí)申請中斷時(shí),由內(nèi)部按按查詢優(yōu)先順序查詢優(yōu)先順序決定響應(yīng)哪一中斷源的中斷請求。決定響應(yīng)哪一中斷源的中斷請求。次序由高到低如下:次序由高到低如下:IE0,TF0,IE1,TF1,串行,串行口,口,T2三、中斷響應(yīng)條件及響應(yīng)過程三、中斷響應(yīng)條件及響應(yīng)過程1 1、響應(yīng)過程、響應(yīng)過程C1機(jī)周機(jī)周:各中斷標(biāo)志在:各中斷標(biāo)志在S

38、5P2狀態(tài)采樣中斷源;狀態(tài)采樣中斷源;C2機(jī)周機(jī)周:CPU在在S6狀態(tài)按優(yōu)先順序采樣各中斷標(biāo)志。狀態(tài)按優(yōu)先順序采樣各中斷標(biāo)志。C3、C4機(jī)周機(jī)周:置位相應(yīng)中斷優(yōu)先級觸發(fā)器,阻止:置位相應(yīng)中斷優(yōu)先級觸發(fā)器,阻止同級或低級中斷請求。同級或低級中斷請求。各中斷源對應(yīng)矢量地址如下:各中斷源對應(yīng)矢量地址如下:INT0(IE0) 0003HT0 (TF0) 000BHINT1(IE1) 0013HT1(TF1) 001BH串行口(串行口(RI+TI) 0023HT2 002BHC5機(jī)周機(jī)周:CPU從矢量地址開始執(zhí)行中斷服務(wù)程序,從矢量地址開始執(zhí)行中斷服務(wù)程序,直到遇到一條直到遇到一條RETI指令為止指令為

39、止從發(fā)出中斷申請到轉(zhuǎn)入中斷服務(wù)程序,從發(fā)出中斷申請到轉(zhuǎn)入中斷服務(wù)程序,最快需最快需3個(gè)機(jī)周個(gè)機(jī)周2、中斷阻塞條件、中斷阻塞條件當(dāng)單片機(jī)處于以下情況時(shí),將不能響應(yīng)中斷當(dāng)單片機(jī)處于以下情況時(shí),將不能響應(yīng)中斷1)正在執(zhí)行同級或高級中斷服務(wù)程序)正在執(zhí)行同級或高級中斷服務(wù)程序2)中斷查詢周期)中斷查詢周期C2不是正在執(zhí)行指令的最后不是正在執(zhí)行指令的最后一個(gè)周期一個(gè)周期3)正在執(zhí)行)正在執(zhí)行RETI指令或?qū)懭胫噶罨驅(qū)懭隝E、IP寄存器的寄存器的指令指令除第一種阻塞條件,在后兩種情況下,從中斷除第一種阻塞條件,在后兩種情況下,從中斷申請到轉(zhuǎn)入中斷服務(wù)程序需申請到轉(zhuǎn)入中斷服務(wù)程序需38個(gè)機(jī)器周期個(gè)機(jī)器周期3

40、、中斷請求撤除、中斷請求撤除響應(yīng)中斷后應(yīng)清除中斷請求標(biāo)志,否則中斷申請繼響應(yīng)中斷后應(yīng)清除中斷請求標(biāo)志,否則中斷申請繼續(xù)有效,可能會產(chǎn)生一次申請多次響應(yīng)的情況續(xù)有效,可能會產(chǎn)生一次申請多次響應(yīng)的情況清除方法:清除方法:TF0,TF1,IE0,IE1:硬件清除硬件清除RI,TI:軟件清除軟件清除外部中斷有兩種觸發(fā)方式外部中斷有兩種觸發(fā)方式: 下降沿觸發(fā),置位下降沿觸發(fā),置位IEX,可清除,可清除 低電平觸發(fā),僅清除低電平觸發(fā),僅清除IEX無效,應(yīng)考慮時(shí)序配合問題無效,應(yīng)考慮時(shí)序配合問題四、程序舉例四、程序舉例例例1:利用定時(shí):利用定時(shí)/計(jì)數(shù)器計(jì)數(shù)器1的的T1端口改為外部脈沖(中端口改為外部脈沖(中

41、斷源)輸入端口的方法??驁D:斷源)輸入端口的方法??驁D:解:將解:將T1設(shè)定為外部計(jì)數(shù)方式,工作方式設(shè)定為外部計(jì)數(shù)方式,工作方式2,計(jì),計(jì)數(shù)初值為數(shù)初值為FFH1)主程序)主程序ORG 0000HAJMP MAINORG 001BHLJMP INTER ORG 0100H MOV SP , #60HMOV TMOD , #60HMOV TL1 , #0FFHMOV TH1 , #0FFHSETB EASETB ET1SETB TR1MAIN:; 轉(zhuǎn)主程序轉(zhuǎn)主程序;T1中斷矢量地址入口中斷矢量地址入口;轉(zhuǎn)中斷服務(wù)程序;轉(zhuǎn)中斷服務(wù)程序;主程序入口地址;主程序入口地址;設(shè)置堆棧區(qū);設(shè)置堆棧區(qū);設(shè)置;

42、設(shè)置T1為計(jì)數(shù)模式,方式為計(jì)數(shù)模式,方式2;設(shè)置計(jì)數(shù)初值;設(shè)置計(jì)數(shù)初值;開中斷;開中斷;啟動;啟動T1計(jì)數(shù)計(jì)數(shù)2)中斷服務(wù)程序(具體處理內(nèi)容略)中斷服務(wù)程序(具體處理內(nèi)容略) ORG 1000HPUSH A ;PUSH DPL ;PUSH DPH ; POP DPH ;POP DPL ;POP A ;RETI ;INTER:保護(hù)現(xiàn)場保護(hù)現(xiàn)場恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場中斷處理程序中斷處理程序中斷返回中斷返回中斷程序編制的要點(diǎn):中斷程序編制的要點(diǎn):1)在中斷源對應(yīng)中斷矢量地址入口放置中斷服)在中斷源對應(yīng)中斷矢量地址入口放置中斷服務(wù)程序,如空間不夠,可使用跳轉(zhuǎn)指令,轉(zhuǎn)向務(wù)程序,如空間不夠,可使用跳轉(zhuǎn)指令,轉(zhuǎn)向

43、中斷服務(wù)程序首地址。中斷服務(wù)程序首地址。2)設(shè)置堆棧區(qū))設(shè)置堆棧區(qū)3)開中斷,開放)開中斷,開放EA及對應(yīng)中斷允許位及對應(yīng)中斷允許位4)現(xiàn)場保護(hù))現(xiàn)場保護(hù)5)中斷返回)中斷返回RETI。每個(gè)中斷服務(wù)程序都必須。每個(gè)中斷服務(wù)程序都必須有,且只能有一條,放在服務(wù)程序的最后有,且只能有一條,放在服務(wù)程序的最后主主程程序序中斷中斷服務(wù)服務(wù)程序程序例例2:設(shè)系統(tǒng)主頻為:設(shè)系統(tǒng)主頻為6MHZ,要求,要求P10口輸出周期為口輸出周期為10ms的的方波,使用方波,使用T0,方式,方式0,開中斷,開中斷 ORG 0000HAJMP START ORG 000BHLJMP INTER ORG 0050HMOV S

44、P,#70HMOV TMOD , #00HMOV TH0 , #0B1HMOV TL0 , #1CHSETB TR0SETB EASETB ET0SJMP OKSTART:OK:;轉(zhuǎn)主程序;轉(zhuǎn)主程序;T0中斷矢量地址中斷矢量地址;轉(zhuǎn)中斷服務(wù)程序;轉(zhuǎn)中斷服務(wù)程序;主程序;主程序;開中斷;開中斷;循環(huán)等待中斷;循環(huán)等待中斷 ORG 0500HMOV TL0 ,#0B1HMOV TH0 ,#1CHCPL P10RETIENDINTER:;重置計(jì)數(shù)初值;重置計(jì)數(shù)初值;P10取反取反;中斷返回;中斷返回;程序結(jié)束;程序結(jié)束例例3、電路圖如下所示,、電路圖如下所示,P1口接有口接有8個(gè)發(fā)光二極管,編寫程序

45、,個(gè)發(fā)光二極管,編寫程序,使使8個(gè)二極管輪流點(diǎn)亮,每個(gè)管亮個(gè)二極管輪流點(diǎn)亮,每個(gè)管亮100ms,設(shè)晶振為,設(shè)晶振為6MHz。分析:分析:利用利用T1完成完成100ms定時(shí),當(dāng)定時(shí),當(dāng)P1口線輸出口線輸出0時(shí),發(fā)光二極管亮,每隔時(shí),發(fā)光二極管亮,每隔100ms左移一次。左移一次。采用定時(shí)方式采用定時(shí)方式1計(jì)算計(jì)數(shù)初值計(jì)算計(jì)數(shù)初值機(jī)器周期為機(jī)器周期為 2s計(jì)數(shù)長度:計(jì)數(shù)長度:100ms/2s = 50000計(jì)數(shù)初值:計(jì)數(shù)初值: 216 50000 = 15536 = 3CB0 H查詢方式:查詢方式:ORG 0000HMOV A, #0FEHNEXT: MOV P1, AMOV TMOD, #10H

46、MOV TH1, #3CHMOV TL1, # 0B0HSETB TR1AGAI: JBC TF1, SHISJMP AGAISHI:RL ASJMP NEXT;置第一個(gè);置第一個(gè)LED亮亮;T1定時(shí)方式定時(shí)方式1;定時(shí);定時(shí)100ms;啟動;啟動T1工作工作;100ms到,轉(zhuǎn)到,轉(zhuǎn)SHI,并清,并清TF1;未到;未到100ms,再次檢查,再次檢查TF1;A左移一位左移一位;重復(fù);重復(fù)中斷方式:中斷方式:ORG 0000HAJMP MAINORG 001BHAJMP IV1ORG 0030HMAIN: MOV A, #0FEH MOV P1, AMOV TMOD, #10HMOV TH1, #

47、3CHMOV TL1, # 0B0HSETB TR1SETB EASETB ET1WAIT: SJMP WAIT;單片機(jī)復(fù)位從;單片機(jī)復(fù)位從0000H開始執(zhí)行開始執(zhí)行;T1中斷服務(wù)程序入口地址中斷服務(wù)程序入口地址;轉(zhuǎn)移到;轉(zhuǎn)移到IV1;主程序;主程序;置第一個(gè);置第一個(gè)LED亮亮;T1定時(shí)方式定時(shí)方式1;定時(shí);定時(shí)100ms;啟動;啟動T1工作工作;開中斷總控開關(guān);開中斷總控開關(guān);允許;允許T1中斷中斷;等待中斷;等待中斷中斷服務(wù)程序:中斷服務(wù)程序:IV1: RL A MOV P1, AMOV TH1, #3CHMOV TL1, # 0B0HRETI;A左移左移;下一個(gè)二極管亮;下一個(gè)二極管亮

48、;重裝計(jì)數(shù)初值;重裝計(jì)數(shù)初值;中斷返回;中斷返回例例4:設(shè)設(shè)80C51的的fosc為為12MHZ,用用T0以中斷方式以中斷方式2實(shí)現(xiàn)對外部脈實(shí)現(xiàn)對外部脈沖進(jìn)行計(jì)數(shù),每計(jì)滿沖進(jìn)行計(jì)數(shù),每計(jì)滿120個(gè)脈沖后使內(nèi)部個(gè)脈沖后使內(nèi)部40H單元內(nèi)容加單元內(nèi)容加1,TR0啟動啟動; 使用使用T1中斷方式中斷方式2在在P10口輸出口輸出5KHZ方波方波1計(jì)數(shù)初值計(jì)算計(jì)數(shù)初值計(jì)算 T0 (外部脈沖計(jì)數(shù),外部脈沖計(jì)數(shù),方式方式2) (28X) 120 X 28120 136D 88H T1(定時(shí),方式(定時(shí),方式2) TH1=TL1=9CH2. TMOD工作方式字工作方式字 (TMOD) = 0010 0110

49、B = 26 H ORG 0000HAJMP MAIN ORG 000BHINC 40HRETI ORG 001BHCPL P10RETI ORG 0050HMOV SP,#70HMOV TMOD ,#26HMOV TL1,#9CHMOV TH1,#9CHMOV TL0,#88HMOV TH0,#88HMOV 40H, #0MAIN:OK:SETB EASETB ET0SETB ET1SETB TR0SETB TR1SJMP OKEND4.4 串行通訊口一、一、 串行通訊概述串行通訊概述1、并行通訊與串行通訊、并行通訊與串行通訊并行通訊:數(shù)據(jù)的所有位同時(shí)傳輸并行通訊:數(shù)據(jù)的所有位同時(shí)傳輸串行通

50、訊:數(shù)據(jù)的各位一位一位順序傳輸串行通訊:數(shù)據(jù)的各位一位一位順序傳輸2、異步通訊和同步通訊、異步通訊和同步通訊1) 同步通訊方式同步通訊方式基本特征是發(fā)送與接收時(shí)鐘需始終保持嚴(yán)格的同步。基本特征是發(fā)送與接收時(shí)鐘需始終保持嚴(yán)格的同步。同步通訊常約定同步通訊常約定12個(gè)同步字符指示傳輸數(shù)據(jù)流的開始,個(gè)同步字符指示傳輸數(shù)據(jù)流的開始,用于保證發(fā)送和接收端的初始同步用于保證發(fā)送和接收端的初始同步同步通訊格式:同步通訊格式:1 1 0 1 0 1 1 0 0 0 0 1 PSYNC:同步字符:同步字符數(shù)據(jù)的第一位數(shù)據(jù)的第一位奇偶校驗(yàn)位奇偶校驗(yàn)位特點(diǎn)特點(diǎn)l 以數(shù)據(jù)塊為單位傳送信息以數(shù)據(jù)塊為單位傳送信息l 在一

51、個(gè)數(shù)據(jù)塊(信息幀)內(nèi),字符與字符間無間隔在一個(gè)數(shù)據(jù)塊(信息幀)內(nèi),字符與字符間無間隔l 因?yàn)橐淮蝹鬏數(shù)臄?shù)據(jù)塊中包含的數(shù)據(jù)較多,所以接收時(shí)因?yàn)橐淮蝹鬏數(shù)臄?shù)據(jù)塊中包含的數(shù)據(jù)較多,所以接收時(shí)鐘與發(fā)送時(shí)鐘需要嚴(yán)格同步鐘與發(fā)送時(shí)鐘需要嚴(yán)格同步同步通訊方式常用于傳輸信息量大、速度要求較高的場合,同步通訊方式常用于傳輸信息量大、速度要求較高的場合,一般串行通訊中較少用一般串行通訊中較少用2) 異步通訊異步通訊每個(gè)數(shù)據(jù)均以相同的幀格每個(gè)數(shù)據(jù)均以相同的幀格式傳送式傳送起始位表示字符的開始,起始位表示字符的開始,用停止位表示字符的結(jié)束用停止位表示字符的結(jié)束數(shù)據(jù)傳送以字符為單位,字符與字符間的傳送是完全異步的,數(shù)據(jù)

52、傳送以字符為單位,字符與字符間的傳送是完全異步的,位與位之間的傳送基本上是同步的位與位之間的傳送基本上是同步的l 以字符為單位傳送信息。以字符為單位傳送信息。l 相鄰兩字符間的間隔是任意長相鄰兩字符間的間隔是任意長l 因?yàn)橐粋€(gè)字符中的比特位長度有限,所以需要的接收時(shí)鐘因?yàn)橐粋€(gè)字符中的比特位長度有限,所以需要的接收時(shí)鐘和發(fā)送時(shí)鐘只要相近就可以和發(fā)送時(shí)鐘只要相近就可以l 異步方式特點(diǎn):字符間異步,字符內(nèi)部各位同步異步方式特點(diǎn):字符間異步,字符內(nèi)部各位同步起始位:起始位:通訊線上沒有數(shù)據(jù)傳送時(shí)呈高電平(通訊線上沒有數(shù)據(jù)傳送時(shí)呈高電平(1)。當(dāng)需發(fā))。當(dāng)需發(fā)送一幀數(shù)據(jù)時(shí),首先發(fā)送一位邏輯送一幀數(shù)據(jù)時(shí),

53、首先發(fā)送一位邏輯0(低電平)信號,稱起(低電平)信號,稱起始位。始位。數(shù)據(jù)位:數(shù)據(jù)位:緊接起始位之后的即為數(shù)據(jù)位??梢允蔷o接起始位之后的即為數(shù)據(jù)位??梢允?、6、7或或8位。一般在傳送中從數(shù)據(jù)的最低位開始,順序發(fā)送和接收。位。一般在傳送中從數(shù)據(jù)的最低位開始,順序發(fā)送和接收。奇偶校驗(yàn)位:奇偶校驗(yàn)位:緊跟在數(shù)據(jù)位后,用于對數(shù)據(jù)檢錯(cuò)緊跟在數(shù)據(jù)位后,用于對數(shù)據(jù)檢錯(cuò)停止位:停止位:在校驗(yàn)位后,表示一幀數(shù)據(jù)的結(jié)束??梢允窃谛r?yàn)位后,表示一幀數(shù)據(jù)的結(jié)束??梢允?、1又又1/2、2位,用邏輯位,用邏輯1(高電平)表示(高電平)表示異步通訊一幀一幀的進(jìn)行傳輸,幀與幀之間的空隙異步通訊一幀一幀的進(jìn)行傳輸,幀與幀之

54、間的空隙不固定,間隙處用空閑位填補(bǔ)不固定,間隙處用空閑位填補(bǔ)異步通訊一般常用于傳異步通訊一般常用于傳輸信息量不太大,傳輸輸信息量不太大,傳輸速度較低的場合速度較低的場合異步通訊時(shí),接收端與發(fā)送端之間的約定:異步通訊時(shí),接收端與發(fā)送端之間的約定:a) 幀格式的設(shè)定幀格式的設(shè)定b) 波特率的設(shè)定波特率的設(shè)定波特率是數(shù)據(jù)傳送的速率,以每秒傳送的二進(jìn)制位(波特率是數(shù)據(jù)傳送的速率,以每秒傳送的二進(jìn)制位(bit)數(shù)表示,單位為波特,數(shù)表示,單位為波特,1波特波特=1位位/秒(秒(1bps)波特率是數(shù)據(jù)傳送速率的單位,也是衡量信道質(zhì)量的單位波特率是數(shù)據(jù)傳送速率的單位,也是衡量信道質(zhì)量的單位3、串行通訊中數(shù)據(jù)

55、的傳輸方向、串行通訊中數(shù)據(jù)的傳輸方向1)單工方式)單工方式數(shù)據(jù)按照一個(gè)固定方向傳輸數(shù)據(jù)按照一個(gè)固定方向傳輸2)半雙工方式)半雙工方式接收和發(fā)送交替進(jìn)行,同一時(shí)刻只能在一個(gè)方向上傳輸接收和發(fā)送交替進(jìn)行,同一時(shí)刻只能在一個(gè)方向上傳輸3)全雙工方式)全雙工方式同一時(shí)刻即可接收也可發(fā)送,實(shí)現(xiàn)雙向傳輸同一時(shí)刻即可接收也可發(fā)送,實(shí)現(xiàn)雙向傳輸二、二、80C5180C51的串行通訊接口的串行通訊接口80C51集成有一個(gè)功能很強(qiáng)的全雙工串行通訊口。設(shè)有兩個(gè)集成有一個(gè)功能很強(qiáng)的全雙工串行通訊口。設(shè)有兩個(gè)相互獨(dú)立的接收、發(fā)送緩沖器,可以同時(shí)接收和發(fā)送數(shù)據(jù)。相互獨(dú)立的接收、發(fā)送緩沖器,可以同時(shí)接收和發(fā)送數(shù)據(jù)。接收緩沖

56、器只能讀出不能寫入,發(fā)送緩沖器只能寫入不能讀接收緩沖器只能讀出不能寫入,發(fā)送緩沖器只能寫入不能讀出,所以兩個(gè)緩沖器共用一個(gè)地址碼(出,所以兩個(gè)緩沖器共用一個(gè)地址碼(99H)。兩個(gè)緩沖器)。兩個(gè)緩沖器統(tǒng)稱串行通訊特殊功能寄存器統(tǒng)稱串行通訊特殊功能寄存器SBUF。串行通訊設(shè)有串行通訊設(shè)有4種工作方式種工作方式80C51串行口組成示意圖一)串行口控制寄存器一)串行口控制寄存器1) 串行控制寄存器串行控制寄存器SCON用于選擇串行通訊的工作方式和某些控制功能用于選擇串行通訊的工作方式和某些控制功能字節(jié)地址:字節(jié)地址:98HSM0、SM1:不同組合確定串行通訊的工作方式不同組合確定串行通訊的工作方式SM

57、0 SM1 工作方式工作方式 功能說明功能說明 波特率波特率 0 0 方式方式0 移位寄存器方式移位寄存器方式 1/12 fosc 0 1 方式方式1 8位位UART方式方式 可變可變 1 0 方式方式2 9位位UART方式方式 1/64或或1/32fosc 1 1 方式方式3 9位位UART方式方式 可變可變串行工作方式方式方式1 8位位方式方式2 9位位方式方式3 9位位SM2:允許方式:允許方式2或方式或方式3多機(jī)通訊控制位。多機(jī)通訊控制位。 在方式在方式2或或3時(shí),如時(shí),如SM2=1,REN=1,則從機(jī)只有接收到,則從機(jī)只有接收到RB8=1(地址幀)時(shí),才激發(fā)中斷請求標(biāo)志位(地址幀)時(shí)

58、,才激發(fā)中斷請求標(biāo)志位RI=1,向,向CPU請求中斷處理。請求中斷處理。 被確認(rèn)尋址的從機(jī)復(fù)位被確認(rèn)尋址的從機(jī)復(fù)位SM2=0,才能接收數(shù)據(jù)幀(,才能接收數(shù)據(jù)幀(RB8=0)。)。 方式方式1時(shí),時(shí),如如SM2=1,則只有在接收到有效停止位時(shí)才置位,則只有在接收到有效停止位時(shí)才置位中斷標(biāo)志位中斷標(biāo)志位RI=1; 方式方式0時(shí),時(shí),SM2應(yīng)為應(yīng)為0。REN:允許:允許/禁止串行接收控制位。軟件置位禁止串行接收控制位。軟件置位REN=1,允許,允許串行接收;串行接收;REN=0,禁止接收,禁止接收TB8:在方式:在方式2或或3時(shí),為要發(fā)送的第時(shí),為要發(fā)送的第9位數(shù)據(jù),按需要用軟位數(shù)據(jù),按需要用軟件置

59、位或清件置位或清0。置置1表示要發(fā)送的是地址;清表示要發(fā)送的是地址;清0表示發(fā)送數(shù)據(jù)表示發(fā)送數(shù)據(jù)RB8:在方式:在方式2或或3時(shí),是接收到的第時(shí),是接收到的第9位數(shù)據(jù)。位數(shù)據(jù)。方式方式1,若,若SM2=1,RB8是接收到的停止位。方式是接收到的停止位。方式0不使用不使用復(fù)位時(shí),復(fù)位時(shí),SCON=00H2) 特殊功能寄存器特殊功能寄存器PCON最高位最高位PCON7為為SMOD,是波特率選擇位。,是波特率選擇位。SMOD=1,波特率加倍;,波特率加倍;SMOD=0,波特率不變。,波特率不變。復(fù)位時(shí),復(fù)位時(shí),SMOD=00H字節(jié)地址字節(jié)地址87H,不可位尋址,不可位尋址TI:發(fā)送中斷請求標(biāo)志位。響

60、應(yīng)中斷后,必須用軟件清發(fā)送中斷請求標(biāo)志位。響應(yīng)中斷后,必須用軟件清0。RI:接收中斷請求標(biāo)志位。響應(yīng)中斷后,必須用軟件清接收中斷請求標(biāo)志位。響應(yīng)中斷后,必須用軟件清0。3) 串行數(shù)據(jù)寄存器串行數(shù)據(jù)寄存器SBUF 99H,不可位尋址,不可位尋址 串行發(fā)送串行發(fā)送 MOV SBUF, A 串行接收串行接收 MOV A,SBUF二)串行通訊的工作方式二)串行通訊的工作方式4種工作方式,通過對種工作方式,通過對SCON中的中的SM0、SM1的設(shè)置進(jìn)行的設(shè)置進(jìn)行選擇選擇1、方式、方式0同步移位寄存器方式,波特率同步移位寄存器方式,波特率1/12fosc串行接收端串行接收端RXD(P30):進(jìn)行數(shù)據(jù)的接收

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論