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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3529|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)四位共陽(yáng)數(shù)碼管時(shí)鐘問(wèn)題,求大神幫忙

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:476064 發(fā)表于 2019-4-29 16:24 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
       最近一直在尋找四位共陽(yáng)數(shù)碼管時(shí)鐘(DS1302+DS18B20+鬧鐘)能自動(dòng)切換時(shí)間溫度的那種!!但往往事不隨人意!找了好多源碼!!不是無(wú)法編譯就是程序問(wèn)題太嚴(yán)重,或者有時(shí)間沒(méi)溫度。前段時(shí)間在網(wǎng)上找到一個(gè)合乎要求的源碼,但是仿真不出效果??時(shí)間、溫度也不顯示?設(shè)置也有問(wèn)題?

在此求大神們幫忙修改下!!或者看看我哪里做錯(cuò)了!
全部資料51hei下載地址:
4bit_clock_v11.rar (92.79 KB, 下載次數(shù): 12)
不想下的看這里
/******************************************************************************************
//四位數(shù)碼管電子鐘
//應(yīng)用程序 C
//neo
//V1.1 2011-7-16
//MCS-51 12MHZ C語(yǔ)言
//接口說(shuō)明:  DS1302、DS18B20
*********************************************************************************************/
#include <reg52.h>
#include <intrins.h>

#define uint8 unsigned char
#define uchar unsigned char
#define uint  unsigned int
uchar Disp_Buff[4];

char SB=4;  // clock set time bit
//bit Set_Flag;  // set time flag
bit T=0;  // display Temperature and Time flag         
bit TT=0; // 10S Auto change display Temperature and Time flag

//#define T0_H  0xf0           // 4ms
//#define T0_L  0x60
#define T0_H  0xf5           // 2666us
#define T0_L  0x96
#define ST    20
#define T1_H  0xb1           //20ms
#define T1_L  0xe0
#define NumLed_Bit P2
#define Disp       P1
#define Key        P3
#define Key1 1
#define Key2 2
#define Key3 3
#define Key4 4
#define Key_NULL 0
sbit Beep=P0^7;
sbit Red_Led=P3^7;
sbit RST=P0^0;
sbit IO=P0^1;
sbit SCLK=P0^2;
sbit io_DQ=P0^6;

void Play(uchar t);

// Driver DS1302
/********************************************************************************************/

#define second_write 0x80
#define minute_write 0x82
#define hour_write   0x84
#define week_write   0x8a
#define day_write    0x86
#define month_write  0x88
#define year_write   0x8c
#define second_read 0x81
#define minute_read 0x83
#define hour_read   0x85
#define week_read   0x8b
#define day_read    0x87
#define month_read  0x89
#define year_read   0x8d
#define sclk_high    SCLK=1;
#define sclk_low     SCLK=0;
#define io_high      IO=1;
#define io_low       IO=0;
#define io_read      IO
#define rst_high     RST=1;
#define rst_low      RST=0;
struct {uint8 second;
        uint8 minute;
            uint8 hour;
            uint8 day;
            uint8 week;
                uint8 month;
                uint8 year; } current_time;

/********************************************************************************************/

static void ds1302write(uint8 content)
{
uint8 i;
for(i=8;i>0;i--) { if(content&0x01) io_high
                       else io_low
                    content>>=1; sclk_high  sclk_low
                                        }
}

/********************************************************************************************/

static uint8 ds1302read(void)
{
uint8 i,readvalue;
io_high
for(i=8;i>0;i--) {        readvalue>>=1; if(io_read) readvalue|=0x80;
                                      else     readvalue&=0x7f;
                                        sclk_high  sclk_low  }
return readvalue;
}

/********************************************************************************************/

void ds1302write_byte (uint8 address,uint8 content)
{
rst_low  sclk_low  rst_high  ds1302write(address);
ds1302write(content); rst_low  sclk_high
}

