基于5单片机的多功能数字电子钟的设计_第1页
基于5单片机的多功能数字电子钟的设计_第2页
基于5单片机的多功能数字电子钟的设计_第3页
基于5单片机的多功能数字电子钟的设计_第4页
基于5单片机的多功能数字电子钟的设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、沈阳理工大学课程设计论文目 录1 绪论11.1电子时钟的研究背景11.2电子时钟的国内外研究现状22 AT89S51单片机简介33 硬件系统设计43.1系统框架设计43.2模块设计53.2.1单片机系统电路53.2.2复位电路63.2.3晶振电路73.2.4数码管显示驱动电路73.2.5定时报时电路设计93.2.6按钮设置电路104 软件系统设计114.1主程序流程图114.2系统设计的源程序12总 结20参考文献211 绪论1.1电子时钟的研究背景20世纪末,电子技术得到了极速的发展,毫无疑问,在其推动下,现代电子产品以及各种高科技产品几乎渗透到了社会的各个领域,这有力地推动了社会生产力的发

2、展和社会信息化程度以及综合科技水平的提高,但产品更新换代的频率也越来越快。随着科技的发展社会的进步和全球化竞争的日益激烈,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能电子钟不管在性能还是在样式亦或是用途上都发生了重大的变化,许多电子钟都已具备电子闹钟、电子秒表、温度检测等功能。同时单片机在多功能数字钟中的应用已是非常普遍的。多功能电子时钟除了具有时钟的功能外还可以包含对环境温度检测的功能。温度是一种最基本的环境参数。在各个行业生产及日常生活中,对温度的测量及控制始终占据着非常重要的地位。目前,典型的温度检测控制系统由模拟式温度传感器、A/D转换电路和各种单片机组成。由于

3、模拟式温度传感器输出的模拟信号必须经过A/D转换环节转换为数字信号后才能与单片机等微处理器接口进行读写的操作,所以硬件电路会比较复杂,成本较高。而以DS18B20为代表的新型单线总线数字式温度传感器集温度测量和A/D转换于一体,这类传感器可以直接输出数字量,同时与单片机接口电路结构非常简单,可以广泛用于距离远、节点分布多的场合,具有较强推广应用价值。数字电子时钟是采用数字电路实现对时,分,秒数字显示的装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可或缺的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,数字时钟的精度远远超过老式钟表,钟表的数字化给人们生产生活

4、带来了极大的方便,而且大大地扩展了钟表原先的报时功能。例如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动启闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电器的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用,有着非常现实的意义。1.2电子时钟的国内外研究现状数字电子时钟,自从它发明的那天起,就成为人类的朋友,给人们的生活、学习、工作、娱乐带来极大的方便。但随着时间的推移,科学技术的不断发展,生活节奏越来越快,竞争日益激烈,人们对时间计量的精度要求越来越高,应用越来越广。可以说时间的准确已成为各行各业安全运行的基础,如果时间出现误差而不能及时校正,会

5、造成一系列严重的后果和经济损失。 电子时钟的设计方法有多种,可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用对单片机编程来实现电子钟。其中,利用单片机实现的电子时钟具有硬件结构简单、编程灵活、便于功能扩展等特点。由单片机作为数字钟的核心控制器,可以通过它的时钟信号实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以进行定时、校时功能。输出设备显示器可以用液晶显示技术或者数码管显示技术。 智能温度传感器(亦称数字温度传感器)是上世纪90年代中期问世的。此类传感器是微电子技术、计算机技术和自动测试技术的结晶。目前,

6、国际上已开发出多种智能温度传感器。智能温度传感器内部一般包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器、随机存取存储器和只读存储器。智能温度传感器能实时更新并输出温度数据,适配于各种微控制器也就是通常所说的单片机(MCU),并且可通过软件来实现显示功能,其智能化取决于软件和硬件的综合开发水平,二者缺一不可。目前,新型温度传感器正从模拟式向数字式、集成化向智能化及网络化的方向发展。21世纪后,智能温度传感器毫无疑问正朝着高精度、多功能、总线标准化、高可靠性及高安全性等高科技的方向迅速发展,开发虚拟传感器和网络传感器、研制更先进的单片测温

7、系统已是刻不容缓。在日常生活和自动控制系统中,我们时常会遇到对时间和温度实时监控的需求。这就给具有多种功能的时钟提供了市场,也有了市场开发的前景。本文给出了一种基于单片机实现带温度检测的电子时钟的设计方法和实现过程。2 AT89S51单片机简介AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大

8、的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件

