资源简介

研究目的: 模拟交通灯控制器就是使用单片机来控制一些LED和数码管,模拟真实交通灯的功能。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等。利用所学知识设计一款基于单片机的交通信号灯的控制系统。主要功能如下:东西向与南北向信号灯定时20秒交换一次、每次交换时点亮黄灯5s提醒行人。

资源截图

代码片段和文件信息

#include

//--定义你要使用的IO口--//
#define GPIO_DIG P0
#define GPIO_PLACE P1 //1111-1101

//定义颜色
#define RED 1
#define YELLOW 2
#define GREEN 3
#define YELLOW_1 4





unsigned char Time;

//--定义全局变量--//
//RAMROM
unsigned char code DIG_CODE[16]={0x3F 0x06 0x5B 0x4F 0x66 0x6D 0x7D 0x07
                                 0x7F 0x6F 0x77 0x7C 0x39 0x5E 0x79 0x71};
unsigned char code DIG_PLACE[4]={
0xFE0xFD0xFB0xF7};//位选控制   查表的方法控制

unsigned char MyData[4]={0000};

//init 
unsigned char x_R_val = 8;
unsigned char x_Y_val = 0;
unsigned char x_G_val = 0;

unsigned char y_R_val = 0;
unsigned char y_Y_val = 0;
unsigned char y_G_val = 15;


unsigned char x_static = 0;
unsigned char y_static = 0;



sbit x_R_LED = P2^2;
sbit x_Y_LED = P2^1;
sbit x_G_LED = P2^0;

sbit y_R_LED = P2^4;
sbit y_Y_LED = P2^5;
sbit y_G_LED = P2^3;

#define x_R_Work() x_R_LED = 0; x_Y_LED = 1; x_G_LED = 1;
#define x_Y_Work() x_R_LED = 1; x_Y_LED = 0; x_G_LED = 1;
#define x_G_Work() x_R_LED = 1; x_Y_LED = 1; x_G_LED = 0;

#define y_R_Work() y_R_LED = 0; y_Y_LED = 1; y_G_LED = 1;
#define y_Y_Work() y_R_LED = 1; y_Y_LED = 0; y_G_LED = 1;
#define y_G_Work() y_R_LED = 1; y_Y_LED = 1; y_G_LED = 0;


/*******************************************************************************
* 函数名         : DigDisplay
* 函数功能    : 使用数码管显示
* 输入           : 无
* 输出           : 无
*******************************************************************************/
void DigDisplay()
{
unsigned char i;
unsigned int j;
for(i=0;i<4;i++)
{
GPIO_PLACE=DIG_PLACE[i];
GPIO_DIG=DIG_CODE[MyData[i]];//发送段码
j=10;  //扫描间隔时间设定
while(j--);
GPIO_DIG=0x00;//消隐
}
}

/*******************************************************************************
* 函数名         : TimerConfiguration()
* 函数功能    : 配置定时器值
* 输入           : 无
* 输出           : 无
*******************************************************************************/    

void TimerConfiguration()
{
    TMOD = 0x01; //选择工作方式1
    TH0 = 0x3C;  //设置初始值定时50MS
    TL0 = 0xB0; 
    EA = 1;  //打开总中断
    ET0 = 1;  //打开定时器0中断
    TR0 = 1;  //启动定时器0
}
/*******************************************************************************
* 函数名         : Timer0()
* 函数功能    : 定时器0中断函数
* 输入           : 无
* 输出           : 无
*******************************************************************************/    

void Timer0() interrupt 1
{
TH0 = 0x3C;  //设置初始值
TL0 = 0xB0;
Time++;
}


/*******************************************************************************
* 函 数 名         : main
* 函数功能    : 主函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void main(void)
{
TimerConfiguration();
Time = 0;//初始化时间

//自动判断当前状态
//1:R 2:Y 3:G
if((x_R_val!=0)&&(x_Y_val==0)&&(x_G_val==0))
{
x_static = RED;
}
if((x_R_val==0)&&(x_Y_val!=0)&&(x_G_val==0

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-12-09 11:37  原理图\
     文件      117784  2017-03-19 22:21  原理图\Sheet1.PDF
     文件      250368  2017-03-19 22:20  原理图\Sheet1.SchDoc
     目录           0  2017-06-04 04:24  实物照片\
     文件     2604237  2017-03-19 22:05  实物照片\IMG_1300.JPG
     文件     2826829  2017-03-19 21:29  实物照片\IMG_1301.JPG
     文件     1533880  2017-03-19 21:29  实物照片\IMG_1302.JPG
     文件     1763133  2017-03-19 21:29  实物照片\IMG_1303.JPG
     文件     2276310  2017-03-19 22:36  实物照片\IMG_1304.JPG
     目录           0  2017-06-04 04:24  源代码\
     目录           0  2017-06-04 04:24  源代码\Listings\
     文件       15234  2017-03-19 22:31  源代码\Listings\main.lst
     文件       11911  2017-03-19 22:31  源代码\Listings\Project.m51
     文件       14155  2017-03-19 22:31  源代码\Listings\STARTUP.lst
     文件        5668  2017-03-19 22:31  源代码\main.c
     目录           0  2017-06-04 04:24  源代码\objects\
     文件        9472  2017-03-19 22:31  源代码\objects\main.obj
     文件        8780  2017-03-19 22:31  源代码\objects\Project
     文件         991  2017-03-19 22:31  源代码\objects\Project.build_log.htm
     文件        2065  2017-03-19 22:31  源代码\objects\Project.hex
     文件         105  2017-03-19 22:31  源代码\objects\Project.lnp
     文件         819  2017-03-19 22:31  源代码\objects\STARTUP.obj
     文件       71083  2017-03-19 22:31  源代码\Project.uvgui.Tanghua
     文件        5389  2017-03-19 21:29  源代码\Project.uvopt
     文件       14031  2017-03-19 21:29  源代码\Project.uvproj
     文件        6376  2016-03-14 08:58  源代码\STARTUP.A51

评论

共有 条评论