数字式电子钟设计_第1页
数字式电子钟设计_第2页
数字式电子钟设计_第3页
数字式电子钟设计_第4页
数字式电子钟设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机数字时钟设计TOC\o"1-3"\h\z\u摘要单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。本设计使用12MHZ晶振与单片机AT89C52相连接,以AT89C52芯片为核心,采用动态扫描方式显示,通过使用该单片机,加之在显示电路部分使用74HC244驱动电路,实现在6个LED数码管上显示日期、时间、定时、闹铃,通过6个按键实现设置日期、进行调时、设定闹铃、倒计时等功能,在实现各功能时数码管进行相应显示,闹铃或定时时间到时蜂鸣器响,按下闹铃键或定时键时,声音停止。软件部分用C语言实现,分为显示、延迟、调时、闹铃、定时、调整日期等部分。通过软硬件结合达到最终目的。关键词:电子钟;单片机;动态扫描;C语言目录TOC\o"1-3"\h\z\u230621引言 355042整体设计思路及其方案的选择 4254553主要元件的使用方法 4252313.1AT89C52单片机 5118003.274HC244驱动器 596513.3DS18B02液晶显示 6208464电路设计 7294484.1整体设计 7190814.2分块设计 7202314.2.1输入部分 783744.2.2输出部分(显示电路) 8198714.2.3晶振与复位电路: 9252715程序设计 927915.1程序思路 9274175.2程序设计步骤 10211675.3程序的主要模块 1031015.3.1延迟程序 10136195.3.2中断服务子程序 1120555.3.3主程序 11314135.3.4显示程序 1184065.3.5闹铃程序 12135376功能仿真 1288716.1软件介绍 12256166.2仿真过程 129816参考文献 14单片机数字时钟设计1引言单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机具有体积小、功能多、价格低廉、使用方便、系统设计灵活等优点。因此,它应用广泛前景美好,它的实用性大大地提高了我对毕业设计的兴趣。数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟还可以利用单片机来实现电子钟等等。这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于功能扩充,精确度高等特点。2整体设计思路及其方案的选择EQ\o\ac(○,1)整体设计思路首先由单片机的定时器P3口在一定的时间里产生一个中断,这时单片机由这个中断信号进行判断处理,然后由液晶显示进行时间的显示。按键输入部分的输入信号也通过单片机处理,然后由液晶显示其需要显示的结果。EQ\o\ac(○,2)及其方案的选择方案一:利用时钟芯片给单片机输入时钟信号芯片信号:PCF8583。此芯片可以对时钟、闹钟、日历进行调整,且精准度比较高,可以精准到1/100秒。方案优点:走时精度高,编程时无需考虑各部分运行时的时间干扰,方案缺点:硬件电路要稍微复杂点,软件编程时要加部分芯片的程序。方案二:直接利用单片机本身的定时器中断进行时间的走时方式0:不推荐方式1:16位计数器,常用方式2:自动重装初值的8位定时/计数器方式3:T0相当于两个独立的8位定时/计数器方案优点:不需要其它芯片就可以进行时钟的走时,并且精准度可 以到1/100秒。方案缺点:精准度越高误差越大方案三:利用程序的延时进行时钟的走时用for循环for(j=148;j>0;j--);延时一毫秒来确定时间方案优点:简单、经济,软件稍微简单方案缺点:走时不精准,且在时间的走时过程中不确定因素太多综上信息,我选择方案二,因为方案无需在硬件上添加一块时钟芯片,软件上也无需添加一段时钟芯片的启动程序,软件、硬件的调试都要稍微简单点,虽然精准度要比方案一的差,但是我不需要那么高的精准度,所以我觉得方案二比较适合。3主要元件的使用方法下面就本次设计中用到的主要元件的所有功能进行简单的介绍,包括AT89C52单片机、74HC244芯片、DS18B20液晶显示特性和用法3.1AT89C52单片机单片机的结构如下:图3.1.1单片机引脚图在使用时VCC接电源电压,GND接地。P0,P1,P2,P3可作为输入或输出端口,RST是复位输入,接复位电路。XTAL1和XTAL2接复位电路。这些可以在硬件设计部分体现出来。3.274HC244驱动器74HC244芯片的功能

