c语言单片机定时闹钟课程设计_第1页
c语言单片机定时闹钟课程设计_第2页
c语言单片机定时闹钟课程设计_第3页
c语言单片机定时闹钟课程设计_第4页
c语言单片机定时闹钟课程设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计报告课程名称:单片机课程设计报告题目:定时闹钟学生姓名:所在学院:专业班级:学生学号:指导教师:2013年 12 月 25 日课程设计任务书报告题目定时闹钟完成时间12.22学生姓名专业班级指导教师职称讲师总体设计要求和技术要点1.任务:使用AT89C51单片机设计一个简易的定时闹钟。2.要求:定时闹钟的基本功能如下:n 显示格式为“时时:分分”。n 由LED闪动来做秒计数表示。n 一旦时间到则发出声响,同时继电器启动,可以扩充控制家电开启和关闭。n 程序执行后工作指示灯LED闪动,表示程序开始执行,LED显示“00:00”,按下操作键K1K4动作如下: (1) K1设置现在的时间。

2、(2) K2显示闹钟设置的时间。 (3) K3设置闹铃的时间。 (4) K4闹铃ON/OFF的状态设置,设置为ON时连续三次发出“哗”的一声,设置为OFF发出“哗”的一声。设置当前时间或闹铃时间如下。 (1) K1时调整。 (2) K2分调整。(3) K3设置完成。(4) K4闹铃时间到时,发出一阵声响,按下本键可以停止声响。工作内容及时间进度安排第17周:周1-周3 :立题、论证方案设计周4-周5 :程序编写第18周:周1-周3 :软件仿真、系统调试周4-周5 :验收答辩课程设计成果1与设计内容对应的软件程序2课程设计总结报告摘要单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数

3、据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。随着生活水平的提高,人们越来越追求人性化的事物。传统的时钟已不能满足人们的需求。而现代的时钟不仅需要模拟电路技术和数字电路技术而且更需要单片机技术,增加数字钟的功能。利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,减小因元器件精度不够引起的误差。本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89C51为核心元件同时采用LED数码

4、管显示器动态显示“时”、“分”的现代计时装置。另外具有校时功能和定时器功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。关键词:单片机,定时器,中断,闹钟,LED 目 录一、 概述11.51电子闹钟发展趋势12.本课题研究的主要内容13.51电子闹钟简介13.1开发的目的和意义23.2 51电子闹钟的优点23.3 51电子闹钟的特点2二、方案选择和与论证21.单片机型号的选择22.按键的选择33.显示器的选择34.发音部分的设计35.显示器驱动电路36.电源的选择3三、单元电路设计与分析41系统原理图42主程序部分的设计4 3中断定时器的设置44按键电路设计55蜂鸣器驱动电路5

5、6.数码管显示电路6四、实验结果7五、课程设计的心得13六、参考文献14一、概述电子闹钟在科学技术高度发展的今天,千家万户都少不了它,所以很多家庭个人都需要有一个电子闹钟,为人们提供报时方便,但普通电子闹钟不够方便实用。本文给出了一种以基于8051芯片电子闹钟设计方法,从而给人们带来更为方便的工作与生活。1. 51电子闹钟发展趋势现代的快节奏生活给人们的精神上带来了很大压力。如何排解或缓解这些压力已经成为很多人关心的问题。单片机电子闹钟是具发前闹钟创新性的系统,它代表了时代的发展趋势。2007年,无论从国内外行业发展趋势,还是从闹钟市场准入的要求来看,节能、环保、创新都已成为中国家电企业无法回

6、避的大问题。在原材料价格不断上涨、下游渠道商实力膨胀、价格战越来越激烈、行业利润日趋微薄的背景下,日前,中国的电子闹钟在节能化、环保化、创新型转变过程中,正进行新一轮闹钟赛跑。目前,国内专业51电子闹钟厂家的数量正在迅速增长。51电子闹钟市场在未来的三五年内会高速增长,新技术、新产品也会不断出现并投入应用。2. 本课题研究的主要内容设计一个51电子闹钟 能随意设定走时起始时间。(1) 12小时24小时两种制式可选,以适应不同的需要。(2) 能显示秒钟节奏,用LED的亮灭指示(3) 采用交直流供电电源。与石英钟不同的是,电子钟一般采用数码管等显示介质,因而必须以交流供电为主,以直流电源为后备辅助

7、电源,并能自动切换。该设计主要包括:按键、显示程序单元部分。、AT89S51单片机芯片、74HC245驱动LED显示电路,集成电路74HC245和LM386各1个。3. 51电子闹钟简介3.1开发的目的和意义目的:使用AT89C51单片机设计一个简易的定时闹钟。程序执行后工作指示灯LED闪动,表示程序开始执行,LED显示“00:00”,按下操作键K1K4动作如下: (1) K1设置现在的时间。 (2) K2显示闹钟设置的时间。 (3) K3设置闹铃的时间。 (4) K4闹铃ON/OFF的状态设置,设置为ON时连续三次发出“哗”的一声,设置为OFF发出“哗”的一声。设置当前时间或闹铃时间如下。

