版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章 單片機(jī)串行口的C51編程5.1 串行口基礎(chǔ)知識(shí) 5.1.1 串行口的結(jié)構(gòu) 5.1.2 有關(guān)的寄存器 5.1.3 串行口的工作方式5. 2 不同工作方式下的C51編程 5.2.1 工作方式0的C51 5.2.2 工作方式1的C51 5.2.3 工作方式2的C51 5.2.4 工作方式3的C515.3 串行口的C51編程應(yīng)用示例15.1 串行口基礎(chǔ)知識(shí)5.1.1 串行口的結(jié)構(gòu)5.1.2 有關(guān)的寄存器5.1.3 串行口的工作方式25.1.1 串行口的結(jié)構(gòu)35.1.2 有關(guān)的寄存器1串行控制寄存器SCON2電源控制寄存器PCON45.1.3 串行口的工作方式1工作方式0 串行口工作方式0為同步
2、移位寄存器輸入/輸出方式,可外接移位寄存器,以擴(kuò)展I/O口。 方式0可分為方式0輸入和方式0輸出兩種方式。 但應(yīng)注意:在這種方式下,不管輸出還是輸入,通信數(shù)據(jù)總是從P3.0(RXD)引腳輸出或輸入,而P3.1(TXD)引腳總是用于輸出移位脈沖,每一移位脈沖將使RXD端輸出或者輸入1位二進(jìn)制碼。5(1)方式0輸出使用方式0實(shí)現(xiàn)數(shù)據(jù)的移位輸出時(shí),實(shí)際上是把串行口變成并行口使用。 6(2)方式0輸入75. 2 不同工作方式下的C51編程5.2.1 工作方式0的C51程序設(shè)計(jì)5.2.2 工作方式1的C51程序設(shè)計(jì)5.2.3 工作方式2的C51程序設(shè)計(jì)5.2.4 工作方式3的C51程序設(shè)計(jì)85.2.1
3、工作方式0的C51程序設(shè)計(jì)方式0是同步移位寄存器輸入/輸出。格式:91、方式0的波特率 在串口方式0下,每個(gè)機(jī)器周期產(chǎn)生一個(gè)移位時(shí)鐘,對(duì)應(yīng)著一個(gè)比特?cái)?shù)據(jù)的發(fā)送和接收。因此,此時(shí)波特率固定為單片機(jī)振蕩頻率的1/12,其波特率計(jì)算公式如下: 串口方式0波特率=fosc/12 在串口方式0下,波特率不受波特率倍增SMOD的影響。因此,在C51程序設(shè)計(jì)時(shí)只要指定工作方式0便完成串口速率的設(shè)置,而無需再設(shè)置波特率。102方式0的數(shù)據(jù)發(fā)送及C51程序設(shè)計(jì)對(duì)于方式0的數(shù)據(jù)發(fā)送,單片機(jī)的TXD引腳都用于發(fā)送移位脈沖,而8位串行數(shù)據(jù)是通過單片機(jī)的RXD引腳來輸出。方式0的數(shù)據(jù)發(fā)送流程:對(duì)寄存器SCON進(jìn)行初始化
4、,即工作方式的設(shè)置。由于使用串行口方式0,只需將00H送入SCON即可。置串行接口控制寄存器SCON的TI=0,啟動(dòng)串行口發(fā)送。11執(zhí)行寫發(fā)送緩沖器指令 SBUF=i;單片機(jī)的CPU執(zhí)行完這條指令后,在TXD引腳發(fā)送同步移位脈沖,8位數(shù)據(jù)便從RXD端由低位到高位逐個(gè)發(fā)送出去。當(dāng)8位數(shù)據(jù)發(fā)送完畢的時(shí)候,單片機(jī)硬件自動(dòng)置中斷標(biāo)志TI=1,請(qǐng)求中斷,表示發(fā)送緩沖器已空。準(zhǔn)備下一次數(shù)據(jù)發(fā)送。標(biāo)志位TI不會(huì)自動(dòng)清零,當(dāng)要發(fā)送下一組數(shù)據(jù)時(shí),必須在軟件中置TI=0,然后才能發(fā)送下一組數(shù)據(jù)。串行口方式0的數(shù)據(jù)輸出可以采用查詢方式,也可以采用中斷方式。在查詢方式下,通過while語句查詢TI的值,如果TI=1則
5、結(jié)束查詢,可以發(fā)送下一組數(shù)據(jù);如果TI=0,則繼續(xù)查詢。在中斷方式下,在TI置位好產(chǎn)生中斷申請(qǐng),在中斷服務(wù)程序中發(fā)送下一組數(shù)據(jù)。此時(shí),需要開啟相應(yīng)的中斷請(qǐng)求。 12例5-1】方式0數(shù)據(jù)發(fā)送的C51程序設(shè)計(jì)示例13(1)采用查詢方式的#includevoid main( ) unsigned char i=0 x55; SCON=0 x00;/初始化串口方式0 SBUF=i;/輸出數(shù)據(jù)到SBUF,啟動(dòng)串行輸出 while(TI)/等待TI=1 TI=0; while(1);14(2)采用中斷方式的#includevoid SISR(void) interrupt 4 TI=0; void mai
6、n( ) unsigned char i=0 x55; SCON=0 x00;/初始化串口方式0 EA=1; ES=1;/允許串行中斷 SBUF=i;/輸出數(shù)據(jù)到SBUF,啟動(dòng)串行輸出 while(1)/等待TI=1 ; 153方式0的數(shù)據(jù)接收及C51程序設(shè)計(jì)對(duì)于方式0的數(shù)據(jù)接收,單片機(jī)的TXD引腳都用于發(fā)送同步移位脈沖,而8位串行數(shù)據(jù)是通過RXD引腳來輸入。在方式0下,C51程序可以按照如下的流程來進(jìn)行數(shù)據(jù)的接收:首先,需要對(duì)寄存器SCON進(jìn)行初始化,即工作方式的設(shè)置。由于這里使用的是串行口的方式0,允許接收,因此需將10H送人SCON,即置REN=1。另外,在方式0工作時(shí),寄存器SCON中
7、的SM2必須置0,而RB8位和TB8位都不起作用,一般置0即可。此時(shí),在TXD端發(fā)送同步移位脈沖,在同步脈沖為低電平的時(shí)候,8位數(shù)據(jù)從RXD引腳由低位到高位逐位接收。當(dāng)8位數(shù)據(jù)接收完畢的時(shí)候,硬件自動(dòng)置RI=1,請(qǐng)求中斷,表示接收數(shù)據(jù)已裝人接收緩沖器,可以由CPU讀取,示例如下: i=SBUF;/讀取數(shù)據(jù)到變量i16準(zhǔn)備下一次接收數(shù)據(jù)。由于RI不會(huì)自動(dòng)清零,當(dāng)需要接收下一組數(shù)據(jù)的時(shí)候,必須在軟件中置RI=0,然后才可以接收下一組數(shù)據(jù)。此時(shí),同樣可以采用查詢和中斷兩種方式,分別介紹如下。在查詢方式中,使用while語句查詢RI的值,如果RI=1則結(jié)束查詢,可以接收下一組數(shù)據(jù);如果RI-0,則繼續(xù)
8、查詢。在中斷方式中,在RI置位后產(chǎn)生中斷申請(qǐng),在中斷服務(wù)程序中接收下一組數(shù)據(jù)。此時(shí),需要開啟相應(yīng)的中斷請(qǐng)求。 17【例5-2】方式0數(shù)據(jù)接收的C51程序設(shè)計(jì)18(1)采用查詢方式#includesbit S_L=P30;void main( ) unsigned char i; SCON=0 x10;/初始化串口方式0 while(1) S_L =0;/并行數(shù)據(jù)送入74LS165 S_L =1; while(RI)/查詢RI=1 RI=0; i=SBUF; P1=i; 19(2)采用中斷方式#includeint i;void SISR(void) interrupt 4 RI=0; i=SB
9、UF;void main( ) SCON=0 x10;/初始化串口方式0 EA=1; ES=1;/開啟串行中斷 while(1) ; 205.3 串行口的C51編程應(yīng)用示例【例5-9】串行口自發(fā)自收21#include#define uchar unsigned char#define uint unsigned intvoid main( ) uchar i=0 x55; uint j=0; TMOD=0X20;/設(shè)定定時(shí)器1模式2 TL1=TH1=0XF4; PCON=0X00; SCON=0X50; TR1=1; while(1) SBUF=i;/發(fā)送數(shù)據(jù) do( )while(!RI)
10、 RI=0; TI=0; i=SBUF;/讀取接收數(shù)據(jù) P1=i; i=i;/將發(fā)送數(shù)據(jù)取反 for(j=0;j12500;j+); 22【例5-10】兩個(gè)單片機(jī)串行通信123單片機(jī)1的C51源程序代碼:#include#define uint unsigned int#define uchar unsigned charvoid main( ) uchar i; TMOD=0 x20; TH1=TL1=0 xff; SCON=0 x50; PCON=0 x80; TR1=1; P1=0 xff; while(1) P1=0 xff; i=P1; SBUF=i; while(TI=0) ; TI=0; 24單片機(jī)2的C51源程序:#include#define uint unsig
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 青島黃海學(xué)院《視覺導(dǎo)向設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 青島航空科技職業(yè)學(xué)院《智能軟件系統(tǒng)開發(fā)技術(shù)應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 青島工程職業(yè)學(xué)院《生物科學(xué)師范生基礎(chǔ)技能訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 幼兒識(shí)詞小游戲課程設(shè)計(jì)
- 小班夏季語言課程設(shè)計(jì)
- 影視欣賞課程設(shè)計(jì)理念
- 托班語言小鴨的課程設(shè)計(jì)
- 從傳統(tǒng)技術(shù)到AI技術(shù)的跨越發(fā)展之路
- 企業(yè)國際化經(jīng)營戰(zhàn)略及實(shí)踐案例
- c語言課程設(shè)計(jì)客房管理
- 錄井技術(shù)服務(wù)方案與技術(shù)措施
- DB63-T 2042-2022繁殖期母牦牛適度補(bǔ)飼技術(shù)規(guī)程
- 2022年二年級(jí)上冊(cè)語文復(fù)習(xí)計(jì)劃
- 小學(xué)語文人教課標(biāo)版(部編)三年級(jí)下冊(cè)習(xí)作:我的植物朋友 1
- 西師大版六年級(jí)數(shù)學(xué)上冊(cè)《比和按比例分配的整理與復(fù)習(xí)》課件
- 房屋租賃合同終止協(xié)議書格式(3篇)
- PPT成功的秘訣——勤奮
- 建設(shè)工程監(jiān)理概論(PPT)
- 土地整治業(yè)務(wù)培訓(xùn)
- 澳大利亞教育質(zhì)量保障框架ppt課件
- 熱力學(xué)第四章熱力學(xué)第二定律(me)(1)
評(píng)論
0/150
提交評(píng)論