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

標(biāo)題: 幫忙指導(dǎo)下嘛 看看我的程序有錯沒 幫我改下嘛 [打印本頁]

作者: 1824380946    時間: 2016-7-13 18:36
標(biāo)題: 幫忙指導(dǎo)下嘛 看看我的程序有錯沒 幫我改下嘛
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code Tab0[]=  //定義數(shù)碼管數(shù)組,沒有小數(shù)點(diǎn)
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
uchar code Tab1[]=  //定義數(shù)碼管數(shù)組,有小數(shù)點(diǎn)
{
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef
};
void Delay(uchar x);  //延時函數(shù)
void Display0();   //時間顯示函數(shù)
void Display2();  //時間設(shè)置顯示函數(shù)
void Init();    //中斷初始化函數(shù)
uchar Hours=23,Minutes=56,seconds=55;  //分別定義三個變量表示時、分、秒
uchar Time0_bit=0;   //用于定時器0的溢出標(biāo)志
bit Set_Time=0;    //設(shè)置時 閃爍時長的標(biāo)志位
bit Set0=0;     //設(shè)置時間標(biāo)志,確定是設(shè)置‘分’還設(shè)置‘時’
void main()
{
Init();          //中斷初始化
while(1)         //死循環(huán)
  {
  
       Display0();   //顯示時間        
      
      }
   
       }
void Time0() interrupt 1      //定時器0函數(shù)
{
TH0=(65536-50000)/256;        //重裝初值
TL0=(65536-50000)%256;
Time0_bit++;
if((Time0_bit%10)==0)     //每溢出10次Time0_bit取反一次
  Set_Time=~Set_Time;       //0.5秒閃爍一次
if(Time0_bit==20)      //以下為時間數(shù)據(jù)處理
  {
   Time0_bit=0;
   seconds++;
   if(seconds==60)
    {
     seconds=0;
     Minutes++;
     if(Minutes==60)
      {
       Minutes=0;
       Hours++;
       if(Hours==24)
        {
         Hours=0;
        }
      }
    }
  }
}
void Init()        //中斷初始化函數(shù)
{
EA=1;        //開總中斷
TMOD=0X01;        //定時器工作方式選擇,定時器0和定時器1都選擇第1種工作方式
TH0=(65536-50000)/256;   //定時器0裝初值,定時50ms
TL0=(65536-50000)%256;
ET0=1;       //開定時器0開關(guān)
TR0=1;          //開定時器0小開關(guān)
}
void Display2()       //時間設(shè)置時的顯示函數(shù)
{
if(Set0==0)       //判斷是否為設(shè)置‘時’還是‘分’
  {
   P0=Tab0[seconds%10];  //顯示秒的個位
   P1=0xdf;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
  
   P0=Tab0[seconds/10];  //顯示秒的十位
   P1=0xef;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
   
   if(Set_Time)    //這個if語句實(shí)現(xiàn)分鐘以0.5秒的頻率閃爍
    {
     P0=Tab1[Minutes%10];  //顯示分的個位,需要加上小數(shù)點(diǎn)做分隔符
     P1=0xf7;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
     P0=Tab0[Minutes/10];  //顯示分的十位
     P1=0xfb;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
    }
   else
    {
     P0=0x00;  //顯示分的個位,需要加上小數(shù)點(diǎn)做分隔符
     P1=0xf7;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
  
     P0=0x00;  //顯示分的十位
     P1=0xfb;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
    }
   
   P0=Tab1[Hours%10];   //顯示時的個位,需要加上小數(shù)點(diǎn)做分隔符
   P1=0xfd;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
  
   P0=Tab0[Hours/10];   //顯示時的十位
   P1=0xfe;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
  }

else   //‘時’鐘閃爍
  {
   P0=Tab0[seconds%10];  //顯示秒的個位
   P1=0xdf;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
  
   P0=Tab0[seconds/10];  //顯示秒的十位
   P1=0xef;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
   
   P0=Tab1[Minutes%10];  //顯示分的個位,需要加上小數(shù)點(diǎn)做分隔符
   P1=0xf7;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
   P0=Tab0[Minutes/10];  //顯示分的十位
   P1=0xfb;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
   
   if(Set_Time)    //這個if語句實(shí)現(xiàn)‘時’鐘以0.5秒的頻率閃爍
    {
     P0=Tab1[Hours%10];   //顯示時的個位,需要加上小數(shù)點(diǎn)做分隔符
     P1=0xfd;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
   
     P0=Tab0[Hours/10];   //顯示時的十位
     P1=0xfe;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
    }
   else
    {
     P0=0x00;   //顯示時的個位,需要加上小數(shù)點(diǎn)做分隔符
     P1=0xFF;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
   
     P0=0X00;   //顯示時的十位
     P1=0xFF;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱   
    }  
  }
}
void Display0()   //顯示時鐘
{
P0=Tab0[seconds%10];  //顯示秒的個位
P1=0xdf;     //段選
Delay(10);     //延時
P0=0X00;     //消隱
P0=Tab0[seconds/10];  //顯示秒的十位
P1=0xef;     //段選
Delay(10);     //延時
P0=0X00;     //消隱
P0=Tab1[Minutes%10];  //顯示分的個位,需要加上小數(shù)點(diǎn)做分隔符
P1=0xf7;     //段選
Delay(10);     //延時
P0=0X00;     //消隱
P0=Tab0[Minutes/10];  //顯示分的十位
P1=0xfb;     //段選
Delay(10);     //延時
P0=0X00;     //消隱
P0=Tab1[Hours%10];   //顯示時的個位,需要加上小數(shù)點(diǎn)做分隔符
P1=0xfd;     //段選
Delay(10);     //延時
P0=0X00;     //消隱
P0=Tab0[Hours/10];   //顯示時的十位
P1=0xfe;     //段選
Delay(10);     //延時
P0=0X00;     //消隱
}

void Delay(uchar x)      //延時
{
uchar i,j;
for(i=x;i>0;i--)
  for(j=110;j>0;j--);
}





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: av色在线| 激情都市亚洲 | 国产小视频在线 | 99xav| 91成人在线观看喷潮蘑菇 | 伊人网av| 国内自拍一区 | 色六月婷婷 | 伊人成人在线 | 久久精品国产77777蜜臀 | 亚洲69视频 | 黄色一级毛片 | 精品视频在线观看免费 | 欧美日韩色 | 毛片网站大全 | 中文在线资源 | 欧美日韩一区二区三区视频 | 亚洲国产精品成人无久久精品 | 国产com | 亚洲天堂视频在线 | 久久都是精品 | 一级片国产| 欧美在线免费 | 日韩欧美激情 | 91禁蘑菇在线看 | 久久嫩草 | 性做久久久久久 | 日韩精品免费视频 | 成人免费视频大全 | www国产视频 | 久草免费福利视频 | 久久婷婷网 | a毛片大片| 成人福利视频 | 久草小视频 | 欧美国产一区二区 | www.wuye| 久久成人毛片 | 午夜免费av| 亚洲成av| 91蜜桃视频 |