动态显示0-7数字
由于间隔时间过短,看起来是一直显示01234567,其实是轮流出现的,而且想要实现这个效果,消影这一步必不可少
#include <reg52.h>
#define uchar unsigned char
void delay_xms(int x)
{
int i,j;
for(i=0;i<x*1;i++)
for(j=0;j<10;j++);
}
void main()
{
uchar code duanxuan[] = {
0x3f,0x06,0x5b,0x4f, //0,1,2,3
0x66,0x6d,0x7d,0x07, //4,5,6,7
0x7f,0x6f,0x77,0x7c, //8,9,A,B
0x39,0x5e,0x79,0x71}; //C,D,E,F 段选
uchar code weixuan[] = {
0x1c,0x18,0x14,0x10, //1,2,3,4
0xc,0x8,0x4,0x0}; //5,6,7 位选
while(1)
{
int i,m;
for(i=0;i<8;i++)
{
P2 = weixuan[i];
P0 = duanxuan[i];
delay_xms(1);
P0 = 0; //消影,对于这种动态的必须先位选再段选
}
}
}
实验效果: