ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:133.58KB ,
资源ID:22639737      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22639737.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机课程设计数字秒表Word文件下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机课程设计数字秒表Word文件下载.docx

1、本设计利用软件实现延时(不是很精确),调用TIME实现延时。其原理:通过可控制的循环来占用CPU的时间来实现延时,分为内外两层循环,外循环由AX中的数值来控制,内循环有CX中的值来控制。3. 光标定位子程序原理 DOS显示屏为25行、80列,左上角为(0,0),右下角(18,4F) 设置光标,可调用BIOS系统,用汇编语句调用中断INT10H。入口信息为 (AH)=2 要设置光标; (BH)=0 页号; (DH,DL)=光标的行号、列号4. 清屏原理 开始执行程序时为保证有一个洁净的屏幕,可使显示屏做上滚动作,使屏幕留下一片空白。要使屏幕上滚,可用汇编语句INT 10H ,入口信息为 (AH

2、)=6 使屏幕上滚 (AL)=00上滚行数 (CH,CL)=滚动区域左上角的行、列号 (DH,DL)=滚动区域右下角的行、列号 (BG)=00 颜色的设置 5. 字符及字符串显示原理 通过调用DOS系统模块2只能是西安DL中的一个字符的显示。为了实现字符串的显示,调用其9号模块功能,其入口信息为(AH)=9 显示字符串的功能模块(DS:DX) 指向字符串的首地址,要求字符串以字符 $结尾。6. 压缩BCD转为ASCII码原理(1.)两位的:先将压缩BCD码的高4位取出,右移四位后,与30H相或,存到相应内存单元;然后将低4位取出,与30H相或,存到下一内存单元。(2.)一位的:原数字加30H7

3、. 动态扫描键盘原理 运用INT 21H的8号功能来实现动态扫描键盘。如果有键按下,则相应的键值的ASCII码被存到AL中。判断AL中的数值,若不是控制字符,则继续循环,从而实现动态扫描键盘。四、程序流程图1.主程序流程图2 .子程序流程图5、程序代码DAT SEGMENT ;设置数据段BUF DB Input start(S)or memory(M)or end(E) or continue(C)or restart(R)$ ;设置功能说明 MESS DB 计 时 器 ,0ah,0dh DB * * * * * * * * * * * * * * * * * * * * * * * * *

4、* * * * * * * * * * * * * * * * * * * * * * ,0ah,0dh * Designed by 陈奇 Copyright 2013-2014 ,$ TIP DB M E M O R Y$定义记忆提示 BUFFER DB 20 DUP(?) ;定义缓存区NUM DB 1 LOD EQU 0144H ;记忆显示区光标的位置 DAT ENDS-代码段-主程序单元- COD SEGMENT ;定义代码段 START PROC FAR ASSUME CS:COD,DS:DAT MOV AX,DAT MOV DS,AX CALL CLR ;图形区清屏并设置颜色 CAL

5、L CLRDAT ;秒表数字区清屏并设置颜色 CALL CLRMER ; 记忆区清屏并设置颜色 MOV DX,OFFSET BUF ;输出功能说明 MOV AH,09H ;输出字符串 INT 21H MOV DX,OFFSET MESS ; MOV AH,09H CALL DISMER ;MEMORY 的光标位置 MOV DX,OFFSET TIP ;输出 CALL GO ;设置初值 LOAD: CALL IOSET ;光标定位 CALL HALT ;等待输入 MOV DX,0 MOV CH,0AGAIN: CALL TIME ;调用延时程序 MOV AL,DL ;十分之一秒加一 ADD AL

6、,1 DAA CMP AL,10H JE NEXT1 ;满十进位 MOV DL,AL JMP DISPY ;不满十显示NEXT1:MOV DL,0 MOV AL,DH ;秒位加一 MOV DH,AL CMP AL,60H JNE DISPY MOV DH,0 MOV AL,CH ;分位加一 MOV CH,AL CMP AL,60H JNE DISPY ;满60清零DISPY:显示电子秒表 MOV BX,OFFSET BUFFER ;取缓冲区地址 MOV AL,CHCALL TRAN ;将分位转变为ASCII码并送缓冲区 INC BX将秒位转变为ASCII码并送缓冲区 CALL TRAN将十分之

7、一秒位转变为ASCII码并送缓冲区 CALL TRAN2 PUSH BX PUSH CX PUSH DX光标置位 MOV DX,OFFSET BUFFER ;输出缓冲区字符串 POP DX POP CX POP BX MOV AH,0BH ;等待键盘输入 AND AL,AL JZ AGAIN MOV AH,08HINT 21H CMP AL,M JNZ R1 CALL MEMORY JMP AGAINR1:CMP AL,R判断输入是否为R JNE NEXT2 ;不是则判断是否为ECALL MEMORY ;若是则调用记忆功能保存当前值 MOV CH,0 ;初值清零重新计数 MOV DL,0NEX

8、T2:E判断是否为E JNE AGAIN ;不是则继续计数NEXT3: ;若是则暂停计数MOV AH,08HC判断是否输入C判断是否输入R JNE NEXT3 ;若不是则继续等待输入 CALL MEMORY ;若是则调用记忆功能重新设置初值等待重新启动 CALL IOSET MOV DX,OFFSET BUFFER JMP LOAD RETSTART ENDP;-子程序单元-设置初值子程序-GO PROC MOV BX,OFFSET BUFFER MOV AL,0 MOV BX,AL:. GO ENDP- 光标定位子程序- IOSET PROC MOV DX,121DH ;光标定位在 18行

