版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 計(jì)算機(jī)科學(xué)與技術(shù)系</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 2008 ~2009學(xué)年第二學(xué)期</p><p> 2009 年 2月</p><p><b> 競(jìng)賽搶答器</b></p>&l
2、t;p> 一.題義分析及解決方案</p><p><b> 1.題義與需求分析</b></p><p> 題目要求利用8086系統(tǒng)接口電路設(shè)計(jì)一個(gè)可供八人競(jìng)賽使用的搶答器,并顯示競(jìng)答者編號(hào)(1~8)。</p><p> 根據(jù)題義可知:本設(shè)計(jì)是要設(shè)計(jì)一個(gè)能夠提供給8個(gè)人使用的競(jìng)賽搶答裝置,能夠使得搶答者的編號(hào),顯示的裝置。首先是主持
3、人發(fā)出搶答允許信號(hào),當(dāng)搶答者收到信號(hào)后,便立刻進(jìn)行搶答,然后通過(guò)裝置,將最先搶答者的編號(hào)顯示出來(lái)。</p><p> 根據(jù)以上分析,提出以下幾個(gè)問(wèn)題:</p><p> ?、僦鞒秩巳绾伟l(fā)出搶答的信息?</p><p> ②競(jìng)賽者如何進(jìn)行搶答?</p><p> ③如何將分辨搶答的順序,誰(shuí)是最先搶答的?</p><p&
4、gt; ?、苋绾物@示搶答者的編號(hào)?</p><p> ?、輷尨鸬目傮w規(guī)則是什么?怎樣控制?</p><p> 2.解決問(wèn)題的思路和方法</p><p> (1)、解決思路:上述提出的問(wèn)題發(fā)現(xiàn)第一、第二和第四個(gè)問(wèn)題需要用硬件來(lái)實(shí)現(xiàn),而第三和第五個(gè)問(wèn)題需要軟件編程來(lái)實(shí)現(xiàn)。</p><p><b> 表一:所用芯片功能</b&
5、gt;</p><p> 首先我們可用列表比較的方法來(lái)選擇合理的器件,具體器件的名稱和特點(diǎn)如表一所示。對(duì)硬件選擇進(jìn)行分析進(jìn)行分析:</p><p> 通過(guò)對(duì)小鍵盤(pán)和微動(dòng)開(kāi)關(guān)比較,我們選擇結(jié)構(gòu)簡(jiǎn)單,使用方便微動(dòng)開(kāi)關(guān)作為搶答者的搶答器件。</p><p> 對(duì)8255和8251芯片進(jìn)行比較,選擇方便易使用的8255作為本設(shè)計(jì)的主要芯片。</p>&l
6、t;p> 對(duì)顯示設(shè)備的選擇,選擇LED更為經(jīng)濟(jì)實(shí)惠。</p><p> 通過(guò)以上分析,本次設(shè)計(jì)所選用的芯片為:8255A芯片、微動(dòng)開(kāi)關(guān)和LED發(fā)光二</p><p><b> 極管。</b></p><p> ?。?)、解決問(wèn)題的方法</p><p> a.硬件部分:首先選擇可編程并行接口芯片8255A,實(shí)
7、現(xiàn)八個(gè)競(jìng)賽搶答器的顯示換碼并輸出。使8255A工作在方式0——基本輸入輸出,將PA口做為輸入口,PB口做為輸出口,PC1 =0做位選碼。選用LED七段數(shù)碼顯示控制電路板一塊,使用其顯示1~8位搶答者編號(hào)。</p><p> b.軟件部分:通過(guò)編寫(xiě)程序來(lái)實(shí)現(xiàn)搶答的功能。首先應(yīng)當(dāng)實(shí)現(xiàn)搶答器的最基本功能,即當(dāng)搶答允許信號(hào)發(fā)出后,搶答者做出了搶答,要在LED上顯示最先搶答者的編號(hào)。這是基本功能,其次應(yīng)該考慮同時(shí)有兩個(gè)人
8、搶答的情況,如過(guò)出現(xiàn)了,這個(gè)情況,就在顯示設(shè)備上顯示E,表示錯(cuò)誤,需要重新?lián)尨?。另外,在搶答結(jié)束后,需要進(jìn)行下一輪的搶答,因此如果 出現(xiàn)有搶答者的開(kāi)關(guān)沒(méi)有松開(kāi)的情況,就無(wú)法進(jìn)行下一輪的搶答。所以要對(duì)開(kāi)關(guān)是否松開(kāi)進(jìn)行判斷。</p><p><b> 二.硬件設(shè)計(jì)</b></p><p><b> 1.芯片8255A</b></p>
9、<p> (1)8255A在本設(shè)計(jì)中的作用</p><p> PA口送入開(kāi)關(guān)量進(jìn)行鎖存,通過(guò)控制程序進(jìn)行判斷和處理,最后從PB口輸出。</p><p> ?。?) 8255A的主要功能分析</p><p> 8255A是一種可控制編程的并行接口芯片,本設(shè)計(jì)中將PA做輸入口,PB作輸出口,工作于方式0,PC1作為輸入口,C口其他位不用。</p&
10、gt;<p> 8255A工作方式0又稱為基本輸入/輸出(同步傳送)方式,該方式下可將三個(gè)數(shù)據(jù)端口劃分為四個(gè)獨(dú)立的部分,A口和B口作為兩個(gè)8位端口,C口高四位和低四位可用作兩個(gè)4位端口。8255A在方式0下輸出的數(shù)據(jù)被鎖存,而輸入的數(shù)據(jù)是不鎖存的。8255A的端口錄址及操作功能如圖二所示:</p><p> D7 D6 D5 D4 D3 D2
11、 D1 D0</p><p> | | | | | | |</p><p> 特征位 00方式0 1輸入 1輸入 </p><p> 8255A的方式控制字:</p><p> 0
12、方式0 1輸入 1輸入</p><p> 01方式1 0輸出 0輸出 1方式1 0輸出 0輸出</p><p><b> 10方式2</b></p><p> D7 D6 D5 D4 D3 D2 D1
13、 D0</p><p> 寫(xiě)入位 | 編碼 |</p><p> D0 000 0寫(xiě)入0</p><p> D1 001 1寫(xiě)入1</p><p> D2 010</p><p> D3
14、 011</p><p> D4 100</p><p> D5 101</p><p> D6 110</p><p> D7 111</p><p> 表二:8255A的置位/復(fù)位控制字</p><p> 表三:82
15、55A的端口錄址及操作功能表</p><p> 2.LED發(fā)光二極管</p><p> ?。?)芯片在本設(shè)計(jì)中的作用</p><p> LED發(fā)光二極管用于顯示競(jìng)賽者的編號(hào)</p><p> ?。?)LED的功能分析</p><p> LED發(fā)光原理及特性:發(fā)光二極管是由Ⅲ-Ⅳ族化合物,如GaAs(砷化鎵)、Ga
16、P(磷化 鎵)、GaAsP(磷砷化鎵)等半導(dǎo)體制成的,其核心是PN結(jié),因此它具有一般P-N結(jié)的I-N特性,即正向?qū)?,反向截止、擊穿特性。此外,在一定條件下,它還具有發(fā)光特性。在正向電壓下,電子由N區(qū)注入P區(qū),空穴由P區(qū)注入N區(qū)。進(jìn)入對(duì)方區(qū)域的少數(shù)載流子(少子)一部分與多數(shù)載流子(多子)復(fù)合而發(fā)光。</p><p> 假設(shè)發(fā)光是在P區(qū)中發(fā)生的,那么注入的電子與價(jià)帶空穴直接復(fù)合而發(fā)光,或者先被發(fā)光中心捕獲后,再
17、與空穴復(fù)合發(fā)光。除了這種發(fā)光復(fù)合外,還有些電子被非發(fā)光中心(這個(gè)中心介于導(dǎo)帶、介帶中間附近)捕獲,而后再與空穴復(fù)合,每次釋放的能量不大,不能形成可見(jiàn)光。發(fā)光的復(fù)合量相對(duì)于非發(fā)光復(fù)合量的比例越大,光量子效率越高。由于復(fù)合是在少子擴(kuò)散區(qū)內(nèi)發(fā)光的,所以光僅在靠近PN結(jié)面數(shù)μm以內(nèi)產(chǎn)生。</p><p> 有段選碼和位選碼確定數(shù)字1~8的輸出并在延時(shí)程序中保持復(fù)位。它是一種當(dāng)外加電壓超過(guò)額定電壓字符而形成的。</
18、p><p> 有段選碼和位選碼確定數(shù)字1~8的輸出并在延時(shí)程序中保持復(fù)位。它是一種當(dāng)外加電壓超過(guò)額定電壓時(shí)發(fā)生擊穿,并因此而產(chǎn)生可見(jiàn)光的器件。這種數(shù)碼管是有7段或8段筆畫(huà)顯示器組成一個(gè)字符而形成的。</p><p> 時(shí)發(fā)生擊穿,并因此而產(chǎn)生可見(jiàn)光的器件。這種數(shù)碼管是有7段或8段筆畫(huà)顯示器組成一個(gè)</p><p> (3)LED的技術(shù)參數(shù)分析</p>
19、<p> LED發(fā)光二極管的壓降一般為1.5-2.0V,其工作電流一般取10-20Ma,發(fā)光二極管可應(yīng)用于直流驅(qū)動(dòng)電路、交流驅(qū)動(dòng)電路和脈沖驅(qū)動(dòng)電路。</p><p> 由于8255A的最大驅(qū)動(dòng)電流為4.0mA,而LED的工作電流一般為10-20mA,所以需要加一個(gè)驅(qū)動(dòng)器74LS244。</p><p> 圖一:數(shù)碼管結(jié)構(gòu) </p><p> 表
20、四:LED顯示管段選碼編碼表</p><p><b> 3.微動(dòng)開(kāi)關(guān)</b></p><p> ?。?)微動(dòng)開(kāi)關(guān)在本設(shè)計(jì)中的作用</p><p> 當(dāng)競(jìng)賽者進(jìn)行搶答時(shí),可通過(guò)微動(dòng)開(kāi)關(guān)作為輸入信號(hào)。</p><p><b> 2)軟件部分</b></p><p> 對(duì)于
21、設(shè)計(jì)中的搶答規(guī)則由軟件來(lái)實(shí)現(xiàn),考慮到8位選手的各自按下?lián)尨鹧b置與自己的編號(hào)間的對(duì)應(yīng)關(guān)系,8個(gè)信號(hào)有可能在同一時(shí)間段內(nèi)有兩個(gè)或以上信號(hào)輸入,各自之間在時(shí)間上不會(huì)牽制,即涉及并行的方式輸入,后要對(duì)輸入的開(kāi)關(guān)量進(jìn)行處理、輸出,連接至LED顯示,其中需有一主控裝置,據(jù)此結(jié)合課程的所學(xué)的相關(guān)知識(shí)可知,使用可編程并行接口芯片825能夠滿足要求,實(shí)現(xiàn)相關(guān)功能。實(shí)現(xiàn)時(shí),可設(shè)置8255的A口作為八個(gè)輸入信號(hào),用邏輯電平開(kāi)關(guān)K0—K7代表?yè)尨鹧b置的搶答開(kāi)關(guān)
22、1—8號(hào)。當(dāng)某個(gè)邏輯開(kāi)關(guān)置“1”時(shí),顯示有效,當(dāng)有兩個(gè)或以上選手同時(shí)按下?lián)尨鹌鲿r(shí),信號(hào)無(wú)效,顯示“E”。將B口輸出信號(hào)與7段LED的a—h連接,即可用LED顯示器輸出搶答結(jié)果。另外,用8255的C口中的PC7作為主控信號(hào),高電平時(shí)表示允許搶答,低電平時(shí)禁止搶答。在實(shí)驗(yàn)中需設(shè)置C口位控制選用新實(shí)驗(yàn)箱的八個(gè)LED顯示中的一個(gè)。</p><p> 5.硬件總邏輯圖及其說(shuō)明(見(jiàn)下頁(yè))</p><p&
23、gt;<b> 三.控制程序設(shè)計(jì)</b></p><p> 1.控制程序思路說(shuō)明</p><p> 根據(jù)所設(shè)計(jì)的硬件邏輯圖,所需要編寫(xiě)的控制程序主要有兩個(gè)方面:其一在程序中判斷最高優(yōu)先級(jí)者。再利用8255A進(jìn)行換碼通過(guò)七段LED顯示器用其中的一個(gè)LED顯示搶答者編號(hào)。</p><p><b> 具體實(shí)現(xiàn)步驟如下:</b&
24、gt;</p><p> 首先初始化8255A,使8255A工作在方式0,A口作輸入口,B口作輸出口,然后使按鍵復(fù)位并按復(fù)位鍵,通過(guò)8255A使LED顯示器顯示出0,示意搶答的開(kāi)始,然后讀斷口A的狀態(tài),并通過(guò)程序查表找出與斷口A狀態(tài)相同的數(shù)據(jù),并以十進(jìn)制在LED上進(jìn)行顯示,以此來(lái)標(biāo)志搶答器的按鍵號(hào)碼,然后重新復(fù)位進(jìn)行新一輪搶答,如果有兩個(gè)或兩個(gè)以上的競(jìng)答者同時(shí)按下開(kāi)關(guān),則仍顯示零,作為搶答無(wú)效的標(biāo)志。然后重新復(fù)
25、位,為下一輪搶答作好準(zhǔn)備。</p><p> 圖二:硬件總邏輯圖輯圖</p><p><b> 2.程序流程圖 </b></p><p><b> 3.控制程序</b></p><p> .MODELTINY</p><p> PCIBAR3EQU1CH
26、;8位I/O空間基地址(它就是實(shí)驗(yàn)儀的基地址, 也為DMA & 32 BIT RAM板卡上的8237提供基地址) </p><p> Vendor_IDEQU 10EBH;廠商ID號(hào)</p><p> Device_IDEQU8376;設(shè)備ID號(hào)</p><p> .STACK100</p><p><b
27、> .DATA</b></p><p> IO_Bit8_BaseAddressDW?</p><p> msg0DB'BIOS不支持訪問(wèn)PCI $'</p><p> msg1DB'找不到Star PCI9052板卡 $'</p><p> msg
28、2DB'讀8位I/O空間基地址時(shí)出錯(cuò)$'</p><p> COM_ADD DW00F3H;控制口偏移量</p><p> PA_ADDDW00F0H;PA口偏移量</p><p> PB_ADDDW00F1H;PB口偏移量</p><p> PC_ADDDW00F2
29、H;PC口偏移量</p><p><b> .CODE</b></p><p> START:MOV AX,@DATA</p><p> MOV DS,AX</p><p><b> NOP</b></p><p> CALL InitPCI</
30、p><p> CALL ModifyAddress;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實(shí)地址</p><p> mov dx,COM_ADD ;控制口地址</p><p> mov ax,90h ;10010000</p><p> out dx,ax ;設(shè)置工作方式0,A口輸入,B口輸出,C口輸出L
31、ED位選碼控制</p><p><b> ctrl0:</b></p><p> mov ax,00h ;禁止顯示LED全滅</p><p> mov dx,PB_ADD ;B口地址輸出</p><p><b> out dx,ax</b></p><p>&
32、lt;b> ctrl3:</b></p><p> mov dx,PB_ADD</p><p> mov ax,3fh ;輸出顯示0表示允許搶答</p><p> out dx,ax </p><p> mov dx,PC_ADD ;設(shè)置數(shù)碼管位選碼</p><p>
33、; mov al,7Fh ;只使用最左邊一位</p><p><b> out dx,al</b></p><p><b> ctrl2:</b></p><p> mov dx,PA_ADD ;通過(guò)A口地址讀輸入信號(hào)</p><p> in ax,dx
34、 ;讀A口狀態(tài)</p><p> not ax ;取反,因?yàn)槲?dòng)開(kāi)關(guān)按下為低電平有效</p><p> cmp al,00h ;檢測(cè)是否有輸入</p><p> jz ctrl2 ;沒(méi)有則繼續(xù)檢測(cè)</p><p><b> mov dl,al</b></p&g
35、t;<p> mov bl,00h ;bl用于記錄有幾人同時(shí)按鍵</p><p> mov cx,8h ;循環(huán)次數(shù)</p><p><b> cheshi1:</b></p><p> ror dl,1 ;循環(huán)右移一位,末位進(jìn)CF</p><p> jnc che
36、shi2 ;若沒(méi)有進(jìn)位,即CF=0則跳轉(zhuǎn)recheshi繼續(xù)測(cè)試</p><p> inc bl ;有進(jìn)位,bl自加記錄同時(shí)搶答人數(shù)</p><p><b> cheshi2:</b></p><p> loop cheshi1;循環(huán)測(cè)試8次</p><p><b>
37、 cmp bl,1</b></p><p> ja error ;有一人以上同時(shí)搶答,則報(bào)錯(cuò)</p><p> mov bl,00h ;bl清零</p><p><b> next:</b></p><p> ror al,1 ;有搶答信號(hào)</p>&l
38、t;p> jc print ;有則輸出</p><p> inc bl ;bl用來(lái)記錄是哪一位選手</p><p><b> jmp next</b></p><p><b> error:</b></p><p><b> mov bl,8<
39、;/b></p><p><b> print:</b></p><p><b> mov al,bl</b></p><p> lea bx,ssegment ;查表</p><p> xlat ;將BX的內(nèi)容(代碼表首地址)+AL的內(nèi)容(表格偏移量)作
40、為有效地</p><p> ;址,最終內(nèi)容存入AL中</p><p> mov dx,PB_ADD</p><p><b> out dx,al</b></p><p> mov dx,PC_ADD ;設(shè)置數(shù)碼管位選碼一位顯示</p><p> mov al,7Fh</p&
41、gt;<p><b> out dx,al</b></p><p><b> ctrl5:</b></p><p> mov dx,PA_ADD </p><p> in ax,dx </p><p> cmp al,0ffh ;檢測(cè)開(kāi)關(guān)是否已松開(kāi)<
42、/p><p> jnz ctrl5 ;沒(méi)有松開(kāi)繼續(xù)檢測(cè)</p><p> jmp ctrl0 ;松開(kāi)開(kāi)關(guān),即結(jié)束則重新開(kāi)始</p><p><b> ret</b></p><p><b> ssegment:</b></p><p>&l
43、t;b> db 06h</b></p><p><b> db 5bh</b></p><p><b> db 4fh</b></p><p><b> db 66h</b></p><p><b> db 6dh</b><
44、;/p><p><b> db 7dh</b></p><p><b> db 07h</b></p><p><b> db 7fh</b></p><p><b> db 79h</b></p><p> DL4S PR
45、OC NEAR</p><p><b> push ax</b></p><p><b> push dx</b></p><p><b> mov dx,4</b></p><p> mov ah,0ffh</p><p><b>
46、; int 21h</b></p><p><b> pop dx</b></p><p><b> pop ax</b></p><p><b> RET</b></p><p><b> DL4S ENDP</b></p&
47、gt;<p> InitPCIPROCNEAR</p><p> MOVAH,00H</p><p> MOVAL,03H</p><p> INT10H ;清屏</p><p> MOVAH,0B1H</p><p> MOVAL,01H</p>
48、;<p><b> INT1AH</b></p><p><b> CMPAH,0</b></p><p> JZInitPCI2</p><p> LEADX,msg0</p><p> InitPCI1:MOVAH,09H</p>&l
49、t;p><b> INT21H</b></p><p><b> JMPExit</b></p><p> InitPCI2:MOVAH,0B1H</p><p> MOVAL,02H</p><p> MOVCX,Device_ID</p>&l
50、t;p> MOVDX,Vendor_ID</p><p><b> MOVSI,0</b></p><p><b> INT1AH</b></p><p> JNCInitPCI3;是否存在Star PCI9052板卡</p><p> LEADX,msg1<
51、/p><p> JMPInitPCI1</p><p> InitPCI3:MOVDI,PCIBAR3</p><p> MOVAH,0B1H</p><p> MOVAL,09H</p><p> INT1AH ;讀取該卡PCI9052基地址</p><p>
52、; JNCInitPCI4</p><p> LEADX,msg2</p><p> JMPInitPCI1</p><p> InitPCI4:ANDCX,0FFFCH</p><p> MOVIO_Bit8_BaseAddress,CX</p><p><b> RET
53、</b></p><p> InitPCIENDP</p><p> ModifyAddressPROCNEAR</p><p> ADDCOM_ADD,CX</p><p> ADDPA_ADD,CX</p><p> ADDPB_ADD,CX</p><
54、;p> ADDPC_ADD,CX</p><p><b> RET</b></p><p> ModifyAddressENDP</p><p> Exit:MOVAH,4CH</p><p><b> INT21H</b></p><p>
55、; ENDSTART</p><p><b> 四、上機(jī)調(diào)試過(guò)程</b></p><p><b> 1硬件調(diào)試:</b></p><p> 在接線連接好以后,運(yùn)行程序,發(fā)現(xiàn)在七段LED上顯示的結(jié)果少了一段,C段始終不顯示,后來(lái)將A口與B口對(duì)換,即A口輸出,B口輸入,顯示正確。</p><p
56、><b> 2.軟件調(diào)試:</b></p><p> 打開(kāi)主持人開(kāi)關(guān),數(shù)碼管顯示1后沒(méi)有循環(huán)顯示2,而是8,檢查程序后發(fā)現(xiàn),xlat命令是將BX的內(nèi)容(代碼首地址)與AL的內(nèi)容(表格偏移量)相加作為有效地址,并從中取出此地址單元中的內(nèi)容送到AL中,故AL中數(shù)據(jù)變換了,而程序要求循環(huán)顯示1~8,Al應(yīng)保持從0開(kāi)始,始終加1,這就要保存AL的內(nèi)容。</p><p&g
57、t; 繼續(xù)調(diào)試,之間的都是一些判斷出錯(cuò)問(wèn)題,一一單步調(diào)試解決,程序通過(guò)。</p><p> 程序全速運(yùn)行還有一些細(xì)節(jié)問(wèn)題,當(dāng)有兩個(gè)搶答者分別先后按鍵,有時(shí)會(huì)顯示E,按鈕反應(yīng)速度太慢,將延時(shí)程序的延時(shí)由1s改為0.5s。</p><p> 當(dāng)8號(hào)參賽者按下按鈕時(shí),數(shù)字8不能鎖存,將8255A控制字改為98H,C口高8位輸入,低8位輸出。</p><p> 解決
58、了以上的一些主要問(wèn)題后,具有搶答功能的程序就完成了,聯(lián)機(jī)調(diào)試一下就運(yùn)行出來(lái)了。</p><p> (1)、對(duì)硬件部分的調(diào)試,LED顯示少了一段,最初懷疑是LED出現(xiàn)問(wèn)題,但是經(jīng)過(guò)驗(yàn)證,發(fā)現(xiàn)LED完好無(wú)損,而段選編碼也是正確的。于是,便懷疑是8255A的PA口或者是PB口某個(gè)引腳出現(xiàn)了問(wèn)題。因?yàn)楸驹O(shè)計(jì)是一A口輸入,B口輸出,如果輸入的A口某個(gè)引腳出現(xiàn)了問(wèn)題或者B口某個(gè)引腳出現(xiàn)了問(wèn)題,都有可能導(dǎo)致LED顯示少某一段
59、。因此,對(duì)設(shè)計(jì)進(jìn)行了調(diào)整,以B口做為輸入,A口作為輸出,并對(duì)程序進(jìn)行了修改,發(fā)現(xiàn)此時(shí)LED顯示正確。</p><p> 因此可以斷定并非是8255A的問(wèn)題,因?yàn)槿绻茿口或者B口某個(gè)引腳出現(xiàn)了問(wèn)題,將A口與B口的功能交換是不可能出現(xiàn)顯示不少段的。因此對(duì)本問(wèn)題的可能原因進(jìn)行分析:可能是8255A的A口與B口的某個(gè)插針接觸不良,而在實(shí)驗(yàn)中有疏忽大意了,導(dǎo)致這樣的結(jié)果。</p><p> ?。?/p>
60、2)、對(duì)軟件部分的調(diào)試,可以知道延時(shí)的需要于否是無(wú)關(guān)緊要的,因?yàn)檫@個(gè)延時(shí)是用來(lái)的等待搶答者信號(hào)的輸入,而在程序中,對(duì)搶答者有沒(méi)有輸入信號(hào)已經(jīng)做了判斷,如果沒(méi)有人搶答,就會(huì)返回重新判斷,直到有搶答者輸入信號(hào)為止,因此這個(gè)延時(shí)是不需要的。</p><p> 五、設(shè)計(jì)結(jié)果分析和問(wèn)題討論</p><p><b> 1、課程設(shè)計(jì)結(jié)果:</b></p><
61、p> 當(dāng)LED上顯示了“0”后,搶答者便可以進(jìn)行搶答,如果沒(méi)有顯示便不可以。由于在本次設(shè)計(jì)中只需要1位數(shù)碼管,因而應(yīng)將其余的數(shù)碼管置為無(wú)效,所以在程序中應(yīng)向C口寫(xiě)入控制字7FH;</p><p> 在搶答者搶答過(guò)后,在LED上就顯示出最先搶答的者的編號(hào)。如果出現(xiàn)了兩個(gè)人同時(shí)搶答的情況,顯示的結(jié)果為E,表示搶答無(wú)效。而在一輪搶答結(jié)束后,如果有搶答者沒(méi)有將開(kāi)關(guān)松開(kāi),就無(wú)法進(jìn)行下一輪搶答,必須將開(kāi)關(guān)松開(kāi)才可以
62、。</p><p><b> 2、設(shè)計(jì)結(jié)果分析:</b></p><p> 本設(shè)計(jì)是以8255A的A口作為輸入,B口作為輸出的,搶答者是以A口輸入信號(hào),C口全部作為輸出,通過(guò)程序來(lái)實(shí)現(xiàn)具體的功能,也就是將最先搶答者的編號(hào)輸出顯示,或者有兩人同時(shí)搶答的時(shí)候輸出顯示“E”。在設(shè)置8255A的工作方式時(shí),所以應(yīng)為90h,否則結(jié)果出錯(cuò)</p><p&g
63、t;<b> 3、問(wèn)題討論:</b></p><p> (1)、輸入信號(hào)有無(wú)的判斷:</p><p> 在程序中,由于開(kāi)關(guān)是低電平有效,所以首先對(duì)開(kāi)關(guān)量取反,然后通過(guò)與00H比較,來(lái)判斷是否有輸入。如果沒(méi)有輸入,那么就等于0,跳回重新判斷,如果有輸入,就等于1,繼續(xù)執(zhí)行。</p><p> ?。?)、同時(shí)搶答的判斷:</p>
64、<p> 在程序中,是通過(guò)開(kāi)關(guān)量來(lái)判斷是否有同時(shí)搶答的情況。通過(guò)取反,將開(kāi)關(guān)量存入DL中,將其循環(huán)右移,并添加清過(guò)零的BL寄存器,用來(lái)記錄進(jìn)位次數(shù)。如過(guò),DL循環(huán)右移有進(jìn)位BL就進(jìn)行加1操作,最后判斷BL是否大于1。如果大于1,就說(shuō)明有2個(gè)或以上的人同時(shí)搶答。如果等于1,就表示,沒(méi)有同時(shí)搶答情況。</p><p> (3)、輸出最先搶答者編號(hào):</p><p> 通過(guò)對(duì)以
65、上同時(shí)輸入的判斷后,如過(guò)沒(méi)有同時(shí)輸入就可以進(jìn)行最先搶答者的判斷。就是將已經(jīng)存入開(kāi)關(guān)量的AL進(jìn)行循環(huán)右移,同樣需要清過(guò)零的BL寄存器來(lái)記錄進(jìn)位。當(dāng)有進(jìn)位后,停止循環(huán)右移,將BL的內(nèi)容容存入AL,然后通過(guò)查找段選表的首地址將BL的內(nèi)容加上AL的內(nèi)容,最終存入AL中,最后通過(guò)LED輸出顯示搶答者的編號(hào)。</p><p> ?。?)輸入信號(hào)有無(wú)的判斷的討論:在程序中,由于開(kāi)關(guān)是低電平有效,所以都要與0FFH比較,來(lái)判斷是
66、否有輸入。如果沒(méi)有輸入,那么就等于1,跳回重新判斷,如果有輸入,就等于0,繼續(xù)執(zhí)行。</p><p> (5)對(duì)同時(shí)搶答判斷的討論:在程序中,通過(guò)開(kāi)關(guān)量來(lái)判斷是否有同時(shí)搶答的情況。將開(kāi)關(guān)量存入DL中,將其循環(huán)右移,并添加清過(guò)零的BL寄存器,用來(lái)記錄進(jìn)位次數(shù)。如有,DL循環(huán)右移有進(jìn)位BL就進(jìn)行加1操作,最后判斷BL是否大于1。如果大于1,就說(shuō)明有2個(gè)或以上的人同時(shí)搶答。如果等于1,就表示,沒(méi)有同時(shí)搶答情況。<
67、;/p><p> ?。?)輸出最先搶答者編號(hào):通過(guò)對(duì)以上同時(shí)輸入的判斷后,如果沒(méi)有同時(shí)輸入就可以進(jìn)行最先搶答者的判斷。就是將已經(jīng)存入開(kāi)關(guān)量的AL進(jìn)行循環(huán)右移,同樣需要清過(guò)零的BL寄存器來(lái)記錄進(jìn)位。當(dāng)有進(jìn)位后,停止循環(huán)右移,將BL的內(nèi)容容存入AL,然后通過(guò)查找段選表的首地址將BL的內(nèi)容加上AL的內(nèi)容,最終存入AL中,最后通過(guò)LED輸出顯示搶答者的編號(hào)。</p><p><b> 4.
68、收獲體會(huì)</b></p><p><b> 8255A</b></p><p> 通過(guò)本次課程設(shè)計(jì)我熟練掌握了可編程并行接口芯片8255A的內(nèi)部結(jié)構(gòu)(數(shù)據(jù)總線緩沖器,三個(gè)八位端口,A口和B口的控制電路,讀寫(xiě)控制邏輯),工作方式(方式0--基本輸入輸出方式,方式1—選通輸入輸出方式,方式2—雙向選通輸入輸出方式),初始化(方式選擇控制字,C口按位置位控制
69、字)及其應(yīng)用。 8255A有兩個(gè)八位的輸入輸出端口,由于內(nèi)部電路原因,通常將A口 (PA0-PA7)作為輸入用,B口(PB0-PB7)作為輸出用,C口作為輔助用。本實(shí)驗(yàn),在設(shè)計(jì)程序時(shí),選取8255A的工作方式0(控制端口為04A6H)。</p><p><b> 七段LED顯示器</b></p><p> 通過(guò)這次課程設(shè)計(jì)我也掌握了作為終端顯示的七段LED顯示器物
70、理構(gòu)造,工作原理,數(shù)字成象的原理及技術(shù)參數(shù)。</p><p><b> 匯編語(yǔ)言</b></p><p> 通過(guò)這次課程設(shè)計(jì),我重新復(fù)習(xí)了匯編語(yǔ)言程序設(shè)計(jì)中的數(shù)據(jù)和程序的尋址方式,各個(gè)指令的作用和含義。使我對(duì)匯編語(yǔ)言有了更深層次的掌握,同時(shí)也對(duì)用匯編語(yǔ)言進(jìn)行編程有了進(jìn)一步的理解。</p><p> 在為期兩周的課程設(shè)計(jì)中, 我們能把課堂上
71、學(xué)習(xí)到的理論知識(shí),經(jīng)過(guò)思考、揣摩,運(yùn)用于實(shí)踐中,逐步實(shí)現(xiàn)設(shè)計(jì)中的各種功能,心中有一種很大的欣慰感,以理論指導(dǎo)實(shí)踐,反過(guò)來(lái),我們?cè)谡n堂上學(xué)到的理論知識(shí),很多情況都不是很明白其中的道理,也不清楚這點(diǎn)具體可以用在什么方面。在逐步實(shí)驗(yàn)過(guò)程中,通過(guò)每一個(gè)功能的實(shí)現(xiàn),通過(guò)上機(jī)實(shí)踐,對(duì)理論知識(shí)也有了更為透徹的理解和認(rèn)知。深刻認(rèn)識(shí)到上機(jī)實(shí)踐操作的重要性,覺(jué)得一周的時(shí)間太短,對(duì)于設(shè)計(jì)的優(yōu)化方面的工作還有許多可以充實(shí),總覺(jué)得能再多點(diǎn)時(shí)間會(huì)做到更好,希望在以
72、后的學(xué)習(xí)中,更多地給我們安排一些動(dòng)手操作的實(shí)驗(yàn)課,以更深入地了解計(jì)算機(jī)方方面面的知識(shí)。</p><p> 通過(guò)這次設(shè)計(jì)實(shí)踐使自己進(jìn)一步加深了對(duì)專業(yè)知識(shí)和理論知識(shí)學(xué)習(xí)的認(rèn)識(shí)和理解,使自己對(duì)于現(xiàn)實(shí)生活中的實(shí)際問(wèn)題有了更貼切的整體把握和領(lǐng)會(huì),并很好的將之與所學(xué)的相關(guān)知識(shí)達(dá)到了很好的聯(lián)系與對(duì)接,同時(shí)對(duì)于所學(xué)知識(shí)的應(yīng)用能力、分析問(wèn)題和解決問(wèn)題的能力都得到了全面的提高。</p><p> 設(shè)計(jì)者:
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 競(jìng)賽搶答器課程設(shè)計(jì)-微機(jī)接口課程設(shè)計(jì)報(bào)告
- 微機(jī)課程設(shè)計(jì)報(bào)告搶答器
- 微機(jī)原理課程設(shè)計(jì)---競(jìng)賽搶答器設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)報(bào)告---競(jìng)賽搶答器的設(shè)計(jì)
- 競(jìng)賽搶答器課程設(shè)計(jì)報(bào)告
- 競(jìng)賽搶答器課程設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)搶答器
- 微機(jī)原理課程設(shè)計(jì)---4路競(jìng)賽搶答器
- 《微機(jī)原理與接口技術(shù)》搶答器課程設(shè)計(jì)報(bào)告
- 《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)---搶答器
- 微機(jī)原理課程設(shè)計(jì)報(bào)告--數(shù)字式競(jìng)賽搶答器
- eda課程設(shè)計(jì)---競(jìng)賽搶答器
- eda課程設(shè)計(jì)---競(jìng)賽搶答器
- 課程設(shè)計(jì)報(bào)告---智力競(jìng)賽搶答器
- 微機(jī)課程設(shè)計(jì)--8路搶答器
- 智力競(jìng)賽搶答器課程設(shè)計(jì)報(bào)告
- 多路智能競(jìng)賽搶答器設(shè)計(jì)課程設(shè)計(jì)
- 智力競(jìng)賽搶答器課程設(shè)計(jì)
- 課程設(shè)計(jì)---智力競(jìng)賽搶答器
- 智力競(jìng)賽搶答器課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論