欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STC89C52RC單片機、兩片74HC595控制的七段4位數碼管和有源蜂鳴器做的鬧鐘 [打印本頁]

作者: w358435135    時間: 2018-11-30 21:10
標題: STC89C52RC單片機、兩片74HC595控制的七段4位數碼管和有源蜂鳴器做的鬧鐘
通過按鈕可以調整正常時間和鬧鐘時間

下面是部分代碼


// SCK接P32 DIO接 P33   RCK接P34  上電后數碼管會顯示時鐘
#include <AT89X51.H>
#define DISP_WEI P2      
typedef unsigned char U8;
typedef unsigned int  U16;


sbit         KEY1 =P2^4;
sbit         KEY2 =P2^5;
sbit         KEY3 =P2^6;
sbit         KEY4 =P2^7;


U16 tcount;
U8 m;
U8 TIME_HOU_C,TIME_MIN_C,TIME_SEC_C;
U8 TIMER_TEMP,DISP_NUM;
static U8 second,minute,hour;
bit CLOCK_BUFF,CLOCK_FLAG;
bit ADJUST_TIME_FLAG,ADJUST_CLOCK_FLAG;        

int bing ;

sbit BEEP = P1^5;

//int mode;//鬧鐘模式,時間模式 0鬧鐘   1 時間模式   //2正常模式
U8 code segbit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};  //位選
U8  disbuf[8]={0,0,0,0,0,0,0,0};
U8 ADJUST_TIME[8]={0,0,0,0,0,0,0,0};

U8 code fseg[]={
0xc0,   //0
0xf9,   //1
0xa4,   //2
0xb0,   //3
0x99,   //4
0x92,   //5
0x82,   //6
0xf8,   //7
0x80,   //8
0x90,   //9
0x88,   //10        A
0x83,   //11        B  
0xc6,   //12        C
0xa1,   //13        D
0x86,   //14        E
0x8e,   //15        F
0x8b,   //16        h
0x89,   //17        H
0xa3,   //18        o
0xc1,   //19        u
0xaa,   //20        M
0xcf,   //21        I
0xc8,   //22        N
0xbf ,   //23        -
0xff   , // 24   滅
0x00    // 25   全亮
};


void Buzzer();
void CLOCK_CALC();
void display();
void init();
void IN_KEY();

void hour_time();
void min();
void sec();
void hour_c();
void min_c();
void sec_c();
void sdata_c();
void DISP_ADJUST_TIME();

//數據傳輸//
void sdata(void)
{
unsigned char b,c,num;

         if(b==0)
        {        
          b++;
        num=segbit[m];
          for(c=0;c<8;c++)
                  {
                  P3_2=0;
                   P3_3=num&0x80;
                   num<<=1;
                   P3_2=1;
           }
        
        }

        if(b==1)

        {  
            b--;
          if((m==2||m==5))
          {num=0xbf;}
          else
           {
             num=fseg[disbuf[m]];
                 }
                  for(c=0;c<8;c++)
                   {  P3_2=0;
                         P3_3=num&0x80;
                         num<<=1;
                         P3_2=1;
                   }
        
        }
             m++;
             if(m==8)
                 {m=0;
                     }
}
//數據傳輸//

void sdata_c(void)
{
unsigned char b,c,num;

         if(b==0)
        {        
          b++;
        num=segbit[m];
          for(c=0;c<8;c++)
                  {
                  P3_2=0;
                   P3_3=num&0x80;
                   num<<=1;
                   P3_2=1;
           }
        
        }

        if(b==1)

        {  
            b--;
                    num = fseg[ADJUST_TIME[m]];
                  for(c=0;c<8;c++)
                   {  P3_2=0;
                         P3_3=num&0x80;
                         num<<=1;
                         P3_2=1;
                   }
        
        }
             m++;
             if(m==8)
                 {m=0;
                     }
}


//延時0.1ms個單位//

void delay (unsigned char h)
  {        while(h--);
  }
  //延時0.1ms個單位//


//數據輸出//
void out(void)
{
  P3_4=0;
  delay(50);
  P3_4=1;
}
//數據輸出//


  void bcon(void)
   {
        disbuf[0]=second%10;
        disbuf[1]=second/10;
        
        disbuf[3]=minute%10;
        disbuf[4]=minute/10;
               
        disbuf[6]=hour%10;
        disbuf[7]=hour/10;
               

   }

void DISP_ADJUST_TIME(){
sdata_c();
out();
}
   void display(){
   bcon();
   sdata();
   out();
   }




  //主函數//



void main(void)
{        
init();

  while(1)
  {
   display();       //顯示時間
   IN_KEY();         //按鍵
   Buzzer();       //鬧鐘
  }
  while(1);

}
//主函數//



全部資料51hei下載地址:
時鐘-鬧鐘代碼.rar (109.94 KB, 下載次數: 89)







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1