欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)廚房定時(shí)報(bào)警系統(tǒng)源程序與proteus仿真設(shè)計(jì)等詳細(xì)資料 [打印本頁(yè)]

作者: GUOXU    時(shí)間: 2018-5-22 10:00
標(biāo)題: 單片機(jī)廚房定時(shí)報(bào)警系統(tǒng)源程序與proteus仿真設(shè)計(jì)等詳細(xì)資料
以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)







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1