8、(1) K1时调整。 (2) K2分调整。(3) K3设置完成。(4) K4闹铃时间到时,发出一阵声响,按下本键可以停止声响。意义:电子闹钟已经是现代生活中经常用到的工具之一,传统的电子闹钟只是机械控制,另外,体积也很大,又不美观也不实用.而现在我设计的电子闹钟是用单片机做的.只要简单的设置好后,她就能按照主人的意思,定时的把你闹醒啦!也能给人们的生活带来方便。3.2 51电子闹钟的优点(1)、简单好用、美观、体积小、实用。(2)、用电量少、电压低,节能、环保、创新。按键、显示程序单元部分。AT89S51单片机芯片、74HC245驱动LED显示电路。外接4个按钮组成键盘,AT89S51为51内

9、核。另外,AT89S51本身无专门的液晶驱动接口,因此,本时钟采用数码管显示方式。数码管作为一种主动显示器件,具有亮度高、价格便宜等优点,而且市场上也有专门的时钟显示组合数码管。 51电子闹钟的用途:我设计的电子闹钟是用单片机做的.只要简单的设置好后,她就能按照主人的意思,定时的把你闹醒啦!也能给人们的生活、工作学习带来方便。3.3 51电子闹钟的特点1.帮助您排解或缓解那些来自现实生活的压力2.数码管作为一种主动显示器件,亮度高、价格便宜等,显示数字清晰。3.简单好用,可任意设24式时间。4.使用LED发光,省电,灯泡寿命长。5. 只要简单的设置好后,她就能按照主人的意思,定时的把你闹醒啦!

10、也能给人们的生活、工作学习二、 方案的选择和论证1.单片机型号的选择通过对多种单片机性能的分析,最终认为AT89C51是最理想的电子时钟开发芯片。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,而且它与MCS-51兼容,且具有4K字节可编程序存储器和1000次擦写循环,数据保留时间为10年,是最好的选择。2.按键的选择方案一:4×4矩阵式键盘。如

11、果选择此方案,那么在修改时钟或设置闹铃时间时就可以直接从键盘输入,方便、快捷,但程序较为复杂。 方案二:独立式按键。如果设置过多按键,将会占用较多I/O口,而且会给布线带来不便,因此,此方案适用于按键较少的情况。如果选择此方案,由于按键较少,在修改时间或设置闹铃时间时就不能直接输入,只能通过加或减完成,稍为麻烦一些,但其程序简单由于并不需要经常修改时间和设置闹铃时间,而且方案二的程序简单,按键少、成本低,因此,选择方案二。 3.显示器的选择方案一:液晶显示器。如果选择此方案,将会降低系统的功耗,这样就可以用电池供电,便于携带。但液晶显示器的驱动电路复杂,使用起来有一定的难度。 方案二:用数码管

12、作为显示器。数码管的驱动电路简单,使用方便,如果选择了此方案,那么在夜间看时间的时候就不需要有光源,非常方便。其缺点是功耗较大。由于数码管使用起来较为方便,在夜间看时间也很方便,因此我选择了方案二。4.发音部分的设计通过三极管放大后驱动蜂鸣器工作,再通过软件这时产生等时时间方波驱动蜂鸣器发出间断嘀声,这样就可以省去硬件振荡电路,降低成本。5.显示器驱动电路由于通过数码管公共极的电流较大且避免过多地使用分立元件,采用了一片74LS245来驱动段码,用P3口作位码驱动。6.电源的选择电源是单片机系统的重要组成部分,它不仅为系统提供多路电压源,还直接影响到系统的技术指标和抗干扰性能。AT89C51单

13、片机和一般的数字芯片一样,都是5V电压供电,所以可以共用一个5V电源。三、 单元电路设计和分析1. 设计原理系统原理图图 1 系统原理图2.主程序部分的设计程序部分主要采用了程序结构的模块化设计,避免了一些函数的不必要的重复书写,使程序变得单间易懂。程序在执行时,主程序要须通过调用子函数就可完成相应的功能 。主程序流程图如下图。图 2 主程序流程图3.中断定时器的设置数字电子钟设计中主要使用定时器T0中断ET0,利用ET0中断进行计时时间的自增,从而实现计时功能。AT89C51有两个通用定时/计数器。两者均可配置为定时器或事件计数器。另外增加了定时器T0/T1,溢出时T0/T1脚自动翻转的功能

