單片機(jī)串行口的應(yīng)用
單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,串行口的應(yīng)用,單片機(jī)應(yīng)用技術(shù),目錄,引言,1,串行通信介紹,2,串行通信應(yīng)用,3,思考,4,CONTENTS,作業(yè),5,小結(jié),6,1.,引言,串行通信的思考,串行口一次傳輸一個,bit,,并行口一次傳輸一個,byte,,誰快?,使用串行口的場合越來越多,使用并行口場合越來越少,為什么?,并行口快要被串行口完全取代,而消失了!并行端口的最后一塊版圖,打印機(jī)端口,,逐漸被,USB,與,Ethernet,并吞。,低成本,!,簡單!,1.,引言,與外設(shè)的接口,2.,串行通信介紹,3.,應(yīng)用體驗,-,串行通信在排隊呼叫系統(tǒng)中的應(yīng)用,3.,應(yīng)用體驗,-,串行通信在排隊呼叫系統(tǒng)中的應(yīng)用,3.,應(yīng)用體驗,-,串行通信在排隊呼叫系統(tǒng)中的應(yīng)用,3.,應(yīng)用體驗,-,串行通信在排隊呼叫系統(tǒng)中的應(yīng)用,設(shè)置,UART,工作模式,設(shè)置波特率,運(yùn)行,UART,中斷,設(shè)置,SCON,寄存器中模式選擇位,設(shè)置,PCON,寄存器中,SMOD,加倍位,設(shè)置,TMOD,寄存器中模式選擇位,置位,TR1,啟動定時器,置位,ES,運(yùn)行串行口中斷,串口初始化步驟,3.,應(yīng)用體驗,-,串行通信在排隊呼叫系統(tǒng)中的應(yīng)用,頭文件與宏定義,#include /,包含,reg51.h,檔,sbit key1=P20;,sbit key2=P21;,unsigned int num=0;,void delay(unsigned int z),unsigned int x,y;,for(x=z;x0;x-),for(y=110;y0;y-);,發(fā)送端程序,3.,應(yīng)用體驗,-,串行通信在排隊呼叫系統(tǒng)中的應(yīng)用,2024/10/29,主函數(shù),main()/,主程序開始,TMOD|=0 x20;/,將,Timer 1,設(shè)定,mode 2,以產(chǎn)生波特率,PCON/,將,SMOD,設(shè)定為,0,TH1=TL1=0 xfd;/,波特率設(shè)定約為,9600bps(12MHz),TR1=1;/,啟動,Timer 1,SCON=0 xd0;/,設(shè)定為,mode3,P2=0 xff;/,規(guī)劃指撥開關(guān)為輸入,SBUF=0;,delay(1000);,T1,溢出率,=fosc/12256,(,TH1,),while(1)/while,循環(huán)開始,if(key1=0|key2=0),delay(50);,if(key1=0|key2=0),if(TI=1)/,檢查是否完成傳出,?,TI=0;/TI=1,時,(,傳出完成,),清除,TI,旗標(biāo),num=num+1;,if(num=10),num=0;,SBUF=num;,/while,循環(huán)結(jié)束,/,主程序結(jié)束,接收端程序,頭文件與宏定義,#include /,包含,reg51.h,檔,#define LED P0/,定義,LED,位置,#define DIP_SW P2/,定義指撥開關(guān)位置,unsigned char code table=/,共陽極,0f,數(shù)碼管編碼,0 xc0,0 xf9,0 xa4,0 xb0,/03,0 x99,0 x92,0 x82,0 xf8,/47,0 x80,0 x90,0 x88,0 x83,/8b,0 xc6,0 xa1,0 x86,0 x8e;/cf,3.,應(yīng)用體驗,-,串行通信在排隊呼叫系統(tǒng)中的應(yīng)用,主函數(shù),main()/,主程序開始,TMOD|=0 x20;/,將,Timer 1,設(shè)定,mode 2,以產(chǎn)生波特率,PCON/,將,SMOD,設(shè)定為,0,TH1=TL1=0 xfd;/,波特率設(shè)定約為,9600bps(12MHz),TR1=1;/,啟動,Timer 1,SCON=0 xd0;/,設(shè)定為,mode 3 (P8-5,P8-6),while(1)/while,循環(huán)開始,if(RI=1)/,檢查是否完成接收,?,RI=0;/RI=1,時,(,接收完成,),清除,RI,旗標(biāo),LED=tableSBUF;/,將所接收的資料輸出到,LED,/while,循環(huán)結(jié)束,/,主程序結(jié)束,在本實驗里,采用約,9600bps,的波特率,怎樣修改程序?qū)崿F(xiàn)將波特率修改為,4800 bps,?,4,.,思考,在本實驗里,兩片采用,mode 3,,請試改以,mode 1,或,mode 2,,重新測試?,5.,作業(yè),串行通信工作原理,排隊呼叫系統(tǒng)電路設(shè)計及編程,6.,小結(jié),Thank you,!,