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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

為什么防真的時候數碼管不動

[復制鏈接]
跳轉到指定樓層
樓主
ID:327277 發表于 2018-5-23 12:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<STC15F2K60S2.h>
#define uchar unsigned char
#define uint unsigned int
uchar code wela[8]={0xfe,0xfd,0xfc,0xfb,0xef,0xdf,0xcf,0xbf};
uchar code dula[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xfb,0x80,0x90,0xbf};
void init();//初始化定時器
void delay(uint z);
void miao();
void fen();
void shi();
void fuhao();
void display();//顯示函數
void keyscan();
sbit key1=P3^4; //控制秒分時的閃爍
sbit key2=P3^1; //控制時鐘的啟動暫停
sbit key3=P3^6; //設置時鐘的值
sbit key4=P3^7; //計時和倒計時
uchar hour,second,minute,t0,i,t1,key1_num;
uchar s_flag;//閃爍標志位
uchar count_flag; //計時倒計時標志位
void main()
{
  init();
  while(1)
   {
    keyscan();
        switch(key1_num)
   {
     case 0:
           {
            display();
            break;
           }
     case 1:
           {
           AUXR|=0x00;
            if(s_flag==1)
             {
              P2=wela[5];
                  P0=0xff;
                  delay(1);
                  P2=wela[4];
                  P0=0xff;
                  delay(1);
             }
            if(s_flag==0)
            {
             miao();
            }
                 fuhao();
             fen();
             shi();       
             break;
           }
     case 2:
           {
            AUXR|=0x00;
            if(s_flag==1)
             {
              P2=wela[3];
                  P0=0xff;
                  delay(1);
                  P2=wela[2];
                  P0=0xff;
                  delay(1);
             }
             if(s_flag==0)
             {
              fen();
             }
                  fuhao();
              miao();
              shi();       
                 break;
           }
    case 3:
           {
            AUXR|=0x00;
            if(s_flag==1)
             {
              P2=wela[1];
                     P0=0xff;
                  delay(1);
                  P2=wela[0];
                  P0=0xff;
                  delay(1);               
             }
            if(s_flag==0)
             {
              shi();
             }
                 fuhao();
             miao();
             fen();         
             break;
           }
         }
   }
}
void miao()
{
  P2=wela[7];
  P0=dula[second%10];
  delay(1);
  P2=wela[6];
  P0=dula[second/10];
  delay(1);
}

void fen()
{
   P2=wela[4];
   P0=dula[minute%10];
   delay(1);
   P2=wela[3];
   P0=dula[minute/10];
   delay(1);
}

void shi()
  {
   P2=wela[1];
   P0=dula[hour%10];
   delay(1);
   P2=wela[0];
   P0=dula[hour/10];
   delay(1);
  }
void fuhao()
  {
   P2=wela[5];
   P0=dula[10];
   delay(1);
   P2=wela[2];
   P0=dula[10];
   delay(1);
  }

void delay(uint z)
{
  uint x,y;
    for(x=z;x>0;x--)
          for(y=110;y>0;y--);
}
void Timer2() interrupt 12
{
if(count_flag==0)
{
t0++;
if(t0==10)
{
  t0=0;
  second++;
  if(second==60)
   {
    second=0;
    minute++;
    if(minute==60)
     {
      minute=0;
          hour++;
          if(hour==24)
          hour=0;
     }
   }
}
}
if(count_flag==1)
{
t0++;
if(t0==10)
{
  t0=0;
  second--;
  if(second==255)
   {
    second=59;
    minute--;
    if(minute==255)
     {
      minute=59;
          hour--;
          if(hour==255)
          hour=23;
     }
   }
}
}
}
void T0_time() interrupt 1
{
TH0=0x3c;
TL0=0xb0;
t1++;
  if(t1==5)
   {
    t1=0;
    s_flag=!s_flag;
   }
}

void init()
{
  TMOD=0x01;
  AUXR&=0xfb;
  T2H=0x3c;
  T2L=0xb0;
  TH0=0x3c;
  TL0=0xb0;
  EA=1;
  IE2|=0x04;
  AUXR|=0x10;
  ET0=1;
  TR0=1;
}

void keyscan()
{
  if(key1==0)
   {
    delay(10);
         if(key1==0)
         {
     key1_num++;
         if(key1_num==4)
         key1_num=0;
         }
         while(!key1)
         display();
   }
   if(key2==0)
    {
          delay(10);
          if(key2==0)
           {
            AUXR|=0x00;
           }
           while(!key2)
           display();
        }
   if(key3==0)
    {
         delay(10);
         if(key3==0)
          {
            if(key1_num==1)
                 {
                  second++;
                   if(second==60)
                   second=0;
                 }
                if(key1_num==2)
                 {
                   minute++;
                    if(minute==60)
                        minute=0;
                 }
                if(key1_num==3)
                 {
                  hour++;
                   if(hour==24)
                    {
                         hour=0;
                        }
                 }
                 while(!key3)
                 display();
          }
        }
        if(key4==0)
         {
           delay(10);
           if(key4==0)
            {
                  count_flag++;
                  if(count_flag==2)
                  count_flag=0;
                }
                while(!key4)
                display();
         }

}
void display()
{
miao();
fen();
shi();  
fuhao();

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

使用道具 舉報

沙發
ID:336510 發表于 2018-5-23 15:26 | 只看該作者
這么長的程序你這程序沒問題?
回復

使用道具 舉報

板凳
ID:213173 發表于 2018-5-23 16:28 | 只看該作者
仿真軟件里沒有STC15系列,改用51單片機寫程序。
回復

使用道具 舉報

地板
ID:336745 發表于 2018-5-23 19:29 | 只看該作者
檢查調用數碼管的函數接口是否有問題,檢查代碼是否正確
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久国产一区二区三区 | 99re99| 欧美激情第一区 | 狠狠躁18三区二区一区 | 狠狠操天天操 | 国产国拍亚洲精品av | 日日日日操 | 国产亚洲一区二区三区 | 狠狠狠色丁香婷婷综合久久五月 | 中文字幕一区在线观看视频 | 青青草av| 亚洲一二三区在线观看 | 日韩国产欧美在线观看 | 欧美精品电影一区 | 欧美区在线| 一区二区三区av | 一区在线观看 | 久久综合一区二区三区 | av毛片免费 | 久久av一区 | 成人一区二区视频 | 日韩免费一区二区 | 国产高清精品一区 | 欧美精品一区二区三区在线播放 | 欧美一级欧美三级在线观看 | 人人操日日干 | 亚洲一区av| wwwww在线观看 | 国产毛片毛片 | av免费网站在线观看 | 能看的av| 免费视频一区二区 | 中文字幕一级毛片 | 精品国产91乱码一区二区三区 | 国产成人精品一区二区三 | 欧美v日韩v | 韩日在线观看视频 | 久久久久高清 | 日日精品| 91久久精品一区二区二区 | 国产黑丝在线 |