第3章51基礎(chǔ)串行接口ppt課件_第1頁(yè)
第3章51基礎(chǔ)串行接口ppt課件_第2頁(yè)
第3章51基礎(chǔ)串行接口ppt課件_第3頁(yè)
第3章51基礎(chǔ)串行接口ppt課件_第4頁(yè)
第3章51基礎(chǔ)串行接口ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、3.4 MCS-51單片機(jī)串行接口單片機(jī)串行接口3.4.1 單片機(jī)的異步通訊單片機(jī)的異步通訊一、異步通訊表示圖一、異步通訊表示圖二、異步通訊數(shù)據(jù)格式二、異步通訊數(shù)據(jù)格式3.4.2 MCS-51的串行接口的串行接口一、一、51串口內(nèi)部構(gòu)造串口內(nèi)部構(gòu)造 51單片機(jī)的串口是規(guī)范的全雙工異步通訊接單片機(jī)的串口是規(guī)范的全雙工異步通訊接口。口。 對(duì)串口的運(yùn)用可采用中斷方式也可采用對(duì)串口的運(yùn)用可采用中斷方式也可采用查詢方式。查詢方式。 在運(yùn)用時(shí),只需設(shè)置相關(guān)存放器在運(yùn)用時(shí),只需設(shè)置相關(guān)存放器就可以很好的操作了:就可以很好的操作了: 第一步設(shè)置相關(guān)存放器:第一步設(shè)置相關(guān)存放器: IE(中斷、中斷、IP(優(yōu)先優(yōu)

2、先)、TMOD(方式方式) 、 PCON、 SCON(方式;方式; 第二步設(shè)置:波特率第二步設(shè)置:波特率 第三步讀寫:第三步讀寫:SBUF 一一 串口的運(yùn)用方法串口的運(yùn)用方法二串行接口的控制二串行接口的控制各位的定義為:復(fù)位后各位為各位的定義為:復(fù)位后各位為0 RI:讀標(biāo)志:讀標(biāo)志(當(dāng)有數(shù)時(shí),由硬件置當(dāng)有數(shù)時(shí),由硬件置1 TI:寫標(biāo)志:寫標(biāo)志(當(dāng)寫數(shù)后,由硬件置當(dāng)寫數(shù)后,由硬件置1 對(duì)于對(duì)于RI和和TI的置的置1,也是中斷的標(biāo)志,但,也是中斷的標(biāo)志,但CPU呼應(yīng)后,不會(huì)清呼應(yīng)后,不會(huì)清零。必需由軟件清零!零。必需由軟件清零!1串行口控制存放器串行口控制存放器SCONRB8: 在方式在方式2和方

3、式和方式3中,接納的第中,接納的第9位數(shù)據(jù)。位數(shù)據(jù)。TB8: 在方式在方式2和方式和方式3中,發(fā)送的第中,發(fā)送的第9位數(shù)據(jù)。位數(shù)據(jù)。 可作為奇偶校驗(yàn)位??勺鳛槠媾夹r?yàn)位。SM2: 用于多機(jī)通訊用于多機(jī)通訊(方式方式2和方式和方式3)的控制位,僅用于接納。的控制位,僅用于接納。 當(dāng)當(dāng)SM2=1,在,在RB8=1時(shí),才干接納到數(shù)據(jù)。時(shí),才干接納到數(shù)據(jù)。 普通運(yùn)用時(shí),普通運(yùn)用時(shí),SM2=0。REN: REN=1,允許接納,允許接納, REN=0,制止接納。,制止接納。二、串行口的二、串行口的4種任務(wù)方式種任務(wù)方式1)方式方式08位數(shù)據(jù)位數(shù)據(jù)I/O)2) 方式方式1(10位數(shù)據(jù)位數(shù)據(jù)3) 方式方式2、

