📄 main.c
字号:
#include <reg51.h>
typedef unsigned char BYTE;
sbit LED_G1=P2^1;
sbit LED_Y1=P2^2;
sbit LED_R1=P2^3;
sbit LED_G2=P2^4;
sbit LED_Y2=P2^5;
sbit LED_R2=P2^6;
sbit P30=P3^0;
sbit P31=P3^1;
BYTE Second1;
BYTE Second2;
BYTE DBUF[4]; //显示码缓冲区1
BYTE TEMP[4];
BYTE code LedMap[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
0x7D,0x07,0x7F,0x6F,0x77,0x7C,
0x58,0x5E,0x7B,0x71,0x00,0x40};
void display()
{
BYTE dis_i;
BYTE dis_j;
BYTE offset;
DBUF[3]=Second1/10;
DBUF[2]=Second1%10;
DBUF[1]=Second2/10;
DBUF[0]=Second2%10;
dis_i=4;
offset=0;
do
{
TEMP[offset]=LedMap[DBUF[offset]];
offset++;
}while(--dis_i);
dis_i=0x04;
offset=0;
do
{
dis_j=0x08;
ACC=TEMP[offset];
do
{
#pragma asm
RLC A
#pragma endasm
P30=CY;
P31=0;
P31=1;
}while(--dis_j);
offset++;
}while(--dis_i);
}
main()
{
BYTE delay_count; //延时次数
BYTE second;
BYTE flash;
TMOD=0x01;
TH0 =0x3C;
TL0 =0xB0;
TF0 =0;
TR0 =1;
P1 =0x00;
while(1)
{
/******wait1******/
delay_count=20;
second=20;
Second1=25;
Second2=25;
display();
LED_G1=1;
LED_Y1=0;
LED_R1=0;
LED_G2=0;
LED_Y2=0;
LED_R2=1;
do
{
do
{
while(!TF0);
TF0=0;
TH0=0x3C;
TL0=0xB0;
}while(--delay_count);
delay_count=20;
Second1--;
Second2--;
display();
}while(--second);
/******wait2******/
delay_count=5;
second=3;
flash=4;
Second1=5;
Second2=5;
display();
do
{
do
{
do
{
do
{
LED_Y1=0;
LED_R1=0;
LED_G2=0;
LED_Y2=0;
LED_R2=1;
}while(!TF0);
TF0=0;
TH0=0x3C;
TL0=0xB0;
}while(--flash);
LED_G1=~LED_G1;
flash=4;
}while(--delay_count);
delay_count=5;
Second1--;
Second2--;
display();
}while(--second);
/******wait3******/
delay_count=20;
second=2;
Second1=2;
Second2=2;
display();
do
{
do
{
do
{
LED_G1=0;
LED_R1=0;
LED_G2=0;
LED_Y2=0;
LED_R2=1;
LED_Y1=1;
}while(!TF0);
TF0=0;
TH0=0x3C;
TL0=0xB0;
}while(--delay_count);
delay_count=20;
Second1--;
Second2--;
display();
}while(--second);
/******wait4******/
delay_count=20;
second=20;
Second1=25;
Second2=25;
display();
do
{
do
{
do
{
LED_G1=0;
LED_Y1=0;
LED_R1=1;
LED_G2=1;
LED_Y2=0;
LED_R2=0;
}while(!TF0);
TF0=0;
TH0=0x3C;
TL0=0xB0;
}while(--delay_count);
delay_count=20;
Second1--;
Second2--;
display();
}while(--second);
/******wait5******/
delay_count=5;
second=4;
flash=3;
Second1=5;
Second2=5;
display();
do
{
do
{
do
{
do
{
LED_G1=0;
LED_Y1=0;
LED_R1=1;
LED_Y2=0;
LED_R2=0;
}while(!TF0);
TF0=0;
TH0=0x3C;
TL0=0xB0;
}while(--second);
LED_G2=~LED_G2;
second=4;
}while(--delay_count);
delay_count=5;
Second1--;
Second2--;
display();
}while(--flash);
/******wait6******/
delay_count=20;
second=2;
Second1=2;
Second2=2;
display();
do
{
do
{
do
{
LED_G1=0;
LED_Y1=0;
LED_R1=1;
LED_G2=0;
LED_R2=0;
LED_Y2=1;
}while(!TF0);
TF0=0;
TH0=0x3C;
TL0=0xB0;
}while(--delay_count);
delay_count=20;
Second1--;
Second2--;
display();
}while(--second);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -