第四章外圍模塊_第1頁(yè)
第四章外圍模塊_第2頁(yè)
第四章外圍模塊_第3頁(yè)
第四章外圍模塊_第4頁(yè)
第四章外圍模塊_第5頁(yè)
已閱讀5頁(yè),還剩77頁(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)介

1、1第四章第四章 51系列單片機(jī)系列單片機(jī) 的功能模塊及應(yīng)用的功能模塊及應(yīng)用主要掌握并行口、串行口、定主要掌握并行口、串行口、定時(shí)器的結(jié)構(gòu)、工作原理及應(yīng)用時(shí)器的結(jié)構(gòu)、工作原理及應(yīng)用24-1 并行口及其應(yīng)用并行口及其應(yīng)用51系列單片機(jī)的并行口,按特性可分類(lèi)為:?jiǎn)我坏臏?zhǔn)雙向口(如89C52的P1.2P1.7)多功能復(fù)用的準(zhǔn)雙向口(如89C52的P1.0、P1.1,P3.0P3.7)可作地址總線輸出口的準(zhǔn)雙向口(P2)可作地址/數(shù)據(jù)總線口的三態(tài)雙向口(P0)3每個(gè)I/O線均由鎖存器,輸出電路和輸入緩沖器組成。每一條口線可獨(dú)立用作輸入和輸出。作輸出時(shí)可鎖存數(shù)據(jù),輸入時(shí)可緩沖數(shù)據(jù)。CPU對(duì)口的讀操作有兩種

2、:讀修改寫(xiě)操作(讀口鎖存器狀態(tài))例:ANL P0,A ;(P0)(P0)(A) ORL P0,#data ;(P0)(P0)data DEC P0 ;(P0)(P0) -1讀引腳操作(讀口引腳上外部輸入信息)例 MOV A,P1454-1-1 P0 口口 P0口是一個(gè)三態(tài)雙向口,可作為地址口是一個(gè)三態(tài)雙向口,可作為地址/數(shù)據(jù)分時(shí)復(fù)用口,也可作為通用數(shù)據(jù)分時(shí)復(fù)用口,也可作為通用I/O接口。接口。 其其1位的結(jié)構(gòu)原理如下圖所示。位的結(jié)構(gòu)原理如下圖所示。P0口由口由8個(gè)這樣的電路組成。個(gè)這樣的電路組成。6P0.x地址 /數(shù)據(jù) 控制D Q鎖存器CLK_QMUX&1V2V1讀引腳內(nèi)部總線讀 鎖存

3、器寫(xiě)鎖存器VCC2134P0口口1位結(jié)構(gòu)圖位結(jié)構(gòu)圖起輸出鎖存作用,8個(gè)鎖存器構(gòu)成了SFRP0V1、V2組成輸出驅(qū)動(dòng)器,以增大帶負(fù)載能力三態(tài)門(mén)1是引腳輸入緩沖器讀鎖存器端口7 2地址/數(shù)據(jù)分時(shí)復(fù)用功能 當(dāng)P0口作為地址/數(shù)據(jù)分時(shí)復(fù)用總線時(shí),可分為兩種情況:一種是從P0口輸出地址或數(shù)據(jù),另一種是從P0口輸入數(shù)據(jù)。 8在訪問(wèn)片外存儲(chǔ)器而需從P0口輸出地址或數(shù)據(jù)信號(hào)時(shí),控制信號(hào)應(yīng)為高電平“1”,使轉(zhuǎn)換開(kāi)關(guān)MUX把反相器4的輸出端與V1接通,同時(shí)把與門(mén)3打開(kāi)。1)當(dāng)?shù)刂坊驍?shù)據(jù)為“1”時(shí),經(jīng)反相器4使V1截止,而經(jīng)與門(mén)3使V2導(dǎo)通,P0.x引腳上出現(xiàn)相應(yīng)的高電平“1”; 2)當(dāng)?shù)刂坊驍?shù)據(jù)為0時(shí),經(jīng)反相器4

4、使V1導(dǎo)通而V2截止,引腳上出現(xiàn)相應(yīng)的低電平0。這樣就將地址/數(shù)據(jù)的信號(hào)輸出。93通用I/O接口功能 當(dāng)P0口作為通用I/O口使用,在CPU向端口輸出數(shù)據(jù)時(shí),對(duì)應(yīng)的控制信號(hào)為0,轉(zhuǎn)換開(kāi)關(guān)把輸出級(jí)與鎖存器Q端接通,同時(shí)因與門(mén)3輸出為0使V2截止,此時(shí),輸出級(jí)是漏極開(kāi)路電路輸出級(jí)是漏極開(kāi)路電路。當(dāng)寫(xiě)脈沖加在鎖存器時(shí)鐘端CLK上時(shí),與內(nèi)部總線相連的D端數(shù)據(jù)取反后出現(xiàn)在Q端,又經(jīng)輸出V1反相,在P0引腳上出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。當(dāng)要從P0口輸入數(shù)據(jù)時(shí),引腳信息仍經(jīng)輸入緩沖器進(jìn)入內(nèi)部總線。10總之:一 P0口作為一般I/O口使用 1 P0口用作輸出口:必須外接上拉電阻必須外接上拉電阻,才有高電平

