《2022年微机课程设计 .pdf》由会员分享,可在线阅读,更多相关《2022年微机课程设计 .pdf(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、合肥工业大学宣城校区信息工程系课程设计课程:微机原理与接口技术设计专业班级:学号: xxxxxx 姓名: xx 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - 一、 设计题目及要求模拟计算器运算(加,减,乘,括号)1通过小键盘做加、减、乘、括号运算。七段数码管显示器作输入数据和结果数据的显示。2按键规定:(1)数字用小键盘 09输入。(2)功能按键设定:“ A”“+”“ B”“-”“ D”“*”“ E”“括号”“ F”“=”“
2、 C” 开始运算(包括撤消运算),屏幕显示“ 0” 。3运算要求:(1)输入一原始数据,显示器跟随显示。(2)按“ +” 、“ -” 、“ *” 或“ 括号” 时,显示器内容不变。(3)再输入数据时,显示器跟随显示。(4)按“ =” 时,显示器显示最终结果数据。(5)按“ C” 时,屏幕显示 “ 0” 。(6)需要考虑运算的优先级问题。(7)可以只考虑正整数运算,不考虑负数和实数运算。注:输入数据时, 若超出显示范围则不响应超出部分。在计算结果超出显示范围时,则显示 “ F” 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
3、师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - 二、设计思想调用键盘扫描子程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就停止扫描, 完成输入,并将输入的数字通过调用显示子程序显示到LED 显示器上。利用汇编的程序核对输入键的数值,通过调用加,减,乘,括号,子程序实现一位十进制数以内的及加、减、乘以及括号法运算。 运算完成后将运算的结果储存并显示到LED显示器上。三、功能流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
4、第 3 页,共 15 页 - - - - - - - - - N Y Y N Y N Y N Y N Y N Y N Y 四、结果讨论及心得开始8255初始化扫描有无按键数字键调用括号子程序调用乘法子程序调用减法子程序调用加法子程序保存数据加减乘括号清零等号显示进行加减乘运算并存结果显示清除标志及数据名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 15 页 - - - - - - - - - 分到这个课设题目第一反应是比较简单,但仔细一思考有没多大头绪,又感觉挺复杂,尤其
5、是实现括号运算一点思路都没有。后来经过网上找相关资料和队友讨论渐渐有了思路。经过一个星期的反复实验终于完成了这次课设, 在实验箱上可以完成一位数的加减乘以及括号运算。这次课设中遇到很多问题, 让我看到了自己的很多不足比如汇编能力不足, 对芯片不了解等等。 同时这次课设让我巩固了所学的课本知识,提高了动手实践能力和团队合作能力,自己感觉收获还是很大的。附录:实验代码( 完整的源程序 ).MODEL TINY COM_8255 EQU 0273H ;8255 控制口PA_8255 EQU 0270H PB_8255 EQU 0271H PC_8255 EQU 0272H .STACK 100 .D
6、ATA Z1 DB 8 DUP(?) buffer DB 8 DUP(?) ;8 个字节显示缓冲区SEG_TAB DB 0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F8H DB 080H, 90H, 88H, 83H,0C6H,0A1H, 86H, 8EH,0FFH .CODE START: MOV AX,DA TA MOV DS,AX MOV ES,AX NOP CLD ;0-DF, 地址自动递增MOV DX,COM_8255 MOV AL,89H gg: OUT DX,AL ;PA、PB 输出, PC 输入LEA DI,buffer MOV AL,10H 名师资
7、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - MOV CX,08H REP STOSB CALL DIR MAIN3: LEA DI,buffer MAIN2: CALL keyi CMP AL,0AH ;+ JZ e3 CMP AL,0DH ;* JZ Q3 CMP AL,0CH ;= JZ gg CMP AL,0BH ;- JZ E4 CMP AL,0EH ;() JZ E5 QQ: STOSB QQQ: CALL DIR C
8、MP DI,offset buffer+8 JNZ MAIN2 JMP MAIN3 e3:JMP Q1 E4:JMP Q6 E5:JMP Q7 Q3:CALL KEYI CMP AL,0AH JZ Q1 CMP AL,0DH JZ Q3 CMP AL,0CH JZ gg CMP AL,0BH JZ E7 CMP AL,0EH JZ Q5B STOSB CALL DIR CMP DI,OFFSET BUFFER+8 MOV BL,AL LEA SI,BUFFER LODSB MUL BL LEA DI,BUFFER STOSB 名师资料总结 - - -精品资料欢迎下载 - - - - - - -
9、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - - MOV BL,AL CALL KEYI JMP F E8:JMP gg E7:JMP Q6 Q5B:JMP Q5A Qx:CALL KEYI CMP AL,0AH JZ Q1 CMP AL,0DH JZ Q3 CMP AL,0CH JZ E8 CMP AL,0BH JZ Q6 CMP AL,0EH JZ M3 STOSB CALL DIR CMP DI,OFFSET BUFFER+8 MOV BL,AL LEA SI,BUFFER+4 LODSB
10、 MUL BL LEA DI,BUFFER STOSB MOV BL,AL CALL KEYI JMP F M3:JMP Q5A SA:JMP S9 Q1:CALL keyi STOSB CALL DIR CMP DI,offset buffer+8 S1:CALL KEYI CMP AL,0EH JZ R CMP AL,0DH JZ S LEA DI,BUFFER+3 STOSB LEA SI,BUFFER LODSB 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 1
11、5 页 - - - - - - - - - MOV BL,AL LEA SI,BUFFER+1 LODSB ADD AL,BL LEA DI,BUFFER STOSB MOV BL,AL JMP DY QC:JMP Q3 Q6:JMP Q2 Q7:JMP Q5 S:CALL KEYI MOV BL,AL LEA SI,BUFFER+1 LODSB MUL BL LEA DI,BUFFER+1 STOSB JMP S1 DY:LEA SI,BUFFER+3 LODSB F:CMP AL,0AH JZ Q1 CMP AL,0BH JZ Q2 CMP AL,0DH JZ QC JMP QQ2 M1:
12、JMP e3 M2:JMP Qx Q5A:JMP Q56 M4:JMP gg M5:JMP E4 M6:JMP E5 R: LEA DI,BUFFER+3 STOSB LEA SI,BUFFER LODSB MOV BL,AL LEA SI,BUFFER+1 LODSB ADD AL,BL LEA DI,BUFFER 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 15 页 - - - - - - - - - STOSB MOV BL,AL LEA DI,BUFFER+4
13、 STOSB CALL keyi CMP AL,0AH JZ M1 CMP AL,0DH JZ M2 CMP AL,0CH JZ M4 CMP AL,0BH JZ M5 CMP AL,0EH JZ M6 Q2:CALL keyi STOSB CALL DIR CMP DI,offset buffer+8 S3:CALL keyi CMP AL,0EH JZ R2 CMP AL,0DH JZ S2 LEA DI,BUFFER+3 STOSB LEA SI,BUFFER+1 LODSB MOV BL,AL LEA SI,BUFFER LODSB SUB AL,BL LEA DI,BUFFER ST
14、OSB MOV BL,AL JMP DY S2:CALL KEYI MOV BL,AL LEA SI,BUFFER+1 LODSB MUL BL LEA DI,BUFFER+1 STOSB JMP S3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 15 页 - - - - - - - - - SH:JMP SA SC:JMP S SB:JMP R Q8:JMP Q1 Q9:JMP Q3 QA:JMP gg QB:JMP Q2 SJ:JMP SB R2:LEA DI,B
15、UFFER+3 STOSB LEA SI,BUFFER+1 LODSB MOV BL,AL LEA SI,BUFFER LODSB SUB AL,BL LEA DI,BUFFER STOSB MOV BL,AL JMP DY JMP MAIN3 QQ2: MOV AL,BL MOV AL,10H LEA DI,BUFFER+1 STOSB MOV AL,10H LEA DI,BUFFER+2 STOSB MOV AL,10H LEA DI,BUFFER+3 STOSB MOV AL,10H LEA DI,BUFFER+4 STOSB MOV AL,10H LEA DI,BUFFER+5 STO
16、SB MOV AL,10H LEA DI,BUFFER+6 STOSB MOV AL,10H LEA DI,BUFFER+7 STOSB JMP QQQ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 15 页 - - - - - - - - - SF:JMP SC SW:JMP SH Q5:CALL KEYI STOSB CALL DIR CMP DI,offset buffer+8 CALL keyi CMP AL,0AH JZ Q8 CMP AL,0DH JZ Q
17、9 CMP AL,0CH JZ QA CMP AL,0BH JZ QB CMP AL,0EH JZ Q5 SE:JMP SJ RT:JMP gg V1:JMP Q9 V2:JMP QB V3:JMP QA Q56:CALL KEYI STOSB CALL DIR CMP DI,offset buffer+8 LEA DI,BUFFER+5 STOSB CALL keyi CMP AL,0AH JZ SW CMP AL,0DH JZ V1 CMP AL,0CH JZ V3 CMP AL,0BH JZ V2 CMP AL,0EH JZ Q56 QU:JMP Q6 QP:JMP Q3 S9:CALL
18、 KEYI CALL DIR CMP DI,offset buffer+8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 15 页 - - - - - - - - - STOSB CALL KEYI CMP AL,0EH JZ SQ CMP AL,0DH JZ SF STOSB CALL DIR CMP DI,offset buffer+8 LEA DI,BUFFER+7 STOSB LODSB MOV BL,AL LEA SI,BUFFER+5 LODSB ADD
19、AL,BL LEA DI,BUFFER+4 STOSB MOV BL,AL SQ: LEA SI,BUFFER+6 LODSB MOV BL,AL LEA SI,BUFFER+1 LODSB ADD AL,BL LEA DI,BUFFER+4 STOSB MOV BL,AL JMP DZ PP:JMP F DZ:LEA SI,BUFFER LODSB MOV BL,AL LEA SI,BUFFER+4 LODSB MUL BL LEA DI,BUFFER STOSB CALL KEYI CMP AL,0FH JZ PP 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
20、- - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 15 页 - - - - - - - - - DIR PROC NEAR PUSH AX PUSH BX PUSH DX LEA SI,buffer ;置显示缓冲器初值MOV AH,0FEH LEA BX,SEG_TAB LD0: MOV DX,PA_8255 LODSB XLAT ;取显示数据OUT DX,AL ;段数据 -8255 PA 口INC DX ;扫描模式 -8255 PB 口MOV AL,AH OUT DX,AL CALL DL1 ; 延迟 1ms MOV DX,PB_8255 M
21、OV AL,0FFH OUT DX,AL TEST AH,80H JZ LD1 ROL AH,01H JMP LD0 LD1: POP DX POP BX POP AX RET DIR ENDP DL1 PROC NEAR ;延迟子程序PUSH CX MOV CX,500 LOOP $ POP CX RET DL1 ENDP KEYI PROC NEAR PUSH BX PUSH DX LK: CALL AllKey ;调用判有无闭合键子程序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
22、 第 13 页,共 15 页 - - - - - - - - - JNZ LK1 CALL DIR CALL DIR ; 调用显示子程序,延迟 6ms JMP LK LK1: CALL DIR CALL DIR CALL AllKey ;调用判有无闭合键子程序JNZ LK2 CALL DIR JMP LK LK2: MOV BL,0FEH ;R2 MOV BH,0 ;R4 LK4: MOV DX,PB_8255 MOV AL,BL OUT DX,AL INC DX IN AL,DX TEST AL,01H JNZ LONE XOR AL,AL ;0 行有键闭合JMP LKP LONE: TES
23、T AL,02H JNZ NEXT MOV AL,08H ;1 行有键闭合LKP: ADD BH,AL LK3: CALL DIR ;判断释放否CALL AllKey JNZ LK3 MOV AL,BH ;键号 -AL POP DX POP BX RET NEXT: INC BH ;列计数器加1 TEST BL,80H JZ KND ;判是否已扫到最后一列ROL BL,01H JMP LK4 KND: JMP LK KEYI ENDP AllKey PROC NEAR MOV DX,PB_8255 XOR AL,AL OUT DX,AL ;全0- 扫描口INC DX 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 15 页 - - - - - - - - - IN AL,DX ;读键状态NOT AL AND AL,03H ;取低二位RET AllKey ENDP END START 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 15 页 - - - - - - - - -
限制150内