




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机技术数字钟电路的设计(论文) 单片机课程综合实践报告课题名称: 基于单片机技术数字钟电路的设计 系 部: 电子工程系 班 级: 电子08C3 姓 名: 王龙梅 学 号: 082211302 指导教师: 刘训非 臧华栋 2010年 10 月 5 日目录一 、 摘要 3二 、 引言 4三 、 数字钟硬件框图 5四 、 程序整体设计 51. 总体介绍 52. 数据调整 63. 中断方式注意的问题 74. 定时准确性的讨论 7五 、 基于以上 设计如下数字钟71. 数字钟的操作如下 72. 流程图 83. 元器件清单 114. 电路设计及其工作原理 12 4.1控制部分 12 4.2数码管显示部分 13 4.3按钮与开关部分 14六 、 结束语 16七 、 致谢 16主要参考文献 16 附录(数字钟控制程序)17 摘要 近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。本文介绍了基于单片机的数字钟的设计,详细讨论了它从软件上实现的过程,重点在时钟调整的方式:查询和中断的比较,然后,对数字钟的稳定性和精确性作了相关的讨论。在文章的最后,给出了采用中断方式实现的数字钟的源程序。 关键字:单片机,数字钟,数据缓冲区,中断,定时 Abstract In recent years, with computers in the in filtration and the development of large-scale integrated circuits. SCM application is steadily deepening, as it has strong function, small size, low power dissipation, low prices, reliable, easy to use features, it is particularly suited to and control of the system, increasingly widely used in automatic control, intelligent instruments, gauges, data acquisition, military products and household appliances, and other areas, is often microcontroller as a core component to use, In light of specific hardware architecture, and application-specific software features object combine to make perfect. In this paper, based on single-chip digital clock design, discussed in detail from the software realize the process, focusing on the clock adjust in the way: queries and disruption of comparison, then, on the digital clock made of the stability and accuracy related discussion. In the last article, give way using interrupted realize the source of the digital clock. Keywords: MCU, digital clock, data buffer, interruption, timing, elimination 基于单片机的数字钟电路的设计 一、 引言 在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全”,单片机的学习和研究是对微机系统学习和研究的简捷途径.本系统采用单片机AT89C51控制,以AT89C51为核心,它完成整个系统的信息处理及协调功能,本次设计我们选用ATMEL公司的AT89C51芯片,其功能强大,兼容性好,还支持软件选择的空间和掉电两种节电方式。本设计的软件,硬件都采用模块化的设计方法,提高了设计的效率。 本次设计通过对一个实现定时、时钟显示等功能的时间系统的设计,其中结合了数据转换显示、数码管显示、动态扫描、单片机定时中断等技术。系统由AT89C51、LED数码管、按键、三极管、74LS47、74LS138、LG5641、LG5621、电阻等组成。能实现时钟时、分、秒的显示。也具有时间设置、复位开关。文章后附有电路图、程序清单。2、 数字钟硬件框图: 本文所设计的数字钟电路是采用单片机控制的,采用六位数码管显示,三极管驱动,图1所示的是数字钟原理框图: 段码 8051六位数码管显示电路按键k1,k2,k3speaker消抖电路驱动位选图 1图 1 段码 8051六位数码管显示电路按键S1、S2speaker 数字电路驱动位选图 1图1数字钟原理框图3、 程序整体设计:定时模块,显示模块,数据调整模块,状态调整模块。 1、 总体介绍:此部分主要介绍定时模块,和显示模块。 定时部分采用经典的定时器定时。它实现了数字钟的主要部分,和秒表的主要部分,以及产生报时信号,定时设置。显示模块是实现数字钟的又一重要部分,其模块的独立程度直接影响到数字钟的可视化程度。在此部分的设计中,设置专用显示数据缓冲区40h-45h,与分,时及其他数据缓冲区数据区别,在其中存放的是显示段码,而其他缓冲区存放的是时间数据。在显示时,首先将时间十进制数据转化为显示段码,然后送往数码管显示。显示段码采用动态扫描的方式。在要求改变显示数据的类别时,只须改变R0(指向数据缓冲区的指针)指向的十进制数据缓冲区即可。2、数据调整:数据调整有多种方式。 (1)、可以直接进入相关状态进行有关操作。 (2)、将调整分两步,先进入状态,然后执行操作,这两步分别由两个键控制。方式一、比较直接,设计思想也比较简单,但是,这种方式存在操作时间和控制键数目的矛盾。如果用比较少的键,那么可能会在进入状态后处于数据调整等待状态,这样会影响到显示的扫描速度(显示部分可以采用8279芯片来控制,可以解决此问题)。 当然在这种方式下,还可以使用多个状态键,每个状态键,完成一个对应数据的调整。如果采用二的方式,就不会出现这种情况。因为状态的调整,与状态的操作可以分别由两个键控制,其状态的调整数可以多达256个(理论上),操作的完成是这样的,一键控制状态的调整,一键控制数据的调整(具体操作如图2)。以上两种方式的实现都可以采用查询和中断的方式。两种方式必须注意的问题是两者进行相关操作的过程不能太长否则会影响显示的扫描。利用查询的方式,方法传统,对此就不作过多的讨论,以下是采用中断的方式实现的数字钟的一些讨论和有关问题作的一些处理。基于以上的讨论可以设计如下:将调整分为状态调整和数据调整两部分,每次进入中断只执行一次操作,然后返回,这样,就不必让中断处于调整等待状态,这样,可以使中断的耗时很小。将定时器中断的优先级设置为最高级,那么中断的方式和查询的方式一样不会影响到时钟的记数。基于以上的讨论,数据修改的具体操作如下。状态2状态3状态4状态5状态6R1-HOURR1-FSR1-SSR1-NULL状态1R1-MBF 图 2在状态进入后,调整指针的指向如右图所示:在右图中R1表示指向数据缓冲区的指针,它主要是为数据的调整而设立的,在图中:MBF 、HOUR、FS、SS,分别表示时钟的分、时,定时设置分、时,的数据缓冲区。状态5是秒表进入状态,状态6是时钟正钟显示状态。 在程序中R1为专用指针,它的值只在状态调整时改变,每次运行图示模块,只改变一次状态,就跳出程序。调整数据只须改变R1中的数据即可。3、中断方式应注意的问题 采用中断的方式,最好将定时器中断的优先级设置为最高级,关于程序数据的稳定性应注意两个问题:一、在低优先级中断响应时,应在入栈保护数据时禁止高优先级的中断响应。二、在入栈保护有关数据后,对中断程序执行有影响的状态位、寄存器,必须恢复为复位状态的值。例如,在以下程序中,由于用到了十进制调整,所以在中断进入时,将PSW中的AC、CY位清零,否则,十进制调整出错。4、定时准确性的讨论程序中定时器,一直处于运行状态,也就是说定时器是理想运作的,其中断程序每隔0.1秒执行一次,在理想状态下,定时器定时是没有系统误差的,但由于定时器中断溢出后,定时器从0开始计数,直到被重新置数,才开始正确定时,这样中断溢出到中断响应到定时器被重新置数,其间消耗的时间就造成了定时器定时的误差。如果在前述定时器不关的情况下,在中断程序的一开始就给定时器置数,此时误差最小,误差大约为:每0.1秒,误差712个机器周期。当然这是在定时器定时刚好为0.1秒时的情况,由以上分析,如果数字钟设计为查询的方式或是在中断的方式下将定时器中断设置为最高级,我们在定时值设置时,可以适当的扣除9个机器周期的时间值。但如果在中断的情况下,没有将定时器中断设置为最高级,那就要视中断程序的大小,在定时值设置时,扣除相应的时间值。四、基于以上,设计如下数字钟:(1)数字钟的操作如下: 按键KEY0状态1:KEY0=1,数字钟正常时钟显示状态。状态2:KEY0=2,调整数字钟的分数据。状态3: KEY0=3, 调整数字钟的时数据。状态4:KEY0=4,数字钟的定时设置分值。状态5:KEY0=5,数字钟的定时设置时值。状态6:KEY0=6,秒表进入状态。说明:状态N表示KEY0键按下N次。 在进行调整或设置状态时,显示对应状态的数据并且对应的各调整位数码管的DP点亮。这样可以使调整更加可视化。 按键KEY1完成加一操作,和秒表的清零操作。在进入了时间调整状态或定时设置状态时,按此键可以加一,或在秒表启动后处于停止状态时,按此键可以完成清零操作。 按键KEY3秒表启动和停止键,此键必须在秒表状态进入了之后才有效。即是:KEY0=6时有效。定时时间到或整点时,时钟输出报时脉冲。(2)流程图:在以下流程图中只描述了基本的功能,如给显示位加点,中断程序状态调整,加一操作,显示状态的切换,在流程图中都没有描述。但其设计就是基于以上介绍的显示指针,和状态指针的思想。在程序中用R0,R1充当此指针。程序设计的基本流程图如下:开始各缓冲区初始化对定时器,中断设置开始计数显示缓冲单元首址送R0,扫描初值送R2取显示单元值,转为段显码送段数据口 扫描值送位数据口P1 延时一小段时间 显示单元地址加一扫描值右移一位 显示状态是否切换查询让调整位的DP点亮时钟数据显示区 定时设置数据显示单元 秒表数据单元分调整?在显示的低位断码上加80H,即点亮DP。YN查询下一个调整位点亮DP的处理程序取断码送到显示缓冲区单元6位显示完?YN三个要显示的状态图 5报时模块标志位为1?秒表计数单元分值清零时值加一时值等于24?时值清零Y时值比较BS=1?Y标志位为1?中断入口定时模块定时器置初值时间计数单元加一计数值等于10?计数值单元清零秒值加一秒值等于60?秒值清零分值加一分值等于60?YYYNY分,时设定值等于时钟值?标志位 BS置1,输出报时脉冲Y分值比较定时器置初值结束以定时器定时频率为报时频率输出,做法是:在每个定时中断时,取反一个输出引脚图 6(3)元器件清单: 元件清单序号元件名称型号规格元件封装功能设计序号1电阻2.02kAXIAL0.3限流R22电阻2.03kAXIAL0.3限流R53电阻1.98kAXIAL0.3限流R84电阻2.03kAXIAL0.3限流R115电阻2.02kAXIAL0.3限流R156电阻2.01kAXIAL0.3限流R187电阻5.02kAXIAL0.3限流R38电阻5.02kAXIAL0.3限流R69电阻5.04kAXIAL0.3限流R910电阻5.06kAXIAL0.3限流R1211电阻5.03kAXIAL0.3限流R1612电阻5.03kAXIAL0.3限流R1913电阻100.4AXIAL0.3限流R114电阻101.4AXIAL0.3限流R415电阻103.4AXIAL0.3限流R716电阻100.3AXIAL0.3限流R1017电阻101.2AXIAL0.3限流R1418电阻100.9AXIAL0.3限流R1719电阻0.202kAXIAL0.3限流R1320电阻0.999kAXIAL0.4限流R2021瓷片电容27pFRAD0.2C1122瓷片电容28pFRAD0.2C923电解电容92.7uF/10VRB.2/.4C624电解电容87.6uF/10VRB.2/.4C825电容97.7nFRAD0.2C1026电容97.9nFRAD0.2C527稳压二极管1.045DIODE0.4稳定电压D128晶振11.0592MHzXTAL-1单片机时钟X129排阻10KSIP9上拉电阻RN130两位数码管LG5641BH(共阳)DIP-12显示数字U131四位数码管LG5621DH(共阳)DIP-10显示数字U332点触开关外观完好接触良好AN控制闭合断开S1,S233接插件DB9DB-9/M串口通信JP134接插件CON3SIP3电源接入JP235接插件CON3SIP3电源引出JP3(4)电路设计及其工作原理: 4.1控制部分:AT89C51单片机AT89C51单片机概述:AT89C51单片机是国Atmel公司生产的采用高性能的静态89C2051设计,是一个低电压,高性能CHMOS 8位单片机,片内含4kbytes的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。 AT89C51是一个功能强大的单片机,但它只有40个引脚,32个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。此外,由于器件采用了动态设计,可提供很宽的操作频率范围(频率0HZ24MHZ)。即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态。省电模式中,片内RAM将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。在本设计中AT89C51的时钟电路采用内部时钟方式,此方式是在XTAL1和XTAL2两端跨接晶体或陶瓷谐振器。在本设计中XTAL1和XTAL2两端跨接12MHz晶体振荡器,其发出的脉冲直接送入内部时钟电路。本设计采用按键手动复位的按键电平复位。 图1-1 AT89C51时钟电路连接 图1-2 89C2051外部复位电路设计4.2数码管显示部分 本设计中所涉及数码管皆采用共阴数码管,显示电路为动态扫描式显示。 图1-3 数码管位选原理 数码管显示位选:AT89C51的P0.4P0.6输出控制数码管位选,在本次设计的电路中,因为是使用的是共阳数码管,因此由AT89C51的P0.4P0.6的输出控制74LS244,使之输出相应的端口为高电平,控制数码管点亮。4.3 按钮与开关部分 模块通电后,6位数码管显示12:59:50秒,正常运行,长按“S2”键(约3秒)松开,第一第二位数码管闪烁,此时轻按“S2”键,可设置“时” (023),再长按“S2”键(约3秒)松开,第三第四位数码管闪烁,此时轻按“S2”键,可设置“分” (059), 再长按“S2”键(约3秒)松开,第五第六位数码管闪烁,此时轻按“S2”键,可设置“秒” (059),如此循环。设置完成后再长按“S2”键(约3秒)松开即进入正常运行状态。图1-4按键电路图1-5 电路图图1-6 PCB图五、结束语:本设计在刘训非老师和臧华栋老师的悉心指导和严格要求下完成,从课题选择、方案论证到具体设计和调试,无不凝聚着刘老师和臧老师的心血和汗水,在三年的大专学习和生活期间,也始终感受着导师的精心指导和无私的关怀,我受益匪浅。在此向刘老师表示深深的感谢和崇高的敬意。 不积跬步何以至千里,本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向苏州工业职业技术学院,电子工程系的全体老师表示由衷的谢意。感谢他们对我们一星期实训的耐心指导,让我们从中学到了很多很多.六、 致谢: 长达一星期的单片机实训课终于结束了,我的实践设计课题也终将告一段落。但由于能力和时间的关系,总是觉得有很多不尽人意的地方。这也让我了解到做一件事情,不必过于在乎最终的结果,可贵的是过程中的收获。不过在此非常感谢刘训非老师和臧华栋老师对我们不厌其烦的进行细心指点。刘老师首先细致地为我解题;当我迷茫于众多的资料,不知该如何下手时,刘老师又为我提纲挈领,梳理脉络,使我确立了本文的框架。论文写作中,每周都得到刘老师的指点。从框架的完善,到内容的扩充;从行文的用语,到格式的规范,刘老师都严格要求,力求完美。我再次为刘老师和臧老师的付出表示忠心的感谢!七、主要参考文献(刊物名、按作者、出版社列出):1 单片机原理及应用 李建忠 编著 西安电子科技大学出版 2002年2月2 单片机中级教程 张俊谟 编著 北京航空航天大学出版 2000年1月3 单片机原理与应用技术 江力 编著 清华大学出版社4、8051单片机课程设计实训教材 陈明荧 编著 清华大学出版社5、单片机原理及接口技术 余锡存、曹国华 编著 西安电子科技大学出版社6、MCS-51单片机应用设计 张毅刚、修林成、胡振江 编著 哈尔滨工业大学出版社7、 /hust/course/shuzi/szljjy7-1-2.htm8、24八、附录(数字钟控制程序): DATA_SEGSEGMENTDATA;定义一个DATA段 STACKSEGMENTIDATA;定义一个堆栈段 BIT_SEGSEGMENTBIT ;定义一个位段 bKeyBITP1.0; IdleConstEQU50 RSEG STACK DS10H ;16个字节的堆栈 RSEG DATA_SEG ;开始DATA_SEG段 buffer: DS 6;6个字节的显示缓冲区 ms50:DS1 ;50ms计数 ms250:DS1 ;250ms计数 sec:DS1 ;秒 min:DS1;分 hour:DS1;时 ms50_1:DS1;存放多少个50ms,用于记录按键时间 SetPos:DS1;设置位置 SetPos1:DS1;需要屏蔽的数码管 RSEGBIT_SEG bIdle:DBIT1;省电模式 bTwinkle:DBIT1 ;当前设置位置闪烁 CSEGAT0;相当于小汇编的ORG LJMPMAIN CSEGAT000BH ;定时器T0中断处理入口地址 LJMPINT_Timer0 CSEGAT001BH;定时器T1中断处理入口地址 LJMPINT_Timer1 CSEGAT0100HMAIN: MOVSP,#STACK-1;堆栈 CLRbIdle CLRbTwinkle MOVms50,A;清零ms50 MOVms250,A MOVhour,#12;设定初值: 12:59:50 MOVmin,#59 MOVsec,#50 MOVTH0,#60;定时中断计数器初值 MOVTL0,#176;定时250ns MOVTMOD,#11H;定时器0,1:方式一 MOVIE,#8AH;中断初始化, EA=1,ET0=1, ET1 = 1 SETBTR0;开定时器T0 MOVSetPos,#0FFH;MAIN1: ACALLAdjustBuffer;调整显示缓冲区MAIN2: ACALLKey;调用键扫描 ACALLDisplay JNBF0,MAIN2 CLRF0 SJMPMAIN1;需要刷新显示时间;中断服务程序INT_Timer0: MOVTL0,#176+5 MOVTH0,#60 PUSH01H MOVR1,#ms50 INCR1;50ms单元加1 CJNER1,#5,ExitInt MOVR1,#0;恢复初值 INCR1 MOVA,SetPos CJNEA,#0FFH,INT_Timer0_1 SJMPINT_Timer0_2INT_Timer0_1: CPLbTwinkle SJMPExitInt1INT_Timer0_2: INCR1 CJNER1,#4,ExitInt MOVR1,#0;恢复初值 INCR1 INCR1;秒加1 CJNER1,#60,ExitInt1 MOVR1,#0 INCR1 INCR1;分加1 CJNER1,#60,ExitInt1 MOVR1,#0 INCR1 INCR1;时加1 CJNER1,#24,ExitInt1 MOVR1,#0ExitInt1: SETBF0ExitInt: POP01H RETI ;中断服务程序INT_Timer1: MOVTL0,#176+5 MOVTH0,#60 INCms50_1 RETIHexToBCD: MOVB,#10 DIVAB MOVR0,B INCR0 MOVR0,A INCR0 RETAdjustBuffer: MOVR0,#buffer MOVA,sec ACALLHexToBCD MOVA,min ACALLHexToBCD MOVA,hour ACALLHexToBCD RET;显示Display: JNBbIdle,Display3 RET;省电模式Display3: PUSHB PUSHACC PUSHDPL PUSHDPH PUSH00H MOVR0,#buffer MOVB,#0FEH MOVDPTR,#SEG_TABDisplay1: MOVA,R0 MOVCA,A+DPTR;取段码 MOVP0,A MOVA,B JNBbTwinkle,Display4 ORLA,SetPos1 Display4: MOVP2,A;选种数码管 CALLDelay1ms MOVA,B RLA JNBACC.6,Display2 MOVB,A INCR0 SJMPDisplay1Display2: POP00H POPDPH POPDPL POPACC POPB RETSEG_TAB: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;段码 DB080H,90H,88H,83H,0C6H,0A1H,86H,8EH DB0FFH,0BFH;延时1msDelay1ms: PUSHACC MOVA,#230 DJNZACC,$ MOVA,#230 DJNZACC,$ POPACC RET;设置功能SetFunTab: AJMP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 33288-2025语言培训服务教学人员评价
- 天津幼儿考试试题及答案
- 风险评估模型-第9篇-洞察及研究
- 2025年高校教师资格证之高等教育心理学考试题库(附答案)
- 产品技术协议管理办法
- 警用装备仓库管理办法
- 质量奖战略管理办法
- 行政岗位竞聘管理办法
- 螺栓周转桶管理办法
- 规范财务资产管理办法
- 2024-2029年中国直接半导体激光器行业市场现状供需分析及市场深度研究发展前景及规划战略投资分析研究报告
- 2024年水域救援安全及基础理论知识考试题库(附含答案)
- GB/T 43933-2024金属矿土地复垦与生态修复技术规范
- 2023年考研政治真题(含答案及解析)
- 叉车考试题库模拟试题大全及答案
- 2024电工(三级)职业技能等级认定理论考试复习题库(含答案)
- 锅炉安全培训教材(大全)
- 义齿工厂开设策划方案
- (完整版)中医适宜技术课件
- 开学第一课自信与勇敢
- 《财政与金融》教学教案
评论
0/150
提交评论