十字路口交通灯通行.doc
文本预览下载声明
十字路口交通灯的通行指示控制——兰州理工大学
一、设计内容及技术要求:
(一)、任务描述
十字路口中A道,B道各有两组红黄绿三种灯。A道绿灯亮若干秒,切换为黄灯闪烁若干秒,然后切换为红灯亮若干秒,继而A道由红灯切换为绿灯,但之间不需要黄灯过渡;B道的控制顺序与A道相同,但A道与B道的亮灯需要在颜色上符合实际中互锁的要求。红黄绿灯亮的时间可以显示。A道,B道中一道有车而另一道无车时,交通灯控制系统应能立即让有车道放行。
(二)、控制任务和要求
基本任务:
选用AT89S51及相应外围扩展元器件完成相应的功能
进阶任务:
1、有紧急车辆要求通过时,系统应能使A、B道均为红灯。
2、红灯的显示时间可以控制
3、行人闯红灯提示
本设计可以对东西南北时间进行分别设置,带向左转灯,带紧急控制,带行人闯红灯提示。
/*******************************************************
十字路口交通灯控制C语言程序
*******************************************************/
#define uchar unsigned char //定义无符号字符型
#define uint unsigned int //定义无符号整型
#include reg51.h //调用reg51.h头文件
#include intrins.h
/********************定义数码管端口***********************/
sbit DX_RED=P0^3; //DX_RED红灯
sbit DX_YELLOW=P0^2; //DX_YELLOW黄灯
sbit NB_RED=P0^7; //NB_RED红灯
sbit NB_YELLOW=P0^6; //NB_YELLOW黄灯
sbit LATCH1=P1^0;//定义锁存使能端口 段锁存
sbit LATCH2=P1^1;// 位锁存
/***********************功能键**************************/
sbit HONGWAI=P1^7;
sbit STOP=P3^1;
sbit KEY_STOP=P3^2;
sbit KEY_ERR=P3^3;
sbit KEY_ADD=P3^4; //加时
sbit KEY_DEC=P3^5; //减时
sbit KEY_SET=P3^6; //切换
sbit KEY_START=P3^7; //开始
/***********************黄灯闪烁***********************/
bit Flag_NB_YELLOW; //N黄灯标志位
bit Flag_DX_YELLOW; //E黄灯标志位
bit int0_time;//中断强行标志
char T_DX; //东西方向倒计时单元
char T_NB; //南北方向倒计时单元
char DX0;
char NB0;
unsigned char set=0; //东西或南北设置选择
unsigned char set_dx=11;
unsigned char set_nb=11;
uchar STOP1=1;
unsigned char i;
uchar DX=50,NB=40,DXL=9,NBL=9; //程序初始化赋值,正常模式
uchar DX1=40,NB1=30,DXL1=9,NBL1=9; //用于存放修改值的变量
unsigned char code DuanMa[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x08,0x00};// 显示段码值0~9
unsigned char code WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码
unsigned char Data[8]; //存储显示值的全局变量
char code dx516[3] _at_ 0x003b;
/*******************
显示全部