带定时功能的闹铃时钟设计--自动化--_第1页
带定时功能的闹铃时钟设计--自动化--_第2页
带定时功能的闹铃时钟设计--自动化--_第3页
带定时功能的闹铃时钟设计--自动化--_第4页
带定时功能的闹铃时钟设计--自动化--_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、带定时功能的闹钟设计课 程 设 计 任 务 书设计题目 带定时功能的闹铃时钟设计学生姓名所在学院电子信息与电气工程学院专业、年级、班设计要求:1、有电源开具关及指示灯,有复位按键。2、接通电源后,蜂鸣器连续两次发出响声,同时工作指示灯LED闪动,表示程序执行,数码管显示“0000”3、接着设置当前时间。按K1键,LED停止闪动,即进入时间设置状态;按K2键调整小时,每按一次数值增1;按K3键调整时间。设置完成后,按K4,LED恢复闪烁,即设置完成,进入正常走时状态。4、设置闹铃时间,进入正常走时状态后再按K2键,即进入闹铃时间设定状态,K2为设置闹铃功能键,再按k2,小时调整;按k3,分钟调整

2、。5、闹铃开、关设置。闹铃时间设定完后,再按k4,进入闹铃开、关设置。若设置为开,启动闹铃后连续3次发出响声;若设置为关,关闭闹铃时发出1次响声。6、掌握程序模块化设计思想。程序设计时可分解为走时、闹铃设置、显示、检查闹铃时间、执行 闹铃时间处理、调整等部分组成。每部分均通过子程序实现。再过主程序的调用,使其有机联系,最终实现定时闹铃时钟功能。学生应完成的工作:1、阅读课程设计说明书,收集资料,设计出硬件电路;2、设计多个方案,进行讨论,选出最优方案;3、设计汇编程序,仿真、焊接、调试;4、认真书写课程设计报告;5、在这次课程设计负责电路的仿真与调试。参考文献阅读: 1.张毅刚.单片机原理及应

3、用.高等教育出版社,2010 2.杨居义.单片机课程设计指导.清华大学出版社,2009 3 赵曙光.可编程逻辑器件,原理,开发与应用.西安,西安电子科技大学, 2000 4 付家才.单片机控制工程实践技术.北京,化学工业出版社,2004 5 李全利.迟荣强.单片机原理及接口技术.北京,高等教育出版社,2004工作计划:2014.6.3 熟悉课题,查阅资料;2014.6.42014.6.5 确定系统硬件方案;2014.6.62014.6.8 确定程序流程,编写程序;2014.6.9 完成系统软件设计;2014.6.102014.6.11 系统硬件电路制作;2014.6.12 烧录程序,系统调试;

4、2014.6.13 完成课程设计报告的撰写;任务下达日期:2014 年6月 3 日 任务完成日期:2014 年6月 13 日指导教师(签名): 学生(签名): 带定时功能的闹铃时钟设计摘 要:本设计是以单片机AT89S52配备LED数码显示管,数字钟采用24小时制方式显示时间,采用蜂鸣器做提醒,通过软件程序的编制合理充分地使用硬件以完成系统所要完成的任务。定时闹钟在硬件方面,采用了AT89S52芯片,用4位数码管来进行显示,LED用P1口进行驱动,采用的是动态扫描,能够比较准确的显示时间,电源电路主要是由变压器、桥堆、电容、稳压器、电阻、发光二极管等元件构成,由电容和晶振等构成时钟电路,一个开

5、关和电容电阻接上电源构成了复位电路,然后通过S1、S2、S3和S4四个功能按键可以时间对事件的修改和定时,定时时间到后蜂鸣器发出响声。在软件方面采用C语言编程,整个系统能完成时间的显示、调时和定时闹钟、复位等功能,并通过仿真后得到正确的结果。关键词:AT89S52;定时闹钟;时钟电路目 录1. 设计背景11.1单片机简介11.2课程设计的目的和意义12.设计方案12.1定时闹钟的系统设计12.2时钟设计方案12.3数码管显示方案23.方案实施23.1时钟的硬件电路原理设计23.2电路模块33.2.1系统时钟电路33.2.2系统的电源电路33.2.3复位电路43.2.4控制按键模块53.3程序设

