⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jtd.c

📁 交通灯程序
💻 C
字号:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit wei1=P2^4;
sbit wei2=P2^5;
sbit wei3=P2^6;
sbit wei4=P2^7;
uchar code table[]={
0xf0,0xf1,0xf2,0xf3,
0xf4,0xf5,0xf6,0xf7,
0xf9};
uchar t0,shu,shi,ge,flag,temp,gg,dd;

void delay(uint z)
{
	uint t1,y;
	for(t1=z;t1>0;t1--)
		for(y=110;y>0;y--);
}
void init()
{
	shu=94;
	TMOD=0x01;
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	EA=1;
	ET0=1;
	TR0=1;
	P1=0xf3;//初始状态为状态1
	flag=0;
}
void display()
{		
		if(shu<5)
			{
				temp=shu;
			}
		else if(shu<35)
			{
				temp=shu-5;
			}
		else
			{
				temp=shu-35;
			}
		gg=shu/10;
		dd=shu%10;
		shi=temp/10;
 		ge=temp%10;
		if(flag==0)
			{
		  		P0=table[shi];wei1=1;delay(1);wei1=0;
				P0=table[ge];wei2=1;delay(1);wei2=0;
				P0=table[gg];wei3=1;delay(1);wei3=0;
				P0=table[dd];wei4=1;delay(1);wei4=0;
			}
		else
			{
		  		P0=table[gg];wei1=1;delay(1);wei1=0;
				P0=table[dd];wei2=1;delay(1);wei2=0;
				P0=table[shi];wei3=1;delay(1);wei3=0;
				P0=table[ge];wei4=1;delay(1);wei4=0;
			}
}
void state()
{	
	
	
	if(flag==0)
	  {	
		if(shu==35)
		  {
			P1=0xb3;//状态2,主干道左转弯灯显示状态
		  }	
			
		if(shu==5)
		  {
		   	P1=0xf5;//状态3,东西道黄灯,南北道红灯 11110101
		  }
		
		if(shu==0)
		  {
			shu=94;
			P1=0xde;//状态4,东西道红灯,南北道绿灯 11011110
		    flag=1;
		  }
	  }
	
	else
	  {
		if(shu==35)
		  {
			P1=0x5e;//状态5,次干道左转弯显示状态
		  }	
		if(shu==5)
		  {
		   	P1=0xee;//状态6,东西道红灯,南北道黄灯 11101110
		  }
		if(shu==0)
		  {
			shu=94;
			P1=0xf3;//状态1,东西道绿灯,南北道红灯 11110011
		    flag=0;
		  }
	  }			
}

void main()
{
	wei1=0;
	wei2=0;
	wei3=0;
	wei4=0;
	init();
	while(1)
	{
		display();
		state();
	}
}

void timer0() interrupt 1
{
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	t0++;
	if(t0==20)
	{
		t0=0;
	 	shu--;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -