基于单片机的厨房定时器可预置分秒倒计时装置.docx

上传人:b****3 文档编号:5692920 上传时间:2023-05-09 格式:DOCX 页数:14 大小:179.48KB
下载 相关 举报
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第1页
第1页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第2页
第2页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第3页
第3页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第4页
第4页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第5页
第5页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第6页
第6页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第7页
第7页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第8页
第8页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第9页
第9页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第10页
第10页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第11页
第11页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第12页
第12页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第13页
第13页 / 共14页
基于单片机的厨房定时器可预置分秒倒计时装置.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的厨房定时器可预置分秒倒计时装置.docx

《基于单片机的厨房定时器可预置分秒倒计时装置.docx》由会员分享,可在线阅读,更多相关《基于单片机的厨房定时器可预置分秒倒计时装置.docx(14页珍藏版)》请在冰点文库上搜索。

基于单片机的厨房定时器可预置分秒倒计时装置.docx

基于单片机的厨房定时器可预置分秒倒计时装置

 

基于51单片机的厨房定时器

设计报告

 

学院:

信息光电子科技学院

专业:

光电信息科学与工程

年级:

姓名:

学号:

 

一、设计报告概述

日常生活中熬个汤、煮个蛋……都需要预定一定的时间,设计一个厨房定时器,用户预设倒计时的时长,启动后系统开始倒计时,当时间为0后,启动蜂鸣器报警。

本设计报告中的厨房定时器,是以单片机(STC89C52),四位七段数码管、按键开关和蜂鸣器等组成的综合设计系统电路。

上电,电源指示灯点亮,数码管显示为0000,用户可以通过按键开关预设定时时间,启动后系统开始倒计时,当时间为0后,蜂鸣器报警。

数码管显示分、秒,计时时间上限为99分钟,按键开关以10分钟或1分钟单位调整时间。

二、设计总体框图

 

图1系统设计结构图

本系统组成如图1系统设计结构图所示,主要由五个部分组成。

1.AT89C52单片机——控制芯片

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。

AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。

图2AT98C52引脚图

2.时钟震荡电路

AT89C52中有一个用于构成内部振荡器的高增益反相放大器,与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

如果使用石英晶体,电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10pF,可以使系统更稳定,避免噪音干扰而死机。

此设计采用的是12MHz的石英晶振。

图3晶振震荡电路图

3.按键控制电路

本设计共有5个按键,功能依次为复位、启动、增加10分钟定时时间、增加1分钟定时时间、减少1分钟定时时间,由于按键较少,故直接连接I/O口。

复位键原理:

当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。

随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。

根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。

单片机系统自动复位。

图4复位电路图

图5按键电路图

4.数码管显示电路

数码管主要有共阴极和共阳极两种型号,共阴极的数码管就是公共端接地,共阳极的数码管就是公共端接电源。

此设计采用的是4位一体共阳数码管。

数码管显示分为静态显示与动态显示,此设计中采用的是动态显示。

动态显示是按位轮流点亮各位数码管的显示方式。

在多位显示时,为了简化硬件电路,通常将所有位的段选线相应地并联在一起,由一个8位I/O口实现控制,形成段选线的多路复用。

而各位的共阳极分别由相应的I/O口线控制,实现各位的分时选能,在任一时段,只有一位数码管显示,其它的数码管都处于熄灭状态。

图6数码显示电路图

5.蜂鸣器报警电路

蜂鸣器有无源蜂鸣器和有源蜂鸣器两种类型,区别在于有源蜂鸣器只需加入一个触发电平就可以发声,而无源蜂鸣器需要输入一定频率的脉冲才可以发声。

此设计中采用的是有源蜂鸣器,从而选择简单高效的有源蜂鸣器。

图7蜂鸣器报警电路图

三、设计图示

1.整体仿真电路

2.实物展示

四、源程序(C语言)

#include

//定义函数变量

intsec;

unsignedcharbeepset;

