以51單片機為核心設計一個廚房定時報警器。具有倒計時計時,時間設置,完成蜂鳴器報警提示功能。系統主要由51單片機進行控制各個電路的配合,從而完成倒計時計時報警提示功能。電路包括:單片機最小系統電路,按鍵設置電路,數碼管顯示電路,蜂鳴器報警電路。
0.png (48.01 KB, 下載次數: 53)
下載附件
2018-5-23 03:22 上傳
51單片機做的廚房定時報警器的設計說明如下:
屏幕截圖(11).png (292.27 KB, 下載次數: 43)
下載附件
2018-5-22 09:58 上傳
屏幕截圖(12).png (476.4 KB, 下載次數: 87)
下載附件
2018-5-22 09:58 上傳
屏幕截圖(13).png (346.27 KB, 下載次數: 55)
下載附件
2018-5-22 09:58 上傳
屏幕截圖(14).png (343.43 KB, 下載次數: 45)
下載附件
2018-5-22 09:58 上傳
屏幕截圖(15).png (1.51 MB, 下載次數: 54)
下載附件
2018-5-22 09:58 上傳
屏幕截圖(16).png (342.5 KB, 下載次數: 57)
下載附件
2018-5-22 09:59 上傳
單片機源程序如下:
- #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)
2018-5-22 09:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|