循環燈實驗報告與代碼_第1頁
循環燈實驗報告與代碼_第2頁
循環燈實驗報告與代碼_第3頁
循環燈實驗報告與代碼_第4頁
循環燈實驗報告與代碼_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、合肥工業大學計算機與信息學院課程設計課 程:微機原理與接口技術設計專業班級:計算機科學與技術12-1班學 號:2012211599姓 名: 柏恩慈一、 設計題目及要求:題目: 利用8255A和8253使發光二極管按一定規律輪流點亮要求:發光二極管的點亮方式:將發光二極管分為n組,每組12/n個燈管,每組燈管發光時間沒t。設有8種組合:(1) n=12,t=1s: 每個燈管單獨一組,間隔1秒循環點亮。(2) n=12,t=2s: 每個燈管單獨一組,間隔2秒循環點亮。(3) n=6,t=1s: 每兩個燈管一組,間隔1秒循環點亮。(4) n=6,t=2s: 每兩個燈管一組,間隔2秒循環點亮。(5)

2、n=4,t=1s: 每三個燈管一組,間隔1秒循環點亮。(6) n=4,t=2s: 每三個燈管一組,間隔2秒循環點亮。(7) n=3,t=1s: 每四個燈管一組,間隔1秒循環點亮。(8) n=3,t=2s: 每四個燈管一組,間隔2秒循環點亮。要求: 按鍵盤的“A”, “B”, “C”, “D”分別表示選擇的燈管數目(一個一組,兩個一組,三個一組,四個一組),按鍵盤的“E”, “F”,表示選擇時間(一秒兩秒)。程序啟動時默認按第一種方式進行循環,當按動“AF”時,根據設定情況隨時改變循環方式,當按“0”鍵退出程序,所有燈管熄滅。提示:1:主程序為鍵盤輸入按AD命令分支到各點亮功能程序段,按0退出。

3、2:定時時間1秒2秒可由8253產生定時中斷,通過IPQ2引起中斷請求。8253的定時器工作可參考“定時/計數器:8253方波”。3:在中斷服務程序中,通過8255A的端口B的PB4-PB7,端口C的PC0PC7來設置發光二極管下一組燈點亮,其他燈都暗。次序可從左到右,也可以從右到左。4: 8255A輸出點亮發光二極管可參考 “8255A” 并行口實驗(三)。二、 設計思想:使用8259中斷服務子程序,來去執行中斷,用8253方波計時器來去產生1秒和兩秒的時間間隔。把8253和8259結合正好可以把間隔一秒和兩秒的計時器導入程序之中。利用5255A交通燈的特性,把交通燈按要求輪流點亮。(一)可

4、編程并行接口芯片8255系統中的8255線路8255的數據線片選信號線、地址線、讀寫控制線等分別與系統總線相連,其A、B、C三個端口以排針形式引出供825實驗使用。可編程并行接口Intel8255A,其內部結構如圖所示,由以下4個部分組成:數據總線緩沖器。這是一個三態雙向8位緩沖器,它是8255A與CPU系統數據總線的接口。所有數據的發送與接收,以及CPU發出的命令字和從8255A來的狀態信息都是通過該緩沖器傳送的。讀/寫控制邏輯。讀/寫控制邏輯由讀信號RD,寫信號WR,選片信號CS以及端口選擇信號A0、A1等組成。讀/寫控制邏輯控制了總線的開放、關閉和信息傳送的方向,以便把CPU的控制命令或

5、輸出數據送到相應的端口;或把外設的信息或輸入數據從相應的端口送到CPU。8255A的基本操作及在TP86A、PC/TX和擴展板上的端口地址如下表所示。輸入/輸出端口A、B、C。8255A包括3個8位輸入輸出端口(port)。每個端口都有一個數據輸入寄存器和一個數據輸出寄存器,輸入時端口有三態緩沖器的功能,輸出時端口有數據鎖存器功能。在實際應用中,PC口的8位可分為兩個4位端口(0方式下),也可以分成一個5位端口和一個3位端口(2方式下)來使用。A組和B組控制電路。控制A,B,C三個端口的工作方式,A組控制A口和C-4-口的上半部(PC4-PC7),B組控制B口和C口的下半部(PC0-PC3)的

