久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2206|回復: 1
打印 上一主題 下一主題
收起左側

以單片機為核心的廚房定時器設計

[復制鏈接]
跳轉到指定樓層
樓主
這是我花了兩個星期做的以單片機為核心的廚房定時器報警電路設計其實功能有 啟動 暫停 加一 減一
第一次發帖,希望大家體諒


電路原理圖如下:


單片機源程序如下:
  1. /*
  2. 1、按鍵可以調整當時時間
  3. 2、按鍵可以調節定時時間
  4. 3、定時時間到繼電器吸合

  5. *8位數碼管顯示 時間格式格式 12-08-00 標示12點08分00秒

  6. S1 用于小時 加1操作  
  7. S2 用于分鐘 加1操作
  8. S2 用于分鐘減1操作
  9. */

  10. #include <reg52.h>


  11. sbit KEY1=P3^2;
  12. sbit KEY2=P3^3;
  13. sbit KEY3=P3^4;


  14. sbit LED=P1^2;
  15. code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  16.                         //共陰數碼管 0-9
  17. unsigned char StrTab[8];  //定義緩沖區
  18. unsigned char minute=30,hour=12,second;  //定義并且初始化值 12:30:00

  19. void delay(unsigned int cnt)//延時函數
  20. {
  21. while(--cnt);
  22. }


  23. void Displaypro(void)
  24. {

  25.                 StrTab[0]=tab[hour/10];    //顯示正常時間
  26.                         StrTab[1]=tab[hour%10];
  27.                         StrTab[2]=0x40;
  28.                         StrTab[3]=tab[minute/10];
  29.                         StrTab[4]=tab[minute%10];
  30.                         StrTab[5]=0x40;
  31.             StrTab[6]=tab[second/10];
  32.                         StrTab[7]=tab[second%10];
  33.        
  34. }

  35. main()//主函數
  36. {

  37.    
  38.     TMOD |=0x01;//定時器0 10ms in 12M crystal 用于計時
  39.         TH0=0xd8;
  40.         TL0=0xf0;
  41.         ET0=1;
  42.         TR0=1;

  43.     TMOD |=0x10; //定時器1用于動態掃描
  44.         TH1=0xF8;
  45.         TL1=0xf0;
  46.         ET1=1;
  47.         TR1=1;
  48.     EA =1;
  49.    

  50. Displaypro();

  51. while(1)//主循環
  52.   {
  53.    
  54. /////////////////////////////////////////////////////////////////
  55.   if(!KEY1) //按鍵1去抖以及動作
  56.     {
  57.     delay(10000);
  58.     if(!KEY1)
  59.            {         
  60.              hour++;if(hour==24)hour=0;     //正常時間 小時 加1
  61.          Displaypro();
  62.            }
  63.         }
  64. ////////////////////////////////////////////////////////////////
  65. /////////////////////////////////////////////////////////////////
  66.   if(!KEY2) //按鍵去抖以及動作
  67.     {
  68.     delay(10000);
  69.     if(!KEY2)
  70.            {
  71.             minute++;if(minute==59)minute=0;//分加1
  72.             Displaypro();
  73.           }
  74.         }
  75. /////////////////////////////////////////////////////////////////
  76.   if(!KEY3) //按鍵去抖以及動作
  77.     {
  78.     delay(10000);
  79.     if(!KEY3)
  80.            {
  81.             minute--;if(minute==0)minute=59;  //分減1
  82.             Displaypro();
  83.           }
  84.         }
  85.   }
  86. }
  87. ////////////////////////////////////////////////////////////////
  88. /********************************/
  89. /*      定時中斷1                */
  90. /********************************/
  91. void time1_isr(void) interrupt 3 using 0//定時器1用來動態掃描
  92. {
  93.     static unsigned char num;
  94.     TH1=0xF8;//重入初值
  95.         TL1=0xf0;

  96.         switch (num){
  97.      case 0:P2=0;P0=StrTab[num];break; //分別調用緩沖區的值進行掃描
  98.          case 1:P2=1;P0=StrTab[num];break;
  99.          case 2:P2=2;P0=StrTab[num];break;
  100.          case 3:P2=3;P0=StrTab[num];break;
  101.          case 4:P2=4;P0=StrTab[num];break;
  102.          case 5:P2=5;P0=StrTab[num];break;
  103.      case 6:P2=6;P0=StrTab[num];break;
  104.          case 7:P2=7;P0=StrTab[num];break;
  105.          default:break;
  106. }
  107. num++;     //掃描8次,使用8個數碼管
  108. if(num==8)
  109.    num=0;
  110. }
  111. //////////////////////////////////////////////////////////////////
  112. /********************************/
  113. /*      定時中斷0                */
  114. /********************************/
  115. void tim(void) interrupt 1 using 1
  116. {
  117. static unsigned char count;//定義內部靜態變量

  118. TH0=0xd8;//重新賦值
  119. TL0=0xf0;
  120. count++;
  121.    switch (count)
  122.           {
  123.            case 0:
  124.            case 20:
  125.            case 40:
  126.            case 60:
  127.            case 80:Displaypro(); //隔一定時間調用顯示處理
  128.                    break;
  129.            case 50:LED=!LED; //半秒 LED閃爍
  130.                    break;
  131.            default:break;
  132.           }

  133. if (count==100)
  134.     {
  135.     count=0;
  136.     second++;//秒加1
  137.         if(second==60)
  138.            {
  139.            second=0;
  140.            minute++; //分加1
  141.            if(minute==60)
  142.                   {
  143.                    minute=0;
  144.                    hour++;  //時加1
  145.                    if(hour==24)
  146.                       hour=0;
  147.                   }  
  148.       
  149.            }
  150.    
  151.    }

  152. }
復制代碼

所有資料51hei提供下載:
203-普通定時器時鐘.zip (26.33 KB, 下載次數: 19)


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

使用道具 舉報

沙發
ID:162136 發表于 2018-6-11 23:24 | 只看該作者
鼓勵動手。這具體的作用是什么?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产在线观看一区二区 | 羞羞在线视频 | 在线观看免费黄色片 | 欧美一区二区三区精品免费 | 在线观看国产 | 中文字幕av亚洲精品一部二部 | 久久九精品 | 一二三四在线视频观看社区 | 99re热这里只有精品视频 | 围产精品久久久久久久 | 每日在线更新av | 91精品一区 | 国产一区二区三区四区 | 欧美一级片在线看 | 人人做人人澡人人爽欧美 | 精品国产18久久久久久二百 | 国产在线资源 | 久久久精品久久 | 亚洲成人福利在线观看 | 日韩精品久久久久 | 成人在线电影在线观看 | 久久精品国产免费看久久精品 | 成人不卡 | 欧美一级在线观看 | 日韩三级电影一区二区 | 在线播放国产视频 | 久久国产精品网站 | 国产欧美一区二区三区久久人妖 | 青娱乐自拍 | 日韩在线一区二区 | 成人免费大片黄在线播放 | 亚洲一区二区精品视频 | 91精品国产色综合久久 | 亚洲www啪成人一区二区 | 亚洲成人一区 | 天天人人精品 | 精品一二三 | 亚洲色图50p | 成人高清在线视频 | 国产精品久久久 | 中文字幕高清免费日韩视频在线 |