接口技術(shù)課程設(shè)計(jì)雙機(jī)串行通訊_第1頁
接口技術(shù)課程設(shè)計(jì)雙機(jī)串行通訊_第2頁
接口技術(shù)課程設(shè)計(jì)雙機(jī)串行通訊_第3頁
接口技術(shù)課程設(shè)計(jì)雙機(jī)串行通訊_第4頁
接口技術(shù)課程設(shè)計(jì)雙機(jī)串行通訊_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一、設(shè)計(jì)題目雙機(jī)通過兩臺(tái)試驗(yàn)箱串行通訊二、設(shè)計(jì)目的1、掌握8088/86實(shí)驗(yàn)串行口通信的方法。2、了解實(shí)現(xiàn)串行通訊的硬環(huán)境、數(shù)據(jù)格式的協(xié)議、數(shù)據(jù)交換的協(xié)議。3、學(xué)習(xí)串行口通訊程序編寫方法。三、設(shè)計(jì)原理及方案1、8251A的基本性能8251A是可編程的串行通信接口芯片,基本性能有:(1)兩種工作方式:同步方式,異步方式。同步方式下,波特率為064K,異步方式下,波特率為019.2K。(2)同步方式下的格式每個(gè)字符可以用5、6、7或8位來表示,并且內(nèi)部能自動(dòng)檢測(cè)同步字符,從而實(shí)現(xiàn)同步。除此之外,8251A也允許同步方式下增加奇/偶校驗(yàn)位進(jìn)行校驗(yàn)。(3)異步方式下的格式每個(gè)字符也可以用5、6、7或8

2、位來表示,時(shí)鐘頻率為傳輸波特率的1、16或64倍,用1位作為奇/偶校驗(yàn)。1個(gè)啟動(dòng)位。并能根據(jù)編程為每個(gè)數(shù)據(jù)增加1個(gè)、15個(gè)或2個(gè)停止位??梢詸z查假啟動(dòng)位,自動(dòng)檢測(cè)和處理終止字符。(4)全雙工的工作方式(5)提供出錯(cuò)檢測(cè)2、8251A的內(nèi)部結(jié)構(gòu)發(fā)送器由發(fā)送緩沖器和發(fā)送控制電路兩部分組成。接收器由接收緩沖器和接收控制電路兩部分組成。數(shù)據(jù)總線緩沖器,讀/寫控制電路,調(diào)制解調(diào)控制電路。8251A內(nèi)部結(jié)構(gòu)圖3、8251外部引腳圖8251的外部引腳下圖所示,共28個(gè)引腳,每個(gè)引腳信號(hào)的輸入輸出方式如圖中的箭頭方向所示。 8251外部引腳圖4、8251A的編程編程的內(nèi)容包括兩大方面:一是由CPU發(fā)出的控制字

3、,即方式選擇控制字和操作命令控制字;二是由8251A向CPU送出的狀態(tài)字。(1)、方式選擇控制字(模式字)方式選擇控制字的格式如圖所示。(2)、操作命令控制字(控制字)操作命令控制字的格式如下:(3)、狀態(tài)字狀態(tài)字的格式如下:5、8251A的初始化 8251的初始化和操作流程下圖所示。8251初始化流程圖a)芯片復(fù)位以后,第一次用奇地址端口寫入的值作為模式字進(jìn)入模式寄存器。b)如果模式字中規(guī)定了8251A工作在同步模式,c)由CPU用奇地址端口寫入的值將作為控制字送到控制寄存器,而用偶地址端口寫入的值將作為數(shù)據(jù)送到數(shù)據(jù)輸出緩沖寄存器。四、實(shí)現(xiàn)方法1、程序流程圖如下: 主程序是發(fā)送子程序發(fā)送緩沖

4、為空?發(fā)送數(shù)據(jù)返回否清出錯(cuò)標(biāo)志是否有無開始設(shè)置串口通訊方式及波特率LED顯示讀入鍵值檢測(cè)鍵盤輸入轉(zhuǎn)換成鍵碼串口發(fā)送鍵碼收到數(shù)據(jù)?接收數(shù)據(jù)送顯示緩沖串口發(fā)送子程序是接收子程序是否已收到數(shù)據(jù)?讀入數(shù)據(jù)返回否串口接收子程序2、連線圖連線連接孔1連接孔21KEY/LED_CSCS028251_CSCS138251_TxCLK1MHz48251_RxCLK1MHz58251_CLK10MHz6甲方8251_TXD乙方8251_RXD7甲方8251_RXD乙方8251_TXD8甲方GND乙方GND3、8251A操作過程流程圖8251A操作過程流程圖4、試驗(yàn)程序(見附錄)五、實(shí)施結(jié)果雙機(jī)串行通信實(shí)現(xiàn)了數(shù)據(jù)的

5、雙項(xiàng)收發(fā)。在一臺(tái)小鍵盤鍵入字符,在本機(jī)的LED數(shù)碼顯示管上顯示出來,并由8251A的發(fā)送端發(fā)送給另一臺(tái)的 8251A的接收端接收,然后在另一臺(tái)LED數(shù)碼顯示器上顯示出來。同樣另一臺(tái)也可做發(fā)送端發(fā)送字符。六、改進(jìn)意見及建議本次課程設(shè)計(jì)是通過8251的收發(fā)功能將兩個(gè)試驗(yàn)箱實(shí)現(xiàn)串行通訊,我們組順利實(shí)現(xiàn)了兩臺(tái)機(jī)箱的同時(shí)發(fā)送和接收數(shù)據(jù)的雙機(jī)通訊。而在本次試驗(yàn)中發(fā)送的一直都是一個(gè)字符而不能發(fā)送多位字符,我希望改進(jìn)的是可以發(fā)送任意長短的字符,由用戶自己定義。七、個(gè)人所做貢獻(xiàn)在本次試驗(yàn)中我負(fù)責(zé)程序的查找、修改和調(diào)試,我們?cè)诰W(wǎng)上查找,在本機(jī)實(shí)驗(yàn)程序中查找,修改,在一條一條指令的研究后,在詢問了別人意見后,最后定

