LED流水灯和数码管该如何去用锁存呢?
时间:10-02
整理:3721RD
点击:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar num,temp,aa;
sbit dula = P1^0;//数码管段控制
sbit wela = P1^1;//数码管位控制
sbit Leden=P1^2;//LED灯控制端
sbit Line=P1^3;//点阵行控制端
uchar code table[]={
0X3f,0X06,0X5b,0x4f
,0x66,0x6d,0x7d,0x7f
,0x6f,0x77,0x7c,0x39
,0x5e,0x79,0x71,0x00};
void choose();
void delay(uint z);
void main()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
num=0;
aa=0;
choose();
P0=temp;
temp=0xfe;
Leden=0;
wela=1;
P0=0x00;
wela=0;
dula=1;
P0=table[0];
dula=0;
while(1)
{
Leden=1;
P0=temp;
delay(1000);
temp=_crol_(temp,1);
Leden=0;
}
}
void choose()
{
Line=1;
P0=0X00;
Line=0;
/* wela=1;
P0=0xff;
wela=0; */
Leden=1;
P0=0xff;
Leden=0;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(aa==20)
{
aa=0;
num++;
if(num==16)
{
num=0;
}
dula=1;
P0=table[num];
dula=0;
}
}
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar num,temp,aa;
sbit dula = P1^0;//数码管段控制
sbit wela = P1^1;//数码管位控制
sbit Leden=P1^2;//LED灯控制端
sbit Line=P1^3;//点阵行控制端
uchar code table[]={
0X3f,0X06,0X5b,0x4f
,0x66,0x6d,0x7d,0x7f
,0x6f,0x77,0x7c,0x39
,0x5e,0x79,0x71,0x00};
void choose();
void delay(uint z);
void main()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
num=0;
aa=0;
choose();
P0=temp;
temp=0xfe;
Leden=0;
wela=1;
P0=0x00;
wela=0;
dula=1;
P0=table[0];
dula=0;
while(1)
{
Leden=1;
P0=temp;
delay(1000);
temp=_crol_(temp,1);
Leden=0;
}
}
void choose()
{
Line=1;
P0=0X00;
Line=0;
/* wela=1;
P0=0xff;
wela=0; */
Leden=1;
P0=0xff;
Leden=0;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(aa==20)
{
aa=0;
num++;
if(num==16)
{
num=0;
}
dula=1;
P0=table[num];
dula=0;
}
}
看程序就头疼。
资源很好。学习51中的朋友们值得一看。记得转存,别等连接失效了。
什么情况!
51本身就具有锁存功能,这个不用去考虑它。
锁存器很好用的啊。假如你的是P1口接两个锁存器,锁存器1接流水灯,锁存器2接数码管。当流水灯的值要换时打开锁存器1,关闭锁存器2,对P1口赋值,然后关闭锁存器1