uint8 ds1302read_byte(uint8 address)
{
uint8 readvalue;
rst_low  sclk_low  rst_high
ds1302write(address);
readvalue=ds1302read();
rst_low  sclk_high
return readvalue;
}

/********************************************************************************************/

void Clock_Init(void)
{
uchar R;
if(ds1302read_byte(0xc1)!=0xf0) {
                                  ds1302write_byte(0x8e,0x00);
                                                              ds1302write_byte(year_write,0x11);
                                                              ds1302write_byte(week_write,0x06);
                                                              ds1302write_byte(month_write,0x04);
                                                              ds1302write_byte(day_write,0x09);
                                                              ds1302write_byte(hour_write,0x23);
                                                              ds1302write_byte(minute_write,0x59);
                                                              ds1302write_byte(second_write,0x30);
                                                         
                                  ds1302write_byte(0x90,0xa5);
                                  ds1302write_byte(0xc0,0xf0);
                                  for (R=0;R<10;R+=2)
                                                                             {
                                                                                   ds1302write_byte(0xc2+R,0);
                                                                            }
                                                                  ds1302write_byte(0x8e,0x80);
                                                                }
}

/********************************************************************************************/

void Clock_Updata(void)
{
current_time.second=ds1302read_byte(second_read);
current_time.minute=ds1302read_byte(minute_read);
current_time.hour=  ds1302read_byte(hour_read);
current_time.day=   ds1302read_byte(day_read);
current_time.month= ds1302read_byte(month_read);
current_time.week=  ds1302read_byte(week_read);
current_time.year=  ds1302read_byte(year_read);
}

/********************************************************************************************/

void Write_Time(void)
{
  ds1302write_byte(0x8e,0x00);
  ds1302write_byte(0x82,((Disp_Buff[2]<<4)|Disp_Buff[3]));
  ds1302write_byte(0x84,((Disp_Buff[0]<<4)|Disp_Buff[1]));
  ds1302write_byte(0x8e,0x80);
  }

/********************************************************************************************/

void Write_Alarm(void)
{
  ds1302write_byte(0x8e,0x00);
  ds1302write_byte(0xca,((Disp_Buff[2]<<4)|Disp_Buff[3])); // alarm minute
  ds1302write_byte(0xc8,((Disp_Buff[0]<<4)|Disp_Buff[1])); // alarm hour
  ds1302write_byte(0xc6,1);
  ds1302write_byte(0x8e,0x80);
}

/********************************************************************************************/



void Alarm(void)
{
if(ds1302read_byte(0xc7)==1&&
    current_time.minute==ds1302read_byte(0xcb)&&
        current_time.hour==ds1302read_byte(0xc9)  )
                                                  {
                                                  ds1302write_byte(0x8e,0x00);
                                                  ds1302write_byte(0xc6,0);
                                                  ds1302write_byte(0x8e,0x80);
                                                  Play(3);
                                                  }
}

/********************************************************************************************/

// DS18B20 driver

#define DQ_HIGH io_DQ=1;
#define DQ_LOW  io_DQ=0;
#define DQ_READ io_DQ
unsigned char Temperature[4];

void Delay_10Us (unsigned int Count)
{
  while(--Count)
                {
                             _nop_();  
                          }
}

/********************************************************************************************/  
unsigned char Ds18b20_Init(void)
  {
    unsigned char Flag;
                             
        DQ_HIGH Delay_10Us(3);
    DQ_LOW  Delay_10Us(80);
    DQ_HIGH Delay_10Us(15);

        Flag=DQ_READ;
    return Flag;
        }           
/********************************************************************************************/            
void Write_f(unsigned char cmd)
   {
    unsigned char i;

        for(i=8;i>0;i--) {
                           EA=0;
                                           DQ_LOW
                       DQ_READ=cmd&0x01;
                       Delay_10Us(5);
                       DQ_HIGH
                       EA=1;
                                           cmd>>=1;
                                           }
                                          
        }
