基于单片机定时闹钟(精选6篇)
篇1:基于单片机定时闹钟
任务书
一、设计目的
本设计主要是对51单片机的一个方面的扩展,是能实现一般定时闹钟功能的设计。需要实现某一功能时,按对应的按键即可,经过多次验证,此设计灵活简便,可以实现显示、定时、修改定时、定时时间到能发出报警声的功能。
二、设计要求
1、能显示时时—分分—秒秒。
2、能够设定定时时间,并修改定时时间。
3、定时时间到能发出警报声。
目 录
1.绪论..........................................................................................................1 2.方案论证..................................................................................................1 3.方案说明..................................................................................................2 4.硬件方案设计.........................................................................................2 4.1单片机STC89C52.........................................................................2 4.2 时钟电路.......................................................................................4 4.3数码管显示电路............................................................................4 4.4键盘电路........................................................................................6 4.5报警电路........................................................................................7 5.软件方案设计.........................................................................................7 5.1系统软件设计................................................................................7 5.2键盘程序........................................................................................7 5.3 LED.................................................................................................8 5.4音响报警电路................................................................................8 5.5 程序流程图...................................................................................8 6.调试..........................................................................................................9 7.小结........................................................................................................10 8.参考文献................................................................................................11 9.附录:定时闹钟源程序.......................................................................12 1.绪论
系统采用单片机STC89C52作为本设计的核心元件,在其基础上外围扩展芯片和外围电路,附加时钟电路,复位电路,键盘接口及LED显示器。键盘采用独立连接式。还有定时报警系统,即定时时间到,通过扬声器发出报警声,提示预先设定时间时间到,从而起到定时作用。
外围器件有LED显示驱动器及相应的显示数字电子钟设计与制作可采用单片机来完成。由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机STC89C52,它是低功耗、高性能的CMOS型8位单片机。片内带有8KB的Flash存储器,且允许在系统内改写或用编程器编程。另外, STC89C52的指令系统和引脚与8051完全兼容,片内有512B的RAM、32条I/O口线、3个16位定时计数器、4个外部中断、一个7向量4级中断结构(兼容传统51的5向量2级中断结构)等。
在LED显示器中,分成静态显示和动态显示两类,在这个设计的最小系统中主要用了它的动态显示功能,动态显示器利用了人视觉的短暂停留,在数据的传输中是一个一个传输的,且先传输低位。
2.方案论证
单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。
本系统采用单片机STC89C52作为本设计的核心元件,利用两个4位7段共阴LED作为显示器件。接入共阴LED显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,定时时间到,蜂鸣器发出报警声,提示预先设定时间到。
电路由下列部分组成:时钟电路、复位电路、控制电路、LED显示、报警电路,芯片选用STC89C52单片机。
系统基本框图如图2.1所示: 时钟电路数码显示STC89C52键盘电路报警电路
图2.1 系统基本框图
3.方案说明
此设计主要是通过单片机系统,综合运用定时器、中断、数码显示等知识设计一个可定时的电子钟。它包括系统总体方案及硬件设计,软件设计,Proteus软件仿真等部分。
系统总体方案及硬件设计是本设计的重要组成部分,在这部分详细介绍了时钟原理,硬件设计,数码管LED,以及在设计过程中考虑到技术指标,机型的选择,器件的选择等一系列问题。
硬件设计的主要任务是根据总体设计要求,以及在所选机型的基础上,确定系统扩展所要用的存储器,I/O电路及有关外围电路等然后设计出系统的电路原理图。
合理的软件结构是设计出一个性能优良的单片机应用性系统软件的基础,因此必须充分重视。在本设计中采用应用广泛的C语言。用Proteus软件仿真检查设计是否合理。
4.硬件方案设计
4.1单片机STC89C52 STC89C52是一个低电压,高性能CMOS型8位单片机,片内含8KB的可反复擦写的Flash只读程序存储器(ROM)和512B的随机存取数据存储器(RAM),器件采用STC公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的STC89C52提供了高性价比的解决方案。其引脚图如下图4.1所示:
P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST940VCC***2P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.010P3.111P3.212P3.313P3.414P3.515P3.616P3.717XTAL218XTAL119GND20STC89C523***2524232221
图4.1 STS89C52 STC89C52具体介绍如下: 1)主电源引脚(2根)
VCC(40):电源输入,接+5V电源
GND(20):接地线 2)外接晶振引脚(2根)
XTAL1(19):片内振荡电路的输入端
XTAL2(18):片内振荡电路的输出端 3)控制引脚(4根)
RST/VPP(9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(30):地址锁存允许信号
PSEN(29):外部存储器读选通信号
EA/VPP(31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。4)可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别为P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口(39~32):8位双向I/O口线,名称为P0.0~P0.7
P1口(1~8):8位准双向I/O口线,名称为P1.0~P1.7
P2口(21~28):8位准双向I/O口线,名称为P2.0~P2.7
P3口(10~17):8位准双向I/O口线,名称为P3.0~P3.7 4.2 时钟电路
单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。
本系统中STC89C52单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHz~12MHz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF~100pF之间取值。STC89C52单片机的时钟电路如图4.2所示。
XTAL230pF12MHzSTC89C5230pFXTAL1
图4.2 时钟电路
4.3数码管显示电路
单片机中通常使用7段LED,LED是发光二极管显示器的缩写。LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。LED显示器有多种形式,如:“米”字型显示器,点阵显示器和七段数码显示器等,在单片机系统中使用最多的是七段数码显示器。
LED七段数码显示器由8个发光二极管组成显示字符,根据内部发光二极管 的连接形式不同,LED有共阴极和共阳极两种,如图4.3.1所示为4为7段共阴数码管的引脚图。
A1afA2A3beddpcgA4
图4.3.1 4段共阴数码管引脚图
采用高亮共阴型s位数码管,为示区别,显示秒的两个数码管个头较小,另外4个较大。共阴数码管连接线路如下:一般用7个发光二极管构成显示数字和符号,另外还用一段发光二极管显示小数点。这种显示器一般分为两种,共阳极显示器和共阴极显示器,共阳极显示器是把每个二极管的正端连在一起,共阴极显示器是把每个二极管的阴极连在一起。一只显示器是有8个发光二极管构成,当把某段加正向电压时,则该段所对应的笔划亮,不加正向电压则暗,为了保护各段不受损坏需要加限流电阻,无论是共阳极显示器还是共阴极显示器,它的8段排列顺序都是一样的:A段、B段、C段、D段、E段、F段、G段和DP段。在单片机中通常使用7段LED。数码管的显示电路如下图4.3.2所示:
图4.3.2 数码管的显示电路 数码管中二极管电流的计算
二极管本身有2V的电压降,一般二极管电流取10mA,则需添加的电阻为
R=(U-ULed)/ILed,代入相关数值,即为300Ω。
本设计中,选用的电阻为470Ω,则电流为
I=(U-ULed)/R´, 代入实际数值,即为6.4mA,能够满足显示效果。
4.4键盘电路
设计方案中使用的是3个开关键组成的键盘电路,如下图4.4所示:
图4.4 键盘电路图 4.5报警电路
设计方案中,采用的是蜂鸣器和PNP型三极管组成的报警电路。如下图4.5所示:
图4.5 报警电路
5.软件方案设计
5.1系统软件设计
该系统软件主要有主程序模块,定时中断服务程序,中断等待服务程序,键盘程序,显示子程序服务程序等六大模块组成,因为C语言容易理解和记忆,所以我们用C语言来写此程序。
5.2键盘程序
键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有键按下,便转向相应的子程序处理,处理结束后再返回。5.3 LED 七段LED由七个发光二极管按日字排开,所有发光二极管的阳极连在一起成共阳极,阴极连在一块称共阴极接法。当采用芯片驱动时不需要加限流电阻,其他情况下一般应外接限流电阻。动态显示电路有显示块,字形码封锁驱动器,字位锁存驱动器三部分组成。
5.4音响报警电路
在STC89C52外围的一个管口上加蜂鸣器,通过软件与硬件的结合可实现定时闹钟功能。
5.5 程序流程图
开始初始化判断闹钟时间是否到调用显示程序否P1.0是否按下是P1.1和P1.2调节时间和闹钟图5.5 程序流程图
6.调试
设几个按键从左往右为K1,K2,K3。K1与P1.0相连,K2与P1.1相连,K3与P1.2相连。
按一下启动开关,显示为时间显示。按一下K1,进入时间显示的小时设定状态;按两下K1,进入时间显示的分钟设定状态;按三下K1,进入定时的小时设定状态;按四下K1,进入定时的分钟设定状态;按五下K1,退出设定,进入当前时间显示状态;K2和K3分别是对当前设定值的加和减。如下图6.1和6.2所示。
图6.1 调时仿真效果图
图6.2 定时仿真效果图
7.小结
在做课程设计的过程中,我进一步认识到全面专业知识以及逻辑思考方式对研究问题的重要性,同时我也更加具体的掌握了课程设计的基本方法。
经过不断的努力,我终于完成了这次课程设计,总的来说,我学到了不少的东西,知道了理论联系实际的重要性。在设计过程中我遇到了很多的困难,但没放弃,查阅了许多相关的书籍,自己独立思考和借鉴了前人的许多优秀成果,并与所学的知识紧密的结合了起来。我相信这过程对我今后的学习和工作有着积极的影响,并搭好了平台。
通过这次设计,我对这门课有了更好的理解,尤其结合了这几年学的相关的专业知识,对各门课都有了一个较全面的理解。这必将对我以后的学习和工作有很大的帮助。本次课程设计的定时闹钟电路,可以满足人们的基本要求,但因为知识水平有限,此电路中存在一定的问题,虽可以通过增加电路解决,但过于复杂和现有水平有限,本次设计就未深入涉及,想要更好的改进电路,需要进一步的努力,如果有好的意见,希望老师给予支持指导。8.参考文献
[1] 何立民.单片机应用技术选编10.北京:北京航空航天大学出版社 [2] 林立.单片机原理及应用.北京:电子工业出版社
[3] 沙占友等.单片机外围电路设计.西安:电子工业出版社
[4] 江力.蔡骏.王艳春.董泽芳.单片机原理与应用技术.北京,清华大学出版社 [5] 潘永红.柳殊.单片机原理与应用.西安,西安电子科技大学出版社 9.附录:定时闹钟源程序
#include
9、横杠、全灭 unsigned char a[8];
unsigned char second=0,minute=0,hour=1;unsigned char minute1=0,hour1=0;unsigned char b[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//扫描 unsigned char k=0;unsigned int temp;// 记录毫秒为秒的变量
unsigned char M,S_flag;//M是模式,更新时间的种模式加上正常模式 S_flag闪烁标志 sbit K1=P1^0;sbit K2=P1^1;sbit K3=P1^2;sbit BEEP=P3^3;void delay(unsigned n)//0.2毫秒 { int x,y;for(x=0;x void time1()interrupt 3 //定时器中断函数 { TH1=0xfc; //定时ms TL1=0x18;temp++;if(temp==1000)//配合定时器定时s { temp=0;second++;} if(second==59){ second=0;if(minute<59)minute++;else { minute=0; hour++; hour%=24; } } if(hour1==hour&&minute1==minute&&second<10){ if(M==0)BEEP=!BEEP;} if(temp%250==0)//每ms S_flag=!S_flag;//闪烁标志位取反 if(k==8)k=0;P0=a[k]; P2=b[k++];delay(1); P2=0xff; } void display(){ switch(M){ case 0: { a[0]=led[hour/10]; a[1]=led[hour%10]; a[2]=led[10]; a[3]=led[minute/10]; a[4]=led[minute%10]; a[5]=led[10]; a[6]=led[second/10]; a[7]=led[second%10]; }break;case 1: { if(S_flag==1) { a[0]=led[hour/10]; a[1]=led[hour%10]; } else { //闹钟时间到 a[0]=led[11]; a[1]=led[11]; } a[2]=led[10]; a[3]=led[minute/10]; a[4]=led[minute%10]; a[5]=led[10]; a[6]=led[second/10]; a[7]=led[second%10];}break;case 2: { a[0]=led[hour/10]; a[1]=led[hour%10]; a[2]=led[10]; if(S_flag==1) { a[3]=led[minute/10]; a[4]=led[minute%10]; } else { a[3]=led[11]; a[4]=led[11]; } a[5]=led[10]; a[6]=led[second/10]; a[7]=led[second%10];}break;case 3: { if(S_flag==1) { a[0]=led[hour1/10]; a[1]=led[hour1%10]; } else { a[0]=led[11]; a[1]=led[11]; } a[2]=led[10]; a[3]=led[minute1/10]; a[4]=led[minute1%10]; a[5]=led[11]; a[6]=led[11]; a[7]=led[11]; }break;case 4: { a[0]=led[hour1/10]; a[1]=led[hour1%10]; a[2]=led[10]; if(S_flag==1) { a[3]=led[minute1/10]; a[4]=led[minute1%10]; } else { a[3]=led[11]; a[4]=led[11]; } a[5]=led[11]; a[6]=led[11]; a[7]=led[11]; } } } void key_prc(){ if(K1==0) { delay(10);//延时去抖 if(K1==0)//按K1进行模式切换 { M++; if(M==5)M=0; } while(!K1);//等待按键释放 } if(M!=0){ switch(M){ case 1: //模式--调时 { if(K2==0) { delay(10);//延时去抖 if(K2==0)//加键按下 { if(hour<23)hour++; else hour=0; } while(!K2);//等待按键释放 } if(K3==0) { delay(10); if(K3==0) { if(hour> 0)hour--; else hour=23; } while(!K3); } } break; case 2: //模式--调分 { if(K2==0) { delay(10); if(K2==0) { if(minute<59)minute++; else minute=0; } while(!K2); } if(K3==0) { delay(10); if(K3==0) { if(minute>0)minute--; else minute=59; } while(!K3);} } break;case 3: //模式--闹钟调时 { if(K2==0) { delay(10); if(K2==0) { if(hour1<23) hour1++; else hour1=0; } while(!K2); } if(K3==0) { delay(10); if(K3==0) { if(hour1>0)hour1--; else hour1=23;} while(!K3); } } break; case 4: //模式--闹钟调分 { if(K2==0) { delay(10); if(K2==0) { if(minute1<59) minute1++; else minute1=0; } while(!K2); } if(K3==0) { delay(10);//延时去抖 if(K3==0)//减键按下 { if(minute1>0) minute1--; else minute1=59; } while(!K3); } } break; } } } void main(){ M=0;S_flag=0;//闪烁标志位 TMOD=0x10;//定时器以方式定时 TL1=0x18;EA=1;//打开总中断 ET1=1;//允许定时器中断 TR1=1;//开启定时器(开始定时计数)while(1){ key_prc(); display();} } 摘要 本设计是定时闹钟的设计,由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。电子钟设计可采用数字电路实现,也可以采用单片机来完成。数字电子钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计中采用单片机利用AT89C51,它是低功耗、高性能的CMOS型8位单片机。片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。AT89C51单片机结合七段显示器设计的简易定时闹铃时钟,可以设置现在的时间及显示闹铃设置时间,若时间到则发出一阵声响,进—步可以扩充控制电器的启停。设计内容包括了秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分的设计。采用四个开关来控制定时闹钟的工作状态,分别为:K1、设置时间和闹钟的小时;K2、设置小时以及设置闹钟的开关;K3、设置分钟和闹钟的分钟;K4、设置完成退出。 课设准备中我根据具体的要求,查找资料,然后按要求根据已学过的时钟程序编写定时闹钟的程序,依据程序利用proteus软件进行了仿真试验,对出现的问题进行分析和反复修改源程序,最终得到正确并符合要求的结果。 设计完成的定时闹钟达到课程设计的要求,在到达定时的时间便立即发出蜂鸣声音,持续一分钟。显示采用的六位数码管电路,如果亮度感觉不够,可以通过提升电阻来调节,控制程序中延迟时间的长短,可以获得不同的效果。也可以改蜂鸣器为继电器,通过控制继电器从而进一步扩展的来控制一些家电开关。 目录概述……………………………………………………………………………… 系统总体方案及硬件设计……………………………………………………… 42.1 总体设计……………………………………………………………………4 2.2 系统时钟电路设计…………………………………………………………4 2.3 系统复位电路设计…………………………………………………………4 2.4 闹钟指示电路设计………………………………………………………… 52.5 电子闹钟的显示电路设计…………………………………………………5软件设计 3.1 概述…………………………………………………………………………6 3.2 主模块的设计………………………………………………………………6 3.3 基本显示模块设计…………………………………………………………7 3.4 时间设定模块设计…………………………………………………………7 3.5 闹钟功能的实现……………………………………………………………8Proteus软件仿真………………………………………………………………1课程设计体会……………………………………………………………………13 参考文献……………………………………………………………………………13 附1:源程序代码…………………………………………………………………14 附2:系统原理图…………………………………………………………………27 相关说明: 1、欲下载本站资料,必须成为本站会员。如果你尚未注册或登录,请首先注册或登录。 2、48小时内下载同一文件,不重复扣金币。 3、下载后请用解压缩后使用。 4、下载后仍有问题,请看常见问题解答。 关键词:单片机,豆浆机,温度传感器,实时时钟 0 引言 本系统是设计一个由定时开关控制的豆浆机。由于目前市面上一些定时的豆浆机几乎都是定时30min或15min而不能任意进行定时设置。本设计可通过按键预置时间,通过计数器倒计时的方式进行计数。当达到预置时间时,通过单片机控制豆浆机自动开启,从而不用早起,能节约时间,节省资源,当豆浆煮熟以后自动保温或者断电。 1 系统组成 系统由单片机、键盘输入电路、液晶电路、缺水检测电路、溢出检测电路、82度检测电路、报警指示电路等组成。硬件结构框图如图1所示。 1.1 单片机系统 系统采用AT89S52作为控制核心,配备键盘和液晶显示电路。 AT89S52是Atmel公司新推出的一种低功耗、高性能CMOS 8位微控制器,它具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。其性能完全可以满足系统的要求。 键盘用于设定豆浆机启动时间和调整系统时间。 液晶显示采用OCM12864,它内带汉字字库,可以方便地显示汉字及图形;可以同时显示4×8个单元,可以一次显示系统所有状态信息;显示的内容不需要刷新,节省了单片机的资源;电路结构简单,便于控制,功耗低。 1.2 温度传感器 系统采用集成温度传感器DS18B20作为测量温度的部件。传感器与单片机的连接电路如图2所示。 DS18B20是美国Dallas半导体公司的单总线数字化温度传感器。全部传感元件及转换电路集成在形如一只三极管的集成电路内,体积小、使用灵活方便。主要特性:适应电压范围宽,在寄生电源方式下可由数据线供电;支持多点组网功能;温范围-55~+125℃;分辨率高达12位;最大转换时间750ms;测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。图2中,4.7k电阻作为上拉电阻,提高数据线的电流。 1.3 时钟芯片 系统采用专用时钟芯片DS1302,它和单片机的连接电路如图3所示。DS1302是一个慢速充电时钟芯片,包括实时时钟/日历和31字节的静态RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月,月末的日期自动进行调整,还包括了闰年校正的功能。 1.4 缺水检测电路 缺水检测电路主要用来检测是否缺水,防止干烧,如果检测到缺水则可以自动加水。其电路如图4所示。不缺水时P1.6输入为低电平,缺水时为高电平。水位情况检测反馈路径为:加热管外壳(接线路板地)→水→电极→R22→P1.6,当容器内无水或水量低于水位线,即水浸不到电极时,P1.6为高电平,然后自动加水;当容器内水量达到水位线时(即水量浸到电极时),P1.6为低电平,P1.5输出高电平,将控制加热的相应继电器吸合,加热管正常加热。 1.5 溢出检测电路 溢出检测电路主要是用来防止浆沫溢出。其电路如图5所示。豆浆溢出情况检测反馈路径为:加热管外壳(接线路板地)→豆浆及浆沫→防溢电极→R23→P1.7,当豆浆沸腾泡沫向上溢时,防溢检测电极接触到泡沫浆液,使P1.7由高电平变为低电平,P1.5输出低电平,将控制加热的相应继电器不吸合,加热管停止加热。当泡沫下落后,P1.7变为高电平,P1.5输出高电平,控制加热的相应继电器吸合,加热管正常加热,不断反复进行防溢延煮。 1.6 82度检测电路 82度检测电路是通过一个比较器电路来实现的。其电路如图6所示。比较器由双运放LM358和电阻、电容、稳压管组成,LM358采用12V供电,当LM358的负输入端电压高于正输入端电压时,输出为低电平,稳压管D1截止,P2.1输入为低电平;当LM358的负输入端电压低于正输入端电压时,输出为10~11V的电压,此时稳压管D1导通,P2.1输入为高电平(4.3V)。 负端输入电压随热敏电阻R20阻值的变化而变化。负温度系数(NTC)热敏电阻R20是采用单一高纯度材料、具有接近理论密度结构的高性能陶瓷,它最基本的性质就是电阻值随温度上升而下降。电阻变化与温度变化的具体关系如式(1)所示: 其中,R0和R1为电阻值,T0和T1为绝对温度,B值是一个表征NTC的电阻值与绝对温度的关系的常数。热敏电阻的B值并非是恒定的,其大小因材料构成而异,最大甚至可达5K/℃,因此在较大的温度范围内应用式1时,将会与实测值之间存在一定误差。本系统中使用的NTC热敏电阻的参数为:25℃时的阻值为22K,B值为4200,代入式(1)可以求得R1为2.2K时的温度为82℃。当温度小于82℃时,热敏电阻的阻值大于2.2K,此时负端输入电压低于正端输入电压,输出为高电平,当温度高于82℃时,热敏电阻的阻值小于2.2K,此时负端输入电压高于正端输入电压,输出为低电平,停止加热,开始打浆。 3 软件设计 对于51系列单片机,目前常用的语言有汇编和单片机C语言。本系统单片机软件采用Keil C51程序编写。主要由主程序、读取温度子程序、读取时间子程序、键盘扫描和液晶显示子程序、报警子程序等部分组成。读取温度子程序功能:完成对DS18B20的复位及温度的读取。DS18B20是单总线芯片,对时序要求严格,用Keil C51编写程序时,采用“while(--i);”语句实现短时间的精确延时。键盘扫描和液晶显示子程序完成定时的设定及各种信息的显示;读取时间子程序完成DS1302的初始化和当前时间的读取。流程图如图7所示。 图7单片机程序流程图(参见右栏) 4 结束语 本系统对豆浆机定时做了改进,充分发挥了AT89S52单片机强大的控制能力,采用了低成本的实时时钟芯片DS1302,可以灵活设置豆浆机的工作时间,实现了豆浆机的预约定时及全自动制作豆浆。系统操作方便、成本低,在实际应用中收到了满意的效果。 参考文献 [1]赵海兰,朱剑,赵祥伟.DS1302实时显示时间的原理与应用[J].电子技术,2004(1):43-46. [2]肖忠,陈怡.DS18B20组建小型测温网络研究[J].广州大学学报(自然科学版),2005(2):54-56 [3]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,1998. 有一次,她在玩电动玩具时,发现只要按下玩具的开关,玩具就动起来,好奇的她就把玩具拆开,发现里面有一个振动器,她想如果用振动器的振动来代替闹钟扬声器的声音,不就克服了闹钟吵醒别人的缺点了吗?在学校辅导老师和校长的支持下,她经过一遍又一遍的实验,终于发明了一种“四能枕”。 这种新型定时振动枕头的工作原理是由外接时钟控制设定的时间,在到达设定时间时提醒振动芯片启动,带动振动型机械装置产生机械振动波,达到将人从睡眠状态唤醒的原理。振动波来自机械运动产生,对人体无任何害处并具备有按摩保健功能,可以让人在被唤醒的同时享受对头部轻轻的按摩,有益于头部及头部皮肤血液的循环。 之所以取名叫“四能枕”,是因为枕头具有四种功能。让振动器的振动代替闹钟扬声器的声音,能定时提醒人起床,这是第一个功能:定时提醒;振动器的声音很小,一般人听不到,这是第二个功能:无干扰;闹钟放在枕头旁边,可以随时查时,这是第三个功能:随时查时;振动器的振动可以按摩头部,促进脑部血液循环,这是第四个功能:按摩头部。 枕头的清洗非常简单,只要将枕芯和振动装置一同取出,单独清洗枕套就可以。而且枕套也可以按枕芯尺寸进行量身更换。使用时只要装入电池,校正好时间,按要求设定需要振动的时间即可。 2.1 M SP430系列单片机的结构 M SP430系列单片机主要包括CPU、存储器以及外围模块等组成:CPU主要是用来处理程序指令,存储系统的相关数据与程序,并且进行位、字、字节的操作。外围模块主要是将单片机与外围的相关设备进行链接,并且实现通道的采样转换。 2.2单片机多用途定时器的设计原理 姓名 吴凯 实验室 S2312 课程 单片机原理与应用 试验项目编号 专业 电子与电子信息工程班级10电专(2)学号 1060710057同组人/组号/指导老师肖鹏程日期成绩试验项目名称单片机定时器的综合应用 一、实验目的1.进一步熟悉Keil uVision2软件的应用; 2.进一步熟悉Proteus7.8软件的应用; 3.掌握单片机软件延时和定时器的使用方法; 4.掌握用C语言编写方波发生器和彩灯控制器的方法。 二、实验环境 1.微机一台; 2.Proteus7.8电路设计和仿真软件; 3.Keil uVision2编译和调试软件; 三、实验原理 图1是单片机实现1KHz方波发生器的电路原理图,P00接示波器,时钟电路接在单片机的DIP18、DIP19,复位电路接在单片机的DIP9,DIP31接Vcc。注意:所有元器件要按实物重新封装。 用C语言编写程序,使该电路的功能为,上电后示波器显示1KHz的方波。当示波器显示的方波频率不是1KHz时,修改程序,使示波器显示标准的1KHz方波。 图1单片机输出控制电路原理图 C语言1KHz方波发生器的程序 图2是单片机实现彩灯控制器的电路原理图,P00接8只LED,时钟电路接在单片机的DIP18、DIP19,复位电路接在单片机的DIP9,DIP31接Vcc。注意:所有元器件要按实物重新封装。 用C语言编写程序,使该电路的功能为,上电后8只LED灯显示彩灯滚动效果。修改程序,使彩灯显示效果发生变化。 图2彩灯控制器电路原理图 C语言彩灯控制器的程序 四、实验步骤 1.在Proteus ISIS环境下设计一个用单片机产生1KHz方波发生器的电路原理图,P00接示波器,时钟电路接在单片机的DIP18、DIP19,复位电路接在单片机的DIP9,DIP31接Vcc。 2.在Keil uVision2环境下,用C语言编写单片机实现1KHz方波发生器的程序,编译生成hex文件。 3.将生成的hex文件加载到单片机,运行仿真,观察现象,记录结果; 4.在Proteus ISIS环境下设计一个用单片机产生彩灯控制器的电路原理图,P0接8只LED灯,时钟电路接在单片机的DIP18、DIP19,复位电路接在单片机的DIP9,DIP31接Vcc。 5.在Keil uVision2环境下,用C语言编写单片机实现彩灯控制器的程序,编译生成hex文件。 6.将生成的hex文件加载到单片机,运行仿真,观察现象,记录结果; 五、实验记录与处理 1.单片机产生1KHz方波发生器的实验结果 图3为1KHz方波发生器的仿真图。 图3 1KHz方波发生器仿真图 当延时常数为(),方波频率为(当延时常数为(),方波频率为(数据处理:从以上数据我们可以看出,2.彩灯控制器的仿真结果 数据处理:从以上数据我们可以看出,。)) 六、思考题 1.简述单片机定时的几种方法?每种方法举例具体说明。答: 2.与单片机的定时器有关的SFR有几个?每个SFR具体说明。答: 七、实验小结 【基于单片机定时闹钟】相关文章: 基于单片机的多用途定时器的设计分析论文04-19 基于单片机论文题目05-02 基于单片机的论文题目05-02 基于单片机的系统设计07-05 基于单片机监控系统08-28 基于单片机控制的节水装置09-10 基于单片机的助航灯光巡检系统01-14 基于单片机的电子钟设计06-09 基于51单片机的毕业论文题目05-08 基于Proteus的虚拟单片机实验系统10-04篇2:基于单片机定时闹钟
篇3:基于单片机定时闹钟
篇4:定时振动枕头 让闹钟下岗
篇5:基于单片机定时闹钟
篇6:基于单片机定时闹钟