版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課 程 設(shè) 計(jì)</b></p><p> 課程名稱 接口與通信 </p><p> 題目名稱 雙機(jī)通信 </p><p> 學(xué)生學(xué)院 </p><p> 專業(yè)班級(jí) </p><p>
2、; 學(xué) 號(hào) </p><p> 學(xué)生姓名 </p><p> 指導(dǎo)教師 </p><p><b> 一、設(shè)計(jì)目的</b></p><p> 了解PC機(jī)串行口的使用和編程。</p><p><b> 二、設(shè)計(jì)所
3、需設(shè)備</b></p><p> PC機(jī),RS-232C插座及連線。</p><p><b> 三、設(shè)計(jì)任務(wù)</b></p><p> 1、用RS-232C的零MODEM的連接法連好兩機(jī)的連線;</p><p> 2、編一程序,將一臺(tái)機(jī)的鍵盤輸入的鍵值通過RS-232C口送到另一臺(tái)機(jī)上;</p&
4、gt;<p> 3、編一程序,通過RS-232C口進(jìn)行一臺(tái)機(jī)到另一臺(tái)機(jī)的文件復(fù)制。</p><p> 了解PC機(jī)串行口的使用方法,編程使得PC機(jī)內(nèi)的COM1和COM2或者PC機(jī)之間利用COM口實(shí)現(xiàn)通訊。</p><p> 四、串行口的有關(guān)硬件資料</p><p> RS-232-C詳解</p><p> 串行通信接口標(biāo)
5、準(zhǔn)經(jīng)過使用和發(fā)展,目前已經(jīng)有幾種。但都是在RS-232標(biāo)準(zhǔn)的基礎(chǔ)上經(jīng)過改進(jìn)而形成的。所以,以RS-232C為主來(lái)討論。RS-323C 標(biāo)準(zhǔn)是美國(guó)EIA(電子工業(yè)聯(lián)合會(huì))與BELL等公司一起開發(fā)的1969 年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在0~20000b/s 范圍內(nèi)的通信。這個(gè)標(biāo)準(zhǔn)對(duì)串行通信接口的有關(guān)問題,如信號(hào)線功能、電器特性都作了明確規(guī)定。由于通行設(shè)備廠商都生產(chǎn)與RS-232C制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn),目前已在
6、微機(jī)通信接口中廣泛采用。</p><p> RS-232C 標(biāo)準(zhǔn)(協(xié)議)的全稱是EIA-RS-232C 標(biāo)準(zhǔn),其中EIA(Electronic IndustryAssociation)代表美國(guó)電子工業(yè)協(xié)會(huì),RS(ecommeded standard)代表推薦標(biāo)準(zhǔn),232是標(biāo)識(shí)號(hào),C代表RS232 的最新一次修改(1969),在這之前,有RS232B、RS232A。。它規(guī)定連接電纜和機(jī)械、電氣特性、信號(hào)功能及傳送
7、過程。常用物理標(biāo)準(zhǔn)還有有EIA�RS-232-C、EIA�RS-422-A、EIA�RS-423A、EIA�RS-485。這里只介紹EIA�RS-232-C(簡(jiǎn)稱232,RS232)。例如,目前在IBM PC 機(jī)上的COM1、COM2 接口,就是RS-232C接口。</p><p> 1. 9芯RS-232C接口標(biāo)準(zhǔn)</p>&
8、lt;p> 引腳1:CD, 載體檢測(cè);</p><p> 引腳2:RXD,接收數(shù)據(jù);</p><p> 引腳3:TXD,發(fā)送數(shù)據(jù);</p><p> 引腳4:DTR,終端準(zhǔn)備好;</p><p><b> 引腳5:信號(hào)地;</b></p><p> 引腳6:DSR,MODEM準(zhǔn)備
9、好;</p><p> 引腳7:RTS,請(qǐng)求發(fā)送;</p><p> 引腳8:CTS,消除發(fā)送;</p><p> 引腳9:RI,響鈴指示;</p><p> 2. 9芯RS-232C的零MODEM的連接方法</p><p> 3. Intel 8250可編程異步通信接口內(nèi)部寄存器</p>&
10、lt;p> (1) 線路控制寄存器</p><p> (2) 線路狀態(tài)寄存器</p><p> (3) 中斷識(shí)別寄存器</p><p> (4) 中斷允許寄存器</p><p> (5) MODEM控制寄存器</p><p> (6) MODEM狀態(tài)寄存器</p><p>
11、(7) 可編程波特率發(fā)生器</p><p> DLAB=1時(shí), 向3F9H/2F9H(高八位),3F8H/2F8H(低八位)寫入—16位數(shù),即可對(duì)1.8432MHz的時(shí)鐘分頻,使得串行口的波特率.</p><p> 公式為:波特率=1843200÷(分頻值×16) (輸入頻率為1.8432MHz)</p><p><b> 五.
12、方案設(shè)計(jì)</b></p><p> 用串口電纜將兩臺(tái)機(jī)算機(jī)的COM2連接起來(lái),把計(jì)算機(jī)設(shè)置成空MODEM方式,并為此編制了兩個(gè)匯編語(yǔ)言程序:其一為數(shù)據(jù)發(fā)送程序;其二為數(shù)據(jù)接收程序。為了確保每個(gè)字符發(fā)送出去,并且被接收,發(fā)送接收雙方的波特率設(shè)置一致,并且均采取查詢方式進(jìn)行下一步操作。接收數(shù)據(jù)程序只需執(zhí)行一次,即駐留在內(nèi)存中,此后,只要Ⅱ號(hào)計(jì)算機(jī)有數(shù)據(jù)要發(fā)送,則Ⅰ號(hào)機(jī)隨時(shí)接收并顯示在屏幕上。</p
13、><p> 本次設(shè)計(jì)中信息的傳送采取查詢方式,并且兩臺(tái)計(jì)算機(jī)是單工工作方式(一方發(fā)送,一方接收),這樣簡(jiǎn)化了程序設(shè)計(jì)過程。</p><p><b> 六、實(shí)現(xiàn)與測(cè)試</b></p><p><b> 程序框圖:</b></p><p> 主程序 輸入子過程
14、 </p><p><b> ??;發(fā)送方</b></p><p> DATA SEGMENT</p><p> MESS1 DB 0DH,0AH,'PLEASE INPUT THE MESSEGE YOU WANT TO SENT:',0DH,0AH,'$'</p
15、><p> MESS2 DB 0DH,0AH,'1.SENT A MESSEGE',0DH,0AH,'2.EXIT',0DH,0AH,0DH,0AH,0DH,0AH,'PLEASE MAKE A CHOICE:' ,"$"</p><p> MESS3 DB 0d
16、h,0ah,'error! please select again:', "$"</p><p> DATA ENDS</p><p> STACK SEGMENT</p><p> DW 100 DUP(?)</p><p> STACK ENDS</p><
17、p> CODE SEGMENT</p><p> ASSUME DS:DATA,SS:STACK,CS:CODE</p><p> MAIN: MOV AX,DATA</p><p> MOV DS,AX</p><p> ;設(shè)置傳輸率,采用1200bps--寫入除數(shù)寄存器</p><p>
18、 MOV AL,80H</p><p> MOV DX,3FBH</p><p> OUT DX,AL ;寫入通信線路控制寄存器,使DLAB=1</p><p> MOV AX,12 ;分頻系數(shù):1.8432MHZ/(9600*16)=12</p><p>
19、 MOV DX,3F8H</p><p> OUT DX,AL ;寫入除數(shù)寄存器低8位</p><p> MOV AL,AH</p><p><b> INC DX</b></p><p> OUT DX,AL</p><p> ;寫入通信
20、線路控制寄存器,使DLAB=0</p><p> ;假設(shè)有一個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,奇校驗(yàn)</p><p> MOV AL,00001011B</p><p> MOV DX,3FBH</p><p> OUT DX,AL</p><p><b> ;禁止所有中斷</b>
21、</p><p><b> MOV AL,0</b></p><p> MOV DX,3F9H</p><p> OUT DX,AL</p><p> TISHI: LEA DX,MESS2 ;顯示提示信息</p><p> MOV AH,09H
22、</p><p><b> INT 21H</b></p><p> WAIT0: MOV AH,0BH ;等待鍵盤輸入</p><p> INT 21H ;DOS功能調(diào)用,檢驗(yàn)鍵盤狀態(tài)</p><p> CMP AL,0FFH
23、 ;AL=FF時(shí)無(wú)輸入,AL=00時(shí)有輸入</p><p> JE WAIT0 ;無(wú)輸入,返回等待</p><p> MOV AH,0 </p><p> INT 16H ;BIOS中斷功能調(diào)用,從鍵盤讀字符</p>
24、<p><b> PUSH AX</b></p><p> MOV AH,02H</p><p> MOV DL,AL</p><p> INT 21H ;DOS功能調(diào)用,顯示輸出,DL=輸出字符</p><p><b> POP AX</
25、b></p><p> CMP AL,31H ;是否選1?是,發(fā)送字符,否則繼續(xù)</p><p> JE CHOICE1</p><p> CMP AL,32H ;是否選2?是,退出dos,否則繼續(xù)</p><p> JE CHOICE2</p>
26、<p> LEA DX, MESS3 ;選擇其他項(xiàng),顯示錯(cuò)誤信息</p><p> MOV AH,09H</p><p><b> INT 21H</b></p><p> JMP TISHI</p><p> CHOICE1: CALL SENTCHAR&l
27、t;/p><p> JMP TISHI </p><p> CHOICE2: MOV AX,4C00H ;退出系統(tǒng)返回dos </p><p> INT 21H </p><p><b> ;傳輸字符</b></p><p> ;從本機(jī)向?qū)Ψ桨l(fā)送字符
28、串,同時(shí)在兩個(gè)屏幕上都顯示</p><p> ;按回車鍵,則雙方都換行,按esc鍵,雙方都退出。</p><p> SENTCHAR PROC NEAR</p><p><b> PUSH AX</b></p><p><b> PUSH DS</b></p><
29、;p> MOV AX,DATA</p><p> MOV DS,AX</p><p><b> PUSH BX</b></p><p><b> PUSH CX</b></p><p><b> PUSH DX</b></p><
30、;p> LEA DX,MESS1</p><p> MOV AH,09H</p><p> INT 21H ;顯示提示信息</p><p> ;讀取通信線路狀態(tài),查詢工作</p><p> STATUE: MOV DX,3FDH ;讀通信
31、線路狀態(tài)寄存器</p><p> IN AL,DX</p><p> AND AL,20H ;檢測(cè)保存寄存器為空嗎?</p><p> CMP AL,20H</p><p> JNZ STATUE ;不能輸出,循環(huán)查詢,能則繼續(xù)執(zhí)行</p>&
32、lt;p> KEYBOARD: MOV AH,0BH </p><p> INT 21H ;檢測(cè)鍵盤是否有輸入</p><p> CMP AL,0</p><p> JZ KEYBOARD ;無(wú)字符輸入,循環(huán)等待</p>
33、<p> MOV AH,0 ;有則讀取字符</p><p> INT 16H ;如果采用01號(hào)dos功能調(diào)用(INT 21H),則有回顯</p><p> MOV DX,3F8H ;否則將字符輸出給發(fā)送保持寄存器</p><p>
34、; OUT DX,AL ;串行發(fā)送數(shù)據(jù)</p><p> CMP AL,1BH</p><p> JZ DONE1 ;是ESC鍵,則退出程序返回dos,同時(shí)對(duì)方也返回dos</p><p> PUSH AX ;AX入棧,保護(hù)數(shù)據(jù)<
35、;/p><p> MOV DL,AL </p><p> MOV AH,02H</p><p> INT 21H ;dos功能調(diào)用,顯示輸出內(nèi)容</p><p> POP AX ;AX出棧</p><p> CMP
36、 AL,0DH ;繼續(xù)檢查是否是ENTER鍵</p><p> JNZ STATUE ;不是則繼續(xù)輸入下一個(gè)數(shù)</p><p> MOV DL,0AH</p><p> MOV AH,02H ;是,則換行</p><p>
37、 INT 21H</p><p> JMP STATUE ;換行后繼續(xù)輸入下一個(gè)數(shù)</p><p> DONE1: POP DX</p><p><b> POP CX</b></p><p><b> POP BX</b></p
38、><p><b> POP DS</b></p><p><b> POP AX</b></p><p><b> RET</b></p><p> SENTCHAR ENDP </p><p> CODE ENDS</p>
39、<p> END MAIN </p><p><b> ??;接收方</b></p><p> DATA SEGMENT </p><p> MESS DB 0DH,0AH,'WELCOME,THE DATA YOU INPUT ARE:',0DH,0AH,"$"<
40、;/p><p> DATA ENDS</p><p> STACK SEGMENT</p><p> DW 100 DUP(?)</p><p> STACK ENDS</p><p> CODE SEGMENT</p><p> ASSUME CS:CODE,SS:ST
41、ACK,DS:DATA</p><p> START: MOV AX,DATA</p><p> MOV DS,AX</p><p> ;設(shè)置傳輸率——寫入除數(shù)寄存器</p><p> MOV AL,80H</p><p> MOV DX,2FBH</p><p> OU
42、T DX,AL ;寫入通信線路控制寄存器,使DLAB=1</p><p> MOV AX,12 ;分頻系數(shù):1.8432MHZ/(9600*16)=12</p><p> MOV DX,2F8H</p><p> OUT DX,AL ;寫入除
43、數(shù)寄存器低八位</p><p> MOV AL,AH</p><p><b> INC DX</b></p><p> OUT DX,AL ;寫入除數(shù)寄存器高八位</p><p> ;寫入通信線路控制寄存器,使DLAB=0</p><p> ;
44、假設(shè)有一個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,奇校驗(yàn)</p><p> MOV AL,00001011B</p><p> MOV DX,2FBH</p><p> OUT DX,AL</p><p><b> ;禁止所有中斷</b></p><p><b> MOV AL
45、,0</b></p><p> MOV DX,2F9H</p><p> OUT DX,AL</p><p> CALL RECEIVE</p><p> MOV AX,4C00H</p><p> INT 21H</p><p> RECEIVE PR
46、OC NEAR</p><p><b> PUSH AX</b></p><p><b> PUSH BX</b></p><p><b> PUSH DX</b></p><p><b> ; 屏幕顯示信息 </b></p>
47、<p> LEA DX,MESS</p><p> MOV AH,09H</p><p> INT 21H </p><p> DDD: MOV DX,2FDH ;讀通信線路狀態(tài)寄存器</p><p> IN AL,DX</p><p> TEST
48、AL,14H ;接收有錯(cuò)誤否?</p><p> JNZ ERROR ;有錯(cuò),則轉(zhuǎn)錯(cuò)誤處理</p><p> TEST AL,01H ;接收到數(shù)據(jù)嗎?</p><p> JNZ DONE0 ;是,轉(zhuǎn)接收處處理 </p><p&
49、gt; JMP DDD ;繼續(xù)讀取下個(gè)數(shù)</p><p> DONE0: MOV DX,2F8H ;從輸入緩沖寄存器讀數(shù)據(jù)</p><p><b> IN AL,DX</b></p><p> AND AL,7FH ;傳送標(biāo)準(zhǔn)ASCII碼,采用
50、7個(gè)數(shù)據(jù)位,所以僅取低7位</p><p> PUSH AX ;保存數(shù)據(jù)</p><p> MOV DL,AL ;屏幕顯示該數(shù)據(jù)</p><p> MOV AH,02H</p><p> INT 21H</p><p> POP
51、AX ;恢復(fù)數(shù)據(jù)</p><p> CMP AL,1BH ;數(shù)據(jù)是ESC鍵嗎?</p><p> JZ DONE1 ;是則退出dos</p><p> CMP AL,0DH ;數(shù)據(jù)是回車符嗎?</p><p>
52、JNZ DDD ;不是,則循環(huán)</p><p> MOV DL,0AH ;是則換行</p><p> MOV AH,02H</p><p> INT 21H ;循環(huán),檢測(cè)下個(gè)數(shù)</p><p><b> JMP DDD&
53、lt;/b></p><p> ERROR: MOV DX,2F8H ;讀出接收有誤的數(shù)據(jù),丟掉</p><p> IN AL,DX</p><p> MOV DL,'?' ;顯示問號(hào)</p><p> MOV AH,02H</p>
54、<p> INT 21H</p><p> JMP DDD ;繼續(xù)查詢</p><p> DONE1: POP DX</p><p><b> POP BX</b></p><p><b> POP AX</b></p>
55、;<p><b> RET</b></p><p> RECEIVE ENDP</p><p> CODE ENDS </p><p> END START</p><p><b> 分析與總結(jié)</b></p><p> 通過此次
56、課程設(shè)計(jì),對(duì)匯編語(yǔ)言的認(rèn)識(shí),掌握都提高到一個(gè)新的水平,熟悉了8088基本指令的使用,掌握了用masm進(jìn)行編譯、連接并模擬運(yùn)行,對(duì)課堂知識(shí)起到了很好的補(bǔ)充和鞏固。</p><p> 實(shí)驗(yàn)心得有以下幾個(gè)方面:</p><p> 1、對(duì)程序結(jié)構(gòu)有了更深刻的了解,知道程序運(yùn)行的基本順序,對(duì)程序的三個(gè)部分以及它們之間的連續(xù)性理解更加透徹。</p><p> 2、對(duì)匯編語(yǔ)
57、言的運(yùn)用和認(rèn)識(shí)上:匯編語(yǔ)言的代碼雖然簡(jiǎn)潔,但是程序結(jié)構(gòu)不夠清晰,語(yǔ)句使用比較煩,程序可讀性不如高級(jí)語(yǔ)言。一個(gè)簡(jiǎn)單的操作可能在匯編里面要用好幾條語(yǔ)句才能實(shí)現(xiàn)。匯編語(yǔ)言的文件操作很難,調(diào)試?yán)щy,主要是其不具有可視化,內(nèi)部發(fā)生的錯(cuò)誤并不可見,而必須通過查看內(nèi)存來(lái)發(fā)現(xiàn)。</p><p> 3、通過對(duì)程序的編寫,知道只有親身動(dòng)手編寫程序、了解程序、讀懂程序才能對(duì)程序編寫過程中出現(xiàn)的問題有所了解,才能更好的解決問題,完善程
58、序的編寫。</p><p> 4、在這次實(shí)驗(yàn)中,學(xué)會(huì)了堅(jiān)持和耐心的做事。和同學(xué)們的交流也得到進(jìn)一步的提高,在某些問題上還借助互聯(lián)網(wǎng)上的幫助,并在老師的指導(dǎo)下最終完成實(shí)驗(yàn).通過這次的設(shè)計(jì),使我更進(jìn)一步認(rèn)識(shí)中斷服務(wù)程序的應(yīng)用及其編制,更加深的體會(huì)到所編制程序的擴(kuò)展性的重要性</p><p><b> 參考書目:</b></p><p> [1
59、]余永權(quán),湯榮江.《計(jì)算機(jī)接口與通信》,華南理工大學(xué)出版社,2005年.</p><p> [2]譚浩強(qiáng),《C程序設(shè)計(jì)》,清華大學(xué)出版社,2005年。</p><p> [3]沈美明,溫東嬋?!禝BM-PC匯編語(yǔ)言程序設(shè)計(jì)》,清華大學(xué)出版社,2008年。</p><p> [4]鄭阿奇,丁有和?!禫ISUAL C++教程》,機(jī)械工業(yè)出版社,2008年。<
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 接口課程設(shè)計(jì)報(bào)告——雙機(jī)通信
- 雙機(jī)通信課程設(shè)計(jì)
- 雙機(jī)通信課程設(shè)計(jì)
- 雙機(jī)通信課程設(shè)計(jì)
- 雙機(jī)串行通信課程設(shè)計(jì)
- 雙機(jī)通信課程設(shè)計(jì)報(bào)告
- 雙機(jī)通訊課程設(shè)計(jì)報(bào)告--雙機(jī)通信的設(shè)計(jì)
- 接口與通信課程設(shè)計(jì)---雙擊串行通信
- 測(cè)控課程設(shè)計(jì)報(bào)告---雙機(jī)通信
- 課程設(shè)計(jì) 雙機(jī)串行通信的實(shí)現(xiàn)
- 微型計(jì)算機(jī)接口技術(shù)課程設(shè)計(jì)---雙機(jī)通信
- 課程設(shè)計(jì)--單片機(jī)雙機(jī)通信系統(tǒng)
- 單片機(jī)雙機(jī)通信系統(tǒng)-課程設(shè)計(jì)
- 雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)
- 接口與通信課程設(shè)計(jì)--雙pc通信系統(tǒng)設(shè)計(jì)
- 單片機(jī)雙機(jī)通信課程設(shè)計(jì)報(bào)告
- 微機(jī)原理課程設(shè)計(jì)報(bào)告-雙機(jī)串行通信
- 單片機(jī)課程設(shè)計(jì)-雙機(jī)通信的設(shè)計(jì)與制作
- 單片機(jī)的雙機(jī)串口通信-課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---雙機(jī)之間的串行通信設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論