6、工作方式和輸入輸出。A組和B組的命令寄存器還接收按位控制命令,以實現對PC口的按位置位/復位操作。(二) Intel8253可編程定時/計數器1片8253內部有3個計數器,分別稱為計數器0、1、2,其結構完全,互相之間工作完全獨立。每個計數器有三個引腳和外部聯系CLK:計數脈沖輸入,計數器對該引腳出現的信號進行計數,最高計數速率為2.6MHZ。Gate:門控輸入,用于控制計數器是否對CLK計數。OUT:輸出信號端。每個計數器內部都有1個8位的控制寄存器,三個控制寄存器使用同一端口地址,在編程結構圖中,畫為1個控制寄存器。每個計數器內部還有1個計數初值寄存器(CR)、1個計數執行部件(CE)和1

7、個輸出鎖存器(OL),它們都是16位的。執行部件(CE)是1個16位減法計數器,其起始值等于初值寄存器(CR)的值。CR的值通過程序設置。輸出寄存器(OL)用來鎖存執行部件(CE)的值,以便CPU讀出。原理:通過Intel8253可編程定時/計數器方式3方波發生器與方式0計數結時產生中斷風別產生的方波和中斷來計數,配合可編程并行接口芯片8255來控制流水燈的循環點亮,通過鍵盤掃描來接受外部控制.并通過八段數碼管將A,B,C,D顯示,并且轉入相應的模式執行。實驗連線:8255A:PA0-L15PA1-L14PA2-L13PA3-L11PA4-L10PA5-L9PA6-L7PA7-L6PB0-L5

8、PB1-L3 PB2-L2 PB3-L18259:連接138譯碼輸入端A.B.C,其中A連A2,B連A3,C連A4,138使能控制輸入端G與總線單元上方的GS相連。 將8259CS插孔與譯碼單元的Y0相連,中斷源IR7與單脈沖單元的SP插孔相連。用8芯扁平電纜將8259中斷控制單元的數據總線插座與數據總線單元任一插座相連。8253: 將8253CS與譯碼單元的Y1相連,中斷源IR0與8253的OUT0口相連。用8芯扁平電纜將8251串行通信單元的數據總線插座與數據總線單元任一插座相連。GATE0與+5V相連,CLK0與頻單元T7相連三、 功能流程圖:執行代碼初始化第一種情況 按鍵 A B C

9、D 按鍵 按鍵 按鍵 按鍵23456781 E F E F E F E F 按鍵 0退出程序4、 結果討論:剛開始使用循環計時來實現倒計時,計時會有誤差,改為8253計時器之后,及時秒數比較準確。因為要求可以隨時切換狀態,所以將檢測有無按鍵以及按鍵之后的切換寫成一個子程序,在需要切換的地方進行調用。所有的模塊都寫成子程序,這樣在調用的時候比較方便。使用8259中斷時,要注意關中斷和開中斷的位置,否則會造成中斷脈沖按鍵不靈。程序的關鍵是每個狀態的相互切換。附錄:實驗代碼:(完整的源程序)CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 2000HJM

10、P APA EQU 0FFD8HPB EQU 0FFD9HPC EQU 0FFDAHPCTL EQU 0FFDBHOUTSEG EQU 0FFDCH ;段控制口OUTBIT EQU 0FFDDH ;位控制口/鍵掃口IN_KEY EQU 0FFDEH ;鍵盤讀入口ZXK EQU 0FFDCH ;字型口ZWK EQU 0FFDDH ;字位口Port0 EQU 0FFE4HPort1 EQU 0FFE5HSHOW1 DB 02HFLAG DB ?PCC1 DB 07FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH,0FFH,0FFH,0FFH,0FFHPBC1 DB 0FF

11、H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,07FH,0BFH,0DFH,0EFHPCC2 DB 03FH,0CFH,0F3H,0FCH,0FFH,0FFHPBC2 DB 0FFH,0FFH,0FFH,0FFH,03FH,0CFHPCC3 DB 01FH,0E3H,0FCH,0FFHPBC3 DB 0FFH,0FFH,07FH,08FHPCC4 DB 0FH, 0F0H,0FFHPBC4 DB 0FFH,0FFH,0FH;-8253芯片初始化- A: MOV DX,0FFE3H ;控制口 MOV AL,36H ;計數器0,方式3,二進制計數 OUT DX,AL M

