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

標題: 想在這個時鐘程序加個鬧鐘功能,求大神指導 [打印本頁]

作者: yhb306724368    時間: 2017-6-2 13:00
標題: 想在這個時鐘程序加個鬧鐘功能,求大神指導
本帖最后由 yhb306724368 于 2017-6-2 13:02 編輯

#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit rs=P3^5;
sbit rw = P3^6;
sbit en=P3^4;
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;  
sbit ding=P2^3;    //蜂鳴器
u8  code disp1[]="  Design clock";
u8  code disp2[]="    23:59:40 ";
u8 num,ad;        //全局變量
char miao,fen,shi;
void delay(u16 z)   //延時函數
{
u16 x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);  
}
void write_com(u8 com)  //寫指令
{
   rs=0;
   rw=0;
   P0=com;
   delay(5);
   en=1;
   delay(5);
   en=0;
}
void write_date(u8 date)  //讀指令
{
   rs=1;
   rw=0;
   P0=date;
   delay(5);
   en=1;
   delay(5);
   en=0;
}
void init_lcd()   //lcd液晶初始化
{  shi=23;
   fen=59;
   miao=40;

   ding=1;   

   k1=1;
   k2=1;
   k3=1;

   rs=0;
   rw=0;
   en=0;

   write_com(0x06);
   write_com(0x0c);
   write_com(0x38);
   write_com(0x01);
   write_com(0x80);

   TMOD=0x01;
   TH0=(65535-50000)/256;
   TL0=(65535-50000)%256;
   EA=1;
   ET0=1;  
}
void lcd_dis(u8 add,u8 shu)  //顯示函數
{
   u8 shi,ge;
   shi=shu/10;
   ge=shu%10;
   write_com(0x80+0x40+add);
   write_date(0x30+shi);
   write_date(0x30+ge);

}
void hed()      //蜂鳴器響一次
{
   ding=0;
   delay(10);
   ding=1;
}
void key()    //調時函數
{  

if(k1==0)
  {
   delay(5);//消抖
   if(k1==0)
    {   
      hed();
       ad++;
       while(!k1)

       if(ad==1)
       {
         TR0=0;    //關閉定時器0
         write_com(0x80+0x40+10);//秒位
         write_com(0x0f);  //開光標
       }
}
       if(ad==2)
       {
         write_com(0x80+0x40+7);
         write_com(0x0f);
       }
      if(ad==3)
      {
         write_com(0x80+0x40+4);
         write_com(0x0f);
      }
      if(ad==4)
      {
           write_com(0x0c);
           TR0=1;  //開啟定時器0
           ad=0;
      }
    }


}
void jia() //加函數
{
   if(ad!=0)
{

   if(k2==0)
   {
      delay(5);
      if(k2==0)
       {   
         while(!k2);hed();
         if(ad==1)
         {
         miao++;

         if(miao==60)
          {
            miao=0;
          }
         lcd_dis(10,miao);
         write_com(0x80+0x40+10);

         }
         if(ad==2)
         {
         fen++;

         if(fen==60)
          {
            fen=0;
          }
         lcd_dis(7,fen);
         write_com(0x80+0x40+7);

         }
         if(ad==3)
         {
         shi++;

         if(shi==24)
          {
            shi=0;
          }
         lcd_dis(4,shi);
         write_com(0x80+0x40+4);

         }

       }
   }
}
}
void jian()//減函數
{
   if(ad!=0)
{

   if(k3==0)
   {
      delay(5);
      if(k3==0)
       {   
         while(!k3);hed();
         if(ad==1)
         {
         miao--;

         if(miao==0)
          {
            miao=59;
          }
         lcd_dis(10,miao);
         write_com(0x80+0x40+10);

         }
         if(ad==2)
         {
         fen--;

         if(fen==0)
          {
            fen=59;
          }
         lcd_dis(7,fen);
         write_com(0x80+0x40+7);

         }
         if(ad==3)
         {
         shi--;

         if(shi==0)
          {
            shi=24;
          }
         lcd_dis(4,shi);
         write_com(0x80+0x40+4);

         }

       }
   }
}
}
void main()//主函數
{  
   init_lcd();

   for(num=0;num<14;num++)//lcd液晶顯示初值
   {
      write_date(disp1[num]);
      delay(10);
   }
     write_com(0x80+0x40);
   for(num=0;num<13;num++)
   {
     write_date(disp2[num]);
   }
     delay(10);
   TR0=1;
     while(1)
       {
             key();
             jia();
             jian();
       }     
}
void timer0()  interrupt 0//定時器中斷0函數
{
  u8 a;
  TH0=(65535-50000)/256;
  TL0=(65535-50000)%256;
  a++;
  if(a==20)
    {
       a=0;

       miao++;
       if(miao==60)
       {
           miao=0;
           fen++;
           if(fen==60)
           {
               fen=0;
               shi++;
               if(shi==24)
               {
                shi=0;  
               }
               lcd_dis(4,shi);
           }
           lcd_dis(7,fen);
       }
       lcd_dis(10,miao);
    }
}



作者: cjjcjj1    時間: 2017-6-2 22:57
提示: 作者被禁止或刪除 內容自動屏蔽
作者: yhb306724368    時間: 2017-6-3 18:04
cjjcjj1 發表于 2017-6-2 22:57
鬧鐘是固定時間響?還是需要隨意設置時間?

隨意設置時間




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产一区二区三区免费观看视频 | 一区二区三区福利视频 | 久久精品一级 | 午夜午夜精品一区二区三区文 | 日韩伦理一区二区三区 | 亚洲精品一区二区三区丝袜 | 久草在线青青草 | 日本三级精品 | 五月花丁香婷婷 | 中文字幕一区二区三区乱码在线 | 欧美中文视频 | 精品一区二区三区在线视频 | 91极品尤物在线播放国产 | 欧美亚洲成人网 | 国产精品日日摸夜夜添夜夜av | 美女久久久久久久 | 国产在线观看网站 | av在线视| 久久99精品久久久久久国产越南 | 国产japanhdxxxx麻豆| 欧美日韩专区 | www狠狠爱com| 精久久久久 | 在线免费观看毛片 | 亚洲欧美日韩在线 | 久久这里只有 | 91亚洲国产成人精品一区二三 | 日韩中文字幕在线观看 | 日本久久精品视频 | 成人免费视频7777777 | 色婷婷婷婷色 | 亚洲一区二区三区欧美 | 亚洲国产欧美在线人成 | 97精品国产97久久久久久免费 | 欧美一a一片一级一片 | 色频| 日韩在线视频观看 | 欧美日韩成人影院 | 不卡的av在线| 欧美高清视频一区 | 免费99精品国产自在在线 |