4、3(11位數(shù)據(jù)位數(shù)據(jù) 闡明: 在方式0中,8位數(shù)據(jù)從RXD引腳發(fā)送, 或接納(D0先傳);TXD引腳只輸出移位 (同步)時(shí)鐘(頻率=fosc/12)。 在方式1中, RXD腳為收,TXD腳為發(fā), 數(shù)據(jù)是按10位UART傳送的。 (1個(gè)起始0, 8個(gè)數(shù)據(jù)位,1個(gè)停頓1); 在方式2,3中, RXD腳為收,TXD腳為發(fā), 數(shù)據(jù)是按11位UART傳送的。 (1個(gè)起始0, 8個(gè)數(shù)據(jù)位+第9位,1個(gè)停頓1)。 三、波特率的設(shè)置三、波特率的設(shè)置1方式方式0的波特率的波特率 方式方式0的率等于單片機(jī)晶振頻率的的率等于單片機(jī)晶振頻率的1/12,即每,即每個(gè)機(jī)器周期接納個(gè)機(jī)器周期接納或發(fā)送一位數(shù)據(jù)?;虬l(fā)送一位數(shù)

5、據(jù)。2方式方式2的波特率的波特率3方式方式1和方式和方式3的波特率的波特率在方式在方式1、3中,波特率可由中,波特率可由T1定時(shí)器設(shè)置這種定時(shí)器設(shè)置這種方法用的最多,用到存放器有:方法用的最多,用到存放器有:TMOD:T1設(shè)設(shè)成方式成方式2,自動(dòng)重裝,自動(dòng)重裝, 0010,xxxxB或或0 x2x; PCON: 用到了用到了SMOD位位 D7位位 SMOD=1時(shí)加倍;時(shí)加倍; SMOD=0時(shí)不加倍。計(jì)算時(shí)不加倍。計(jì)算公式:公式:常用的常用的TH1,TL1的設(shè)置的設(shè)置4其他本卷須知其他本卷須知假設(shè)在中斷通訊:要設(shè)置假設(shè)在中斷通訊:要設(shè)置IE中的中的EA=1的同時(shí),的同時(shí),ES=1;根據(jù)實(shí)踐情況,

6、設(shè)優(yōu)先級(jí)根據(jù)實(shí)踐情況,設(shè)優(yōu)先級(jí)IP的各位;的各位;在位和在位和10位通訊中,讀寫數(shù)據(jù)均在位通訊中,讀寫數(shù)據(jù)均在SBUF中;中;在在11位通訊中,位數(shù)據(jù)位通訊中,位數(shù)據(jù)(讀寫讀寫)在在SBUF中中,第位在第位在 TB8或或RB8中中; 在有奇偶校驗(yàn)的通訊中在有奇偶校驗(yàn)的通訊中(11位通訊位通訊),PSW中的位送中的位送TB8; 例:發(fā)送:例:發(fā)送:88H ,在查詢方式時(shí):,在查詢方式時(shí): MOV A,#88H ;會(huì)影響會(huì)影響PSW的位的位 MOV TB8,P ;送奇偶位送奇偶位 MOV SBUF,A W1: JBC TI, END_SD ;等等TI=1 表示發(fā)完表示發(fā)完 SJMP W1;等待等待

7、 END_SD: .四、串口多機(jī)通訊四、串口多機(jī)通訊 串行口以方式2或方式3接納時(shí),假設(shè)SM2為“1,時(shí)可實(shí)現(xiàn)多機(jī)通訊。 3.4.3 通訊電平的轉(zhuǎn)換通訊電平的轉(zhuǎn)換單片機(jī)與單片機(jī)與PC機(jī)通訊時(shí),電平不是機(jī)通訊時(shí),電平不是TTL電平,而往往是電平,而往往是232電平。電平。普統(tǒng)統(tǒng)過公用芯片轉(zhuǎn)換。普統(tǒng)統(tǒng)過公用芯片轉(zhuǎn)換。串口通訊舉例串口通訊舉例例一例一, 采用查詢的方法實(shí)現(xiàn)采用查詢的方法實(shí)現(xiàn)PC機(jī)與單片機(jī)與單片機(jī)的通訊。知,機(jī)的通訊。知, 晶振頻率為晶振頻率為22.1184M,波特率為,波特率為9.6k。實(shí)現(xiàn):?jiǎn)?。?shí)現(xiàn):?jiǎn)?片機(jī)發(fā)送:片機(jī)發(fā)送:0到到9的數(shù)字的數(shù)字(ASCII),PC機(jī)接納該數(shù),機(jī)接納

8、該數(shù), 并顯示。并顯示。(用匯編編程用匯編編程)chsi_ck0: ;初始化串口初始化串口 mov TMOD,#21H ;0010,0001B T1:定時(shí)定時(shí),方式方式2 mov SCON,#50H ;0101,0000B 8UART 方式方式 mov TH1,#0FAH ;自動(dòng)重裝自動(dòng)重裝 mov TL1,#0FAH ;定時(shí)常數(shù)定時(shí)常數(shù) mov PCON,#00H ;SMOD=0不加不加倍倍 setb TR1 ;開開T1 ret set_numb: ;發(fā)送子程序發(fā)送子程序 mov r6,#10 ;設(shè)個(gè)數(shù)設(shè)個(gè)數(shù)(共共10個(gè)個(gè) mov b,#00h ;從從0開場(chǎng)開場(chǎng)con_sed: mov a,

9、b ;預(yù)備預(yù)備 orl a,#30h ;變成變成ASCII mov SBUF,a ;發(fā)送一個(gè)發(fā)送一個(gè)8位數(shù)據(jù)位數(shù)據(jù)went_s: JBC TI,is_snumb;TI=1,表示發(fā)完表示發(fā)完 sjmp went_s ;TI=0,等待等待is_snumb: lcall delay_0 ;等待一會(huì)等待一會(huì) inc b ;數(shù)據(jù)增數(shù)據(jù)增1 djnz r6,con_sed ;判別發(fā)完否判別發(fā)完否? ret main: ;主程序主程序 mov sp,#80h ;堆棧堆棧 mov ie,#00h ;關(guān)中斷關(guān)中斷 mov ip,#00h ; lcall chsi_ck0 ;初始化串口初始化串口re_sed: l

