微機(jī)原理課程設(shè)計(jì)搶答器_第1頁
微機(jī)原理課程設(shè)計(jì)搶答器_第2頁
微機(jī)原理課程設(shè)計(jì)搶答器_第3頁
微機(jī)原理課程設(shè)計(jì)搶答器_第4頁
微機(jī)原理課程設(shè)計(jì)搶答器_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、【精品文檔】如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流微機(jī)原理課程設(shè)計(jì)搶答器.精品文檔.西安郵電大學(xué)硬件課程設(shè)計(jì)報(bào)告題 目: 搶 答 器院系名稱:計(jì)算機(jī)學(xué)院 專業(yè)名稱:班 級(jí): 學(xué)生姓名:學(xué)號(hào)(8位):指導(dǎo)教師:設(shè)計(jì)起止時(shí)間1. 設(shè)計(jì)目的 用邏輯開關(guān)模擬競(jìng)賽搶答器按鈕(共8個(gè)開關(guān):K0 K7)當(dāng)某個(gè)邏輯開關(guān)置“1”時(shí),相當(dāng)某組搶答按鈕按下。在七段數(shù)碼管上將其組號(hào)(07)顯示出來,若為0表示無人搶答。從鍵盤上按空格鍵開始下一輪搶答,按 <ESC>鍵 退出程序。二. 設(shè)計(jì)內(nèi)容 1.選用元器件:(1)、并行接口8255:通過編程來指定它要完成的功能,是并行數(shù)字設(shè)備與微機(jī)間的接口。8255用

2、于輸入搶答信息,并輸出正確的序號(hào)給數(shù)碼管,以及控制LED燈的亮滅。本設(shè)計(jì)中8255A的地址范圍設(shè)置為1400H1403H,其中控制口地址為1403H。而且使用了8255A的A口,B口和C口。它們均工作在方式0下,其中A口和C口為輸出,B口為輸入。 (2)、數(shù)碼管:指示先搶答的組號(hào)。(3)、二極管:指示搶答。(4)、開關(guān):作為搶答者的按鈕。2.基礎(chǔ)實(shí)驗(yàn)一:8255基本輸入輸出能夠在自行設(shè)計(jì)的接口開發(fā)板上,實(shí)現(xiàn)撥動(dòng)開關(guān)控制LED的亮滅。(軟件代碼命名為:8255.ASM,代碼要求用小寫字母,且必須經(jīng)過優(yōu)化,源代碼小于<95行,每條指令算1行,偽指令也算1行)3.基礎(chǔ)實(shí)驗(yàn)二:流水燈設(shè)計(jì)實(shí)現(xiàn)能夠

3、在自行設(shè)計(jì)的接口開發(fā)板上,實(shí)現(xiàn)撥動(dòng)不同開關(guān)控制LED燈的變化。例如,K1從左往右,K2從右往左,K3從中間向兩邊,K4從兩邊向中間依次亮滅變化,按主機(jī)鍵盤任意鍵退出。(軟件代碼命名為:TEST2.ASM,代碼要求用小寫字母,且必須經(jīng)過優(yōu)化,源代碼小于<85行,每條指令算1行,偽指令也算1行)4.基礎(chǔ)實(shí)驗(yàn)三:數(shù)碼管應(yīng)用能夠在自行設(shè)計(jì)的接口開發(fā)板上,上電數(shù)碼管顯示0到7,實(shí)現(xiàn)撥動(dòng)不同開關(guān),數(shù)碼管顯示該開關(guān)位置值(1-8);若同時(shí)撥動(dòng)兩個(gè)以上開關(guān),則數(shù)碼管顯示“E”。(軟件代碼命名為:8SEGMENT.ASM,代碼要求用小寫字母,且必須經(jīng)過優(yōu)化,源代碼小于<100行,每條指令算1行,偽指

4、令也算1行)5搶答器:用邏輯開關(guān)模擬競(jìng)賽搶答器按鈕(共8個(gè)開關(guān):K0 K7)當(dāng)某個(gè)邏輯開關(guān)置“1”時(shí),相當(dāng)某組搶答按鈕按下。在七段數(shù)碼管上將其組號(hào)(07)顯示出來,若為0表示無人搶答。從鍵盤上按空格鍵開始下一輪搶答,按 <ESC>鍵 退出程序。三概要設(shè)計(jì)1功能模塊圖; 開始初始化開始搶答?有組搶答?判斷搶答小組號(hào)?LED燈顯示是否是否結(jié)束2 所用芯片8255引腳圖3. 搶答器電路圖四詳細(xì)設(shè)計(jì) 1. 實(shí)驗(yàn)步驟 (1)、在實(shí)驗(yàn)箱上連接8255的WR、CS、RD、D0-D7、A1A0以及8255輸入輸出端口A,B,C口連接到led燈、8段數(shù)碼管、開關(guān)上。硬件電路搭建完畢。(2)、在TDP

