wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4861|回復: 2
收起左側

怎么添加ds1302時鐘芯片到程序里

[復制鏈接]
ID:138006 發表于 2016-9-1 18:45 | 顯示全部樓層 |閱讀模式
現有一個時鐘程序,但是沒有寫調用ds1302芯片的程序 斷電后就歸零了 請教前輩們怎么添加代碼才能實現呢 ?還有顯示溫度的間隔只有5秒,這個怎么設置長一點的時間  程序如下 #include<reg52.h>
#include<intrins.h>

#define uchar unsigned char
#define uint  unsigned int

sbit    dis_bit1=P2^7;//定義數碼管控制口
sbit    dis_bit2=P2^6;//定義數碼管控制口
sbit    dis_bit3=P2^4;//定義數碼管控制口
sbit    dis_bit4=P2^3;//定義數碼管控制口
sbit    dis_bit5=P2^1;//定義數碼管控制口
sbit    dis_bit6=P2^0;//定義數碼管控制口
sbit    led1_bit=P2^2;//定時LED的控制口
sbit    led2_bit=P2^5;//定時LED的控制口
sbit    s1_bit=P1^0;  //定義S1控制口
sbit    s2_bit=P1^1;  //定義S2控制口
sbit    s3_bit=P1^2;  //定義S3控制口
sbit    dq_ds18b20=P3^3;//定義控制DS18B20
sbit    speak=P3^7;   //定義蜂鳴器控制口
#define smg_data    P0//定義數碼管數據口

void  delay_3us();//3US的延時程序
void  delay_8us(uint t);//8US延時基準程序
void  delay_50us(uint t);//延時50*T微妙函數的聲明
void  display1(uchar dis_data);//數碼管1顯示子程序
void  display2(uchar dis_data);//數碼管2顯示子程序
void  display3(uchar dis_data);//數碼管3顯示子程序
void  display4(uchar dis_data);//數碼管4顯示子程序
void  display5(uchar dis_data);//數碼管5顯示子程序
void  display6(uchar dis_data);//數碼管6顯示子程序
void  init_t0();//定時器0初始化函數
void  dis_led();//LED處理函數
void  judge_s1();//S1按鍵處理函數
void  judge_s2();//S2按鍵處理函數
void  judge_s3();//S3按鍵處理函數
void  dis(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1);//顯示子程序
void  dis_san(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1,uchar san);//閃爍顯示子程序
void  judge_dis();//顯示處理函數
void  judge_clock();//顯示處理函數
//***********************************************************************
//DS18B20測溫函數定義
void w_1byte_ds18b20(uchar value);//向DS18B20寫一個字節
uchar r_1byte_ds18b20(void);//從DS18B20讀取一個字節的數據
void rest_ds18b20(void);//DS18B20復位程序
void readtemp_ds18b20(void);//讀取溫度
void dis_temp();//溫度顯示函數




//共陽數碼管斷碼表
const uchar tabl1[15]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
                               // 0  1    2    3    4    5
                               0x82,0xf8,0x80,0x90,0x86,0x87,0xFF,
                              //6   7     8    9     E    T   B
                                    0xc6,0xbf};
                              //    C      -
