《微机接口课程设计倒计时牌.docx》由会员分享,可在线阅读,更多相关《微机接口课程设计倒计时牌.docx(28页珍藏版)》请在第壹文秘上搜索。
1、微机原理与接口技术课程设计题目名称:倒计时牌学生姓名:学号:专业年级:指导教师:_时间:1、题目及要求:11.1 题目:倒计时牌11.2 要求:12、总体设计:12.1. 设计思路:212.2. 2.功能设计:12.3. 总体结构图13、详细设计:21. 1显示功能模块2.3. 1.1日期显示功能24. 1.2时间显示35. 1.3倒计时显示46. 1.4主要功能子函数43.2控制功能模块43.2.1 日期和时间的获取和格式化43.2.2 警报提示功能模块53.2.3 倒计时时间日期的设定64、系统评价75、心得体会76、参考文献:71 .题目及要求:1.1 题目:倒计时牌1.2 要求:实现日
2、历功能;显示距倒计时时刻还有多长时间(显示天、时、分、秒)扩展功能:实现倒计时的时间人为设定2 .总体设计:2.1 设计思路:根据题目要求,本程序的实现途径是通过获取系统时间,将其以存放到定义的时间变量中,然后按照设计好的规那么将其映射到相应的图形显示,利用系统中断将其输出到屏幕上,同时定时对其进行刷新,已到达时间变化的目的。对于倒计时功能,首先获取用户设定的倒计时时间,然后以此时间为根底,通过本程序中设计的倒计时算法,实现时间日期的倒计时显示。当计时时间变为零时,调用闹铃程序,输出响铃,给与用户提示信息。2.2 功能设计:本倒计时牌课程设计以汇编语言知识为根底,使用到局部接口芯片。主要实现日
3、期、时间、倒计时的图形显示。最长可倒计时100天,可精确显示倒计时的天数、小时、分钟、秒数。同时可以实现人为倒计时的时间设定。当到达目标时间,给出警告信息。主要功能模块如下:(1)日期显示模块:实现系统时间的获取和存储,并将时间以图形方式刷新输出到显示器,设计过程中主要任务是将系统日期格式化存储显示。(2)时间显示模块:功能类似日期显示模块,通过系统调用获取系统时间,同时输出显JO(3)倒计时模块:用户自定义计时时间,程序根据设定的倒计时初始时间,定期刷新显示剩余时间,并在到达指定时间时给出警报提示。(4)警报模块:当系统设定的倒计时时间变为零的时候,产生警报信号。2. 3总体结构图本程序的总
4、计结构主要包含一下几个功能模块,其总体结构图如图2-1所示,功能比拟简单,并且个模块之间的关联性小,程序的耦合读性较低。倒计时程3,详细设计本程序主要分为两大模块,显示模块和控制模块。这样就实现了显示和控制的别离和独立。可以方便的通过控制更改显示的方式。显示模块主要完成从已经获取的时间和日期变量中提取独立的数字,并自动查找其在图形数字数组中的位置,将其打印输出。控制模块的主要任务之一是调用系统的BIOS中断获取系统时间和日期,并将数字信息并通过除十(年份格式化时使用了100O和IoO)取余格式化到存储时间的变量中。同时该模块接受用户录入的倒计时初始时间,并将其保存,以此作为基数进行借位自减,直
5、到变为零,然后警报模块输出警报信号响应。3. 1显示功能模块4. 显示模块可分为日期显示功能和时间显示功能以及倒计时显示功能,其中日期显示功能和时间显示功能设计方法类似,倒计时设计难点是实现借位倒数方式的显示控制。其中模块的详细设计如下所述。5. 1.l日期显示功能日期显示模块的目的是将已经格式化的数据从变量中取出,并打印输出。在程序中DlSP中描述定义,其详细说明如下。首先使用从Disptime中取出其中年月日的各位,用其值乘以图形数字表中每个数字定义的长度,从而确定该数字在数字表中的位置,按此流程顺序输出显示,同时在口期间隔处输出。模块详细流程图如图3-1所示。图3-1日期显示时间显示时间
6、显示的任务是将已经格式化的数据从时间变量中取出,并打印输出。在程序中DlSPJnME中描述定义,其详细说明如下。首先使用从DISPDTE中取出其中时分秒的各位,用其值乘以图形数字表中每个数字定义的长度,从而确定该数字在数字表中的位置,按此流程顺序输出显示,同时在时间间隔处输出。图3-2时间显示倒计时显示模块倒计时显示模块主要涉及的内容是倒计时算法,在倒计时过程中,从最低位开始,判断倒计是否为零,假设为零需向高位借位;反之,正常进行自建任务。一旦向高位借位,有需要判断高位是否为零,假设高位为零那么无法借位,需要进一步向高位递归;否那么当高位借位以后,借位对象要被赋予适当的初值。主要功能子函数(I
7、)DlSPCOUNT子函数功能:显示倒计时时间2. )DlSP子函数功能:显示日历,包括时间和日期。3. 2控制功能模块控制模块包含日期获取和格式化、时间获取和格式化、警报功能、倒计时时间设定、日期和时间设定。时间和日期的获取和格式化的设计方法也是相近的,在设计过程中主要的模块详细设计如下所述。日期和时间的获取和格式化日期和时间的获取和格式化可用以下流程图来描述,此处使用时间来做解释说明。该模块的流程图如图3-4所示。图3-4日期获取和格式化4. 2.2警报提示功能模块本功能模块主要是使用PC机提供的BEEP子程序,通过8253/54定时器,产生指定频率的声音来实现的。警报过程用可输出一段音乐
8、,主要过成如下描述。(I)频率:BEEP子程序只能产生896HZ的声音。(2)时间:BEEP产生的声音的持续时间只能是0.5S的倍数,如果想让持续的时间更易于调整,可以通过8253/54来到达降频的目的。该模块的详细流程图如图3-5所示.3-5警报模块功能流程3.2.3倒计时时间、日期设定本程序可以实现倒计时功能的认为设定,以及显示的系统时间的人为设定。灵活的改变时间和日期。功能流程图如图3-6所示3-6倒计时时间设定4、系统评价本系统根本完成了设计要求,能够准确的显示系统时间和日期,以及倒计时时间,同时可以人为设定系统时间、日期和倒计时日期,功能相比照拟简单,容易实现,而且数字显示采用的是文
9、本模式下的图形显示,具有良好的可视性。但是本系统仍有很多不确定,功能没有自己想象中的完善,而且界面设计不够友好。5、心得体会在做此课程设计时,开始我没有理解好出题意图,使用了不是很了解的单片机进行的仿真实验。后来通过查阅大量资料和自己的努力,用所学知识实现。在课程设计的过程中,我把汇编学到的知识回忆了一遍,常用的命令格式,常用的中断调用,如何创立宏,如何创立子程序等等,很多内容都在不知不觉中记了下来。这几学期开了很多们专业课程,我一直在努力把所学的知识应用到实践中,能让自己在实践中体会“拥有的快感。在此次课程设计中,相对以往来说,我学习到了一些好的思想,比方程序模块化,让程序的流程更加清晰,低
10、耦合,可以在模块的修改下更方便,还有比方迭代开发的思想,在设计中,我先从最根本的操作做起,等到测试成功以后,再对模块进行功能扩展。总体而言,此次课程设计给了我很大的启发,尤其是思想,但是也存在缺陷的地方,今后,我会更加努力完善。6、参考文献:1IBM-PC汇编语言程序设计沈美明温冬婵清华大学出版社2微型计算机技术及应用(第4版)戴梅萼史嘉权清华大学出版社源程序DATASEGMENTDispdatedboo,oo,oo,oo,7,oo,oo,7,oo,oo,S,Dispcountdboo,oo,-,oo,oo,i,oo,oo,i,oo,oo,S,Disptimedboo,oo,m:,oo,oo,
11、:,oo,oo,$COUNT_FLAGDBOODISP_WELCOMEDBDAOJlSHIPAl”,ODH,OAH,DISP_CHOOSEDB,SETCOUNTTIMESEXIT:Q”SHOW.RESETDBTHERESETTIMEISMUS_FREQDW330,294,262,294,3DUP(330)DW3DUP(294),330,393,392DW330,294,262,294,4DUP(330)DW294,294,330,294,262,JMUS_TIMEDW6DUP(25),50DW2DUP(25,25,50)DW12DUP(25),100DIGITDB,_,0DH,0AH,SDB,
12、ODH,OAH,SDBODHQAH,*DB”,ODH,OAH,巧”DB,|,0DH,0AH,$DB|,0DH,0AH,$DB,_,ODH,OAHS,DB,J,ODH,OAH,SmDB_,ODH,OAH,S,DB,_,0DH,0AH;$MDB,J,ODH,OAH,SDB,J,ODH,OAH,SmDB,ODH,OAH,SDBODH,OAH,*DBODH,OAH,SDB_,ODH,OAH,S,DB_,ODH,OAH,S,DB,J,ODH,OAH,SDB,_,ODH,OAHS,DB,L,ODH,OAH,SmDB”|”,ODH,OAHJ$”DB,_,0DH,0AH;$MDBODH,OAH,SDB|,0D
13、H,0AH,$DB,_,ODH,OAH,SmDBODH,OAH,*DBODHQAH,*DB_,ODH,OAH,S,DB”|”,ODH,OAHJ$”DB,J,ODH,OAH,SDATAENDSSETFMACRODHl,DLlPUSHAXPUSHBXPUSHDXMOVAH,211MOVBH,OHMOVDH,DHlMOVDL,DLlINTIOHPOPDXPOPBXPOPAXENDMCLEARSCREENMACROCHI,CLl,DHl,DLl,BHlMOVAH,6MOVAL,OMOVCH,CHlMOVCL,CLlMOVDH,DHlMOVDL,DLlMOVBH,BHlINTIOHENDM;1.倒计时程
14、序主程序CODESEGMENTPARACODE,ASSUMECS:CODE,DS:DATA,ES:DATAMAINPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXSETFOBH,IBHCLEARSCREEN08H,15H,10H,3AH,0FHMOVDX,OFFSETDISP_WELCOMECALLPRINTSETFOEH,19HMOVDX,OFFSETDISP.CHOOSECALLPRINTCallgetdateCallgettimecircle:MOVAH,01HINT21HCMPAL,EJZBEGINCMPAL,SJZSETTIMECMPAL,QJZQUITSETTIME:CLEARSCREEN00H,00H,18H,4FH,0FHSETF09H,14HMOVDX,OFFSETSHOW.RESETCALLPRINT;CALLSET_TIMECALLSET.COUNTJMPBEGINQUIT:JMPNEXTBEGIN:JMPBEGIN_1BEGIN_1CLEARSCREENOOH,OOH,18H,4FH,62HCLEARSCREEN02H,09H,12H,48H,48HCLEARSCREEN03H,0BH,l1H,46