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

📄 交通灯控制器.c

📁 单片机C语言程序设计.rar
💻 C
字号:
/************************************/
/*程序名:TIMER0控制交通灯			*/
/*作 者 :铁手一郎					*/
/*时 间 :2009.6.20					*/
/*Q  Q  :347999853					*/
/*信息共享							*/
/************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int 
uchar i;
static uchar second;
bit red,green,yellow,turnred;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
					 0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint z)
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}
/***************显示子程序**********************/
void display(uchar sun)
{
	uchar shi,ge;
	ge=table[sun/10];
	shi=table[sun%10];

	P2=0xff;
	P0=ge;
	P2=0x01;
	delay(5);

	P2=0xff;
	P0=shi;
	P2=0x02;
	delay(5);

	P2=0xff;
	P0=ge;
	P2=0x04;
	delay(5);

	P2=0xff;
	P0=shi;
	P2=0x08;
	delay(5);

	P2=0xff;
	P0=ge;
	P2=0x10;
	delay(5);

	P2=0xff;
	P0=shi;
	P2=0x20;
	delay(5);

	P2=0xff;
	P0=ge;
	P2=0x40;
	delay(5);

	P2=0xff;
	P0=shi;
	P2=0x80;
	delay(5);
}
/*****************清零函数************************/
void crl(void)
{
	display(0);
}
void main()
{
	TMOD=01;
	TH0=-50000/256;
	TL0=-50000%256;
	EA=1;
	ET0=1;
	TR0=1;
	second=30;
	red=1;
	P1=0xf5;
	while(1)
	{
		
		display(second);
		
		
	}
}
uchar count;
/*****************中断服务函数*******************/
void T0_time() interrupt 1
{
	TH0=-50000/256;
	TL0=-50000%256;
	count++;
	if (count==20)
	    {
	    count=0;
	    second--;//秒减1
		if(second==0)
		   {  //这里添加定时到0的代码 ,可以是灯电路,继电器吸合等,或者执行一个程序
	       if(red)
		     {
			  red=0;yellow=1;
	          second=5;
			  P1=0xdb;//黄灯亮5秒
			 }
		   else if(yellow && !turnred)
		     {
			  yellow=0;green=1;
	          second=50;
			  P1=0xee;//绿灯亮50秒
			 }
		   else if(green)
		     {
			 yellow=1;green=0;
	         second=5;
			 P1=0xdb;//黄灯亮5秒
			 turnred=1;
			 }
	       else if(yellow && turnred)
		     {
		     red=1;yellow=0;
			 P1=0xf5;;//红灯亮60秒
	         second=30;
			 turnred=0;
			 }
	
		   }
		
    
    }
}

⌨️ 快捷键说明

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