微机原理课程设计电子时钟的设计.docx
《微机原理课程设计电子时钟的设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计电子时钟的设计.docx(10页珍藏版)》请在咨信网上搜索。
《微机原理》课程设计 ——电子时钟的设计(2005-6-24) 山东科技大学机电学院js02-2 20号 一.课程设计题目:电子钟 1. 设计目的:了解定时/计数器和中断的使用。 2. 设计所需设备:PC机。 3. 设计任务:编写程序,在PC机上显示时间。 二.程序内容: 第一部分:定义显示界面。 第二部分:调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入内存区。 第三部分:将存在系统内存区的时间数用显示字符串的形式显示出来。 第四部分:获取键盘的按键值,判断键值并退出系统。 三.程序设计原理: 首先在数据段开辟一显示缓冲区,用来存储系统时间。调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号’$’。调用DOS字符串显示功能将时间显示出来。并调用屏幕I/O中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。时间显示的刷新要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,但又不能超过一秒,所以本程序调用了一段较精确的时间延迟程序,屏幕显示延迟一段时间后再跳回到初始位置,再显示,由此循环下去。程序的最后还设计一了个按“ESC”键就退出的功能,采取了判断键值的方法。为了显示的美观,还设计一个字符图界面,通过显示字符串的方法显示出来。本程序具有很强的扩展功能,我们可以在此基础上进行一些输入、输出扩展,显示的扩展,比如可以做成计时器,并设计一个精美的运动的图形界面,时间到了会自动调用PC喇叭发出报警声等等。。。但是由于时间的原因,所以只做了核心的部分,这不得不说是一个遗憾。本程序使用了未来汇编,与VISUAL ASM开发平台。 四.程序设计心得: 本程序虽然只花了一天的时间,但是也收获颇多。其实本程序的设计思路并不难想,核心代码的设计所花的时间也不长。但是调试的时间却占了差不多70%的时间,在本程序设计的初期曾经走了不少弯路碰见过不少难题,所幸的是在我们的坚持下最终把难题一一击破。下面就列举下我们遇见过的比较繁琐的难题: 1. 进制转换问题。开始我们的思路是想将AL的内容除于10,然后分别讲除数跟商分别加上30H转换成ASCII码并保存在AH跟AL里面。但是写完调试的时候系统自动弹出一个对话框,要求关闭,可是用自带的编译器却可以通过,百思不得其解,最后上网找了资料才发现是编译系统跟操作系统不兼容的问题,本人的操作系统是最新的WIN2003,纯32位的系统,跟16位的软件有不兼容也是有可能的。但我本人又不想重装个WIN98来调试程序,于是就放弃这种方法,改用逻辑移位,调整的方式来实现了。 2. 屏幕显示问题。开始做完程序的时候由于采用了光标定位的方法,发现运行了程序后显示光标不停地跳动,而且在不同的位置上跳动,严重影响了程序的可观赏性。检查发现原来光标的跳动跟程序的刷新频率跟人眼的视觉残象成影原理有关,只要系统的刷新频率大于1/25秒,那么人眼就会认为图象在改变,这跟电影为什么要设成25帧/秒的播放速率的原理是一样的。这样一来,就必须设计一较为精确的延时程序来改善画面的显示了,只要不让屏幕刷新得太快就可以打到要求了,具体的显示时间是通过延时程序里的DX值决定的,通过调整DX的值,我们发现当DX等于04FF的时候显示效果是最好的。 3. 系统退出问题。开始本程序是使用了DOS中断的键盘功能调用,可是当我们加了比较跳转指令后整个程序就停了在那里,具体原因不是很清楚。最后换成了键盘I/O功能调用,问题迎刃而解了。希望能跟老师一起探讨这个问题。 我的心得体会 我们所设计的程序原理是:程序先调用系统时间,然后将返回的二进制数转化成ASCII码,再通过dos显示功能显示出来,并通过循环不断刷新显示的时间. 我从这次程序设计过程中学会,理解了几点我以前不熟悉的知识: 首先在二进制转化成ASCII码的过程中,我进一步地了解到,在转化过程中,二进制数首先转化为双四位的BCD码,再将高四位低四位分别相加30H,从而转化为ASCII码,此时要对照书本P416的附录1了解电脑cup如何将ASCII码的信息转换成显示字符。 其次,了解了如何对其他经典程序的灵活应用。我们的程序是不断对显示屏进行刷新的,所以我们调用了bctd程序,这是一个精确的计时程序,计数时间约为1秒,然后我们用了jmp display指令,刷新显示屏,从而达到时间的每秒显示。 通过了这次程序设计,使我更深刻地理解了微机的原理与应用技术,特别是在对中断技术的理解与应用方面,更好地理解了微机的工作情况与运行方式。 可以这样说,如果没有此课程设计,我对微机的原理与应用技术,仍旧停滞于表面了解、一知半解甚至不知其解的状态,这样就谈不上学知识、长见闻、提高自身学术素质与理论水平的方方面面。但也让作者感到自身的知识和理论水平要作更高层次的课程设计,远远不足,还需要不懈地学习与提高,更需要指导老师与在此方面的高手不吝赐教! 参考资料: 《微型计算机原理及应用》第四版 周明德 清华大学出版社 《微机原理及接口技术实验指导书》岳克宁 主编 《全国计算机等级考试辅导教程与同步试题训练(3级PC技术)》 冶金工业出版社 五.流程图: Y 清屏 调用DOS中断 取系统时间 2进制转ACSII码 将转换好的系统时间存入时间显示缓冲区 显示时间与界面 ESC键按下? 调用延时子程序 返回DOS 程序结束 Y N 六.程序源码: ;name: ELECTRONIC CLOCK ;design by zengqingyu class1 and moxiaolei class3 data segment mess1 db ' \\\|/// ',0ah,0dh db ' \\ .-.- // ',0ah,0dh db ' ( .@.@ ) ',0ah,0dh db ' +-----------oOOo-----(_)-----oOOo-------------+ ',0ah,0dh db ' + ASM ASSIGNMENT + ',0ah,0dh db ' + ELECTRONIC CLOCK + ',0ah,0dh db ' + Design by Kevin & Ray + ',0ah,0dh db ' + version:1.0 + ',0ah,0dh db ' + + ',0ah,0dh db ' + + ',0ah,0dh db ' + Press ESC button to quit + ',0ah,0dh db ' +-------------------------Oooo----------------+ ','$' mess2 db 'The time is now:',0ah,0dh,'$' t_buff db 20 ;在数据段开辟一时间显示缓冲区 data ends stack segment db 100 dup(?) stack ends code segment assume cs:code,ss:stack,ds:data main: call clear ;调用清屏子程序 display: ;----------------------------时间显示部分-------------- mov ax,seg data mov ds,ax mov bx,offset t_buff ;送t_buff的偏移地址到BX mov ah,2ch ;调用DOS时间调用功能,功能号:2cH,小时,分钟,秒数分别保存在CH,CL,DH中 int 21h mov al,ch ;小时数设定 mov ah,0 call bctd ;调用进制转换子程序 push ax and al,0f0h ;选取al高四位 mov cl,4 ;设置右循环的次数 rol 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 push ax and al,0f0h mov cl,4 rol al,cl or al,30h mov [bx],al inc bx 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 push ax and al,0f0h mov cl,4 rol al,cl or al,30h mov [bx],al inc bx pop ax and al,0fh or al,30h mov [bx],al inc bx ;---------------------------------------------------------------------- mov al,'$' ;将字符串的结束位送至显示缓冲区的最后一位 mov [bx],al ;------------------------------------------------------------------------ push bx ;置光标位置 ,AH=2,BH=0,DH跟DL分别为行号与列号,并入栈保护BX mov ah,2 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,0 mov dl,0 int 10h pop bx lea dx,mess1 mov ah,9 int 21h 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 ;----------------------------- call delay1 mov ah,1 ;按任意键结束,调用键盘I/O中断功能号1,获取键值到AL int 16h cmp al,1bh jz quit ;是ESC键的话就跳转 jmp display quit: mov ah,4ch int 21h ret ;------------------------------- 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 ;交换高,低八位 adc al,al daa xchg al,ah loop bctd1 ;循环,次数保存在CX里 ret bctd endp ;------------------------------------------- clear proc near push ax ;入栈保护现场 push bx push cx push dx mov ax,0600h;ah=06(滚动)al=00(全屏空白) mov bh,3fh ;背景颜色(3),白色前景(f) sub cx,cx mov dx,5f5fh int 10h pop dx ;出栈恢复现场 pop cx pop bx pop ax ret clear endp ;----------------------------------------- delay1 PROC ;精确延迟时间子程序 MOV DX,04ffh ;循环次数 up: XOR CX,CX a: NOP LOOP a DEC DX JNZ up RET delay1 ENDP ;---------------------------- code ends end main 程序运行截图:- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 电子 时钟 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文