八路搶答器(匯編程序)-微機課程設計參考word_第1頁
八路搶答器(匯編程序)-微機課程設計參考word_第2頁
八路搶答器(匯編程序)-微機課程設計參考word_第3頁
八路搶答器(匯編程序)-微機課程設計參考word_第4頁
八路搶答器(匯編程序)-微機課程設計參考word_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 課程設計報告課程 微機原理課程設計 題目 競賽搶答器 系 別 物理與電子工程學院 年 級 09級 專 業 電子信息工程 班 級 1班 學 號 160409105,6,7,8 學生姓名 指導教師 職 稱 設計時間 推薦精選目 錄第一章 關于搶答器的概述及設計要求21.1數字搶答器的簡介21.2課程設計要求21.3實現功能3第二章 總體設計42.1功能需求分析42.2可行性分析42.3硬件總體設計42.3.1硬件器材42.3.2內存單元地址42.4軟件流程圖5第三章 硬件設計63.1所選芯片介紹63.1.1可編程并行接口接口芯片8255A63.1.2可編程定時器計數器825373.2系統所選用各

2、芯片的連接83.2.1各芯片與CPU的連接83.2.2各芯片之間的連接和與外設的連接8第四章 軟件設計94.1程序流程94.2子程序清單94.2.1 芯片8255初始化:94.2.2芯片8253初始化:94.2.3獲取選手號碼子程序:94.2.4數碼管顯示子程序:104.2.5揚聲器鳴叫時間:11第五章 結果分析12結束語13附錄14參考文獻14主程序清單14推薦精選第一章 關于搶答器的概述及設計要求1.1數字搶答器的簡介搶答器是在競賽、文體娛樂活動(搶答活動)中,能準確、公正、直觀地判斷出搶答者的機器。通過搶答者的指示燈顯示、數碼顯示和警示顯示等手段指示出第一搶答者。隨著科學技術的不斷發展,

3、促使人們學科學,學技術,學知識的手段多種多樣,搶答器作為一種強大工具,已經廣泛應用于各種知識能力競賽場合,例如選拔人才、評選優勝及各種智力競賽等。目前知識競賽之類的活動愈加頻繁,凡是有知識競賽類的活動那么也就必然離不開搶答器。針對主持人提出的問題,各組一般要進行必答和搶答,對于搶答,要判定哪組先按鍵,為了公正,這就要有一種邏輯電路搶答器作為裁判員。這種數字搶答器杜絕了人為因素的影響,實現了搶答公平公正的原則。所以操作簡單、經濟實用的小型數字搶答器將流行于各類競賽中,成為小規模知識競賽的首選。1.2課程設計要求內容:用微機原理實驗箱,在外接8個按鍵的搶按下,讓7段LED數碼管顯示搶答者編號,并使

4、喇叭響一下。具體要求:(1) 通過實驗箱上8255芯片接收來自實驗箱按鍵的信息,將該信息送入8088CPU,由CPU判斷是哪個按鍵按下;(2) 8088CPU將判斷出的按鍵信息轉換為7段顯示碼,并通過8255芯片發送到7段顯示模塊顯示;(3) 在顯示按鍵信息的同時通過實驗箱上8253芯片產生一定頻率的方波信號發送到音頻功放模塊,發出聲音;(4) 提高要求: 能對幾乎同時發生的按鍵進行判別,找到先按的鍵。推薦精選1.3實現功能當沒有選手按下按鍵時,LED數碼管顯示“-”符號,表示此時可以進行搶答,當搶答開始,選手按下8路搶答器中的任何一路開關時,8段LED數碼管上顯示最先按開關的選手的號碼,同時

5、蜂鳴器鳴叫一段時間以示已經有人搶答成功。當一位選手搶答成功時,數碼管上顯示這位選手的號碼,此時其他選手再按下按鍵不會產生任何作用,系統進入鎖死狀態,當搶答成功的選手退下按鍵時,LED數碼管顯示“-”符號,表示系統已經初始化,可以進行下一輪搶答。推薦精選第二章 總體設計2.1功能需求分析系統必須準確判斷搶答者的信息,根據按鍵信息判斷被按下的按鍵的序號,在LED數碼管上顯示相應的數字反映搶答信息,同時蜂鳴器響一聲以示有選手搶答成功。2.2可行性分析將8個搶答器按鍵連接到8255芯片的PA0PA7,當8組均未按下搶答按鈕時,送入到并行接口的8位搶答狀態都是0,當檢測到按鍵發生變化時,即微機采樣到這8