5、輸出。2 P0口作輸入口:先向端口鎖存器寫(xiě)入寫(xiě)入“1”。二 P0口作為地址/數(shù)據(jù)總線使用1 以P0口引腳輸出低8位地址或數(shù)據(jù)信息2 由P0口輸入數(shù)據(jù)三 P0口可驅(qū)動(dòng)8個(gè)LSTTL電路114-1-2 P1口(準(zhǔn)雙向口)口(準(zhǔn)雙向口)12P1.0、P1.1為多功能雙向口, P1.2P1.7為單一功能準(zhǔn)雙向口。P1口的第一功能是準(zhǔn)雙向口,每一位可分別定義為輸入線或輸出線。輸出驅(qū)動(dòng)部分由場(chǎng)效應(yīng)管V1與內(nèi)部上拉電阻組成。當(dāng)其某位輸出高電平時(shí),可以提供上拉電流負(fù)載。89C5289C52P1.0K 0P0.0+5V10K K 013P1的某一位作為輸入線輸入線時(shí),該位的口鎖存器必須保持“1”。使輸出場(chǎng)效應(yīng)管

6、截止。該引腳才可由內(nèi)部拉高電路拉成高電平,或由外部電路拉成低電平。P1口具有驅(qū)動(dòng)4個(gè)LSTTL負(fù)載的能力。14154-1-3 P2口(準(zhǔn)雙向口)口(準(zhǔn)雙向口)D Q鎖存器CLK_Q1P2.xV1讀引腳內(nèi)部總線讀鎖存器寫(xiě)鎖存器地址控制VCC內(nèi)部上拉電阻MUX213圖2.11 P 2口1位結(jié)構(gòu)圖16 當(dāng)作為準(zhǔn)雙向通用I/O口使用時(shí): 控制信號(hào)使轉(zhuǎn)換開(kāi)關(guān)接向左側(cè),鎖存器Q端經(jīng)反相器3接V1,其工作原理與P1相同,也具有輸入、輸出、端口操作三種工作方式,負(fù)載能力也與P1相同。 171 系統(tǒng)中外接程序存儲(chǔ)器時(shí):P2口輸出程序存儲(chǔ)器的高8位地址,不作I/O口使用。2 系統(tǒng)中無(wú)外接程序存儲(chǔ)器,而擴(kuò)展有片外R

7、AM的系統(tǒng)中: 片外RAM的容量256B:P2口仍做輸入/輸出口使用。使用R0或R1作地址指針。片外RAM的容量256B : P2口不能做輸入/輸出口,而做系統(tǒng)擴(kuò)展的高8位地址總線口使用。使用DPTR、P2R0、P2R1作地址指針。 184-1-4 P3口(準(zhǔn)雙向口)口(準(zhǔn)雙向口)19 P3口是一多功能口,既做準(zhǔn)雙向口又做特殊輸入輸出口。1 做通用I/O口使用: P3口做輸入使用,應(yīng)由軟件向口鎖存器寫(xiě)“1”。202 做第二功能使用: 某位做第二功能使用該位D鎖存器Q應(yīng)被硬件自動(dòng)置“1”。 P3.0 RXD P3.5 T1 P3.1 TXD (出) P3.6 WR(出) P3.2 INT0 P3

8、.7 RD(出) P3.3 INT1 P3.4 T03 P3口具有驅(qū)動(dòng)4個(gè)LSTTL負(fù)載的能力。214-1-5 并行口的應(yīng)用并行口的應(yīng)用1 外接蜂鳴器2 利用可控硅控制加熱電路3 BCD碼撥碼盤(pán)的接口 BCD碼撥碼盤(pán)構(gòu)造一個(gè)撥碼盤(pán)可以輸入1位十進(jìn)制數(shù)據(jù)。撥碼盤(pán)撥到某個(gè)位置時(shí),控制線分別與4位數(shù)據(jù)線中某幾位接通。接通線定義為“1”,不通的線定義為“0”。224-2 定時(shí)器及其應(yīng)用定時(shí)器及其應(yīng)用定時(shí)器功能:定時(shí)器功能: 1 定時(shí)操作定時(shí)操作 2 測(cè)量外部輸入信號(hào)測(cè)量外部輸入信號(hào) 3 定時(shí)輸出定時(shí)輸出 4 監(jiān)視系統(tǒng)正常工作監(jiān)視系統(tǒng)正常工作234-2-1定時(shí)器的結(jié)構(gòu)和工作原理定時(shí)器的結(jié)構(gòu)和工作原理1

