微型计算机知识做流水灯,微机原理流水灯的设计.doc
微機原理流水燈的設計
微機原理課程設計報告書
課題名稱流水彩燈的設計姓 名學 號 院、系、部物理與電信工程系專 業電子信息工程指導教師
2010年 7 月9日
一、設計任務及要求1、編寫程序,使用8255的A口和B口均為輸出,
實現16位流水燈顯示效果。流水燈顯示實驗目的
2、掌握流水燈編程方法和芯片8255的邏輯功能及使用方法。
3、掌握一定的匯編語言知識,培養自己的動手操作能力。
4、學習程序設計的基本思路和方法
二要求、設計題目
編寫程序,使用8255的A口和B口均為輸出,實現16位流水燈顯示效果。
、功能擴展
(1)、將流水燈設計成可以正著流水也可以選擇倒著流水
(2)、通過開關可以對流水燈閃爍的速度進行控制,高電平時為快,低電平時為慢速。
1、 總體方案設計分析
在本實驗中要求我們用8255的A口和B口做為輸出,接16個發光二極管,從而實現16位流水燈的顯示效果,故基本的接線可以如下面圖A所示。在C口的低兩位接2個開關,實現2個擴展功能的控制。
①基本流水燈顯示電路
A和B兩個端口不能同時賦值,從而在實驗中我們可以用BX進行需要賦值的數據的存儲,因為BX可以分從BH.BL兩部分進行獨立的操作,在本次實驗中我們用BH對A口進行賦值,用BL對B口進行賦值,通過延時一段時間再對BH,BL進行移位和輸出,實現了流水燈的效果。
②正反方向選擇
把PC.0口接在開關上,編寫程序對C端口的數據進行讀取,并進行判斷,使得當PC.0為高電平的時候則燈進行左移,低電平的時候則進行右移。同時B口與A口相反。
③快慢速度控制
把PC.1口接在開關上,編寫程序對C端口的數據進行讀取,并進行判斷,使得當PC.1為高電平的時候則延時的時間縮短,使得流水燈的流水速度加快。低電平的時候則進行延時的時間變長,使得流水燈的流水速度加快。
電路及連線
1、該模塊的WR、RD分別連到PC總線接口模塊的IOWR、IORD。
2、該模塊的數據(AD0~AD7)、地址線(A0~A7)分別連到PC總線接口模塊的數據(D0~D7)、地址線(A0~A7)。
3、8255模塊選通線CS連到PC總線接口模塊的IOY3。
4、8255的PA0~PA7連到發光二極管的L1~L8;8255的PB0~PB7連到發光二極管的L9~L16。5、8255的PC0、PC1分別連接在開關K0、K1
程序清單如下:
MY8255_A EQU 09860H
MY8255_B EQU 09861H
MY8255_C EQU 09862H
MY8255_MODE EQU 09863H
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX,MY8255_MODE
MOV AL,81H ;設置A口、B口方式0輸出,C口低四位方式0輸出
OUT DX,AL
MOV CL,0
XOR BX,BX ;將BX清零
MOV DX,MY8255_B
MOV AL,0FEH
MOV BL,AL
OUT DX,AL
MOV DX,MY8255_A
MOV AL,7FH
MOV BH,AL
OUT DX,AL ;對A口、B口賦值,并將值保存在BH BL中
A1:
ROL BL,1
ROR BH,1 ;對BH BL做出相應的移位
A3:
PUSH BX ;保護現場
CALL BREAK ;調用任意鍵退出程序
CALL DELAY ;調用延時程序
POP BX ;恢復現場
MOV DX,MY8255_A
MOV AL,BH
OUT DX,AL
MOV DX,MY8255_B
MOV AL,BL
OUT DX,AL ;將移位后的結果輸出
MOV DX,MY8255_C
IN AL,DX ;將C都的數據輸入
AND AL,01H ;查看PC0口是否有數據輸入,改變流水燈的方向
JNZ A2
JMP A1
A2:
ROL BH,1
ROR BL,1
JMP A3
DELAY PROC NEAR ;延時程序
MOV CX,0FFFH
K1:
MOV BX,0FFFH
K2:
DEC BX
CMP BX,1000H
JNE
總結
以上是生活随笔為你收集整理的微型计算机知识做流水灯,微机原理流水灯的设计.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GBase 8a 的审计管理
- 下一篇: High Dimensional Con