数码管从左到右依次滚动显示0~7,程序通过每次仅循环选通一只数码管!
仿真图如图所示:
程序如下:
代码语言:javascript复制#include <reg52.h>
#include <intrins.h>
#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);
}
}
}
为验证仿真效果,本设计在protues8.7软件上验证实现。
仿真视频如下:
http://mpvideo.qpic.cn/0bf234gb4aamgmadusehj5pvzx6dd3pqyhqa.f10002.mp4?