1、 1 微机原理课程设计微机原理课程设计 学生姓名: 学 号: 专业班级: 电子信息工程 课程名称: 微型计算机原理及应用 学年学期: 2 0 1 2 2 0 13 学年第 1 学期 指导教师: 2 0 1 2 年 1 2 月 2 目录目录 一、一、 课设题目及目的课设题目及目的.4 二、二、 设计任务设计任务.4 三、三、 总框图及设计流程总框图及设计流程.4 四、四、 源程序清单源程序清单.6 五、五、 调试结果及显示调试结果及显示.19 六、六、 课程设计总结及体会课程设计总结及体会.21 3 一、课设题目及目的一、课设题目及目的 实习题目:数字时钟程序 实习目的:通过实习,使我们进一步弄
2、懂所学到的课本知识,巩 固和深化对 8086 系统的指令系统、中断系统、键盘/显示系统、程序 设计、应用开发等基本理论知识的理解,提高汇编语言应用于技术的 实践操作技能,掌握汇编语言应用系统设计、研制的方法,培养利用 科技革新、开发和创新的基本能力, 为毕业后从事与其相关的工作打 下一定的基础。 二、课设任务二、课设任务 1、在屏幕上显示一数字时钟,显示格式为 HH:MM:SS 2、能够实现时间的校准,按键 H 提示修改小时,按键 M 提示修改分钟,按 键 S 提示修改秒 3、按键 Q 退出返回到 DOS 三、总框图及流程三、总框图及流程 开始 调用清屏子程序 显示系统时间 4 四源程序清单四
3、源程序清单 DATA SEGMENT;数据段开始 MESS1 DB *电子时钟* ,0AH,0DH DB *按 h修改小时,m修改分,s 修改秒* ,0AH,0DH DB *按 q 退出* ,0AH,0DH,$ MESS2 DB 修改小时,$ MESS3 DB 修改分钟,$ MESS4 DB 修改秒钟,$ 键盘输入 判断条件 调用设置闹钟子程序 Y s h m 修改小时 修改分 修改秒 5 T_BUFF DB 20 DB ? DB 20 DUP(?) HOR DB ? MIN DB ? SEC DB ? flag db ? DATA ENDS STACK SEGMENT DB 100 DUP(
4、?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA START: MOV AX,DATA MOV DS,AX CALL CLEAR ;调用清屏子程序 PUSH BX ;置光标位置,AH=2,BH=0,DH 跟 DL 分别为行号与列号,并入栈保护 BX MOV AH,2;01 用于此程序最下边的 在下面的两个置光标位置 MOV BH,0 MOV DH,0;行 MOV DL,0;列 INT 10H POP BX MOV DX,OFFSET MESS1 MOV AH,09H INT 21H DISPLAY: ;时间显示部分 MOV B
5、X,OFFSET T_BUFF ;送 T_BUFF 的偏移地址到 BX MOV AH,2CH ;调用 DOS 时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在 CH, CL,DH 中 INT 21H MOV HOR,CH MOV MIN,CL MOV SEC,DH CALL TRANS_TIME 6 PUSH BX ;置光标位置,AH=2,BH=0,DH 跟 DL 分别为行号与列号,并入栈保护 BX MOV AH,2;01 用于此程序最下边的 在下面的两个置光标位置 MOV BH,0 MOV DH,17;行 MOV DL,31;列 INT 10H POP BX LEA DX,t_buff;送 T_BUFF 偏移地址到 DX,并调用 DOS 显示功能,功能号为 9 MOV AH,9 INT 21H;至此当前时间的显示功能结束! mov ah,2;01 用于此程序最下边的 在下面的两个置光标位置 mov bh,0 mov dh,18;行 mov dl,0;列 int 10h call delay1 mov ah,1 ;调用键盘 I/O 中断功能号 1