




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、單片機第四章外圍模塊1第1頁,共106頁,2022年,5月20日,3點1分,星期二4-1 并行口及其應(yīng)用51系列單片機的并行口,按特性可分類為:單一的準雙向口(如89C52的P1.2P1.7)多功能復(fù)用的準雙向口(如89C52的P1.0、P1.1,P3.0P3.7)可作地址總線輸出口的準雙向口(P2)可作地址/數(shù)據(jù)總線口的三態(tài)雙向口(P0)2第2頁,共106頁,2022年,5月20日,3點1分,星期二每個I/O線均由鎖存器,輸出電路和輸入緩沖器組成。每一條口線可獨立用作輸入和輸出。作輸出時可鎖存數(shù)據(jù),輸入時可緩沖數(shù)據(jù)。CPU對口的讀操作有兩種:讀修改寫操作(讀口鎖存器狀態(tài))例:ANL P0,A
2、 ;(P0)(P0)(A) ORL P0,#data ;(P0)(P0)data DEC P0 ;(P0)(P0) -1讀引腳操作(讀口引腳上外部輸入信息)例 MOV A,P13第3頁,共106頁,2022年,5月20日,3點1分,星期二4第4頁,共106頁,2022年,5月20日,3點1分,星期二4-1-1 P0 口 P0口是一個三態(tài)雙向口,可作為地址/數(shù)據(jù)分時復(fù)用口,也可作為通用I/O接口。 其1位的結(jié)構(gòu)原理如下圖所示。P0口由8個這樣的電路組成。5第5頁,共106頁,2022年,5月20日,3點1分,星期二P0口1位結(jié)構(gòu)圖起輸出鎖存作用,8個鎖存器構(gòu)成了SFRP0V1、V2組成輸出驅(qū)動器
3、,以增大帶負載能力三態(tài)門1是引腳輸入緩沖器讀鎖存器端口6第6頁,共106頁,2022年,5月20日,3點1分,星期二 2地址/數(shù)據(jù)分時復(fù)用功能 當P0口作為地址/數(shù)據(jù)分時復(fù)用總線時,可分為兩種情況:一種是從P0口輸出地址或數(shù)據(jù),另一種是從P0口輸入數(shù)據(jù)。 7第7頁,共106頁,2022年,5月20日,3點1分,星期二在訪問片外存儲器而需從P0口輸出地址或數(shù)據(jù)信號時,控制信號應(yīng)為高電平“1”,使轉(zhuǎn)換開關(guān)MUX把反相器4的輸出端與V1接通,同時把與門3打開。1)當?shù)刂坊驍?shù)據(jù)為“1”時,經(jīng)反相器4使V1截止,而經(jīng)與門3使V2導(dǎo)通,P0.x引腳上出現(xiàn)相應(yīng)的高電平“1”; 2)當?shù)刂坊驍?shù)據(jù)為0時,經(jīng)反相
4、器4使V1導(dǎo)通而V2截止,引腳上出現(xiàn)相應(yīng)的低電平0。這樣就將地址/數(shù)據(jù)的信號輸出。8第8頁,共106頁,2022年,5月20日,3點1分,星期二3通用I/O接口功能 當P0口作為通用I/O口使用,在CPU向端口輸出數(shù)據(jù)時,對應(yīng)的控制信號為0,轉(zhuǎn)換開關(guān)把輸出級與鎖存器Q端接通,同時因與門3輸出為0使V2截止,此時,輸出級是漏極開路電路。當寫脈沖加在鎖存器時鐘端CLK上時,與內(nèi)部總線相連的D端數(shù)據(jù)取反后出現(xiàn)在Q端,又經(jīng)輸出V1反相,在P0引腳上出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。當要從P0口輸入數(shù)據(jù)時,引腳信息仍經(jīng)輸入緩沖器進入內(nèi)部總線。9第9頁,共106頁,2022年,5月20日,3點1分,星期二總
5、之:一 P0口作為一般I/O口使用 1 P0口用作輸出口:必須外接上拉電阻,才有高電平輸出。2 P0口作輸入口:先向端口鎖存器寫入“1”。二 P0口作為地址/數(shù)據(jù)總線使用1 以P0口引腳輸出低8位地址或數(shù)據(jù)信息2 由P0口輸入數(shù)據(jù)三 P0口可驅(qū)動8個LSTTL電路10第10頁,共106頁,2022年,5月20日,3點1分,星期二4-1-2 P1口(準雙向口)11第11頁,共106頁,2022年,5月20日,3點1分,星期二P1.0、P1.1為多功能雙向口, P1.2P1.7為單一功能準雙向口。P1口的第一功能是準雙向口,每一位可分別定義為輸入線或輸出線。輸出驅(qū)動部分由場效應(yīng)管V1與內(nèi)部上拉電阻
6、組成。當其某位輸出高電平時,可以提供上拉電流負載。12第12頁,共106頁,2022年,5月20日,3點1分,星期二P1的某一位作為輸入線時,該位的口鎖存器必須保持“1”。使輸出場效應(yīng)管截止。該引腳才可由內(nèi)部拉高電路拉成高電平,或由外部電路拉成低電平。P1口具有驅(qū)動4個LSTTL負載的能力。13第13頁,共106頁,2022年,5月20日,3點1分,星期二14第14頁,共106頁,2022年,5月20日,3點1分,星期二4-1-3 P2口(準雙向口)15第15頁,共106頁,2022年,5月20日,3點1分,星期二 當作為準雙向通用I/O口使用時: 控制信號使轉(zhuǎn)換開關(guān)接向左側(cè),鎖存器Q端經(jīng)反相
7、器3接V1,其工作原理與P1相同,也具有輸入、輸出、端口操作三種工作方式,負載能力也與P1相同。 16第16頁,共106頁,2022年,5月20日,3點1分,星期二1 系統(tǒng)中外接程序存儲器時:P2口輸出程序存儲器的高8位地址,不作I/O口使用。2 系統(tǒng)中無外接程序存儲器,而擴展有片外RAM的系統(tǒng)中: 片外RAM的容量256B:P2口仍做輸入/輸出口使用。使用R0或R1作地址指針。片外RAM的容量256B : P2口不能做輸入/輸出口,而做系統(tǒng)擴展的高8位地址總線口使用。使用DPTR、P2R0、P2R1作地址指針。 17第17頁,共106頁,2022年,5月20日,3點1分,星期二4-1-4 P
8、3口(準雙向口)18第18頁,共106頁,2022年,5月20日,3點1分,星期二 P3口是一多功能口,既做準雙向口又做特殊輸入輸出口。1 做通用I/O口使用: P3口做輸入使用,應(yīng)由軟件向口鎖存器寫“1”。19第19頁,共106頁,2022年,5月20日,3點1分,星期二2 做第二功能使用: 某位做第二功能使用該位D鎖存器Q應(yīng)被硬件自動置“1”。 P3.0 RXD P3.5 T1 P3.1 TXD (出) P3.6 WR(出) P3.2 INT0 P3.7 RD(出) P3.3 INT1 P3.4 T03 P3口具有驅(qū)動4個LSTTL負載的能力。20第20頁,共106頁,2022年,5月20
9、日,3點1分,星期二I/O端口的操作方式:(1)輸出數(shù)據(jù)方式:CPU通過一條數(shù)據(jù)傳送指令就可以把輸出數(shù)據(jù)寫入P0P3的端口鎖存器,然后通過輸出驅(qū)動器送到端口引腳線。例如,下面的指令均可在P0口輸出數(shù)據(jù)。 MOV P0, A ANL P0, #data ORL P0, A(2)讀端口數(shù)據(jù)方式: CPU讀入的這個數(shù)據(jù)并非端口引腳線上的數(shù)據(jù)。讀端口數(shù)據(jù)可以直接讀端口。例如,下面的指令均可以從P1口輸入數(shù)據(jù)。 MOV A, P1 MOV 20H, P1 MOV R0, P1 MOV R0, P121第21頁,共106頁,2022年,5月20日,3點1分,星期二(3)讀端口引腳方式:讀端口引腳方式可以從
10、端口引腳上讀入信息。在這種方式下,CPU首先必須使欲讀端口引腳所對應(yīng)的鎖存器置1,然后才能讀端口引腳。因此,用戶在讀引腳時必須先置位鎖存器后讀,連續(xù)使用兩條指令。例如,下面的程序可以讀P1引腳上的低4位信號。 MOV P1, #0FH ; 置位P1引腳的低4位 MOV A, P1 ; 讀P1引腳上的低4位信號送累加器A22第22頁,共106頁,2022年,5月20日,3點1分,星期二4-1-5 并行口的應(yīng)用1 外接蜂鳴器2 利用可控硅控制加熱電路3 BCD碼撥碼盤的接口 BCD碼撥碼盤構(gòu)造一個撥碼盤可以輸入1位十進制數(shù)據(jù)。撥碼盤撥到某個位置時,控制線分別與4位數(shù)據(jù)線中某幾位接通。接通線定義為“
11、1”,不通的線定義為“0”。23第23頁,共106頁,2022年,5月20日,3點1分,星期二4-2 定時器及其應(yīng)用定時器功能: 1 定時操作 2 測量外部輸入信號 3 定時輸出 4 監(jiān)視系統(tǒng)正常工作24第24頁,共106頁,2022年,5月20日,3點1分,星期二4-2-1定時器的結(jié)構(gòu)和工作原理1 定時器由一個N位計數(shù)器、計數(shù)時鐘源控制電路、狀態(tài)和控制寄存器等組成。 2 計數(shù)脈沖有兩個來源:外部的脈沖源系統(tǒng)的時鐘振蕩器。內(nèi)部時鐘外部時鐘N位計數(shù)器TFTMOD TCON中斷25第25頁,共106頁,2022年,5月20日,3點1分,星期二3 用作定時器時,每經(jīng)過一個機器周期,計數(shù)器自動加1,直
12、到計數(shù)溢出;用作計數(shù)器時,外部時鐘脈沖加在定時器的外輸入端T0(P3.4)或T1(P3.5),每出現(xiàn)一次負跳變,計數(shù)器加1。4 兩個模擬開關(guān),左邊決定定時/計數(shù)器的工作狀態(tài),右邊決定脈沖源是否加在計數(shù)器的輸入端。5 16位的計數(shù)器由兩個8位SFR TH和TL組成。6定時器工作不占用CPU時間,除非定時器/計數(shù)器溢出,才能中斷CPU的當前操作。26第26頁,共106頁,2022年,5月20日,3點1分,星期二定時器/計數(shù)器T0、T1的結(jié)構(gòu)框圖27第27頁,共106頁,2022年,5月20日,3點1分,星期二4-2-2 定時器/計數(shù)器T0和T1一方式寄存器TMOD(89H)1 不能進行位尋址,只能
13、用字節(jié)尋址。復(fù)位時,TMOD所有位為0熟悉各位功能T1方式字段 T0方式字段GATEC/TM1MGATEC/TM1M028第28頁,共106頁,2022年,5月20日,3點1分,星期二 GATE門控位“1”:定時器的計數(shù)受外部引腳輸入電平的控制“0”:定時器的計數(shù)不受外部引腳輸入電平的控制 C/T功能選擇位“1”:計數(shù)功能 “ 0”:定時功能 M1M0工作方式選擇位29第29頁,共106頁,2022年,5月20日,3點1分,星期二 適于T0,兩個8位計數(shù)器M1M0工作方式方 式 說 明00013位定時器/計數(shù)器01116位定時器/計數(shù)器102具有自動重裝初值的8位定時器/計數(shù)器11330第30
14、頁,共106頁,2022年,5月20日,3點1分,星期二二 控制寄存器TCON(88H)1 既可字節(jié)尋址又可位尋址。復(fù)位時,TCON各位為0例:SETB TR1 ;啟動定時器T1工作熟悉各位功能D7 D6 D5 D4 D3 D2 D1 D08FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT031第31頁,共106頁,2022年,5月20日,3點1分,星期二TF1定時器/計數(shù)器T1的溢出標志位TR1定時器/計數(shù)器T1的運行控制位TF0定時器/計數(shù)器T0的溢出標志位TR0定時器/計數(shù)器T0的運行控制位IE1外部中斷1下降沿觸發(fā)標志位IE0外部中斷0下降沿
15、觸發(fā)標志位IT1外部中斷1觸發(fā)類型選擇位IT0外部中斷0觸發(fā)類型選擇位32第32頁,共106頁,2022年,5月20日,3點1分,星期二三 定時器/計數(shù)器的初始化 初始化即將控制字寫入定時器/計數(shù)器的過程。初始化一般步驟:1 寫入初值TH0、TL0或TH1、TL12 對TMOD賦值3 對IE賦值(有中斷產(chǎn)生時)4 若用軟件啟動,則僅把TR0或TR1置“1”; 若用外中斷引腳電平啟動,則還需給外 引腳加啟動電平。33第33頁,共106頁,2022年,5月20日,3點1分,星期二四 定時器/計數(shù)器的4種工作方式1 方式034第34頁,共106頁,2022年,5月20日,3點1分,星期二 方式0是一
16、個13位的定時器/計數(shù)器,由TL0的低5位和TH0的8位組成。 定時時間為T=12*(213-a)/fosc s最大定時時間:M=213=8192T35第35頁,共106頁,2022年,5月20日,3點1分,星期二例7:已知晶振頻率fosc=6MHZ,若使用T0方式0產(chǎn)生10ms定時中斷,試對T0進行初始化編程。 MOV TH0,#63H MOV TL0,#18H SETB TR0 MOV IE ,#82H RET36第36頁,共106頁,2022年,5月20日,3點1分,星期二例:T0工作于方式0,要求在P1.0引腳上產(chǎn)生周期為2ms的方波輸出(fosc=6MHZ) ORG 0000H AJ
17、MP MAIN ORG 000BH AJMP INQP ORG 0030HMAIN: MOV TMOD, #00H MOV TH0, #0F0H MOV TL0, #0CH SETB TR0 ;啟動T0 SETB ET0 ;允許T0中斷 SETB EA ;開放CPU中斷 AJMP $ ;定時中斷等待37第37頁,共106頁,2022年,5月20日,3點1分,星期二 ORG 4000H ;中斷服務(wù)程序INQP: MOV TH0, #0F0H ;重寫定時常數(shù) MOV TL0, #0CH CPL P1.0 ;P1.0變反輸出 RETI 38第38頁,共106頁,2022年,5月20日,3點1分,星期
18、二2 方式1 方式1是一個16位定時器/計數(shù)器,結(jié)構(gòu)和操作方式與方式0基本相同。定時時間為T=12*(216-a)/fosc s最大定時時間:M=216=65536T39第39頁,共106頁,2022年,5月20日,3點1分,星期二例:設(shè)fosc=12MHz,T0工作于方式1,產(chǎn)生50ms定時中斷,TF0為高級中斷源。試編寫主程序中的初試化程序和中斷服務(wù)程序,使P1.0產(chǎn)生周期為1秒的方波。MAIN:MOV SP, #EFH MOV TH0, #3CH MOV TL0, #0B0H MOV TMOD , #1 MOV IP, #2 40第40頁,共106頁,2022年,5月20日,3點1分,星
19、期二 MOV IE, #82H SETB TR0 MOV 30H, #0AHPTF0:ORL TL0, #0B0H;中斷服務(wù)程序 MOV TH0, #3CH DJNZ 30H, PTF0R MOV 30H, #0AH CPL P1.0PTF0R:RETI41第41頁,共106頁,2022年,5月20日,3點1分,星期二用查詢法: MOV 30H, #0AH MOV TH0, #3CH MOV TL0, #0B0H MOV TMOD, #1 SETB TR0L2: JBC TF0, L1 SJMP L2L1: MOV TH0, #3CH MOV TL0, #0B0H42第42頁,共106頁,20
20、22年,5月20日,3點1分,星期二 DJNZ 30H, L2 MOV 30H, #0AH CPL P1.0 SJMP L243第43頁,共106頁,2022年,5月20日,3點1分,星期二3 方式2 方式2是能重置初值的8位定時器/計數(shù)器,TL0作為8位計數(shù)器,TH0作為計數(shù)初值寄存器。適于用做較精確的定時脈沖信號發(fā)生器。 定時時間 T=12*(28-a)/fosc s 最大定時時間:M=28=256T44第44頁,共106頁,2022年,5月20日,3點1分,星期二定時器/計數(shù)器方式2的邏輯結(jié)構(gòu)45第45頁,共106頁,2022年,5月20日,3點1分,星期二 MOV TMOD, #60H
21、 ; 設(shè)置T1為方式2計數(shù) MOV TH1, #9CH ;賦初值 MOV TL1, #9CH SETB TR1DE:JBC TF1, RE ;查詢計數(shù)溢出 AJMP DERE: CPL P1.0 AJMP DE例:用定時器1在方式2計數(shù),要求每計滿100次,將P1.0端取反。外部計數(shù)信號由P3.5引入,每跳變一次計數(shù)器加1100=28-a ; a=156=9CH46第46頁,共106頁,2022年,5月20日,3點1分,星期二例:當P3.4引腳上的電平發(fā)生負跳變時, 從P1.0輸出一個500s的同步脈沖。請編程序?qū)崿F(xiàn)該功能。查詢方式,fosc=6MHz。47第47頁,共106頁,2022年,5
22、月20日,3點1分,星期二解:(1)模式選擇 選T0為模式2,外部事件計數(shù)方式。 當P3.4引腳上的電平發(fā)生負跳變時,T0計數(shù)器加1,溢出標志TF0置1;然后改變T0為500s定時工作方式,并使P1.0輸出由1變?yōu)?。T0定時到產(chǎn)生溢出,使P1.0輸出恢復(fù)高電平,T0又恢復(fù)外部事件計數(shù)方式。 如 圖所示。48第48頁,共106頁,2022年,5月20日,3點1分,星期二(2)計算初值 T0工作在外部事件計數(shù)方式,當計數(shù)到28時,再加1計數(shù)器就會溢出。設(shè)計數(shù)初值為X,當再出現(xiàn)一次外部事件時,計數(shù)器溢出。 則: X+1=28 X= 28 1=11111111B=0FFH T0工作在定時工作方式,設(shè)
23、晶振頻率為6MHz,500s相當于250個機器周期。因此,初值X為 (28X)2s=500s X=6=06H49第49頁,共106頁,2022年,5月20日,3點1分,星期二(3)程序清單START: MOV TMOD,#06H ;設(shè)置T0為模式2,外部計數(shù)方式 MOV TL0,#0FFH ;T0計數(shù)器初值 MOV TH0,#0FFH SETB TR0 ;啟動T0計數(shù) LOOP1:JBC TF0,PTFO1 ;查詢T0溢出標志, ;TF0=1時轉(zhuǎn),且清TF0=0 SJMP LOOP1 ; 50第50頁,共106頁,2022年,5月20日,3點1分,星期二 PTFO1:CLR TR0 ;停止計數(shù)
24、 MOV TMOD,#02H ;設(shè)置T0為模式2,定時方式 MOV TL0,#06H ;送初值,定時500s MOV TH0,#06H CLR P1.0 ; P1.0清0 SETB TR0 ;啟動定時500s LOOP2 : JBC TF0,PTFO2 ;查詢T0溢出標志, ;TF0=1時轉(zhuǎn),且清TF0=0 ; (第一個500s到否?) SJMP LOOP2 ;等待 PTFO2 : SETB P1.0 ; P1.0置1 CLR TR0 ;停止計數(shù) SJMP START51第51頁,共106頁,2022年,5月20日,3點1分,星期二定時器/計數(shù)器方式3的邏輯結(jié)構(gòu) 4 方式3TH052第52頁,
25、共106頁,2022年,5月20日,3點1分,星期二 方式3只適用于T0,T0分為兩個獨立的8位計數(shù)器TL0和TH0。一般T1用作串行口波特率發(fā)生器。 最大定時時間:M=28=256T例 用定時器T0,分別產(chǎn)生兩個方波,一個周期為200s,另一個周期為400 s(fosc =9.216MHZ)。53第53頁,共106頁,2022年,5月20日,3點1分,星期二解:定時初值計算TL0=28-9.216*106*100*10-6/12 =256-76.8 =179.2 轉(zhuǎn)換十六進制為0B3HTH0=28-9.216*106*200*10-6/12 =256-153.6 =102.4 轉(zhuǎn)換十六進制為
26、66H54第54頁,共106頁,2022年,5月20日,3點1分,星期二 ORG 0000H AJMP MAIN ORG 000BH ;TL0中斷入口 AJMP ITL0 ORG 001BH ;TH0中斷入口 AJMP ITH0 ORG 0100HMAIN:MOV SP, #60H MOV TMOD, #03H 55第55頁,共106頁,2022年,5月20日,3點1分,星期二 MOV TL0, #0B3H MOV TH0, #66H SETB TR0 ;啟動TL0初值 SETB TR1 ;啟動TH0初值 SETB ET0 ;允許TL0中斷 SETB ET1 ;允許TH0中斷 SETB EA
27、;CPU中斷開放 AJMP $ 56第56頁,共106頁,2022年,5月20日,3點1分,星期二 ORG 0200HITL0:MOV TL0, #0B3H CPL P1.0 ;輸出方波200s RETIITH0:MOV TH0, #66H CPL P1.1 ;輸出方波400s RETI57第57頁,共106頁,2022年,5月20日,3點1分,星期二五 門控位的應(yīng)用GATE位是控制外部輸入脈沖對定時計數(shù)器的控制。當為“1”時,允許外部輸入電平控制啟、停定時器。利用這個特性可測量外部輸入脈沖的寬度。例:利用T0門控位測試INT0引腳上出現(xiàn)的正脈沖的寬度,將所測得值高位存入片內(nèi)71H單元,低位存
28、入片內(nèi)70H單元。(fosc=12MHz)測試時,應(yīng)在/INT0為低電平時,設(shè)TR0為1;當/INT0變高時,啟動計數(shù);當/INT0再變低時,停止計數(shù)。該計數(shù)值即被測正脈沖寬度。58第58頁,共106頁,2022年,5月20日,3點1分,星期二MOV TMOD , #09H;T0定時器方式,GATE=1MOV TL0, #00HMOV TH0, #00HMOV R0, #70HJB P3.2, $ ;等待P3.2變低SETB TR0 ;啟動T0準備工作JNB P3.2, $ ;等待P3.2變高JB P3.2, $ ;等待P3.2再次變低CLR TR0 ;停止計數(shù)MOV R0, TL0 ;存放計
29、數(shù)低字節(jié)INC R0MOV R0, TH0 ;存放計數(shù)高字節(jié)SJMP $ 59第59頁,共106頁,2022年,5月20日,3點1分,星期二4-3 串行接口UART一 兩種基本的通信方式(a) 并行通信;(b) 串行通信60第60頁,共106頁,2022年,5月20日,3點1分,星期二二串行通信傳輸方式(a) 單工方式;(b) 半雙工方式;(c) 全雙工方式61第61頁,共106頁,2022年,5月20日,3點1分,星期二三串行通信兩種基本方式1異步通信異步通信中數(shù)據(jù)或字符是一幀一幀傳送。幀即為一個字符的完整通信格式,又稱幀格式。在幀格式中,一個字符由4部分組成:起始位、數(shù)據(jù)位、奇偶校驗位、停
30、止位。 串行異步傳送的字符格式62第62頁,共106頁,2022年,5月20日,3點1分,星期二2 同步通信 數(shù)據(jù)或字符開始處是由一同步字符來指示,并由時鐘實現(xiàn)發(fā)送端和接收端同步。四 波特率(Baud rate) 波特率就是數(shù)據(jù)的傳送速率,即每秒鐘傳送的二進制位數(shù),單位為位/秒。 要求發(fā)送端與接收端的波特率必須一致。63第63頁,共106頁,2022年,5月20日,3點1分,星期二4-3-1 串行接口的組成和特性 51系列單片機的串行口是全雙工異步串行通信接口。一 串行口結(jié)構(gòu)1 波特率發(fā)生器 主要由T1、T2及內(nèi)部的一些控制開關(guān)和分頻器組成。提供串行口的時鐘信號即TCLK、RCLK。64第64
31、頁,共106頁,2022年,5月20日,3點1分,星期二串行口結(jié)構(gòu)框圖65第65頁,共106頁,2022年,5月20日,3點1分,星期二注意:接收器是雙緩沖結(jié)構(gòu),在前一個字節(jié)被從接收緩沖器SBUF讀出之前,第二個字節(jié)即開始被接收(串行輸入至移位寄存器),但是,在第二個字節(jié)接收完畢而前一個字節(jié)CPU未讀取時,會丟失前一個字節(jié).66第66頁,共106頁,2022年,5月20日,3點1分,星期二2 串行口的內(nèi)部包含串行數(shù)據(jù)緩沖寄存器SBUF數(shù)據(jù)接收緩沖器(只讀出不寫入)和數(shù)據(jù)發(fā)送緩沖器(只寫入不讀出)。物理上隔離,共用一個地址( 99H )。當向SBUF發(fā)“寫”命令時(執(zhí)行MOV SBUF,A ),
32、即從片內(nèi)總線向發(fā)送SBUF寫入數(shù)據(jù),并開始由TXD引腳向外發(fā)送一幀數(shù)據(jù),發(fā)送完使TI=1。在滿足串行口接收中斷標志位RI(SCON.0)=0的條件下,置允許接收位REN(SCON.4)=1就會接收一幀數(shù)據(jù)進入移位寄存器,并裝載到接收SBUF中,同時使RI=1。當發(fā)讀SBUF命令時(執(zhí)行MOV A,SBUF),便由接收SBUF取出信息通過內(nèi)部總線送CPU。67第67頁,共106頁,2022年,5月20日,3點1分,星期二串行口控制寄存器串行數(shù)據(jù)輸入/輸出引腳接收方式下,串行數(shù)據(jù)從RXD(P3.0)輸入。串行口內(nèi)部在接收緩沖器之前還有移位寄存器,構(gòu)成串行接收雙緩沖結(jié)構(gòu)。避免數(shù)據(jù)接收重疊。發(fā)送方式下
33、,串行數(shù)據(jù)從TXD(P3.1)輸出。串行口控制邏輯68第68頁,共106頁,2022年,5月20日,3點1分,星期二二串行口控制1 串行口控制寄存器SCON(98H) SM0和SM1SM0SM1SM2RENTB8RB8TIRISM0 SM1工作方式功 能波特率0 0 0擴展移位寄存器fosc/120 1 18位UART由定時器控制1 0 29位UARTfosc/32 fosc/641 1 39位UART由定時器控制69第69頁,共106頁,2022年,5月20日,3點1分,星期二SM2 方式2和方式3的多機通信控制位方式0,SM2=0。方式1,若SM2=1,只有接收到有效停止位,接收中斷RI才
34、置1。方式2和方式3中,如SM2=1,則接收到的第9位數(shù)據(jù)(RB8)為0時不啟動接收中斷標志RI(即RI=0),并且將接收到的前8位數(shù)據(jù)丟棄;RB8為1時,才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI,產(chǎn)生中斷請求。當SM2=0時,則不論第9位數(shù)據(jù)為0或1,都將前8位數(shù)據(jù)裝入SBUF中,并產(chǎn)生中斷請求。該功能用于多機通信中。70第70頁,共106頁,2022年,5月20日,3點1分,星期二REN 允許串行接收位 1允許接收;0禁止接收 由軟件置1或清0,相當于串行接收的開關(guān)。 在串行通信接收控制過程中,如果滿足RI0和REN1(允許接收)的條件,就允許接收,一幀數(shù)據(jù)就裝載入接收SBUF中。T
35、B8 發(fā)送數(shù)據(jù)D8位 在方式2和方式3時,TB8為所要發(fā)送的第9位數(shù)據(jù)。在多機通信中,以TB8位的狀態(tài)表示主機發(fā)送的是地址還是數(shù)據(jù):TB8=0為數(shù)據(jù),TB8=1為地址;也可用作數(shù)據(jù)的奇偶校驗位。該位由軟件置位或復(fù)位。在方式0或方式1中,該為未用71第71頁,共106頁,2022年,5月20日,3點1分,星期二RB8 接收數(shù)據(jù)D8位 在方式2和方式3時,接收到的第9位數(shù)據(jù),可作為奇偶校驗位或地址幀或數(shù)據(jù)幀的標志。方式1時,若SM2=0,則RB8是接收到的停止位。在方式0時,不使用RB8位。TI 發(fā)送中斷標志 在方式0時,當發(fā)送數(shù)據(jù)第8位結(jié)束后,或在其它方式發(fā)送停止位后,由內(nèi)部硬件使TI置位,向C
36、PU請求中斷。意味著向CPU提供“發(fā)送緩沖器SBUF已空”的信息,CPU可以準備發(fā)送下一幀數(shù)據(jù)。CPU在響應(yīng)中斷后,必須用軟件清零。此外,TI也可供查詢使用。72第72頁,共106頁,2022年,5月20日,3點1分,星期二RI接收中斷標志位 在方式0時,當接收數(shù)據(jù)的第8位結(jié)束后,或在其它方式接收到停止位的中間時由內(nèi)部硬件使RI置位,向CPU請求中斷。表示一幀數(shù)據(jù)接收結(jié)束,并已裝入接收SBUF中,要求CPU取走數(shù)據(jù)。在CPU響應(yīng)中斷后,也必須用軟件清零。RI也可供查詢使用。73第73頁,共106頁,2022年,5月20日,3點1分,星期二2 特殊功能寄存器PCONSMOD位是串行口波特率系數(shù)控
37、制位,為1時使波特率加倍。其余位是掉電方式控制位,與串行口無關(guān)。SMOD74第74頁,共106頁,2022年,5月20日,3點1分,星期二4-3-2串行接口的工作原理一 方式01 方式0為同步移位寄存器輸入/輸出方式,常用于擴展并行I/O口。2 數(shù)據(jù)由RXD串行輸入/輸出,TXD輸出移位脈沖。3 數(shù)據(jù)傳輸波特率固定為fosc/12。4 接收/發(fā)送的是8位數(shù)據(jù),傳輸時低位在前。75第75頁,共106頁,2022年,5月20日,3點1分,星期二輸出: 當執(zhí)行寫SBUF的指令時(MOV SBUF,A),啟動串行數(shù)據(jù)發(fā)送。從低位開始串行輸出。當完成一個字節(jié)的輸出后就停止移位,并置位TI。 輸入: 在R
38、EN=1,RI=0時啟動串行口接收。當外部移位寄存器內(nèi)容移入內(nèi)部移位寄存器,并寫入SBUF,則置位RI,停止移位,完成一個字節(jié)的輸入。注意:每當發(fā)送或接收完8位數(shù)據(jù)時,由硬件將發(fā)送中斷TI或接收中斷RI標志置“1”;CPU響應(yīng)TI或RI中斷請求時,不會清除標志,必須由軟件清“0”.76第76頁,共106頁,2022年,5月20日,3點1分,星期二二 方式11 方式1時,串行口為10位通用異步接口。2 數(shù)據(jù)傳輸波特率由定時/計數(shù)器T1和T2的溢出決定,由程序設(shè)定。 當T2CON中RCLK和TCLK置位時,由T2作接收/發(fā)送的波特率發(fā)生器;當RCLK和TCLK都為0時,由T1作接收/發(fā)送的波特率發(fā)
39、生器。3 數(shù)據(jù)從引腳TXD端輸出,從引腳RXD輸入。77第77頁,共106頁,2022年,5月20日,3點1分,星期二發(fā)送 當數(shù)據(jù)寫入發(fā)送緩沖器時,啟動發(fā)送器開始發(fā)送。8位數(shù)據(jù)發(fā)送完,置位TI=1,并申請中斷,通知CPU可發(fā)送下一個數(shù)據(jù)。接收 在REN=1的前提下,確認是真正起始位“0”后,開始接收一幀數(shù)據(jù)。當RI=0且SM2=0時,數(shù)據(jù)被有效接收。將接收到的數(shù)據(jù)裝入串行口的SBUF,并置位RI.78第78頁,共106頁,2022年,5月20日,3點1分,星期二三 方式2和方式31 CPU向發(fā)送緩沖器寫入數(shù)據(jù)就啟動串行口發(fā)送。發(fā)送完畢,使TI=1。2 接收時,先置REN為“1”,將RI清“0”
40、。再根據(jù)SM2狀態(tài)和所接收到RB8狀態(tài)決定串口在信息到來后是否會使RI=1,申請中斷,接收數(shù)據(jù)。當SM2=0,不管RB8狀態(tài),將RI置1串口接收當SM2=1, RB8=1時,多機通信,接收信息為地 址,將RI置1串口接收 RB8=0時,接收信息為數(shù)據(jù),但不發(fā)給本從機,此時RI不置1數(shù)據(jù)丟失79第79頁,共106頁,2022年,5月20日,3點1分,星期二4-3-3 波特率一 方式0:波特率=振蕩器頻率/12二 方式2:波特率=2SMOD*振蕩器頻率/64三 方式1、3(T1產(chǎn)生波特率):波特率=2SMOD*振蕩器頻率/32*12(256-(TH1)注:記住當振蕩器頻率選用11.0592MHZ時
41、,對于常用波特率,能正確計算T1的初值。80第80頁,共106頁,2022年,5月20日,3點1分,星期二4-3-4 多機通信原理在主從式多機系統(tǒng)中: 1主機發(fā)出的信息有兩類。一類為地址,用來確定需要和主機通信的從機,特征是串行傳送的第9位數(shù)據(jù)為1;另一類是數(shù)據(jù),特征是串行傳送的第9位數(shù)據(jù)為0。2對從機來說,在接收時,若RI=0,則只要SM2=0,接收總能實現(xiàn);而若SM2=1,則發(fā)送的第9位TB8必須為1接收才能進行。81第81頁,共106頁,2022年,5月20日,3點1分,星期二1 主機首先發(fā)出要求通信的從機地址信號。此時,所有從機的SM2都為“1”,所有從機均收到地址信號。2 從機判斷主
42、機發(fā)出的地址信號是否與本從機號相符。相符的從機SM2“0”,反之為“1”。3 主機發(fā)送數(shù)據(jù)幀。僅SM2=0的從機可收到。82第82頁,共106頁,2022年,5月20日,3點1分,星期二4-3-5 串行口的應(yīng)用和編程一串行口應(yīng)用同一印板內(nèi),兩個單片機串行口可直接通信。單片機與PC機之間利用串行口通信,必須進行電平轉(zhuǎn)換。二串行口編程串行口初始化編程: 選擇串行口工作方式,波特率,允許串行口中斷。即對SCON、PCON、TMOD、TCON、TH1、TL1、IE、IP、SBUF編程。83第83頁,共106頁,2022年,5月20日,3點1分,星期二例1:編寫程序,功能為對串行口初始化為方式1輸入/輸
43、出,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, #TSAB84第84頁,共106頁,2022年,5月20日,3點1分,星期二LP1: MOV A, R4 MOVC A, A+DPTR JZ LP6LP3: JBC TI, LP2 SJMP LP3LP2: MOV SBUF, A INC R4 SJMP LP1LP6:
44、JBC RI, LP5 SJMP LP6LP5: MOV A, SBUFLP8:JBC TI, LP7 SJMP LP8LP7:MOV SBUF, A SJMP LP6TSAB:DB MCS-51 DB 0AH,0DH,0 85第85頁,共106頁,2022年,5月20日,3點1分,星期二例2:89C52串行口按雙工方式進行數(shù)據(jù)收發(fā),要求波特率為1200,串口工作在方式1。編寫有關(guān)的通信程序。設(shè)發(fā)送數(shù)據(jù)區(qū)的首地址為20H,接收數(shù)據(jù)區(qū)的首地址為40H,fosc為11.0592MHz。解:雙工通信要求收、發(fā)能同時進行。實際上,收、發(fā)操作主要是在串行接口進行,CPU只是把數(shù)據(jù)從接收緩沖器讀出和把數(shù)據(jù)
45、寫入發(fā)送緩沖器。 數(shù)據(jù)傳送用中斷方式進行,響應(yīng)中斷以后,通過檢測是RI置位還是TI置位來決定CPU是進行發(fā)送操作還是接收操作。發(fā)送和接收都通過調(diào)用子程序來完成。86第86頁,共106頁,2022年,5月20日,3點1分,星期二 主程序 MOV TMOD ,#20H ;T1設(shè)為模式2 MOV TL1 , #0E8H ; MOV TH1 ,#0E8H ; SETB TR1 ;啟動定時器1 MOV SCON ,#50H ;設(shè)置為方式1,REN=1 MOV R0 ,#20H ;發(fā)送數(shù)據(jù)區(qū)首址 MOV R1 ,#40H ;接收數(shù)據(jù)區(qū)首址 ACALL SOUT ;先輸出一個字符 SETB ES SETB
46、EA 中斷服務(wù)程序 ORG 0023H ;串行口中斷入口 AJMP SBR1 ;轉(zhuǎn)至中斷服務(wù)程序 ORG 0100H SBR1: JNB RI ,SEND ;TI=1,為發(fā)送中斷 ACALL SIN ;RI=1,為接收中斷 SJMP NEXT ;轉(zhuǎn)至統(tǒng)一的出口SEND: ACALL SOUT ;調(diào)用發(fā)送子程序NEXT: RETI ;中斷返回 87第87頁,共106頁,2022年,5月20日,3點1分,星期二發(fā)送子程序SOUT: CLR TI MOV A ,R0 ;取發(fā)送數(shù)據(jù)到A INC R0 ;修改發(fā)送數(shù)據(jù)指針 MOV SBUF ,A ;發(fā)送 RET ;返回接收子程序 SIN: CLR RI
47、MOV A ,SBUF ;讀出接收緩沖區(qū)內(nèi)容 MOV R1 ,A ;讀入接收緩沖區(qū) INC R1 ;修改接收數(shù)據(jù)指針 RET ;返回88第88頁,共106頁,2022年,5月20日,3點1分,星期二用串行口進行雙機異步通信例3:將甲機片內(nèi)RAM50H5FH單元中的數(shù)據(jù)塊從串行口輸出。定義在方式3下發(fā)送,TB8作奇偶校驗位。采用定時器1方式2作波特率發(fā)生器,波特率為1200,fosc=11.0592MHz。 使乙機從甲機接收16個字節(jié)數(shù)據(jù)塊,并存入片外3000H300FH單元。接收過程中要求判奇偶標志RB8。若出錯則置F0標志為1,反之為0,然后返回。89第89頁,共106頁,2022年,5月2
48、0日,3點1分,星期二甲機發(fā)送子程序 MOV TMOD,#20H MOV TL1, #0EBH MOV TH1, #0E8H SETB TR1 MOV SCON,#0C0H MOV R0, #50H MOV R7, #10HTRS:MOV A, R0 MOV C, P MOV TB8, C MOV SBUF, AWAIT:JNB TI,$ CLR TI INC R0 DJNZ R7,TRS RET90第90頁,共106頁,2022年,5月20日,3點1分,星期二乙機接收子程序 MOV TMOD,#20H MOV TL1,#0EBH MOV TH1,#0E8H SETB TR1 MOV SCON
49、,#0C0H MOV DPTR,#3000H MOV R7,#10H SETB RENWAIT:JNB RI,$ CLR RI MOV A,SBUF JNB PSW.0, PZ JNB RB8, ERR SJMP YESPZ: JB RB8,ERRYES:MOVX DPTR,A INC DPTR DJNZ R7,WAIT CLR PSW.5 RETERR:SETB PSW.5 RET注意:雙機通信時,兩機應(yīng)用相同的工作方式和波特率。91第91頁,共106頁,2022年,5月20日,3點1分,星期二4-3-6 RS232C總線和電平轉(zhuǎn)換器RS232C是由美國電子工業(yè)協(xié)會(EIA)正式公布的,在異
50、步串行通信中應(yīng)用最廣的標準總線(C表示此標準修改了三次)。它包括了按位串行傳輸?shù)碾姎夂蜋C械方面的規(guī)定,適用于短距離或帶調(diào)制解調(diào)器的通信場合。為了提高數(shù)據(jù)傳輸率和通信距離,EIA又公布了RS422,RS423和RS-485串行總線接口作準。92第92頁,共106頁,2022年,5月20日,3點1分,星期二 ELA RS-232C是目前最常用的串行接口標準,用于實現(xiàn)計算機與計算機之間、計算機與外設(shè)之間的數(shù)據(jù)通信。該標準的目的是定義數(shù)據(jù)終端設(shè)備(DTE)之間接口的電氣特性。一般的串行通信系統(tǒng)是指微機和調(diào)制解調(diào)器(modem),如圖。調(diào)制解調(diào)器叫數(shù)據(jù)電路終端設(shè)備(簡稱DCE)。 RS-232C提供了單
51、片機與單片機、單片機與PC機間串行數(shù)據(jù)通信的標準接口。通信距離可達到 15 m。93第93頁,共106頁,2022年,5月20日,3點1分,星期二RS232C接口的具體規(guī)定如下: (l)范圍 RS-232C標準適用于DCE和 DTE間的串行二進制通信,最高的數(shù)據(jù)速率為 19.2 kbs。如果不增加其他設(shè)備的話,RS-232C標準的電纜長度最大為15 m。(2) RS-232C的信號特性 RS-232C是在TTL集成電路之前研制的,規(guī)定+3V15V之間的任意電壓表示邏輯0電平,-3V15V之間的任意電壓表示邏輯1電平。94第94頁,共106頁,2022年,5月20日,3點1分,星期二(3) RS-232C接口信號及引腳說明基本的數(shù)據(jù)傳送信號 基本的數(shù)據(jù)傳送信號引腳有TXD,RXD,GND 3個。TXD為數(shù)據(jù)發(fā)送信號引腳。在不傳送數(shù)據(jù)時,為1。RXD為數(shù)據(jù)接收信號引腳。在無接收信號時,為1。GND為地信號引腳。GND是其他引腳信號的參考電位信號。 “在零調(diào)制解調(diào)器”連接中,最簡單的形式是只使用上述3個引腳95第95頁,共106頁,2022年,5月20日,3點
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林職業(yè)技術(shù)學(xué)院《文字學(xué)與漢字教育》2023-2024學(xué)年第二學(xué)期期末試卷
- 昆明理工大學(xué)津橋?qū)W院《過程控制系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西中醫(yī)藥大學(xué)《室內(nèi)設(shè)計與實踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 華中農(nóng)業(yè)大學(xué)《公司金融》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南吉利汽車職業(yè)技術(shù)學(xué)院《土木工程施工與概預(yù)算原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東云浮中醫(yī)藥職業(yè)學(xué)院《園藝生態(tài)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長春建筑學(xué)院《中學(xué)語文微型課訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 東南大學(xué)成賢學(xué)院《果樹栽培學(xué)各論》2023-2024學(xué)年第二學(xué)期期末試卷
- 扎蘭屯職業(yè)學(xué)院《高等化工熱力學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 忻州職業(yè)技術(shù)學(xué)院《地理信息系統(tǒng)原理與方法》2023-2024學(xué)年第二學(xué)期期末試卷
- 網(wǎng)絡(luò)營銷講義網(wǎng)絡(luò)營銷產(chǎn)品策略課件
- 《小型混凝土預(yù)制件標準化生產(chǎn)管理辦法》
- 六年級上冊英語教案-Culture 2 Going Green 第二課時 廣東開心英語
- 警察叔叔是怎樣破案的演示文稿課件
- 青年教師個人成長檔案
- 2021譯林版高中英語選擇性必修三課文翻譯
- 2022年華中科技大學(xué)博士研究生英語入學(xué)考試真題
- 《網(wǎng)店運營與管理》整本書電子教案全套教學(xué)教案
- 打印版 《固體物理教程》課后答案王矜奉
- 中考《紅星照耀中國》各篇章練習(xí)題及答案(1-12)
- Q∕GDW 11612.43-2018 低壓電力線高速載波通信互聯(lián)互通技術(shù)規(guī)范 第4-3部分:應(yīng)用層通信協(xié)議
評論
0/150
提交評論