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

標題: 幫忙指導下嘛 看看我的程序有錯沒 幫我改下嘛 [打印本頁]

作者: 1824380946    時間: 2016-7-13 18:36
標題: 幫忙指導下嘛 看看我的程序有錯沒 幫我改下嘛
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code Tab0[]=  //定義數碼管數組,沒有小數點
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
uchar code Tab1[]=  //定義數碼管數組,有小數點
{
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef
};
void Delay(uchar x);  //延時函數
void Display0();   //時間顯示函數
void Display2();  //時間設置顯示函數
void Init();    //中斷初始化函數
uchar Hours=23,Minutes=56,seconds=55;  //分別定義三個變量表示時、分、秒
uchar Time0_bit=0;   //用于定時器0的溢出標志
bit Set_Time=0;    //設置時 閃爍時長的標志位
bit Set0=0;     //設置時間標志,確定是設置‘分’還設置‘時’
void main()
{
Init();          //中斷初始化
while(1)         //死循環
  {
  
       Display0();   //顯示時間        
      
      }
   
       }
void Time0() interrupt 1      //定時器0函數
{
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)      //以下為時間數據處理
  {
   Time0_bit=0;
   seconds++;
   if(seconds==60)
    {
     seconds=0;
     Minutes++;
     if(Minutes==60)
      {
       Minutes=0;
       Hours++;
       if(Hours==24)
        {
         Hours=0;
        }
      }
    }
  }
}
void Init()        //中斷初始化函數
{
EA=1;        //開總中斷
TMOD=0X01;        //定時器工作方式選擇,定時器0和定時器1都選擇第1種工作方式
TH0=(65536-50000)/256;   //定時器0裝初值,定時50ms
TL0=(65536-50000)%256;
ET0=1;       //開定時器0開關
TR0=1;          //開定時器0小開關
}
void Display2()       //時間設置時的顯示函數
{
if(Set0==0)       //判斷是否為設置‘時’還是‘分’
  {
   P0=Tab0[seconds%10];  //顯示秒的個位
   P1=0xdf;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
  
   P0=Tab0[seconds/10];  //顯示秒的十位
   P1=0xef;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
   
   if(Set_Time)    //這個if語句實現分鐘以0.5秒的頻率閃爍
    {
     P0=Tab1[Minutes%10];  //顯示分的個位,需要加上小數點做分隔符
     P1=0xf7;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
     P0=Tab0[Minutes/10];  //顯示分的十位
     P1=0xfb;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
    }
   else
    {
     P0=0x00;  //顯示分的個位,需要加上小數點做分隔符
     P1=0xf7;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
  
     P0=0x00;  //顯示分的十位
     P1=0xfb;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
    }
   
   P0=Tab1[Hours%10];   //顯示時的個位,需要加上小數點做分隔符
   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];  //顯示分的個位,需要加上小數點做分隔符
   P1=0xf7;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
   P0=Tab0[Minutes/10];  //顯示分的十位
   P1=0xfb;     //段選
   Delay(10);     //延時
   P0=0X00;     //消隱
   
   if(Set_Time)    //這個if語句實現‘時’鐘以0.5秒的頻率閃爍
    {
     P0=Tab1[Hours%10];   //顯示時的個位,需要加上小數點做分隔符
     P1=0xfd;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
   
     P0=Tab0[Hours/10];   //顯示時的十位
     P1=0xfe;     //段選
     Delay(10);     //延時
     P0=0X00;     //消隱
    }
   else
    {
     P0=0x00;   //顯示時的個位,需要加上小數點做分隔符
     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];  //顯示分的個位,需要加上小數點做分隔符
P1=0xf7;     //段選
Delay(10);     //延時
P0=0X00;     //消隱
P0=Tab0[Minutes/10];  //顯示分的十位
P1=0xfb;     //段選
Delay(10);     //延時
P0=0X00;     //消隱
P0=Tab1[Hours%10];   //顯示時的個位,需要加上小數點做分隔符
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://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久久久精 | 国产精品自拍视频 | 亚洲一区在线日韩在线深爱 | 妞干网视频 | 日本成人片在线观看 | 亚洲国产欧美一区二区三区久久 | 国产精品欧美一区二区三区不卡 | 成人av免费| www亚洲精品 | 中文字幕一区二区三区乱码在线 | 亚洲国产成人精品女人久久久 | 欧美国产精品 | 久久久精品一区二区三区四季av | 亚洲国产精品久久 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 91精品国产综合久久精品图片 | 在线观看国产 | 日本免费一区二区三区四区 | 亚洲欧美国产精品久久 | 国产视频黄色 | 91精品国产一区二区三区蜜臀 | 亚洲精品1区 | 精品一区av | 国产成人自拍av | 精品一区国产 | 亚洲成人高清 | 亚洲先锋影音 | 日韩精品一区二区三区四区视频 | 久久精品99久久 | 日本中文字幕视频 | 欧美日韩视频在线 | av激情在线 | 久久久国产一区 | 99久久精品国产毛片 | 亚洲在线一区 | 日韩在线日韩 | 亚洲一区二区三区四区在线观看 | 国产黄色在线观看 | 久久区二区| 欧美精品tv | 国产精品久久久久久久久久久久 |