- 积分
- 3553
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2014-11-13
- 精华
|
马上注册,获取阅读精华内容及下载权限
您需要 登录 才可以下载或查看,没有帐号?注册
x
/*数码管动态显示,延时0.5s数码管1到8显示一个口形流水灯,跑4圈,停下显示口,如此循环。
程序在实验板上通过。
*/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
uint aa;
uchar z;
void delayms(uint xms)
{
uint i;
uchar j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
while(1)
{
for(z=0;z<4;z++)
{
dula=1; //1
P0=0x01; //送段选数据
dula=0;
P0=0xff; //送位选数据前关闭所有显示,防止打开位选锁存器时
wela=1; //原来段选数据通过位选锁存器造成混乱
P0=0xfe; //送位选数据
wela=0;
delayms(500); //延时
dula=1; //2
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delayms(500);
dula=1; //3
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delayms(500);
dula=1; //4
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delayms(500);
dula=1; //5
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delayms(500);
dula=1; //6
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delayms(500);
dula=1; //7
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xbf;
wela=0;
delayms(500);
dula=1; //8
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0x7f;
wela=0;
delayms(500);
dula=1;
P0=0x02;
dula=0;
P0=0xff;
wela=1;
P0=0x7f;
wela=0;
delayms(500);
dula=1;
P0=0x04;
dula=0;
P0=0xff;
wela=1;
P0=0x7f;
wela=0;
delayms(500);
dula=1;
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0x7f;
wela=0;
delayms(500);
dula=1; //7
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xbf;
wela=0;
delayms(500);
dula=1; //6
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delayms(500);
dula=1; //5
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delayms(500);
dula=1; //4
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delayms(500);
dula=1; //3
P0=0x8;
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delayms(500);
dula=1; //2
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delayms(500);
dula=1; //1
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delayms(500);
dula=1; //1
P0=0x10;
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delayms(500);
dula=1; //1
P0=0x20;
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delayms(500);
}
for(aa=0;aa<200;aa++)
{
dula=1; //1
P0=0x01; //送段选数据
dula=0;
P0=0xff; //送位选数据前关闭所有显示,防止打开位选锁存器时
wela=1; //原来段选数据通过位选锁存器造成混乱
P0=0xfe; //送位选数据
wela=0;
delayms(5); //延时
dula=1; //2
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delayms(5);
dula=1; //3
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delayms(5);
dula=1; //4
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delayms(5);
dula=1; //5
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delayms(5);
dula=1; //6
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delayms(5);
dula=1; //7
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0xbf;
wela=0;
delayms(5);
dula=1; //8
P0=0x01;
dula=0;
P0=0xff;
wela=1;
P0=0x7f;
wela=0;
delayms(5);
dula=1;
P0=0x02;
dula=0;
P0=0xff;
wela=1;
P0=0x7f;
wela=0;
delayms(5);
dula=1;
P0=0x04;
dula=0;
P0=0xff;
wela=1;
P0=0x7f;
wela=0;
delayms(5);
dula=1;
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0x7f;
wela=0;
delayms(5);
dula=1; //7
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xbf;
wela=0;
delayms(5);
dula=1; //6
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delayms(5);
dula=1; //5
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delayms(5);
dula=1; //4
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delayms(5);
dula=1; //3
P0=0x8;
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delayms(5);
dula=1; //2
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delayms(5);
dula=1; //1
P0=0x08;
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delayms(5);
dula=1; //1
P0=0x10;
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delayms(5);
dula=1; //1
P0=0x20;
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delayms(5);
}
}
}
| 数码管
| 相关帖子
|
|
|