微机原理课程设计数字时钟程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河北科技大学
课程设计报告
学生姓名:学号:
专业班级: 电子信息科学与工程
课程名称:微型计算机原理及应用
学年学期: 2 01 1 —2012 学年第1 学期
指导教师:
20 0 1 1年 1 2月
课程设计成绩评定表
目录
一、课设题目及目的………………………………….4
二、设计任务………………………………………….4
三、总框图及设计流程 (4)
四、ﻩ源程序清单 (6)
五、ﻩ调试结果及显示 (19)
六、ﻩ个人贡献………………………………………….19
七、课程设计总结及体会 (21)
一、课设题目及目的
实习题目:数字时钟程序
实习目的:通过实习,使我们进一步弄懂所学到的课本知识,巩固和深化对8086系统的指令系统、中断系统、键盘/显示系统、程序设计、应用开发等基本理论知识的理解,提高汇编语言应用于技术的实践操作技能,掌握汇编语言应用系统设计、研制的方法,培养利用科技革新、开发和创新的基本能力,为毕业后从事与其相关的工作打下一定的基础。
二、课设任务
本课题为利用汇编语言设置时钟程序,其显示效果为:截取系统时间,能以时、分、秒(其中时为24小时制)的形式显示,并且通过合理的操作能修改时和分的内容来修改时间。再有,可以给它设定一个ALARM时间,到这个时间它就能产生信号,起到定时作用,。除此之外还能显示日期,日期分为年、月、日,其显示方式为xxxx年xx 月xx日。
'
*
DB '***********PRESS ESCBUTTON TO EXIT**************',0AH,0DH,'$'
TN DB'PLEASE INPUT THE NEW TIME(HH:MM:SS):',0DH,0AH,'$'
TMDB'PLEASE INPUT THE ALARM TIME (HH:MM:SS):',0DH,0AH,'$'
MUSICMESS DB'PLEASE CHOOSE THE TYPE OF MUSIC:1(FAST) 2(MIDDLE) 3(SLOW)',0DH,0AH,'$'
MESS2DB'TIME IS:',0AH,0DH,'$'
MESS3DB 'TODAY IS:',0AH,0DH,'$'
DBUFFER1DB20DUP('')
T_BUFFD B 40 ;在数据段开一段时间显示缓冲区
DB ?
DB 40DUP(?)
HOR DB?
MIN DB?
SEC DB?
TEMPHOR DB ?
TEMPMIN DB?
TEMPSEC DB?
MUSIC DW 800;存放音乐的频率数DATA ENDS
STACK SEGMENT
DB 100 DUP(?)
STACK ENDS
CODESEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA
START:
CALL CLEAR ;调用清屏子程序
DISPLAY:;时间显示部分
MOV AX,DATA
MOVDS,AX
MOVBX,OFFSETT_BUFF;送T_BUFF的偏移地址到BX
MOV AH,2CH;调用DOS时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在CH,CL,DH中
INT 21H
;判断时间是否相等SUB DH,1;秒数+1修正
CALL CHECK
;.........................................................................
MOV AL,CH;小时数设定
MOV AH,0
CALLBCTD;调用进制转换子程序二进制BCD码子程序PUSH AX
AND AL,0F0H;选取AL高四位
MOV CL,4 ;设置右循环的次数
ROR AL,CL;右循环
OR AL,30H ;加30H得到ACSII码
MOV[BX],AL;将得到的结果送到T_BUFF缓冲区
INC BX;BX自加1,指针指向下一个缓冲区的下一个地址POP AX
AND AL,0FH;选取低四位
ORAL,30H
MOV [BX],AL;将转换后的低四位值送入缓冲区的下一个地址
INCBX ;........................................................................
MOV AL,':';显示分隔符号
MOV [BX],AL
INCBX;........................................................................
MOVAH,2CH;取时间
INT21H ;.......................................................................
MOV AL,CL;分钟数设定
MOV AH,0
CALLBCTD;调用进制转换子程序二进制BCD码子程序
PUSH AX
AND AL,0F0H;选取AL高四位
MOV CL,4;设定循环次数
ROL AL,CL;循环左移4次
ORAL,30H;加30H得到ACSII码
MOV[BX],AL;将得到的结果送到T_BUFF缓冲区
INC BX;BX自加1,指针指向下一个缓冲区的下一个地址
POPAX
AND AL,0FH;选取低四位
OR AL,30H
MOV[BX],AL;将转换后的低四位值送入缓冲区的下一个地址
INC BX ;.....................................................................
MOV AL,':';显示分隔符号
MOV[BX],AL
INC BX;.....................................................................
MOV AH,2CH;秒设定