51单片机C语言程序中如何确定数码管显示内容

2025-04-13 15:03:24
推荐回答(1个)
回答1:

假设8个数码管公共端均接地,同时显示1-9
#include
#include
#define
uchar
unsigned
char
#define
uint
unsigned
int
uchar
code
dsy_code[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xff
};
void
delayms(uint
x)
{
uchar
t;
while(x--)
for(t=120;t>0;t--);
}
void
main()
{
uchar
i=0;
p0=0x00;
while(1)
{
p0=~dsy_code[i];
i=(i+1)%10;/*显示0-9*/
delayms(200);
}
}
下面程序从左到右显示
#include
#include
#define
uchar
unsigned
char
#define
uint
unsigned
int
uchar
code
dsy_code[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
void
delayms(uint
x)
{
uchar
i;
while(x--)
{
for(i=200;i>0;i--);
}
}
void
main()
{
uchar
i,k=0x80;
while(1)
{
for(i=8;i>0;i--)
{
p2=0xff;
k=_crol_(k,1);
p0=dsy_code[8-i];
p2=k;
delayms(3);
}
}
}