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