单片机数码管动态显示代码
时间: 2023-09-24 12:07:39 浏览: 113
这是一个简单的单片机数码管动态显示代码,使用的是四位共阴数码管。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit key=P3^2;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //显示0~9的数码管编码
void delay(uint i) //延时函数
{
while(i--);
}
void displayer(uchar num,uchar wei) //显示函数
{
switch(wei)
{
case 0:
LSA=0;LSB=0;LSC=0;break; //选择第一位数码管
case 1:
LSA=1;LSB=0;LSC=0;break; //选择第二位数码管
case 2:
LSA=0;LSB=1;LSC=0;break; //选择第三位数码管
case 3:
LSA=1;LSB=1;LSC=0;break; //选择第四位数码管
}
P0=table[num]; //设置数码管显示内容
delay(100); //延时一段时间,使数码管显示内容更新
P0=0x00; //关闭数码管
}
void main()
{
uchar i,j,k,l; //i,j,k,l用于记录要显示的数的四位数码
while(1)
{
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<10;k++)
{
for(l=0;l<10;l++)
{
displayer(i,0); //显示第一位数码
displayer(j,1); //显示第二位数码
displayer(k,2); //显示第三位数码
displayer(l,3); //显示第四位数码
}
}
}
}
}
}
阅读全文