数码管 定时器控制流水灯
只有程序
数码管
#include<reg52.h>
sbit ENLED = P1^1;
sbit P20 = P2^0;
sbit P21 = P2^1;
sbit P22 = P2^2;
sbit LED = P0^0;
unsigned char code ledchar[]={
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,
};
void main()
{
unsigned char sec=0;
unsigned char cnt=0;
ENLED = 0;
P20 = 0;
P21 = 0;
P22 = 0;
TMOD=0x01;
TH0 = 0x2A;
TL0 = 0xAB;
TR0=1;
while(1)
{
if(TF0==1)
{
TF0=0;
TH0 = 0x2A;
TL0 = 0xAB;
cnt++;
if(cnt>=50)
{
cnt=0;
P0=ledchar[sec];
sec++;
if(sec>=16)
{
sec=0;
}
}
}
}
}
定时器控制流水灯
#include<reg52.h>
sbit ENLED=P1^1;
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
void main()
{
unsigned char cnt=0;
unsigned char sec=0;
ENLED=0;
P20=0;
P21=1;
P22=1;
TMOD=0x01;
TH0 = 0x2A;
TL0 = 0xAB;
TR0 = 1;
while(1)
{
if(TF0==1)
{
TF0=0;
TH0 = 0x2A;
TL0 = 0xAB;
cnt++;
if(cnt>=50)
{
cnt=0;
// P0=~(0x01<<sec); //0000 0001-->1111 1110 小灯从左向右
P0=~(0x80>>sec); //1000 0000-->0111 1111 小灯从右向左
sec++;
if(sec>=8)
{
sec=0;
}
}
}
}
}
|