<video id="fj17p"><progress id="fj17p"><nobr id="fj17p"></nobr></progress></video>

      <sub id="fj17p"></sub>

        <thead id="fj17p"><meter id="fj17p"></meter></thead>
        <address id="fj17p"><meter id="fj17p"><cite id="fj17p"></cite></meter></address>

          <th id="fj17p"></th>
          <th id="fj17p"><meter id="fj17p"><dfn id="fj17p"></dfn></meter></th>
          <track id="fj17p"><address id="fj17p"></address></track>

          <nobr id="fj17p"></nobr>

          <th id="fj17p"><progress id="fj17p"><listing id="fj17p"></listing></progress></th>

              (玩電子) 電子技術學習與研究
              當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

              51單片機電子鐘制作-升級版

              作者:佚名   來源:本站原創   點擊數:x  更新時間:2011年08月23日   【字體:

                       經過兩天熬夜的艱苦奮戰,在原程序基礎上進行升級,添加按鍵多功能操作

                        新增功能:1.  K1模式轉換,可自由切換:主界面顯示,時間調整,鬧鐘設置,溫度上下限設定等。等                           2.  K2選定需要調整的位數。

                           切換至時間調整時,通過K3-"加",K4-"減"按鍵調整數值。

                           切換至鬧鐘設置時,通過K3-"加",K4-"減"按鍵調整數值。

                           切換至溫度上下限設定時,通過K3-"加",K4-"減"按鍵調整數值。

              準備擴展的新功能:鬧鐘音樂,喇叭開啟和關閉,。

               操作說明:

                       開機進入主界面,顯示時鐘和溫度。按下K1時,進入模式選擇,(有時間調整,鬧鐘設置,溫度上下限設定等),當K1按下四次后,長響一聲,回到主界面。

                        當K1(模式選擇鍵)按下第一次,選擇在時間調整時,按下K2,選定需要調整的位數,選定的位數會一秒鐘不停的閃爍。然后按下K3 “加”或者K4 “減”按鍵,進行數值的加減,當K2按到五次時,返回時間調整界面。

                        再按下K1(模式選擇鍵)按下第二次,進入到下一個模式,鬧鐘設置。按下K2,選定需要調整的位數,選定的位數會一秒鐘不停的閃爍。然后按下K3 “加”或者K4 “減”按鍵,進行數值的加減,當K2按到五次時,返回鬧鐘設置界面。

                        再按下K1(模式選擇鍵)按下第三次,進入到下一個模式,溫度上下限設定。按下K2,選定需要調整的位數,選定的位數會一秒鐘不停的閃爍。然后按下K3 “加”或者K4 “減”按鍵,進行數值的加減,當K2按到五次時,返回溫度上下限設定界面。

                        當K1(模式選擇鍵)按下第四次,返回到時鐘和溫度主界面顯示。



               

               

              下面是我錄制的一段視頻文件:
               


              采用的是stc89c51單片機,代碼為自己原創,沒有進行整理和優化,有點亂,還有些沒有加注釋說明
              完整的源代碼下載地址:http://www.hvqh.net/f/dianzz5.rar 

              #include"reg51.h"
              #define uchar unsigned char 
              #define uint unsigned int
               
              
              
              /****溫度 端口定義******/
                sbit wx5=P2^4;
                sbit wx6=P2^5;
                sbit wx7=P2^6;
                sbit wx8=P2^7;
                sbit DQ=P3^6;
              
                uint temp, temp1,temp2, xs,H1,H2,L1,L2;             
              
                uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,
                     0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0X9c,0xc6,0x91,0xfc,0XE3};   
              
              
              /******延時程序*******/ 
               void delay1(uint m)
                  {
                    uint i,j;
                  for(i=m;i>0;i--)
                 for(j=110;j>0;j--);
                  }
              
              
               void delay(unsigned int m)
                  {
                    while(m--);
                   }
              
               void Init_DS18B20()  
                 {
                   unsigned char x=0;
                   DQ = 1;          //DQ復位 ds18b20通信端口 
                   delay(8); //稍做延時
                   DQ = 0;          //單片機將DQ拉低
                   delay(80); //精確延時 大于 480us
                   DQ = 1;          //拉高總線   
                   delay(4);
                   x=DQ;            //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
                   delay(20);
                  }
              
               
              
              
              /***********ds18b20讀一個字節**************/
                uchar ReadOneChar()
                 {
                   unsigned char i=0;
                   unsigned char dat = 0;
                   for (i=8;i>0;i--)
                   {
                    DQ = 0; // 高電平拉成低電平時讀周期開始
                    dat>>=1;
                    DQ = 1; // 給脈沖信號
                    if(DQ)
                    dat|=0x80;   // 
                    delay(4);
                    }
                   return(dat);
                 }
              
               
              
              /*************ds18b20寫一個字節****************/
                void WriteOneChar(unsigned char dat)
                {
                 unsigned char i=0;
                 for (i=8; i>0; i--)
                  {
                    DQ = 0;          //從高電平拉至低電平時,寫周期的開始
                    DQ = dat&0x01;   //數據的最低位先寫入
                    delay(5);        //60us到120us延時
                    DQ = 1;        
                    dat>>=1;         //從最低位到最高位傳入
                  }
                }
              
              
              /**************讀取ds18b20當前溫度************/
              void ReadTemperature()
                {
                  unsigned char a=0;
                  unsigned  b=0;
                  unsigned  t=0;
              
                  Init_DS18B20();
                  WriteOneChar(0xCC);   // 跳過讀序號列號的操作
                  WriteOneChar(0x44);   // 啟動溫度轉換 
                  delay(1);            // this message is wery important
                  Init_DS18B20();
                  WriteOneChar(0xCC);   //跳過讀序號列號的操作
                  WriteOneChar(0xBE);   //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度
                  delay(1);
                  a=ReadOneChar();      //讀取溫度值低位  
                  b=ReadOneChar();      //讀取溫度值高位    
                  temp1=b<<4;           //高8位中后三位數的值 
                  temp1+=(a&0xf0)>>4;   //低8位中的高4位值加上高8位中后三位數的值   temp1室溫整數值
                  temp2=a&0x0f;         //小數的值
                  temp=((b*256+a)>>4);  //當前采集溫度值除16得 實際溫度值    zhenshu    
                  xs=temp2*0.0625*10;   //小數位,若為0.5則算為5來顯示  xs小數    xiaoshu
                 }
              
               
              
               
              
               
              
              ////////////////////////////////////////////////////////////////////////
              ////////////////////////////////////////////////////////////////////////
              ///////////////////////////////////////////////////////////////////////
              /****時鐘 端口定義******/
                sbit wx1=P2^0;
                sbit wx2=P2^1;
                sbit wx3=P2^2;
                sbit wx4=P2^3;
              
              
                uchar  qian,bai,shi,ge,miao1,miao2,count1,count2;
                uchar  n1,n2,z1,z2;//設置鬧鐘變量
                uchar code table1[]={0xc0,0xcf,0xa4,0x86,0x8b,
                     0x92,0x90,0xc7,0x80,0x82};
              
              
                
              
                ////////////////////////////////////////////
                /***************按鍵調時程序***************/ 
              
                 sbit K1=P3^0;
                 sbit K2=P3^1;
                 sbit K3=P3^2;
                 sbit K4=P3^3;
              
              
                 sbit BEEP=P3^7;    //// 定義蜂鳴器口
              
                 uchar K1num,K2num,K3num,K4num,K5num,K6num,K7num;
              
              
                 
              
                //////////////////////////////////////////
                  /**********報警聲音**************/
              
                 bi(uint t)
                 {
                    int c,n;
                    for(c=0;c<t;c++)
                    {
                    for(n=0;n<50;n++);
                    BEEP=~BEEP;      //按位取反BEEP
                    }
                 return(t);
                 }
              
               
              
              
                ///////////////////////////////////////////////
              /********定時器初始化*************/ 
              
                void init1()
                  {
                    TMOD=0x01; //定義定時器0,工作方式1  
                    TH0=(65536-50000)/256;   //高8位  
                    TL0=(65536-50000)%256;   //低8位  
                    EA=1;     //開全局中斷  
                    ET0=1;    
                    TR0=1;    //打開定時器   
                   }
              
               ///////////////////////////////////////////////  
              /***********定時器中斷函數************/ 
              
              
                void timer0() interrupt 1
                 {  
                   TH0=50;
                   TL0=50;
                   count1++; 
                 if( count1==19 ) {count1=0; miao1++;//LED1=~LED1;                   
                 if( miao1==10 ) { miao1=0;  miao2++; }
                 if( miao2== 6 ) { miao2=0;     ge++; }
                 if(    ge==10 ) {    ge=0;    shi++; }
                 if(   shi== 6 ) {   shi=0;    bai++; }
                 if(   bai==10 ) {   bai=0;   qian++; }
                 if(  qian== 3 ) {  qian=0;     }
                 if(qian==2&&bai==4){qian=0;bai=0;    }} 
                 }                 
              
                
                
                
                 void init2()
                  {
                    TMOD=0x01; //定義定時器0,工作方式1  
                    TH1=(65536-50000)/256;   //高8位  
                    TL1=(65536-50000)%256;   //低8位  
                    EA=1;     //開全局中斷  
                    ET1=1;    
                    TR1=1;    //打開定時器   
                   }
              
               ///////////////////////////////////////////////  
              /***********定時器中斷函數************/ 
                void timer1() interrupt 3
                 {  
                   TH1=50;
                   TL1=50;
                   count2++; 
                 if( count2==120 ) {count2=0;  }}                       
              
               
              
              
              void  MODE() //模式選擇
              {
              //正常顯示 時鐘和溫度   
              if( K1num==0 )       
                    { 
                   TR0=1;TR1=0;  //打開定時器0,關閉定時器1
              
                wx1=1; P0=table[qian]; delay1(2);wx1=0;  //時十位 
                 if( count1<9.5 )  //時分之間的小數點閃爍,定時器0小于0.5秒,小數點亮
                  {
                wx2=1; P0=table[bai]+0X80;  delay1(2); wx2=0; //時個位打開小數點
                wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0; //分十位+小數點
                  }
                    else    //定時器0大于0.5秒,小數點滅
                  {
                wx2=1; P0=table[bai];       delay1(2); wx2=0;  //時個位關閉小數點
                wx3=1; P0=table1[shi];      delay1(2); wx3=0;  //分十位關閉小數點
                  }   
                wx4=1; P0=table1[ge];       delay1(2); wx4=0;  //分個位    
                wx5=1; P0=table[temp/10];   delay1(2); wx5=0;  //溫度十位
                      wx6=1; P0=table[temp%10];   delay1(2); wx6=0;  //溫度個位
                wx7=1; P0=table[12];        delay1(2); wx7=0;  //溫度℃
                      wx8=1; P0=table[13];        delay1(2); wx8=0;  //溫度℃ 
              
                  if((n1==qian)&&(n2==bai)&&(z1==shi)&&(z2=ge)) { bi(2000);}
                  if((H1==temp/10)&(H2==temp%10))           { bi(1000); }
                  if((L1==temp/10)&(L2==temp%10))           { bi(500); }
                }
              
              //時間調整顯示
              if((K1num==1 )&&(K2num==0))
                  {
                   TR1=0; 
                   wx1=1; P0=table[qian];      delay1(2); wx1=0;   //時十位 
                wx2=1; P0=table[bai]+0X80;  delay1(2); wx2=0;   //時個位,小數點停止不動
                wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0;   //分十位,小數點停止不動
                wx4=1; P0=table1[ge];       delay1(2); wx4=0;   //分個位  
                wx5=1; P0=0xBF;             delay1(2); wx5=0; //-
                wx6=1; P0=0x92;             delay1(2); wx6=0;   //s 
                wx7=1; P0=0x87;             delay1(2); wx7=0;   //t  
                wx8=1; P0=0xBF;             delay1(2); wx8=0; //-
                }
              if((K1num==1 )&&(K2num==1))
                  {
                   TR1=1; 
               if (count2<60)
                  {wx1=1; P0=table[qian];      delay1(2); wx1=0; }  //時十位       
                else {wx1=1; P0=0xff;             delay1(2); wx1=0; }  //時十位 
                wx2=1; P0=table[bai]+0X80;  delay1(2); wx2=0;    //時個位,小數點停止不動
                wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0;    //分十位,小數點停止不動
                wx4=1; P0=table1[ge];       delay1(2); wx4=0;    //分個位  
                wx5=1; P0=0xBF;             delay1(2); wx5=0;  //-
                wx6=1; P0=0x92;             delay1(2); wx6=0;    //s 
                wx7=1; P0=0x87;             delay1(2); wx7=0;    //t  
                wx8=1; P0=0xBF;             delay1(2); wx8=0;  //-
                 }
              if((K1num==1 )&&(K2num==2))
                  {
                   TR1=1;  
                   wx1=1; P0=table[qian];      delay1(2); wx1=0;   //時十位       
               if (count2<60)
                  {wx2=1; P0=table[bai]+0X80; delay1(2); wx2=0; }  //時個位,小數點停止不動 
                else {wx2=1; P0=0xff;            delay1(2); wx2=0; }
                wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0;   //分十位,小數點停止不動
                wx4=1; P0=table1[ge];       delay1(2); wx4=0;   //分個位  
                wx5=1; P0=0xBF;             delay1(2); wx5=0; //-
                wx6=1; P0=0x92;             delay1(2); wx6=0;   //s 
                wx7=1; P0=0x87;             delay1(2); wx7=0;   //t  
                wx8=1; P0=0xBF;             delay1(2); wx8=0; //-
                 }
              if((K1num==1 )&&(K2num==3))
                  {
                   TR1=1;
                   wx1=1; P0=table[qian];      delay1(2); wx1=0;   //時十位       
                wx2=1; P0=table[bai]+0X80;  delay1(2); wx2=0;   //時個位,小數點停止不動
               if (count2<60)
                  {wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0; } //分十位,小數點停止不動
                else {wx3=1; P0=0xff;             delay1(2); wx3=0; }
                wx4=1; P0=table1[ge];       delay1(2); wx4=0;   //分個位  
                wx5=1; P0=0xBF;             delay1(2); wx5=0; //-
                wx6=1; P0=0x92;             delay1(2); wx6=0;   //s 
                wx7=1; P0=0x87;             delay1(2); wx7=0;   //t  
                wx8=1; P0=0xBF;             delay1(2); wx8=0; //-
                  }
              if((K1num==1 )&&(K2num==4))
                  {
                   TR1=1; 
                   wx1=1; P0=table[qian];      delay1(2); wx1=0;  //時十位       
                wx2=1; P0=table[bai]+0X80;  delay1(2); wx2=0;  //時個位,小數點停止不動
                wx3=1; P0=table1[shi]+0X80; delay1(2); wx3=0;  //分十位,小數點停止不動
               if (count2<60)
                  {wx4=1; P0=table1[ge];       delay1(2); wx4=0; }//分個位
                else {wx4=1; P0=0xff;             delay1(2); wx4=0; }  
                wx5=1; P0=0xBF;             delay1(2); wx5=0; //-
                wx6=1; P0=0x92;             delay1(2); wx6=0;   //s 
                wx7=1; P0=0x87;             delay1(2); wx7=0;   //t  
                wx8=1; P0=0xBF;             delay1(2); wx8=0; //-
                }
              
              
              //鬧鐘調整顯示
              if(( K1num==2 )&&(K3num==0))
                  {
                   TR1=0;   
                   wx1=1; P0=0x89;             delay1(2); wx1=0;   //H 
                wx2=1; P0=0xBF;             delay1(2); wx2=0; //-
                wx3=1; P0=table1[n1];       delay1(2); wx3=0; //時十位
                wx4=1; P0=table1[n2];       delay1(2); wx4=0;  //時個位 
                wx5=1; P0=0x8E;             delay1(2); wx5=0; //F
                wx6=1; P0=0xBF;             delay1(2); wx6=0;   //- 
                wx7=1; P0=table[z1];        delay1(2); wx7=0;   //分十位  
                wx8=1; P0=table[z2];     delay1(2); wx8=0; //分個位
                  }
              if (( K1num==2 )&&(K3num==1))
                      {
                TR1=1;
                wx1=1; P0=0x89;             delay1(2); wx1=0;   //H 
                wx2=1; P0=0xBF;             delay1(2); wx2=0; //-
               if (count2<60)
                  {wx3=1; P0=table1[n1];       delay1(2); wx3=0;} //時十位
                else {wx3=1; P0=0xff;      delay1(2); wx3=0;}
                wx4=1; P0=table1[n2];       delay1(2); wx4=0;  //時個位 
                wx5=1; P0=0x8E;             delay1(2); wx5=0; //F
                wx6=1; P0=0xBF;             delay1(2); wx6=0;   //- 
                wx7=1; P0=table[z1];        delay1(2); wx7=0;   //分十位  
                wx8=1; P0=table[z2];     delay1(2); wx8=0; //分個位
                }
              if(( K1num==2 )&&(K3num==2))
                      {
                TR1=1;
                wx1=1; P0=0x89;             delay1(2); wx1=0;   //H 
                wx2=1; P0=0xBF;             delay1(2); wx2=0; //-
                   wx3=1; P0=table1[n1];       delay1(2); wx3=0; //時十位
               if(count2<60)
                {wx4=1; P0=table1[n2];       delay1(2); wx4=0;}  //時個位 
               else{wx4=1; P0=0xff;       delay1(2); wx4=0;}
                   wx5=1; P0=0x8E;             delay1(2); wx5=0; //F
                wx6=1; P0=0xBF;             delay1(2); wx6=0;   //- 
                wx7=1; P0=table[z1];        delay1(2); wx7=0;   //分十位  
                wx8=1; P0=table[z2];     delay1(2); wx8=0; //分個位
                }
              if (( K1num==2 )&&(K3num==3))
                      {
                TR1=1;
                wx1=1; P0=0x89;             delay1(2); wx1=0;   //H 
                wx2=1; P0=0xBF;             delay1(2); wx2=0; //-
                   wx3=1; P0=table1[n1];       delay1(2); wx3=0; //時十位
                wx4=1; P0=table1[n2];       delay1(2); wx4=0;  //時個位 
                   wx5=1; P0=0x8E;             delay1(2); wx5=0; //F
                wx6=1; P0=0xBF;             delay1(2); wx6=0;   //- 
               if(count2<60)
                {wx7=1; P0=table[z1];        delay1(2); wx7=0;}   //分十位 
                  else{wx7=1; P0=0xff;        delay1(2); wx7=0;}   
                wx8=1; P0=table[z2];     delay1(2); ;wx8=0; //分個位
                }
              if (( K1num==2 )&&(K3num==4))
                      {
                TR1=1;
                wx1=1; P0=0x89;             delay1(2); wx1=0;   //H 
                wx2=1; P0=0xBF;             delay1(2); wx2=0; //-
                   wx3=1; P0=table1[n1];       delay1(2); wx3=0; //時十位
                wx4=1; P0=table1[n2];       delay1(2); wx4=0;  //時個位 
                   wx5=1; P0=0x8E;             delay1(2); wx5=0; //F
                wx6=1; P0=0xBF;             delay1(2); wx6=0;   //- 
                   wx7=1; P0=table[z1];        delay1(2); wx7=0;   //分十位 
                if(count2<60)  
                {wx8=1; P0=table[z2];     delay1(2); wx8=0;} //分個位
               else{wx8=1; P0=0xff;     delay1(2); wx8=0;}
                }
              
                   
              //溫度調整顯示
              if( (K1num==3)&&(K4num==0) )
                  {
                   TR1=0;   
                   wx1=1; P0=0x89;             delay1(2); wx1=0;   //H 
                wx2=1; P0=0xBF;             delay1(2); wx2=0; //-
                wx3=1; P0=table1[H1];       delay1(2); wx3=0; //時十位
                wx4=1; P0=table1[H2];       delay1(2); wx4=0;  //時個位 
                wx5=1; P0=0xC7;             delay1(2); wx5=0; //L
                wx6=1; P0=0xBF;             delay1(2); wx6=0;   //- 
                wx7=1; P0=table[L1];        delay1(2); wx7=0;   //分十位  
                wx8=1; P0=table[L2];     delay1(2); wx8=0; //分個位
                  }
              
              if( (K1num==3)&&(K4num==1) )
                  {
                   TR1=1;   
                   wx1=1; P0=0x89;             delay1(2); wx1=0;   //H 
                wx2=1; P0=0xBF;             delay1(2); wx2=0; //-
                if(count2<60)
                {wx3=1; P0=table1[H1];       delay1(2); wx3=0;} //時十位
                else
                {wx3=1; P0=0xff;       delay1(2); wx3=0;}
                wx4=1; P0=table1[H2];       delay1(2); wx4=0;  //時個位 
                wx5=1; P0=0xC7;             delay1(2); wx5=0; //L
                wx6=1; P0=0xBF;             delay1(2); wx6=0;   //- 
                wx7=1; P0=table[L1];        delay1(2); wx7=0;   //分十位  
                wx8=1; P0=table[L2];     delay1(2); wx8=0; //分個位
                  }    
              
              if( (K1num==3)&&(K4num==2) )
                  {
                   TR1=1;   
                   wx1=1; P0=0x89;             delay1(2); wx1=0;   //H 
                wx2=1; P0=0xBF;             delay1(2); wx2=0; //-
                wx3=1; P0=table1[H1];       delay1(2); wx3=0; //時十位
               if(count2<60) 
                {wx4=1; P0=table1[H2];      delay1(2); wx4=0;}  //時個位
               else {wx4=1; P0=0xff;           delay1(2); wx4=0;}  
                wx5=1; P0=0xC7;             delay1(2); wx5=0; //L
                wx6=1; P0=0xBF;             delay1(2); wx6=0;   //- 
                wx7=1; P0=table[L1];        delay1(2); wx7=0;   //分十位  
                wx8=1; P0=table[L2];     delay1(2); wx8=0; //分個位
                  } 
                  
              if( (K1num==3)&&(K4num==3) )
                  {
                   TR1=1;   
                   wx1=1; P0=0x89;             delay1(2); wx1=0;   //H 
                wx2=1; P0=0xBF;             delay1(2); wx2=0; //- 
                wx3=1; P0=table1[H1];       delay1(2); wx3=0; //時十位
                wx4=1; P0=table1[H2];       delay1(2); wx4=0;  //時個位 
                wx5=1; P0=0xC7;             delay1(2); wx5=0; //L
                wx6=1; P0=0xBF;             delay1(2); wx6=0;   //- 
               if(count2<60)
                {wx7=1; P0=table[L1];        delay1(2); wx7=0;}   //分十位 
                   else {wx7=1; P0=0xff;        delay1(2); wx7=0;}   
                wx8=1; P0=table[L2];     delay1(2); wx8=0; //分個位
                  }          
              
              if( (K1num==3)&&(K4num==4) )
                  {
                   TR1=1;   
                   wx1=1; P0=0x89;             delay1(2); wx1=0;   //H 
                wx2=1; P0=0xBF;             delay1(2); wx2=0; //- 
                wx3=1; P0=table1[H1];       delay1(2); wx3=0; //時十位
                wx4=1; P0=table1[H2];       delay1(2); wx4=0;  //時個位 
                wx5=1; P0=0xC7;             delay1(2); wx5=0; //L
                wx6=1; P0=0xBF;             delay1(2); wx6=0;   //-  
                wx7=1; P0=table[L1];        delay1(2); wx7=0;   //分十位
               if(count2<60)     
                {wx8=1; P0=table[L2];     delay1(2); wx8=0;} //分個位
               else{wx8=1; P0=0xff;     delay1(2); wx8=0;}
                  }
              
               
              
               
              
              
              //喇叭開啟關閉顯示
              if( (K1num==4)&&(K5num==0) )
                  {
                   TR1=0;   
                   wx1=1; P0=0x92;             delay1(2); wx1=0;   //S 
                wx2=1; P0=0x8C;             delay1(2); wx2=0; //P
                wx3=1; P0=0x81;             delay1(2); wx3=0; //A
                wx4=1; P0=0xF0;             delay1(2); wx4=0;  //C 
                wx5=1; P0=0xBF;             delay1(2); wx5=0; //-
                wx6=1; P0=0xF7;             delay1(2); wx6=0;   //_ 
                wx7=1; P0=0xF7;             delay1(2); wx7=0;   //_  
                wx8=1; P0=0xBF;             delay1(2); wx8=0; //-
                  }
                  
              if( (K1num==4)&&(K5num==1) )
                  {
                   TR1=1;   
                   wx1=1; P0=0x92;             delay1(2); wx1=0;   //S 
                wx2=1; P0=0x8C;             delay1(2); wx2=0; //P
                wx3=1; P0=0x81;             delay1(2); wx3=0; //A
                wx4=1; P0=0xF0;             delay1(2); wx4=0;  //C 
                wx5=1; P0=0xBF;             delay1(2); wx5=0; //-
                wx6=1; P0=0xC0;             delay1(2); wx6=0;   //o 
                wx7=1; P0=0x8E;             delay1(2); wx7=0;   //F  
                wx8=1; P0=0x8E;             delay1(2); wx8=0; //F
                  }
                  
              if( (K1num==4)&&(K5num==2) )
                  {
                   TR1=1;   
                   wx1=1; P0=0x92;             delay1(2); wx1=0;   //S 
                wx2=1; P0=0x8C;             delay1(2); wx2=0; //P
                wx3=1; P0=0x81;             delay1(2); wx3=0; //A
                wx4=1; P0=0xF0;             delay1(2); wx4=0;  //C 
                wx5=1; P0=0xBF;             delay1(2); wx5=0; //-
                wx6=1; P0=0xC0;             delay1(2); wx6=0;   //o 
                wx7=1; P0=0xC8;             delay1(2); wx7=0;   //n  
                wx8=1; P0=0xBF;             delay1(2); wx8=0; //-
                  }                           
                 }  
                
              
               
              
               
              
               
              //////////////////////////////////////////////////////////////////////////////////// 
              ///////////////////按鍵功能設置///////////////////////////////////////////////////// 
              //////////////////////////////////////////////////////////////////////////////////// 
                void keycan()
                {
                /**********模式選擇***********/
                if( K1==0  )  { K1num++; delay(5);
                if( K1==0  )  { while(!K1); bi(350);
                if(K1num==5)  { K1num=0;bi(650);TR0=1;TR1=0;} } }
                           
                if(K1num!=0) 
                  {
                if( K2==0  )  { K2num++; K3num++; K4num++; K5num++; delay(5);
                   if( K2==0  )  { while(!K2);bi(100); TR1=1;
                {
                if(K2num==5)  { K2num=0;bi(400);TR1=0;}
                if(K3num==5)  { K3num=0;bi(400);TR1=0;} 
                if(K4num==5)  { K4num=0;bi(400);TR1=0;} 
                if(K5num==3)  { K5num=0;bi(400);TR1=0;} }}}  }
                 
                 if(K1num!=0)  //加
                  {
                if( K3==0 )  { delay(5);
                if( K3==0 )  { while(!K3); bi(100);
                if((K1num==1)&&(K2num==1)) { qian++; if(qian==3 ) qian=0; }      
                      if((K1num==1)&&(K2num==2)) {  bai++; if( bai==10)  bai=0; }
                   if((K1num==1)&&(K2num==3)) {  shi++; if( shi==6 )  shi=0; }
                   if((K1num==1)&&(K2num==4)) {   ge++; if(  ge==10)   ge=0; } 
                if((K1num==2)&&(K3num==1)) {   n1++; if(  n1==3 )   n1=0; }
                if((K1num==2)&&(K3num==2)) {   n2++; if(  n2==10)   n2=0; }
                if((K1num==2)&&(K3num==3)) {   z1++; if(  z1==6 )   z1=0; }
                if((K1num==2)&&(K3num==4)) {   z2++; if(  z2==19)   z2=0; }
                if((K1num==3)&&(K4num==1)) {   H1++; if(  H1==10)   H1=0; }
                if((K1num==3)&&(K4num==2)) {   H2++; if(  H2==10)   H2=0; }
                if((K1num==3)&&(K4num==3)) {   L1++; if(  L1==10)   L1=0; }
                if((K1num==3)&&(K4num==4)) {   L2++; if(  L2==10)   L2=0; }
                if((K1num==4)&&(K5num==1)) {   BEEP=0; }                                  
                   }  }
                             
                 if( K4==0 )  { delay(5);
                 if( K4==0 )  { while(!K4); bi(100);
                if((K1num==1)&&(K2num==1)) { qian--; if(qian==-1) qian=2; }      
                      if((K1num==1)&&(K2num==2)) {  bai--; if( bai==-1)  bai=9; }
                   if((K1num==1)&&(K2num==3)) {  shi--; if( shi==-1)  shi=5; }
                   if((K1num==1)&&(K2num==4)) {   ge--; if(  ge==-1)   ge=9; }
                if((K1num==2)&&(K3num==1)) {   n1--; if(  n1==-1)   n1=2; }
                if((K1num==2)&&(K3num==2)) {   n2--; if(  n2==-1)   n2=9; }
                if((K1num==2)&&(K3num==3)) {   z1--; if(  z1==-1)   z1=5; }
                if((K1num==2)&&(K3num==4)) {   z2--; if(  z2==-1)   z2=9; }
                if((K1num==3)&&(K4num==1)) {   H1--; if(  H1==-1)   H1=9; }
                if((K1num==3)&&(K4num==2)) {   H2--; if(  H2==-1)   H2=9; }
                if((K1num==3)&&(K4num==3)) {   L1--; if(  L1==-1)   L1=9; }
                if((K1num==3)&&(K4num==4)) {   L2--; if(  L2==-1)   L2=9; }
                if((K1num==4)&&(K5num==2)) {   bi(); }   
                  }
                 } 
                }
                  }
              
               
              
               
              
              ///////////////////////////////////////////// 
              ////////////////
              /////////////////////////////////////////////////////////////
              /***********主函數********************/
              ////////////////////////////////////////////////////////////
               void main()
               { 
                  BEEP=0;
                  init1();
               init2();
                  qian=0;bai=6;shi=3;ge=0;miao2=0;miao1=0,H1=H2=L1=L2=2,n1=n2=z1=z2=1;
                  while(1)
                   {         
                     ReadTemperature();
                  keycan();
                     MODE();
                  
                   }
                }
              
              
              
              發表評論】【告訴好友】【收藏此文】【關閉窗口

              文章評論

              相關文章

              幸运飞艇群二维码2018

              <video id="fj17p"><progress id="fj17p"><nobr id="fj17p"></nobr></progress></video>

                  <sub id="fj17p"></sub>

                    <thead id="fj17p"><meter id="fj17p"></meter></thead>
                    <address id="fj17p"><meter id="fj17p"><cite id="fj17p"></cite></meter></address>

                      <th id="fj17p"></th>
                      <th id="fj17p"><meter id="fj17p"><dfn id="fj17p"></dfn></meter></th>
                      <track id="fj17p"><address id="fj17p"></address></track>

                      <nobr id="fj17p"></nobr>

                      <th id="fj17p"><progress id="fj17p"><listing id="fj17p"></listing></progress></th>

                          <video id="fj17p"><progress id="fj17p"><nobr id="fj17p"></nobr></progress></video>

                              <sub id="fj17p"></sub>

                                <thead id="fj17p"><meter id="fj17p"></meter></thead>
                                <address id="fj17p"><meter id="fj17p"><cite id="fj17p"></cite></meter></address>

                                  <th id="fj17p"></th>
                                  <th id="fj17p"><meter id="fj17p"><dfn id="fj17p"></dfn></meter></th>
                                  <track id="fj17p"><address id="fj17p"></address></track>

                                  <nobr id="fj17p"></nobr>

                                  <th id="fj17p"><progress id="fj17p"><listing id="fj17p"></listing></progress></th>

                                      宁夏十一选五开奖查询 酷狗彩票群 看贵州快三开奖结果 云南时时彩前三走势图带连线 av裸体美女 组选奖号808前后关系 贵州快三推荐号码专家 股票投资参考 麻将公式 丰禾棋牌为什么打不开 温碧霞艳照门 棒球球具 郑州站街女分布 模拟人生4 工作赚钱 21点游戏手机版 另类sm捆绑美女图片