日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機控制的微波爐定時程序

          51單片機控制的微波爐定時程序

          作者: 時間:2012-08-15 來源:網(wǎng)絡 收藏

          //免責聲明:這是的定時功能 純?yōu)榧夹g交流、學習之用。
          //轉載、使用者切莫用于不正當?shù)挠猛?,一切后果由轉截/使用者自行負責
          //按下獨立鍵盤RD按鍵,每按一次增加60秒,按下INT1啟動,按下INT0停止
          //我們知道是不會自動運行的,得手動啟動

          #include reg52.h>
          #define uint unsigned int
          #define uchar unsigned uchar
          sbit duan=P2^5;
          sbit wei=P2^6;
          const unsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,

          0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF}; //數(shù)碼管數(shù)組
          uint bai=0,gg=16,shi=0,ge=0,x;
          uint time=60,tt=0; //uint tt,time;

          void init()
          {

          TMOD=0x01;

          TH0=(65536-50000)/256;

          TL0=(65536-50000)%256;
          EA=1;

          ET0=1;

          TR0=0;

          }

          void scan()
          {
          if(RD==0)
          {
          while(!RD);
          time=time+60;
          }
          if(INT0==0)TR0=0;
          if(INT1==0)TR0=1;
          }
          void fuzhi()
          {
          bai=time/60;
          shi=time%60/10;
          ge=time%10;
          }
          uint jishi()
          {
          if(tt==20)
          {
          tt=0;
          time--;if(time==0)TR0=0; //這個位置不能動,time--必須在if(tt==20)里
          }
          }
          //-------------------函數(shù)聲明--------------------------
          void disp(uint bai,uint gg,uint shi,uint ge);

          void delay(uint x)
          {
          uint a,b;
          for(a=x;a>0;a--)
          for(b=110;b>0;b--);
          }
          void main()
          {
          init();
          while(1)
          {
          jishi();
          scan();

          fuzhi();
          disp(bai,gg,shi,ge);
          if(INT1==0)TR0=1;
          }
          }
          //------------------------------------------------
          void disp(uint bai,uint gg,uint shi,uint ge)
          {
          duan=1;P0=table[bai];duan=0;
          wei=1;P0=0x02;wei=0;
          delay(5);

          duan=1;P0=table[gg];duan=0;
          wei=1;P0=0x04;wei=0;
          delay(2);

          duan=1;P0=table[shi];duan=0;
          wei=1;P0=0x08;wei=0;
          delay(5);

          duan=1;P0=table[ge];duan=0;
          wei=1;P0=0x10;wei=0;
          delay(5);

          }
          void tming0() interrupt 1
          {
          TH0=(65536-50000)/256;

          TL0=(65536-50000)%256;
          tt++;

          }


          //-----------------------------------------------

          //
          //每按一次RD增加60秒,每按一次WR減少60秒,每按一次T1增加30秒,每按一次T0減少30秒
          //按下INT1啟動,按下INT0停止
          //我們知道微波爐是不會自動運行的,得手動啟動,所以設定好定時時長后按下INT0啟動。結束后蜂鳴器響3聲
          //已完善的程序見另一章文章:
          //免責聲明:這是模擬微波爐的定時



          評論


          相關推薦

          技術專區(qū)

          關閉