6、计53.4仿真电路设计84.结果与结论94.1电路实现的功能94.2电路调试95.收获与致谢106.参考文献107.附件11附件1:电路原理图11附件:2:元器件清单11附件3:实物图12附件4:源程序131. 设计背景1.1单片机简介单片微型计算机,简称单片机。它在一块芯片上集成了中央处理器、只读存储器、输入输出接口、可编程计数器和定时器等。一块单片机芯片,就相当于一台计算机。它的集成度高,功能强,结构采用哈弗结构,抗干扰性强,指令丰富。单片机在工作前,首先必须在程序存储器内装入程序。单片机开始工作后,即按地址先先从存储器中取出指令,然后把指令译码,以确定该指令执行的什么操作和操作数的存放地

7、址,再根据这三个地址取操作数,接着CPU对操作数进行操作,操作结果送入存储器或经接口电路送入显示器、打印机等外部设备。1.2课程设计的目的和意义 随着就业形式日益严峻,大学生的动手能力、实践能力和综合素质越来越受到学校和用人单位的重视。在大学学习期间,课程设计无疑是培养和锻炼动手能力、实践能力和综合素质的一个重要环节。LED电子定时闹钟使用数字电路技术实现时分秒计时的装置,有着更高的准确性和直观性,寿命更长,广泛的应用于家庭,车站,办公室等场所,成为人们日常生活不可或缺的必需品,给人们带来了很大的方便。以单片机为核心的数字时钟是很有社会意义和社会价值的,钟表原先的报时功能已经不能满足人们日益增

8、长的要求,LED电子定时闹钟的多功能必定将一步一步的开拓出来。与时间相关的产品在任何时候都是不可或缺的物质,所以,软件代替硬件的控制之下的单片机,必定有着更为广泛的应用市场。2.设计方案2.1定时闹钟的系统设计 定时闹钟的系统可以分为六个环节,分别是电源电路模块、时钟电路模块、复位电路模块、时间显示模块、控制按键模块和闹铃模块。通过模块与模块之间的相互作用,实现定时闹钟的功能。 2.2时钟设计方案方案一:运用所学的数字电子技术知识,555秒脉冲发生器和74系列等相关芯片设计出纯硬件的电子闹钟原理图。本方案的优点是:思想简单,不需要编写程序;缺点是:所需器件太多,电路复杂,不容易焊接。方案二:使

9、用单片机内部的可编程定时器,根据单片机是利用MCS-51中的89C52作为其核心部分,其内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时,这样设计硬件成本较低,电路简单,但程序设计较为复杂。综上所述及本次课程设计的要求主要是锻炼我们利用单片机知识进行简单设计的能力,故选择方案二。2.3数码管显示方案方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。方案二:动态显示。所谓动态显示

10、就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O口,降低了能耗。从节省I/O口和降低能耗的角度考虑,本设计采用了方案二。3. 方案实施3.1时钟的硬件电路原理设计电路原理设计是基于小系统包括电源电路、复位电路、按键电路、时钟电路、数码管显示驱动电路和输出控制电路。总体硬件设计框图3.1.1所示:AT89S52电源电路复位电路晶振电路74HC573数码管路按键电路指示灯、蜂鸣

11、器电路 图3.1.1 系统硬件组合图3.2电路模块3.2.1系统时钟电路AT89S52内部有一个用于构成振荡器的高增益反相放大器,此放大器的输入和输出端分别是引脚XTAL1和XTAL2,在XTAL1和XTAL2上外接是时钟电源可构成时钟电路。单片机的生产工艺不同,时钟的产生方式也不同,有内部和外部两种时钟产生方式,根据该设计需要,采取内部方式。原理图如图3.2.1所示: 图3.2.1系统时钟电路3.2.2系统的电源电路电源电路主要是由变压器、桥式整流、电容、稳压器、电阻、发光二极管构成,交流电压220V通过变压器变压以后,经过桥式整流变成直流电压,然后经过电容滤波和7805稳压,最后输出+5V

12、的电源,然后在电源电路中加上一个发光二极管,当电源接通后发光二极管会亮。电路图如图3.2.2所示: 图3.2.2电源电路电源电路也可以使用USB端口提供+5V电源。USB电源供电在本次设计中会使电路简单,并使得电路通电调试更加容易。 3.2.3复位电路 在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均在1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过

13、一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。复位操作不会对内部RAM有所影响。如图3.2.4所示: 图3.2.4复位电路3.2.4控制按键模块按键S1、S2、S3、S4分别接到P2.0、P2.1、P2.2、P2.3端口。S1键为时间设置和正常走时的设置键。S2键设置闹钟功能键、闹钟和当前时间的小时设置。S3键调整当前时间和闹钟的分钟设置。S4键为设置当前时间后恢复键和闹铃开关设置键。电源电路如图3.2.5所示: 图3.2.5系统按键控制电路设

