1数字钟设计—XXX指导老师:班级:学院:2课题设计概述课题设计要求和分析设计创新点1234设计心得及参考文献3一、课题设计概述1.课题背景:普通意义上的数字钟是一种用数字电路技术实现时、分、秒计时的装置。具有一定的智能化和集成化,是现代人办公、生活、学习的好帮手,具有广阔的市场前景。传统数字钟的设计要经过设计方案提出、方案验证和修改3个阶段。需要研究人员采用搭接实验电路的方法进行,需要经历反复修改。而利用EDA工具,电子设计师可以方便地去设计并仿真数字电子钟,做出PCB版图。整个过程大量的工作均可在计算机上完成。节省了大量的人力物力财力,大大降低设计风险、缩短产品开发周期、提高设计效率和产品质量。4一、课题设计概述2.课题描述:包括两个方面,一是计时,二是显示。(1)计时方面:利用82C54作定时器,只需将定时的时间除以55ms(1/18s),得到一个调用软终端INT1CH的次数n,然后对调用软终端INT1CH进行计数,计满n次,就是所需的定时时间。(2)显示方面:利用DOS系统功能调用INT21H的9号功能,可以将秒、分、时计时单元的内容送到屏幕显示出来。5二、课题设计要求和分析1.课题设计要求(1).能在屏幕上显示分:秒(mm:ss);(2).当用户按下非空格键时候,数字钟开始计时,并显示00:00,每过1秒,ss增加1,到60秒mm增加1,到60分就是1个小时。经过1小时后又回到00:00重新计数;(3).当用户按下空格键时,程序返回DOS,数字钟消失。6二、课题设计要求和分析2.课题设计分析2.1硬件设计因为是利用系统的定时器资源,故不需要设计额外的硬件电路。2.2软件设计(1)总述:由于初始化程序段已经由系统做好了,故软件设计部分的程序只包括主程序和中断服务程序两大部分。。7二、课题设计要求和分析2.2软件设计(2).主程序:包括对INT1CH向量的获取、修改和恢复,数字钟的显示、启动和停止退出控制。主程序的主体是一个循环结构,判断有无键按下,若有键按下,则判断是否为空格键,若是空格键则退出循环,转至程序结束处理;否则,显示数字钟的mm:ss。(3).服务程序:主要实现计数单元加1,以及对秒、分进位进行调整。服务程序不写中断结束指令,以IRET指令返回。8二、课题设计要求和分析2.2软件设计(2).主程序:包括对INT1CH向量的获取、修改和恢复,数字钟的显示、启动和停止退出控制。主程序的主体是一个循环结构,判断有无键按下,若有键按下,则判断是否为空格键,若是空格键则退出循环,转至程序结束处理;否则,显示数字钟的mm:ss。(3).服务程序:主要实现计数单元加1,以及对秒、分进位进行调整。服务程序不写中断结束指令,以IRET指令返回。910二、课题设计要求和分析主程序:S_SEGSEGMENTSTACKDB256DUP(0)S_SEGENDSD_SEGSEGMENTCOUNTDB0TENMDB‘0’MINUTEDB’0’DB‘:’TENSDB’0’SECONDDB‘0’,’$’D_SEGENDSC_SEGSEGMENTASSUMECS:C_SEG,SS:S_SEGSTART:11二、课题设计要求和分析MOVAX,D_SEGMOVDS,AXCLI;先关中断,以获得INT1CHMOVAX,351CH;调用35H号系统功能INT21H;返回ES:BX=中断向量(段:偏移)PUSHBX;栈中保存INT1CH原中断向量PUSHESSTI;开中断,以使键盘工作MOVAL,0;等待键按下INT16HCLI;关中断MOVDX,SEGTIMER;置新中断向量MOVDS,DXMOVDX,OFFSETTIMER;DS:DX=新中断向量(段:偏移)MOVAX,251CHINT21HSTI;再开中断,以使键盘和INT1CH工作12二、课题设计要求和分析CHECK:MOVAH,1;检查有无键代码INT16HJZDISPLAY1;无码可读,就跳转显示MOVAH,0;无码可读,就要读取它INT16HCMPAL,51H;是’Q’吗JEOVER;是,返回DOSDISPLAY1:MOVAX,D_SEG;不是,就显示MOVDS,AXASSUMEDS:D_SEGLEADX,TENM;DS:DX=显示字符串地址MOVAH,9;显示mm:ss.msmsINT21HJMPCHECK;返回CHECK,循环继续13二、课题设计要求和分析OVER:CLIPOPDS;由栈中取回INT1CH原向量POPDXMOVAX,251CH;设置INT1CH,恢复原向量INT21HSTI;开中断MOVAX,4C00H;返回DOSINT21H14二、课题设计要求和分析中断服务程序TIMERPROCFARPUSHAXMOVAX,D_SEGMOVDS,AXASSUMEDS:D_SEGINCCOUNT;计时单元增1CMPCOUNT,18;到1秒否JLEXIT;不到,则返回MOVCOUNT,0;到,则计时单元清0INCSECOND;秒计时单元增1CMPSECOND,’9’;到10秒否JLEEXIT;不到,则返回MOVSECOND,0;到,则秒计时单元清0INCTENS;10秒计时单元增1CMPTENS,‘6’;到60秒否JLEXIT;不到,则返回15二、课题设计要求和分析MOVTENS,‘0’;到,则10秒计时单元清0INCMINUTE;分计时单元清0CMPMINUTE,‘9’;到10分否JLEEXIT;不到,则返回MOVMINUTE,‘0’;到,则分计时单元清0INCTENM;10分计时单元增1CMPTENM,‘6’;到60分否JLEXIT;不到,则返回MOVTENM,‘0’;到,10分计时单元清0,重新开始计时EXIT:POPAXIRETTIMERENDPC_SEGENDSENDSTART16三、设计创新点将计时过程巧妙转化为计数过程,从而实现本功能。17四、设计心得及参考文献1.设计心得(1)本例是8253/8254作定时器使用的典型。其计时过程,实际上是计数过程,从1/18s1s10s1min10min1h,这样一步步累加的过程。(2)本例是利用系统定时器,故不作硬件设计,也不作初始化软件编程。(3)在INT1CH的服务程序中,未发中断结束指令。这是编写INT1CH服务程序和编写可屏蔽硬件中断服务程序的不同之处。18四、设计心得及参考文献2.参考文献[1]郭小芳,佘明辉.基于单片机的多功能数字钟系统设计与分析[J].电子技术设计与应用,2011(3):35-38[2]朱晓红.基于EDA技术的数字钟设计与实现[J].电子设计工程,2011,19(4):170-172.[3]陈梓城.电子技术实训[M].北京:机械工业出版社,1999:369-374.[4]刘睿劼.基于FPGA的多功能数字钟设计[J].电能与电信,2009(5):95-101[5]高锐.基于FPGA的数字钟电路设计.中国制造业信息化,2012,41(9):57-64