RS-232串口通信程序設(shè)計(jì)_第1頁
RS-232串口通信程序設(shè)計(jì)_第2頁
RS-232串口通信程序設(shè)計(jì)_第3頁
RS-232串口通信程序設(shè)計(jì)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、RS-232串口通信程序設(shè)計(jì)l 實(shí)驗(yàn)要求:用TC對(duì)計(jì)算機(jī)的串口進(jìn)行編程,并作一個(gè)簡(jiǎn)單的串口查詢通訊程序。l 實(shí)驗(yàn)方案:用RS-232串口通訊線將兩臺(tái)計(jì)算機(jī)A、B的串口相連。l 實(shí)驗(yàn)步驟:1、 首先對(duì)計(jì)算機(jī)串口通訊控制芯片8250的控制寄存器進(jìn)行初始化和設(shè)置;2、 對(duì)計(jì)算機(jī)B的串口發(fā)送一個(gè)數(shù)據(jù)前,查詢計(jì)算機(jī)A的串口的發(fā)送移位寄存器是否為空,如果是則發(fā)送數(shù)據(jù),如果為否則繼續(xù)查詢,直到條件成立;執(zhí)行完發(fā)送指令后,再次查詢計(jì)算機(jī)A的口的發(fā)送移位寄存器是否為空,如果是則結(jié)束發(fā)送;如果為否,則繼續(xù)查詢,直到條件成立。3、 從計(jì)算機(jī)A的串口接受剛才從計(jì)算機(jī)B的串口發(fā)送的數(shù)據(jù)前,先查詢計(jì)算機(jī)A的口的接收數(shù)據(jù)標(biāo)

2、志位是否為,如果是則表示計(jì)算機(jī)A的口接收數(shù)據(jù)準(zhǔn)備就緒,執(zhí)行接收指令,即從計(jì)算機(jī)A的口讀入數(shù)據(jù),若否則表示沒有準(zhǔn)備好接收,繼續(xù)查詢計(jì)算機(jī)A的口的接收數(shù)據(jù)標(biāo)志位,直到為;接收完數(shù)據(jù)后,再次查詢計(jì)算機(jī)A的串口的接受寄存器是否為空的標(biāo)志位的狀態(tài),如果為則程序轉(zhuǎn)入計(jì)算機(jī)B的串口的數(shù)據(jù)發(fā)送程序;如果否,則繼續(xù)查詢等待,直到接收。l 實(shí)驗(yàn)內(nèi)容:1. 在COMDEBUG中針對(duì)串口通信各寄存器進(jìn)行設(shè)置,掌握各寄存器在串口通信中的作用及各參數(shù)的含義。Com1口中的10各可編程寄存器地址寄存器名稱備注3F8H發(fā)送保持寄存器(THR)DLAB=03F8H接收緩沖寄存器(RBR)DLAB=03F8H波特率因子寄存器低(

3、DLL)DLAB=13F9H波特率因子寄存器高(DLM)DLAB=13F9H中斷允許寄存器(IER)DLAB=03FAH中斷識(shí)別寄存器(IIR)3FBH線路控制寄存器(LCR)3FCHModem控制寄存器(MCR)3FDH線路狀態(tài)寄存器(LSR)3FEHModem狀態(tài)寄存器(MSR)注:com1口的基地址為:3F8; com2口的基地址為:2F8。在上表中, 10個(gè)可編程寄存器,使用了7個(gè)地址,其中部分寄存器共用一個(gè)地址,由DLAB=0/1來區(qū)分,在DLAB=1,用于設(shè)定通訊所需的波特率;8250的控制寄存器控制/狀態(tài)字:1) 接收緩沖寄存器(RBR)和發(fā)送保持寄存器(THR)RBR暫存從線路

