微機原理課程設計報告書_第1頁
微機原理課程設計報告書_第2頁
微機原理課程設計報告書_第3頁
微機原理課程設計報告書_第4頁
微機原理課程設計報告書_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 . . . 課程名稱: 微機接口技術 : 鄧 有 強 學號: 5 院系部: 職業(yè)技術學院 專業(yè): 計算機應用技術 指導教師: 馬 慧 2010年12月31日25 / 26前 言微機原理與接口技術是計算機應用專業(yè)必修的一門課程,通過這門課我們能夠知道計算機部的工作原理,各部件的作用;各部件間的聯(lián)系;學習了匯編語言和指令系統(tǒng)能讓我們進行簡單的程序設計;但是我們在課堂上學習的都是些理論方面的知識,沒有進行過真正的實際接觸。正所謂,“實踐是檢驗真理的唯一標準”,只有通過真正的接觸,實際的操作,我們才能將理論知識和實際應用聯(lián)系在一起,真正的將理論實際化;這才將學院的職業(yè)教育與我們的課程緊密的聯(lián)系在一起

2、,符合我們??茖哟蔚慕虒W目標。因此,學校組織我們進行了為期兩個星期的課程設計,讓我們能夠有機會接觸真正的硬件,這不僅豐富鞏固了我們在課堂上學的知識,而且還為我們日后步入社會打下了基礎。本次課程設計我們小組設計的是雙機的串行通信,本書中包含了此實驗硬件方面的電路接線情況,硬件實現(xiàn)代碼和軟件實現(xiàn)的代碼;總結成書,日后自己真正走上工作崗位時回關看看也是一段美好的回憶目 錄一、設計目的4二、設計題目與要求4三、電路與連線設計41、8251A的基本性能42、8251A的部結構53、實驗接線圖64、實踐操作接線圖6四、使用說明91、硬件操作過程92、軟件操作過程9五、流程圖設計14六、程序設計如下151、

3、硬件實現(xiàn)代碼152、軟件實現(xiàn)代碼19七、總結25一、 設計任務與要求:設計一個雙機串行通信系統(tǒng),用軟件編程和硬件實驗來實現(xiàn)。具體要求:1) 用二臺8086K通過8251進行雙機通訊,一臺作為發(fā)送,另一臺作為接收,發(fā)送方讀入按鍵值,并發(fā)送給接收方,接收方收到數(shù)數(shù)據(jù)后在數(shù)碼管上顯示。2) 8251A的發(fā)送/接收時鐘信號由8253分頻提供,波特率可選擇9600或其他;數(shù)碼管和LED分別通過8255A接入。3) 硬件操作用DICE-8086K微機接口原理實驗器材來實現(xiàn);軟件操作可用匯編語言、VB、C語言等來實現(xiàn)。4) 采用中斷法方案實現(xiàn)。指導教師簽名: 年 月 日 二、 指導教師評語:指導教師簽名:

4、年 月 日 三、 成績:驗收蓋章: 年 月 日 一、 設計目的1. 了解串行通訊的一般原理和8251A的工作原理。2. 初步了解RS232串行接口標準與TTL電路的連接方法。3. 掌握825lA編程方法。4. 通過課程設計加深理解課堂教學容,掌握計算機接口技術的基本應用方法。5. 掌握常用接口電路的設計,掌握8255A、8253、8259A、8251A、ADC0809等接口芯片的應用和編程方法,做到理論聯(lián)系實際。二、 設計題目與要求1. 課題名稱:雙機串行通信系統(tǒng)設計2. 課題要求:設計一個雙機串行通信系統(tǒng),用軟件編程和硬件實驗來實現(xiàn)。具體要求:1) 用二臺8086K通過8251進行雙機通訊,