9、定時(shí)器由一個(gè)N位計(jì)數(shù)器、計(jì)數(shù)時(shí)鐘源控制電路、狀態(tài)和控制寄存器等組成。 2 計(jì)數(shù)脈沖有兩個(gè)來(lái)源:外部的脈沖源系統(tǒng)的時(shí)鐘振蕩器。內(nèi)部時(shí)鐘外部時(shí)鐘N位計(jì)數(shù)器TFTMOD TCON中斷中斷243 用作定時(shí)器時(shí),每經(jīng)過(guò)一個(gè)機(jī)器周期,計(jì)數(shù)用作定時(shí)器時(shí),每經(jīng)過(guò)一個(gè)機(jī)器周期,計(jì)數(shù)器自動(dòng)加器自動(dòng)加1,直到計(jì)數(shù)溢出;用作計(jì)數(shù)器時(shí),直到計(jì)數(shù)溢出;用作計(jì)數(shù)器時(shí),外部時(shí)鐘脈沖加在定時(shí)器的外輸入端外部時(shí)鐘脈沖加在定時(shí)器的外輸入端T0(P3.4)或或T1(P3.5),每出現(xiàn)一次負(fù)跳變,每出現(xiàn)一次負(fù)跳變,計(jì)數(shù)器加計(jì)數(shù)器加1。4 兩個(gè)模擬開(kāi)關(guān),左邊決定定時(shí)兩個(gè)模擬開(kāi)關(guān),左邊決定定時(shí)/計(jì)數(shù)器的工計(jì)數(shù)器的工作狀態(tài),右邊決定脈沖源是

10、否加在計(jì)數(shù)器的作狀態(tài),右邊決定脈沖源是否加在計(jì)數(shù)器的輸入端。輸入端。5 16位的計(jì)數(shù)器由兩個(gè)位的計(jì)數(shù)器由兩個(gè)8位位SFR TH和和TL組成組成。25定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0、T1的結(jié)構(gòu)框圖的結(jié)構(gòu)框圖264-2-2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0和和T1一方式寄存器一方式寄存器TMOD(89H)1 不能進(jìn)行位尋址,只能用字節(jié)尋址。復(fù)不能進(jìn)行位尋址,只能用字節(jié)尋址。復(fù)位時(shí),位時(shí),TMOD所有位為所有位為0w熟悉各位功能熟悉各位功能2T1方式字段方式字段 T0方式字方式字段段GATEC/TM1 M GATEC/TM1M027 GATE門(mén)控位“1”:定時(shí)器的計(jì)數(shù)受外部引腳輸入電平的控制“0”:定

11、時(shí)器的計(jì)數(shù)不受外部引腳輸入電平的控制 C/T功能選擇位“1”:計(jì)數(shù)功能 “ 0”:定時(shí)功能 M1M0工作方式選擇位28 適于適于T0,兩個(gè),兩個(gè)8位計(jì)數(shù)器位計(jì)數(shù)器M1M0工作方式工作方式方方 式式 說(shuō)說(shuō) 明明00013位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器01116位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器102具有自動(dòng)重裝初值的具有自動(dòng)重裝初值的8位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器113 29二二 控制寄存器控制寄存器TCON(88H)1 既可字節(jié)尋址又可位尋址。復(fù)位時(shí),既可字節(jié)尋址又可位尋址。復(fù)位時(shí),TCON各位為各位為0例:例:SETB TR1 ;啟動(dòng)定時(shí)器;啟動(dòng)定時(shí)器T1工作工作熟悉各位功能熟悉各位功能D7

12、D6 D5 D4 D3 D2 D1 D08FH8EH 8DH 8CH 8BH 8AH 89H 88HTF1TR1TF0 TR0 IE1IT1IE0IT030TF1定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T1的溢出標(biāo)志位的溢出標(biāo)志位TR1定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T1的運(yùn)行控制位的運(yùn)行控制位TF0定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0的溢出標(biāo)志位的溢出標(biāo)志位TR0定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0的運(yùn)行控制位的運(yùn)行控制位IE1外部中斷外部中斷1下降沿觸發(fā)標(biāo)志位下降沿觸發(fā)標(biāo)志位IE0外部中斷外部中斷0下降沿觸發(fā)標(biāo)志位下降沿觸發(fā)標(biāo)志位IT1外部中斷外部中斷1觸發(fā)類(lèi)型選擇位觸發(fā)類(lèi)型選擇位IT0外部中斷外部中斷0觸發(fā)類(lèi)型選擇位觸

