资源描述
广东工业大学课程设计任务书
题目名称
计算器(2)
学生学院
自动化学院
专业班级
电气工程及其自动化
姓 名
学 号
一、课程设计的内容
1.在显示器上显示任意6位十六进制数
2.将8个键按实验室要求定义键值,按任意键在显示器上显示对应键值,要求显示值能够左移。
3.实现:
A)定义键盘按键,8个为数字键0,1,2,3,4,5,6,7和3个功能键:减号-,乘号×,等号=;
B)可进行五位8进制减法运算;
C)可进行三位8进制乘法运算。
二、课程设计的要求与数据
(1)巩固和加深对《微机原理》课程内容的认识和理解,提高应用水平。
(2)掌握汇编语言程序的编制方法。
(3)熟悉键盘控制和七段数码管的使用
三、课程设计应完成的工作
完成线路的接线,编写三个程序并输入电脑中,把程序加载到W86学习机当中,运行程序验证结果。
四、课程设计进程安排
序号
设计各阶段内容
地点
起止日期
1
了解键盘的工作原理,编写显示程序
微机实验室
实二206
10月14日
2
定义键盘数字和显示数字
微机实验室
实二206
10月15日
3
设计8进制减法和8进制乘法的计算器
微机实验室
实二206
10月16、17日
五、应收集的资料及主要参考文献
1 许立锌等编.微型计算机原理及应用.北京:机械工业出版社,2003
2.许立梓等编《微型计算机原理及应用》
--习题解答、实验指导及课程设计.
北京:机械工业出版社,2003
发出任务书日期:2013年10月14日 指导教师签名:
计划完成日期: 2013年10月18日 基层教学单位责任人签章:
主管院长签章:
课程设计 1
(1)实现:在显示器上显示6位十六进制数 E F D 1 2 3。
(2)源程序:
;--------------------------------------------------------------------
STACK SEGMENT STACK
DW 32 DUP(?)
STACK ENDS
DATA SEGMENT
TABL0 DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,
DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH
DATA1 DB 0EH,0FH,0DH,01H,02H,03H
DATA2 DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,0606H
MOV AL,90H
OUT DX,AL
A1: LEA SI,DATA1
LEA DI,DATA2
MOV CX,0006H
A2: MOV DX,0602H
MOV AL,[DI]
OUT DX,AL
MOV DX,0604H
MOV BX,OFFSET TABL0
MOV AL,[SI]
XLAT TABL0
OUT DX,AL
CALL DALLY
INC SI
INC DI
LOOP L2
JMP A1
DALLY: PUSH CX
MOV CX,0002H
A3: MOV AX,00FFH
A4: DEC AX
JNZ A4
LOOP A3
POP CX
RET
CODE ENDS
END START
;--------------------------------------------------------------------
课程设计 2
(1)实现:将8个键按实验室要求定义键值,按任意键在显示器上显示对应键值,要求显示值能够左移。键值分布如下:
3 2 F D
B C 9 7
(2)源程序:
;--------------------------------------------------------------------
STACK SEGMENT STACK
DW 64 DUP (?)
STACK ENDS
DATA SEGMENT
TABL DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,
DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH
VA1 DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEH
VA2 DB 0FCH,0FCH,0FCH,0FCH,0FCH,0FCH
VA3 DB 00H,00H,00H,00H,00H00H,00H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,90H
MOV DX 0606H
OUT DX,AL
MOV BX,0000H
STT: MOV AL,00H
MOV DX,0602H
OUT DX,AL
MOV DX,0600H
IN AL,DX
AND AL,3CH
CMP AL,3CH
JNZ KEYABC
CALL DISP ;调用显示程序
JMP STT
;--------------------------------------------------------------------
KEYABC: CALL TIME ;延时,去抖动
MOV DX,0600H
IN AL,DX
AND AL,3CH
CMP AL,3CH
JNZ KEY
JMP STT
KEY: MOV DX,0602H
MOV AL,0FEH ;键盘扫描识别
OUT DX,AL
MOV DX,0600H
IN AL,DX
TEST AL,04H
JNZ KEY_7
CALL KEY0
JMP STTK
KEY_7: TEST AL,08H
JNZ KEY_1
CALL KEY4
JMP STTK
KEY_1: MOV DX,0602H
MOV AL,0FDH
OUT DX,AL
IN AL,DX
TEST AL,04H
JNZ KEY_6
CALL KEY1
JMP STTK
KEY_6: TEST AL,08H
NZ KEY_2
CALL KEY5
JMP STTK
KEY_2: MOV DX,0602H
MOV AL,0FBH
OUT DX,AL
MOV DX,0600H
IN AL,DX
TEST AL,04H
JNZ KEY_5
CALL KEY2
JMP STTK
KEY_5: TEST AL,08H
JNZ KEY_3
CALL KEY6
JMP STTK
KEY_3: MOV DX,0602H
MOV AL,0F7H
OUT DX,AL
MOV DX,0600H
IN AL,DX
TEST AL,04H
JNZ KEY_4
CALL KEY3
JMP STTK
KEY_4: TEST AL,08H
JNZ KEY_C1
CALL KEY7
KEY_C1: JMP STTK
;--------------------------------------------------------------------
KEY0: CALL LP1 ;按键 3处理子程序
MOV AL,0F2H
MOV [SI+5],AL
MOV AL,00H
MOV [DI+5],AL
CALL DISP ;显示
RET ;返回
;--------------------------------------------------------------------
KEY1: CALL LP1
MOV AL,0DAH
MOV [SI+5],AL
MOV AL,01H
MOV [DI+5],AL
CALL DISP
RET
;--------------------------------------------------------------------
KEY2: CALL LP1 ;按键F处理子程序
MOV AL,8EH
MOV [SI+5],AL
MOV AL,02H
MOV [DI+5],AL
CALL DISP ;显示
RET ;返回
;--------------------------------------------------------------------
KEY3: CALL LP1 ; 按键3处理子程序
MOV AL,7AH
MOV [SI+5],AL
MOV AL,03H
MOV [DI+5],AL
CALL DISP ;显示
RET ;返回
;--------------------------------------------------------------------
KEY4: CALL LP1 ;按键3处理子程序
MOV AL,3EH
MOV [SI+5],AL
MOV AL,04H
MOV [DI+5],AL
CALL DISP ;显示
RET ;返回
;--------------------------------------------------------------------
KEY5: CALL LP1 ;按键B处理子程序
MOV AL,9CH
MOV [SI+5],AL
MOV AL,05H
MOV [DI+5],AL
CALL DISP ;显示
RET ;返回
;--------------------------------------------------------------------
KEY6: CALL LP1 ;按键3处理子程序
MOV AL,0F6H
MOV [SI+5],AL
MOV AL,06H
MOV [DI+5],AL
CALL DISP ;显示
RET ;返回
;--------------------------------------------------------------------
KEY7: CALL LP1 ;按键3处理子程序
MOV AL,0E0H
MOV [SI+5],AL
MOV AL,07H
MOV [DI+5],AL
CALL DISP ;显示
RET ;返回
;--------------------------------------------------------------------
LP1: MOV SI,OFFSET VA1
MOV DI,OFFSET VA2
MOV CX,0005H ;数据移位保存子程序(前移5位)
LP2: MOV AL,[SI+4]
MOV [SI+5],AL
MOV AL,[DI+4]
MOV [DI+5],AL
DEC SI
DEC DI
LOOP LP2
RET
;--------------------------------------------------------------------
DISP: MOV SI,OFFSET VA1 ;显示子程序
MOV DI,OFFSET VA2
MOV DL,[DI+5]
CMP DL,0FCH
JNZ DIR5
MOV DL,[DI+4]
CMP DL,0FCH
JNZ DIR4
MOV DL,[DI+3]
CMP DL,0FCH
JNZ DIR3
MOV DL,[DI+2]
CMP DL,0FCH
JNZ DIR2
MOV DL,[DI+1]
CMP DL,0FCH
JNZ DIR1
JMP DIR0
DIR5: MOV CX,0006H
JMP DIR
DIR4: MOV CX,0005H
JMP DIR
DIR3: MOV CX,0004H
JMP DIR
DIR2: MOV CX,0003H
JMP DIR
DIR1: MOV CX,0002H
JMP DIR
DIR0: MOV CX,0001H
DIR: MOV DX,0602H
MOV AL,[SI]
OUT DX,AL
MOV 0604H
MOV AL,[DI]
OUT DX,AL
CALL TIME
INC SI
INC DI
LOOP DIR
RET
;--------------------------------------------------------------------
TIME: PUSH AX ;延时程序
PUSH CX
MOV CX,0005H
TIME1: MOV AX,00F0H
TIME2: DEC AX
JNZ TIME2
LOOP TIME1
POP CX
POP AX
RET
;--------------------------------------------------------------------
STTK: CALL DISP ;放键测试程序
MOV AL,00H
MOV DX,0602H
OUT DX,AL
MOV DX,0600H
IN AL,DX
AND AL,3CH
CMP AL,3CH
JNZ STTK
JMP STT
CODE ENDS
END START
;--------------------------------------------------------------------
课程设计 3
实现:
(1)定义键盘按键,8个为数字键0,1,2,,3、4、5、6、7个功能键:减号—,乘号*, 等号=;
(2)可进行五位8进制减法运算;
(3)可进行三位8进制乘法运算。
源程序:
;--------------------------------------------------------------------
STACK SEGMENT STACK
DW 64 DUP (?)
STACK ENDS
DATA SEGMENT
TABL DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H
DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH
VA1 DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEH
VA2 DB 0FCH,0FCH,0FCH,0FCH,0FCH,0FCH
VA3 DB 00H,00H,00H,00H,00H00H,00H
VA4 DB 00H,00H,00H,00H,00H00H,00H
VA5 DB 1,8,64,512,4096
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,90H
MOV DX 0606H
OUT DX,AL
MOV BX,0000H
STT: MOV AL,00H ;键盘测试
MOV DX,0602H
OUT DX,AL
MOV DX,0600H
IN AL,DX
AND AL,3CH
CMP AL,3CH
JNZ KEYABC
CALL DISP ;调用显示程序
JMP STT
;--------------------------------------------------------------------
KEYABC: CALL TIME ;延时,去抖动
MOV DX,0600H
IN AL,DX
AND AL,3CH
CMP AL,3CH
JNZ KEY_0
JMP STT
;--------------------------------------------------------------------
KEY_0: MOV DX,0602H
MOV AL,0FEH ;键盘扫描识别
OUT DX,AL
MOV DX,0600H
IN AL,DX
TEST AL,04H
JNZ KEY_4
CALL KEY0
JMP STTK
KEY_4: TEST AL,08H
JNZ KEY_JIAN
CALL KEY4
JMP STTK
KEY_JIAN: TEST AL,10H
JNZ KEY_1
CALL KEYJIAN
JMP STTK
;--------------------------------------------------------------------
KEY_1: MOV DX,0602H
MOV AL,0FDH
OUT DX,AL
MOV DX,0600H
IN AL,DX
TEST AL,04H
JNZ KEY_5
CALL KEY1
JMP STTK
KEY_5: TEST AL,08H
JNZ KEY_CHEN
CALL KEY5
JMP STTK
KEY_CHEN:TEST AL,10H
JNZ KEY_2
CALL KEY5
JMP STTK
;--------------------------------------------------------------------
KEY_2: MOV DX,0602H
MOV AL,0FBH
OUT DX,AL
MOV DX,0600H
IN AL,DX
TEST AL,04H
JNZ KEY_6
CALL KEY2
JMP STTK
KEY_6: TEST AL,08H
JNZ KEY_DEN
CALL KEY6
JMP STTK
KEY_DEN: TEST AL,10H
JNZ KEY_3
CALL KEYDEN
JMP STTK
;--------------------------------------------------------------------
KEY_3: MOV DX,0602H
MOV AL,0F7H
OUT DX,AL
MOV DX,0600H
IN AL,DX
TEST AL,04H
JNZ KEY_7
CALL KEY3
JMP STTK
KEY_7: TEST AL,10H
JNZ KEY_C1
CALL KEY7
KEY_C1: JMP STTK
;--------------------------------------------------------------------
KEY0: CMP BH,00H ;按键 0 处理子程序
JZ KEY0_1
CALL CLEAR KEY0_1: CALL LP1
MOV AL,0FCH
MOV [SI+5],AL
MOV AL,00H
MOV [DI+5],AL
CALL DISP ;显示
RET ;返回
;--------------------------------------------------------------------
KEY1: CMP BH,00H ;按键 1 处理子程序
JZ KEY1_1
CALL CLEAR
KEY1_1: CALL LP1
MOV AL,60H
MOV [SI+5],AL
MOV AL,01H
MOV [DI+5],AL
CALL DISP ;显示
RET ;返回
;--------------------------------------------------------------------
KEY2: CMP BH,00H ;按键 2 处理子程序
JZ KEY2_1
CALL CLEAR
KEY2_1: CALL LP1
MOV AL,0DAH
MOV [SI+5],AL
MOV AL,02H
MOV [DI+5],AL
CALL DISP ;显示
RET ;返回
;--------------------------------------------------------------------
KEY3: CMP BH,00H ;按键 3 处理子程序
JZ KEY3_1
CALL CLEAR
KEY3_1: CALL LP1
MOV AL,0F2H
MOV [SI+5],AL
MOV AL,03H
MOV [DI+5],AL
CALL DISP
展开阅读全文