14、置当前时间:按S2键LED停止闪动,即进入时间设置状态,按S3键调整分钟,每按一次数值增一,设置完成后按S4,LED恢复闪烁,及设置完成,进入正常走时状态。设置闹铃时间:S2键进入闹铃设置时间设定状态,S2为设置闹铃功能键,按S3分钟调整,设置完成后按S4。闹铃开关设置:闹铃时间设定后,再按S4键,进入闹铃开关设置。3.3程序设计单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;(2)培养良好的编程风格,如

15、考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;(4)绘制程序流程图;(5)合理分配系统资源;(6)为程序加入注释,提高可读性,实施软件工程;(7)注意软件的抗干扰设计,提高系统的可靠性。主程序流程图和时钟定时、调整流程图分别如图3.3.1和3.3.2所示: 主程序开始设定定时器初值、开中断数码管显示秒针加11sY分针加1、秒针清0N时针加1、分针清0满60Y满10时针清0满24YYNNN数显00-00-00、蜂鸣器连响两声 图3.3.1主流程图调时间K1键K4键K3键K2键分针每次加1时钟正走、

16、红灯灯停止闪烁、绿灯亮时针每次加1NNYYYY主程序N主程序N定时开始、绿灯灭、黄灯亮YK2键K3键分针每次加1K2键时针每次加1K4键YYNN闹钟开、蜂鸣器连响三次K4键数码管显示YK4键闹钟关、蜂鸣器连响两次次YY图3.3.2时钟定时、调整流程图3.4仿真电路设计使用proteus软件进行课题的仿真实验,仿真电路包括电源部分、单片机控制部分、数码管显示部分、按键调时、定时控制部分、指示灯蜂鸣器五部分构成。仿真过程是将各部分组合到一起,把hex格式的程序载入单片机,运行电路后D3开始闪烁,电路正常工作。D1闪烁一次同时蜂鸣器鸣响两声,按下S1后D3停止闪烁,进入时间设置,按下S2后数码管显示

17、小时数,按24下后归零,说明小时程序部分是正确的。按下S3后,进入分钟设置,同样的方法可证明与分钟相关程序的正确性。按下S4后,D3重新开始闪烁,电路进入正常工作模式。按下S2后D2得电发光,进入定时设置,再次按下S2小时增加。按下S3后分钟数增加。确定定时时间后,按下S4蜂鸣器鸣响3次进入定时计时,定时时间到后,D1发光同时蜂鸣器持续鸣响。电路实现要求的功能,实现时钟与定时功能。 图3.4 仿真图3.5 PCB布线图 使用Altium designer设计课题的布线图,考虑到电源线应尽量加粗,电源线宽为0.8mm,而信号线宽则为0.6mm。电源线和地线的位置良好配合,可以降低电磁干扰的可能性

18、。布线图如图3.5所示: 图3.5PCB布线图4.结果与结论 4.1电路实现的功能 程序烧入单片机后进行电路的调试,接通电源后,蜂鸣器连续两次发出响声,同时工作指示灯LED闪动,表示程序执行,数码管未能显示“0000”。按S1键,LED停止闪动,即进入时间设置状态;按S2调整小时,每按一次数值增1;按S3调整时间。设置完成后,按S4,LED恢复闪烁,即设置完成,进入正常走时状态。然后设置闹铃时间。进入正常走时状态后再按S2键,即进入闹铃时间设定状态,S2为设置闹铃功能键。再按S2,小时调整;按S3,分钟调整。闹铃时间设定完后,再按S4,进入闹铃开/关设置。若设置为开,启动闹铃后连续3次发出响声

19、;若设置为关,关闭闹铃时发出1次响声。由于数码管不显示,所以定时为1分钟,定时时间到后,蜂鸣器鸣响,说明定时电路工作正常。4.2电路调试由于实际电路数码管电路中未能加上上拉电阻导致数码管的电压不足而无法显示数字。而在仿真时数码管不加上拉电阻是仍能正常工作,所以在实际布线图中未加上拉电阻而使数码管的驱动电压不足,这是本次设计的缺陷,但同时也收获了相应的经验和教训。在与小组成员讨论后在数码管电路中加上了驱动电路,数码管能正常显示数据。基本上实现了所要求的内容。5. 收获与致谢 通过这次设计运用了单片机,使我对课题上遇到的问题有了更加清楚的了解,从这次设计中我更加了解了单片机的构造和各个引脚的作用以