5、一臺作為發(fā)送,另一臺作為接收,發(fā)送方讀入按鍵值,并發(fā)送給接收方,接收方收到數(shù)數(shù)據(jù)后在數(shù)碼管上顯示。2) 8251A的發(fā)送/接收時鐘信號由8253分頻提供,波特率可選擇9600(供參考)或其他;數(shù)碼管和LED分別通過8255A接入。3) 硬件操作用DICE-8086K微機接口原理實驗器材來實現(xiàn);軟件操作可用匯編語言、VB、C語言等來實現(xiàn)。4) 采用中斷法方案實現(xiàn)。3. 分組情況8人1組(自由搭配)4. 任務分配硬件代碼:(旭東、鄧有強)軟件實現(xiàn):(譚開群、於)流 程 圖:(施章玲 、詹沙麗)硬件操作:(益宇、吳江華)報告設計:(巍?。┤?電路與連線設計1、 8251A的基本性能8251A是可編

6、程的串行通信接口芯片,基本性能:1) 兩種工作方式:同步方式,異步方式。同步方式下,波特率為0.64K,異步方式下,波特率為019.2K。2) 同步方式下的格式每個字符可以用5、6、7或8位來表示,并且部能自動檢測同步字符,從而實現(xiàn)同步。除此之外,8251A也允許同步方式下增加奇/偶校驗位進行校驗。3) 異步方式下的格式每個字符也可以用5、6、7或8位來表示,時鐘頻率為傳輸波特率的1、16或64倍,用1位作為奇/偶校驗。1個啟動位。并能根據(jù)編程為每個數(shù)據(jù)增加1個、1.5個或2個停止位。可以檢查假啟動位,自動檢測和處理終止字符。4) 全雙工的工作方式其部提供具有雙緩沖器的發(fā)送器和接收器。5) 提

7、供出錯檢測具有奇偶、溢出和幀錯誤三種校驗電路。2、 8251A的部結構1) 發(fā)送器發(fā)送器由發(fā)送緩沖器和發(fā)送控制電路兩部分組成。采用異步方式,則由發(fā)送控制電路在其首尾加上起始位和停止位,然后從起始位開始,經(jīng)移位寄存器從數(shù)據(jù)輸出線TXD逐位串行輸出。采用同步方式,則在發(fā)送數(shù)據(jù)之前,發(fā)送器將自動送出1個或2個同步字符,然后才逐位串行輸出數(shù)據(jù)。2) 接收器接收器由接收緩沖器和接收控制電路兩部分組成。接收移位寄存器從RXD引腿上接收串行數(shù)據(jù)轉換成并行數(shù)據(jù)后存入接收緩沖器。3) 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是CPU與8251A之間的數(shù)據(jù)接口。包含3個8位的緩沖寄存器:兩個寄存器分別用來存放CPU向8251

8、A讀取的數(shù)據(jù)或狀態(tài)信息。一個寄存器用來存放CPU向8251A寫入的數(shù)據(jù)或控制。8251A的各引腳功能與其硬件編程方式選擇控制字、操作命令控制字和狀態(tài)字由于大家已經(jīng)相當熟悉,此處就不再贅余。3、 實驗接線圖電路圖說明:1) TxC和RxC分別為8251A的發(fā)送時鐘和接收時鐘,由片外8253的OUT1 提供。2) 8251片選信號825l CS接譯碼輸ntu出3F8H-3FFH(系統(tǒng)上已連接)。3) CTS 端必須接低電平(已接好),825lA才可向外發(fā)送數(shù)據(jù),其它回答信號RTS、DTR、DSR不用。4) RxRDY、TxRDY為允許接收和允許發(fā)送信號,由于在本系統(tǒng)中使用查詢方式進行通訊,這兩個信

9、號線不用,中斷方式時,這兩個信號分別作發(fā)送/接收時的中斷申請信號。4、 實踐操作接線圖1) 兩機接線圖2) 二號機設置圖3) 一號機設置圖4) 雙機通訊圖5) 按下“MON”一號機顯示“Good”四、使用說明1、 硬件操作過程1) 準備2臺8086K實驗機,確定l號機為發(fā)送,2號機為接收。2) 連接:CLK11.8432M,GATE15V,OUT1T/RXC,JX0JX20。 1號機和2號機的RXD、TXD交叉相連,且兩機共地。3) 先運行2號機,在2號機處于命令提示符“P.”狀態(tài)下,按SCAL鍵,再輸入13F0,按EXEC鍵,即進入等待接收狀態(tài),顯示器顯示825l-2。4) 注意:串行接收實

