找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4189|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)廚房定時(shí)報(bào)警系統(tǒng)源程序與proteus仿真設(shè)計(jì)等詳細(xì)資料

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
以51單片機(jī)為核心設(shè)計(jì)一個(gè)廚房定時(shí)報(bào)警器。具有倒計(jì)時(shí)計(jì)時(shí),時(shí)間設(shè)置,完成蜂鳴器報(bào)警提示功能。系統(tǒng)主要由51單片機(jī)進(jìn)行控制各個(gè)電路的配合,從而完成倒計(jì)時(shí)計(jì)時(shí)報(bào)警提示功能。電路包括:?jiǎn)纹瑱C(jī)最小系統(tǒng)電路,按鍵設(shè)置電路,數(shù)碼管顯示電路,蜂鳴器報(bào)警電路。


51單片機(jī)做的廚房定時(shí)報(bào)警器的設(shè)計(jì)說(shuō)明如下:


單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. void delay(uint z);
  4. sbit P20=P2^0;             //數(shù)碼管公共端1
  5. sbit P21=P2^1;             //數(shù)碼管公共端2
  6. sbit P22=P2^2;             //數(shù)碼管公共端3
  7. sbit P23=P2^3;             //數(shù)碼管公共端4
  8. sbit FMQ=P1^4;                 //蜂鳴器
  9. sbit zanting=P1^0;         //暫停
  10. sbit qidong=P1^1;         //啟動(dòng)
  11. sbit jia=P1^2;                 //加
  12. sbit jian=P1^3;             //減
  13. char time=100;                 //初值
  14. char i=0,h;
  15. unsigned char code led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //數(shù)碼管0~9

  16. void delay(uint z)        //延時(shí)
  17. {
  18.         uint x,y;
  19.         for(x=z;x>0;x--);
  20.         for(y=100;y>0;y--);
  21. }

  22. void main()
  23. {
  24.         FMQ=1;    //關(guān)閉蜂鳴器
  25.         EA=1;     //總中斷開(kāi)關(guān)
  26.         ET0=1;    //開(kāi)啟計(jì)數(shù)
  27.         ET1=1;    //開(kāi)啟計(jì)數(shù)
  28.         TMOD=0X11;//計(jì)時(shí)器方式控制
  29.         TR0=1;    //運(yùn)行控制器
  30.         TR1=1;    //運(yùn)行控制器

  31.         TH0=0x3c;
  32.         TL0=0xb0; //初值重裝
  33.         
  34.         TH1=0xec;
  35.         TL1=0x78; //初值重裝

  36.         IT0=1;    //中斷開(kāi)啟
  37.         IT1=1;    //中斷開(kāi)啟

  38.         EX0=1;    //中斷允許
  39.         EX1=1;    //中斷允許

  40.         while(1);
  41. }

  42. void zhongt() interrupt 1
  43. {
  44.         TH0=0x3c;       //重裝初值 50ms定時(shí)
  45.         TL0=0xb0;
  46.         h++;

  47.         if(zanting==0)  //判斷暫停按鍵是否按下
  48.     {        
  49.                 delay(500);
  50.                 TR0=0;      //運(yùn)行控制器
  51.         }
  52.         if(jia==0)  //判斷按鍵是否按下
  53.     {        
  54.                 delay(500);
  55.                 time++;
  56.                 while(jia == 0);   
  57.         }
  58.         if(jian==0)  //判斷按鍵是否按下
  59.     {        
  60.                 delay(500);
  61.                 time--;
  62.                 while(jian == 0);              
  63.         }
  64.         if(h==20)       //循環(huán)20次  延時(shí)1s
  65.         {        
  66.             h=0;            //計(jì)數(shù)值復(fù)位
  67.             time--;            //數(shù)減一
  68.             if(time==0) //如果數(shù)為0時(shí)
  69.             {        
  70.                         P0= led[0];                //顯0
  71.                         P2=0xff;                //位選全選,全顯0
  72.                 while(1)
  73.                     {
  74.                                  FMQ=0;
  75.                                   delay(50000);
  76.                                   FMQ=1;
  77.                                   delay(50000);
  78.                           }
  79.                 }
  80.         }
  81. }

  82. void zhont() interrupt 3
  83. {
  84.         TH1=0xf8;     //重裝初值 高八位
  85.         TL1=0x30;     //低八位        動(dòng)態(tài)數(shù)碼管延時(shí)2ms
  86.         i++;
  87.         
  88.         if(qidong==0) //判斷啟動(dòng)按鍵是否按下
  89.         {
  90.                 TR0=1;
  91.         }

  92.         if(jia==0)  //判斷按鍵是否按下
  93.     {        
  94.                 delay(500);
  95.                 time++;
  96.                 while(jia == 0);
  97.                      
  98.         }
  99.          
  100.         if(jian==0)  //判斷按鍵是否按下
  101.     {        
  102.                 delay(500);
  103.                 time--;
  104.                 while(jian == 0);     
  105.         }
  106.         if(i==1)     //百位數(shù)碼管
  107.         {
  108.                 P20=0;
  109.                 P21=0;
  110.                 P22=0;
  111.                 P23=0;
  112.                 P0=led[time/1000];//位
  113.                 //delay(5);
  114.                P20=1;
  115.         }
  116.         if(i==2)     //位數(shù)碼管
  117.         {
  118.                 P20=0;
  119.                 P21=0;
  120.                 P22=0;
  121.                 P23=0;
  122.                 P0=led[time/100%10];//百位
  123.                 //delay(5);
  124.                P21=1;
  125.         }
  126.         if(i==3)     //十位位數(shù)碼管
  127.         {
  128.                 P20=0;
  129.                 P21=0;
  130.                 P22=0;
  131.                 P23=0;
  132.                 P0=led[time/10%10]; //十位
  133.                 //delay(5);
  134.                 P22=1;
  135.         }         
  136. ……………………

  137. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
廚房定時(shí)器.zip (114.82 KB, 下載次數(shù): 77)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表