微機系統(tǒng)與接口技術搶答器綜合實驗_第1頁
微機系統(tǒng)與接口技術搶答器綜合實驗_第2頁
微機系統(tǒng)與接口技術搶答器綜合實驗_第3頁
微機系統(tǒng)與接口技術搶答器綜合實驗_第4頁
微機系統(tǒng)與接口技術搶答器綜合實驗_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《微機接》實驗報告題目:搶答器綜合實驗學號:成姓名:日期:績【設計目的】1)綜合運用已學過的芯片進行自主性的設計;2)強化對各種芯片功能的掌握以及進一步體會其工作的原理;3)學會運用芯片進行各種控制技術的實現。4)運用之前實驗中所用到的芯片8255A,8259A,8253A來實現競賽搶答器?!驹O計內容】用實驗箱上的按鈕S0~S7代替搶答器按鈕,運用8255A接芯片讀入按鈕的狀態(tài);設立5秒倒計時,倒計時結束開始搶答,在七段數碼管上搶答成功那個的組號(0~7)顯示出來,并使得蜂鳴器響1秒鐘;在倒計時5秒還沒結束時,若搶答則喪失搶答資格,即該組按鍵無效?!驹O計環(huán)境】STAR系列實驗儀一套、PC機一臺、8255A芯片、8253A芯片、8259A芯片【設計思緒】1)倒計時實現:運用8253A計數器0用2MHZ的時鐘頻率產生2kHZ的方波,計數器1用2KHZ的時鐘頻率產生1HZ的方波;以此方波作為8259A的中斷源IR2,中斷發(fā)生時,將中斷發(fā)生標志位Flag置1,作為判斷是否到達一秒的依據;每一秒產生一次中斷,循環(huán)5次可實現5秒倒計時。2)搶答情況采集:運用8255A的A連接到G6區(qū)按鍵,采集按鍵狀態(tài),輸入數據AL并在數碼管顯示出按下的健的組號;8接G6區(qū)發(fā)光管,將A采集到的按鍵狀態(tài)AL輸出顯示,以此可以觀看到是哪組按下的鍵,實驗時可驗證數碼管顯示是否對的,應用上可作為搶答成功提醒。3)組號顯示:8255A的A采集的按鍵狀態(tài)AL,有按鍵相應位上低電平,否則高電平;AL取反后僅有鍵按下的位上為高電平,通過右移,可計算出按鍵的號數。4)犯規(guī)解決:設立犯規(guī)標志FG,初值為0,倒計時期間,若有鍵按下,即為犯規(guī);犯規(guī)時8255A的A讀到的數據的AL在相應位上為低電平,為記下本次犯規(guī)號數,將AL取反后犯規(guī)號相應位為高電平,其它為低電平,用ORAL,FG可將犯規(guī)的號數記下來,保存AL即可。5)蜂鳴控制:運用8255A的PC7接蜂鳴器,在搶答成功的時通過PC7復位發(fā)出蜂鳴,延時一秒后,通過置位停止蜂鳴。6)搶答進入一輪控制:運用8255A的PC0接單脈沖可以運用單脈沖的高、低電平來控制是否進入下一輪搶答?!緦嶒灜h(huán)節(jié)】5.1實驗裝置的連線說明8255A:B4:CS、A1、A0——A3:CS3、A2、A1JP56G6:JP74JP53G6:65PC7蜂鳴器PC0——單脈沖8253:C5:CS、A0、A1A3:CS1、A0、A1CLK02MOUT0CLK1OUT1——B3:IR2(8259)GATE0、GATE1——VCC8259A:B3:CS、A0A3:CS7、A0INT、INTA——ES8088:INTR、INTA8279:E5:CS、A0A3:CS5、A0CLK2MB、CG5:B、C5.2編寫實驗程序及流程圖主程序流程圖:注:8253初始化、8259初始化,中斷服務程序在之前的實驗中已經做過類似的,本次實驗當中比較簡樸,這里省略。5.3運營調試程序1)按電路設計對的連接STAR的電路。2)打開PC機中的星研軟件,并載入源程序。3)對程序進行編繹,鏈接。4)運營程序,模擬搶答器控制,觀測LED燈的變化?!驹O計結果】本次設計實驗完畢設計內容,實現了競賽搶答器的基本功能,并且具有較大的實用性。倒計時開始后可以在數碼管上看到倒計時秒數變化,在5秒倒計時之內按下鍵的號數發(fā)光管燈亮,在5秒倒計時之后該號數失去搶答資格。當然,其他號數仍然有搶答機會,數碼管上將顯示出搶答成功的號數,并產生一秒的蜂鳴。運用單脈沖的高低電平可控制進入下一輪搶答?!緦嶒炐〗Y】本次的實驗運用所學知識,分析競賽搶答器實際實用常用功能,提出設計內容及規(guī)定,并設計硬件電路編程實現。在課本里的規(guī)定之上又添加了設立倒計時、在倒計時之間不能搶答、對搶答的犯規(guī)者作出取消資格并且運用8255的C高位輸出在搶答成功后發(fā)出蜂鳴,C低位輸入運用單脈沖來控制是否進行下一輪搶答等功能,實驗相對比較順利。實驗中碰到問題一:搶答成功的號數的顯示。剛開始對讀到的按鍵情況AL存放數據分析不透徹,導致輸出號數錯誤;通過一番思考,才想出對AL先做NOTAL解決后逐位右移計算在AL變成0之前要右移的次數相應0~7八個編碼。問題二:實現犯規(guī)者取消資格的功能。在判斷是否發(fā)生一秒中斷期間,不斷讀取A數據,判斷是否有按鍵;若有按鍵,表達違規(guī),輸出B,并對A數據并進行如下操作:NOTAL;違規(guī)按鍵ORAL,FGMOVFG,AL這樣,FG中就記錄了犯規(guī)者的編號,最后在倒計時結束之后讀取的A數據,或’上FG數據就可以實現對犯規(guī)者取消資格的功能。本次設計局限性之處:對于犯規(guī)者取消搶答資格,這樣也帶來了一個問題:假如倒計時未結束所有人都犯規(guī),即8個按鍵都有鍵按下,那么程序就會進入死循環(huán),永遠轉不出來。當然這樣的情況在實際使用中很難碰到,本次實驗并沒有對此進行改善。這樣的問題改善的方法很多,比如可以設立開始搶答3秒后要是還沒有人按鍵,那么本論搶答無效,進入下一輪搶答;有了之前設計的基礎,要實現這個功能也很簡樸,如:CHECK:MOVDX,0D0HCHECK:MOVDX,0D0HCHECK:MOVDX,0D0HCHECK:MOVDX,0D0HINAL,DXINAL,DXINAL,DXORAL,FG;犯規(guī)者按鍵無效ORINAL,DXORAL,FG;犯規(guī)者按鍵無效ORAL,FG;犯規(guī)者按鍵無效CMPAL,0FFH;FF時無健按下CMPAL,0FFH;FF時無健按下JNZOKJZCHECKLOOPCHECKOK:;有鍵按下,輸出MOVCX,3最后,原本是準備運用8251將搶答成功的號數發(fā)送并接受回來顯示在數碼管的此外一LED上,從而模擬搶答器將搶答結果提交給后臺的功能。一方面必須用8253的計數器2產生方波作為8251的接受發(fā)送數據數率,初始化8251,并實現自發(fā)自收;但是由于延時的因素會導致程序進入死循環(huán)無法運營,故而取消了8251。其接線圖見附錄。附件:【設計程序】.MODELTINYEXTRNdisplay8:NEAREXTRNGetBCDKey:NEAR.STACK1.DATAFLAGDB0BUFDB8DUP(10H)KEYDB0HSHKEYDB0HFGDB0H.CODESTART:MOVAX,@DATAMOVDS,AXMOVES,AXMOVDX,0D6H;8255A接開關(按鍵)B接發(fā)光管,輸出顯示按下的按鍵,PC7接蜂鳴器MOVAL,99H;A方式0輸入,B方式0輸出,C高位輸出,低位輸入OUTDX,ALMOVAL,0FFHMOVDX,0D2HOUTDX,ALMOVAL,0FH;PC7置位,不蜂鳴MOVDX,0D6HOUTDX,ALCALLC8253CALLC8259A;8259A初始化CALLIRQ2STISTART1:MOVFG,0;犯規(guī)者清零MOVCX,5;倒計時秒數MOVBUF,CLMOVBUF+1,10HMOVBUF+2,10HMOVBUF+3,10HMOVBUF+4,10HMOVBUF+5,10HMOVBUF+6,10HMOVBUF+7,10HLEASI,BUFCALLDISPLAYSMOVFLAG,0;開始倒計時DLOP5s:MOVDX,0D0HINAL,DXCMPAL,0FFH;FF時無健按下JZDLNEXTMOVDX,0D2HOUTDX,AL;B輸出按下的健NOTAL;違規(guī)按鍵ORAL,FGMOVFG,ALDLNEXT:CMPFLAG,0JZDLOP5sMOVAL,CLDECALMOVBUF,ALMOVBUF+1,10HMOVBUF+2,10HMOVBUF+3,10HMOVBUF+4,10HMOVBUF+5,10HMOVBUF+6,10HMOVBUF+7,10HLEASI,BUFCALLDISPLAYSMOVFLAG,0LOOPDLOP5sCHECK:MOVDX,0D0HINAL,DXORAL,FG;犯規(guī)者按鍵無效CMPAL,0FFH;FF時無健按下JZCHECKMOVDX,0D2HOUTDX,AL;B輸出按下的健NOTALMOVBL,0TKEY:SHRAL,1JZSHOWKEY;顯示號數INCBLJMPTKEYSHOWKEY:MOVKEY,BL;保存號碼MOVBUF+3,BLMOVBUF+1,10HMOVBUF+2,10HMOVBUF,10HMOVBUF+4,10HMOVBUF+5,10HMOVBUF+6,10HMOVBUF+7,10HLEASI,BUFCALLDISPLAY8MOVAL,0EH;PC7復位,蜂鳴MOVDX,0D6HOUTDX,ALMOVFLAG,0;延時一秒DLOP1s1:CMPFLAG,0JZDLOP1s1MOVAL,0FH;PC7置位,不蜂鳴MOVDX,0D6HOUTDX,ALMOVDX,0D4HHOLD:INAL,DXTESTAL,01HJZHOLDJMPSTART1C8253PROCNEAR;8253初始化;設立計數器0用2MHZ的時鐘頻率;產生2kHZ的方波2M/2K=10MOVDX,0F3HMOVAL,37H;110111計數器0,寫16位,方式3,BCD計數OUTDX,ALMOVDX,0F0HMOVAL,H;寫入計數初值低8位OUTDX,ALMOVAL,10H;寫入計數初值高8位OUTDX,AL;設立計數器1用2KHZ的時鐘頻率;產生1HZ的方波2K/1=2023MOVDX,0F3HMOVAL,77H;01110111計數器1,寫16位,方式3,BCD計數OUTDX,ALMOVDX,0F1HMOVAL,H;寫入計數初值低8位OUTDX,ALMOVAL,20H;寫入計數初值高8位OUTDX,ALRETC8253ENDPC8259APROCNEAR;8259A初始化MOVDX,090HMOVAL,13H;設立ICW1,即中斷請采邊沿觸發(fā)OUTDX,ALMOVDX,091HMOVAL,0AH;ICW2,即中斷類型碼高五位為1BOUTDX,ALMOVAL,0DH;ICW4,即不采用特殊的完全嵌套方式,緩沖方式,也不用自動中斷結束方式,cpu為8088OUTDX,ALMOVAL,0FBH;OCW1,IR2不被屏蔽OUTDX,ALRETC8259AENDPIRQ2PROCNEAR;中斷服務程序入地址填入中斷向量表的程序段MOVAX,0MOVES,AXMOVDI,28H;過程的中斷向量在表內的偏移量MOVAX,OFFSETINTACLDSTOSWMOVAX,CSSTOSWRETIRQ2ENDPINTAPROCNEARPUSH[DXPUSH[AXMOVFLAG,1MOVDX,090HMOVAL,20H;OCW2,EOIOUTDX,ALPOPAXPOPDXIRETINTAENDPENDSTART【運用8251的接線圖】8255:B4CS->A3:CS3A1A0->A2A1PA->G6:按鍵PB->G6:發(fā)光管PC7->蜂鳴器PC

溫馨提示

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

評論

0/150

提交評論