9、复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 主要特性: 8031 CPU与MCS-51 兼容 4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-33MHz 三级程序存储器保密锁定 128*8位内部RAM 32条可编程I/O线 两个16位定时器/计数器 6个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 3 硬件系统设计3.1系统框架设计系统框架如图3.1复位电路蜂鸣器定时报时按键k0、k1、k2k3、k4电源部分,直流电5v段选8个七段共阴极数码管显示秒、分钟、小时 位选部分接p2口 控制部分单片

10、机(AT89S51)图3.1 系统框架图3.2模块设计3.2.1单片机系统电路AT89S51芯片外形及引脚分布如图3.2图3.2 AT89S51芯片外形及引脚分布图如图2所示,AT89S51有40引脚,双列直插(DIP)封装,所用引脚功能如下:1. VCC 运行时加5V2. GND 接地3. XTAL1 振荡器反相放大器及内部时钟发生器的输入端4. XTAL2 振荡器反相放大器的输出端5. RST 复位输入,高电平有效,在晶振工作时,在RST引脚上作用2个机器周期以上的高电平,将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFT AUXR的DISRTO位(地址8EH)可打开或关闭该功能。

11、DISRTO位缺省为RESET输出高电平打开状态。6. EA/VPP 片外程序存储器访问允许信号。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地),如果EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。7. P1口,P2口P1,P2是一组带内部上拉电阻的8位双向I/O口。运行时通过P1口控制驱动电路的工作,将数据送到数码管,显示相应的段码,为了达到减少功耗或满足端口对最大电流的限制,应加上一限流电阻。P2.0P2.7口控制数码管的位选,使六个数码管轮流显示数据,等于0时位选三极管导通,等于1 时位选三极管截止。8. 无自锁开关(S2P

12、3.7)开关接相应引脚P3.7,当开关按下时,相应引脚为低电平0,断开时引脚为高电平1。3.2.2复位电路无论使用哪种类型的单片机,总要涉及到单片机复位电路的设计而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经过一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。单片机复位电路参数的选定须在振荡稳定后保证复位高电平

13、持续时间大于2个机器周期。单片机复位电路主要有四种类型:微分型复位电路;积分型复位电路;比较器型复位电路;看门狗型复位电路。 复位电路设计如图3.3图3.3 复位电路3.2.3晶振电路晶振电路设计如图3.4图3.4晶振电路XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL1应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。C1,C2在是电时帮助晶振起振。3.2.4数码管显示驱动电路abcdegGNDfdpGNDabcefg

14、d·dpabcdefgdpdpgfedcba5V(a)(b) 共阴极 共阳极数码管点亮田:段选和位选,结合图3.5,图3.6图3.5数码管引脚图(a) (b)图3.6 位选电路图3.5为数码管的引脚图,每位的段码线(a,b,c,d,e,f,g,dp)分别与1个8位的锁存器输出相连,由AT89S51控制组合09十个数据,如令其显示1则b,c引脚(即2,3引脚)送高电平,此时数码管显示1。由于各位的段码线并联,8位I/O口输出段码对各个显示位来说都是相同的。当数码管正常工作时必须接上拉电阻,数码管点亮一般要510mA的电流,po输出电流不到1mA,同时上拉电阻起到一个限流的作用。在多位L

15、ED显示时,为了简化电路,降低成本,节省系统资源,将所有的N位段选码并联在一起,由一片74HC595控制。由于所有LED的段选码皆由一个74HC595并行输出口控制,因此,在每一瞬间,N位LED会显示相同的字符。想要每位显示不同的字符,就必须采用扫描的方法,即在每一瞬间只使用一位显示字符。在此瞬间,74HC595并行输出口输出相应字符段选码,而位选则控制I/O口在该显示位送入选通电平,以保证该位显示相应字符。如此轮流,使每位分时显示该位应显示字符。由于74HC595具有锁存功能,而且串行输入段选码需要一定时间,因此,不需要延时,即可形成视觉暂留效果。图3.6为位选电路,PNP型三极管的集电极接

16、数码管的公共端,当P2口对应的引脚输出低电平时三极管导通,对应的数码管显示数据。这样,在同一时刻,多位LED中只有选通的那1位显示出字符,而其他5位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通状态,而其他个位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可以造成多位同时亮的假象,达到同时显示的效果。3.2.5定时报时电路设计本

17、电路采用无源蜂鸣器作为发声报时的声源,对P1.3口 延时翻转电平产生驱动波形(如图3.7)对蜂鸣器进行驱动。通过改变延时时间进而改方波的占功比可以得到驱动蜂鸣器的方波信号。这样蜂鸣器报时时就可以听到不同音调的报时声。 图3.7 波形图3.2.6按钮设置电路按钮设置电路如图3.8图3.8按钮设置电路按键按下时,由于抖动的问题,用延时的方法去除抖动,原因及解决方案如图3.9图3.9 延时方法除抖动4 软件系统设计4.1主程序流程图图4.1 主程序图4.2系统设计的源程序包括主程序、中断子程序、显示子程序、判断按键和调时设置程序、等待按键抬起程序、报时子程序、延时子程序用单片机AT89C51设计一个