/********************************************************************************************/         
unsigned char Read_f(void)
{
         unsigned char Read_Value,i;

         for (i=8;i>0;i--) {
                             EA=0;
                                                 DQ_LOW
                         Read_Value>>=1;
                         DQ_HIGH
                         if (DQ_READ==1) Read_Value|=0x80;
                         EA=1;
                                                 Delay_10Us(3);
                                                 }

  return Read_Value;
}
/********************************************************************************************/  
unsigned int Read_Temp(void)
       {
             unsigned char Temp_H, Temp_L;
         unsigned int  Return_Temp;
         EA=0;                                  // close interrupt;
                 Ds18b20_Init();
         Write_f(0xcc);
         Write_f(0x44);
         Ds18b20_Init();
         Write_f(0xcc);
         Write_f(0xbe);
         Temp_L=Read_f();
         Temp_H=Read_f();
         EA=1;
                 Return_Temp=Temp_H;
         Return_Temp<<=8;
         Return_Temp|=Temp_L;
         return Return_Temp;
        }
/********************************************************************************************/         
void Temperature_Update(void)
   {
     unsigned char T_flag=0;
     unsigned int  Temp_Dat;
     float         Temp;
     Temp_Dat=Read_Temp();
     if(Temp_Dat&0xf000) {T_flag=1; Temp_Dat=~Temp_Dat+1; }
     Temp=Temp_Dat*0.0625;
     Temp_Dat=Temp*10;
     Temperature[0]=T_flag;
     Temperature[1]=Temp_Dat/100;
     Temperature[2]=Temp_Dat%100/10;
     Temperature[3]=Temp_Dat%10;

         }

/********************************************************************************************/
void Timer0_Init(void)
{
    TMOD|=0x01;
    TH0=T0_H;
    TL0=T0_L;
    EA=1;
    ET0=1;
    TR0=1;
}

/********************************************************************************************/
bit T_10S,T_1S;
bit S;                        // shining flag
bit pp=1;      // open or close :
unsigned int ms1,ms2,ms3;
uchar Bit;// Number Led select

uchar code Disp_NumCode[]={0xc0,0xf9,0xa4,0xb0,
                           0x99,0x92,0x82,0xf8,
                                                   0x80,0x90,         // dp-a         P07-P00  0-9,
                                                   0xa7,                 //c        10
                                                   0xc8,0x86,0xc0, //NEO  11-13
                                                   0x92,0xc6,0x88, // S,C,A 14-16
                                                   0xa1,0x8c,0x8e, // d,p,F   17-19
                                                   0xff,                   //  " "  20
                                                   0xc7,0xf7           //   L  21  _ 22
                                                   };        
         
/********************************************************************************************/
uchar code Open_Logo[]={11,12,13,20};
uchar code S_C[]={14,22,15,20};
uchar code S_A[]={14,22,16,20};
uchar code d_p[]={17,22,18,20};
uchar code BELL[]={17,12,21,21};
uchar code ON[]= {20,13,11,20};
uchar code OFF[]={20,13,19,19};         