9、39列 MOV BH,00 ;页号 MOV AH,02H ;要设置光标 INT 10H IOSET ENDP HALT PROCS JNE HALT HALT END -BCD转ASCII码子程序1- TRAN PROC MOV CL,AL SHR AL,1 OR AL,30H MOV AL,CL AND AL,0FH TRAN ENDP -BCD转ASCII码子程序2- TRAN2 PROC ADD AL,30H TRAN2 ENDP-延时子程序- TIME PROC PUSH AX MOV AX,06EEH ; 通过改变AX的初值 来校准 秒表 MOV CX,0FFFFHA1: DEC A

10、X JNZ A2 JMP A3A2: DEC CX JMP A1A3: POP AX TIME ENDP-记忆功能子程序- MEMORY PROC CMP NUM,20 JE X2 ADD NUM,1X1: MOV DX,LOD ADD DH,NUM MOV BH,00 MOV AH,02HPOP AXX2: CALL CLRMER MOV NUM,1 JMP X1 MEMORY ENDP- 图形区清屏并设置颜色子程序- CLR PROC MOV AH,06H ;使屏幕上滚 MOV AL,18H ;上滚行数 MOV CX,0000H ; 滚动区域左上角的行号 列号 MOV DX,1840H ;

11、 滚动区域右下角的行号 列号 MOV BH,2CH ; 空白行属性 CLR ENDP-数据区清屏并设置颜色子程序- CLRDAT PROC MOV AH,6 MOV AL,1 MOV CX,121DH MOV DX,0E23H MOV BH,6EH CLRDAT ENDP-记忆区清屏并设置颜色子程序- CLRMER PROC MOV AL,18H MOV CX,0141H MOV DX,184FH MOV BH,5EH CLRMER ENDP-记忆提示 光标定位- DISMER PROC MOV DX,0043H DISMER ENDP COD ENDS ;结束代码段 END START ;结

12、束源程序六、程序运行结果 七、程序调试中的问题及解决方法1. 主程序的调试 主程序使用压缩BCD码做的加法,再用DAA进行调整,这时要注意DAA只能对AL中的结果进行调整,因此只能用AL做加法,再将数据传送过去。2. BCD 码调整为ASCII码子程序调试 BCD 码调整为ASCII码时,分、秒同0.1秒不能调用同一个子程序,否则屏幕显示时,0.1秒位的显示的也是两个数。应该分开调用,分秒位调用时用TRAN,0.1秒调用时用TRAN2。3. 延时子程序的调试延时程序的时间并没有经过精确计算,因此只能用试探法逐渐增加或减小AX值。最终选定AX= 0BFFH 。4. 图形显示程序的调试本设计图形的

13、显示用了字符串输出。刚开始编程时由于图形太大超过了25行,图形不能正确的显示,经过多次反复修改,最终图形得以正确显示。在使用字符串输出时一定注意在最后加上$字符,还应该注意“0ah,0dh”的正确使用。5. 清屏子程序调试 书中没有具体指明颜色代号,只能通过从01H开始依次尝试。经过多次调试最终确定图形使用0CH绿色 ,字幕使用0EH黄色,记忆区使用0DH紫色。8、心得体会 “纸上得来终觉浅,绝知此事要躬行”,这是本次课程设计我最大的体会。刚开始时,看着老师给的参考材料,心里想“这个课程设计不是很难的事情嘛,把这几个子程序堆一块不就完了”,可是真正做起来时,才发现事情远非想的那么简单。从上机软

14、件的选取,到课程设计报告的最终完成,我们经历了很多曲折,也收获了很多,下面具体阐述一下。1软件的选取古语云:工欲善其事必先利其器。汇编语言上机软件和流程图绘制软件的选取对此次课程设计非常重要。经过对比我们最终选取了Masm,Edrw 最终也能熟练操作这两款软件。这是此次设计较大的收获。2.图案的设计 为了能得到一个比较漂亮的界面显示,我们在图案设计上花了不少功夫。很多次设计的图案很漂亮,可是搬到程序里面运行时却是一堆乱码,让我们很沮丧.还有要把秒表的显示正好调到图案正中央,我们也经过了多次调试。在这个过程中,我们学会了耐心,去除浮躁,平心静气的把程序一遍遍的修改、调试,臻于完美。3. 程序调试 程序调试前,我们检查了好几遍。可是调试时还是错误百出。尤其是“;”的使用,一定要区分英文输入的分号和中文分号的区别,还有字符串结束时一定要加$,否则会出现乱码。这些都是调试中发现的问题,只有注意细节,细心,才能顺利完成任务。总结:通过本次课程设计,我加深了对课汇编语言的理解,同时熟练掌握了汇编语言的编辑、调试软件。在以后的学习生活中还要继续保持严谨认真的科学态度,保持不断尝试和探索的耐心,保持勇于解决问题的决心。不断地向老师、同学们学习、交流,分享吸取他们的经验,更好的提高自己。9、参考书目微型计算机原理P150158、P166171 张荣祥 中国电力出版社

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1