const uchar tabl3[]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
uchar t0_crycle;
uchar hour_count,minute_count,second_count,msecond_count;
uchar clock_hour,clock_minute;
uchar countdown_second;
uchar countdown_hour,countdown_minute;
uchar clock_en;//鬧鐘關閉和開啟的標志,1開啟,0關閉
uchar flag1,second_flag,zancun1,zancun2,zancun3,zancun7;
uchar clock_flag,countdown_flag;
uchar msecond_minute,msecond_second,msecond_msecond,msecond_flag;//秒表相關參數
uint  speak_count;
uchar templ,temph,temp_flag;
uchar  t_b,t_s,t_g,t_x,temp_flag2;//從左到右分別存儲溫度百位,十位,個位,小數位
//主程序
void main()
{
    P3=0x00;
    flag1=0;   
    zancun3=0;
    msecond_minute=0;//置秒表相關參數為0
    msecond_second=0;
    msecond_msecond=0;
    speak=1;//關閉蜂鳴器
    speak_count=0;
    clock_hour=0;
    clock_minute=0;
    clock_flag=0;
    countdown_flag=0;//倒計時標志位為0
    clock_en=0;//開機時默認關閉鬧鐘
    init_t0();
    TR0=1;//
   //接下來開始編寫讓數碼管顯示的程序
    while(1)
    {
      judge_dis();//顯示處理
      judge_s1();
      judge_s2();
      judge_s3();
      judge_clock();//鬧鐘處理程序
    }
}
void timer0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        t0_crycle++;
        if(t0_crycle==2)// 0.1秒
        {
          t0_crycle=0;
      msecond_flag=1;
          msecond_count++;
      if(msecond_count==10)//1秒
      {
        msecond_count=0;
        second_flag=1;
        second_count++;
        if(second_count==60)
        {
          second_count=0;
          minute_count++;
          if(minute_count==60)
          {
            minute_count=0;
            hour_count++;
            if(hour_count==24)
            {
              hour_count=0;
            }
          }
        }
      }   
        }
}
//**************************************************
//顯示處理函數
void  judge_dis()
{     
    if(flag1==0)
    {
     if(second_flag==1)
      {
        zancun7++;
        second_flag=0;
      }
      if(zancun7<1)
      {
        if(temp_flag2==1)
        {
          readtemp_ds18b20();//讀取溫度  
          temp_flag2=0;
        }
        dis_temp();//溫度顯示函數
      }
      if(zancun7>=1)
      {
         temp_flag2=1;
         dis(hour_count/10,hour_count%10,minute_count/10,minute_count%10,second_count/10,second_count%10);
         dis_led();
         if(zancun7==5)zancun7=0;
      }
    }
    if(flag1!=0)
    {
       switch(flag1)
       {
           case 1:
                dis(5,10,11,1,12,12);//顯示SET1
                led1_bit=1;
                led2_bit=1;
                break;
           case 2:
                dis(5,10,11,2,12,12);//顯示SET2
                break;
           case 3:
                dis(5,10,11,3,12,12);//顯示SET3
                break;
           case 4:
                dis(5,10,11,4,12,12);//顯示SET4
                break;
           case 5:
                dis(5,10,11,5,12,12);//顯示SET5
                break;
           case 6:
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,1);
                break;
           case 7:
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,2);
                break;
           case 8:
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,3);
                break;
           case 9://進入修改時間,時間分位個位閃爍
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,12,4);
                break;
           case 10://進入修改鬧鐘,鬧鐘小時十位閃爍
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,1);
                break;
           case 11://進入修改鬧鐘,鬧鐘小時個位閃爍
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,2);
                break;
           case 12://進入修改鬧鐘,鬧鐘小時十位閃爍
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,3);
                break;
           case 13://進入修改鬧鐘,鬧鐘小時個位閃爍
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,4);
                break;
           case 14://進入修改鬧鐘的開關
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,12,zancun3,6);
                break;
           case 15:
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun3%10,1);
                break;
           case 16:
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun3%10,2);
                break;
           case 17:
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun3%10,3);
                break;
           case 18:
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun3%10,4);
                break;
           case 19:
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun3%10,5);
                break;
           case 20:
                dis_san(zancun1/10,zancun1%10,zancun2/10,zancun2%10,zancun3/10,zancun3%10,6);
                break;
           case 21:
                if(second_flag==1)
                {
                    second_flag=0;
                    countdown_second--;
                    if(countdown_second==255)
                    {
                        countdown_second=59;
                        countdown_minute--;
                        if(countdown_minute==255)
                        {
                            countdown_minute=59;
                            countdown_hour--;
                            if(countdown_hour==255)
                            {
                               flag1=22;
                               countdown_minute=0;
                               countdown_hour=0;
                               countdown_second=0;
                               countdown_flag=1;
                            }
                        }
                    }

                }
                dis(countdown_hour/10,countdown_hour%10,countdown_minute/10,countdown_minute%10,countdown_second/10,countdown_second%10);//
                break;
           case 22:
                if(countdown_flag>0 && countdown_flag<7)
                {
                   speak=0;
                   if(second_flag==1)
                   {
                       second_flag=0;
                       countdown_flag++;
                   }
                }
                else
                {
                   speak=1;
                }
                 dis(countdown_hour/10,countdown_hour%10,countdown_minute/10,countdown_minute%10,countdown_second/10,countdown_second%10);//
                break;
            case 23:
                dis(msecond_minute/10,msecond_minute%10,msecond_second/10,msecond_second%10,msecond_msecond%10,12);
                break;
            case 24:
                if(msecond_flag==1)
                {
                     msecond_flag=0;
                     msecond_msecond++;
                     if(msecond_msecond==10)
                     {
                         msecond_msecond=0;
                         msecond_second++;
                         if(msecond_second==60)
                         {
                           msecond_second=0;
                           msecond_minute++;
                           if(msecond_minute==100)
                           {
                             msecond_minute=99;
                             flag1=23;
                           }
                         }
                     }
                }
                dis(msecond_minute/10,msecond_minute%10,msecond_second/10,msecond_second%10,msecond_msecond%10,12);
                break;
            case 25:
                dis(zancun3/10,zancun3%10,zancun2/10,zancun2%10,zancun1/10,zancun1%10);
                break;
            default:
                break;
        }
    }
}
//**************************************************
//S1按鍵處理函數
void  judge_s1()
{
    s1_bit=1;//置IO為1,準備讀入收據
    if(s1_bit==0)//判斷是否有按鍵按下
    {
        delay_50us(1);// 延時,去除機械抖動
        if(s1_bit==0)
        {
           switch(flag1)
           {
               case 0:
               case 1:
               case 2:
               case 3:
               case 4:
               case 6:
               case 7:
               case 8:
               case 10:
               case 11:
               case 12:
               case 13:
               case 15:
               case 16:
               case 17:
               case 18:
               case 19:
                    flag1++;
                    break;
               case 9:
                    flag1=6;
                    break;
               case 14:
                    flag1=10;
                    break;
               case 20:
                    flag1=15;
                    break;
               case 5:
               case 21:
               case 22:
               case 23://系統從秒表狀態復位
               case 24://系統從秒表狀態復位
               case 25://系統從計數器復位
                    flag1=0;
                    break;
                default:
                    break;
           }           
           while(s1_bit==0)
           {
              judge_dis();
           }//等待按鍵釋放
        }
    }
}
//**************************************************
//S2按鍵處理函數
void  judge_s2()
{
    s2_bit=1;//置IO為1,準備讀入收據
    if(s2_bit==0)//判斷是否有按鍵按下
    {
        delay_50us(1);// 延時,去除機械抖動
        if(s2_bit==0)
        {
           switch (flag1)
           {
              case 1: //在顯示SET1狀態下按S2件,進入修改時間
                 flag1=6;
                 zancun1=hour_count;
                 zancun2=minute_count;
                 break;
              case 2://在顯示SET2狀態下按S2,進入設置鬧鐘
                 zancun1=clock_hour;
                 zancun2=clock_minute;
                 flag1=10;
                 break;
              case 6://修改時鐘小時十位狀態下按S2件
              case 7://修改時鐘小時個位狀態下按S2件
              case 8://修改時鐘分鐘十位狀態下按S2件
              case 9://修改時鐘分鐘個位狀態下按S2件
                 hour_count=zancun1;
                 minute_count=zancun2;
                 second_count=0;
                 flag1=0;
                 break;
              case 10://修改鬧鐘小時十位狀態下按S2
              case 11://修改鬧鐘小時個位狀態下按S2
              case 12://修改鬧鐘分鐘十位狀態下按S2
              case 13://修改鬧鐘分鐘個位狀態下按S2
              case 14://修改鬧鐘使能狀態下按S2
                 clock_hour=zancun1;
                 clock_minute=zancun2;
                 clock_en=zancun3;
                 flag1=0;
                 break;
              case 3:
                 flag1=15;
                 zancun1=countdown_hour;
                 zancun2=countdown_minute;
                 zancun3=countdown_second;
                 break;
              case 15:
              case 16:
              case 17:
              case 18:
              case 19:
              case 20:
                 countdown_hour=zancun1;
                 countdown_minute=zancun2;
                 countdown_second=zancun3;
                 flag1=21;
                 countdown_flag=0;
                 break;
              case 22:
                 flag1=21;
                 break;
              case 21:
                 flag1=22;
                 break;
              case 4:
                 flag1=23;//秒表暫停
                 msecond_minute=0;
                 msecond_second=0;
                 msecond_msecond=0;
                 break;
              case 23:
                 flag1=24;
                 break;
              case 24:
                 flag1=23;
                 break;
              case 5:
                 flag1=25;//進入計數器模式
                 zancun1=0;
                 zancun2=0;
                 zancun3=0;
                 break;
              default:
                 break;

           }   
           while(s2_bit==0)
           {
              judge_dis();
           }//等待按鍵釋放
        }
    }
}
//**************************************************
//S3按鍵處理函數
void  judge_s3()
{
    s3_bit=1;//置IO為1,準備讀入收據
    if(s3_bit==0)//判斷是否有按鍵按下
    {
        delay_50us(1);// 延時,去除機械抖動
        if(s3_bit==0)
        {
           switch (flag1)
           {

              case 6://修改時間小時的十位數
                 zancun1+=10;
                 if(zancun1>=24)zancun1=zancun1%10;
                 break;
              case 7://修改時間小時的個位數
                 zancun1=zancun1/10*10+(zancun1%10+1)%10;
                 if(zancun1>=24)zancun1=20;
                 break;
              case 8://修改時間分鐘的十位數
                 zancun2+=10;
                 if(zancun2>=60)zancun2-=60;
                 break;
              case 9://修改時間分鐘的個位數
                 zancun2=zancun2/10*10+(zancun2%10+1)%10;
                 break;
              case 10://修改鬧鐘小時的十位數
                 zancun1+=10;
                 if(zancun1>=24)zancun1=zancun1%10;
                 break;
              case 11://修改鬧鐘小時的個位數
                 zancun1=zancun1/10*10+(zancun1%10+1)%10;
                 if(zancun1>=24)zancun1=20;
                 break;
              case 12://修改鬧鐘分鐘的十位數
                 zancun2+=10;
                 if(zancun2>=60)zancun2-=60;
                 break;
              case 13://修改鬧鐘分鐘的個位數
                 zancun2=zancun2/10*10+(zancun2%10+1)%10;
                 break;
              case 14:
                 zancun3^=1;
                 break;
              case 15://修改倒計時小時的十位數
                 zancun1+=10;
                 if(zancun1>=100)zancun1-=100;
                 break;
              case 16: //修改倒計時小時的個位數
                 zancun1=zancun1/10*10+(zancun1%10+1)%10;
                 break;
              case 17://修改倒計時分鐘的十位數
                 zancun2+=10;
                 if(zancun2>=60)zancun2-=60;
                 break;
              case 18: //修改倒計時分鐘的個位數
                 zancun2=zancun2/10*10+(zancun2%10+1)%10;
                 break;
              case 19://修改倒計時秒的十位數
                 zancun3+=10;
                 if(zancun3>=60)zancun3-=60;
                 break;
              case 20: //修改倒計時秒的個位數
                 zancun3=zancun3/10*10+(zancun3%10+1)%10;
                 break;
              case 21:
              case 22://
                 countdown_hour=zancun1;
                 countdown_minute=zancun2;
                 countdown_second=zancun3;
                 flag1=21;
                 break;
              case 23:
              case 24://秒表復位
                 flag1=24;
                 msecond_minute=0;
                 msecond_second=0;
                 msecond_msecond=0;
                 break;
              case 25:
                 zancun1++;
                 if(zancun1==100)
                 {
                     zancun1=0;
                     zancun2++;
                     if(zancun2==100)
                     {
                       zancun2=0;
                       zancun3++;
                     }
                 }
                 break;
              default:
                 break;

           }   
           while(s3_bit==0)
           {
              judge_dis();
           }//等待按鍵釋放
        }
    }
}
//****************************************
//顯示處理函數
void  judge_clock()
{
    if(clock_hour==hour_count && clock_minute==minute_count)
    {
         if(clock_en==1 && clock_flag==0)
         {         
              speak_count=0;//開啟蜂鳴器
              clock_flag=1;
              speak_count=0;
         }
    }
    else
    {
     clock_flag=0;
    }
    if(clock_flag==1 && speak_count<400)
    {

        if(msecond_count<=5)
        {
           speak=0;
           speak_count++;
        }
        else
        {
          speak=1;

        }
    }
    else
    {
        speak=1;
    }
}
//****************************************
////閃爍顯示子程序
void  dis_san(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1,uchar san)
{   
     if(san==1)
     {
        if(msecond_count<5)
        {
           display1(s6);
        }
     }
     else
     {
         display1(s6);
     }
     if(san==2)
     {
        if(msecond_count<5)
        {
           display2(s5);
        }
     }
     else
     {
         display2(s5);
     }
     if(san==3)
     {
        if(msecond_count<5)
        {
           display3(s4);
        }
     }
     else
     {
         display3(s4);
     }
     if(san==4)
     {
        if(msecond_count<5)
        {
           display4(s3);
        }
     }
     else
     {
         display4(s3);
     }
     if(san==5)
     {
        if(msecond_count<5)
        {
           display5(s2);
        }
     }
     else
     {
         display5(s2);
     }
     if(san==6)
     {
        if(msecond_count<5)
        {
           display6(s1);
        }
     }
     else
     {
         display6(s1);
     }
}
//****************************************
//時鐘顯示程序
void  dis(uchar s6,uchar s5,uchar s4,uchar s3,uchar s2,uchar s1)
{
     display1(s6);
     display2(s5);
     display3(s4);
     display4(s3);
     display5(s2);
     display6(s1);
}
//********************************************************************************************
void init_t0()
{
           TMOD=0x01;//設定定時器工作方式1,定時器定時50毫秒
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;//開總中斷
        ET0=1;//允許定時器0中斷
        t0_crycle=0;//定時器中斷次數計數單元
}
//**************************************************
//LED處理函數
void  dis_led()
{
     if(msecond_count<5)
     {
         led1_bit=1;
         led2_bit=1;
     }
     else
     {
         led1_bit=0;
         led2_bit=0;
     }
}
//***************************************************************
//功能:把數據1顯示在數碼管1上
void display6(uchar dis_data)
{  
   smg_data=tabl1[dis_data];//送顯示斷碼
   dis_bit6=0;//鎖存數據
   delay_50us(40);
   dis_bit6=1;
}
//***************************************************************
//功能:把數據1顯示在數碼管1上
void display5(uchar dis_data)
{  
   smg_data=tabl1[dis_data];//送顯示斷碼
   dis_bit5=0;//鎖存數據
   delay_50us(40);
   dis_bit5=1;
}
//***************************************************************
//功能:把數據1顯示在數碼管1上
void display4(uchar dis_data)
{  
   smg_data=tabl1[dis_data];//送顯示斷碼
   dis_bit4=0;//鎖存數據
   delay_50us(40);
   dis_bit4=1;
}//***************************************************************
//功能:把數據1顯示在數碼管1上
void display3(uchar dis_data)
{  
   smg_data=tabl1[dis_data];//送顯示斷碼
   dis_bit3=0;//鎖存數據
   delay_50us(40);
   dis_bit3=1;
}
//***************************************************************
//功能:把數據1顯示在數碼管1上
void display1(uchar dis_data)
{  
   smg_data=tabl1[dis_data];//送顯示斷碼
   dis_bit1=0;//鎖存數據
   delay_50us(40);
   dis_bit1=1;
}
//***************************************************************
//功能:把數據1顯示在數碼管1上
void display2(uchar dis_data)
{  
   smg_data=tabl1[dis_data];//送顯示斷碼
   dis_bit2=0;//鎖存數據
   delay_50us(40);
   dis_bit2=1;
}
//**************************************************************************************************
//函數名稱:void delay_50US(unsigned int t)
//功能: 延時50*t(us)
void delay_50us(uint t)
{
  unsigned char j;
  for(;t>0;t--)
  {
    for(j=19;j>0;j--);
  }
}
//*******************************************************************************
//8微秒延時基準程序
void delay_8us(uint t)
{
while(--t);
}
//*******************************************************************************
//3微秒延時程序
void delay_3us()
{
  ;
  ;
}
//*******************************************************************************
//子程序功能:向DS18B20寫一字節的數據
void w_1byte_ds18b20(uchar value)
{
   uchar i=0;
   for(i=0;i<8;i++)
   {
    dq_ds18b20=0;
    delay_3us();
    if (value & 0x01) dq_ds18b20=1; //DQ = 1
    delay_50us(1); //延時50us 以上
    value>>=1;
     dq_ds18b20=1; //DQ = 1
   }
    delay_50us(1);
}
//讀一個字節
uchar r_1byte_ds18b20(void)
{
  uchar i=0;
  uchar value = 0;
  for (i=0;i<8;i++)
  {
   value>>=1;
   dq_ds18b20=0;// DQ_L;
   delay_3us();
   dq_ds18b20=1;
   delay_3us();
   delay_3us();
   if(dq_ds18b20==1) value|=0x80;
   delay_50us(1); //延時40us
  }
  return value;
}
//;**************************************************
//ds18b20復位子程序
void rest_ds18b20(void)
{
rest:delay_3us(); //稍做延時
     delay_3us();
     dq_ds18b20=1;
     delay_3us();
     dq_ds18b20=0;// DQ_L;
     delay_8us(75);//480us<T<960us
     dq_ds18b20=1;//拉高總線
     delay_8us(8);
     if(dq_ds18b20==1)
     {  
       return;
     }  
     delay_8us(11); //延時90us
     if(dq_ds18b20==1)
     {
       return;
      }  
      else
      {
       goto rest;
      }
}
//****************************************************
//讀取溫度
void readtemp_ds18b20(void)
{
    uchar temp32;
    rest_ds18b20();
    w_1byte_ds18b20(0xcc); //跳過讀序列號的操作
    w_1byte_ds18b20(0x44); //啟動溫度轉換
    delay_8us(2);
    rest_ds18b20();
    w_1byte_ds18b20(0xcc); //跳過讀序列號的操作
    w_1byte_ds18b20(0xbe); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度
    templ=r_1byte_ds18b20();
    temph=r_1byte_ds18b20();
    if((temph&0xf0))//判斷溫度的正負性
    {
      temp_flag=0;//溫度為負數標志
      temph=-temph;
      templ=-templ;
      t_x=tabl3[templ & 0x0f];//計算溫度的小數
      temp32=temph & 0x0f;
      temp32<<=4;
      templ>>=4;
      temp32=temp32 | templ;
      t_b=temp32/100%10;//計算溫度的百位數據
      t_s=temp32/10%10;//計算溫度的十位數據
      t_g=temp32%10;//計算溫度的個位數據
    }
    else//為正數
    {
      t_x=tabl3[templ & 0x0f];//計算溫度的小數
      temp32=temph & 0x0f;
      temp32<<=4;
      templ>>=4;
      temp32=temp32 | templ;
      t_b=temp32/100%10;//計算溫度的百位數據
      t_s=temp32/10%10;//計算溫度的十位數據
      t_g=temp32%10;//計算溫度的個位數據
      temp_flag=1;
     }
}
void dis_temp()//溫度顯示函數
{
     if(temp_flag=1)
     {
        if(t_b==0)
       {
         dis(12,12,t_s,t_g,13,12);
       }
       else
       {
         dis(12,t_b,t_s,t_g,13,12);
       }
     }
     else
     {
        dis(14,t_b,t_s,t_g,13,12);
     }
}