13、發(fā)類(lèi)型選擇位31三三 定時(shí)器定時(shí)器/計(jì)數(shù)器的初始化計(jì)數(shù)器的初始化 初始化即將控制字寫(xiě)入定時(shí)器初始化即將控制字寫(xiě)入定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器的過(guò)程。的過(guò)程。初始化一般步驟初始化一般步驟:1 寫(xiě)入初值寫(xiě)入初值TH0、TL0或或TH1、TL12 對(duì)對(duì)TMOD賦值賦值3 對(duì)對(duì)IE賦值(有中斷產(chǎn)生時(shí))賦值(有中斷產(chǎn)生時(shí))4 若用軟件啟動(dòng),則僅把若用軟件啟動(dòng),則僅把TR0或或TR1置置“1”; 若用外中斷引腳電平啟動(dòng),則還需給外若用外中斷引腳電平啟動(dòng),則還需給外 引腳加啟動(dòng)電平。引腳加啟動(dòng)電平。32四四 定時(shí)器定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)器的4種工作方式種工作方式1 方式方式033 方式方式0是一個(gè)是一個(gè)13位的定時(shí)器

14、位的定時(shí)器/計(jì)數(shù)器,計(jì)數(shù)器,由由TL0的低的低5位和位和TH0的的8位組成。位組成。 定時(shí)時(shí)間為定時(shí)時(shí)間為T(mén)=12*(213-a)/fosc s最大定時(shí)時(shí)間:最大定時(shí)時(shí)間:M=213=8192T34例例7:已知晶振頻率:已知晶振頻率fosc=6MHZ,若使用,若使用T0方式方式0產(chǎn)生產(chǎn)生10ms定時(shí)中斷,試對(duì)定時(shí)中斷,試對(duì)T0進(jìn)行初進(jìn)行初始化編程。始化編程。 MOV TH0,#63H MOV TL0,#18H SETB TR0 MOV IE ,#82H RET35例:例:T0工作于方式工作于方式0,要求在,要求在P1.0引腳上產(chǎn)生引腳上產(chǎn)生周期為周期為2ms的方波輸出的方波輸出(fosc=6M

15、HZ) ORG 0000H AJMP MAIN ORG 000BH AJMP INQP ORG 0030HMAIN: MOV TMOD, #00H MOV TH0, #0F0H MOV TL0, #0CH SETB TR0 ;啟動(dòng);啟動(dòng)T0 SETB ET0 ;允許;允許T0中斷中斷 SETB EA ;開(kāi)放;開(kāi)放CPU中斷中斷 AJMP $ ;定時(shí)中斷等待;定時(shí)中斷等待36 ORG 4000H ;中斷服務(wù)程序;中斷服務(wù)程序INQP: MOV TH0, #0F0H ;重寫(xiě)定時(shí)常數(shù);重寫(xiě)定時(shí)常數(shù) MOV TL0, #0CH CPL P1.0 ;P1.0變反輸出變反輸出 RETI 372 方式方式1

16、 方式方式1是一個(gè)是一個(gè)16位定時(shí)器位定時(shí)器/計(jì)數(shù)器,結(jié)構(gòu)計(jì)數(shù)器,結(jié)構(gòu)和操作方式與方式和操作方式與方式0基本相同。定時(shí)時(shí)間為基本相同。定時(shí)時(shí)間為T(mén)=12*(216-a)/fosc s最大定時(shí)時(shí)間:最大定時(shí)時(shí)間:M=216=65536T38例:設(shè)例:設(shè)fosc=12MHz,T0工作于方式工作于方式1,產(chǎn)生,產(chǎn)生50ms定時(shí)中斷,定時(shí)中斷,TF0為高級(jí)中斷源。試為高級(jí)中斷源。試編寫(xiě)主程序中的初試化程序和中斷服務(wù)程編寫(xiě)主程序中的初試化程序和中斷服務(wù)程序,使序,使P1.0產(chǎn)生周期為產(chǎn)生周期為1秒的方波。秒的方波。MAIN:MOV SP, #EFH MOV TH0, #3CH MOV TL0, #0B0

17、H MOV TMOD , #1 MOV IP, #2 39 MOV IE, #82H SETB TR0 MOV 30H, #0AHPTF0:ORL TL0, #0B0H;中斷服務(wù)程序中斷服務(wù)程序 MOV TH0, #3CH DJNZ 30H, PTF0R MOV 30H, #0AH CPL P1.0PTF0R:RETI40用查詢法:用查詢法: MOV 30H, #0AH MOV TH0, #3CH MOV TL0, #0B0H MOV TMOD, #1 SETB TR0L2: JBC TF0, L1 SJMP L2L1: MOV TH0, #3CH MOV TL0, #0B0H41 DJNZ