12、OV DX,0FFE0H MOV AL,00 OUT DX,AL MOV AL,4bH OUT DX,AL;-;-8255芯片初始化- MOV DX,PCTL MOV AL,80H ;1000 0000b OUT DX,AL MOV DX,PA ;PA置0 MOV AL,0 OUT DX,AL MOV DX,PB MOV AL,0FFH OUT DX,AL MOV DX,PC MOV AL,0FFH OUT DX,AL;-;-中斷向量地址- CLI MOV AX,OFFSET INT8259 MOV BX,003CH MOV BX,AX MOV BX,003EH MOV AX,0000H MO

13、V BX,AX CALL FOR8259 STI;- JMP _AESTART: CALL GetKey CMP AL,0AH JZ NEXTA CMP AL,0BH JZ NEXTB CMP AL,0CH JZ NEXTC CMP AL,0DH JNZ _D JMP NEXTD_D: CMP AL,00H JNZ START JMP EXITNEXTA: MOV FLAG,0 CALL GetKey CMP AL,0EH JZ _AE CMP AL,0FH JZ _AF JMP NEXTA_AE: MOV SI,0 MOV DI,0 CALL E JMP LAST_AF: MOV SI,0

14、MOV DI,0 CALL F JMP LASTNEXTB: MOV FLAG,1 CALL GetKey CMP AL,0EH JZ _BE CMP AL,0FH JZ _BF JMP NEXTB_BE: MOV SI,0 MOV DI,0 CALL E JMP LAST_BF: MOV SI,0 MOV DI,0 CALL F JMP LASTNEXTC: MOV FLAG,2 CALL GetKey CMP AL,0EH JZ _CE CMP AL,0FH JZ _CF JMP NEXTC_CE: MOV SI,0 MOV DI,0 CALL E JMP LAST_CF: MOV SI,

15、0 MOV DI,0 CALL F JMP LASTNEXTD: MOV FLAG,3 CALL GetKey CMP AL,0EH JZ _DWE CMP AL,0FH JZ _DWF JMP NEXTD_DWE: MOV SI,0 MOV DI,0 CALL E JMP LAST_DWF: MOV SI,0 MOV DI,0 CALL F JMP LASTEXIT: CALL FINISH JMP FINLAST: JMP STARTFIN: HLT;-中斷服務子程序-INT8259: CLI CMP FLAG,0 JZ LA CMP FLAG,1 JZ LB CMP FLAG,2 JZ

16、LC JMP LDLA: MOV AL,PCC1SI MOV DX,PC OUT DX,AL MOV AL,PBC1DI MOV DX,PB OUT DX,AL CMP SI,0BH JZ CONA INC SI INC DI JMP FINICONA: MOV SI,00H MOV DI,00H JMP FINILB: MOV AL,PCC2SI MOV DX,PC OUT DX,AL MOV AL,PBC2DI MOV DX,PB OUT DX,AL CMP SI,05H JZ CONB INC SI INC DI JMP FINICONB: MOV SI,00H MOV DI,00H J

17、MP FINILC: MOV AL,PCC3SI MOV DX,PC OUT DX,AL MOV AL,PBC3DI MOV DX,PB OUT DX,AL CMP SI,03H JZ CONC INC SI INC DI JMP FINICONC: MOV SI,00H MOV DI,00H JMP FINILD: MOV AL,PCC4SI MOV DX,PC OUT DX,AL MOV AL,PBC4DI MOV DX,PB OUT DX,AL CMP SI,02H JZ COND INC SI INC DI JMP FINICOND: MOV SI,00H MOV DI,00H JMP

18、 FINIFINI: MOV DX,PORT0 MOV AL,20H OUT DX,AL STI IRET;-中斷服務子程序-;-8259芯片初始化-FOR8259: MOV AL,13H MOV DX,Port0 OUT DX,AL MOV AL,08H MOV DX,Port1 OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,7FH ;IRQ7 OUT DX,AL RET;-;-按鍵E-E: MOV DX,PA MOV AL,01H OUT DX,AL MOV DX,0FFE0H MOV AL,00 OUT DX,AL MOV AL,4BH OUT DX,AL RET;-;-按鍵F-F: MOV DX,PA MOV AL,01H OUT DX,AL MOV DX,0FFE0H MOV AL,00 OUT DX,AL MOV AL,96H OUT DX,AL RET;-;-按鍵0-FINISH: MOV DX,PCTL MOV AL,80H OUT DX,AL MOV DX,PB MOV AL,0FFH OUT DX,AL MOV DX,PC MO

溫馨提示

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

評論

0/150

提交評論