void Put_In(uchar *P)
{
uchar a;
for (a=0;a<4;a++)
           {
                   Disp_Buff[a]=P[a];
            }
}
/********************************************************************************************/
void Timer0_Isr(void) interrupt 1                                                                          
{
TH0=T0_H;                   //4ms
TL0=T0_L;

Disp=0xff;


                  switch(Bit) {
                       case 0 :NumLed_Bit=0xfe; break;
                                   case 1 :        NumLed_Bit=0xfd; break;
                                   case 2 :        NumLed_Bit=0xfb; break;
                                   case 3 :        NumLed_Bit=0xf7; break;
                                   case 4 :NumLed_Bit=0xf3; break; // display :
                                   default : break;
                                  }
                  
                             
           switch(Bit) {
                    case 0 :  {
                                                    if(SB==0)
                                                              {
                                                               if (S)     NumLed_Bit=0xfe;
                                                                                   if(S==0)   NumLed_Bit=0xff;
                                                                                   }
                                                                    else NumLed_Bit=0xfe;
                                                          }break;
                                            
                                    case 1 :  {
                                                if(SB==1)
                                                          {
                                                               if (S)     NumLed_Bit=0xfd;
                                                                                   if(S==0)   NumLed_Bit=0xff;
                                                                                   }
                                                                      else NumLed_Bit=0xfd;
                                                          }break;
                                            
                                    case 2 :  {
                                                    if(SB==2)
                                                          {
                                                               if (S)     NumLed_Bit=0xfb;
                                                                                   if(S==0)   NumLed_Bit=0xff;
                                                                                   }
                                                                     else NumLed_Bit=0xfb;
                                                          } break;
                                                     
                                  case 3 : {
                                              if(SB==3)
                                                          {
                                                               if (S)     NumLed_Bit=0xf7;
                                                                                   if(S==0)   NumLed_Bit=0xff;
                                                                                   }
                                                        else NumLed_Bit=0xf7;
                                                        } break;
                                          
                                   case 4 : {
                                                     if(T==0||TT==0)  NumLed_Bit=0xf3;  // display :
                                                                 if( T || TT )          NumLed_Bit=0xfb;         // display  .
                                                                 } break;
                                   default : break;
                     }

if(Bit<4) {

                    Disp=Disp_NumCode[Disp_Buff[Bit]];
                     }
        else   
               {
                   if(pp==1)
                 {         
                  if (T==0||TT==0)                                                                                                  
                                   {
                                            if(current_time.second%2) Disp=0x7f;           
                              else                    Disp=0xff;
                                                 }
                          if( T || TT )         Disp=0x7f;
                           }
                          else Disp=0xff;           // close :
                     }

if(++Bit>4) Bit=0;



}
/********************************************************************************************/

void Timer1_Init(void)
{
    TMOD|=0x10;
    TH1=T1_H;  //20ms
    TL1=T1_L;
    EA=1;
    ET1=1;
    TR1=1;
}

/********************************************************************************************/

uchar Key_Time;
void Timer1_Isr(void) interrupt 3                                                                          
{
TH1=T1_H;
TL1=T1_L;
if(Key!=0xff) Key_Time++;
if(++ms1>ST)  { ms1=0;  S=~S;   }   //when set time Shining        bit
if(++ms2>=50) { ms2=0;  T_1S=1; }
if(++ms3>500) { ms3=0;  T_10S=1;}
}

/********************************************************************************************/

void DelayM(unsigned int a){//-延時(shí)函數(shù) 1MS/次        
        unsigned char i;
        while(a--)
          {               
                for(i = 0; i < 125; i++)  
                                {}
                }                                      //i 從0加到125,CPU大概就耗時(shí)1毫秒
}
/********************************************************************************************/
void Play(uchar t)
{
  uchar i;
  switch(t) {
             case 1:     
                                  {  
                    Beep=0;   
                                        DelayM(100);
                  } break;        
                          case 2:
                                    {
                                           Beep=0;
                                        DelayM(400);
                                           Beep=1;
                                    DelayM(500);
                                        Beep=0;
                                        DelayM(100);
                                   } break;
                         case 3:
                                   {
                                           for(i=0;i<20;i++)
                                        {
                                        Beep=0;
                                        DelayM(100);
                                           Beep=1;
                                        DelayM(100);
                                        Beep=0;
                                        DelayM(100);
                                        Beep=1;
                                    DelayM(500);
                                        }
                                   } break;
                         default : break;
                         }
Beep=1;
}
/********************************************************************************************/
uchar Key_Scan(void)
{
static bit Key_Down;
static uchar K;
uchar K_Value=0;
if(Key_Time>250) Key_Time=3;
if(Key_Time>=3&&Key_Down==0)
                 {
                  Key_Time=0;
                                  Key_Down=1;
                                  switch(Key)
                                    {
                                         case  0xfe        : K=1; break;
                                     case  0xfd        : K=2; break;
                                         case  0xfb        : K=3; break;
                                         case  0xf7        : K=4; break;
                                         default :    K=0; break;
                                         }
                                  }

if(Key==0xff&&Key_Down==1)                                 
                  {  
                                        Key_Down=0;
                                        K_Value=K;
                                          Play(1);
                                        }
return K_Value;                                 
}
/********************************************************************************************/
void Disp_Time(void)
{
Disp_Buff[3]=current_time.minute%16;
Disp_Buff[2]=current_time.minute/16;
Disp_Buff[1]=current_time.hour%16;
Disp_Buff[0]=current_time.hour/16;
}
/********************************************************************************************/
void Disp_Temperature_3bit(void)
{
Disp_Buff[3]=20;
Disp_Buff[2]=10; // display 'c'
Disp_Buff[1]=Temperature[2];
Disp_Buff[0]=Temperature[1];
}