18、30H, L2 MOV 30H, #0AH CPL P1.0 SJMP L2423 方式方式2 方式方式2是能重置初值的是能重置初值的8位定時(shí)器位定時(shí)器/計(jì)數(shù)器,計(jì)數(shù)器,TL0作為作為8位計(jì)數(shù)器,位計(jì)數(shù)器,TH0作為計(jì)數(shù)初值寄存器。適于用做較精作為計(jì)數(shù)初值寄存器。適于用做較精確的定時(shí)脈沖信號(hào)發(fā)生器。確的定時(shí)脈沖信號(hào)發(fā)生器。 定時(shí)時(shí)間定時(shí)時(shí)間 T=12*(28-a)/fosc s 最大定時(shí)時(shí)間:最大定時(shí)時(shí)間:M=28=256T43振蕩器 12TLx (8位)TFx& 11C/_TC/_Tfosc中斷請(qǐng)求TxGATE_INTxTRxTHx(8位 )4重裝初值控制S1Tcy圖 2.15定時(shí)器

19、 /計(jì)數(shù)器方式2的邏輯結(jié)構(gòu)S2 定時(shí)器/計(jì)數(shù)器方式2的邏輯結(jié)構(gòu)44 MOV TMOD, #60H ; 設(shè)置設(shè)置T1為方式為方式2計(jì)數(shù)計(jì)數(shù) MOV TH1, #9CH ;賦初值;賦初值 MOV TL1, #9CH SETB TR1DE:JBC TF1, RE ;查詢計(jì)數(shù)溢出;查詢計(jì)數(shù)溢出 AJMP DERE: CPL P1.0 AJMP DE例:用定時(shí)器例:用定時(shí)器1在方式在方式2計(jì)數(shù),要求每計(jì)滿計(jì)數(shù),要求每計(jì)滿100次,將次,將P1.0端取反。端取反。外部計(jì)數(shù)信號(hào)由P3.5引入,每跳變一次計(jì)數(shù)器加1100=28-a ; a=156=9CH45振蕩器12TL0 (8位)&11C/_TC/

20、_Tfosc中斷請(qǐng)求T0GATE_TR0TH1(8位)S2S1TF0TF1TR1TcyTcyINTx圖2.16 定時(shí)器 /計(jì)數(shù)器方式 3的邏輯結(jié)構(gòu)S定時(shí)器定時(shí)器/計(jì)數(shù)器方式計(jì)數(shù)器方式3的邏輯結(jié)構(gòu)的邏輯結(jié)構(gòu) 4 方式方式346 方式方式3只適用于只適用于T0,T0分為兩個(gè)獨(dú)分為兩個(gè)獨(dú)立的立的8位計(jì)數(shù)器位計(jì)數(shù)器TL0和和TH0。一般。一般T1用用作串行口波特率發(fā)生器。作串行口波特率發(fā)生器。 最大定時(shí)時(shí)間:最大定時(shí)時(shí)間:M=28=256T例例 用定時(shí)器用定時(shí)器T0,分別產(chǎn)生兩個(gè)方波,一,分別產(chǎn)生兩個(gè)方波,一個(gè)周期為個(gè)周期為200 s,另一個(gè)周期為,另一個(gè)周期為400 s(fosc =9.216MHZ

21、)。47解:定時(shí)初值計(jì)算解:定時(shí)初值計(jì)算TL0=28-9.216*106*100*10-6/12 =256-76.8 =179.2 轉(zhuǎn)換十六進(jìn)制為轉(zhuǎn)換十六進(jìn)制為0B3HTH0=28-9.216*106*200*10-6/12 =256-153.6 =102.4 轉(zhuǎn)換十六進(jìn)制為轉(zhuǎn)換十六進(jìn)制為66H48 ORG 0000H AJMP MAIN ORG 000BH ;TL0中斷入口中斷入口 AJMP ITL0 ORG 001BH ;TH0中斷入口中斷入口 AJMP ITH0 ORG 0100HMAIN:MOV SP, #60H MOV TMOD, #03H 49 MOV TL0, #0B3H MOV

22、 TH0, #66H SETB TR0 ;啟動(dòng);啟動(dòng)TL0初值初值 SETB TR1 ;啟動(dòng);啟動(dòng)TH0初值初值 SETB ET0 ;允許允許TL0中斷中斷 SETB ET1 ;允許允許TH0中斷中斷 SETB EA ;CPU中斷開(kāi)放中斷開(kāi)放 AJMP $ 50 ORG 0200HITL0:MOV TL0, #0B3H CPL P1.0 ;輸出方波輸出方波200 s RETIITH0:MOV TH0, #66H CPL P1.1 ;輸出方波輸出方波400 s RETI51五五 門(mén)控位的應(yīng)用門(mén)控位的應(yīng)用GATE位是控制外部輸入脈沖對(duì)定時(shí)計(jì)數(shù)器的位是控制外部輸入脈沖對(duì)定時(shí)計(jì)數(shù)器的控制。當(dāng)為控制。當(dāng)