六位數碼管時鐘電路圖

六位數碼管時鐘電路圖

回復

使用道具 舉報

ID:138006 發表于 2016-9-1 18:47 | 顯示全部樓層
時鐘芯片位置 rst p3.6  dat p3.5  clk p3.4
回復

使用道具 舉報

ID:138343 發表于 2016-9-5 15:58 | 顯示全部樓層
幫你貼下論壇里的教程鏈接吧http://m.izizhuan.cn/bbs/dpj-22465-1.html,我也是初學者,這個系列的教程很好
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
国色天香一区二区| 欧美成va人片在线观看| 999国产精品| 国产丝袜在线播放| 在线免费观看h视频| 亚洲精品77777| 伊人成人开心激情综合网| 国产欧美日韩精品在线| 影音先锋久久资源网| 久久99久久久精品欧美| 免费国产在线视频| 国产麻豆视频免费观看| 中文字幕一级片| 中文字幕在线观看二区| 一区二区三区入口| 一个色的综合| 成人网在线观看| 中文字幕久久亚洲| 欧美精品 国产精品| 中文无字幕一区二区三区| 日韩不卡手机在线v区| 精品视频免费| 色综合视频一区二区三区44| 五月香视频在线观看| jizzjizzjizz在线观看| 天堂在线视频网站| 中文字幕在线天堂| 欧美人与禽zoz0善交| 五月天婷婷影视| av片在线免费| 欧洲一区二区日韩在线视频观看免费 | 国产偷亚洲偷欧美偷精品| 亚洲大型综合色站| 久久久久久99久久久精品网站| 天堂影院一区二区| 欧美激情亚洲| 精品精品99| 欧美黄视频在线观看| 亚洲妇女成熟| 色a资源在线| 国产午夜精品一区理论片| 国内av免费| av女片在线| 999久久久免费精品国产牛牛| 亚洲国产综合网| 在线免费观看中文字幕| 日韩三级小视频| 色欲人妻综合网| 成人性生交大片免费看无遮挡aⅴ| 中文字幕55页| 国产精品一区二区小说| www.com毛片| bt天堂新版中文在线地址| 亚洲ai欧洲av| 日本一区二区免费看| 国模精品一区二区三区| 国产精品天天摸av网| 麻豆精品视频在线观看视频| 日韩午夜高潮| 亚洲精品女人| 在线观看一区| 国产欧美激情| 国产精品婷婷| 亚洲欧美日韩视频二区| 国产精品普通话对白| 亚洲先锋成人| 中国女人久久久| 国产一区二区三区久久| 99国产精品视频免费观看一公开| 欧美激情亚洲| 国产精品久久777777毛茸茸| 成人国产免费电影| 中文字幕在线资源| 污网站在线看| 国产精品一区二区婷婷| 电影av一区| 在线观看a视频| 高h视频在线观看| 综合久久2019| 欧美私密网站| 四虎4545www国产精品| 色猫猫成人app| 精品国模一区二区三区欧美| 99re热精品视频| 综合干狼人综合首页| 成人在线国产| 亚洲久久在线| 久久精品99久久久| 丰满白嫩尤物一区二区| 久久亚洲一区二区三区明星换脸| 中文av一区特黄| 亚洲综合在线第一页| 欧美视频免费在线观看| 欧美精品在线一区二区三区| 亚洲二区中文字幕| 久久精品成人欧美大片古装| 98精品在线视频| 91精品久久久久久久久久久久久久 | 国产91精品一区二区麻豆网站| 成人天堂资源www在线| 国产欧美日本一区视频| 香蕉久久一区二区不卡无毒影院| 欧美少妇bbb| 亚洲精品小视频| 欧美成人亚洲成人| 日韩欧美一区二区免费| 亚洲精品乱码久久久久久按摩观| 色偷偷综合社区| 欧日韩在线观看| 国产在线欧美日韩| 国产精品久久成人免费观看| 精品久久久噜噜噜噜久久图片| 午夜福利三级理论电影| 婷婷久久综合网| 亚洲一区在线观| 欧美日韩不卡中文字幕在线| 天天干天天摸| 国产最新视频在线| 欧美一级大黄| 国产一区二区三区91| 国产一区白浆| 久久久久久电影| 欧美日韩中文另类| 国产一区二区美女视频| 欧美最猛性xxxxx免费| 久久精品第九区免费观看| 国产人妻777人伦精品hd| 国产人成视频在线观看| 黄色一级片中国| a天堂中文在线观看| 三级黄在线播放| 国产九色在线| 精品国产亚洲日本| 在线精品一区| 国产日韩精品一区二区三区| 欧美日韩在线影院| 国产91丝袜在线播放| 中文字幕日本不卡| 日韩一区二区精品在线观看| 欧美成人午夜激情视频| 精品国产乱码久久久久| 福利在线一区二区三区| 五月天激情丁香| 后进极品白嫩翘臀在线视频| 国产bdsm| 在线观看网站免费入口在线观看国内 | 国产精品91一区二区| 亚洲国产日韩综合久久精品| 亚洲欧美中文日韩在线v日本| 国产日韩欧美中文| 欧美久久在线观看| 久久丫精品忘忧草西安产品| 草逼视频免费看| 99视频入口| av电影一区| 亚洲免费二区| 国产三级欧美三级日产三级99| 666欧美在线视频| 日韩av黄色在线观看| 韩国黄色一级大片| 久久久久久久毛片| 日韩一区二区三区在线观看视频| ·天天天天操| av在线播放一区| 免费日韩精品中文字幕视频在线| 亚洲欧美另类在线| 精品国产网站地址| 日韩在线导航| 人妻少妇无码精品视频区| 色丁香婷婷综合久久| 天堂在线中文字幕| 激情小说亚洲图片| 不卡的av在线| 精品久久久久久久一区二区蜜臀| 国产综合色香蕉精品| 亚洲午夜精品一区| 亚洲视频一区在线播放| 360天大佬第二季在线观看| 国产精品视频一区二区三区综合| 蜜桃精品在线观看| 成人美女视频在线观看| 91麻豆精品国产91久久久更新时间 | 日韩久久久精品| 国产欧美一区二区三区在线看| 欧美色图另类小说| 五月婷婷开心网| 成人女性文胸| 日韩中文字幕一区二区高清99| 狠狠色丁香婷综合久久| 日韩午夜激情av| 精品一区二区三区免费毛片| 色噜噜日韩精品欧美一区二区| 中国视频免男男gay| 巨大荫蒂视频欧美大片| 欧美精品黄色| 色悠悠亚洲一区二区| 国产一区私人高清影院| 免费观看一区二区三区| 色偷偷在线观看| 污视频在线免费观看网站| 99视频精品| 欧美日高清视频| 欧美老少配视频| 免费一级特黄毛片| 亚洲精品国产精品乱码视色| 污视频在线看操| 91欧美大片| 激情成人中文字幕| 91视频国产高清| 少妇久久久久久久久久| 99久久国产视频| 91精品在线免费视频| 91麻豆高清视频| 美日韩精品免费视频| 免费激情视频在线观看| 国产91视频在线| 老司机福利在线视频| 国产一区二区三区的电影| 4438成人网| 日本在线视频不卡| 久久9999久久免费精品国产| 丝袜国产免费观看| 99久久亚洲精品蜜臀| 色悠悠亚洲一区二区| 久久99精品久久久久子伦| 日本不卡一二区| 国产三级香港三韩国三级| 国产一区日韩| 91国偷自产一区二区使用方法| 久久伊人精品天天| 日本成人黄色网| 五月婷婷开心中文字幕| 国产在线看片免费视频在线观看| 国产精品白丝av| 插插插亚洲综合网| 初高中福利视频网站| 91美剧网在线播放| 日韩av字幕| 日韩欧美在线中文字幕| 欧美一二三区| 小泽玛利亚一区二区三区视频| 欧美成年黄网站色视频| 激情图片小说一区| 色综合色综合久久综合频道88| 欧美性受xxxx黒人xyx性爽| 国产xxx在线| 伊人春色精品| 欧美丝袜自拍制服另类| 一区二区三区在线观看www| 国产精品高潮呻吟AV无码| 黑森林国产精品av| 国产日韩精品久久久| 成人国产精品久久久久久亚洲| 手机在线免费看片| 国产一级二级三级在线观看| 国产毛片一区二区| 欧美在线观看网站| 男人av资源站| h网站在线免费观看| 国产精品一二三四五| 91精品国产高清久久久久久91| 国产成人av一区二区三区不卡| 免费在线黄网| 日日摸夜夜添夜夜添精品视频| 中文字幕九色91在线| 日韩无码精品一区二区| 欧美aaa一级| 秋霞国产午夜精品免费视频| 欧美日韩aaaa| 日本视频在线免费| 日本三级视频在线观看| 91视频www| 91传媒在线免费观看| 国产成人精品777777| 三妻四妾的电影电视剧在线观看| 国产精品国产三级国产aⅴ无密码| 国产久一道中文一区| 国产精品综合在线| 精品一区二区三区中文字幕在线| 日韩欧美第一页| 久久国产精品网| 国产成在线观看免费视频| 成人亚洲综合| 欧美三级欧美成人高清www| 久久最新免费视频| 国产精品伦理一区二区三区 | 黄色一级片免费播放| 91中文字幕网| 国产在线播放一区| 成人综合网网址| 在线免费观看高清视频| 亚洲福利合集| 欧美一区二区三区四区视频| 欧美婷婷精品激情| 美女黄a一级视频| 国内精品国产三级国产a久久| 国产精品福利网| 国产人妻大战黑人20p| 国内精品在线视频| 国产亚洲欧美在线| 婷婷五月色综合| 欧美激情性xxxxx| 欧美激情视频一区二区三区免费| 麻豆国产va免费精品高清在线| 欧美高清视频一区二区三区| 三级中文字幕在线观看| 日本久久精品电影| 黄色片在线免费| 一级片免费看| 91日韩精品一区| 亚洲精品永久www嫩草| 国产精品免费视频一区二区三区| 一本不卡影院| 国产欧美久久一区二区| japanese国产| 色婷婷亚洲mv天堂mv在影片| 久久国产精品久久精品| 亚洲欧美在线视频免费| 欧美中文高清| 亚洲性生活视频| 九九热视频精品| 国产午夜久久av| 亚洲国产99精品国自产| 精品人妻一区二区三区蜜桃视频| 国产中文在线播放| 欧美一区二区三区男人的天堂| 中文字幕99页| 超碰在线无需免费| 日韩欧美国产中文字幕| 色黄视频免费看| 成人影院在线看| 在线视频国内自拍亚洲视频| 精品人妻一区二区三区免费| 欧美日韩在线看片| 色综合av在线| 无码人妻一区二区三区免费n鬼沢| 欧美激情免费| 在线影院国内精品| 欧美一级片黄色| 国产欧美一区二区三区精品酒店| 欧美一级免费观看| 久久精品在线观看视频| 国产成人77亚洲精品www| 91黑人精品一区二区三区| 欧美丝袜丝交足nylons172| **欧美日韩vr在线| 午夜精品久久久久久久爽| 韩日成人av| 成人三级在线| 色涩视频在线观看| 91亚洲国产成人精品一区二三 | 国产情侣免费视频| 三区四区不卡| 国产精品va在线播放| 高清视频一区二区三区四区| 首页亚洲欧美制服丝腿| 欧美人xxxxx| 国产经典av| 1024成人网| 欧美色图校园春色| 欧美少妇网站| 亚洲欧美日韩中文在线| 蜜臀99久久精品久久久久小说| 91精品国产调教在线观看| 成人黄色av播放免费| 69精品视频| 国产婷婷一区二区| 日韩在线不卡一区| 三级在线观看视频| 伊人伊人伊人久久| 99久久夜色精品国产亚洲| 久久午夜视频| 在线视频不卡国产| 黄色的视频在线免费观看| 欧美三级电影精品| 青青草原在线免费观看视频| 国产欧美日韩| 亚洲最大福利网站| www.午夜色大片| 亚洲影院理伦片| 伊人网在线视频观看| 日韩精选在线| 成人有码视频在线播放| 天天色天天射天天干| 亚洲成人久久影院| 又嫩又硬又黄又爽的视频| 国产剧情一区| 国产乱码精品一区二区三区日韩精品| 四虎4hutv紧急入口| 欧美香蕉大胸在线视频观看| www.xxxx日本| 亚洲精品888| 日韩精品久久久| 国产视频二区在线观看| 精品国产成人系列| 伊人久久成人网| 精品一区二区三区欧美| 91传媒久久久| 三上悠亚激情av一区二区三区| 欧美精品一区三区|