/********************************************************************************************
void Disp_Temperature_4bit(void)
{
Disp_Buff[3]=Temperature[3];
Disp_Buff[2]=10; // display c
Disp_Buff[1]=Temperature[2];
Disp_Buff[0]=Temperature[1];
}
********************************************************************************************/

uchar Select_M=4;
void MENU (void)
{                  
   uchar K;
   char Menu=0;
   pp=0; // close ':'
   while(Menu!=4)
                 {
                                  K=Key_Scan();
                                  switch (Menu)
                      {
                                           case 0 : { Put_In(S_C); }        break;
                                              case 1 : { Put_In(S_A); }        break;
                                           case 2 : { Put_In(d_p); }        break;
                                           case 3 : { Put_In(BELL);}
                                           default : break;
                                           }
                                          
                                          if(K==Key3) Menu=4;
                                          if(K==Key2) Menu=(Menu+1)%4;
                                          if(K==Key1) {
                                                       Select_M=Menu; Menu=4;
                                                       }
                                        }
  pp=1;
}
/********************************************************************************************/
void Set_Time(void)
{
bit Set_Flag=1;  // set time flag
uchar K;
SB=0;
Disp_Time();
T=0;
TT=0;
while(Set_Flag)
              {        
                           
                                
                            K=Key_Scan();
                                if(K==Key1)                           
                                                                         {
                                                                         switch(SB)
                                                               {
                                                                    case 0 :        {
                                                                                 if(Disp_Buff[1]>3)
                                                                                                                            Disp_Buff[0]=(Disp_Buff[0]+1)%2;
                                                                                    else
                                                                                                                            Disp_Buff[0]=(Disp_Buff[0]+1)%3;
                                                                                                                         } break;
                                                                    case 1 :        {
                                                                                                if(Disp_Buff[0]==2)
                                                                                                                            Disp_Buff[1]=(Disp_Buff[1]+1)%4;
                                                                                                                                else
                                                                                                                                 Disp_Buff[1]=(Disp_Buff[1]+1)%10;
                                                                                                                         }  break;
                                                                    case 2 :        {
                                                                                                Disp_Buff[2]=(Disp_Buff[2]+1)%6;
                                                                                 }  break;
                                                                    case 3 :    {
                                                                                                Disp_Buff[3]=(Disp_Buff[3]+1)%10;
                                                                                }  break;
                                                                        default : break;
                                                                    }
                                                                           }
                                if(K==Key2) { SB=  (SB+1)%4; }
                            if(K==Key3)        { Set_Flag=0; SB=4; }
                                if(K==Key4) {
                                              Set_Flag=0; SB=4; Write_Time(); T_10S=0;
                                                         }
                }

}
/********************************************************************************************/
void Write_Ds1302Ram(uchar address,uchar dat)
{
  ds1302write_byte(0x8e,0x00);
  ds1302write_byte(address,dat);
  ds1302write_byte(0x8e,0x80);
}

