|
/*數(shù)碼管動(dòng)態(tài)顯示,延時(shí)0.5s數(shù)碼管1到8顯示一個(gè)口形流水燈,跑4圈,停下顯示口,如此循環(huán)。
程序在實(shí)驗(yàn)板上通過(guò)。
*/
#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; //送段選數(shù)據(jù)
dula=0;
P0=0xff; //送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開(kāi)位選鎖存器時(shí)
wela=1; //原來(lái)段選數(shù)據(jù)通過(guò)位選鎖存器造成混亂
P0=0xfe; //送位選數(shù)據(jù)
wela=0;
delayms(500); //延時(shí)
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; //送段選數(shù)據(jù)
dula=0;
P0=0xff; //送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開(kāi)位選鎖存器時(shí)
wela=1; //原來(lái)段選數(shù)據(jù)通過(guò)位選鎖存器造成混亂
P0=0xfe; //送位選數(shù)據(jù)
wela=0;
delayms(5); //延時(shí)
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);
}
}
}
|
評(píng)分
-
查看全部評(píng)分
|