已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河北科技大学河北科技大学 课程设计报告 学生姓名: 学 号: 专业班级: 电子信息科学与工程 课程名称: 微型计算机原理及应用 学年学期: 2 0 1 1 2 0 12 学年第 1 学期 指导教师: 2 0 0 1 1 年 1 2 月 课程设计成绩评定表课程设计成绩评定表 学生姓名学 号成绩 专业班级起止时间2011/12/262011/12/30 设计题目 数字时钟程序 指 导 教 师 评 语 指导教师: 年 月 日 目录目录 一、一、 课设题目及目的课设题目及目的.4 二、二、 设计任务设计任务.4 三、三、 总框图及设计流程总框图及设计流程.4 四、四、 源程序清单源程序清单.6 五、五、 调试结果及显示调试结果及显示.19 六、六、 个人贡献个人贡献.19 七、七、 课程设计总结及体会课程设计总结及体会.21 一、课设题目及目的一、课设题目及目的 实习题目:数字时钟程序 实习目的:通过实习,使我们进一步弄懂所学到的课本知识, 巩固和深化对 8086 系统的指令系统、中断系统、键盘/显示系统、 程序设计、应用开发等基本理论知识的理解,提高汇编语言应用于 技术的实践操作技能,掌握汇编语言应用系统设计、研制的方法, 培养利用科技革新、开发和创新的基本能力,为毕业后从事与其相 关的工作打下一定的基础。 二、课设任务二、课设任务 本课题为利用汇编语言设置时钟程序,其显示效果为:截取系 统时间,能以时、分、秒(其中时为 24 小时制)的形式显示,并且 通过合理的操作能修改时和分的内容来修改时间。再有,可以给它 设定一个 ALARM 时间,到这个时间它就能产生信号,起到定时作 用, 。除此之外还能显示日期,日期分为年、月、日,其显示方式为 xxxx 年 xx 月 xx 日。 三、总框图及流程三、总框图及流程 显示时间输出 报时 显示日期 显示 MESS2 显示 MESS3 显示 MESS1 时分秒调用二进制转 换子程序 判断条件 整点 开始 调用清屏子程序 显示系统时间 Y 四源程序清单四源程序清单 DATA SEGMENT;数据段开始 MESS1 DB *ASM ASSIGNMENT* ,0AH,0DH DB *ELECTRONIC CLOCK* ,0AH,0DH DB *PRESS C OR C TO EDIT THE ALARM TIME* ,0AH,0DH DB *PRESS M OR M TO CHANGE SOUND!* ,0AH,0DH DB*PRESS SORS TO SET THE TIME* ,0AH,0DH ;显示功能菜单 DB *PRESS ESC BUTTON TO EXIT* ,0AH,0DH,$ TN DB PLEASE INPUT THE NEW TIME (HH:MM:SS):,0DH,0AH,$ TM DB 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,$ MESS2 DB TIME IS:,0AH,0DH,$ 判断条 件 键盘输入 调用设置时间子程 序 调用设置闹钟子 程序 判断条件 M800 TO 调用音乐子程序 M3200T O M1600T O S /s C/c M/m 1 2 3 MESS3 DB TODAY IS:,0AH,0DH,$ DBUFFER1 DB 20 DUP( ) T_BUFF DB 40 ;在数据段开 一段时间显示缓冲区 DB ? DB 40 DUP(?) HOR DB ? MIN DB ? SEC DB ? TEMPHOR DB ? TEMPMIN DB ? TEMPSEC DB ? MUSIC DW 800 ; 存放音乐的频 率数 DATA ENDS STACK SEGMENT DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA START: CALL CLEAR ;调用清屏子程序 DISPLAY: ;时间显示部分 MOV AX,DATA MOV DS,AX MOV BX,OFFSET T_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 CALL BCTD ;调用进制转换子程序 二进制 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 ;选取低四位 OR AL,30H MOV BX,AL;将转换后的低四位值送入缓冲区的下一个地址 INC BX ;. MOV AL,:;显示分隔符号 MOV BX,AL INC BX ;. MOV AH,2CH;取时间 INT 21H ;. MOV AL,CL;分钟数设定 MOV AH,0 CALL BCTD;调用进制转换子程序 二进制 BCD 码子程序 PUSH AX AND AL,0F0H;选取 AL 高四位 MOV CL,4;设定循环次数 ROL AL,CL;循环左移 4 次 OR AL,30H;加 30H 得到 ACSII 码 MOV BX,AL ;将得到的结果送到 T_BUFF 缓冲区 INC BX;BX 自加 1,指针指向下一个缓冲区的下一个地址 POP AX AND AL,0FH;选取低四位 OR AL,30H MOV BX,AL;将转换后的低四位值送入缓冲区的下一个地址 INC BX ;. MOV AL,: ;显示分隔符号 MOV BX,AL INC BX ;. MOV AH,2CH ;秒设定 INT 21H MOV AL,DH MOV AH,0 CALL BCTD;调用进制转换子程序 二进制 BCD 码子程序 PUSH AX AND AL,0F0H;选取 AL 高四位 MOV CL,4 ROL AL,CL OR AL,30H;加 30H 得到 ACSII 码 MOV BX,AL;将得到的结果送到 T_BUFF 缓冲区 INC BX POP AX AND AL,0FH;选取低四位 OR AL,30H MOV BX,AL;将转换后的低四位值送入缓冲区的下一个地址 INC BX ;. MOV AL,$;将字符串的结束位送至显示缓冲区的最后一位 MOV BX,AL ;. CALL DATE PUSH BX ;置光标位置,AH=2,BH=0,DH 跟 DL 分别为行号与列号,并入栈保护 BX MOV AH,2;01 用于此程序最下边的 在下面的两个置光标位置 MOV BH,0 MOV DH,17;行 MOV DL,41;列 INT 10H POP BX LEA DX,T_BUFF;送 T_BUFF 偏移地址到 DX,并调用 DOS 显示功能,功能号为 9 MOV AH,9 INT 21H;至此当前时间的显示功能结束! PUSH BX ;置光标位置 MOV AH,2 MOV BH,0 MOV DH,16 MOV DL,41 INT 10H ;日期 POP BX LEA DX,DBUFFER1 MOV AH,9 INT 21H PUSH BX ;置光标位置 MOV AH,2 MOV BH,0 MOV DH,16 MOV DL,21 INT 10H POP BX LEA DX,MESS3 MOV AH,9 INT 21H ;显示 MESS3 PUSH BX ;置光标位置 MOV AH,2 MOV BH,0 MOV DH,0 MOV DL,0 INT 10H POP BX LEA DX,MESS1 MOV AH,9 INT 21H ;显示 MESS1 PUSH BX ;置光标位置 MOV AH,2 MOV BH,0 MOV DH,17 MOV DL,21 INT 10H POP BX LEA DX,MESS2 MOV AH,9 INT 21H ;显示 MESS2 ;. CALL DELAY1 MOV AH,1 ;调用键盘 I/O 中断功能号 1,获取键值到 AL INT 16H CMP AL,M JE EDITMUSIC CMP AL,M JE EDITMUSIC CMP AL,C ;是 C 键,转移闹钟时间修改程序 JE EDITTIME CMP AL,C ;是 C 键,转移闹钟时间修改程序 JE EDITTIME CMP AL,S ;是 S 键,转移时间修改程序 JE COR CMP AL,S ;是 S 键,转移时间修改程序 JE COR CMP AL,1BH JZ QUIT ;是 ESC 键,退出程序 JMP DISPLAY QUIT: MOV AH,4CH INT 21H RET COR: CALL SETTIME;设置时间 ;. EDITMUSIC PROC PUSH AX ;入栈保护数据 PUSH BX PUSH CX PUSH DX PUSHF MOV DX,OFFSET MUSICMESS ;显示修改音乐的种类提示 MOV AH,09H INT 21H MOV DX,OFFSET T_BUFF;数据缓冲区的数据输入 MOV AH,0AH INT 21H AND DX,0H LEA BX,T_BUFF INC BX INC BX INC BX MOV AL,BX CMP AL,1 JE M800TO CMP AL,2 JE M1600TO CMP AL,3 JE M3200TO M800TO:MOV MUSIC,800 JMP T M1600TO:MOV MUSIC,1600 JMP T M3200TO:MOV MUSIC,3200 T: POPF ;出栈恢复数据 POP DX POP CX POP BX POP AX JMP START RET;返回 DOS EDITMUSIC ENDP;结束 BCTD PROC NEAR ;二进制 BCD 码子程序 ;AX 输入参数 ;AX 输出参数,存放调整过的 BCD 码 MOV DX,AX MOV AX,0 MOV CX,16 ;设置循环次数 BCTD1: CLC ;清进位标志 C RCL DX,1 ;通过进位的循环左移 ADC AL,AL ;带进位加法 DAA ;加法的十进制调整 XCHG AL,AH ;交换高,低 8 位 ADC AL,AL DAA XCHG AL,AH LOOP BCTD1 ;循环次数保存在 CX 里 RET BCTD ENDP ;. EDITTIME PROC ;时间修改程序 PUSH AX ;入栈保护数据 PUSH BX PUSH CX PUSH DX PUSHF MOV DX,OFFSET TM ;显示修改时间的格式提示 MOV AH,09H INT 21H MOV DX,OFFSET T_BUFF ;数据缓冲区的数据输入 MOV AH,0AH INT 21H AND DX,0H LEA BX, T_BUFF INC BX INC BX INC BX MOV DH,BX SUB DH,30H INC BX MOV DL,BX SUB DL,30H MOV CL,10 MOV AL,DH MUL CL ADD AL,DL MOV CH,AL MOV HOR,AL MOV TEMPHOR,AL INC BX INC BX MOV DH,BX SUB DH,30H INC BX MOV DL,BX SUB DL,30H MOV CL,10 MOV AL,DH MUL CL ADD AL,DL MOV CL,AL MOV MIN,AL MOV TEMPMIN,AL INC BX INC BX MOV DH,BX SUB DH,30H INC BX MOV DL,BX SUB DL,30H MOV CL,10 MOV AL,DH MUL CL ADD AL,DL MOV DH,AL MOV TEMPSEC,AL POPF ;出栈恢复数据 POP DX POP CX POP BX POP AX JMP START RET EDITTIME ENDP ;. CLEAR PROC NEAR PUSH AX ;入栈保护现场 PUSH BX PUSH CX PUSH DX MOV AX,0600H;AH=06(滚动)AL=00(全屏空白) MOV BH,1FH;设置背景颜色(1 蓝色)和前景颜色(F 白色) SUB CX,CX MOV DX,5F5FH INT 10H POP DX;出栈恢复现场 POP CX POP BX POP AX RET CLEAR ENDP ;. DATE PROC NEAR MOV AH,2AH;取日期 CX:DH:DL=年:月:日 AL=星期 INT 21H MOV SI,0 MOV AX,CX MOV BX,100 DIV BL MOV BL,AH CALL BCDASC1;日期数值转换成相应的 ASCII 码字符 MOV AL,BL CALL BCDASC1 INC SI MOV AL,DH CALL BCDASC1 INC SI MOV AL,DL CALL BCDASC1 MOV AL,$ MOV DBUFFER1SI,AL RET DATE ENDP ;. BCDASC1 PROC NEAR PUSH BX CBW MOV BL,10 DIV BL ADD AL,0 MOV DBUFFER1SI,AL INC SI ADD AH,0 MOV DBUFFER1SI,AH INC SI POP BX RET BCDASC1 ENDP ;. SETTIME PROC;时间修改子程序 CALL INPUT;调用键盘输入子程序输入数据 MOV CH,HOR MOV CL,MIN MOV DH,SEC AND DL,0H MOV AH,2DH INT 21H JMP START RET SETTIME ENDP ;. DELAY1 PROC;精确延迟时间子程序 MOV DX,04FFH;循环次数 UP:XOR CX,CX A:NOP LOOP A DEC DX JNZ UP RET DELAY1 ENDP ;. INPUT PROC;输入子程序 PUSH AX;入栈保护数据 PUSH BX PUSH CX PUSH DX PUSHF MOV DX,OFFSET TN;显示修改时间的格式提示 MOV AH,09H INT 21H MOV DX,OFFSET T_BUFF;数据缓冲区的数据输入 MOV AH,0AH INT 21H AND DX,0H LEA BX,T_BUFF INC BX INC BX MOV DH,BX SUB DH,30H INC BX MOV DL,BX SUB DL,30H MOV CL,10 MOV AL,DH MUL CL ADD AL,DL MOV CH,AL MOV HOR,AL INC BX INC BX MOV DH,BX SUB DH,30H INC BX MOV DL,BX SUB DL,30H MOV CL,10 MOV AL,DH MUL CL ADD AL,DL MOV CL,AL MOV MIN,AL INC BX INC BX MOV DH,BX SUB DH,30H INC BX MOV DL,BX SUB DL,30H MOV CL,10 MOV AL,DH MUL CL ADD AL,DL MOV DH,AL MOV SEC,AL POPF;出栈恢复数据 POP DX POP CX POP BX POP AX RET INPUT ENDP ;. CHECK PROC PUSH AX PUSH BX CMP CH,TEMPHOR;设置定点报时 JNE CF1 CMP CL,TEMPMIN JNE CF1 CMP DH,TEMPSEC JE XIANG CF1: CMP CL,0 ;设置整点报时 JNE CF CMP DH,0 JNE CF XIANG: CALL OPEN PUSH DX PUSH CX MOV DX,12H MOV AX,34DEH MOV CX,MUSIC DIV CX OUT 42H,AL MOV AL,AH OUT 42H,AL MOV AH,1 INT 21H POP CX POP DX CALL CLOSE CF: POP BX POP AX RET CHECK ENDP OPEN PROC PUSH AX IN AL,61H OR AL,03H OUT 61H,AL POP AX RET OPEN ENDP CLOSE PROC PUSH AX IN AL,61H AND AL,0FCH OUT 61H,AL POP AX RET CLOSE ENDP ;. CODE ENDS END START 五调试结果及显示五调试结果及显示 六个人贡献六个人贡献 在本次课设实现过程中,我主要负责程序校正,和一部分程序的解释,主 要有以下程序: MOV AL,CH ;小时数设定 MOV AH,0 CALL BCTD ;调用进制转换子程序 二进制 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 ;选取低四位 OR AL,30H MOV BX,AL;将转换后的低四位值送入缓冲区的下一个地址 INC BX ;. MOV AL,:;显示分隔符号 MOV BX,AL INC BX ;. MOV AH,2CH;取时间 INT 21H ;. MOV AL,CL;分钟数设定 MOV AH,0 CALL BCTD;调用进制转换子程序 二进制 BCD 码子程序 PUSH AX AND AL,0F0H;选取 AL 高四位 MOV CL,4;设定循环次数 ROL AL,CL;循环左移 4 次 OR AL,30H;加 30H 得到 ACSII 码 MOV BX,AL ;将得到的结果送到 T_BUFF 缓冲区 INC BX;BX 自加 1,指针指向下一个缓冲区的下一个地址 POP AX AND AL,0FH;选取低四位 OR AL,30H MOV BX,A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年终聚会活动策划方案(3篇)
- 精神分裂症患者自我康复训练计划
- 暑假假期应急预案(3篇)
- 桥面安全施工方案(3篇)
- 沟槽防汛应急预案(3篇)
- 消防演练活动策划方案(3篇)
- 箱包服饰活动策划方案(3篇)
- 胎盘应急预案流程(3篇)
- 投递作业流程及规范
- 轻钢架施工方案(3篇)
- 日用品销售合同(标准版)
- (人教2024版PEP)英语一年级上册Unit 1单元测试(含答案+听力音频)
- 土壤农化分析教学课件
- 元代文学-课件
- 2025年315消费者权益保护知识竞赛题库及答案(50题)
- 中医护理技术操作并发症的预防及处理
- “双减”与“新课标”背景下小学英语作业设计与探索
- 台球AI应用行业深度调研及发展项目商业计划书
- 2025年深圳市中考历史试卷真题(含答案详解)
- 语音厅新人培训
- 社工协会薪酬管理制度
评论
0/150
提交评论