23、為“1”時(shí),允許外部輸入電平控制時(shí),允許外部輸入電平控制啟、停定時(shí)器。利用這個(gè)特性可測(cè)量外部輸啟、停定時(shí)器。利用這個(gè)特性可測(cè)量外部輸入脈沖的寬度入脈沖的寬度。例:利用T0門(mén)控位測(cè)試INT0引腳上出現(xiàn)的正脈沖的寬度,將所測(cè)得值高位存入片內(nèi)71H單元,低位存入片內(nèi)70H單元。(fosc=12MHz)測(cè)試時(shí),應(yīng)在/INT0為低電平時(shí),設(shè)TR0為1;當(dāng)/INT0變高時(shí),啟動(dòng)計(jì)數(shù);當(dāng)/INT0再變低時(shí),停止計(jì)數(shù)。該計(jì)數(shù)值即被測(cè)正脈沖寬度。52MOV TMOD , #09H;T0定時(shí)器方式,GATE=1MOV TL0, #00HMOV TH0, #00HMOV R0, #70HJB P3.2, $ ;等待

24、P3.2變低SETB TR0 ;啟動(dòng)T0準(zhǔn)備工作JNB P3.2, $ ;等待P3.2變高JB P3.2, $ ;等待P3.2再次變低CLR TR0 ;停止計(jì)數(shù)MOV R0, TL0 ;存放計(jì)數(shù)低字節(jié)INC R0MOV R0, TH0 ;存放計(jì)數(shù)高字節(jié)SJMP $ 534-3 串行接口串行接口UART一 兩種基本的通信方式 0 1 0 0 1 0 0 1D0D1D2D3D4D5D6D7狀態(tài)控制(選通)計(jì)算機(jī)計(jì)算機(jī)(或外設(shè)) 0 1 0 0 1 0 0 1(a)8T計(jì)算機(jī)計(jì)算機(jī)計(jì)算機(jī)(或外設(shè))(b).(a) 并行通信;(b) 串行通信54二串行通信傳輸方式ASSB(a)(b)(c)ABAB(a)

25、 單工方式;(b) 半雙工方式;(c) 全雙工方式55三串行通信兩種基本方式1異步通信異步通信中數(shù)據(jù)或字符是一幀一幀傳送。幀即為一個(gè)字符的完整通信格式,又稱(chēng)幀格式。在幀格式中,一個(gè)字符由4部分組成:起始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位。 串行異步傳送的字符格式562 同步通信 數(shù)據(jù)或字符開(kāi)始處是由一同步字符來(lái)指示,并由時(shí)鐘實(shí)現(xiàn)發(fā)送端和接收端同步。四 波特率(Baud rate) 波特率就是數(shù)據(jù)的傳送速率,即每秒鐘傳送的二進(jìn)制位數(shù),單位為位/秒。 要求發(fā)送端與接收端的波特率必須一致。574-3-1 串行接口的組成和特性 51系列單片機(jī)的串行口是全雙工異步全雙工異步串行通信接口。一 串行口結(jié)構(gòu)1 波

26、特率發(fā)生器 主要由T1、T2及內(nèi)部的一些控制開(kāi)關(guān)和分頻器組成。提供串行口的時(shí)鐘信號(hào)即TCLK、RCLK。58EAESSM0 SM1 SM2 REN TB8 RB8TIRI波波特特率率發(fā)發(fā)生生器器發(fā)送SBUFTI 串行口 (TX) RI 控制邏輯 (RX)接收SBUF串串行行口口中中斷斷T TX XC CL LK KR RX XC CL LK KT TX XD DR RX XD D內(nèi)內(nèi)部部總總線線I IE ES SC CO ON N串行口結(jié)構(gòu)框圖592 串行口的內(nèi)部包含串行數(shù)據(jù)緩沖寄存器SBUF數(shù)據(jù)接收緩沖器(只讀出不寫(xiě)入)和數(shù)據(jù)發(fā)送緩沖器(只寫(xiě)入不讀出)。物理上隔離,共用一個(gè)地址( 99H )

