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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2356|回復: 2
打印 上一主題 下一主題
收起左側

想在這個時鐘程序加個鬧鐘功能,求大神指導

[復制鏈接]
跳轉到指定樓層
樓主
ID:194878 發表于 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);
    }
}


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

使用道具 舉報

沙發
ID:82765 發表于 2017-6-2 22:57 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

板凳
ID:194878 發表于 2017-6-3 18:04 | 只看該作者
cjjcjj1 發表于 2017-6-2 22:57
鬧鐘是固定時間響?還是需要隨意設置時間?

隨意設置時間
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品国产三级国产aⅴ原创 | 在线免费看91 | 国产一区二区三区四区在线观看 | 91精品国模一区二区三区 | 91p在线观看| 日韩精品一区二区在线观看 | 国产黄色网址在线观看 | 欧美 日韩 国产 成人 | 成人一区二区三区 | 日本黄色免费片 | 色婷综合网| 欧美日韩一区在线 | 蜜桃臀av一区二区三区 | 精品在线一区二区三区 | 日韩福利片 | 亚洲欧美日韩在线一区二区 | 在线观看成人 | 激情毛片 | 欧美日韩中文在线观看 | 亚洲国产成人av好男人在线观看 | 极品国产视频 | 犬夜叉在线观看 | 91精品国产一区二区三区 | 精品一二三 | 久久网国产| 精品国产乱码久久久久久影片 | 日韩一区二区在线视频 | 黄色免费av | 中文字幕视频免费 | 国产精品毛片一区二区在线看 | 色欧美综合| 国产成人99久久亚洲综合精品 | 欧美日本一区二区 | 国产欧美精品一区二区色综合 | 精品国产99 | 久久精品久久久 | 欧美日韩综合 | 久久99深爱久久99精品 | 国产日韩一区二区 | 国产成人在线视频 | 精品视频一区二区三区在线观看 |