/********************************************************************************************/
uchar dp; // display modle select bit
void Set_Dp(void)
{
bit dp_Set=1;   
uchar K;
pp=0;                         // close ':'
//dp=ds1302read_byte(0xc3);
while(dp_Set)
{
  K=Key_Scan();
  switch(dp)
                 {
                 case 1 : Put_In(ON);  break;
                 case 0 : Put_In(OFF); break;
                 default : break;
                 }
  if(K==Key3)   dp_Set=0;
  if(K==Key2)   dp=(dp+1)%2;
  if(K==Key1) { dp_Set=0;  Write_Ds1302Ram(0xc2,dp);  T=0;  TT=0; T_10S=0; }
}
pp=1;
}


/********************************************************************************************/
uchar Bell_State;
void Set_Bell(void)
{
bit Bell_Set=1;
uchar K;
pp=0;
//Bell_State=ds1302read_byte(0xc5);
while(Bell_Set)
{
  K=Key_Scan();
  switch(Bell_State)
                 {
                 case 1 : Put_In(ON);  break;
                 case 0 : Put_In(OFF); break;
                 default : break;
                 }
  if(K==Key3)   Bell_Set=0;
  if(K==Key2)   Bell_State=(Bell_State+1)%2;
  if(K==Key1) {
               Write_Ds1302Ram(0xc4,Bell_State); Bell_Set=0; T=0; TT=0; T_10S=0;
                           }
}
pp=1;
}



/********************************************************************************************/

void Set_Alarm(void)
{
static bit First_Alarm_Set=0;
bit Set_Flag=1;  // set time flag
uchar K;
SB=0;
T=0;
TT=0;

if(First_Alarm_Set)
{
  Disp_Buff[0]=ds1302read_byte(0xc9)/16;           //alarm hour
  Disp_Buff[1]=ds1302read_byte(0xc9)%16;
  Disp_Buff[2]=ds1302read_byte(0xcb)/16;           //alarm minute
  Disp_Buff[3]=ds1302read_byte(0xcb)%16;
  }
  else         Disp_Time();
while(Set_Flag)
              {        
                           
                                
                            K=Key_Scan();
                                if(K==Key1)                           
                                                                         {
                                                                         switch(SB)
                                                              {
                                                                    case 0 :        {
                                                                                 if(Disp_Buff[1]>3)
                                                                                                                            Disp_Buff[0]=(Disp_Buff[0]+1)%2;
                                                                                    else
                                                                                                                            Disp_Buff[0]=(Disp_Buff[0]+1)%3;
                                                                                                                         } break;
                                                                    case 1 :        {
                                                                                                if(Disp_Buff[0]==2)
                                                                                                                            Disp_Buff[1]=(Disp_Buff[1]+1)%4;
                                                                                                                                else
                                                                                                                                 Disp_Buff[1]=(Disp_Buff[1]+1)%10;
                                                                                                                         }  break;
                                                                    case 2 :        {
                                                                                                Disp_Buff[2]=(Disp_Buff[2]+1)%6;
                                                                                 }  break;
                                                                    case 3 :    {
                                                                                                Disp_Buff[3]=(Disp_Buff[3]+1)%10;
                                                                                }  break;
                                                                        default : break;
                                                                    }
                                                                           }
                                if(K==Key2) { SB=  (SB+1)%4; }
                            if(K==Key3)        { Set_Flag=0; SB=4; }
                                if(K==Key4) {
                                                         Set_Flag=0; SB=4;   
                                                         First_Alarm_Set=1;
                                                         Write_Alarm(); T_10S=0;
                                                         }
                }

}
//********************************************************************************************/
/*
void Ds1302Ram_Init(void)
{
uchar i;
//for(i=0xc3;i<0xc7;i+=2)
i=ds1302read_byte(0xc3);
     if(i!=0||i!=1)
        {
         Write_Ds1302Ram(0xc2,0);
        }
i=ds1302read_byte(0xc5);
     if(i!=0||i!=1)
        {
         Write_Ds1302Ram(0xc4,0);
        }  

} */
//********************************************************************************************/
void main()
{
uchar K;
Key=0xff;
Timer0_Init();
Timer1_Init();
Clock_Init();

//Ds1302Ram_Init();
Put_In(Open_Logo);
Play(1);
DelayM(3000);

dp=ds1302read_byte(0xc3);
Bell_State=ds1302read_byte(0xc5);
Clock_Updata();
while(1)
  {
   //if(T_1S) {  T_1S=0;  Clock_Updata(); Temperature_Update(); }

   Clock_Updata();
   if(current_time.minute==0&&
      current_time.second==0&&  
        Bell_State==1)
                      { DelayM(1000); Play(2);  }
                         K=Key_Scan();
                         if(K==4)        MENU();
                         if(K==1&&dp==0) T=~T;
                         switch (Select_M)
                        {
                                         case 0 : { Set_Time();  Select_M=4; } break;
                                         case 1 : { Set_Alarm(); Select_M=4; } break;
                                         case 2 : { Set_Dp();    Select_M=4; } break;
                                         case 3 : { Set_Bell();  Select_M=4; };break;
                                         default : break;
                                         }

   if(T_10S==1&&dp) { TT=~TT;  T_10S=0; }

   if(TT==0&&dp)
             {

                          Disp_Time();
              }
   if(TT&&dp)
            {
                     Temperature_Update();
                         Disp_Temperature_3bit();
             }

   if(T==0&&dp==0)
             {

                          Disp_Time();
              }
   if(T&&dp==0)
             {
              Temperature_Update();
                          Disp_Temperature_3bit();
              }
   Alarm();
   }
}
/********************************************************************************************/




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

使用道具 舉報(bào)

沙發(fā)
ID:96682 發(fā)表于 2019-4-29 20:59 | 只看該作者
這些明顯是拼湊出來(lái)的,各自單獨(dú)運(yùn)行沒(méi)問(wèn)題但簡(jiǎn)單合并就出問(wèn)題
回復(fù)

使用道具 舉報(bào)

板凳
ID:476064 發(fā)表于 2019-4-29 23:52 | 只看該作者
原帖有圖的 看著是可以運(yùn)行的
回復(fù)

使用道具 舉報(bào)

地板
ID:164602 發(fā)表于 2019-4-30 08:41 | 只看該作者
能同時(shí)顯示溫度和時(shí)間問(wèn)題:"LCD1602不能同時(shí)顯示溫度和時(shí)間的問(wèn)題"
回復(fù)

使用道具 舉報(bào)

5#
ID:123289 發(fā)表于 2019-4-30 17:21 | 只看該作者
你想做單片機(jī)這一行,就自己寫(xiě),如果連這么簡(jiǎn)單的東西就搞不定就改行。
回復(fù)

使用道具 舉報(bào)

6#
ID:476064 發(fā)表于 2019-4-30 20:44 來(lái)自手機(jī) | 只看該作者
yzwzfyz 發(fā)表于 2019-4-30 17:21
你想做單片機(jī)這一行,就自己寫(xiě),如果連這么簡(jiǎn)單的東西就搞不定就改行。

我對(duì)編程一竅不通,做這個(gè)純粹是一時(shí)興起,玩玩而已。靠這個(gè)還能發(fā)家?
回復(fù)

使用道具 舉報(bào)

7#
ID:476064 發(fā)表于 2019-4-30 21:07 來(lái)自手機(jī) | 只看該作者
我只是想找一個(gè)我喜歡的程序做出來(lái)自用而已,其實(shí)在本論壇已找到一個(gè)程序,并做出了實(shí)物。且已經(jīng)運(yùn)行了一星期!這個(gè)程序存在一些小問(wèn)題:每天慢5秒,備用電池低于3.6伏不能保存時(shí)間(可能是DS1302的問(wèn)題,4毛5還包郵的那種便宜貨),用電解電容串二極管接主電源,段電可以維持10鐘不清零,而且程序中也沒(méi)有開(kāi)啟充電功能。
回復(fù)