4、上接收到的有效字符,等待本地讀取。THR暫存等待發(fā)向線路的數(shù)據(jù)。它們共用同意I/O地址,在半雙工工作環(huán)境下,互不干擾。2) 中斷識(shí)別寄存器(IIR)和中斷允許寄存器(IER)IIR狀態(tài)中斷類型中斷原因復(fù)位動(dòng)作IER狀態(tài)b1 b2 b3中斷允許中斷靜止X X 1無1 1 0線路狀態(tài)中斷線路狀態(tài)變化讀LSRb2=1b2=01 0 0接收中斷RBR輸入有效讀RBRb0=1b0=00 1 0發(fā)送中斷THR空閑,可發(fā)送下一字符讀IIR或?qū)慣HRb1=1b1=00 0 0Modem狀態(tài)中斷Modem狀態(tài)變化讀MSRb3=1b3=03) 線路狀態(tài)寄存器(LSR)b7b6b5b4b3b2b1b00不用發(fā)送移位

5、寄存器(TSRE)空,可發(fā)送發(fā)送保持寄存器(THRE)空,可接收數(shù)據(jù)斷點(diǎn)中斷(BI),收到停頓信號(hào)幀格式錯(cuò)(FE),即沒有收到正確的停止位奇校驗(yàn)錯(cuò)(PE)超載錯(cuò)(OE),即數(shù)據(jù)緩沖出錯(cuò)數(shù)據(jù)準(zhǔn)備就緒,即數(shù)據(jù)緩沖區(qū)中尚有數(shù)據(jù)未取走4) 線路控制寄存器(LCR)b7b6b5b4b3b2b1b0訪問分頻器開關(guān)(DLAB位)中斷控制位奇偶校驗(yàn)停止位寬字符位數(shù)0:常態(tài)1:訪問DLL,DLM0:禁止1:允許xx0:不校驗(yàn)001:奇校驗(yàn)011:偶校驗(yàn)0xx:1位停止位100:5位字符,1.5位停止位101:6位字符,2位停止位110:7位字符,2位停止位111:8位字符,2位停止位5) 波特率因子寄存器(DL

6、L,DLM)DLL與DLM組成一個(gè)16位寄存器,存放一個(gè)波特率因子(分頻值),對(duì)振蕩時(shí)鐘進(jìn)行分頻,以得到用戶需要的波特率。計(jì)算方法:波特率因子 = 振蕩時(shí)鐘 / (波特率*16)一些標(biāo)準(zhǔn)波特率對(duì)應(yīng)的波特率因子寄存器的設(shè)置波特率(b/s)DLM設(shè)置DLL設(shè)置960000H0CH1920000H06H3840000H03H00H01H6) modem控制寄存器(MCR)MCR的b7b5位恒為0,b4b0中的各位產(chǎn)生對(duì)modem的控制信號(hào)。 b4=1 設(shè)置loopback模式-內(nèi)部輸入輸出短接,構(gòu)成反饋測(cè)試模式。 b3=1 輔助輸出2 b2=1 輔助輸出1 b1=1 請(qǐng)求發(fā)送(RTS) b0=1 數(shù)

7、據(jù)終端準(zhǔn)備好(DTR)7) modem狀態(tài)寄存器(MSR)l 參考源代碼:#include #include #include main()char ch;/*串口初始化*/outportb(0x3fb,0x80); /設(shè)置LCR,訪問DLL、DLM,禁止串口中斷,無校驗(yàn),1位停止位;outportb(0x3f8,0x0C); /設(shè)置串口的波特率低八位(DLL);outportb(0x3f9,0x00); /設(shè)置串口的波特率高八位(DLM);outportb(0x3fb,0x03); /設(shè)置LCR,禁止訪問DLL、DLM,禁止串口中斷,無校驗(yàn),1位停止位;outportb(0x3fc,0x03); /初始化MCR,數(shù)據(jù)終端準(zhǔn)備好,請(qǐng)求發(fā)送;while(1) /保持監(jiān)聽狀態(tài) /*發(fā)送數(shù)據(jù)*/ if(bioskey(1) ch=bioskey(0)&0x0ff; /若有鍵盤輸入,獲取ASCII碼 if(ch=27) /若輸入字符為“ESC”,退出程序 exit(0);outportb(0x3f8,ch); /否則將字符送入發(fā)送端口 /*接收數(shù)據(jù)*/ch=inportb(0x3fd); /讀取接收端口的線路狀態(tài)寄存器LSR的狀態(tài)if(ch&0x01) /若線路狀態(tài)

溫馨提示

  • 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. 人人文庫(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)論