unsignedcharnum;

unsignedcharn;

unsignedcharminu10;

unsignedcharminu;

unsignedcharsec10;

unsignedcharnum;

//定义数组,共阳数码管的段位码

Unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//定义引脚

sbitstart=P3^4;//将start定义为P3.4启动计时

sbitmin1=P3^5;//将min1定义为P3.5分加10

sbitmin2=P3^6;//将min2定义为P3.6分加1

sbitmin3=P3^7;//将min3定义为P3.5分减1

sbitbeep=P3^0;//将beep定义为P3.0

sbitled=P3^1;//将led定义为P3.1

sbitmin11=P2^0;//控制位选码

sbitmin22=P2^1;

sbitsec33=P2^2;

sbitsec44=P2^3;

//预先定义显示子函数

voiddisp();

//延时子函数

voiddelay(unsignedintms)

{

unsignedinti,j;

for(i=ms;i>0;i--)

for(j=110;j>0;j--);

}

//键盘扫描子函数

voidkey_scan()

{

if(P3!

=0xff)//判断是否有按键按下

{

delay

(2);disp();//延时处理,进行键盘消抖

delay

(2);disp();

delay

(2);disp();

delay

(2);disp();

delay

(2);disp();

if(P3!

=0xff)//再次判断按键

{

if(min1==0){while(!

min1);//按键2,功能为加10分钟

sec=sec+600;

if(sec>5940)sec=0;

}

elseif(min2==0){while(!

min2);//按键3,功能为加1分钟

sec=sec+60;

if(sec>5940)sec=0;

}

elseif(min3==0){while(!

min3);//按键4,功能为减1分钟

sec=sec-60;

if(sec<60)sec=0;

}

elseif(start==0){while(!

start);//按键1,功能为开始倒计时

TR0=1;

}

}

}

}

//数码管扫描显示子函数

voiddisp()

{

minu10=sec/600;//对计数值进行预处理,分别得出每个数码管显示的值

minu=sec%600/60;

sec10=sec%600%60/10;

num=sec%600%60%10;

switch(n)//扫描显示,分别选中位选码之后显示段选码,再熄灭跳出

{

case0x01:

min11=1;P0=table[minu10],delay

(1);min11=0;break;

case0x02:

min22=1;P0=table[minu],delay

(1);min22=0;break;

case0x03:

sec33=1;P0=table[sec10],delay

(1);sec33=0;break;

case0x04:

sec44=1;P0=table[num],delay

(1);sec44=0;break;

}

if(n==0x04){n=0;}

elsen++;

}

//主函数

voidmain()

{

sec=0;//设置初值

num=0;

n=0;

beepset=0;

EA=1;

ET0=1;

EX0=1;

TMOD=0x01;//使用定时器T0,工作模式1

TH0=0x3c;//定时器高八位赋初值TH0=(65536-50000)/256,即50ms

TL0=0xb0;//定时器低八位赋初值TH0=(65536-50000)%256

while

(1)

{

if(TR0==0){key_scan();disp();}

elseif(TR0==1)

{

if(num==20)//20*50ms,定时时间为1秒

{

num=0;

if(sec!

=0){sec--;}

if(sec==0)

{beepset++;

beep=0;

if(beepset==10)

{

beepset=0;

beep=1;

TR0=0;

}

}

}

}

disp();

}

}

voidT0_time()interrupt1

{

TH0=0x3c;

TL0=0xb0;

num++;

}

voidEx()interrupt0

{TR0=0;}

附:

电子元件个别说明(以下元件焊接要注意引脚的正确与否)

(1)四位共阳数码管SR420561K:

4位一体数码管,其内部段已连接好,引脚如图所示(正面朝自己,小数点在下方)。

a、b、c、d、e、f、g、dP为段引脚,1、2、3、4分别表示四个数码管的位。

1af23b

eddpcg4

(2)PNP三极管:

(3)其他:

一般两脚的电子元件,正极一端较长。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2