5、IT上篇寫匯編程序,進(jìn)行測(cè)試。(3)、在Proteus 上按照需求連接電路,為驗(yàn)證電路正確性,為其加入輸入,進(jìn)行模擬。模擬結(jié)果正確后,將電路圖保存。(4)、制作硬件電路2、遇到的問題:(1)、在8255的使用過程中,由于對(duì)控制字的使用錯(cuò)誤,導(dǎo)致不能從A、B口輸出信息,最后通過檢查,改變控制字,實(shí)現(xiàn)了功能。(2)、匯編語言的運(yùn)用。由于平時(shí)較少使用匯編語言,用匯編語言編寫程序方面存在不小的障礙,通過知識(shí)回顧復(fù)習(xí),對(duì)匯編進(jìn)一步的了解后,熟練運(yùn)用。(3)、匯編語言要求短小精悍,由于程序過長(zhǎng),在使用jnz指令時(shí),出現(xiàn)錯(cuò)誤:Relative jump out of range byte XXXXh byt

6、es。通過二度跳轉(zhuǎn),解決了這個(gè)問題。五調(diào)試情況,設(shè)計(jì)技巧及體會(huì)通過對(duì)搶答器這一課題的設(shè)計(jì)和實(shí)現(xiàn),使我更好的將理論與實(shí)踐相結(jié)合,我更加深入地理解了微機(jī)原理課程上講到的并行芯片8255的功能,以及引腳的作用,同時(shí)加深了對(duì)于該芯片的應(yīng)用的認(rèn)識(shí),同時(shí)在試驗(yàn)室的環(huán)境里熟悉了匯編程序的編寫過程和運(yùn)行過程。更重要的是通過這個(gè)實(shí)驗(yàn),進(jìn)一步掌握了程序設(shè)計(jì)的合理結(jié)構(gòu)。但要達(dá)到這樣的程度其首要條件還是要學(xué)好課本上的基礎(chǔ)知識(shí),理解每一條指令的意義。讓我感到很欣慰的是,與搭檔的合作下高效地、順利地完成本次實(shí)驗(yàn)。六參考文獻(xiàn)微機(jī)接口技術(shù)及其應(yīng)用-李育賢微型計(jì)算機(jī)原理-王忠民七附錄:源代碼(電子版) 一、8255基本輸入輸出

7、data segmentdata endscode segment assume cs:code, ds:datastart: mov dx,1403h mov al,10010000b out dx,alread: mov dx,1400h in al,dx mov dx,1401h out dx,al mov ah,1 int 16h jz read mov ah,4ch int 21h code ends end start 二、流水燈設(shè)計(jì)實(shí)現(xiàn)data segmentmy8255_a equ 1400h ;8255的A口地址my8255_b equ 1401h ;8255的B口地址my8

8、255_c equ 1402h ;8255的C口地址my8255_mode equ 1403h ;8255的控制寄存器地址mode_a db 10001001b ;控制字left db 0fehdata endscode segmentassume cs:code,ds:datastart: MOV DX, 1406H ;寫控制口MOV AL, 90H OUT DX, ALREAD: MOV DX, 1400H ;寫A端口IN AL, DX MOV DX, 1402H ;寫B(tài)端口AND AL, 01HJZ key1AND AL, 02HJZ key2AND AL, 04HJZ key3AND

9、AL, 08HJZ key4JMP READkey1:;for( i = 0; i < 5; i+);for(al = 0x08; al != 0; al >> 1)MOV CX, 5MOV AL, 08H L_TO_RCNT: PUSH CX L_TO_R: MOV CX, 8 OUT DX, AL SHL AL, 1 LOOP L_TO_R POP CXLOOP L_TO_RCNTJMP READkey2:;for( i = 0; i < 5; i+);for(al = 0x01; al != 0; al << 1)MOV CX, 5MOV AL, 01

10、HR_TO_LCNT: PUSH CX R_TO_L: MOV CX, 8 OUT DX, AL SHR AL, 1 LOOP R_TO_L POP CXLOOP R_TO_LCNTJMP READkey3:MOV CX, 5 M_TO_OCNT: MOV SI, 4 M_TO_O: MOV AL, TABLE4-SI OUT DX, AL DEC SI JNZ M_TO_OLOOP M_TO_OCNTJMP READkey4: MOV CX, 5 CNT: MOV SI, 4 O_TO_M: MOV AL, TABLESI OUT DX, AL DEC SI JNZ O_TO_MLOOP C

11、NTJMP READ;OUT DX, AL ;JMP READ mov ax, 4c00h int 21h CODEENDSend start三、數(shù)碼管應(yīng)用data segmentmy8255_a equ 1400h ;8255的A口地址my8255_b equ 1401h ;8255的B口地址my8255_c equ 1402h ;8255的C口地址my8255_mode equ 1403h ;8255的控制寄存器地址mode_a db 10001001b ;控制字data endscode segmentassume cs:code,ds:datastart: MOV DX, 1406H

12、;寫控制口MOV AL, 90H OUT DX, ALREAD: MOV DX, 1400H ;寫A端口IN AL, DX MOV DX, 1402H ;寫B(tài)端口MOV BL, AL ;保存端口讀到的值A(chǔ)1:TEST AL, 01HJNZ A2OR AL, 01HCMP AL, 0FFHJZ key1JMP keyEA2:MOV AL, BLTEST AL, 02HJNZ A3OR AL, 02HCMP AL, 0FFHJZ key2JMP keyEA3:MOV AL, BL TEST AL, 04HJNZ A4OR AL, 04HCMP AL, 0FFHJZ key3JMP keyEA4:M

13、OV AL, BL TEST AL, 08HJNZ A5OR AL, 08HCMP AL, 0FFHJZ key4JMP keyEA5:MOV AL, BL TEST AL, 10HJNZ A6OR AL, 10HCMP AL, 0FFHJZ key5JMP keyEA6:MOV AL, BL TEST AL, 20HJNZ A7OR AL, 20HCMP AL, 0FFHJZ key6JMP keyEA7:MOV AL, BL TEST AL, 40HJNZ A8OR AL, 40HCMP AL, 0FFHJZ key7JMP keyEA8:MOV AL, BL TEST AL, 80HJN

14、Z READOR AL, 80HCMP AL, 0FFHJZ key8JMP keyEkey1:MOV AL, TABLE0OUT DX, ALJMP READkey2:MOV AL, TABLE1OUT DX, ALJMP READkey3:MOV AL, TABLE2OUT DX, ALJMP READkey4:MOV AL, TABLE3OUT DX, ALJMP READkey5:MOV AL, TABLE4OUT DX, ALJMP READkey6:MOV AL, TABLE5OUT DX, ALJMP READkey7:MOV AL, TABLE6OUT DX, ALJMP RE

15、ADkey8:MOV AL, TABLE7OUT DX, ALJMP READkeyE:MOV AL, TABLE8OUT DX, ALJMP READ;OUT DX, AL ;JMP READ mov ax, 4c00h int 21h CODEENDSend start四、搶答器data segmentmy8255_a equ 1400h ;8255的A口地址my8255_b equ 1401h ;8255的B口地址my8255_c equ 1402h ;8255的C口地址my8255_mode equ 1403h ;8255的控制寄存器地址mode_a db 10001001b ;控制字

16、data endscode segmentassume cs:code,ds:datastart: MOV DX, 1406H ;寫控制口MOV AL, 90H OUT DX, ALREAD: MOV DX, 1400H ;寫A端口IN AL, DX MOV DX, 1402H ;寫B(tài)端口;倒計(jì)時(shí)過程 到了0開始搶答MOV SI, 5TIME:;延時(shí)等待MOV CX, 0FFFFHdelay:LOOP delayMOV AL, TABLESIOUT DX, ALDEC SIJNZ TIMEMOV BL, ALA1:TEST AL, 01HJZ key1A2:TEST AL, 02HJZ key

17、2A3:TEST AL, 04HCMP AL, 0FFHA4:TEST AL, 08HJZ key4A5:TEST AL, 10HJZ key5A6:TEST AL, 20HJZ key6A7:TEST AL, 40HJZ key7A8:TEST AL, 80HJZ key8;無人搶答 MOV AL, TABLE0OUT DX, ALNEXT:;等待輸入空格鍵或者Esc 到下一輪搶答或者退出程序MOV AH, 1INT 21H;CMP AL, 32;是否為 空格JZ READCMP AL, 27;是否為 EscJZ END key1:MOV AL, TABLE1OUT DX, ALJMP NEXTkey2:MOV AL, TABLE2OUT DX, ALJMP NEXTkey3:MOV AL, TAB

溫馨提示

  • 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)論