6、位數據不為0時,微機通過該并行輸入口循環對8路搶答信號進行采樣。當采樣到哪一組的搶答信號已經發出,則記錄下該組的組號,從PB口輸出組號所對應的LED數碼管段碼,同時PC7端口連接至定時器的門控信號端口,使定時器工作,輸出端連接到蜂鳴器,蜂鳴器鳴叫一段時間后關閉,若系統檢測到按鍵信息全為0時,表明選手已經把按鍵退下,則系統重新開始檢測按鍵狀態,進入下一個搶答環節。2.3硬件總體設計2.3.1硬件器材所需器件:可編程并行接口芯片8255、可編程定時器計數器8253,揚聲器,一個LED顯示器,8個按鍵。2.3.2內存單元地址可編程并行接口接口芯片8255A的端口地址為0ff28H、0ff29H、0f

7、f2AH、0ff2BH。可編程定時器計數器8253的端口地址為0040H、0041H、0042H、0043H。推薦精選2.4軟件流程圖開始8255初始化8253初始化顯示“-”符號從8255A口讀取按鍵狀態YY無按鍵按下YNLED顯示1按鍵1按下LED顯示3LED顯示4LED顯示5LED顯示6LED顯示7LED顯示2YN按鍵2按下N按鍵3按下YYN按鍵4按下NY按鍵5按下YN按鍵6按下N按鍵7按下NLED顯示8Y按鍵8按下蜂鳴器響一聲檢測PA口是否全為0N按鍵全為0Y推薦精選圖1 系統軟件流程圖第三章 硬件設計3.1所選芯片介紹3.1.1可編程并行接口接口芯片8255A8255A內部結構825

8、5A芯片是一個采用NMOS工藝制造的40引腳雙列直插式(DIP)封裝組件。8255A有3個8位數據端口,即A口、B口及C口,它們都可以分別作為輸入口或輸出口使用;A組控制與B組控制;讀寫控制邏輯;數據總路線緩沖器。8255A主要的外部引腳圖2 8255A引腳圖PA7PA0:A口的8條IO線。8條線只能同時作為輸入或輸出,不能分開使用,可設置成雙向口,也只有A口允許這樣做。PB7PB0:B口的8條IO線。不可以設置成雙向口,其它和A口一樣。PC7PC0:C口的8條IO線。不可以設置成雙向口,但它可以分拆為兩組即高4位和低4位,這兩組可以任意設置為輸入或輸出。除了作為獨立的IO線外,C口還經常為A

9、口、B口服務,配合A口、B口作聯絡線使用。A1、A0:端口地址選擇信號。用于選擇8255A的3個數據端口和一個控制口。當A1A0=00時,選擇端口A;為01時,選擇端口B;為10,選擇端口C;為11時,選擇控制口。推薦精選8255A工作方式方式0:基本的輸入輸出方式。A口、B口、C口都可以工作在些方式下。8255A方式控制字格式表1 8255方式控制字D7D6、D5D4D3D2D1D01A口A口C口高4位B口B口C口低4位00 方式001 方式11x 方式20 輸出1 輸入0 輸出1 輸入0方式01方式10 輸出1 輸入0 輸出1 輸入3.1.2可編程定時器計數器82538253的內部結構82

10、53采用NMOS工藝制成,有24個引腳,所有輸入、輸出端均TTL電平兼容,單一電源(Vcc=+5V)供電,最高計數速率為2.6MHz。它包括3個計數器(即計數器0、1、2)、數據總路線緩沖器、讀寫邏輯以及控制寄存器等4個部分。8253的外部引腳圖3 8253引腳圖A1、A0:地址輸入線,用來址8253內部的4個端口,即3個計數器和1個控制字寄存器與CPU系統地址線相連。CLK0、CLK1、CLK2:時鐘脈沖輸入端,用于輸入定時脈沖或計數脈沖信號。CLK可以是系統的時鐘脈沖,也可以由系統時鐘分頻或者其他脈沖源提供。當用于定時時,這個脈沖必須是均勻的、連續的、周期精確的,而用于計數時,這個脈沖可以

11、是不均勻的、斷續的、周期不定的。推薦精選GATE0、GATE1、GATE3:門控輸入端,用于外部控制計數器的啟動計數和停止計數的操作。兩個或兩個以上計數器連用時,可用此信號同步,也可用于與外部某信號的同步。OUT0、OUT1、OUT2:計數輸出,當計數器從初值開始完成計數操作進,OUT引腳輸出相應的信號。8253的工作方式方式0:減1計數到0,產生中斷請求信號。方式3:減1計數到初值的12,方波發生器。8253方式控制字格式表2 8253方式控制字D7 D6D5 D4D3 D2 D1D000 選計數器001 選計數器110 選計數器200 計數器鎖存01 只讀寫低8位10 先讀寫高8位11 先

