资源简介
利用红外传感器检测通过两个路口的车流量,然后根据算法以车流量为主要参数计算出合理的交通信号灯时间,将计算所得的时间赋予数码管,数码管进行“减一”操作,同时交通信号灯根据时间采用不同组合顺次变换。同时设计了紧急交通电路应用于紧急车辆通过,例如120、110等车辆。
代码片段和文件信息
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={
0x3f0x060x5b0x4f0x66
0x6d0x7d0x070x7f0x6f};
uchar shige;
uint dx_cllnb_cllclli;
sbit dx_jinji=P3^2;
sbit nb_jinji=P3^3;
void delay(uint z) //延时子程序4ms
{
uint xy;
for(x=500;x>0;x--) //循环500次
for(y=z;y>0;y--);
}
void display(uchar shiuchar geuchar x) //数码管显示子程序
{
P2=table[ge]; //显示个位
delay(x); //调用延时程序
P1=table[shi]; //显示十位
delay(x); //调用延时程序
}
void timer(uchar xuchar y) //显示倒计时程序
{
shi=x/10;
ge=x%10;
display(shigey);
}
uint suanfa(int m) //车流量算法
{
uint xyz;
x=TL0|(TH1<<8); //X取值
y=TL1|(TH1<<8); //Y取值
if(x<=20&&y<=20) return(30); //如果两个路口车流量均小于20,则红绿灯时间返回为30秒。
else if((20 {
if(m==0) return(x);
else if(m==1) return(y);
}
else if(x>=60&&y>=50) //如果东西路口大于60,南北路口大于50经过以下算法
{
z=x/y; //计算两个路口车流量的比值范围。
z=z*100; //因为C语言中取整数,故乘一百。
if(m==0) //东西方向亮绿灯 ;
{
if(z>=50&&z<76) x=60+6; //如果比值在50到76范围内,时间为66秒;
if(z>=76&&z<102) x=60+12; //如果比值在76到102范围内,时间为72秒;
if(z>=102&&z<128) x=60+18; //如果比值在102到128范围内,时间为78秒;
if(z>=128&&z<154) x=60+24; //如果比值在128到154范围内,时间为84秒;
if(z>=154&&z<180) x=60+30; //如果比值在154到180范围内,时间为90秒;
if(x>=90) x=90; //如果东西路口车流量大于九十,时间显示为90秒。
return(x) ;
}
else if(m==1) //南北方向亮绿灯;
{
if(z>=50&&z<76) y=50+30; //如果比值在50到76范围内,时间为80秒;
if(z>=76&&z<102) y=50+24; //如果比值在76到102范围内,时间为74秒;
if(z>=102&&z<128) y=50+18; //如果比值在102到128范围内,时间为68秒;
if(z>=128&&z<154) y=50+12; //如果比值在128到154范围内,时间为62秒;
if(z>=154&&z<180) y=50+6; //如果比值在154到180范围内,时间为56秒;
if(y>=80) y=80; //如果南北路口车流量大于八十,时间显示为80秒。
return(y) ;
}
}
}
void jishuqi()
{
TMOD=0x55; //初始化定时器/计数器T0、T1为计数模式,工作于方式1,二进制计数
TH0=0x00;
TL0=0x00; //THTL0清0
TH1=0x00;
TL1=0x00; //TH1TL1清0
TR0=1; //启动
相关资源
- 51 单片机 红外避障小车 大集合136
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
评论
共有 条评论