專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

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

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2009年10月27日   【字體:

/*
程序效果:跑秒,同時(shí)顯示四位數(shù)碼管
版權(quán)所有:http://www.torrancerestoration.com 轉(zhuǎn)載請保留.
P1控制數(shù)碼管的位 P2控制段
注意:如果無法在keil里編譯,請刪除每一行的所有前導(dǎo)空白,
*/
#include<reg52.h>  //頭文件
#define uchar unsigned char  //宏定義
#define uint  unsigned int
void display();   //函數(shù)聲明
uchar code table[]={0x3f,0x06,0x5b,//數(shù)碼管顯示的數(shù)值
0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uchar x)   //延時(shí)函數(shù),時(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里編譯,請刪除每一行的所有前導(dǎo)空白,

關(guān)閉窗口

相關(guān)文章