10、call set_numb ;發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)r_k1: jnb k1,re_sed ;查鍵查鍵k1=0在發(fā)送在發(fā)送 sjmp r_k1 ;未按鍵等待未按鍵等待 end 例二, 采用查詢的方法實(shí)現(xiàn)PC機(jī)與單片機(jī)的通訊。知, 晶振頻率為22.1184M,波特率為9.6k。實(shí)現(xiàn):PC 發(fā)送數(shù)據(jù), 單片機(jī)接納該數(shù)(顯示)并回送該數(shù)到PC。 (用匯編編程)red_numb: ;從串口讀數(shù) jb RI,is_numb ; sjmp red_numbis_numb: clr RI ;軟件清標(biāo)志 mov a,SBUF ;讀數(shù)據(jù) mov b,a ;存儲(chǔ)在B中 retsed_numb: ;發(fā)送數(shù)據(jù)到PC mov

11、 a,b mov SBUF,a ;發(fā)送數(shù)據(jù)w_snub: jbc TI,is_end_n ;查TI=1? sjmp w_snub ;TI=0 等待is_end_n: retmain: ;主程序入口 mov sp,#90h ;設(shè)堆棧 mov ie,#00h ;關(guān)中斷 mov ip,#00h lcall chsi_ck0 ;初始化串口con_red: lcall red_numb ;從串口讀數(shù) lcall disp_r_numb ;用數(shù)碼管顯示 mov led,b lcall disp_led ;用燈顯示數(shù)據(jù) lcall sed_numb ;發(fā)送數(shù)據(jù)到PC lcall sprak_on ;發(fā)聲 s

12、jmp con_red ;繼續(xù)發(fā)送數(shù)據(jù) end 例三例三, 采用中斷的方法實(shí)現(xiàn)采用中斷的方法實(shí)現(xiàn)PC機(jī)與單片機(jī)的通訊。知,機(jī)與單片機(jī)的通訊。知, 晶振頻率為晶振頻率為22.1184M,波特率為,波特率為9.6k。實(shí)現(xiàn):。實(shí)現(xiàn):PC 發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù), 單片機(jī)接納該數(shù)單片機(jī)接納該數(shù)(顯示顯示)并回送該數(shù)到并回送該數(shù)到PC。 (用匯編編寫用匯編編寫) org 0000h ;復(fù)位入口復(fù)位入口 ljmp main ;跳到主程序跳到主程序 org 0023H ljmp to_sbuf ;跳到串口跳到串口 org 0100hto_sbuf: ;串口中斷程序串口中斷程序 clr es ;關(guān)中斷關(guān)中斷 jb

13、RI, to_r_nub ;讀數(shù)據(jù)讀數(shù)據(jù) jb TI, to_w_nub ;發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù) retito_r_nub: jb RI,is_num ;RI=1時(shí),讀數(shù) sjmp red_numb ;RI=0時(shí),等待 is_num: clr RI ;軟件清標(biāo)志 mov a,SBUF ;讀數(shù)據(jù) mov b,a ;存儲(chǔ)在B中 ; lcall disp_r_numb ;可調(diào)用顯示子程序 lcall sed_numb ;發(fā)送數(shù)據(jù)到PC lcall sprak_on ;發(fā)聲 setb es reti ;硬件前往(清標(biāo)志)to_w_nub: setb es reti main: ;主程序入口 mov sp,

14、#90h ;設(shè)堆棧 mov ie,#00h ;關(guān)中斷 mov ip,#00h lcall sprak_on ;發(fā)聲 mov b,#00h lcall disp_r_numb ;顯示 lcall chsi_ck0 ;初始化串口 setb es ;開串口中斷 setb ea ;開總中斷 sjmp $ ;等待 end 例四【用C編寫的通訊程序】設(shè)晶振頻率為:22.1184MHz,波特率設(shè)為9.6K,實(shí)現(xiàn)PC及與單片機(jī)互通訊息如:?jiǎn)纹瑱C(jī)與PC機(jī)互發(fā)送0 x55667788。 /*-串口初始化-*/ void out_sbuf(void) /串口初始化 SCON=0 x50; TMOD |=0 x21; /9.6K波特率 PCON=0 x00; TL1=0 xfa; TH1=0 xfa; TR1=1; /*-用串口發(fā)單個(gè)字符-*/ void sendchar(unsigned char ch) while(!TI); TI = 0; SBUF=ch; TI=1; /*-用串口讀單個(gè)字符-*/unsigned char gethex (void) char c; while (!RI); c = SBUF; RI = 0; return (c); /串口練習(xí)部分 void read_PC(void) /0 x0a終了 unsigned cha

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論