20、及单片机的编程。使我对单片机的基本电路比如晶振电路,复位电路以及电源电路更见深刻。但是由于在仿真电路中数码管无上拉电阻时仍能正常工作,而在实际实验时数码管不能正常显示。这种情况的出现使我明白了仿真与实际功能实现的差距,是教训也同样是经验。通过这次设计,我了解了自己在专业课上有很多的不足,通过两周的实践使我明白我现在的努力还不能胜任很多现实中遇到的问题,也是我明白要学会积累自己的封装库等等。实践的经历使我对自己将来就业方向有了更加清晰的了解。最后要感谢我们一组的同学们,因为团队合作在课程设计起到了很重要的作用,每个人都各尽所能。但最重要的是要感谢老师对我们的的指点与教导。6. 参考文献1 张毅刚

21、.彭喜元.彭宇.单片机原理及应用.北京.高等教育出版社.20102 赵曙光.可编程逻辑器件,原理,开发与应用.西安,西安电子科技大学, 2000 3 付家才.单片机控制工程实践技术.北京,化学工业出版社,2004 4 李全利.迟荣强.单片机原理及接口技术.北京,高等教育出版社,20047. 附件附件1:电路原理图附件:2:元器件清单名称规格与型号数量单片机芯片AT89S521个电阻680 R1个1K R5个八段数码管四位共阳极1个三极管9015 V2个LED指示灯LED4个瓷片电容 33pF C2个 10pf C1个电解电容 22F C2个 1000F C2个晶振 11.0592MHz1个按键

22、 SW-PT5个拨动开关SW-SPST1个桥堆2W10 D1个IC插座 40针脚1个三端集成稳压器 LM78051个锁存器74LS3731个Usb(母口)1个蜂鸣器1个导线若干附件3:实物图 附件4:源程序#include#include#define uint unsigned int#define uchar unsigned charuchar count,s1num,hour1,min1;uchar sec,ahour,min,number,hour,num,aa,key,key1,key2,key3,count1,flag,s4num, alarms ,k1,k2,m1,m2,s2n

23、um,working,beepnum,num1;/记录响了几声uchar k1,k2,start,flagstart,count2,startahour;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;sbit s1=P20;sbit s2=P21;sbit s3=P22;sbit s4=P23;sbit beep=P37;sbit led=P36;sbit led2=P35;sbit led3=P34;void delay(uint z);void

24、 disply();void init()TMOD=0x11;TH1=(65536-50000)/256;TL1=(65536-50000)%256;TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=0;ET1=1;TR1=1;startahour=1;min1=68;void disply() ahour=hour/10; /小时显示number=hour%10; P1=0X01; /P0段选 P1是位选P0=tableahour; delay(5);P1=0X02;P0=tablenumber; delay(5); P1=

25、0X04; P0=0xbf; delay(5);ahour=min/10;number=min%10; /分钟显示P1=0X10;P0=tablenumber;delay(5);P1=0x08;P0=tableahour; delay(5);P1=0X20; P0=0xbf; delay(5); ahour=sec/10; /秒显示number=sec%10; P1=0x40;P0=tableahour; delay(5);P1=0X80;P0=tablenumber;delay(5); void dingahour() if(start=0) if(hour=hour1) if(min=mi

26、n1) beep=0; else beep=1; else beep=1; void main()init();while(1)disply();dingahour();if(s2num) led2=0; else led2=1; void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void timer1() interrupt 3 /定时器中断按键 TH1=(65536-10000)/256; TL1=(65536-10000)%256; count1+; count2+; if(startahour=1) /beepnum用于

27、记录蜂鸣器响的次数 if(count250) beep=0; else beep=1; if(count2=100) count2=0; beepnum+; if(beepnum=2) beepnum=0;startahour=0; switch(key) /k1 case 0: if(s1=0) /如果按键1没按 key+; /key加1 break; case 1: if(s1=0) key+; else key=0; break; case 2: if(s1) key=0; flag=1; TR0=0; /控制灯的标志位 break;switch(key1) /k2 case 0: if

28、(s2=0) /按键2没按 key1+; break; case 1: if(s2=0) key1+; else key1=0; break; case 2: if(s2) key1=0; if(flag=0) /flag=0表示调试结束,时钟正在运行 s2num+; /在定时状态下,S2按下次数 if(s2num=1) k1=hour; k2=min; if(s2num=2) s2num=1; hour+; else if(hour=24)/flag=1表示正在调时 hour=0; else hour+; break; switch(key2) /k3 case 0: if(s3=0) key2+; break; case 1: if(s3=0) key2+; else key2=0; break; case 2: if(s3) key2=0; if(min=60) min=0;else min+; break; switch(key3) /k4 case 0: if(s4=0) key3+; break; cas

温馨提示

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

评论

0/150

提交评论