51单片机数码管显示实验
实验内容:
1)编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数实现),到数码管显示9后,再从0开始显示,如此循环反复。
2)C语言程序
#include
#define uint unsigned int
void display();
void num();
int i;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表
void delayms(uint);
void main()
{
while(1)
{
num();
display();
}
}
void display()
{
P2=0xff;//消隐P0连接段选,P1节位选
P1=0x00;//8个数码管同时显示
P2=table[i];//数码管显示数码0
delayms(1000);//延时5ms
}
void num()
{
if(i<9)
i++;
else
i=0;
}
void delayms(uint x)
{
uint i,j;
for(i=0;i
#define uint unsigned int
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表
void delayms(uint x);
void zuoyi();
void main()
{
int i;
while(1)
{
P1=0xfe;
for(i=0;i<8;i++)
{
P2=table[i];
delayms(3);
zuoyi();
}
}
}
void delayms(uint x)
{
uint i,j;
for(i=0;i