《电子表程序设计》由会员分享,可在线阅读,更多相关《电子表程序设计(30页珍藏版)》请在金锄头文库上搜索。
1、武汉理工大学?微机原理与接口技术?课程设计说明书2课程设计任务书学生姓名: 0000000 专业班级: 自动化0804 指导教师: 苏义鑫 工作单位: 自动化学院 题 目: 电子表程序设计 初始条件:带有编辑器、汇编程序、连接程序和调试程序的电脑一台。要求完成的主要任务: 包括课程设计工作量及其技术要求,以及说明书撰写等具体要求采用汇编语言设计一个电子表程序,在屏幕上以七段数码管的形式显示本机时间,精确到秒。按S启动,按T停止,按P暂停。按Q退出程序。(1) 设计任务及要求分析(2) 方案比拟及认证说明(3) 系统原理阐述(4) 软件设计课题需要说明:软件思想,流程图,源程序及程序注释(5)
2、调试记录及结果分析(6) 总结(7) 参考资料(8) 附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图时间安排:1月10日1月12日:收集资料,方案选择1月13日1月16日:整体流程,程序细节1月17日1月20日:调试程序,报告撰写1月21日: 交设计报告,程序演示,辩论指导教师签名: 年 月 日系主任或责任教师签名: 年 月 日 前言汇编语言是计算机能够提供应用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间的要求很高的场合,汇编语言的应用是必不可少的。至于很多需要直接控制硬件的应用场合,那么更是非用汇编语言不可了。随着
3、科学技术迅速开展,理工科大学生不仅需要掌握计算机方面的根本理论知识,而且还需要掌握根本的实验技能及一定的科学研究能力。通过课程设计,使学生稳固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的根底。鉴于汇编语言的广泛用途及其在当代计算机界的重要作用,本人利用学的知识,在同学门的帮助下,花费大量时间,完成了关于电子表的系统设计。这个系统是应用于电脑中的小应用程序,可是显示电脑中的时间。很多地方都会有个时钟显示,其中大多是应用了类似这样的方法。目录1 设计任务
4、及要求分析11.1 设计目的11.2 设计任务11.3 具体要求12.方案比拟及认证说明23.系统原理阐述34.软件设计课题说明84.1软件思想84.2流程图84.3源程序及程序注释105.调试记录及结果分析205.1 程序调试过程205.2 运行结果206.设计总结及心得体会237.参考文献248 附录:中断向量表25武汉理工大学?微机原理与接口技术?课程设计说明书1 设计任务及要求分析1.1 设计目的1通过设计电子表,掌握中断的使用方法。2掌握根本的显存读写技术。3学会在屏幕上以七段数码管的形式显示本机时间的方法。4学会用汇编语言编写一个完整的程序,提高自己的动手操作能力。5学习程序设计的
5、根本思路和方法,培养分析问题、解决问题的能力。1.2 设计任务采用汇编语言设计一个电子表程序,在屏幕上以七段数码管的形式显示本机时间,精确到秒。按S启动,按T停止,按P暂停,按Q退出程序。1.3 具体要求1设计任务及要求分析2方案比拟及认证说明3系统原理阐述4软件设计课题需要说明:软件思想,流程图,源程序及程序注释5调试记录及结果分析6总结7参考资料8附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图2.方案比拟及认证说明设计方案:数字09中的每一个数字用“和“字符组成的“七段码图形表示,时与分、分与秒之间的两点用“字符表示。这些字符预先定义在数据段的字符图形里,利用BIOS INT 1
6、AH的2号系统功能调用,读出计算机系统的时间为BCD码,置换成字符图形标中的图形字符显示。本程序设计的关键是随着系统时间的变化,用字符组成的图形数字如何进行相应的变化。方法是:不停地读取系统时间并保存在存放器中,将每次取出的时间显示并与前一次比拟,先比拟“秒值,在不同的情况下系统时间发生了增1的变化,那么调用相应的图形字符显示,在不超过60秒的情况下,重复比拟秒,然后再比拟和显示“分值与“小时值。程序流程图如下图。3.系统原理阐述用七段码电子表显示程序系统时间,程序设计的关键是随系统时间的变化,用字符组成图形数字如何进行相应的变化。编写的程序,主要包含以下子程序:1对时间值进行处理并显示的子程
7、序:xian proc push si push di push dx push cx push bx push ax pop ax push ax mov bx,ax mov ax,0 mov al,bh mov cl,4 shr al,cl mov bl,al mov dh,10 mov dl,2 call ff pop ax push ax mov bx,ax mov ax,0 mov al, bh and al,0fh mov bl,al mov dh,10 mov dl,6 call ff mov dh,10 mov dl,10 mov bl,10 call ff pop ax pu
8、sh ax mov cl,4 shr al,cl mov bl,al mov dh,10 mov dl,14 call ff pop ax push ax and al ,0fh mov bl,al mov dh,10 mov dl,18 call ff mov dh,10 mov dl,22 mov bl,10 call ff pop ax pop bx push bx push ax mov ax,0 mov al,bh mov cl,4 shr al,cl mov bl,al mov dh,10 mov dl,26 call ff pop ax pop bx push bx push a
9、x mov al,bh and al,0fh mov bl,al mov dh,10 mov dl,30 call ff mov dh,0 mov dl,15 mov bl,22 call ff pop ax pop bx pop cx pop dx pop di pop si retxian endp2显示具体数值的子程序:ff proc push ax push bx push cx push dx cmp bl,0 je l0 cmp bl,1 je l1 cmp bl,2 je l2 cmp bl,3 je l3 cmp bl,4 je l4 cmp bl,5 je l5 cmp bl
10、,6 je l6 cmp bl,7 je l7 cmp bl,8 je l8 cmp bl,9 je l9 cmp bl,10 je l10 cmp bl,22 je ldl0: lea di,s0 jmp tyl1: lea di,sy jmp tyl2: lea di,s2 jmp tyl3: lea di,s3 jmp tyl4: lea di,s4 jmp tyl5: lea di,s5 jmp tyl6: lea di,s6 jmp tyl7: lea di,s7 jmp tyl8: lea di,s8 jmp tyl9: lea di,s9 jmp tyl10: lea di,s1
11、1 jmp tyld : lea di,strty: mov ah,0fh ;显示方式 int 10h sub cx,cx mov cl,di inc diplot_next: add dh,di+2 add dl,di+3 mov ah,2 int 10h mov al,di mov bl,di+1 push cx mov cx,1 mov ah,09 int 10h pop cx add di,4 loop plot_next pop dx pop cx pop bx pop ax mov cx,100gg: dec cxloop ggretff endp3报时子程序:beep proc push ax push bx pus