




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、項(xiàng)目9 串口通信9.1 RS-232接口原理RS232接口是1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算生產(chǎn)機(jī)終端廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接 術(shù)標(biāo)準(zhǔn)”該標(biāo)準(zhǔn)規(guī)定采用一個25個腳的DB25連接 器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定,還對各種信號的電平加以規(guī)定。DB25的串口一般只用到的管腳只有2(RXD)、3(TXD)、7(GND)這三個。隨著設(shè)備的不斷改進(jìn),現(xiàn)在DB25針很少看到了,代替它的是DB9的接口,DB9所用到的管腳比DB25有所變化,是2(RXD)、3(TXD)、
2、5(GND)這三個。被廣泛用于計(jì)算機(jī)的串行接口(COM1、COM2等)與單片機(jī)或其它終端之間的近地連接。因此現(xiàn)在都把RS232接口叫做DB9。該標(biāo)準(zhǔn)在數(shù)據(jù)傳輸速率20Kbps時,最長的通信距離為15米。由于RS232接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點(diǎn):1. 接口的信號電平值較高,易損壞接口電路的芯 片,又因?yàn)榕cTTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。2. 傳輸速率較低,在異步傳輸時,波特率為0Kbps; 因此在“南方的老樹51CPLD開發(fā)板”中,綜合程序波特率只能采用19200bps,也是這個原因。3. 接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式,這
3、種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。VS+C1-C1+C1 30PIC STC89C51CY 12MHz 19C2 30P18XTAL1XTAL2R1 1K39 38 37 36 35 34 33 32 9P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7RESETVCCC3 10 29 30 ALEPSEN31EAP2.0/A8 P2.1/A9 P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A1521 22 23 24 25 26 27 28 C
4、4 10 C5 1012VCC 1 P1.02 P1.13 P1.24 P1.35 P1.46 P1.57 P1.68 P1.7P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD101112 13 14 15 16 17 1314871211910DB9-2 DB9-34 56C7 10C6 10 T2OUTT2INR1INR1OUTT1OUTT1INR2INR2OUT34. 傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50英尺, 實(shí)際上也只能用在50米左右。VS-C2- C2+圖9-1 單片機(jī)RS-232接口805
5、1系列單片機(jī)上有UART(Universal Asynchronous Receiver/Transmitter通用異步接收/發(fā)送)用于串行通信,發(fā)送數(shù)據(jù)時由TXD(P3.1)端送出,接收數(shù)據(jù)時由于RXD(P3.0)端輸入。單片機(jī)內(nèi)部有兩個數(shù)據(jù)傳輸緩沖器SCON是串行口控制和狀態(tài)寄存器,其格式如下:SBUF,一個作為發(fā)送,一個作為接收。UART是可編程的全雙工串行口,短距離單片機(jī)之間通行可以直接互聯(lián),使用接口芯片MAX232可以接成RS-232接口與計(jì)算機(jī)COM口進(jìn)行通行。圖7-1是單片機(jī)常用的RS-232接口電路原路。9.3 單片機(jī)串行口設(shè)置一、串行口通信有關(guān)的SFR1. 串行口控制寄存器S
6、CON(1)SM0,SM1:串行口工作方式控制位具體工作方式見表3-6-1。fOSC為單片機(jī)外接晶體振蕩頻率。表9-1 串行口工作方式控制D7D6D5D4D3D2D1D0SM 0SM 1SM 2RE NTB8RB 8TIRISM0SM1工作方式應(yīng)用波特率00方式0同步移位寄存器fOSC/1201方式110位異步收發(fā)由定時器控制101方式211位異步收發(fā)fOSC/32或fOSC/6411方式311位異步收發(fā)由定時器控制(2)SM2:多機(jī)通信控制位。用于工作方式2、3。SM2 = 1時,只有接收到第九位(RB8)為1時,RI才置位;SM2 = 0時,只要接收到數(shù)據(jù)RI就置位。(3)REN:串行口接
7、收允許位。REN = 1,允許串行口接收數(shù)據(jù);REN = 0,禁止串行口接收數(shù)據(jù)。(4) TB8:工作在方式2、3時,為發(fā)送數(shù)據(jù)的第九位,也可以作奇偶校驗(yàn)位。(5) RB8:工作在方式2、3時,為接收數(shù)據(jù)的第九位,在工作方式1時,為接收數(shù)據(jù)的停止位。(6) TI:發(fā)送中斷標(biāo)志位,當(dāng)數(shù)據(jù)向外發(fā)送(SBUF=DATE,數(shù)據(jù)寫入SBUF)后,TI 自動置位,必須軟件清零。(7)RI:接收中斷標(biāo)志位,當(dāng)數(shù)據(jù)向外發(fā)送(a = SBUF,數(shù)據(jù)從SBUF讀出, a為變量)后,RI 自動置位,必須軟件清零。2. 電源控制寄存器PCOND7D6D5D4D3D2D1D0SMODGF1GF0PDIDL這里只用到了P
8、CON的第七位SMOD,它是與串行通信波特率設(shè)置有關(guān),SMOD也叫串行口通信波特率的加倍位。當(dāng)SMOD = 1時,工作方式1、3時的波特率為定時器1 溢出率/16;工作方式2時的波特率為fOSC/32。當(dāng)SMOD= 0時,工作方式1、3時的波特率為定時器1溢出率/32; 工作方式2時的波特率為fOSC/64。GF0、GF1:通用標(biāo)志位,PD、IDL:CHMOS器件類型的單片機(jī)的低功耗控制位。二、串行口的工作方式1. 方式0方式0為移位寄存器輸入/輸出方式。串行數(shù)據(jù)通過RXD端輸入輸出,TXD則用于輸出移位同步脈沖。此時收發(fā)的數(shù)據(jù)為8位,低位在前,且波特率為fOSC/12,數(shù)據(jù)發(fā)送以寫入SBUF
9、指令開始,8位數(shù)據(jù)輸出結(jié)束后,TI置位。數(shù)據(jù)接收是在REN = 1、RI = 0同時滿足時開始,接收的數(shù)據(jù)從SBUF讀出結(jié)束后,RI置位。移位寄存器工作方式對節(jié)省硬件資源很有用,串行口外接移位寄存器芯片74HC164就可以構(gòu)成輸出接口,接74HC165可以工程輸入接口,在如果晶體振蕩頻率為12MHz,8為數(shù)據(jù)通過串行口傳輸大約10微秒就可以完成。移位寄存器工作方的另一種用法是直接構(gòu)成兩個單片機(jī)的數(shù)據(jù)通信,晶體振蕩頻率為12MHz,數(shù)據(jù)傳輸波特率為1M,只是通信距離較短。2. 方式1方式1為10位異步通信方式,由1位起始位(第0位, 默認(rèn)為0)、8位數(shù)據(jù)位和1位停止位(第9位,由TB8決 定,默
10、認(rèn)為1)組成,起始位和停止位在發(fā)送數(shù)據(jù)(數(shù)據(jù)寫入SBUF)時自動插入。任何1條寫入SBUF指令都啟動1次發(fā)送中斷,發(fā)送的前提是寄存器SCON中的TI = 0,發(fā)送結(jié)束后TI置位。方式1接收數(shù)據(jù)的前提是REN = 1,同時RI = 0且SM2=0或接收停止位為1。如果接收有效,將接收數(shù)據(jù)裝入SBUF和寄存器SCON的RB8(接收數(shù)據(jù)的第9位),否則舍棄接收結(jié)果。方式1的波特率由一下公式計(jì)算得到,即: 方式1波特率= 2SMOD(定時器溢出率)/32其中SMOD是PCON的第7位,定時器的溢出率為定時定時時間的倒數(shù),定時器工作模式0、1和2都可以使用。3. 方式2和方式3這兩種方式都是11位異步接
11、收/發(fā)送方式,操作方式完全一樣,只是波特率有所區(qū)別,方式3波特率同方式1, 方式1波特率為:方式2波特率 = 2SMOD(定時器溢出率)/64方式2和方式3的發(fā)送起始于數(shù)據(jù)寫入SBUF指令,當(dāng)?shù)?位數(shù)據(jù)TB8輸出之后,TI置位。方式2和方式3接收數(shù)據(jù)的前提也是REN = 1,在第9位數(shù)據(jù)接收到之后,如果下列提條件滿足,即RI = 0且SM2= 0或接收到的第9位數(shù)據(jù)為1,則將已經(jīng)接受的數(shù)據(jù)裝SBUF和RB8,并置位RI,如果條件不滿足,則接收無效。三、串行口通信初始化1. 串行口的波特率與定時器設(shè)置單片機(jī)的晶體振蕩頻率比較固定,常用的有6MHz、12 MHz、11.0592 MHz,單片機(jī)串行
12、口用于和計(jì)算機(jī)通信。選用的波特率也相對固定,可以通過查表獲得相應(yīng)置,表7-2給出了單片機(jī)常用的波特率與定時器設(shè)置。表7-2單片機(jī)常用的波特率與定時設(shè)置2. 初始化步驟下面以波特率為9600bps,串口工作方式3,允許發(fā)送/ 接收數(shù)據(jù)的初始化步驟程序舉例:/*/TMOD = 0x20;/第一步,編程TMODTL1 = 0xfd;/第二步,裝載定時器1的初值TH1 = 0xfd;TR1 = 1;/第三步,啟動定時器1, TR1 = 1SCON = 0xd8;/第四步編程SCON,確定串行口工作方式3/SM2、TB8 = 1,TI、RI = 0PCON = 0x00;/第四步,編程PCON,SMOD
13、 = 0 SBUF = date1;/發(fā)送1字節(jié)數(shù)據(jù)date1,進(jìn)入串行中斷while(TI = 0);/等待發(fā)送,發(fā)送完畢后TI自動置位 TI = 0;/ TI軟件清零date2 = SBUF;/接收1字節(jié)數(shù)據(jù)并保存date2,進(jìn)入串行中斷while(RI = 0);/等待接收,接收完畢后RI自動置位RI = 0;/RI軟件清零/*/9.4 單片機(jī)與計(jì)算機(jī)之間通信本案例實(shí)現(xiàn)計(jì)算機(jī)鍵盤輸入的字符通過計(jì)算機(jī)的COM1向單片機(jī)發(fā)送,單片機(jī)接收后隨即把這個字符再向計(jì)算機(jī)發(fā)送,并在計(jì)算機(jī)的屏幕上顯示出來。電路原理見圖3-6-1,計(jì)算機(jī)和單片機(jī)之間通過串行電纜連接。一、 程序設(shè)計(jì)由于計(jì)算機(jī)作為上位機(jī)控制
14、,因此本案例程序包括計(jì)算機(jī)的發(fā)送/接收程序和單片機(jī)的數(shù)據(jù)接收/發(fā)送程序。上位機(jī)程序采用BASIC編寫,編寫的文件后保存為RS232.BAS。單片機(jī)串口通信采用同樣的參數(shù)設(shè)置。1. 上位機(jī)程序/*/10 OPEN”COM1:9600,N,8,1,CS,DS,CD”AS#120 IF LOC(1)0 THEN GOSUB 100030 A$ = INKEY$:IF A$”THEN GOSUB 200040 GOTO 201000 A$ = INPUT$(LOC(1),#1)1010 PRINT A$;1020 RETURN2000 PRINT #1,A$2010 RETURN/*/2. 單片機(jī)通信
15、程序#includevoid main(void)unsigned char date; TMOD = 0x20;TL0 = 0xfd;TL1 = 0xfd; SCON = 0xd8;PCON = 0x00; TR1 = 1;While(1)while(RI = 0);/等待接收RI = 0;date = SBUF;/接收數(shù)據(jù)保存在date中 SBUF = date;/再保存在date的數(shù)據(jù)向外發(fā)送while(TI = 0);/等待發(fā)送TI = 0;3. 程序說明(1) 計(jì)算機(jī)串行口發(fā)送/接收數(shù)據(jù)的波特率為9600,1 位停止位,無奇偶校驗(yàn)。其設(shè)置參考有關(guān)書籍。(2) 也可以采用VB編寫,也可
16、以直接使用51單片機(jī)的串行通信調(diào)試助手ComAssistant等小軟件。9.5 單片機(jī)串口中斷應(yīng)用使用8051串行口實(shí)現(xiàn)中斷驅(qū)動串行I/O。中斷程序使用8字節(jié)的環(huán)形緩沖器處理發(fā)送中斷和接收中斷。#include #include#define XTAL11059200/CPU振蕩器頻率#define baudrate9600/9600通信波特率#define OLEN8/串行發(fā)送緩沖區(qū)的大小unsigned char ostart;/發(fā)送緩沖區(qū)起始索引unsigned char oend;/發(fā)送緩沖區(qū)結(jié)束索引char idata outbufOLEN;/發(fā)送緩沖區(qū)的存儲#define ILEN
17、8/串行接收緩沖區(qū)的大小unsigned char istart;/接收緩沖區(qū)起始索引unsigned char iend;/接收緩沖區(qū)結(jié)束索引char idata inbufILEN;/接收緩沖區(qū)的存儲bit sendfull;/標(biāo)志:標(biāo)識發(fā)送緩沖區(qū)滿bit sendactive;/標(biāo)志:標(biāo)識發(fā)送器激活/* 串行中斷服務(wù)程序 */static void com_isr(void)interrupt 4char c;/ * 接收數(shù)據(jù)中斷 * / if(RI)c=SBUF;/讀字符RI=0;/清零中斷請求標(biāo)志if(istart+ILEN!=iend inbufiend+&(ILEN-1=c;字符
18、送入緩沖區(qū)/ * 發(fā)送數(shù)據(jù)中斷 * /if(TI!=0) TI=0;/清零中斷請求標(biāo)志if(ostart!=oend) /若字符在緩沖區(qū)SBUF=outbufostart+ &(OLEN-1;/則發(fā)送字符sendfull=0;/清零sendfull標(biāo)志else/若所有字符發(fā)送sendactive=0;/則清零sendactive/ *初始化串行口和UART波特率函數(shù) */ void com_initiaize(void)istart=0;/清空接收緩沖區(qū)iend = 0;ostart=0;/清空發(fā)送緩沖區(qū)iend=0;sendactive=0;/發(fā)送器未激活sendfull=0;/清零send
19、full標(biāo)志/配置定時器1作為波特率發(fā)生POCN |= 0x80;/0x80=SMOD:設(shè)置波特率加倍TMOD |= 0x20;/置定時器1為方式2 TH1=(unsigned char)(16L*12L*baudrate);TR1=1;/啟動定時器1SCON=0x50;/串行口方式1,允許串行接收ES=1;/允許串行中斷/* putbuf:寫字符到SBUF或發(fā)送緩沖區(qū) */void putbuf(char c)if(!sendactive)/若發(fā)生器未激活sendactive=1;/則直接傳送第一字符到SBUF = 0;/SBUF啟動發(fā)生器elseES=0;/在緩沖區(qū)更新期間禁止串行中斷outbufoend+&(OLEN-1)=c; /放字符到發(fā)送緩沖區(qū)if(oend ostart)&(OLEN
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 會展產(chǎn)業(yè)政策對會展行業(yè)競爭力的影響考核試卷
- 供應(yīng)鏈智能合同的法律風(fēng)險評估考核試卷
- 光伏組件選型與應(yīng)用考核試卷
- 通風(fēng)設(shè)備智能控制系統(tǒng)安全性評估考核試卷
- 化妝品包裝結(jié)構(gòu)創(chuàng)新與包裝功能提升研究考核試卷
- 脫硫石膏運(yùn)輸合同范本
- 濟(jì)南市【人教版】小學(xué)數(shù)學(xué)四年級上冊:全冊導(dǎo)學(xué)案-第1單元
- 火電靈活性改造市場分析
- 保姆雇傭協(xié)議書(11篇)
- 機(jī)器人控制與感知技術(shù)
- 酒泉事業(yè)單位筆試真題
- 后疫情時代大學(xué)生求職者洞察報告-艾瑞咨詢
- 華北理工環(huán)境監(jiān)測教案02水和廢水監(jiān)測-4金屬化合物-鋁、汞、鎘、鉛、銅、鋅、鉻、砷等測定
- 輕質(zhì)碳酸鈣的應(yīng)用及其發(fā)展前景
- 冷藏藥品的儲存與運(yùn)輸管理培訓(xùn)
- GB/T 34882-2017鋼鐵件的感應(yīng)淬火與回火
- 道路工程投資估算表模板
- 2023年成都市成華發(fā)展集團(tuán)有限責(zé)任公司招聘筆試模擬試題及答案解析
- New包裝結(jié)構(gòu)設(shè)計(jì)基礎(chǔ)知識課件
- 蓄電池安裝工程分項(xiàng)工程質(zhì)量驗(yàn)收記錄表
- (完整版)幼兒園大班升一年級數(shù)學(xué)測試卷
評論
0/150
提交評論