1、微机原理及应用课程设计课 程 设 计 课程名称 微机原理及应用课程设计 题目名称 计算器(1) 学生学院 专业班级 学 号 学生姓名 指导教师 2020 年 1 月 6 日广东工业大学课程设计任务书题目名称学生学院专业班级姓 名学 号一、课程设计的目的一、巩固和加深对微机原理及应用课程内容的熟悉和明白得,提高应用水平;二、把握汇编语言程序的编程方式;3、熟悉键盘操纵和七段数码管的利用。二、课程设计应完成的工作课程设计完成后,交课程设计报告一份(内容包括:系统设计说明、系统原理图、程序设计流程图、源程序),按规定格式书写。三、课程设计进程安排序号设计各阶段内容地点起点日期1搜集、整理和研究资料图
2、书馆4日2编制调试程序,实现要求的功能实2-2045-6日3书写课程设计报告书宿舍7日四、应搜集的资料及要紧参考文献1 许立倖等编.微型运算机原理及应用.北京:机械工业出版社,20032 许立倖等编.微型运算机原理及应用习题解答、实验指导及课程设计.北京:机械工业出版社,2004发出任务书日期:2020年1月4日 指导教师签名:打算完成日期:2020年1月13日 基层教学单位责任人签章:主管院长签章:- 3 -五、六、编程在四位LED数码管上显示2F9E(应用XLAT).流程图:程序:STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSDATA SEGMENT
3、VAR1 DB 02H,0FH,09H,0EH VAR2 DB 0F7H,0FBH,0FDH,0FEHTABLE DB 0FCH,60H,0DAH,0F2H,066H,0B6H,0BEH,0E4H,0FEH,0F6H,DB 0EEH,3EH,9CH,7AH,9EH,8EHDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AL,82H OUT 63H,ALA1: MOV SI,OFFSET VAR1 MOV DI,OFFSET VAR2 MOV BX,OFFSET TABLE
4、MOV CX,04HA2: MOV AL,SIXLATOUT 62H,ALMOV AL,DIOUT 60H,ALCALL TIMEINC SIINC DILOOP A2JMP A1TIME: PUSH AXPUSH CXMOV CX,0040HA4: MOV AX,0005HA5: DEC AXJNZ A5LOOP A4POP CXPOP AXRETCODE ENDSEND START七、键盘程序97EDBA21要求:实现键盘 左移显示。流程图:程序:STACK SEGMENT DW 64 DUP (?)STACKS ENDSDATA SEGMENTTABLE1 DB 0F6H,0E4H,9E
5、H,7AH,3EHDB 0EEH,0DAH,60HTABLE2 DB 0F7H,0FBH,0FDH,0FEHVAR DB 0FCH,0FCH,0FCH,0FCHDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AL,82H OUT 63H,ALSTT: MOV AL,00H OUT 60H,AL IN AL,61H AND AL,18H CMP AL,18H JNZ KEYY CALL DISP JMP STTKEYY: CALL TIME IN AL,61H AND AL,
6、18H CMP AL,18H JNZ KEY_9 JMP STTKEY_9:MOV AL,0F7H OUT 60H,AL IN AL,61H TEST AL,10H JNZ KEY_B MOV DL,00H CALL KEY_FU JMP STTKKEY_B:TEST AL,08H JNZ KEY_7 MOV DL,04H CALL KEY_FU JMP STTKKEY_7:MOV AL,0FBH OUT 60H,AL IN AL,61H TEST AL,10H JNZ KEY_A MOV DL,01H CALL KEY_FU JMP STTKKEY_A:TEST AL,08H JNZ KEY
7、_E MOV DL,05H CALL KEY_FU JMP STTKKEY_E:MOV AL,0FDH OUT 60H,AL IN AL,61H TEST AL,10H JNZ KEY_2 MOV DL,02H CALL KEY_FU JMP STTKKEY_2:TEST AL,08H JNZ KEY_D MOV DL,06H CALL KEY_FU JMP STTKKEY_D:MOV AL,0FEH OUT 60H,AL IN AL,61H TEST AL,10H JNZ KEY_1 MOV DL,03H CALL KEY_FU JMP STTKKEY_1:TEST AL,08H JNZ K
8、EY_11 MOV DL,07H CALL KEY_FUKEY_11:JMP STTKKEY_FU:CALL LP MOV AL,DL MOV BX,OFFSET TABLE1 XLAT TABLE1 MOV DI,AL CALL DISP RETLP: MOV CX,0003H MOV DI,OFFSET VARLP1:MOV AL,DI+1 MOV DI,AL INC DI LOOP LP1 RETDISP: LEA SI,TABLE2 LEA DI,VAR MOV CX,0004HDIR: MOV AL,SI OUT 60H,AL MOV AL,DI OUT 62H,AL CALL TI
9、ME INC SI INC DI LOOP DIR RETTIME: PUSH AX PUSH CX MOV CX,0040HTIME1:MOV AX,0010HTIME2:DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RETSTTK: CALL DISP MOV AL,00H OUT 60H,AL IN AL,61H AND AL,18H CMP AL,18H JNZ STTK JMP STTCODE ENDS END START八、键盘操纵显示器显示器键盘12清零要求:一、按清零键,显示器四位显示零; 二、按1号键显示器自右向左移动循环显示79B543
10、21 3、按2号键显示器自下向上移动循环显示23CF程序流程图:程序:STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDATA SEGMENTVAR DB 00H,00H,00H,00HVAR2 DB 0F7H,0FBH,0FDH,0FEHTABLE3 DB 10H,10H,10H,08H,18HDB 30H,18H,0AH,1H,32H,18H,0EHDB 5AH,72H,1CH,0EH,0DAH,0F2HDB 9CH,8EHTABLE1 DB 60H,0DAH,0F2H,66HDB 0B6H,3EH,0F6H,0E4HTABLE4 DB 0FCH,0FCH
11、,0FCH,0FCHDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AL,82H OUT 63H,ALSTT:MOV AL,00H OUT 60H,AL IN AL,61H AND AL,18H CMP AL,18H JNZ KEYY JMP STTKEYY:CALL TIME IN AL,61H AND AL,18H CMP AL,18H JNZ KEY_20 JMP STTKEY_20:MOV AL,0F7H OUT 60H,AL IN AL,61H TEST AL,08
12、H JNZ KEY_01 CALL STTK JMP DIS2KEY_01:MOV AL,0FBH OUT 60H,AL IN AL,61H TEST AL,08H JNZ KEY_10 CALL STTK JMP DIS0KEY_10:MOV AL,0FEH OUT 60H,AL IN AL,61H TEST AL,10H JNZ KEY_11 CALL STTK JMP DIS1KEY_11:JMP STTSTTK:MOV AL,00H OUT 60H,AL IN AL,61H AND AL,18H CMP AL,18H JNZ STTK RETDIS2:LEA SI,TABLE3 MOV
13、 BX,05HA3:LEA DI,VARMOV CX,04HA11:MOV AL,SIMOV DI,ALINC SIINC DILOOP A11CALL LDISJMP STT2A4:DEC BXJNZ A3JMP DIS2STT2:PUSH AXMOV AL,00HOUT 62H,ALMOV AL,00HOUT 60H,ALIN AL,61HAND AL,18HCMP AL,18HJNZ STT3POP AXJMP A4STT3:CALL TIMEIN AL,61HAND AL,18HCMP AL,18HJNZ A10POP AXJMP A4A10:MOV AL,0FBHOUT 60H,AL
14、IN AL,61HTEST AL,08HJNZ KEY_1110CALL STTKJMP DIS0KEY_1110:MOV AL,0FEHOUT 60H,ALIN AL,61HTEST AL,10HJNZ A4CALL STTKJMP DIS1DIS0:LEA SI,TABLE4LEA DI,VARMOV CX,04HA5:MOV AL,SIMOV DI,ALINC DIINC SILOOP A5CALL DISJMP STT0STT0:MOV AL,00HOUT 60H,ALIN AL,61HAND AL,18HCMP AL,18HJNZ STT1JMP DIS0STT3:CALL TIME
15、IN AL,61HAND AL,18HCMP AL,18HJNZ A13JMP DIS0A13: MOV AL,0F7HOUT 60H,ALIN AL,61HTEST AL,08HJNZ KEY_111CALL STTKJMP DIS2KEY_111:MOV AL,0FEHOUT 60H,ALIN AL,61H TEST AL,10H JNZ DIS0 CALL STTK JMP DIS1DIS1:LEA SI,TABLE1MOV BX,02HA8:LEA DI,VARMOV CX,04HA7:MOV AL,SIMOV DI,ALINC SICALL LDISJMP STT4A9:CALL L
16、PLOOP A7DEC BXJNZ A8JMP DIS1STT4:MOV AL,00HOUT 60H,ALIN AL,61HAND AL,18HCMP AL,18HJNZ STT5JMP A9STT5:CALL TIMEIN AL,61HAND AL,18HCMP AL,18HJNZ A12JMP A9A12: MOV AL,0F7HOUT 60H,ALIN AL,61HTEST AL,08HJNZ KEY_231CALL STTKJMP DIS2KEY_231:MOV AL,0FBHOUT 60H,ALIN AL,61H TEST AL,08H JNZ A9 CALL STTK JMP DI
17、S0LP:PUSH DIPUSH SIPUSH AXPUSH CXLEA SI,VARMOV AL,SI+2MOV SI+3,ALMOV AL,SI+1MOV SI+2,ALMOV AL,SIMOV SI+1,ALPOP CXPOP AXPOP SIPOP DIRETDIS:PUSH DIPUSH SI PUSH AX PUSH CXLEA SI,VARLEA DI,VAR2MOV CX,0004HDIR:MOV AL,00H OUT 62H,AL MOV AL,DI OUT 60H,ALMOV AL,SIOUT 62H,ALCALL TIMEINC SIINC DILOOP DIRPOP C
18、XPOP AXPOP SIPOP DIRETTIME:PUSH AX PUSH CX MOV CX,0040HTIME1:MOV AX,0010HTIME2:DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RETLDIS:PUSH CXLAP1: MOV CX,0AH CALL DISLOOP LAP1POP CXRETCODE ENDSEND START九、实现计算器: (a)概念键盘按键,5个位数字键:A,E,6,8,4; 3个功能键:加号+,除号,等号=; (b)可进行三位16进制加法运算; (c)可进行两位16进制除法运算。流程图:程序:DATA S
19、EGMENTVAR1 DB 0F7H,0FBH,0FDH,0FEHVAR2 DB 00H,00H,00H,00HVAR3 DB 00H,00H,00H,00HVAR4 DB 00H,00H TABLE1 DB 0FCH,60H,0DAH,0F2H,DB 066H,0B6H,0BEH,0E4H,0FEH,0F6HDB 0EEH,3EH,9CH,7AH,9EH,8EHDATA ENDSSTACK SEGMENTDW 64 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX
20、MOV AL,82H OUT 63H,AL MOV BX,0000HSTT:MOV AL,00H OUT 60H,ALIN AL,61H AND AL,18H CMP AL,18H JNZ KEYABC CALL DISP JMP STTKEYABC:CALL TIME IN AL,61H AND AL,18H CMP AL,18H JNZ KEY_A JMP STT;* KEY_A:MOV AL,0F7H OUT 60H,AL IN AL,61H TEST AL,10H JNZ KEY_4 CALL KEYA JMP STTKKEY_4:TEST AL,08H JNZ KEY_E CALL
21、KEY4 JMP STTK KEY_E:MOV AL,0FBH OUT 60H,AL IN AL,61H TEST AL,10H JNZ KEY_6 CALL KEYE JMP STTKKEY_6:TEST AL,08H JNZ KEY_ADD CALL KEY6 JMP STTKKEY_ADD:MOV AL,0FDH OUT 60H,AL IN AL,61H TEST AL,10H JNZ KEY_8 CALL KEYADD JMP STTKKEY_8:TEST AL,08H JNZ KEY_DIV CALL KEY8 JMP STTK KEY_DIV:MOV AL,0FEH OUT 60H
22、,AL IN AL,61H TEST AL,10H JNZ KEY_EQU MOV DH,00H CALL KEYDIV JMP STTKKEY_EQU:TEST AL,08H JNZ KEY_11 CMP DH,01H JZ CLEARA CALL KEYEQU JMP STTKKEY_11:JMP STT ;*CLEARA:MOV SI,OFFSET VAR2; MOV DI,OFFSET VAR3 MOV CX,04HCLEAR2: MOV AL,00H MOV SI,AL MOV AL,00H MOV DI,ALINC SIINC DI LOOP CLEAR2 MOV BH,00H M
23、OV SI,OFFSET VAR4MOV CX,02HLOOP1:MOV AL,00HMOV SI,ALINC SILOOP LOOP1MOV DH,00HJMP STT;*KEYA:CMP BH,00H;数字键处置程序JZ KEYA_1 CALL CLEARKEYA_1:CALL LP1 MOV AL,0EEH MOV SI,AL MOV AL,0AH MOV DI,AL CALL DISP RETKEY4:CMP BH,00H JZ KEY4_1 CALL CLEARKEY4_1:CALL LP1 MOV AL,66H MOV SI,AL MOV AL,04H MOV DI,AL CALL
24、 DISP RET KEYE:CMP BH,00H JZ KEYE_1 CALL CLEARKEYE_1:CALL LP1 MOV AL,9EH MOV SI,AL MOV AL,0EH MOV DI,AL CALL DISP RET KEY6:CMP BH,00H JZ KEY6_1 CALL CLEARKEY6_1:CALL LP1 MOV AL,0BEH MOV SI,AL MOV AL,06H MOV DI,AL CALL DISP RET KEY8:CMP BH,00H JZ KEY8_1 CALL CLEARKEY8_1:CALL LP1 MOV AL,0FEH MOV SI,AL
25、 MOV AL,08H MOV DI,AL CALL DISP RET;* KEYADD:CMP BH,00H ;符号键处置程序 JNZ KEYADD_1 CALL LP3KEYADD_1:MOV BX,0101H RETKEYDIV:CMP BH,00H JNZ KEYDIV_1 CALL LP3KEYDIV_1:MOV BX,0102H RET;*KEYEQU:MOV BH,01H;等于号处置程序 CMP BL,01H JZ K1 CMP BL,02H JZ K2STTE: RETK1: CALL ADD1 MOV DH,01H JMP STTEK2: CALL DIV1 MOV DH,0
26、1H JMP STTE;*CLEAR:MOV SI,OFFSET VAR2;数据清零子程序 MOV DI,OFFSET VAR3 MOV CX,04HCLEAR1: MOV AL,00H MOV SI,AL MOV AL,00H MOV DI,ALINC SIINC DI LOOP CLEAR1 MOV BH,00H RET;*ADD1:MOV DI,OFFSET VAR4 MOV SI,OFFSET VAR3 MOV AL,SI SHL AL,4 OR AL,SI+1 MOV AH,AL MOV DH,DI INC DI INC SI INC SI MOV AL,SI SHL AL,4 OR AL,SI+1 MOV DL,DI ADD AX,DX DEC DI MOV DI,AH MOV DI+1,AL CALL CHANGE CALL DISP RETDIV1: MOV DI,OFFSET VAR4 MOV SI,OFFSET VAR3MOV CL,SI SHL CL,4 OR CL,SI+1 MOV CH,CL MOV AH,DI INC DI INC SI INC SI MOV CL,SI SHL CL,4 OR
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2