27、。串行發(fā)送時(shí),從片內(nèi)總線向發(fā)送緩沖器寫(xiě)入數(shù)據(jù); 即MOV SBUF,A串行接收時(shí),從接收緩沖器讀出數(shù)據(jù)到片內(nèi)總線。 即MOV A,SBUF串行口控制寄存器60串行數(shù)據(jù)輸入/輸出引腳接收方式下,串行數(shù)據(jù)從RXD(P3.0)輸入。串行口內(nèi)部在接收緩沖器之前還有移位寄存器,構(gòu)成串行接收雙緩沖結(jié)構(gòu)。避免數(shù)據(jù)接收重疊。發(fā)送方式下,串行數(shù)據(jù)從TXD(P3.1)輸出。串行口控制邏輯61二串行口控制1 串行口控制寄存器SCON(98H) SM0和SM1SM0SM1 SM2 REN TB8 RB8TIRISM0 SM1工作方式功 能波特率0 0 0擴(kuò)展移位寄存器 fosc/120 1 18位UART由定時(shí)器控制

28、1 0 29位UARTfosc/32 fosc/641 1 39位UART由定時(shí)器控制62SM2 方式2和方式3的多機(jī)通信控制位方式0,SM2=0。方式1,若SM2=1,只有接收到有效停止位,接收中斷RI才置1。方式2和方式3中,如如SM2=1,則接收到的第9位數(shù)據(jù)(RB8)為0時(shí)不啟動(dòng)接收中斷標(biāo)志RI(即RI=0),并且將接收到的前8位數(shù)據(jù)丟棄;RB8為1時(shí),才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI,產(chǎn)生中斷請(qǐng)求。當(dāng)當(dāng)SM2=0時(shí)時(shí),則不論第9位數(shù)據(jù)為0或1,都將前8位數(shù)據(jù)裝入SBUF中,并產(chǎn)生中斷請(qǐng)求。該功能用于多機(jī)通信中。63REN 允許串行接收位 1允許接收;0禁止接收 由軟件置

29、1或清0,相當(dāng)于串行接收的開(kāi)關(guān)。TB8 發(fā)送數(shù)據(jù)D8位 在方式2和方式3時(shí),TB8為所要發(fā)送的第9位數(shù)據(jù)。在多機(jī)通信中,以TB8位的狀態(tài)表示主機(jī)發(fā)送的是地址還是數(shù)據(jù):TB8=0為數(shù)據(jù),TB8=1為地址;也可用作數(shù)據(jù)的奇偶校驗(yàn)位。該位由軟件置位或復(fù)位。64RB8 接收數(shù)據(jù)D8位 在方式2和方式3時(shí),接收到的第9位數(shù)據(jù),可作為奇偶校驗(yàn)位或地址幀或數(shù)據(jù)幀的標(biāo)志。方式1時(shí),若SM2=0,則RB8是接收到的停止位。在方式0時(shí),不使用RB8位。TI 發(fā)送中斷標(biāo)志 在方式0時(shí),當(dāng)發(fā)送數(shù)據(jù)第8位結(jié)束后,或在其它方式發(fā)送停止位后,由內(nèi)部硬件使TI置位,向CPU請(qǐng)求中斷。CPU在響應(yīng)中斷后,必須用軟件清零。此外,

30、TI也可供查詢使用。65RI接收中斷標(biāo)志位 在方式0時(shí),當(dāng)接收數(shù)據(jù)的第8位結(jié)束后,或在其它方式接收到停止位的中間時(shí)由內(nèi)部硬件使RI置位,向CPU請(qǐng)求中斷。在CPU響應(yīng)中斷后,也必須用軟件清零。RI也可供查詢使用。662 特殊功能寄存器PCONSMOD位是串行口波特率系數(shù)控制位,為1時(shí)使波特率加倍。其余位是掉電方式控制位,與串行口無(wú)關(guān)。SMOD674-3-2串行接口的工作原理一 方式01 方式0為同步移位寄存器輸入/輸出方式,常用于擴(kuò)展并行I/O口。2 數(shù)據(jù)由RXD串行輸入/輸出,TXD輸出移位脈沖。3 數(shù)據(jù)傳輸波特率固定為fosc/12。4 接收/發(fā)送的是8位數(shù)據(jù),傳輸時(shí)低位在前。68輸出:輸

31、出: 當(dāng)執(zhí)行寫(xiě)SBUF的指令時(shí)(MOV SBUF,A),啟動(dòng)串行數(shù)據(jù)發(fā)送。從低位開(kāi)始串行輸出。當(dāng)完成一個(gè)字節(jié)的輸出后就停止移位,并置位TI。 輸入:輸入: 在REN=1,RI=0時(shí)啟動(dòng)串行口接收。當(dāng)外部移位寄存器內(nèi)容移入內(nèi)部移位寄存器,并寫(xiě)入SBUF,則置位RI,停止移位,完成一個(gè)字節(jié)的輸入。注意:每當(dāng)發(fā)送或接收完8位數(shù)據(jù)時(shí),由硬件將發(fā)送中斷TI或接收中斷RI標(biāo)志置“1”;CPU響應(yīng)TI或RI中斷請(qǐng)求時(shí),不會(huì)清除標(biāo)志,必須由軟件清“0”.69二 方式11 方式1時(shí),串行口為10位通用異步接口。2 數(shù)據(jù)傳輸波特率由定時(shí)/計(jì)數(shù)器T1和T2的溢出決定,由程序設(shè)定。 當(dāng)T2CON中RCLK和TCLK置

