




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 競賽搶答器一題義分析及解決方案1題義與需求分析題目要求利用8086系統(tǒng)接口電路設計一個可供八人競賽使用的搶答器,并顯示競答者編號(18)。根據(jù)題義可知:本設計是要設計一個能夠提供給8個人使用的競賽搶答裝置,能夠使得搶答者的編號,顯示的裝置。首先是主持人發(fā)出搶答允許信號,當搶答者收到信號后,便立刻進行搶答,然后通過裝置,將最先搶答者的編號顯示出來。根據(jù)以上分析,提出以下幾個問題:主持人如何發(fā)出搶答的信息?競賽者如何進行搶答?如何將分辨搶答的順序,誰是最先搶答的?如何顯示搶答者的編號?搶答的總體規(guī)則是什么?怎樣控制?2解決問題的思路和方法(1)、解決思路:上述提出的問題發(fā)現(xiàn)第一、第二和第四個問題
2、需要用硬件來實現(xiàn),而第三和第五個問題需要軟件編程來實現(xiàn)。組號器件名稱特 點1小鍵盤鍵盤(Keyboard)是常用的輸入設備,它是由一組開關矩陣組成,結(jié)構相對復雜邏輯開關結(jié)構簡單,使用方便,價格便宜28255A芯片8255芯片是可編程的并行接口芯片,不需要附加外部電路便可和大多數(shù)并行傳輸數(shù)據(jù)的外部設備相連,數(shù)據(jù)的各位同時傳送,使用十分方便8251A芯片8251芯片是可編程的串行接口芯片,數(shù)據(jù)一位一位地順序傳送,電路簡單,傳輸距離遠3L E DLED顯示器與LCD顯示器相比,LED在亮度、功耗、可視角度和刷新速率等方面,都更具優(yōu)勢。LED與LCD的功耗比大約為10:1,LED的最顯著特點是使用壽命
3、長,光電轉(zhuǎn)換效能高,綠色環(huán)保 表一:所用芯片功能首先我們可用列表比較的方法來選擇合理的器件,具體器件的名稱和特點如表一所示。對硬件選擇進行分析進行分析:通過對小鍵盤和微動開關比較,我們選擇結(jié)構簡單,使用方便微動開關作為搶答者的搶答器件。對8255和8251芯片進行比較,選擇方便易使用的8255作為本設計的主要芯片。對顯示設備的選擇,選擇LED更為經(jīng)濟實惠。通過以上分析,本次設計所選用的芯片為:8255A芯片、微動開關和LED發(fā)光二極管。(2)、解決問題的方法a硬件部分:首先選擇可編程并行接口芯片8255A,實現(xiàn)八個競賽搶答器的顯示換碼并輸出。使8255A工作在方式0基本輸入輸出,將PA口做為輸
4、入口,PB口做為輸出口,PC1 =0做位選碼。選用LED七段數(shù)碼顯示控制電路板一塊,使用其顯示18位搶答者編號。b軟件部分:通過編寫程序來實現(xiàn)搶答的功能。首先應當實現(xiàn)搶答器的最基本功能,即當搶答允許信號發(fā)出后,搶答者做出了搶答,要在LED上顯示最先搶答者的編號。這是基本功能,其次應該考慮同時有兩個人搶答的情況,如過出現(xiàn)了,這個情況,就在顯示設備上顯示E,表示錯誤,需要重新?lián)尨?。另外,在搶答結(jié)束后,需要進行下一輪的搶答,因此如果 出現(xiàn)有搶答者的開關沒有松開的情況,就無法進行下一輪的搶答。所以要對開關是否松開進行判斷。二硬件設計1芯片8255A(1)8255A在本設計中的作用 PA口送入開關量進行
5、鎖存,通過控制程序進行判斷和處理,最后從PB口輸出。(2) 8255A的主要功能分析8255A是一種可控制編程的并行接口芯片,本設計中將PA做輸入口,PB作輸出口,工作于方式0,PC1作為輸入口,C口其他位不用。8255A工作方式0又稱為基本輸入/輸出(同步傳送)方式,該方式下可將三個數(shù)據(jù)端口劃分為四個獨立的部分,A口和B口作為兩個8位端口,C口高四位和低四位可用作兩個4位端口。8255A在方式0下輸出的數(shù)據(jù)被鎖存,而輸入的數(shù)據(jù)是不鎖存的。8255A的端口錄址及操作功能如圖二所示: D7 D6 D5 D4 D3 D2 D1 D01A組工作方式A口I/OC7-c4 I/OB組工作方式B口I/OC
6、3-c0 I/O | | | | | | | 特征位 00方式0 1輸入 1輸入 8255A的方式控制字: 0方式0 1輸入 1輸入 01方式1 0輸出 0輸出 1方式1 0輸出 0輸出 10方式2 D7 D6 D5 D4 D3 D2 D1 D00×××寫入位編碼寫入內(nèi)容 寫入位 | 編碼 | D0 000 0寫入0 D1 001 1寫入1 D2 010 D3 011 D4 100 D5 101 D6 110 D7 111表二:8255A的置位/復位控制字A1A0端口號及其功能00010端口A>數(shù)據(jù)總線輸入操作(讀)01010端口B>數(shù)據(jù)總線10010
7、端口C>數(shù)據(jù)總線00100數(shù)據(jù)總線>端口A輸出操作(寫)01100數(shù)據(jù)總線>端口B10100數(shù)據(jù)總線>端口C11100數(shù)據(jù)總線>控制字寄存器xxxx1未選中8255A,數(shù)據(jù)總線>三態(tài)斷開功能1 1010 非法狀態(tài)xx110數(shù)據(jù)總線>三態(tài) 表三:8255A的端口錄址及操作功能表 2LED發(fā)光二極管(1)芯片在本設計中的作用 LED發(fā)光二極管用于顯示競賽者的編號(2)LED的功能分析 LED發(fā)光原理及特性:發(fā)光二極管是由-族化合物,如GaAs(砷化鎵)、GaP(磷化 鎵)、GaAsP(磷砷化鎵)等半導體制成的,其核心是PN結(jié),因此它具有一般P-N結(jié)的I-N
8、特性,即正向?qū)?,反向截止、擊穿特性。此外,在一定條件下,它還具有發(fā)光特性。在正向電壓下,電子由N區(qū)注入P區(qū),空穴由P區(qū)注入N區(qū)。進入對方區(qū)域的少數(shù)載流子(少子)一部分與多數(shù)載流子(多子)復合而發(fā)光。假設發(fā)光是在P區(qū)中發(fā)生的,那么注入的電子與價帶空穴直接復合而發(fā)光,或者先被發(fā)光中心捕獲后,再與空穴復合發(fā)光。除了這種發(fā)光復合外,還有些電子被非發(fā)光中心(這個中心介于導帶、介帶中間附近)捕獲,而后再與空穴復合,每次釋放的能量不大,不能形成可見光。發(fā)光的復合量相對于非發(fā)光復合量的比例越大,光量子效率越高。由于復合是在少子擴散區(qū)內(nèi)發(fā)光的,所以光僅在靠近PN結(jié)面數(shù)m以內(nèi)產(chǎn)生。有段選碼和位選碼確定數(shù)字18的
9、輸出并在延時程序中保持復位。它是一種當外加電壓超過額定電壓字符而形成的。有段選碼和位選碼確定數(shù)字18的輸出并在延時程序中保持復位。它是一種當外加電壓超過額定電壓時發(fā)生擊穿,并因此而產(chǎn)生可見光的器件。這種數(shù)碼管是有7段或8段筆畫顯示器組成一個字符而形成的。時發(fā)生擊穿,并因此而產(chǎn)生可見光的器件。這種數(shù)碼管是有7段或8段筆畫顯示器組成一個(3)LED的技術參數(shù)分析LED發(fā)光二極管的壓降一般為1.5-2.0V,其工作電流一般取10-20Ma,發(fā)光二極管可應用于直流驅(qū)動電路、交流驅(qū)動電路和脈沖驅(qū)動電路。 由于8255A的最大驅(qū)動電流為4.0mA,而LED的工作電流一般為10-20mA,所以需要加一個驅(qū)動
10、器74LS244。圖一:數(shù)碼管結(jié)構 數(shù)字dpgfedcba二進制編碼0001111113Fh10000011006h2010110115Bh3010011114Fh40110011066h5011011016Dh6011111017Dh70000011107h8011111117FhE0111100179h表四:LED顯示管段選碼編碼表3微動開關(1)微動開關在本設計中的作用 當競賽者進行搶答時,可通過微動開關作為輸入信號。2)軟件部分對于設計中的搶答規(guī)則由軟件來實現(xiàn),考慮到8位選手的各自按下?lián)尨鹧b置與自己的編號間的對應關系,8個信號有可能在同一時間段內(nèi)有兩個或以上信號輸入,各自之間在時間上不
11、會牽制,即涉及并行的方式輸入,后要對輸入的開關量進行處理、輸出,連接至LED顯示,其中需有一主控裝置,據(jù)此結(jié)合課程的所學的相關知識可知,使用可編程并行接口芯片825能夠滿足要求,實現(xiàn)相關功能。實現(xiàn)時,可設置8255的A口作為八個輸入信號,用邏輯電平開關K0K7代表搶答裝置的搶答開關18號。當某個邏輯開關置“1”時,顯示有效,當有兩個或以上選手同時按下?lián)尨鹌鲿r,信號無效,顯示“E”。將B口輸出信號與7段LED的ah連接,即可用LED顯示器輸出搶答結(jié)果。另外,用8255的C口中的PC7作為主控信號,高電平時表示允許搶答,低電平時禁止搶答。在實驗中需設置C口位控制選用新實驗箱的八個LED顯示中的一個
12、。5硬件總邏輯圖及其說明(見下頁)三控制程序設計1控制程序思路說明根據(jù)所設計的硬件邏輯圖,所需要編寫的控制程序主要有兩個方面:其一在程序中判斷最高優(yōu)先級者。再利用8255A進行換碼通過七段LED顯示器用其中的一個LED顯示搶答者編號。具體實現(xiàn)步驟如下:首先初始化8255A,使8255A工作在方式0,A口作輸入口,B口作輸出口,然后使按鍵復位并按復位鍵,通過8255A使LED顯示器顯示出0,示意搶答的開始,然后讀斷口A的狀態(tài),并通過程序查表找出與斷口A狀態(tài)相同的數(shù)據(jù),并以十進制在LED上進行顯示,以此來標志搶答器的按鍵號碼,然后重新復位進行新一輪搶答,如果有兩個或兩個以上的競答者同時按下開關,則
13、仍顯示零,作為搶答無效的標志。然后重新復位,為下一輪搶答作好準備。圖二:硬件總邏輯圖輯圖 2程序流程圖 3控制程序.MODELTINYPCIBAR3EQU1CH;8位I/O空間基地址(它就是實驗儀的基地址, 也為DMA & 32 BIT RAM板卡上的8237提供基地址) Vendor_IDEQU 10EBH;廠商ID號Device_IDEQU8376;設備ID號.STACK100.DATAIO_Bit8_BaseAddressDW?msg0DB'BIOS不支持訪問PCI $'msg1DB'找不到Star PCI9052板卡 $'msg2DB'讀
14、8位I/O空間基地址時出錯$'COM_ADD DW00F3H;控制口偏移量PA_ADDDW00F0H;PA口偏移量PB_ADDDW00F1H;PB口偏移量PC_ADDDW00F2H;PC口偏移量.CODESTART:MOV AX,DATAMOV DS,AXNOP CALL InitPCI CALL ModifyAddress;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實地址 mov dx,COM_ADD ;控制口地址 mov ax,90h ;10010000 out dx,ax ;設置工作方式0,A口輸入,B口輸出,C口輸出LED位選碼控制ctrl0: mov ax,00h ;禁止顯示L
15、ED全滅 mov dx,PB_ADD ;B口地址輸出 out dx,axctrl3: mov dx,PB_ADD mov ax,3fh ;輸出顯示0表示允許搶答 out dx,ax mov dx,PC_ADD ;設置數(shù)碼管位選碼 mov al,7Fh ;只使用最左邊一位 out dx,alctrl2: mov dx,PA_ADD ;通過A口地址讀輸入信號 in ax,dx ;讀A口狀態(tài) not ax ;取反,因為微動開關按下為低電平有效 cmp al,00h ;檢測是否有輸入 jz ctrl2 ;沒有則繼續(xù)檢測 mov dl,al mov bl,00h ;bl用于記錄有幾人同時按鍵 mov c
16、x,8h ;循環(huán)次數(shù)cheshi1: ror dl,1 ;循環(huán)右移一位,末位進CF jnc cheshi2 ;若沒有進位,即CF=0則跳轉(zhuǎn)recheshi繼續(xù)測試 inc bl ;有進位,bl自加記錄同時搶答人數(shù)cheshi2: loop cheshi1;循環(huán)測試8次 cmp bl,1 ja error ;有一人以上同時搶答,則報錯 mov bl,00h ;bl清零next: ror al,1 ;有搶答信號 jc print ;有則輸出 inc bl ;bl用來記錄是哪一位選手 jmp nexterror: mov bl,8print: mov al,bl lea bx,ssegment ;查
17、表 xlat ;將BX的內(nèi)容(代碼表首地址)+AL的內(nèi)容(表格偏移量)作為有效地;址,最終內(nèi)容存入AL中 mov dx,PB_ADD out dx,al mov dx,PC_ADD ;設置數(shù)碼管位選碼一位顯示 mov al,7Fh out dx,alctrl5: mov dx,PA_ADD in ax,dx cmp al,0ffh ;檢測開關是否已松開 jnz ctrl5 ;沒有松開繼續(xù)檢測 jmp ctrl0 ;松開開關,即結(jié)束則重新開始 retssegment:db 06hdb 5bhdb 4fhdb 66hdb 6dhdb 7dhdb 07hdb 7fhdb 79hDL4S PROC N
18、EARpush axpush dxmov dx,4mov ah,0ffhint 21hpop dxpop axRETDL4S ENDPInitPCIPROCNEARMOVAH,00HMOVAL,03HINT10H ;清屏MOVAH,0B1HMOVAL,01HINT1AHCMPAH,0JZInitPCI2LEADX,msg0InitPCI1:MOVAH,09HINT21HJMPExitInitPCI2:MOVAH,0B1HMOVAL,02HMOVCX,Device_IDMOVDX,Vendor_IDMOVSI,0INT1AHJNCInitPCI3;是否存在Star PCI9052板卡LEADX,
19、msg1JMPInitPCI1InitPCI3:MOVDI,PCIBAR3MOVAH,0B1HMOVAL,09HINT1AH ;讀取該卡PCI9052基地址JNCInitPCI4LEADX,msg2JMPInitPCI1InitPCI4:ANDCX,0FFFCHMOVIO_Bit8_BaseAddress,CXRETInitPCIENDPModifyAddressPROCNEARADDCOM_ADD,CXADDPA_ADD,CXADDPB_ADD,CXADDPC_ADD,CXRETModifyAddressENDPExit:MOVAH,4CHINT21HENDSTART四、上機調(diào)試過程 1硬件
20、調(diào)試:在接線連接好以后,運行程序,發(fā)現(xiàn)在七段LED上顯示的結(jié)果少了一段,C段始終不顯示,后來將A口與B口對換,即A口輸出,B口輸入,顯示正確。2.軟件調(diào)試:1) 打開主持人開關,數(shù)碼管顯示1后沒有循環(huán)顯示2,而是8,檢查程序后發(fā)現(xiàn),xlat命令是將BX的內(nèi)容(代碼首地址)與AL的內(nèi)容(表格偏移量)相加作為有效地址,并從中取出此地址單元中的內(nèi)容送到AL中,故AL中數(shù)據(jù)變換了,而程序要求循環(huán)顯示18,Al應保持從0開始,始終加1,這就要保存AL的內(nèi)容。2) 繼續(xù)調(diào)試,之間的都是一些判斷出錯問題,一一單步調(diào)試解決,程序通過。3) 程序全速運行還有一些細節(jié)問題,當有兩個搶答者分別先后按鍵,有時會顯示E
21、,按鈕反應速度太慢,將延時程序的延時由1s改為0.5s。4) 當8號參賽者按下按鈕時,數(shù)字8不能鎖存,將8255A控制字改為98H,C口高8位輸入,低8位輸出。解決了以上的一些主要問題后,具有搶答功能的程序就完成了,聯(lián)機調(diào)試一下就運行出來了。(1)、對硬件部分的調(diào)試,LED顯示少了一段,最初懷疑是LED出現(xiàn)問題,但是經(jīng)過驗證,發(fā)現(xiàn)LED完好無損,而段選編碼也是正確的。于是,便懷疑是8255A的PA口或者是PB口某個引腳出現(xiàn)了問題。因為本設計是一A口輸入,B口輸出,如果輸入的A口某個引腳出現(xiàn)了問題或者B口某個引腳出現(xiàn)了問題,都有可能導致LED顯示少某一段。因此,對設計進行了調(diào)整,以B口做為輸入,
22、A口作為輸出,并對程序進行了修改,發(fā)現(xiàn)此時LED顯示正確。因此可以斷定并非是8255A的問題,因為如果是A口或者B口某個引腳出現(xiàn)了問題,將A口與B口的功能交換是不可能出現(xiàn)顯示不少段的。因此對本問題的可能原因進行分析:可能是8255A的A口與B口的某個插針接觸不良,而在實驗中有疏忽大意了,導致這樣的結(jié)果。(2)、對軟件部分的調(diào)試,可以知道延時的需要于否是無關緊要的,因為這個延時是用來的等待搶答者信號的輸入,而在程序中,對搶答者有沒有輸入信號已經(jīng)做了判斷,如果沒有人搶答,就會返回重新判斷,直到有搶答者輸入信號為止,因此這個延時是不需要的。五、設計結(jié)果分析和問題討論1、課程設計結(jié)果:當LED上顯示了
23、“0”后,搶答者便可以進行搶答,如果沒有顯示便不可以。由于在本次設計中只需要1位數(shù)碼管,因而應將其余的數(shù)碼管置為無效,所以在程序中應向C口寫入控制字7FH;在搶答者搶答過后,在LED上就顯示出最先搶答的者的編號。如果出現(xiàn)了兩個人同時搶答的情況,顯示的結(jié)果為E,表示搶答無效。而在一輪搶答結(jié)束后,如果有搶答者沒有將開關松開,就無法進行下一輪搶答,必須將開關松開才可以。2、設計結(jié)果分析:本設計是以8255A的A口作為輸入,B口作為輸出的,搶答者是以A口輸入信號,C口全部作為輸出,通過程序來實現(xiàn)具體的功能,也就是將最先搶答者的編號輸出顯示,或者有兩人同時搶答的時候輸出顯示“E”。在設置8255A的工作
24、方式時,所以應為90h,否則結(jié)果出錯3、問題討論:(1)、輸入信號有無的判斷:在程序中,由于開關是低電平有效,所以首先對開關量取反,然后通過與00H比較,來判斷是否有輸入。如果沒有輸入,那么就等于0,跳回重新判斷,如果有輸入,就等于1,繼續(xù)執(zhí)行。(2)、同時搶答的判斷:在程序中,是通過開關量來判斷是否有同時搶答的情況。通過取反,將開關量存入DL中,將其循環(huán)右移,并添加清過零的BL寄存器,用來記錄進位次數(shù)。如過,DL循環(huán)右移有進位BL就進行加1操作,最后判斷BL是否大于1。如果大于1,就說明有2個或以上的人同時搶答。如果等于1,就表示,沒有同時搶答情況。(3)、輸出最先搶答者編號:通過對以上同時
25、輸入的判斷后,如過沒有同時輸入就可以進行最先搶答者的判斷。就是將已經(jīng)存入開關量的AL進行循環(huán)右移,同樣需要清過零的BL寄存器來記錄進位。當有進位后,停止循環(huán)右移,將BL的內(nèi)容容存入AL,然后通過查找段選表的首地址將BL的內(nèi)容加上AL的內(nèi)容,最終存入AL中,最后通過LED輸出顯示搶答者的編號。 (4)輸入信號有無的判斷的討論:在程序中,由于開關是低電平有效,所以都要與0FFH比較,來判斷是否有輸入。如果沒有輸入,那么就等于1,跳回重新判斷,如果有輸入,就等于0,繼續(xù)執(zhí)行。 (5)對同時搶答判斷的討論:在程序中,通過開關量來判斷是否有同時搶答的情況。將開關量存入DL中,將其循環(huán)右移,并添加清過零的BL寄存器,用來記錄進位次數(shù)。如有,DL循環(huán)右移有進位BL就進行加1操作,最后判斷BL是否大于1。如果大于1,就說明有2個或以上的人同時搶答。如果等于1,就表示,沒有同時搶答情況。 (6)輸出最先搶答者編號:通過對以上同時輸入的判斷后,如果沒有同時輸入就可以進行最先搶答者的判斷。就是將已經(jīng)存入開關量的AL進行循環(huán)右移,同樣需要清過零的BL寄存器來記錄進位。當有進位后,停止循環(huán)右移,將BL的內(nèi)容容存入AL,然后通過查找段選表的首地址將BL的內(nèi)容加上AL的內(nèi)容,最終存入AL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 展板購銷合同范本
- 用品采購合同范本
- 裝修合同付款合同范本
- 汽車家訪合同范本
- 藥店外包合同范本
- 水混凝土合同范本
- 門店兼職合同范本
- 2025年三片式球閥項目合作計劃書
- 2025年張緊裝置項目發(fā)展計劃
- 訪客信息安全保護合同(2篇)
- 2024年3月天津第一次高考英語試卷真題答案解析(精校打印)
- 《國防動員準備》課件
- 2024年688個高考英語高頻詞匯
- 商標合資經(jīng)營合同
- 第六講當前就業(yè)形勢與實施就業(yè)優(yōu)先戰(zhàn)略-2024年形勢與政策
- 2024-2030年中國家政服務行業(yè)經(jīng)營策略及投資規(guī)劃分析報告
- 2025年護士資格證考核題庫及答案
- 湖北省黃岡市2023-2024學年五年級上學期數(shù)學期中試卷(含答案)
- GB/T 44351-2024退化林修復技術規(guī)程
- ××管業(yè)分銷市場操作方案
- 《ISO 41001-2018 設施管理- 管理體系 要求及使用指南》專業(yè)解讀與應用指導材料之15:“7支持-7.6 組織知識”(雷澤佳編制-2024)
評論
0/150
提交評論