您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 51单片机课程设计_电子时钟
课程设计课程名称:单片机课程设计题目名称:单片机电子时钟学院:专业:姓名:学号:指导教师:2010年12月7日1目录一.摘要二.关键词三.正文整体设计思路整体设计系统的硬件设计系统程序设计四.设计总结五.参考文献六.附录附录1硬件电路图附录2课程设计任务书2摘要数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便[4]。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。通过单片机内部的计数/定时器,采用软件编程来实现时钟计数,一般称为软时钟,这种方法的硬件线路简单,系统的功能一般与软件设计相关,通常用在对时间精度要求不高的场合。本设计使用12MHZ晶振与单片机AT89C51相连接,以AT89C51芯片为核心,采用动态扫描方式显示,通过使用该单片机,实现在8个LED数码管上显示时间,通过3个按键实现时间设定功能,并在数码管进行相应显示。软件部分用汇编实现,分为显示、调时等部分。通过软硬件结合达到最终目的。关键词:数字时钟单片机AT89C51动态扫描汇编语言3正文整体设计思路这部分主要介绍工作安排和整体设计的思想。工作过程规划如下:整体设计本数字时钟由单片机复位电路时钟电路显示电路控制电路等几部分组成。熟悉硬件了解各引脚功能分块设计各部分电路将分块的电路组合认真学习单片机汇编语言完成整体电路图确定变成结构和思路综合各程序完成整体程序编辑各个程序模块用Proteus画出电路图调试程序,进行修改对仿真中出现的问题进行改正画出仿真图进行仿真准备器件、搭接电路仿真成功软硬件结合,完成任务书要求验证硬件电路成功进行扩展4系统的硬件设计1.单片机AT89C51该单片机功能强大,不仅能满足设计的需要,也可以在设计要求的基础上进行一些扩展。单片机的结构如下:图3.1.1单片机引脚图在使用时VCC接电源电压,GND接地。P0,P1,P2,P3可作单片机输入控制复位与时钟电路LED显示5为输入或输出端口,RST是复位输入,接复位电路。XTAL1和XTAL2接复位电路。这些可以在硬件设计部分体现出来2.时钟电路在单片机内部有一个振荡器,本设计采用内部时钟方式,以12MHZ石英晶体振荡器和两个30PF的片电容组成外部振荡器,如图所示。片内的高增益反向放大器通过XTAL1和XTAL2外接,作为反馈元件的外部晶体振荡器与电容组成的并联谐振回路构成一个自激振荡器,向内部时钟电路提供振荡时钟。电容的大小对振荡频率有微小影响,可起调节作用。时钟电路设计图3.复位电路AT89C51的RST引脚是复位端。当单片机振荡器工作时,该引脚上出现持续两个机械周期的高电平,就可以实现系统复位,使单片机快速回到初始状态。6复位电路设计图4.74LS245驱动器5.显示电路本设计采用动态显示,即一位一位地轮流点亮8个数码管。7显示电路系统程序设计1.主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有按键按下时,则转入相应的功能程序。定时器/计数器T0中断服务程序T0用于计时,选中方式一,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加一。秒单元加到60则对分单元加一,同时秒单元清0;分单元加到60则对时单元加一,同时分单元清0;时单元加到24则对时单元清0,标8志一天时间计满。在对各单元计数的同时,把他们的值放到存储器单元的指定位置。流程图如下:现场保护,重置初值,启动下一个50ms是开始显示单元清0T0、T1设为16位计数模式允许T0中断调用显示子程序进入功能程序按下键否开始中断返回50ms计数器加一秒单元加一,50ms计数器清0分单元加一,秒单元清0时单元加一,分单元清0时单元清050ms计数器=20?秒单元=60?分单元=60?时单元=24?主程序流程图T0中断服务程序NONONONO92.总程序S_SETBITP1.0;数字钟秒控制位M_SETBITP1.1;分钟控制位H_SETBITP1.2;小时控制位SECONDEQU30HMINUTEEQU31HHOUREQU32HTCNTEQU34HORG00HSJMPSTARTORG0BHLJMPINT_T0START:MOVDPTR,#TABLEMOVHOUR,#0;初始化MOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0MOVTMOD,#01HMOVTH0,#(65536-50000)/256;定时50毫秒MOVTL0,#(65536-50000)MOD256MOVIE,#82H10SETBTR0;****************************************************;判断是否有控制键按下,是哪一个键按下A1:LCALLDISPLAYJNBS_SET,S1JNBM_SET,S2JNBH_SET,S3LJMPA1S1:LCALLDELAY;去抖动JBS_SET,A1INCSECOND;秒值加1MOVA,SECONDCJNEA,#60,J0;判断是否加到60秒MOVSECOND,#0LJMPK1S2:LCALLDELAYJBM_SET,A1K1:INCMINUTE;分钟值加1MOVA,MINUTE11CJNEA,#60,J1;判断是否加到60分MOVMINUTE,#0LJMPK2S3:LCALLDELAYJBH_SET,A1K2:INCHOUR;小时值加1MOVA,HOURCJNEA,#24,J2;判断是否加到24小时MOVHOUR,#0MOVMINUTE,#0MOVSECOND,#0LJMPA1;****************************************************;等待按键抬起J0:JBS_SET,A1LCALLDISPLAYSJMPJ0J1:JBM_SET,A1LCALLDISPLAYSJMPJ112J2:JBH_SET,A1LCALLDISPLAYSJMPJ2;***********************************************;定时器中断服务程序,对秒,分钟和小时的计数INT_T0:MOVTH0,#(65536-50000)/256MOVTL0,#(65536-50000)/256INCTCNTMOVA,TCNTCJNEA,#20,RETUNE;计时1秒INCSECONDMOVTCNT,#0MOVA,SECONDCJNEA,#60,RETUNEINCMINUTEMOVSECOND,#0MOVA,MINUTECJNEA,#60,RETUNEINCHOURMOVMINUTE,#0MOVA,HOURCJNEA,#24,RETUNE13MOVHOUR,#0MOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0RETUNE:RETI;******************************************;显示控制子程序DISPLAY:MOVA,SECOND;显示秒MOVB,#10DIVABCLRP3.6MOVCA,@A+DPTRMOVP0,ALCALLDELAYSETBP3.6MOVA,BCLRP3.7MOVCA,@A+DPTRMOVP0,ALCALLDELAYSETBP3.714CLRP3.5MOVP0,#40H;显示分隔符LCALLDELAYSETBP3.5MOVA,MINUTE;显示分钟MOVB,#10DIVABCLRP3.3MOVCA,@A+DPTRMOVP0,ALCALLDELAYSETBP3.3MOVA,BCLRP3.4MOVCA,@A+DPTRMOVP0,ALCALLDELAYSETBP3.4CLRP3.2MOVP0,#40H;显示分隔符15LCALLDELAYSETBP3.2MOVA,HOUR;显示小时MOVB,#10DIVABCLRP3.0MOVCA,@A+DPTRMOVP0,ALCALLDELAYSETBP3.0MOVA,BCLRP3.1MOVCA,@A+DPTRMOVP0,ALCALLDELAYSETBP3.1RETTABLE:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHDELAY:MOVR6,#1016D1:MOVR7,#250DJNZR7,$DJNZR6,D1RETEND3.软件编译环境:Keil,确保生成.Hex文件4.仿真结果17设计总结经过一周的时间以及对整本教材的知识总结,把课程设计分成了硬件和软件两大模块。总的来说,硬件部分很好入手,电路也教简单,主要涉及的是简单的按键、电容、电阻、晶振和数码管。在软件部分,细分为了按键模块、显示模块、定时/计数模块,最后把几个模块整合在主程序模块中,使得程序简单明了。整个设计过程中遇到的最大问题是软件的编写,由于采用的是汇编语言,其间使用到的各种寄存器、存储器地址、变量很多,很难对程序的整体把握。通过电子钟的设计,对单片机的原理、结构、外围电路进一步的了解。在整个设计过程中学到了团体精神和独立解决问题的重要性。参考资料[1]《单片机原理与应用》谢维成杨加国编著[2]《单片机应用与仿真调试》严天峰编著[3]《模拟电子技术(第三版)》胡宴如耿苏燕编著[4]《数字电子技术(第三版)》杨志忠卫桦林编著18
本文标题:51单片机课程设计_电子时钟
链接地址:https://www.777doc.com/doc-4228978 .html