1、 广东工业大学课程设计任务书 题目名称 计算器(2) 学生学院 自动化学院 专业班级 电气工程及其自动化 姓 名 学 号 一、课程设计的内容 1.在显示器上显示任意6位十六进制数 2.将8个键按实验室要求定义键值,按任意键在显示器上显示对应键值,要求显示值能够左移。 3.实现: A)定义键盘按键,8个为数字键0,1,2,3,4,5,6,7和3个功能键:减号-,乘号×,等号=; B)可进行五位8进制减法运算; C)可进行三位8进制乘法运算。 二、课程设计的要求与
2、数据 (1)巩固和加深对《微机原理》课程内容的认识和理解,提高应用水平。 (2)掌握汇编语言程序的编制方法。 (3)熟悉键盘控制和七段数码管的使用 三、课程设计应完成的工作 完成线路的接线,编写三个程序并输入电脑中,把程序加载到W86学习机当中,运行程序验证结果。 四、课程设计进程安排 序号 设计各阶段内容 地点 起止日期 1 了解键盘的工作原理,编写显示程序 微机实验室 实二206 10月14日 2 定义键盘数字和显示数字 微机实验室 实二206 10月15日 3 设计8进制减法和8进制乘法的计算器 微机实验室 实二206
3、 10月16、17日 五、应收集的资料及主要参考文献 1 许立锌等编.微型计算机原理及应用.北京:机械工业出版社,2003 2.许立梓等编《微型计算机原理及应用》 --习题解答、实验指导及课程设计. 北京:机械工业出版社,2003 发出任务书日期:2013年10月14日 指导教师签名: 计划完成日期: 2013年10月18日 基层教学单位责任人签章: 主管院长签章: 课
4、程设计 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,0E
5、EH,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 O
6、UT 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
7、 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 ;---------------------------
8、 课程设计 2 (1)实现:将8个键按实验室要求定义键值,按任意键在显示器上显示对应键值,要求显示值能够左移。键值分布如下: 3 2 F D
9、 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,
10、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 0
11、606H 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 ;调用显示程序
12、 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
13、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
14、 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
15、 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
16、 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
17、 ;按键 3处理子程序 MOV AL,0F2H MOV [SI+5],AL MOV AL,00H MOV [DI+5],AL CALL DISP ;显示 RET ;返回 ;------------------------------------------
18、 KEY1: CALL LP1 MOV AL,0DAH MOV [SI+5],AL MOV AL,01H MOV [DI+5],AL CALL DISP RET ;-----------------------------
19、 KEY2: CALL LP1 ;按键F处理子程序 MOV AL,8EH MOV [SI+5],AL MOV AL,02H MOV [DI+5],AL CA
20、LL DISP ;显示 RET ;返回 ;-------------------------------------------------------------------- KEY3: CALL LP1 ; 按键3处理子程序
21、 MOV AL,7AH MOV [SI+5],AL MOV AL,03H MOV [DI+5],AL CALL DISP ;显示 RET ;返回 ;--------------------------------------------------------------------
22、 KEY4: CALL LP1 ;按键3处理子程序 MOV AL,3EH MOV [SI+5],AL MOV AL,04H MOV [DI+5],AL CALL DISP ;显示 RET
23、 ;返回 ;-------------------------------------------------------------------- KEY5: CALL LP1 ;按键B处理子程序 MOV AL,9CH MOV [SI+5],AL MOV
24、AL,05H MOV [DI+5],AL CALL DISP ;显示 RET ;返回 ;-------------------------------------------------------------------- KEY6: CALL LP1
25、 ;按键3处理子程序 MOV AL,0F6H MOV [SI+5],AL MOV AL,06H MOV [DI+5],AL CALL DISP ;显示 RET ;返回 ;------------------------------------------------
26、 KEY7: CALL LP1 ;按键3处理子程序 MOV AL,0E0H MOV [SI+5],AL MOV AL,07H MOV [DI+5],AL CALL DISP
27、 ;显示 RET ;返回 ;-------------------------------------------------------------------- LP1: MOV SI,OFFSET VA1 MOV DI,OFFSET VA2 MOV CX,0005H ;数据移位保存子程序(前移5位) LP2: MOV AL,[SI+4]
28、 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
29、 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
30、 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 DI
31、R 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 ;-----------------------------------
32、 TIME: PUSH AX ;延时程序 PUSH CX MOV CX,0005H TIME1: MOV AX,00F0H TIME2: DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RET ;-------------
33、 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
34、STTK JMP STT CODE ENDS END START ;-------------------------------------------------------------------- 课程设计 3 实现: (1)定义键盘按键,8个为数字键0,1,2,,3、4、5、6、7个功能键:减号—,乘号*, 等号=; (2)可进
35、行五位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 V
36、A1 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 MO
37、V 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 CA
38、LL DISP ;调用显示程序 JMP STT ;-------------------------------------------------------------------- KEYABC: CALL TIME ;延时,去抖动 MOV DX,0600H IN AL,DX AND AL,3CH CMP AL,3CH JNZ KEY
39、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
40、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
41、 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
42、 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
43、 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 D
44、X,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
45、 ;按键 0 处理子程序 JZ KEY0_1 CALL CLEAR KEY0_1: CALL LP1 MOV AL,0FCH MOV [SI+5],AL MOV AL,00H MOV [DI+5],AL
46、 CALL DISP ;显示 RET ;返回 ;-------------------------------------------------------------------- KEY1: CMP BH,00H ;按键 1 处理子程序 JZ KEY1_1 CALL CLEAR
47、 KEY1_1: CALL LP1 MOV AL,60H MOV [SI+5],AL MOV AL,01H MOV [DI+5],AL CALL DISP ;显示 RET ;返回 ;----------------------------------------
48、 KEY2: CMP BH,00H ;按键 2 处理子程序 JZ KEY2_1 CALL CLEAR KEY2_1: CALL LP1 MOV AL,0DAH MOV [SI+5]
49、AL MOV AL,02H MOV [DI+5],AL CALL DISP ;显示 RET ;返回 ;-------------------------------------------------------------------- KEY3: CMP BH,00H ;按键 3 处理子程序 J
50、Z KEY3_1 CALL CLEAR KEY3_1: CALL LP1 MOV AL,0F2H MOV [SI+5],AL MOV AL,03H MOV [DI+5],AL CALL DISP






