51单片机 数码动态显示
扫描二维码
随时随地手机看文章
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define SEGP0
sbit latch1=P2^7;//段驱动锁存信号
sbit latch2=P2^6;//位驱动锁存信号
uchar code DSY_CODE[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
void DelayMS(uint x)
{
uchar t;
while(x--)
{
for(t=120;t>0;t--);
}
}
void main()
{
uchar i=0;
uchar display[4];
uchar bit_com = 0x01;
display[0]=DSY_CODE[2];
display[1]=DSY_CODE[0];
display[2]=DSY_CODE[1];
display[3]=DSY_CODE[2];
while(1)
{
P0=display[i];//段控制
latch1=1;
latch1=0;
P0=~bit_com;//位选通控制
latch2=1;
latch2=0;
DelayMS(4);
i++;
bit_com = bit_com<<1;
if(i==4)
i=0;
if(bit_com == 0x10)
bit_com =0x01;
}
}