10、驗的有關容詳見實驗九。5) 再運行1號機,在l號機處于命令提示符“P.”狀態(tài)下,按SCAL鍵,再輸入1510,按EXEC鍵,即可進入串行發(fā)送狀態(tài),顯示器顯示8251-1。6) 在l號機鍵盤上按動數(shù)字鍵,在2號機的顯示器上應顯示對應數(shù)字鍵值。當1號機上按“MON”鍵時,1號機即顯示good,此時可按RST鍵退出。2、 軟件操作過程操作步驟:1) 準備2臺8086K實驗機,確定l號機為發(fā)送,2號機為接收。2) 連接:CLK11.8432M,GATE15V,OUT1T/RXC,JX0JX20。 1號機和2號機的RXD、TXD交叉相連,且兩機共地。3) 先運行2號機,在2號機處于命令提示符“P.”狀態(tài)

11、下,按SCAL鍵,再輸入13F0,按EXEC鍵,即進入等待接收狀態(tài),顯示器顯示825l-2。4) 注意:串行接收實驗的有關容詳見實驗九。5) 再運行1號機,在l號機處于命令提示符“P.”狀態(tài)下,按SCAL鍵,再輸入1510,按EXEC鍵,即可進入串行發(fā)送狀態(tài),顯示器顯示8251-1。6) 在l號機鍵盤上按動數(shù)字鍵,在2號機的顯示器上應顯示對應數(shù)字鍵值。當1號機上按“MON”鍵時,1號機即顯示good,此時可按RST鍵退出。操作過程中的界面圖如下: 1)、初始狀態(tài)界面2)、二號機和一號的設置界面3)、雙機通訊界面五、流程圖設計六、程序設計如下1、硬件實現(xiàn)代碼CODE SEGMENT ;H8251

12、T.ASM ASSUME CS:CODESECOPORT EQU 03F9HSEDAPORT EQU 03F8HPA EQU 0FF21H ;字位口PB EQU 0FF22H ;字形口PC EQU 0FF23H ;鍵入口WATTXD: MOV DX,SECOPORT IN AL,DX TEST AL,01H JZ WATTXD MOV AL,KZ MOV DX,SEDAPORT OUT DX,AL WATRXD: MOV DX,SECOPORT IN AL,DX TEST AL,02H JZ WATRXD MOV DX,SEDAPORT IN AL,DX CMP KZ,AL JZ seri2

13、CALL BUF3 ;DISP:err sererr: CALL DISP JMP sererr seri2: mov cx,0018h ser3: push cx call disp pop cx loop ser3 jmp redikey funckey: CMP KZ,1FH JNZ REDIKEY call buf2 ;good monit: CALL DISP JMP monit dispkey: call disp call key mov ah,al ;newkey mov bl,ltime ;ltime mov bh,lkey ;lkey mov al,01h mov dx,0

14、ff21h out dx,al cmp ah,bh mov bh,ah ;bh=new key mov ah,bl ;al=time jz disk4 mov bl,88h mov ah,88h disk4: dec ah cmp ah,82h jz disk6 cmp ah,0eh jz disk6 cmp ah,00h jz disk5 mov ah,20h dec bl jmp disk7key: mov al,0ffh mov dx,0ff22h out dx,al mov bl,00h mov ah,0feh mov cx,08hkey1: mov al,ah mov dx,0ff2

15、1h out dx,al rol al,01h mov ah,al nop nop nop nop nop nop mov dx,0ff23h in al,dx not al nop nop and al,0fh jnz key2 inc bl loop key1 jmp nkeykey2 : test al,01h je key3 mov al,00h jmp key6key3: test al,02h je key4 mov al,08h jmp key6key4: test al,04h je key5 mov al,10h jmp key6key5: test al,08h je nk

16、ey mov al,18hkey6: add al,bl cmp al,10h jnc fkey mov bl,al mov bh,0h mov si,offset data2 mov al,bx+si retCODE SEGMENT ;H8251R.ASM ASSUME CS:CODEfor8251: call t8253 mov al,65h out dx,al mov dx,03f9h mov al,25h out dx,al mov dx,03f9h mov al,65h out dx,al mov dx,03f9h mov al,4eh out dx,al mov dx,03f9h

