新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 跑秒程序-數(shù)碼管顯示

跑秒程序-數(shù)碼管顯示

作者: 時(shí)間:2012-11-10 來源:網(wǎng)絡(luò) 收藏

/*
程序效果:跑秒,同時(shí)顯示四位數(shù)碼管
版權(quán)所有:http://www.51hei.com 轉(zhuǎn)載請(qǐng)保留.
P1控制數(shù)碼管的位 P2控制段
注意:如果無法在keil里編譯,請(qǐng)刪除每一行的所有前導(dǎo)空白,
*/
#includereg52.h> //頭文件
#define uchar unsigned char //宏定義
#define uint unsigned int
void display(); //函數(shù)聲明
uchar code table[]={0x3f,0x06,0x5b,//的數(shù)值
0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uchar x) //,時(shí)間我也不會(huì)算啊
{
  uchar i,j;
  for(i=x;i>0;i--)
    for(j=110;j>0;j--);
}
void main() //主函數(shù)
{
  while(1)
  {
    display(); //顯示子函數(shù)
  }
}
void display()
{
  uchar i,j,k,l; //定義局部變量
  P1=0xff; //點(diǎn)亮最右邊的數(shù)碼管
  P2=table[i]; //送數(shù)值,顯示各位
  delay(10); //延時(shí)
  i++; //自加一,為下次顯示作準(zhǔn)本
  if(i==10)
  {
    i=0; //i值加滿10,清零
    j++;
    P1=0xfe; //點(diǎn)亮下一個(gè)數(shù)碼管
    P2=table[j];
    delay(10);
  }
   if(j==10)
  {
    j=0;
    k++;
    P1=0xfd;
    P2=table[k];
    delay(10);
  }
  if(k==10)
  {
    k=0;
    l++;
    P1=0xfc;
    P2=table[l];
    delay(10);
    if(l==10)
    l=0;
  }
//以下語句是不可以缺少的
  P1=0xfe; //顯示十位
  P2=table[j];
  delay(10);

  P1=0xfd; //顯示百位
  P2=table[k];
  delay(10);

  P1=0xfc; //顯示千位
  P2=table[l];
  delay(10);
}
注意:如果無法在keil里編譯,請(qǐng)刪除每一行的所有前導(dǎo)空白,



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