12、讀寫低8位 再讀寫高8位000 方式0001 方式1X10 方式2X11 方式3100 方式4101 方式50 二進制計數1 BCD計數3.2系統所選用各芯片的連接3.2.1各芯片與CPU的連接8255A、8253的數據總線D7D0端、端、端、端、端、INT端分別與CPU的D7D0數據總線、片選端、端、端、端、INTR端。8255A、8253的A1、A0端分別與CPU地址線的A1、A0端相連。3.2.2各芯片之間的連接和與外設的連接8255A的A口的PA7PA0依次接“按鍵1”“按鍵8”,B口的PB7PB0通過驅動器1接到LED顯示器,8253的GATE0端接PC7端口,CLK0接1MHz,O

13、UT0的輸出接入接揚聲器。推薦精選第四章 軟件設計4.1程序流程設定好8255、8253的方式控制字后,根據讀取8255PA端口的狀態值,獲取選手的具體號碼,從而轉到相應程序,將號碼所對應的段碼輸出到PB端口進行數碼管顯示。同時將PC7置1,使相連的GATE0門控信號為1,通道0進行計數,輸出到揚聲器進行鳴叫。4.2子程序清單4.2.1 芯片8255初始化:PORT_A EQU 0FF28HPORT_B EQU 0FF29HPORT_C EQU 0FF2AHPORT_CTL EQU 0FF2BH MOV AL,90H ;8255控制字 A組方式0輸入 MOV DX,PORT_CTL ;B組方式

14、0輸出 C口輸出 OUT DX,AL4.2.2芯片8253初始化: MOV AL,00110110B ;8253控制字 計數器0 讀寫字 MOV DX,43H ;工作方式方式3 OUT DX,AL MOV AX,5000 ;計數器初值 MOV DX,40H OUT DX,AL MOV AL,AH OUT DX,AL4.2.3獲取選手號碼子程序:在硬件電路中,8255的PA端口連接開關按鍵,根據讀取PA的狀態可以判斷出按下的是哪個鍵(按下為高電平),根據進行移位操作,可得出選手的具體號碼。MOV DX,PORT_A ;讀取A口狀態(按鍵狀態)推薦精選 IN AL,DX CMP AL,000000

15、00B ;無按鍵按下 返回LED1 JE LED1 CMP AL,00000001B ;按鍵1 JE LP1 CMP AL,00000010B ;按鍵2 JE LP2 CMP AL,00000100B ;按鍵3 JE LP3 CMP AL,00001000B ;按鍵4 JE LP4 CMP AL,00010000B ;按鍵5 JE LP5 CMP AL,00100000B ;按鍵6 JE LP6 CMP AL,01000000B ;按鍵7 JE LP7 CMP AL,10000000B ;按鍵8 JE LP8 JMP LED1 ;返回4.2.4數碼管顯示子程序:根據獲取得到選手的號碼,跳轉相應

16、程序,將段碼輸出給PB端口。LP1: MOV DX,PORT_B ;數碼管顯示1 MOV AL,11111001B OUT DX,ALLP2: MOV DX,PORT_B ;數碼管顯示2 MOV AL,10100100B OUT DX,ALLP8:LED的管腳對應的字形dp、g、f、e 、d、c、b、a 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 01234567推薦精選 1 0 0 0 0 0 0 084.2.5揚聲器

17、鳴叫時間:PUSH DX PUSH AX MOV AL,00001111B ;8255 PC7口置1,使蜂鳴器工作 MOV DX,PORT_CTL OUT DX,AL POP AX POP DX MOV BL,00000000B MOV CX,0FFFFH ;延時一段時間 LPP2:LOOP LPP2 MOV CX,0FFFH LPP3:LOOP LPP3 PUSH DX PUSH AX MOV AL,00001110B ;8255 PC7口置0,蜂鳴器停止工作 MOV DX,PORT_CTL OUT DX,AL POP AX POP DX推薦精選第五章 結果分析連接硬件電路后,控制程序輸出得

