跑秒程序-数码管显示
/*
程序效果:跑秒,同时显示四位数码管
版权所有: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里编译,请删除每一行的所有前导空白,
评论