如果输入的数据可以保持比较长的时间(比如键盘),简单输入接口扩展通常使用的典型芯片为74HC244,由该芯片可构成三态数据缓冲器。74HC244芯片的引脚排列如图1所示。74HC244芯片的引脚74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1C和2G作为它们的选通工作信号。当1/OE和2/OE都为低电平时,输出端Y和输入端A状态相同;当1/OE和2/OE都为高电平时,输出呈高阻态。图13.3DS18B02液晶显示4电路设计4.1整体设计此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用六个数码管分别显示小时、分钟和秒,通过动态扫描进行显示,从而避免了译码器的使用,使电路更加简单。单片机采用AT89C52系列,这种单片机应用简单,适合电子钟设计。电路的总体设计框架如下:单片机单片机输入部分晶振和复位输出部分图4.1.1电路模块图4.2分块设计这部分介绍各模块电路的设计方法和成果,主要分为:输入部分、输出部分、复位和晶振电路。4.2.1输入部分在电子钟的输入部分,设置相应的置数功能,通过外部设备的输入,如按键,实现时间的修改。除此之外,调整闹铃、定时、日期时也需要按键进行输入。在选用输入端口时,将P3引脚与按键相连进行输入。设计的输入部分如下:图4.2.1输入部分各按键功能在后面的部分将会介绍到。4.2.2输出部分(显示电路)该部分电路图如下所示:图4.2.2显示部分4.2.3晶振与复位电路:图4.2.3晶振与复位电路5程序设计5.1程序思路初始化初始化按key1显示按key3键按key4键按key6键若无按键调时调闹钟调格式显示所调时间显示闹铃时间显示时间格式调整时限到或有其他输入图5.1.1程序设计思路结合电路,程序的总体思路是:1、点复位键后,进行时间显示,从8时30分30秒开始。2、按下按键key4时,进行调时,此时按2次key4键调整时,按1次key4键调整分。3、按key6键时进行闹铃调整,用key3键分别调时和分,时间到达闹铃所定时间时P1.1输出高电平,蜂鸣器响,按下按key5蜂鸣器停止。4、按key3键时进行格式的设定,可设定为12H或24H.5.2程序设计步骤在程序设计过程中,我遇到了很多困难,这部分也是让我学到很多东西的地方。首先,我学习了定时器的相关知识,计数器的使用是很重要的组成部分[15],在这个设计中选择计数器T0。T0的工作方式有:方式0:不推荐方式1:16位计数器,常用方式2:自动重装初值的8位定时/计数器方式3:T0相当于两个独立的8位定时/计数器此程序采用方式1,方式1的定时时间t为t=(216-M)*12/fosc。其中M为定时器初值,fosc为12MHz,若M为0则t=65536*12/2*106=65.536ms。因此可取50ms为计时单位,初值M应为50*10-3*106=216-M。M=15536=11110010110000=3CB0。即定时器初值为TH0=03CH,TL0=0B0H。定时器中断20次为一秒,这部分在中断程序中用到。5.3程序的主要模块5.3.1延迟程序在动态扫描时,必然用到延迟程序,这里使用延迟1ms的程序,此程序需要反复调用。voidDelay1ms(unsignedintx){uchari,j; for(i=x;i>0;i--) for(j=148;j>0;j--);}5.3.2中断服务子程序中断服务程序中,总体思路是:由于初值是3CB0H,所以装满定时器需要50ms的时间,从而20次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为0,分加一,依次类推。5.3.3主程序主程序主要对按键进行扫描,以及判断闹铃时间是否已到,若到则调用声音程序,该段程序如下:voidmain(){unint();LCDINIT();while(1) {shezhijian();tuichujian();if(flag==1) {switch(m){case0:shijian();tek1();break; case1:sheding();xianshi2();break; case2:laozhong();tek();break;}} else{fengmingqi();xianshi1();}}5.3.4显示程序液晶进行显示,分别显示1ms,这依赖的是人们视觉的惰性,该段程序如下:voiddisplay(ucharaddress,uchar*str){uchari;for(i=0;i<14;i++)//写显示第一行 {wcomd(address+i);Delay1ms(1);wdata(str[i]);Delay1ms(1);}}voiddata_cl1(){temp=data_s*10000+data_f*100+data_m; buffer[0]=temp/100000+'0'; buffer[1]=temp/10000%10+'0'; buffer[2]=':'; buffer[3]=temp/1000%10+'0'; buffer[4]=temp/100%10+'0'; buffer[5]=':'; buffer[6]=temp/10%10+'0';buffer[7]=temp%10+'0';//显示高位 buffer

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论