?? djs_41.c
字號:
#include<AT89X52.H>
#include<stdio.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define G1 XBYTE[0XFDFF]
#define G2 XBYTE[0XF7FF]
#define R1 XBYTE[0XFEFF]
#define R2 XBYTE[0XFBFF]
sbit blue=0X92;
sbit red=0x93;
sbit yellow=0x94;
sbit red2=0X95;
uchar cnt=20;
uchar k,m,n,js_bz,hc,wac,bzw=0;
uchar js_red,js_blue1,js_blue2,js_yellow;
void delay(uchar time);
uchar code DB[]={0XBF,0X86,0XDB,0XCF,0XE6,0XED,0XFD,0X87,
0XFF,0XEF,0XF7,0XFC,0XB9,0XDE,0XF9,0XF1};
//==============================================================
void main(void)
{
uchar xdata *addr_G1;
uchar xdata *addr_G2;
uchar xdata *addr_R1;
uchar xdata *addr_R2;
addr_G1=&G1;
addr_G2=&G2;
addr_R1=&R1;
addr_R2=&R2;
TMOD=0X01;
TH0=0X3C;
TL0=0XB0;
IE=0X82;
TR0=1;
//-----------------
zys: bzw=0;
*addr_R1=0;
*addr_R2=0;
*addr_G1=0;
*addr_G2=0;
while(red==1&&blue==1&&red2==1)
{
*addr_R1=0;
*addr_R2=0;
*addr_G1=0;
*addr_G2=0;
bzw=8;
}
bzw=0;
delay(200);
delay(200);
delay(200);
if(blue==0)
while(yellow!=0);
else
{
n=P1&0X3C;
while(n==(P1&0X3C));
}
*addr_R1=0;
*addr_R2=0;
*addr_G1=0;
*addr_G2=0;
delay(100);
n=P1&0X3C;
js_red=0;
js_blue1=0;
js_blue2=0;
js_yellow=0;
js_bz=0;
//--------------------
while(1)
{
if(n==(P1&0X3C)&&js_bz!=0)goto star;
while(red==0&&red2==0)
{hc=1;
delay(100);
js_red++;
}
if(hc==1)delay(50);
hc=0;
//-----------
if(n==(P1&0X3C)&&js_bz!=0)goto star;
while(yellow==0)
{ hc=1;
delay(100);
js_yellow++;
}
if(hc==1)delay(50);
hc=0;
//-----------
if(n==(P1&0X3C)&&js_bz!=0)goto star;
while(red==1&yellow==1)
{hc=1;
delay(100);
js_blue1++;
}
if(hc==1)delay(50);
hc=0;
//-----------
if(n==(P1&0X3C)&&js_bz!=0)goto star;
while(red2==1)
{hc=1;
delay(100);
js_blue2++;
}
if(hc==1)delay(50);
hc=0;
js_bz++;
}
//================================================
star:js_blue2-=js_yellow;
bzw=8;
while(1)
{
//----------------------
k=js_red;
while(red==0&&red2==0)
{hc=1;
*addr_R1=DB[k/10];
*addr_R2=DB[k%10];
*addr_G1=0;
*addr_G2=0;
delay(100);
k--;
if(k==0xfd)goto zys;
}
if(k>=2&&hc==1)js_red-=k;
if(hc==1)delay(50);
hc=0;
//-----------------------
k=js_yellow;
wac=0;
while(yellow==0)
{hc=1;
*addr_R1=DB[k/10];
*addr_R2=DB[k%10];
*addr_G1=DB[k/10];
*addr_G2=DB[k%10];
delay(100);
k--;
if(k==0xfd)goto zys;
}
if(k>=2&&hc==1)js_yellow-=k;
if(hc==1)delay(50);
hc=0;
//------------------------
k=js_blue1;
while(yellow==1&&red==1)
{hc=1;
*addr_R1=0;
*addr_R2=0;
*addr_G1=DB[k/10];
*addr_G2=DB[k%10];
delay(100);
k--;
if(k==0xfd)goto zys;
}
if(k>=2&&hc==1)js_blue1-=k;
if(hc==1)delay(50);
hc=0;
//------------------------
k=js_blue2;
wac=0;
while(red2==1&&red!=1)
{ hc=1;
if(k<=0)
{ m=js_yellow;
wac++;
if(wac==2)goto zys;
while(m>0)
{
*addr_R1=DB[m/10];
*addr_R2=DB[m%10];
*addr_G1=DB[m/10];
*addr_G2=DB[m%10];
delay(100);
m--;
}
}
else
{ *addr_R1=0;
*addr_R2=0;
*addr_G1=DB[k/10];
*addr_G2=DB[k%10];
delay(100);
k--;
}
}
if(k>=2&&hc==1)js_blue2-=k;
if(hc==1)delay(50);
hc=0;
//------------------------
}
}
//----------------------------------
void toserve() interrupt 1 using 0
{ TH0=0x3c;
TL0=0xb0;
cnt--;
if(cnt==0)
{
P3_2=~P3_2;
cnt=20;
if(bzw==0)
{
R1=0;
R2=0;
G1=0;
G2=0;
bzw=1;
}
else if(bzw==1)
{
R1=0x40;
R2=0x40;
G1=0x40;
G2=0x40;
bzw=0;
}
}
TF0=0;
}
//----------------------------------
void delay(uchar time)
{
unsigned char a,b,c;
for(a=0;a<time;a++)
for(b=0;b<25;b++)
for(c=0;c<120;c++)
{;}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -