51hei圖片_20200828153139.png (6.93 KB, 下載次數: 57)
下載附件
2020-8-28 15:34 上傳
51hei圖片_20200828153133.png (87.59 KB, 下載次數: 56)
下載附件
2020-8-28 15:34 上傳
51hei圖片_20200828153129.png (109.92 KB, 下載次數: 48)
下載附件
2020-8-28 15:34 上傳
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
unsigned char code SEG2[6]={0xfe,0xfd,0xfb,0xf7};
uchar t=0,x=0,y=0;
uchar a,b,c,d;
void delay(unsigned int i)
{
unsigned int j;
for(i;i>0;i--)
for(j=300;j>0;j--);
}
void zhongduan1()//50ms中斷
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
//TR0=1;
}
void zhongduan2()
{
EA=1;
EX0=1;
IT0=1;
EX1=1;
IT1=1;
}
void ledout(uchar out0,out1)//
{
if((20<=x&&x<25)&&(t>10))
{ P0=0;P1=0xff;delay(1);delay(1); }
else
{
P0=(out0)/10;
P1=SEG2[0];
delay(1);
P1=0xff;
P0=(out0)%10;;
P1=SEG2[1];
delay(1);
P1=0xff;
}
if((50<=x&&x<55)&&(t>10))
{ P0=0;P1=0xff;delay(1); delay(1); }
else
{
P0=(out1)/10;
P1=SEG2[2];
delay(1);
P1=0xff;
P0=(out1)%10;;
P1=SEG2[3];
delay(1);
P1=0xff;
}
}
void mart()
{
uchar i;
if(x<20)i=1;
if(20<=x&&x<25)i=2;
if(25<=x&&x<30)i=3;
if(30<=x&&x<50)i=4;
if(50<=x&&x<55)i=5;
if(55<=x)i=6;
switch(i)
{
case 1:
ledout(25-x,30-x);
P2=0xED;
//P2=0x99;
break;
case 2:
ledout(25-x,30-x);
P2=0xED;
if(t>10){P2=0xEF;}
break;
case 3:
ledout(30-x,30-x);
P2=0xEB;
break;
case 4:
ledout(60-x,55-x);
P2=0xDE;
break;
case 5:
ledout(60-x,55-x);
P2=0xDE;
if(t>10){P2=0xFE;}
break;
case 6:
ledout(60-x,60-x);
P2=0xBE;
break;
}
}
void main( )
{
zhongduan1();
zhongduan2();
while(1)
{
if(y!=0)
mart();
}
}
仿真.zip
(25.9 KB, 下載次數: 34)
2020-8-28 15:41 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
交通燈.zip
(14.22 KB, 下載次數: 23)
2020-8-28 15:37 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|