版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄(1)課程設(shè)計(jì)題目; (2)課程設(shè)計(jì)任務(wù)與要求; (3)設(shè)計(jì)過(guò)程(包括方案論證、設(shè)計(jì)原理、創(chuàng)新點(diǎn)以及采用的新技術(shù)等); (4)硬件系統(tǒng)框圖與說(shuō)明; (5)軟件主要模塊流程圖與說(shuō)明; (6)工作總結(jié)(包括自己的收獲與體會(huì);遇到的問(wèn)題和解決的方法;技術(shù)實(shí)現(xiàn)技巧和創(chuàng)新點(diǎn);作品存在的問(wèn)題和改進(jìn)設(shè)想等); (7)附錄 1、源程序及程序注釋 2、原理圖 3、參考文獻(xiàn)八路搶答器一、課程設(shè)計(jì)任務(wù)與要求:1、利用8255A,8086,8259等的硬件下,利用程序?qū)崿F(xiàn)一個(gè)搶答器的功能;2、設(shè)計(jì)具有倒計(jì)時(shí)功能的計(jì)數(shù)器;3、設(shè)計(jì)具有在外界控制下可加分,并顯示的功能;4、設(shè)計(jì)具有可以用來(lái)?yè)尨鸬墓δ?;二、設(shè)計(jì)過(guò)程1、
2、倒計(jì)時(shí)子程序:選手在主持人按了開(kāi)始鍵后搶答成功后,系統(tǒng)將調(diào)用子程序倒計(jì)時(shí)。倒計(jì)時(shí)時(shí)先顯示20秒,然后利用十位的10的循環(huán),和個(gè)位的90的循環(huán),使之依次顯示19,1801,00秒,便完成了搶答器的倒計(jì)時(shí)。具體流程圖如下:結(jié)束十位循環(huán)2?個(gè)位循環(huán)10?將個(gè)位輸出到state3,顯示個(gè)位和十位1秒十位輸出到state2顯示1秒開(kāi)始否是否2、顯示分?jǐn)?shù)子程序:程序先得到當(dāng)前選手的編號(hào),根據(jù)編號(hào)得到該選手的分?jǐn)?shù)。用cx記錄該分?jǐn)?shù)100的個(gè)數(shù),首先賦值為0,然后將該分?jǐn)?shù)與100比較,如大于100,則將該分?jǐn)?shù)減100,100的個(gè)數(shù)cx加一,如小于100,則得到該分?jǐn)?shù)100的個(gè)數(shù)cx,并得到該cx的LED字母,
3、并輸出到state1;然后用cx記錄該分?jǐn)?shù)10的個(gè)數(shù),先賦值為0,然后將該分?jǐn)?shù)與10比較,如大于10,則將該分?jǐn)?shù)減10,10的個(gè)數(shù)cx加一,如小于10,則得到該分?jǐn)?shù)10的個(gè)數(shù)cx,并得到其LED字母,輸出到state2;此時(shí)分?jǐn)?shù)已為個(gè)位數(shù),根據(jù)該個(gè)位數(shù)得到該分?jǐn)?shù)個(gè)位的LED字母,輸出到state3。具體流程圖:ax 100結(jié)束開(kāi)始ax已為個(gè)位數(shù)的個(gè)數(shù),將個(gè)位數(shù)的LED字母輸出到state3將十位數(shù)的LED字母輸出到state2分?jǐn)?shù)減十,ax=ax-10;10的個(gè)數(shù)加一,cx=cx+1ax 10?將百位數(shù)的LED字母輸出到state1,10的個(gè)數(shù)cx=0分?jǐn)?shù)減一百,ax=ax-100;100個(gè)數(shù)
4、加一,cx=cx+1得到該選手分?jǐn)?shù),存入ax;100的個(gè)數(shù)cx=0 三、硬件系統(tǒng)框圖與說(shuō)明譯碼器82598086時(shí)鐘電路定時(shí)器將8個(gè)搶答按鈕信號(hào)通過(guò)一個(gè)8位并行輸入口接至微機(jī)中。當(dāng)主持人啟動(dòng)搶答過(guò)程后,微機(jī)通過(guò)該并行輸入口循環(huán)對(duì)8路搶答信號(hào)進(jìn)行采樣。當(dāng)采樣到那一組的搶答信號(hào)已經(jīng)發(fā)出,則立即停止采樣,并記錄下該組的組號(hào) 當(dāng)8組均未按下?lián)尨鸢粹o時(shí),送入到并行接口的8位搶答狀態(tài)都是0,而當(dāng)微機(jī)采樣到這8位數(shù)據(jù)不為0時(shí),則表示有一組獲得了搶答機(jī)會(huì),然后通過(guò)逐位查詢個(gè)位狀態(tài),即可判斷出哪一組搶答成功,最后利用并行輸出接口將搶答成功的組號(hào)現(xiàn)實(shí)出來(lái).在實(shí)驗(yàn)中,可以僅用一位7段數(shù)碼管來(lái)顯示搶答選手的組號(hào).為了
5、對(duì)搶答后的回答時(shí)間進(jìn)行計(jì)時(shí)控制,可以利用一個(gè)可編程定時(shí)計(jì)時(shí)器,先置計(jì)數(shù)初值,再計(jì)時(shí),當(dāng)計(jì)時(shí)時(shí)間到后,由并行接口輸出一個(gè)響鈴信號(hào)提示搶答選手的回答時(shí)間已到。四、軟件主要模塊流程圖與說(shuō)明1、倒計(jì)時(shí)源代碼:COUNTDOWN PROC ;倒計(jì)時(shí)子程序,倒計(jì)時(shí)20秒 PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI MOV AL,5BH ;首先輸出20 MOV BX,OFFSET STATE ADD BX,2 MOV BX,AL ;將2LED字母輸出到state2 MOV AL,3FH INC BX MOV BX,AL ;將0的LED字母輸出到state3 MOV CX,
6、0E0HB1: CALL DISPLAY1 ;顯示20秒 LOOP B1 MOV BX,OFFSET TABLE2 MOV SI,OFFSET TABLE1 MOV CX,2 ;十位的循環(huán)顯示(1,0)SHIWEI: PUSH CX MOV SI,OFFSET STATE ADD SI,2 MOV AL,BX ;得到十位的LED代碼 MOV SI,AL ;將其輸出到state2 MOV CX,10 ;個(gè)位的循環(huán)顯示(9,8,1,0) MOV SI,OFFSET TABLE1 PUSH BX MOV BX,OFFSET STATE ADD BX,3GEWEI: MOV AL,SI ;得到個(gè)位的L
7、ED字母 MOV BX,AL ;將其輸出到state3 PUSH CX MOV CX,0E0HB2: CALL DISPLAY1 ;顯示該數(shù)字一秒鐘 LOOP B2 INC SI POP CX LOOP GEWEI POP CX LOOPSHIWEI POP SI POP DX POP CX POP BX POP AX RETCOUNTDOWN ENDP2、顯示分?jǐn)?shù)源代碼:SCORE PROC ;顯示當(dāng)前選手分?jǐn)?shù)子程序 PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,CURRNUM ;得到該選手編號(hào) ADD AL,AL AND AX,00FFH MOV BX,OF
8、FSET SCORE ADD BX,AX MOV AX,BX ;得到該選手分?jǐn)?shù) MOV CL,0 ;用于記錄100的個(gè)數(shù)NUM1: CMP AX,100 ;判斷該分?jǐn)?shù)是否小于100 JL OUT1 SUB AX,100 ;該分?jǐn)?shù)大于100,則減100 INC CL ;將100的個(gè)數(shù)加1 JMP NUM1OUT1: PUSH AX ;將100個(gè)數(shù)輸出 MOV BX,OFFSET TAB AND CX,00FFH ADD BX,CX MOV AL,BX ;得到其LED字母 MOV BX,OFFSET STATE ADD BX,1 MOV BX,AL ;將之輸出到state1 MOV CL,0 ;記
9、錄10的個(gè)數(shù) POP AXNUM2: CMP AX,10 ;判斷是否小于10 JL OUT2 SUB AX,10 ;大于10,則將之減10 INC CL ;10的個(gè)數(shù)加1 JMP NUM2OUT2: PUSH AX ;輸出10的個(gè)數(shù) AND CX,00FFH MOV BX,OFFSET TAB ADD BX,CX MOV AL,BX ;得到其LED字母 MOV BX,OFFSET STATE ADD BX,2 MOV BX,AL ;將其輸出到state2 POP AXOUT3: MOV BX,OFFSET TAB ;輸出個(gè)位 ADD BX,AX MOV AL,BX ;得到其LED字母 MOV
10、BX,OFFSET STATE ADD BX,3 MOV BX,AL ;將其輸出到state3 POP SI POP DX POP CX POP BX POP AX RETSCORE ENDP五、總結(jié)1、了解自己的模塊功能后,首先要想出怎樣實(shí)現(xiàn)它,并寫(xiě)出流程圖,這樣才會(huì)順利地寫(xiě)出子程序代碼,才不會(huì)進(jìn)入進(jìn)退兩難的境地。編寫(xiě)程序時(shí),還要和別的成員多多交流,這樣才能使程序合并起來(lái)后能順利地運(yùn)行。編寫(xiě)自己的程序時(shí),能比較容易地實(shí)現(xiàn)出來(lái),但合并起來(lái)后,出現(xiàn)的問(wèn)題很多。但經(jīng)過(guò)慢慢地調(diào)試、修改,終于使我們的程序運(yùn)行了出來(lái)。2、我加深了對(duì)課本知識(shí)的理解,同時(shí)熟練掌握了匯編語(yǔ)言的編輯、調(diào)試工具。在以后的學(xué)習(xí)生活
11、中還要繼續(xù)保持嚴(yán)謹(jǐn)認(rèn)真的科學(xué)態(tài)度,保持不斷嘗試和探索的耐心,保持勇于解決問(wèn)題的決心。3、在設(shè)計(jì)中,把死板的課本知識(shí)變得生動(dòng)有趣,激發(fā)了學(xué)習(xí)的積極性。把學(xué)過(guò)的計(jì)算機(jī)編譯原理的知識(shí)強(qiáng)化,能夠把課堂上學(xué)的知識(shí)通過(guò)自己設(shè)計(jì)的程序表示出來(lái),加深了對(duì)理論知識(shí)的理解。六、附錄1、源程序及程序注釋DATA SEGMENTTAB DB 3FH,06H,5BH,66H,6DH,7DH,07H,7FH,6FH TABLE1 DB 6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FHTABLE2 DB 06H,3FHBZ DB 00HCURRNUM DB 0SCORE DW 0,100,10
12、0,100,100STATE DB 0,0,0,0 DATA ENDSCODE SEGMENTAUUSME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,B ;初始化8255 OUT 63H,ALBEGIN: CALL DISPLAY ;調(diào)用顯示程序,讓其顯示state中內(nèi)容 IN AL,60H ;掃描端口A的開(kāi)關(guān)鍵內(nèi)容 TEST AL,0FFH ;檢測(cè)是否有鍵按下 JZ BEGIN ;如無(wú)鍵按下,則循環(huán)掃描 CALL ONESECOND2 ;有鍵按下時(shí),調(diào)用延時(shí)程序段消抖動(dòng)KAISHIT: TEST AL,B ;有鍵按下時(shí),測(cè)試是否是開(kāi)
13、始鍵 JNZ KAISHIKEY JMP FUWEITKAISHIKEY: CALL KAISH ;調(diào)用開(kāi)始鍵程序 JMP BEGINFUWEIT: TEST AL,B ;測(cè)試是否是復(fù)位鍵 JNZ FUWEIKEY JMP UPFUWEIKEY: CALL FUWEI JMP BEGINUP: TEST AL,B ;測(cè)試是否是加分鍵 JNZ UPKEY JMP DOWNUPKEY: CALL UPSCORE JMP BEGINDOWN: TEST AL,B ;測(cè)試是否是減分鍵 JNZ DOWNKEY JMP GETNUMDOWNKEY: CALL DOWNSCORE JMP BEGINGETN
14、UM: MOV BL,CURRNUM ;測(cè)試是否是搶答鍵 CMP BL,0 JNZ BEGIN MOV CX,4 ;用于循環(huán)及測(cè)試搶答鍵編號(hào) MOV BL,BTEST1: TEST AL,BL JNZ GETCKEY ROL BL,1 LOOP BEGINGETCKEY: CALL GETKNUM JMP BEGINKAISHI PROC ;開(kāi)始鍵子程序 MOV BZ,0FFH ;將bz置0ffh,測(cè)試開(kāi)始鍵是否按下 RETKAISHI ENDPFUWEI PROC ;復(fù)位鍵子程序 ,用于將清空除score之外所有內(nèi)容 MOV AX,0 MOV CURRNUM,AL ;將當(dāng)前選手編號(hào)內(nèi)容清為零
15、 MOV BZ,AL ;將開(kāi)始鍵狀態(tài)設(shè)為未按下 MOV AL,3FH MOV BIAOZHI,AL ;將揚(yáng)聲器不叫,紅綠燈狀態(tài)為不亮 MOV CX,4 MOV AL,0 MOV BX,OFFSET STATE LOP1: MOV BX,AL ;使4個(gè)LED無(wú)顯示內(nèi)容 INC BX LOOP LOP1 RETFUWEI ENDPDISPLAY PROC ;在4個(gè)LED中顯示state中的內(nèi)容 PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,BIAOZHI ;顯示揚(yáng)聲器,紅綠燈狀態(tài) OUT 62H,AL MOV BX,OFFSET STATE MOV AL,B OUT
16、 62H,AL MOV AL,BX OUT 61H,AL ;顯示state0中內(nèi)容 CALL DELAY ;延時(shí) INC BX MOV AL,B OUT 62H,AL MOV AL,BX OUT 61H,AL ;顯示state1中內(nèi)容 CALL DELAY INC BX MOV AL,B OUT 62H,AL MOV AL,BX OUT 61H,AL ;顯示state2中內(nèi)容 CALL DELAY INC BX MOV AL,B OUT 62H,AL MOV AL,BX OUT 61H,AL ;顯示state3中內(nèi)容 CALL DELAY POP DX POP CX POP BX POP AX
17、 RETDISPLAY ENDPDISPLAY1 PROC ;顯示state內(nèi)容,檢測(cè)開(kāi)關(guān)、復(fù)位、加分、減分鍵是否按下,倒計(jì)時(shí)用 PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,BIAOZHI ;顯示揚(yáng)聲器,紅綠燈狀態(tài) OUT 62H,AL MOV BX,OFFSET STATE MOV AL,B OUT 62H,AL MOV AL,BX OUT 61H,AL ;顯示state0中內(nèi)容 CALL DELAY INC BX MOV AL,B OUT 62H,AL MOV AL,BX OUT 61H,AL ;顯示state1中內(nèi)容 CALL DELAY INC BX
18、MOV AL,B OUT 62H,AL MOV AL,BX OUT 61H,AL ;顯示state2中內(nèi)容 CALL DELAY INC BX MOV AL,B OUT 62H,AL MOV AL,BX OUT 61H,AL ;顯示state3中內(nèi)容 CALL DELAY IN AL,60H ;得到端口A內(nèi)容 TEST AL,B ;檢測(cè)是否有開(kāi)關(guān)、復(fù)位、加分、減分鍵按下 JNZ B7 JMP B8B7: JMP BEGIN ;跳回begin檢測(cè)該鍵B8: POP DS POP CX POP BX POP AX RETDISPLAY1 ENDPDELAY PROC ;延時(shí),用于LED顯示延時(shí)用
19、PUSH AX PUSH BX PUSH CX PUSH DX MOV CX,OFFHIOP2: LOOP LOP2 POP DX POP CX POP BX POP AX RETDELAY ENDPGETKNUM PROC ;檢測(cè)到搶答鍵后,得到該鍵編號(hào),并存入currnum中 PUSH AX PUSH BX PUSH DX MOV AX,CX ;由cx得到搶答者編號(hào) MOV CURRNUM,AL ;將該搶答者編號(hào)存入currnum MOV BX,OFFSET TAB ADD BX,AX MOV AL,BX ;得到該編號(hào)的LED代碼 MOV BX,OFFSET STATE ;將該LED代碼存入state0 MOV BX,ALTESTBZ: MOV AL,BZ ;得到該選手編號(hào)后,測(cè)試開(kāi)始鍵是否按下 CMP AL,0FFH JNZ A CALL GETPASS ;開(kāi)始鍵已按下時(shí),綠燈通A: CALL WARN ;開(kāi)始鍵未按下,警告 POP DX POP BX POP AXGETKNUM ENDWARN PROC ;警告子程序,使揚(yáng)聲器響,紅燈亮 PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,B MOV BIAOZHI,AL POP DX POP CX POP BX POP AX RETWARN END
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東體育職業(yè)技術(shù)學(xué)院《審計(jì)學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東司法警官職業(yè)學(xué)院《數(shù)字視頻制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東食品藥品職業(yè)學(xué)院《光信息處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東省外語(yǔ)藝術(shù)職業(yè)學(xué)院《基礎(chǔ)閱讀(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東輕工職業(yè)技術(shù)學(xué)院《建筑施工》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名健康職業(yè)學(xué)院《體育舞蹈專項(xiàng)理論與實(shí)踐(6)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名農(nóng)林科技職業(yè)學(xué)院《修建性詳細(xì)規(guī)劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 四年級(jí)數(shù)學(xué)(簡(jiǎn)便運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案
- 【2022屆走向高考】高三數(shù)學(xué)一輪(人教A版)階段性測(cè)試題12(綜合素質(zhì)能力測(cè)試)
- 2021年高考英語(yǔ)考點(diǎn)總動(dòng)員系列-專題10-交際用語(yǔ)(解析版)
- 建設(shè)項(xiàng)目環(huán)境監(jiān)理 環(huán)境監(jiān)理大綱的編制 環(huán)境監(jiān)理大綱的編制
- 粉末涂料有限公司檢維修作業(yè)安全風(fēng)險(xiǎn)分級(jí)清單
- 【蘇教版】2022-2023學(xué)年六年級(jí)數(shù)學(xué)上冊(cè)期末試卷(及答案)
- 2023-2024學(xué)年連云港市灌云縣四年級(jí)數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)水平測(cè)試模擬試題含答案
- 湖南省懷化市鶴城區(qū)2023年數(shù)學(xué)三下期末監(jiān)測(cè)試題含解析
- 項(xiàng)目工程安全管理責(zé)任區(qū)域劃分表
- 2023年學(xué)校食堂審計(jì)發(fā)現(xiàn)問(wèn)題整改報(bào)告3篇
- 教育培訓(xùn)學(xué)校(機(jī)構(gòu))課堂教學(xué)反饋表
- 2023年全國(guó)測(cè)繪生產(chǎn)成本費(fèi)用定額
- GB/T 6480-2002鑿巖用硬質(zhì)合金釬頭
- GB/T 5447-1997煙煤粘結(jié)指數(shù)測(cè)定方法
評(píng)論
0/150
提交評(píng)論