以51单片机为核心设计一个厨房定时报警器。具有倒计时计时,时间设置,完成蜂鸣器报警提示功能。系统主要由51单片机进行控制各个电路的配合,从而完成倒计时计时报警提示功能。电路包括:单片机最小系统电路,按键设置电路,数码管显示电路,蜂鸣器报警电路。
51单片机做的厨房定时报警器的设计说明如下:
单片机源程序如下:
- #include <reg52.h>
- #define uint unsigned int
- void delay(uint z);
- sbit P20=P2^0; //数码管公共端1
- sbit P21=P2^1; //数码管公共端2
- sbit P22=P2^2; //数码管公共端3
- sbit P23=P2^3; //数码管公共端4
- sbit FMQ=P1^4; //蜂鸣器
- sbit zanting=P1^0; //暂停
- sbit qidong=P1^1; //启动
- sbit jia=P1^2; //加
- sbit jian=P1^3; //减
- char time=100; //初值
- char i=0,h;
- unsigned char code led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管0~9
- void delay(uint z) //延时
- {
- uint x,y;
- for(x=z;x>0;x--);
- for(y=100;y>0;y--);
- }
- void main()
- {
- FMQ=1; //关闭蜂鸣器
- EA=1; //总中断开关
- ET0=1; //开启计数
- ET1=1; //开启计数
- TMOD=0X11;//计时器方式控制
- TR0=1; //运行控制器
- TR1=1; //运行控制器
- TH0=0x3c;
- TL0=0xb0; //初值重装
-
- TH1=0xec;
- TL1=0x78; //初值重装
- IT0=1; //中断开启
- IT1=1; //中断开启
- EX0=1; //中断允许
- EX1=1; //中断允许
- while(1);
- }
- void zhongt() interrupt 1
- {
- TH0=0x3c; //重装初值 50ms定时
- TL0=0xb0;
- h++;
- if(zanting==0) //判断暂停按键是否按下
- {
- delay(500);
- TR0=0; //运行控制器
- }
- if(jia==0) //判断按键是否按下
- {
- delay(500);
- time++;
- while(jia == 0);
- }
- if(jian==0) //判断按键是否按下
- {
- delay(500);
- time--;
- while(jian == 0);
- }
- if(h==20) //循环20次 延时1s
- {
- h=0; //计数值复位
- time--; //数减一
- if(time==0) //如果数为0时
- {
- P0= led[0]; //显0
- P2=0xff; //位选全选,全显0
- while(1)
- {
- FMQ=0;
- delay(50000);
- FMQ=1;
- delay(50000);
- }
- }
- }
- }
- void zhont() interrupt 3
- {
- TH1=0xf8; //重装初值 高八位
- TL1=0x30; //低八位 动态数码管延时2ms
- i++;
-
- if(qidong==0) //判断启动按键是否按下
- {
- TR0=1;
- }
- if(jia==0) //判断按键是否按下
- {
- delay(500);
- time++;
- while(jia == 0);
-
- }
-
- if(jian==0) //判断按键是否按下
- {
- delay(500);
- time--;
- while(jian == 0);
- }
- if(i==1) //百位数码管
- {
- P20=0;
- P21=0;
- P22=0;
- P23=0;
- P0=led[time/1000];//位
- //delay(5);
- P20=1;
- }
- if(i==2) //位数码管
- {
- P20=0;
- P21=0;
- P22=0;
- P23=0;
- P0=led[time/100%10];//百位
- //delay(5);
- P21=1;
- }
- if(i==3) //十位位数码管
- {
- P20=0;
- P21=0;
- P22=0;
- P23=0;
- P0=led[time/10%10]; //十位
- //delay(5);
- P22=1;
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
厨房定时器.zip
(114.82 KB, 下载次数: 77)
|