32、位時(shí),由T2作接收/發(fā)送的波特率發(fā)生器;當(dāng)RCLK和TCLK都為0時(shí),由T1作接收/發(fā)送的波特率發(fā)生器。3 數(shù)據(jù)從引腳TXD端輸出,從引腳RXD輸入。70發(fā)送發(fā)送 當(dāng)數(shù)據(jù)寫(xiě)入發(fā)送緩沖器時(shí),啟動(dòng)發(fā)送器開(kāi)始發(fā)送。8位數(shù)據(jù)發(fā)送完,置位TI=1,并申請(qǐng)中斷,通知CPU可發(fā)送下一個(gè)數(shù)據(jù)。接收接收 在REN=1的前提下,確認(rèn)是真正起始位“0”后,開(kāi)始接收一幀數(shù)據(jù)。當(dāng)RI=0且SM2=0時(shí),數(shù)據(jù)被接收。71三 方式2和方式31 CPU向發(fā)送緩沖器寫(xiě)入數(shù)據(jù)就啟動(dòng)串行口發(fā)送。發(fā)送完畢,使TI=1。2 接收時(shí),先置REN為“1”,將RI清“0”。再根據(jù)SM2狀態(tài)和所接收到RB8狀態(tài)決定串口在信息到來(lái)后是否會(huì)使RI

33、=1,申請(qǐng)中斷,接收數(shù)據(jù)。當(dāng)SM2=0,不管RB8狀態(tài),將RI置1串口接收當(dāng)SM2=1, RB8=1時(shí),多機(jī)通信,接收信息為地 址,將RI置1串口接收 RB8=0時(shí),接收信息為數(shù)據(jù),但不發(fā)給本從機(jī),此時(shí)RI不置1數(shù)據(jù)丟失724-3-3 波特率一 方式0:波特率=振蕩器頻率/12二 方式2:波特率=2SMOD*振蕩器頻率/64三 方式1、3(T1產(chǎn)生波特率):波特率=2SMOD*振蕩器頻率/32*12(256-(TH1)注:記住當(dāng)振蕩器頻率選用11.0592MHZ時(shí),對(duì)于常用波特率,能正確計(jì)算T1的初值。734-3-4 多機(jī)通信原理在主從式多機(jī)系統(tǒng)中: 1主機(jī)發(fā)出的信息有兩類(lèi)。一類(lèi)為地址,用來(lái)確

34、定需要和主機(jī)通信的從機(jī),特征是串行傳送的第9位數(shù)據(jù)為1;另一類(lèi)是數(shù)據(jù),特征是串行傳送的第9位數(shù)據(jù)為0。2對(duì)從機(jī)來(lái)說(shuō),在接收時(shí),若RI=0,則只要SM2=0,接收總能實(shí)現(xiàn);而若SM2=1,則發(fā)送的第9位TB8必須為1接收才能進(jìn)行。741 主機(jī)首先發(fā)出要求通信的從機(jī)地址信號(hào)。此時(shí),所有從機(jī)的SM2都為“1”,所有從機(jī)均收到地址信號(hào)。2 從機(jī)判斷主機(jī)發(fā)出的地址信號(hào)是否與本從機(jī)號(hào)相符。相符的從機(jī)SM2“0”,反之為“1”。3 主機(jī)發(fā)送數(shù)據(jù)幀。僅SM2=0的從機(jī)可收到。754-3-5 串行口的應(yīng)用和編程一串行口應(yīng)用同一印板內(nèi),兩個(gè)單片機(jī)串行口可直接通信。單片機(jī)與PC機(jī)之間利用串行口通信,必須進(jìn)行電平轉(zhuǎn)換。二串行口編程串行口初始化編程: 選擇串行口工作方式,波特率,允許串行口中斷。即對(duì)SCON、PCON、TMOD、TCON、TH1、TL1、IE、IP、SBUF編程。76例:編寫(xiě)程序,功能為對(duì)串行口初始化為方式1輸入/輸出,fosc=11.0592MHZ,波特率為9600,先在串行口上輸出字符串“MCS-51”,接著讀串行口上輸入的字符,又將該字符從串行口上輸出。 MOV TMOD, #20H MOV TH1, #0FDH MOV TL1, #0FDH SETB TR1 MOV SCON, #52H MOV R4, #0 MOV DPTR, #TSAB77LP1: MOV A, R4 MOVC

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論