- 0
- 0
- 约1.33万字
- 约 19页
- 2017-09-28 发布于重庆
- 举报
微机课程设计报告(上机部份)
课 程 设 计 报 告
课程名称 微机原理及应用
题目名称 计算器(1)
学生学院 自动化学院
专业班级 07级电气 ( 1 )班
学 号 3107001010
学生姓名 何耀洪
指导教师 李传芳
2010年03月13日
设计1
编程在四位七段LED同时显示2F8C。
要求:程序以循环格式书写,并使用XLAT指令进行译码。
程序:
DATAS SEGMENT
VAR1 DB 0FEH,0FDH,0FBH,0F7H ;此处输入数据段代码
VAR2 DB 02H,0FH,08H,0CH
TABLE1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATAS ENDS
STACKS SEGMENT
DW 64 DUP(?) ;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AL,88H ;此处输入代码段代码
OUT 63H,AL
A2: MOV BX,OFFSET TABLE1
MOV SI,OFFSET VAR1
MOV DI,OFFSET VAR2
MOV CX,0004H
A1: MOV AL,[SI]
OUT 60H,AL
MOV AL,[DI]
XLAT
OUT 61H,AL
CALL TIME
INC DI
INC SI
LOOP A1
JMP A2
TIME: PUSH AX
PUSH CX
MOV CX,0010H
TIME1: MOV AX,0030H
TIME2: DCE AX
JNZ TIME2
LOOP TIME1
POP CX
POP AX
RET
CODES ENDS
END START
设计二
编程实现以下键盘功能:
F 9 8 C 6 B A 7 并能左移显示。
程序:
DATAS SEGMENT
VAR1 DB 4 DUP(?) ;此处输入数据段代码
VAR2 DB 0FEH,0FDH,0FBH,0F7H
TABLE1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATAS ENDS
STACKS SEGMENT
DB 64 DUP(?);此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AL,88H ;8255 初始化
OUT 63H,AL
STT: MOV AL,00H
OUT 60H,AL
IN AL,62H
AND AL,30H
CMP AL,30H
JNZ KEYABC
CALL DISP
JMP STT
;----------------------------------
KEYABC: CALL TIME ;延时,去抖动
IN AL,62H
AND AL,30H
CMP AL,30H
JNZ KEY_F
JMP STT
;----------------------------------
KEY_F: MOV AL,0FEH ;键盘扫描识别
OUT 60H,AL ;PA0接口扫描
IN AL,62H
TEST AL,20H ;测试PC5
JNZ KEY_6
MOV DL,0FH
CALL FIND
JMP STTK
KEY_6: TEST AL,10H ;测试PC4
JNZ KEY_9
MOV DL,06H
CALL
原创力文档

文档评论(0)