延迟设到50以上正常,可以分别显示1到6,但是设低延迟后,不能达到动态数码管的效果
显示部分乱码
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
uint num;
uchar code table[]={ //编码定义
0xc0,0xcf,0xa4,0xb0,
0x99,0x92,0x02,0xf8,
0x00,0x90};
void delayms(uint);
void main()
{
while(1)
{
dula=1;
P0=table[1]; //段选
dula=0;
P0=0xff; //送位选数据前关闭所有显示 消隐
wela=1;
P0=0x01;
wela=0;
delayms(1);
dula=1;
P0=table[2];
dula=0;
P0=0xff;
wela=1;
P0=0x02;
wela=0;
delayms(1);
dula=1;
P0=table[3];
dula=0;
P0=0xff;
wela=1;
P0=0x04;
wela=0;
delayms(1);
dula=1;
P0=table[4];
dula=0;
P0=0xff;
wela=1;
P0=0x08;
wela=0;
delayms(1);
dula=1;
P0=table[5];
dula=0;
P0=0xff;
wela=1;
P0=0x10;
wela=0;
delayms(1);
dula=1;
P0=table[6];
dula=0;
P0=0xff;
wela=1;
P0=0x20;
wela=0;
delayms(1);
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
-
谢谢,请问下程序没问题的话,仿真如何让动态数码管清晰稳定的显示数字123456呢?
一周热门 更多>