18、多功能电子时钟能实现时分秒显示,能定时报时,还有调整时间的功能。单片机AT89C51的P0口接数码管的7段,P2口接数码管的位选。P3.0-P3.4接按键,P1.3接蜂鸣,数码管是一个八位一体共阴的,时间初始值00:00:00#include<reg52.h> / 包含51单片机寄存器定义的头文件unsigned char Tab = 0x3F, 0x06, 0x5B, 0x4F, 0x66,0x6D, 0x7D,0x07, 0x7F,0x6F,; /段码 共阴unsigned char port8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;u

19、nsigned char int_time ; /中断次数计数变量unsigned char second; /秒计数变量unsigned char minute; /分钟计数变量unsigned char hour; /小时计数变量unsigned char second0; /秒计数变量unsigned char minute0; /分钟计数变量unsigned char hour0;unsigned char flag ;sbit k0=P30 ;sbit k1=P31;sbit k2=P32;sbit k3=P33;sbit k4=P34;sbit ring=P13 ;void Del

20、ayUs2x(unsigned char t) /延时函数 while(-t);void delay(unsigned char t)while(t-) /大致延时1mSDelayUs2x(245); DelayUs2x(245);void Display() /时间显示函数P2=0xbf; /P2.6引脚输出低电平, DS6点亮 P0=Tabsecond/10; /显示秒十位delay(1); P2=0x7f; /P2.7引脚输出低电平, DS7点亮 P0=Tabsecond%10; /显示秒个位delay(1);P2=0xf7; / P2.3引脚输出低电平, DS3点亮 P0=Tabmin

21、ute/10; /显示分十位delay(1);P2=0xef; / P2.4引脚输出低电平, DS4点亮 P0=Tabminute%10;/显示分个位delay(1); P2=0xdf; /P2.5引脚输出低电平, DS5点亮 P0=0x40; /分隔符“-”的段码delay(1); P2=0xfe; /P2.0引脚输出低电平, DS0点亮 P0=Tabhour/10; /显示时十位 delay(1); P2=0xfd; /P2.1引脚输出低电平, DS1点亮 P0=Tabhour%10; /显示时个位delay(1);P2=0xfb; /P2.2引脚输出低电平, DS2点亮 P0=0x40;

22、 /分隔符“-”的段码delay(1); void Display0() /闹钟时间显示函数P2=0xbf; P0=Tabsecond0/10; delay(1); P2=0x7f; P0=Tabsecond0%10; delay(1); P2=0xf7; P0=Tabminute0/10; delay(1); P2=0xef; P0=Tabminute0%10; delay(1); P2=0xdf; P0=0x40; delay(1); P2=0xfe; P0=Tabhour0/10; delay(1); P2=0xfd; P0=Tabhour0%10; delay(1);P2=0xfb;

23、P0=0x40; delay(1); void main(void) /主函数 k0=1; k1=1; k2=1; k3=1; k4=1; TMOD=0x01; /使用定时器T0 EA=1; /开中断总允许 ET0=1; /允许T0中断 TH0=(65536-46083)/256; /定时器高八位赋初值 TL0=(65536-46083)%256; /定时器低八位赋初值 TR0=1; int_time=0; /中断计数变量初始化 second=0; /秒计数变量初始化 minute=0; /分钟计数变量初始化 hour=0; /小时计数变量初始化 second0=0; /秒计数变量初始化 mi

24、nute0=0; /分钟计数变量初始化 hour0=0; flag=0; while(1) if(k0=0)EA=0;while(k4!=0) if(k2=0)delay(10);if(k2=0)hour+;if(hour>23)hour=0; while(k2=0)Display(); if(k3=0)delay(10);if(k3=0)minute+; if(minute>59)minute=0; while(k3=0)Display(); Display(); EA=1; if(k1=0)flag=1;while(k4!=0) if(k2=0)delay(10);if(k2=

25、0)hour+;if(hour>23)hour=0; while(k2=0)Display0(); if(k3=0)delay(10);if(k3=0)minute+; if(minute>59)minute=0; while(k3=0)Display0(); Display0(); if(flag&&(hour=hour0)&&(minute=minute0)ring=!ring;Display();Display(); void interserve(void ) interrupt 1 using 1 /using Time0函数功能:定时器T0的中断服务子程序int_time+;if(int_time=20) int_time=0; /中断计数变量清0 second+; /秒计数变量加1if(second=60) second=0; /如果秒计满60,将秒计数变量清0 minute+; /分钟计数变量加1if(minute=60) minute=0; /如

温馨提示

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

评论

0/150

提交评论