使用道具 舉報(bào)

8#
ID:476064 發(fā)表于 2019-4-30 21:14 來(lái)自手機(jī) | 只看該作者
yzwzfyz 發(fā)表于 2019-4-30 17:21
你想做單片機(jī)這一行,就自己寫(xiě),如果連這么簡(jiǎn)單的東西就搞不定就改行。

如同:我知道如何做飯,但不知道鍋盆灶具一樣。
我說(shuō)名字咋這么眼熟?原來(lái)上次你回復(fù)過(guò)!
誰(shuí)說(shuō)會(huì)做飯卻不知鍋碗瓢盆?那是因?yàn)槟阋哺静欢@個(gè)!
回復(fù)

使用道具 舉報(bào)

9#
ID:96682 發(fā)表于 2019-5-1 06:14 | 只看該作者
時(shí)鐘芯片不是有主電源和備用引腳么,如主電源斷了備用電源能維持走時(shí)不用初始化調(diào)時(shí)間的麻煩
回復(fù)

使用道具 舉報(bào)

10#
ID:476064 發(fā)表于 2019-5-1 18:52 來(lái)自手機(jī) | 只看該作者
wc86110 發(fā)表于 2019-5-1 06:14
時(shí)鐘芯片不是有主電源和備用引腳么,如主電源斷了備用電源能維持走時(shí)不用初始化調(diào)時(shí)間的麻煩

我白菜一個(gè),不懂編程。貌似是先寫(xiě)入一次程序后,需要在源碼中注釋掉1302的初始化,重新編譯再次寫(xiě)入,斷電后才可以維持走時(shí)。
回復(fù)

使用道具 舉報(bào)

11#
ID:650026 發(fā)表于 2019-12-23 17:04 | 只看該作者
zsf333666 發(fā)表于 2019-5-1 18:52
我白菜一個(gè),不懂編程。貌似是先寫(xiě)入一次程序后,需要在源碼中注釋掉1302的初始化,重新編譯再次寫(xiě)入,斷 ...

我也是白菜嘻嘻,找到同類了
回復(fù)

使用道具 舉報(bào)

12#
ID:664725 發(fā)表于 2019-12-24 14:35 | 只看該作者
函數(shù)的借用要一部分一部分的拷貝,修改,編譯檢查
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩一区二区三区 | 午夜精品视频在线观看 | 亚洲电影中文字幕 | 亚洲a在线视频 | 亚洲在线日韩 | 51ⅴ精品国产91久久久久久 | 美女视频一区二区三区 | 欧美成人一区二免费视频软件 | 99久久精品一区二区成人 | 狠狠躁夜夜躁人人爽天天高潮 | 国产一区视频在线 | 欧美日韩精品免费 | 久久免费精品视频 | 久草网址 | 精品亚洲第一 | 国产福利91精品一区二区三区 | 自拍视频一区二区三区 | 国产91视频一区二区 | 国产成年人小视频 | 99福利视频| 人人干在线视频 | 久久久久久亚洲精品 | 精品久久久久久久人人人人传媒 | 国产在线观看一区二区三区 | 国产精品夜间视频香蕉 | av网站免费观看 | 亚洲精品美女视频 | 一区二区三区四区免费在线观看 | 高清色 | 精品欧美一区二区三区久久久 | 久久精品视频在线观看 | 五月激情婷婷在线 | www.毛片| 欧美性生活网 | 91久久精品 | 久久高清| 久久精品国产一区二区电影 | 中文字幕高清在线 | 日韩视频在线免费观看 | 91啪影院| 亚洲精品国产成人 |