//点阵管屏显PL 51字样
#include <reg52.h>
#define uchar unsigned char
sbit diola=P2^5;
sbit dula=P2^6;
sbit wela=P2^7;
void delay(void) //延时子程序
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=4;n>0;n--)
for(s=4;s>0;s--);
}
void led(void) //点阵清屏
{
diola=1;
dula=1;
P0=0X00;
diola=0;
dula=0;
delay(); //延时
}
void ledpl(void) //LED显示 PL
{
led();
dula=1;
P0=0XD8;
dula=0;
delay();
diola=1;
P0=0X01; //第1行亮
diola=0;
delay();
led();
dula=1;
P0=0XD6;
dula=0;
delay();
diola=1;
P0=0X02; //第2行亮
diola=0;
delay();
led();
//
dula=1;
P0=0XD6;
dula=0;
delay();
diola=1;
P0=0X04; //第3行亮
diola=0;
delay();
led();
//
dula=1;
P0=0XD6;
dula=0;
delay();
diola=1;
P0=0X08; //第4行亮
diola=0;
delay();
led();
//
dula=1;
P0=0XD8;
dula=0;
delay();
diola=1;
P0=0X10; //第5行亮
diola=0;
delay();
led();
//
dula=1;
P0=0XDE;
dula=0;
delay();
diola=1;
P0=0X20; //第6行亮
diola=0;
delay();
led();
///
dula=1;
P0=0XDE;
dula=0;
delay();
diola=1;
P0=0X40; //第7行亮
diola=0;
delay();
led();
///
dula=1;
P0=0X1E;
dula=0;
delay();
diola=1;
P0=0X80; //第8行亮
diola=0;
delay();
}
void led51(void) //LED显示 51
{
led();
dula=1;
P0=0X60;
dula=0;
delay();
diola=1;
P0=0X01; //第1行亮
diola=0;
delay();
led();
dula=1;
P0=0X3e;
dula=0;
delay();
diola=1;
P0=0X02; //第2行亮
diola=0;
delay();
led();
dula=1;
P0=0X70;
dula=0;
delay();
diola=1;
P0=0X04; //第3行亮
diola=0;
delay();
led();
//
dula=1;
P0=0X6e;
dula=0;
delay();
diola=1;
P0=0X08; //第4行亮
diola=0;
delay();
led();
//
dula=1;
P0=0X6f;
dula=0;
delay();
diola=1;
P0=0X10; //第5行亮
wela=0;
delay();
led();
//
dula=1;
P0=0X6f;
dula=0;
delay();
diola=1;
P0=0X20; //第6行亮
diola=0;
delay();
led();
///
dula=1;
P0=0X6e;
dula=0;
delay();
diola=1;
P0=0X40; //第7行亮
diola=0;
delay();
led();
//
dula=1;
P0=0X71;
dula=0;
delay();
diola=1;
P0=0X80; //第8行亮
diola=0;
delay();
}
void main(void) //主程序
{
wela=1;
delay();
P0=0Xff; //关闭数码管
delay();
wela=0;
delay();
while(1) //重复遁环
{
uchar i;
for(i=0;i<200;i++)
{
ledpl();
}
for(i=0;i<200;i++)
{
led51();
}
}
}
评论0