17、mov al,25h out dx,al retT8253: MOV DX,43H MOV AL,76H out dx,al MOV DX,41H MOV AL,0CH out dx,al MOV DX,41H MOV AL,00H out dx,al mov dx,03F9H mov dx,03f9h RETBUF1: MOV BUF,08HMOV BUF+1,02HMOV BUF+2,05HMOV BUF+3,01HMOV BUF+4,17HMOV BUF+5,02H RETcode ends END START2、軟件實現(xiàn)代碼Dim a As IntegerDim b As Intege

18、rPrivate Sub Command1_Click(Index As Integer) Timer1.Enabled = False Timer2.Enabled = False Static str As StringIf Label1(0).Caption = 8 And Label1(1).Caption = 2 And Label1(2).Caption = 5 And Label1(3).Caption = 1 And Label1(4).Caption = - And Label1(5).Caption = 1 And Label1(6).Caption = 8 And Lab

19、el1(7).Caption = 2 And Label1(8).Caption = 5 And Label1(9).Caption = 1 And Label1(10).Caption = - And Label1(11).Caption = 2 Then For i = 0 To 11 Label1(i).Caption = Next i Label1(6).Caption = Command1(Index).CaptionElseIf Label1(6).Caption = str Then Label1(6).Caption = Command1(Index).CaptionElse

20、Label1(a Mod 6).Caption = Command1(Index).Caption a = a + 1End If str = Command1(Index).CaptionEnd SubPrivate Sub Command10_Click()Timer4.Enabled = TrueTimer5.Enabled = FalseTimer6.Enabled = FalseFor i = 7 To 11Label1(i).Caption = Next iLabel1(6).Caption = P.For j = 0 To 15Command3(j).Enabled = True

21、Next jEnd SubPrivate Sub Command11_Click()For j = 0 To 5Command2(j).Enabled = FalseNext jIf Command11.Caption = 開機 Then Command11.Caption = 關機Frame1.Enabled = True Timer1.Enabled = TrueElseIf Command11.Caption = 關機 Then Command11.Caption = 開機 Frame1.Enabled = FalseTimer1.Enabled = False Timer2.Enabl

22、ed = FalseTimer3.Enabled = FalseFor i = 0 To 5Label1(i).Caption = Next iEnd IfEnd SubPrivate Sub Command12_Click()For j = 0 To 5Command4(j).Enabled = FalseNext jIf Command12.Caption = 開機 ThenCommand12.Caption = 關機 Frame2.Enabled = TrueTimer4.Enabled = TrueElseIf Command12.Caption = 關機 Then Command12

23、.Caption = 開機 Frame2.Enabled = FalseTimer4.Enabled = False Timer5.Enabled = FalseTimer6.Enabled = False For i = 6 To 11 Label1(i).Caption = Next iEnd IfEnd SubPrivate Sub Command2_Click(Index As Integer)For i = 6 To 11Label1(i).Caption = Next iLabel1(0).Caption = gLabel1(1).Caption = oLabel1(2).Capt

24、ion = oLabel1(3).Caption = dLabel1(4).Caption = Label1(5).Caption = End SubPrivate Sub Command3_Click(Index As Integer)Timer1.Enabled = FalseTimer2.Enabled = FalseLabel1(b Mod 6 + 6).Caption = Command3(Index).Captionb = b + 1End SubPrivate Sub Command5_Click()counter = 0a = 0Timer1.Enabled = FalseTi

25、mer2.Enabled = TrueTimer3.Enabled = FalseLabel1(0).Caption = - Label1(1).Caption = - For i = 2 To 5Label1(i).Caption = Next iEnd SubPrivate Sub Command6_Click()If Label1(0).Caption = 1 And Label1(1).Caption = 3 And Label1(2).Caption = F And Label1(3).Caption = 0 And Label1(4).Caption = And Label1(5)

