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

標題: STC89C52時鐘顯示加鬧鐘功能(4位)顯示更多位添加相應(yīng)程序就好 [打印本頁]

作者: tangyuan.    時間: 2019-1-12 11:52
標題: STC89C52時鐘顯示加鬧鐘功能(4位)顯示更多位添加相應(yīng)程序就好
部分程序如下:
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit LA=P1^2;//段選
sbit LB=P1^3;//段選
sbit LC=P1^4;//段選
sbit deep=P1^5;//鬧鐘
u8 i,j,k,m;
u8 a,b,c,d;
u16 e,s1,s2,s3,s4,s5,s6,s7;//s1秒加,s2秒減,s3分加,s4分減,s5啟動,s6暫停,s7定時開啟

u8 code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //顯示0~9 共陰
u8 code smg1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; //顯示0~9加小數(shù)點
void delay(u16 x)
{
   while(x--);                          
}
void digital()
{
   u8 t;
   a=0,b=0,c=0,d=0;
   for(t=0;t<4;t++)
   {
         switch(t)
         {
           case 0:LA=0;LB=0;LC=1;i=0;
                  P0=smg[i];break;
           case 1:LA=1;LB=1;LC=0;j=0;
                  P0=smg[j];break;
           case 2:LA=0;LB=1;LC=0;k=0;
                  P0=smg1[k];break;
           case 3:LA=1;LB=0;LC=0;m=0;
                  P0=smg[m];break;
           default:break;
         }
         delay(100);
     P0=0x00;//數(shù)碼管消隱
   }
}
void keypros()//計時啟動前手動調(diào)節(jié)時間
{
  P2=0x7f;
  if(P2!=0x7f)
  {
           delay(100);
         if(P2!=0x7f)
         {
                switch(P2)
                {
                   case 0x77:s1=0;break;
                   case 0x7b:s2=0;break;
                   case 0x7d:s3=0;break;
                   case 0x7e:s4=0;break;
                   default:break;
                }
                while(P2!=0x7f)
            {
              LA=0;LB=0;LC=1;P0=smg[i];delay(100);P0=0x00;
          LA=1;LB=1;LC=0;P0=smg[j];delay(100);P0=0x00;
          LA=0;LB=1;LC=0;P0=smg1[k];delay(100);P0=0x00;
          LA=1;LB=0;LC=0;P0=smg[m];delay(100);P0=0x00;
                }
         }
  }
  P2=0xbf;
  if(P2!=0xbf)
  {
           delay(100);
         if(P2!=0xbf)
         {
                switch(P2)
                {
                   case 0xb7:s5=0;break;
                   case 0xbd:s7=0;break;
                }
            while(P2!=0xbf)
            {
                  LA=0;LB=0;LC=1;P0=smg[i];delay(100);P0=0x00;
          LA=1;LB=1;LC=0;P0=smg[j];delay(100);P0=0x00;
          LA=0;LB=1;LC=0;P0=smg1[k];delay(100);P0=0x00;
          LA=1;LB=0;LC=0;P0=smg[m];delay(100);P0=0x00;
            }
         }
  }//判斷是否有按鍵按下
  if(s1==0)//秒加
  {
          if(i==9)
          {
            i=0;
            if(j==5)
            {
              j=0;
                  if(k==9)
                  {
                    k=0;
                    if(m==5)
                    {
                      i=0,j=0,k=0,m=6;
                    }
                    else m++;
                  }
                   else k++;
            }
            else j++;
          }
          else i++;
          s1=1;
  }       
  if(s2==0)//秒減
  {
      if(i==0)
          {
            i=9;
            if(j==0)
            {
              j=5;
                  if(k==0)
                  {
                    k=9;
                    if(m==0)
                    {
                      i=0,j=0,k=0,m=0;
                    }
                    else m--;
                  }
                   else k--;
            }
            else j--;
          }
          else i--;
            s2=1;
  }
  if(s3==0)//分加
  {
          if(k==9)
      {
            k=0;
            if(m==5)
            {
                    k=0,m=6;
        }
            else m++;
      }
          else k++;
            s3=1;
  }
  if(s4==0)//分減
  {
          if(k==0)
      {
            k=9;
            if(m==0)
            {
                    k=0,m=0;
        }
            else m--;
      }
          else k--;
            s4=1;
  }
  if(s7==0)//定時
  {
    a=i,b=j,c=k,d=m;
        s7=1;
  }       
  LA=0;LB=0;LC=1;P0=smg[i];delay(100);P0=0x00;
  LA=1;LB=1;LC=0;P0=smg[j];delay(100);P0=0x00;
  LA=0;LB=1;LC=0;P0=smg1[k];delay(100);P0=0x00;
  LA=1;LB=0;LC=0;P0=smg[m];delay(100);P0=0x00;
}
void chushi() //定時器T0初始化
{
  TMOD=0X01;//方式1,16位。
  TH0=0XD8;//初值設(shè)定
  TL0=0XF0;//10ms后溢出
  EA=1;ET0=1;
  TR0=1;//計時啟動
}
void dig() //計時子函數(shù)!!!
{
  i++;
  if(i>9)
  {
          i=0;j++;
    if(j==6&&i==0)
    {
          j=0;k++;       
      if(k>9)
      {
            k=0;m++;
        if(m==6&&k==0&&j==0&&i==0)
        {
               TR0=0;//時間暫停
        }
          }
        }
  }
  LA=0;LB=0;LC=1;P0=smg[i];delay(100);P0=0x00;
  LA=1;LB=1;LC=0;P0=smg[j];delay(100);P0=0x00;
  LA=0;LB=1;LC=0;P0=smg1[k];delay(100);P0=0x00;
  LA=1;LB=0;LC=0;P0=smg[m];delay(100);P0=0x00;
}  
void main()        //主函數(shù)
{



STC89C52數(shù)字時鐘加鬧鐘(四位數(shù)碼管顯示).pdf

44.57 KB, 下載次數(shù): 25, 下載積分: 黑幣 -5






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品久久久亚洲 | 热久色 | 亚洲激情视频在线 | 欧美成人一区二区三区 | 日韩亚洲一区二区 | 精品一区二区久久久久久久网精 | 久久久久久久av麻豆果冻 | 日韩欧美综合 | 麻豆91精品91久久久 | 亚洲欧美日韩精品 | 一级h片 | 国产精品揄拍一区二区 | av黄色片在线观看 | 羞视频在线观看 | 青青激情网| 草草影院ccyy | 国产三区av | 毛片a级 | 日本一区二区三区在线观看 | 日本精品久久久久久久 | 理论片87福利理论电影 | 日本在线你懂的 | 天天操天天拍 | 99精品免费久久久久久日本 | 国产成人精品在线播放 | 伊人春色在线 | 日韩看片 | 色桃网| 91在线视频网址 | 日韩国产欧美视频 | 日韩中文一区二区 | 成人久久| 精品久久久久久久久久久久久久久久久 | 国产欧美一区二区在线观看 | 亚洲高清在线观看 | 国产午夜精品一区二区三区四区 | 亚洲精品成人av久久 | 91精品在线观看入口 | 成年人在线视频 | 久久成人国产 | 综合国产第二页 |