18、到相應結果:推薦精選圖5 硬件顯示結果由上結果可看出,當按鍵3按下的時候,數碼管顯示數字3,揚聲器進行鳴叫,在無按鍵按下時,LED數碼管顯示符號“-”,可得程序設計及硬件連接能達到題目要求。結束語轉眼間一周微機課程設計轉眼就結束了,通過這次課程設計,我學會了許多課本上學不到的東西,同時也加強了我的動手、思考和解決問題的能力,受益匪淺。課程設計過程中,我覺得是對課本知識的鞏固和加強,由于課本上的知識太多,同時平時課間又沒有好好的運用額理解個芯片的功能,而且考試的內容有限,所以在這次課程設計過程中,我們了解很多元件的功能,對其在電路中的使用有更多的認識。從前的學習過程過于浮淺,只是流于表面的理解,

19、而現在要做課程設計,就不得不要求我們對所用到的知識有更深層次的理解。因為課程設計的內容比及書本中的理論知識而言,更接近于現實生活,而理論到實踐的轉化往往是一個艱難的過程,它猶如一只攔路虎,橫更在我們的面前。但是我們毫不畏懼,因為我們相信我們能行。前幾天的主要任務是設計程序。雖然在設計中會遇到這樣那樣的問題,有時認為是正確的,而在仿真中卻出現了這樣那樣的問題。軟件部分做好了,下面就是接線啦,這可是一個比較麻煩的事。在接線的時候要細心和耐心、恒心,這樣才能做好事情。同時接好了一步電路以后,最為重要的是檢查這部分是不是接對了。在做硬件測試的時候,八個數字基本能顯示,但還是有點缺陷,比如顯示數字1的時

20、候,顯示的不對,后來在老師幫助下解決了這個問題。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。此次課程設計,學到了很多課內學不到的東西,比如獨立思考解決問題,出現差錯的隨機應變,和與人合作共同提高,都受益非淺,今后的制作應該更輕松,自己也都能扛的起并高質量的完成項目

21、。推薦精選最后,我要感謝給予我們精心輔導的老師。附錄參考文獻1.朱金鈞 麻新旗微型計算機原理及應用技術M北京:機械工業出版社主程序清單PORT_A EQU 0FF28HPORT_B EQU 0FF29HPORT_C EQU 0FF2AHPORT_CTL EQU 0FF2BHCODE SEGMENTASSUME CS:CODEORG 11B0HSTART: MOV AL,90H ;8255控制字 A組方式0輸入 MOV DX,PORT_CTL ;B組方式0輸出 C口輸出 OUT DX,AL MOV AL,00110110B ;8253控制字 計數器0 讀寫字 MOV DX,43H ;工作方式方式

22、3 OUT DX,AL MOV AX,5000 ;計數器初值 MOV DX,40H OUT DX,AL MOV AL,AH OUT DX,AL LED1:推薦精選 MOV BL,00000001B ;設置全局變量 BL MOV AL,00001110B ;PC7端口置0 MOV DX,PORT_CTL OUT DX,AL MOV DX,PORT_B ;在數碼管顯示符號- MOV AL,10111111B OUT DX,AL MOV DX,PORT_A ;讀取A口狀態(按鍵狀態) IN AL,DX CMP AL,00000000B ;無按鍵按下 返回LED1 JE LED1 CMP AL,000

23、00001B ;按鍵1 JE LP1 CMP AL,00000010B ;按鍵2 JE LP2 CMP AL,00000100B ;按鍵3 JE LP3 CMP AL,00001000B ;按鍵4 JE LP4 CMP AL,00010000B ;按鍵5 JE LP5 CMP AL,00100000B ;按鍵6 JE LP6 CMP AL,01000000B ;按鍵7 JE LP7 CMP AL,10000000B ;按鍵8 JE LP8 JMP LED1 ;返回 LP1: MOV DX,PORT_B ;數碼管顯示1 跳轉LP9 MOV AL,11111001B OUT DX,AL JMP LP9LP2: MOV DX,PORT_B ;數碼管顯示2 跳轉LP9 MOV AL,10100100B OUT DX,AL JMP LP9 LP3: MOV DX,PORT_B ;數碼管顯示3 跳轉LP9 推薦精選 MOV AL,10110000B OUT DX,AL JMP LP9 LP4: MOV DX,PORT_B ;數碼管顯示4 跳轉LP9 MOV AL,10011001B OUT DX,AL JMP LP9 LP5: MOV DX,PORT_B ;數碼管顯示5 跳轉LP9 MOV AL,10010010B OUT DX,AL JMP LP9 LP6: MOV DX,

溫馨提示

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

評論

0/150

提交評論