26、.Caption = ThenLabel1(0).Caption = 8Label1(1).Caption = 2Label1(2).Caption = 5Label1(3).Caption = 1Label1(4).Caption = - Label1(5).Caption = 1End IfEnd SubPrivate Sub Command7_Click()If Label1(6).Caption = 1 And Label1(7).Caption = 5 And Label1(8).Caption = 1 And Label1(9).Caption = 0 And Label1(10)

27、.Caption = And Label1(11).Caption = ThenLabel1(6).Caption = 8: Label1(7).Caption = 2Label1(8).Caption = 5: Label1(9).Caption = 1Label1(10).Caption = - : Label1(11).Caption = 2End IfEnd SubPrivate Sub Command8_Click()counter1 = 0b = 0Timer4.Enabled = FalseTimer5.Enabled = TrueTimer6.Enabled = FalseLa

28、bel1(6).Caption = - Label1(7).Caption = - For i = 8 To 11 Label1(i).Caption = Next iEnd SubPrivate Sub Command9_Click()Timer1.Enabled = TrueTimer2.Enabled = FalseTimer3.Enabled = FalseFor i = 1 To 5 Label1(i).Caption = Next iLabel1(0).Caption = P.For j = 0 To 15Command1(j).Enabled = TrueNext jEnd Su

29、bPrivate Sub Form_Load() Frame1.Enabled = False Frame2.Enabled = False End SubPrivate Sub Timer1_Timer() If Label1(0).Caption = Then Label1(0).Caption = P. ElseIf Label1(0).Caption = P. Then Label1(0).Caption = End IfEnd SubPrivate Sub Timer2_Timer()If Label1(0).Caption = - And Label1(1).Caption = -

30、 Then Label1(0).Caption = : Label1(1).Caption = ElseIf Label1(0).Caption = And Label1(1).Caption = Then Label1(0).Caption = - : Label1(1).Caption = - End IfFor j = 0 To 15Command1(j).Enabled = FalseNext jStatic counter As Integer counter = counter + 1 If counter = 14 Then Timer1.Enabled = True Timer

31、2.Enabled = False For i = 0 To 5Label1(i).Caption = Next i Label1(0).Caption = P. For j = 0 To 15 Command1(j).Enabled = True Next j End IfEnd SubPrivate Sub Timer3_Timer()Label1(0).Caption = - Label1(1).Caption = - For Index = 0 To 15 Command1(Index).Enabled = FalseNext IndexEnd SubPrivate Sub Timer

32、4_Timer()If Label1(6).Caption = Then Label1(6).Caption = P.ElseIf Label1(6).Caption = P. Then Label1(6).Caption = End IfEnd SubPrivate Sub Timer5_Timer()If Label1(6).Caption = - And Label1(7).Caption = - Then Label1(6).Caption = : Label1(7).Caption = ElseIf Label1(6).Caption = And Label1(7).Caption

33、= Then Label1(6).Caption = - : Label1(7).Caption = - End IfFor i = 0 To 15 Command3(i).Enabled = FalseNext iStatic counter1 As Integercounter1 = counter1 + 1 If counter1 = 14 Then Label1(6).Caption = P. Timer4.Enabled = True Timer5.Enabled = False For i = 6 To 11Label1(i).Caption = Next i For i = 0

34、To 15 Command3(i).Enabled = True Next i End IfEnd SubPrivate Sub Timer7_Timer()If Label1(0).Caption = 8 And Label1(1).Caption = 2 And Label1(2).Caption = 5 And Label1(3).Caption = 1 And Label1(4).Caption = - And Label1(5).Caption = 1 And Label1(6).Caption = 8 And Label1(7).Caption = 2 And Label1(8).Caption = 5 And Label1(9).Caption = 1 And Label1(10).Caption = - And Label1(11).Caption = 2 ThenCommand2(1).Enabled = TrueTimer7.Enabled = FalseEnd IfEnd Sub七、總結本學期微機原理課程即將結束,關于微機課程的心得體會甚多。初學微機原理時,感覺摸不著頭緒。面對著眾多的術語、概念與原理性的問題不知道該如何下手。在了解課程的特點后,我發(fā)現(xiàn),應該以微機的整機概念為突破口,在如何建立整體概念上下功夫。“麻雀雖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論