14、选项。 用作“定时器”功能时,每经过一个机器周期,寄存器值加1。 用作“计数器”功能时,寄存器在对应的外部输入管脚T0/T1上每发生一次1到0的跳变时加1。使用该功能时,外部输入每个机器周期被采样一次。 图 3 定时器工作原理14.键盘电路设计键盘采用4个独立按键配以4个上拉电阻实现对时钟和闹钟的设定及修改。 图 4 独立按键 图 5 键盘输入电路5.蜂鸣器驱动电路发音部分是通过三极管放大驱动蜂鸣器工作,再通过软件这时产生等时时间方波驱动蜂鸣器发出间断嘀声,这样就可以省去硬件振荡电路,降低成本。图 6 蜂鸣器驱动电路6.数码管显示电路图 7 七段数码管图 8 六个数码管要同时使得6个数码管点亮

15、,所需的IO口是很多的。为了节省单片机的IO口,通常采用动态扫描的显示方法,将每个数码管的同名段连在一起,分6次向数码管写数据,每次对6个数码管写相同的数据,每次选通一个数码管,完成扫描,通过调整、缩短扫描的时间,由于人眼的视觉暂留作用,使得人们看起来就像同时显示一样,以达到动态显示的目的。四、 实验结果#include"reg52.h"#define uchar unsigned char#define uint unsigned intsbit wela=P27;sbit dula=P26;sbit s1=P34;/模式的选择sbit s2=P35;/调高sbit s3

16、=P36;/调低sbit s4=P37;/选择是否开启闹铃sbit beep=P23;uchar tt,num,t1,settime,bi;uchar flag; /至位int fen,miao,fen1=0,miao1=10;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar dis=0x40,0x40,0x40,0x40,0x40,0x40;void timedisplay();void display();void keydisplay

17、(); void setdisplay();void display1();void delay(uchar z)uchar i,j;for(i=125;i>0;i-)for(j=z;j>0;j-);void warm() if(bi=1)beep=0;TR1=1;void init()TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%6;TH1=(65536-50000)/256;TL1=(65536-50000)%6; EA=1;ET0=1;ET1=1;TR0=1;void keyscan()if(s4=0)delay(5);i

18、f (s4=0)while(!s4);bi+;if(bi=2)bi=0; if(s1=0)delay(5);if(s1=0) while(!s1);num+; if(num=3)num=0;if(num!=0)if(s2=0)delay(5);if(s2=0)if(num=1)miao1+;if(miao1=60)miao1=0;if(num=2)fen1+;if(fen1=60)fen1=0;while(!s2)keydisplay();if(s3=0)delay(5);if(s3=0)if(num=1)miao1-;if(miao1=-1)miao1=59;if(num=2)fen1-;i

19、f(fen1=-1)fen1=59;while(!s3)keydisplay();void setdisplay() /设置模式下的显示 dis0=0x40;dis1=0x40;dis2=table0;dis3=tablenum;dis4=0x40;dis5=0x40;display();void keydisplay() /通过按键加减时的显示if(flag=1)&&(num=2)dis0=tablefen1/10&0x00;dis1=tablefen1&0x00;elsedis0=tablefen1/10;dis1=tablefen1;dis2=0x40;i

20、f(flag=1)&&(num=1)dis3=tablemiao1/10&0x00;dis4=tablemiao1&0x00;elsedis3=tablemiao1/10;dis4=tablemiao1;dis5=0x40;display();void display() /基本的动态显示dula=1; /the oneP0=dis0;dula=0;wela=1;P0=0xfe;wela=0;delay(1);dula=1; /the twoP0=dis1;dula=0;wela=1;P0=0xfd;wela=0;delay(1);dula=1; /the th

21、reeP0=dis2;dula=0;wela=1;P0=0xfb;wela=0;delay(1);dula=1; /the fourP0=dis3;dula=0;wela=1;P0=0xf7;wela=0;delay(1);dula=1; /the fiveP0=dis4;dula=0;wela=1;P0=0xef;wela=0;delay(1);dula=1; /the sixP0=dis5; dula=0; wela=1;P0=0xdf;wela=0;delay(1);void timedisplay() dis0=tablefen/10;dis1=tablefen;dis2=0x40;d

22、is3=tablemiao/10;dis4=tablemiao;dis5=0x40;display();void main() init();while(1) keyscan(); if(num!=0) keydisplay();if(num=0)timedisplay();void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%6;tt+;if(tt=20)tt=0;miao+;if(miao=60)miao=0;fen+;if(fen=60)fen=0;if(!num&&fen1=fen&&miao1=miao)warm();settime+;if(settime=10)flag=1;if(settime=20)settime=0;flag=0;void timer1() interrupt 3TH1=(65536-50000)/256;TL1=(65536-50000)%6;t1+;if(t1=60)t1=0;beep=1;五、 课程设计的心得回顾起此次单片机课程设计,我仍感慨颇多,学到了

温馨提示

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

评论

0/150

提交评论