资源简介
利用红外传感器检测通过两个路口的车流量,然后根据算法以车流量为主要参数计算出合理的交通信号灯时间,将计算所得的时间赋予数码管,数码管进行“减一”操作,同时交通信号灯根据时间采用不同组合顺次变换。同时设计了紧急交通电路应用于紧急车辆通过,例如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; //启动
相关资源
- DA转换锯齿波+三角波+梯形波+方波
- 8051单片机altium元件库
- 数字三轴加速度计ADXL34551单片机例程
- 51单片机模拟IIC协议读写EEPROM(24C02)
- 简易c51单片机矩阵式键盘密码锁
- 电子密码锁 proteus仿真
- 心形流水灯仿真电路
- 51单片机方波发生器频率计lcd.zip
- 基于msp430单片机的电子万年历LCD 128
- 基于msp430单片机的红外线遥控解码L
- PCF8591 ad转换及lcd显示
- 步进电机实现的悬挂运动控制系统
- 最牛的交通灯proteus仿真附keil程序
- 8255单片机led显示实验
- 宏晶STC单片机常见封装及PCB库
- LCD12864 万年历 单片机 农历 显示 温度
- 056 货车超重监测系统 51单片机 仿真
- 030 矩阵键盘 电子琴 仿真 51单片机
- 025 四路定时开关 51单片机仿真
- 014 电流表 仿真 51单片机 proteus仿真
- 单片机 汇编语言 简易红绿灯
- PIC18单片机 官方所有程序 包含AD TI
- 基于51单片机的16X16点阵电子琴
- 步进电机运行源代码及protues仿真
- MSP430G25534个简单的小程序
- STC单片机触摸C程序
- 光敏电阻测试数码管显示
- 课程设计 51单片机电机PID调速打包k
- 51单片机+Nokia5110 实现点菜收银系统
- 用51单片机产生PWM控制直流小电机
评论
共有 条评论