收藏 分销(赏)

微机课程设计计算器.doc

上传人:xrp****65 文档编号:7426386 上传时间:2025-01-04 格式:DOC 页数:19 大小:295KB 下载积分:10 金币
下载 相关 举报
微机课程设计计算器.doc_第1页
第1页 / 共19页
微机课程设计计算器.doc_第2页
第2页 / 共19页


点击查看更多>>
资源描述
课 程 设 计 课程名称 微机课程设计 题目名称__ 计算器(1) 学生学院____ _ 自动化________ 专业班级____ 自动化(1)班_ __ 学 号 3106000836 学生姓名___ 谢晓新__ _ 指导教师______ 李传芳 _____ 2008 年 12月 25日 广东工业大学课程设计任务书 题目名称 计算器(1) 学生学院 自动化 专业班级 自动化(1)班 姓 名 谢晓新 学 号 3106000836 一、课程设计的目的 1、巩固和加深对《微机原理及应用》课程内容的认识和理解,提高应用水平 2、掌握汇编语言程序的编程方法 3、熟悉键盘控制和七段数码管的使用 二、课程设计的内容 1.把存储器单元中的0AH,02H,0FH,09H从四位七段LED数码管同时显示出来,要求做成循环程序,并使用XLAT来译码。 2.编写程序,实现以下键盘功能,按任意键在显示器上显示对应键值,要求显示值能够实现左移功能。 5 A 7 F B 3 C 0 3.实现: a)定义键盘按键,5个为数字键3、4、5、6、7,7个功能键:减号—,除号÷,等号=; b)可进行三位8进制减法运算; c)可进行两位10进制除法运算。 三、课程设计应完成的工作 1.搜集、整理和研究资料,可参考教材后的实例。 2.按电路框图连接电路,编写程序完成各个程序设计要求,并完成调试。 3.完成课程设计的报告书一份。 四、课程设计进程安排 序号 设计各阶段内容 地点 起止日期 1 领取任务书 实2-206 12.22 2 收集,整理资料 图书馆、宿舍 12.22 3 上机编写调试程序 实2-206 12.23~12.24 4 撰写课程设计报告 宿舍 12.25 五、应收集的资料及主要参考文献 1.微型计算机原理及应用.许立梓等编.北京:机械工业出版社,2003 2.微型计算机原理及应用—习题解答、试验指导及课程设计. 许立梓等编.北京:机械 工业出版社,2008 发出任务书日期:2008年 12月 22日 指导教师签名: 计划完成日期: 2008 年 12月 25日 基层教学单位责任人签章: 主管院长签章: 目录 一、源程序…………………………………………………………………………5 1.程序一………………………………………………………………………5 1.1 题目……………………………………………………………………5 1.2 源程序…………………………………………………………………5 2.程序二………………………………………………………………………6 2.1题目……………………………………………………………………6 2.2 源程序…………………………………………………………………6 3.程序三………………………………………………………………………10 3.1题目……………………………………………………………………10 3.2 源程序…………………………………………………………………10 二、心得与体会……………………………………………………………………19 三、参考文献………………………………………………………………………19 1.程序一 1.1题目:把存储器单元中的0AH,02H,0FH,09H从四位七段LED数码管同时显示出来,要求做成循环程序,并使用XLAT来译码。 1.2源程序: STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS DATA SEGMENT TAB1 DB 0AH,02H,0FH,09H ;设置四位查询位 TAB2 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;设置0~F的十六位数码管段码 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,80H ;8255A初始化 OUT 63H,AL L1: MOV DL,0FEH MOV SI,OFFSET TAB1 MOV CX,0004H L2: MOV AL,DL ;位码送给AL OUT 60H,AL MOV AL,[SI] MOV BX,OFFSET TAB2 ;查表取出数码管的段码 XLAT TAB2 OUT 61H,AL ;查表的段码送A口显示 INC SI ROL DL,01H ;下个要显示的数码管位码 CALL TIME LOOP L2 JMP L1 TIME: PUSH AX ;延时程序 PUSH CX MOV CX,0002H TIME1: MOV AX,0300H TIME2: DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RET CODE ENDS END START 2.程序一 2.1题目:2.编写程序,实现以下键盘功能,按任意键在显示器上显示对应键值,要求显示值能够实现左移功能。 5 A 7 F B 3 C 0 2.2源程序: STACK SEGMENT STACK DW 64 DUP (?) STACK ENDS DATA SEGMENT VAR1 DB 07H,0BH,0DH,0EH VAR2 DB 3FH,3FH,3FH,3FH,3FH VAR3 DB 00H,00H,00H,00H,00H TABL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,88H OUT 63H,AL ;8255A初始化 STT: MOV AL,00H ;键盘测试 OUT 60H,AL NEXT: IN AL,62H AND AL,60H CMP AL,60H JNZ KEYABC CALL DISP ;调用显示程序 JMP STT ;------------------------------------------------------------------------------ KEYABC: CALL TIME ;延时,去抖动 IN AL,62H AND AL,60H CMP AL,60H JNZ KEY JMP STT KEY: MOV AL,0FEH ;键盘扫描识别 OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_B CALL KEY5 JMP STTK KEY_B: TEST AL,20H JNZ KEY_A CALL KEYB JMP STTK KEY_A: MOV AL,0FDH OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_3 CALL KEYA JMP STTK KEY_3: TEST AL,20H JNZ KEY_7 CALL KEY3 JMP STTK KEY_7: MOV AL,0FBH OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_C CALL KEY7 JMP STTK KEY_C: TEST AL,20H JNZ KEY_F CALL KEYC JMP STTK KEY_F: MOV AL,0F7H OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_0 CALL KEYF JMP STTK KEY_0: TEST AL,20H JNZ KEY_01 CALL KEY0 KEY_01: JMP STTK ;------------------------------------------------------------------------------ ;按键5处理子程序 KEY5: CALL LP1 ;低4位字节前移 MOV AL,05H MOV [DI+4],AL LEA BX,TABL ;查表取出要显示数字的数码管段码 XLAT TABL MOV [SI+4],AL CALL DISP ;显示 RET ;返回 ;------------------------------------------------------------------------------ KEYB: CALL LP1 ;按键B处理子程序 MOV AL,0BH MOV [DI+4],AL LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP RET ;------------------------------------------------------------------------------ KEYA: CALL LP1 ;按键A处理子程序 MOV AL,0AH MOV [DI+4],AL LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP RET ;------------------------------------------------------------------------------ KEY3: CALL LP1 ;按键3处理子程序 MOV AL,03H MOV [DI+4],AL LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP RET ;------------------------------------------------------------------------------ KEY7: CALL LP1 ;按键7处理子程序 MOV AL,07H MOV [DI+4],AL LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP RET ;------------------------------------------------------------------------------ KEYC: CALL LP1 ;按键C处理子程序 MOV AL,0CH MOV [DI+4],AL LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP RET ;------------------------------------------------------------------------------ KEYF: CALL LP1 ;按键F处理子程序 MOV AL,0FH MOV [DI+4],AL LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP RET ;------------------------------------------------------------------------------ KEY0: CALL LP1 ;按键0处理子程序 MOV AL,00H MOV [DI+4],AL LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP RET ;------------------------------------------------------------------------------ LP1: MOV CX,0004H ;数据移位保存子程序(前移四位) MOV SI,OFFSET VAR2 MOV DI,OFFSET VAR3 LP2: MOV AL,[SI+3] MOV [SI+4],AL MOV AL,[DI+3] MOV [DI+4],AL DEC SI DEC DI LOOP LP2 RET ;------------------------------------------------------------------------------ DISP: MOV SI,OFFSET VAR1 ;显示子程序 MOV DI,OFFSET VAR2 MOV CX,0004H DIR: MOV AL,[SI] OUT 60H,AL MOV AL,[DI] OUT 61H,AL CALL TIME INC SI INC DI LOOP DIR RET ;------------------------------------------------------------------------------ TIME: PUSH AX ;延时程序 PUSH CX MOV CX,0002H TIME1: MOV AX,0300H TIME2: DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RET ;------------------------------------------------------------------------------ STTK: CALL DISP ;放键测试程序 MOV AL,00H OUT 60H,AL IN AL,62H AND AL,60H CMP AL,60H JNZ STTK JMP STT CODE ENDS END START 3.程序一 3.1题目:实现: a)定义键盘按键,5个为数字键3、4、5、6、7,7个功能键:减号—,除号÷,等号=; b)可进行三位8进制减法运算; c)可进行两位10进制除法运算。 3.2源程序: STACK SEGMENT STACK DW 64 DUP (?) STACK ENDS DATA SEGMENT VAR1 DB 07H,0BH,0DH,0EH ;数码管位码 VAR2 DB 3FH,3FH,3FH,3FH,3FH VAR3 DB 00H,00H,00H,00H,00H ;当前值 VAR4 DB 00H,00H,00H,00H,00H ;保存值 TABL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,88H OUT 63H,AL ;8255A初始化 MOV BX,0000H ;BX清零 STT: MOV AL,00H ;键盘测试 OUT 60H,AL NEXT: IN AL,62H AND AL,60H CMP AL,60H JNZ KEYABC CALL DISP ;调用显示程序 JMP STT ;------------------------------------------------------------------------------ KEYABC: CALL TIME ;延时,去抖动 IN AL,62H AND AL,60H CMP AL,60H JNZ KEY JMP STT KEY: MOV AL,0FEH ;键盘扫描识别 OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_4 CALL KEYDEN JMP STTK KEY_4: TEST AL,20H JNZ KEY_JIAN CALL KEY4 JMP STTK KEY_JIAN:MOV AL,0FDH OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_5 CALL KEYJIAN JMP STTK KEY_5: TEST AL,20H JNZ KEY_CHU CALL KEY5 JMP STTK KEY_CHU: MOV AL,0FBH OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_6 CALL KEYCHU JMP STTK KEY_6: TEST AL,20H JNZ KEY_3 CALL KEY6 JMP STTK KEY_3: MOV AL,0F7H OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_7 CALL KEY3 JMP STTK KEY_7: TEST AL,20H JNZ KEY_71 CALL KEY7 KEY_71: JMP STTK ;------------------------------------------------------------------------------ KEY3: CMP BH,00H ;按键3处理子程序 JZ KEY3_1 ;未按过符号键,不清零 CALL CLEAR ;已按过符号键,清零 KEY3_1: CALL LP1 ;低4位字节前移 MOV AL,03H MOV [DI+4],AL PUSH BX ;保护BX LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP ;显示 POP BX RET ;返回 ;------------------------------------------------------------------------------ KEY4: CMP BH,00H ;按键4处理子程序 JZ KEY4_1 CALL CLEAR KEY4_1: CALL LP1 MOV AL,04H MOV [DI+4],AL PUSH BX LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP POP BX RET ;------------------------------------------------------------------------------ KEY5: CMP BH,00H ;按键5处理子程序 JZ KEY5_1 CALL CLEAR KEY5_1: CALL LP1 MOV AL,05H MOV [DI+4],AL PUSH BX LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP POP BX RET ;------------------------------------------------------------------------------ KEY6: CMP BH,00H ;按键6处理子程序 JZ KEY6_1 CALL CLEAR KEY6_1: CALL LP1 MOV AL,06H MOV [DI+4],AL PUSH BX LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP POP BX RET ;------------------------------------------------------------------------------ KEY7: CMP BH,00H ;按键7处理子程序 JZ KEY7_1 CALL CLEAR KEY7_1: CALL LP1 MOV AL,07H MOV [DI+4],AL PUSH BX LEA BX,TABL XLAT TABL MOV [SI+4],AL CALL DISP POP BX RET ;......................................................................... KEYJIAN: CMP BH,00H ;按键-处理子程序 JNZ KEYJIAN_1 CALL LP3 KEYJIAN_1: CMP BX,0101H RET ;------------------------------------------------------------------------------ KEYCHU: CMP BH,00H ;按键/处理子程序 JNZ KEYCHU_1 CALL LP3 KEYCHU_1: CMP BX,0102H RET ;------------------------------------------------------------------------------ KEYDEN: CMP BL,00H ;按键=处理子程序 JNZ KEYDEN_1 CALL CLEAR CALL DISP KEYDEN_1: MOV BH,01H CMP BL,01H ;是-号? JZ K1 ;进行减法运算 CMP BL,02H ;是/号? JZ K2 ;进行除法运算 STTE: RET K1: CALL JIAN JMP STTE K2: CALL CHU JMP STTE ;------------------------------------------------------------------------------ JIAN: MOV SI,OFFSET VAR3 ;三位8进制减法子程序 MOV DI,OFFSET VAR4 CLC MOV CX,0004H JIAN_1: MOV AL,[DI] SBB AL,[SI] CMP AL,08H JB B1 AND AL,07H STC JMP B2 B1: CLC B2: MOV [DI],AL INC SI INC DI LOOP JIAN_1 CALL CHANGE CALL DISP MOV BL,00H ;运算完毕符号位清零 RET ;------------------------------------------------------------------------------ CHU: MOV SI,OFFSET VAR3 ;两位10进制除法子程序 MOV DI,OFFSET VAR4 CLC MOV DL,[DI] ;调整VAR4,10进制转换成16进制,保存在DX MOV DH,00H MOV BX,10
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服