6、下了附錄里的這段程序。八、設(shè)計(jì)體會(huì)回顧起此次接口課程設(shè)計(jì),至今我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在整整一星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)

7、過的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說8251A芯片的使用,軟件的應(yīng)用技巧,對(duì)匯編語言掌握得不好通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識(shí)重新溫故。十、附錄試驗(yàn)程序代碼如下;/從左向右,第五位LED數(shù)碼管顯示本機(jī)的鍵入按鍵代碼,第六位顯示接收到的數(shù)據(jù);單機(jī)的自發(fā)自收模式下,請(qǐng)將8251模塊的TXD和RXD用線纜直接連接OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN_KEY equ 08001h ; 鍵盤讀入口CS8251D equ 09000h ; 串行通信控制器數(shù)據(jù)口地址CS8251C equ 09001h ; 串行通信控制器控

8、制口地址data segmentLEDBuf db 6 dup(?) ; 顯示緩沖Num db 1 dup(?) ; 顯示的數(shù)據(jù)DelayT db 1 dup(?)RBuf db 0TBuf db 0LEDMAP: ; 八段管顯示碼 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hKeyTable: ; 鍵碼定義 db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h

9、, 09h db 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07hcode segment assume cs:code, ds:dataDelay proc near push ax ; 延時(shí)子程序 push cx mov al, 0 mov cx,ax loop $ pop cx pop ax retDelay endpDisplayLED proc near mov bx, offset LEDBuf mov cl, 6 ; 共6個(gè)八段管 mov ah, 00100000b ; 從左邊開始顯示DLoop: mov dx, OUTBIT mov al, 0

10、out dx,al ; 關(guān)所有八段管 mov al, bx mov dx, OUTSEG out dx, al mov dx, OUTBIT mov al, ah out dx, al ; 顯示一位八段管 push ax mov ah, 1 call Delay pop ax shr ah, 1 inc bx dec cl jnz DLoop mov dx, OUTBIT mov al, 0 out dx,al ; 關(guān)所有八段管 retDisplayLED endpTestKey proc near mov dx, OUTBIT mov al, 0 out dx, al ; 輸出線置為0 mo

11、v dx, IN_KEY in al, dx ; 讀入鍵狀態(tài) not al and al, 0fh ; 高四位不用 retTestKey endpGetKey proc near mov ch, 00100000b mov cl, 6KLoop: mov dx, OUTBIT mov al, ch ; 找出鍵所在列 not al out dx, al shr ch, 1 mov dx, IN_KEY in al, dx not al and al, 0fh jne Goon_ ; 該列有鍵入 dec cl jnz KLoop mov cl, 0ffh ; 沒有鍵按下, 返回 0ffh jmp

12、Exit1Goon_: dec cl shl cl, 2 ; 鍵值 = 列 X 4 + 行 mov ch, 4LoopC: test al, 1 jnz Exit1 shr al, 1 inc cl dec ch jnz LoopCExit1: mov dx, OUTBIT mov al, 0 out dx, al mov ch, 0 mov bx, offset KeyTable add bx, cx mov al, bx ; 取出鍵碼 mov bl, alWaitRelease: mov dx, OUTBIT mov al, 0 out dx, al ; 等鍵釋放 mov ah, 10 c

13、all Delay call TestKey jne WaitRelease mov al, bl retGetKey endpIInit proc near ; 8251初始化 mov dx, CS8251C mov al, 01001111b ; 1停止位,無校驗(yàn),8數(shù)據(jù)位, x64 out dx, al mov al, 00010101b ; 清出錯(cuò)標(biāo)志, 允許發(fā)送接收 out dx, al retIInit endpSend proc near ; 串口發(fā)送 mov dx, CS8251C mov al, 00010101b ; 清出錯(cuò),允許發(fā)送接收 out dx, alWaitTXD

14、: in al, dx test al, 1 ; 發(fā)送緩沖是否為空 jz WaitTXD mov al, TBuf ; 取要發(fā)送的字 mov dx, CS8251D out dx, al ; 發(fā)送 push cx mov cx,0ffffh loop $ pop cx retSend endpReceive proc near ; 串口接收 mov dx, CS8251CWaitRXD: in al, dx test al, 2 ; 是否已收到一個(gè)字 je WaitRXD mov dx, CS8251D in al, dx ; 讀入 mov RBuf, al retReceive endpst

15、art proc near mov ax, data mov ds, ax call IInit mov LEDBuf, 0ffh ; 顯示 8.8.8.8. mov LEDBuf+1, 0ffh mov LEDBuf+2, 0ffh mov LEDBuf+3, 0ffh mov LEDBuf+4, 0ffh mov LEDBuf+5, 0ffhMLoop: call DisplayLED ; 顯示 mov dx, CS8251C in al, dx ; 是否接收到一個(gè)字 test al, 2 jnz RcvData call TestKey ; 有鍵入? je MLoop ; 無鍵入, 繼續(xù)顯示 call GetKey ; 讀入鍵碼 and al, 0fh ; 顯示鍵碼 mov TBuf, al mov al, TBuf and al, 0fh ; 只顯示低四位 mov ah, 0 mov bx, offset LEDMAP add bx, ax mov

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論