?? 交通燈.c
字號(hào):
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit hong1 =P0^0;
sbit huang1 =P0^1;
sbit lan1 =P0^2;
sbit hong2 =P0^3;
sbit huang2 =P0^4;
sbit lan2 =P0^5;
uint s;
uchar t=0;
uchar m=0;
uchar n=0;
uchar u=0;
uchar p=0;
uchar h=0;
uchar g=0;
uchar code0[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void display(void);//動(dòng)態(tài)顯示
uchar keyb(void);//鍵盤程序
uchar shijian(void);//
void delay(int k);
main()
{EA=1;EX0=1;IT0=1;
ET0=1;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TMOD=0X01;
hong1=0;lan2=0;huang1=0;lan1=0;hong2=0;huang2=0;P2=code0[0];
m=keyb();delay(100);
n=keyb();
delay(100);
p=m*10+n;
for(;;)
{s=p;TR0=1;
for(;;)
{hong1=1;lan2=1;huang1=0;lan1=0;hong2=0;huang2=0;
if(!s)break;
if(s<=5){hong1=1;lan2=0;huang1=0;lan1=0;hong2=0;huang2=1;}
display();}
s=p;
for(;;)
{hong1=0;lan2=0;huang1=0;lan1=1;hong2=1;huang2=0;
if(!s)break;
if(s<=5){hong1=0;lan2=0;huang1=1;lan1=0;hong2=1;huang2=0;}
display();
}}}
/////////////////////////////
void delay(int k)
{int i,j;
for(;k>0;k--)
for(j=2;j>0;j--)
for(i=100;i>0;i--);}
////////////////////
void display(void)
{int i;for(i=5;i>0;i--)
{
P3=0X1F;P2=code0[s/1000];delay(10);
P3=0X2F;P2=code0[s%1000/100];delay(10);
P3=0X4F;P2=code0[s%100/10];delay(10);
P3=0X8F;P2=code0[s%10];delay(10);
}}
/////////////////////////////
uchar keyb(void)
{unsigned int a,b=0,c,jzhi,f=0,i=0,dma[]={0,0,0,0,0,0,0,3,0,0,0,2,0,1,0};
int yw[]={0x7f,0xbf,0xdf,0xef};a=0x7f;
for(;;)
{P1=a;a=P1;b=a;c=a;
a=a&0x0f;
if(a==0x0f) {i++;a=yw[i];if(i==4) {i=0;a=0x7f;}}
else break;}
b=b>>4;f=c&0x0f;
jzhi=dma[b]*4+dma[f];
return jzhi;}
/////////////////////////////
void waibu1(void)interrupt 0
{int j; TR0=0;
for(j=30;j>0;j--)
{ hong1=1;lan2=0;huang1=0;lan1=0;hong2=1;huang2=0;display();}
TR0=1;
}
/////////////////////////////////////////
void time(void)interrupt 1
{
u++;if(u==20){u=0;s--;}
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -