51单片机综合实验交通灯设计报告.docx

上传人:b****3 文档编号:26645740 上传时间:2023-06-21 格式:DOCX 页数:12 大小:116.19KB
下载 相关 举报
51单片机综合实验交通灯设计报告.docx_第1页
第1页 / 共12页
51单片机综合实验交通灯设计报告.docx_第2页
第2页 / 共12页
51单片机综合实验交通灯设计报告.docx_第3页
第3页 / 共12页
51单片机综合实验交通灯设计报告.docx_第4页
第4页 / 共12页
51单片机综合实验交通灯设计报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

51单片机综合实验交通灯设计报告.docx

《51单片机综合实验交通灯设计报告.docx》由会员分享,可在线阅读,更多相关《51单片机综合实验交通灯设计报告.docx(12页珍藏版)》请在冰豆网上搜索。

51单片机综合实验交通灯设计报告.docx

51单片机综合实验交通灯设计报告

 

51单片机综合实验交通灯设计报告

 

班级:

学生姓名:

学号:

指导教师:

 

一实验题目

交通灯控制系统设计

二实验目的

1、学会用8051单片机开发简单的计算机控制系统;

2、学会用汇编语言和C语言开发系统软件;

3、学会8051单片机开发环境wave或KeiluVision3软件的使用;

4、学会Proteus软件的使用方法,会用Proteus单片机系统进行仿真;

5、学会Protel软件的使用方法,会用Protel绘制电气原理图和印制板图;

6、熟悉七位数码管显示的使用方法;

7、了解交通灯控制系统的基本组成。

三实验要求

交通灯处在十字路口上。

它有红﹑黄﹑绿三种颜色的灯组成。

红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换。

下面拿东西南北四个方向来说明。

当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。

反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮。

交通灯配置示意图如图1所示。

同时当有特殊的情况发生时,能手动控制各个方向的信号灯。

设计任务就是将这一电路用单片机来实现具体的控制。

图1十字路口交通灯配置示意图

四设计内容与原理

为了在后面的分析中便于说明,将南北方向允许直行命名为状态1,南北方向允许左转命名为状态2,南北方向行车到东西方向行车的转换阶段命名为状态3,将东西方向允许直行命名为状态4,东西方向允许左转命名为状态5,东西方向行车到南北方向方向行车的转换阶段命名为状态6。

假定直行绿灯点亮的时间为25s,左转绿灯点亮的时间为20s,黄灯点亮的时间为5s,则对方红灯的点亮时间为50秒。

黄灯每隔500ms亮一次,之后灭500ms(亮灭一次叫作闪烁一次),一共闪烁5次,持续5s。

各个状态之间的变换情况如下:

状态1

状态2

状态3

状态4

状态5

状态6

状态1

具体显示周期如下:

25s

20s

5s

50s

状态1

状态2

状态3

状态4

状态5

状态6

南北路口

直行

绿灯亮

左转

绿灯亮

黄灯亮

缓行

红灯亮禁行

东西路口

红灯亮禁行

直行

绿灯亮

左转

绿灯亮

黄灯亮

缓行

50s

25s

20s

5s

图2交通信号灯点亮时间图

设计电路中每个路口的控制信号灯应有四个,即绿灯两个、黄灯、红灯各一个,同时需要七段数码管一个。

因此,本电路的设计中应用到绿灯八个,黄灯四个,红灯四个,七段数码管两个(东西方向相同,南北方向相同,为节省空间可省略一对)。

 

五电路设计分析

根据前面的设计内容与原理分析,电路设计中应有控制模块(单片机电路)、显示模块(十六个信号灯和两个七段数码管)本电路的设计,将发光二极管作为16个信号灯的材料。

电源将采用5V的直流电源。

东西两个方向的绿灯是同时亮的,为了简化电路可以让这两个灯接同一个引脚。

同理,东西方向的黄灯、红灯也可以分别接同一个引脚。

南北方向同上。

这样我们可以用一个8位口控制16盏信号灯。

各信号灯均是共阴极接法,LED负极均接地,正极通过保护电阻接单片机P1口。

这样单片机引脚的输出一个高电平时,相应的信号灯就被点亮。

七段数码管经过8位排阻RESPACK-8连接。

单片机中应包括复位电路和晶振电路。

本设计中,采用上电复位形式,由于本系统应用的机器周期为lμs,所以晶振选择为12MHz,根据调试电容选择30pF.

图3:

复位电路

 

图4:

晶振电路

六硬件原理图

 

 

七程序流程

本程序的程序流程图如图所示

 

八心得体会

这次系统实验历时一个月的时间,在这实验过程里我们巩固了从编程、软件使用到调试的专业知识,逻辑思维和动手能力都得到了很大的提高。

要解决的主要问题就是程序的设计和仿真,虽然初期在设计和布局、编程时思路比较清晰,但是到了细节处,也出了不少问题,而且很难被检查出来,如在定时器使用方面出了一些错误。

但是最后经过不断努力,还是写出来正确的代码。

通过这次系统实验,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力,同时提高了对专业的认识及兴趣,对于我们工科生来说,对以后就业很有帮助。

 

附录程序代码:

#defineucharunsignedchar

#defineuintunsignedint

#include

/*****定义控制位**********************/

sbitEW_LED2=P2^3;//东西数码管个位

sbitEW_LED1=P2^2;//东西数码管十位

sbitSN_LED2=P2^1;//南北数码管个位

sbitSN_LED1=P2^0;//南北数码管十位_

sbitSN_Yellow=P1^6;//南北黄灯

sbitEW_Yellow=P1^2;//东西黄灯

sbitEW_Red=P1^3;//东西红灯

sbitSN_Red=P1^7;//南北红灯

sbitBusy_Btton=P3^4;

bitFlag_SN_Yellow;//南北黄灯标志位

bitFlag_EW_Yellow;//东西黄灯标志位

charTime_EW;//东西方向倒计时单元

charTime_SN;//南北方向倒计时单元

ucharEW=50,SN=25,EWL=20,SNL=20;//程序初始化赋值

ucharEW1=50,SN1=25,EWL1=20,SNL1=20;//用于存放修改值的变量1-9段选码

uchar

codetable[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

ucharcodeS[8]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84};//交通信号灯控制代码

/**********************延时子程序************************/

voidDelay(uchara)

{

uchari;

i=a;

while(i--){;}

}

/*****************显示子函数**************************/

voidDisplay(void)

{

charh,l;

h=Time_EW/10;

l=Time_EW%10;

P0=table[l];

EW_LED2=1;

Delay(200);

EW_LED2=0;

P0=table[h];

EW_LED1=1;

Delay(200);

EW_LED1=0;

h=Time_SN/10;

l=Time_SN%10;

P0=table[l];

SN_LED2=1;

Delay(200);

SN_LED2=0;

P0=table[h];

SN_LED1=1;

Delay(200);

SN_LED1=0;

}

/**********************T0中断服务程序*******************/

voidtimer0(void)interrupt1using1

{

staticucharcount;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

count++;

if(count==10)

{

if(Flag_SN_Yellow==1)//南北黄灯标志位

{SN_Yellow=~SN_Yellow;}

if(Flag_EW_Yellow==1)//东西黄灯标志位

{EW_Yellow=~EW_Yellow;}

}

if(count==20)

{

Time_EW--;

Time_SN--;

if(Flag_SN_Yellow==1)//南北黄灯标志位

{Time_SN=Time_EW;

{

SN_Yellow=~SN_Yellow;}

}

if(Flag_EW_Yellow==1)//东西黄灯标志位

{Time_EW=Time_SN;

{

EW_Yellow=~EW_Yellow;

}

}

count=0;

}

}

voidmain(void)

{

IT0=1;//INT0负跳变触发

TMOD=0x01;//定时器工作于方式1

TH0=(65536-50000)/256;//定时器赋初值

TL0=(65536-50000)%256;

EA=1;//开中断总允许

ET0=1;//开定时中断

EX0=1;//开外部INTO中断

TR0=1;//启动定时

while

(1)

{/*******状态1**********/

Flag_EW_Yellow=0;//EW关黄灯显示信号

Time_EW=EW;

Time_SN=SN;

while(Time_SN>0)

{P1=S[0];//SN通行,EW红灯

Display();}

/*******状态2**********/

Flag_SN_Yellow=0;//SN关黄灯显示信号

Time_SN=SNL;

while(Time_SN>0)

{P1=S[2];//SN左拐绿灯亮,EW红灯

Display();}

/*******状态3**********/

P1=0x00;

while(Time_EW>0)

{Flag_SN_Yellow=1;//SN开黄灯信号位

EW_Red=1;//SN黄灯亮,等待停止信号,EW红灯

//SN_LED1=EW_LED1;

//SN_LED2=EW_LED2;

Display();

}

 

/***********赋值**********/

EW=EW1;

SN=SN1;

EWL=EWL1;

SNL=SNL1;

/*******状态4**********/

Flag_SN_Yellow=0;//SN关黄灯显示信号

Time_EW=SN;

Time_SN=EW;

while(Time_EW>0)

{P1=S[4];//EW通行,SN红灯

Display();}

/*******状态5**********/

Flag_EW_Yellow=0;//EW关黄灯显示信号

Time_EW=EWL;

while(Time_EW>0)

{P1=S[6];//EW左拐绿灯亮,SN红灯

Display();}

/*******状态6**********/

P1=0X00;

while(Time_SN>0)

{Flag_EW_Yellow=1;//EN开黄灯信号位

SN_Red=1;//EW黄灯亮,等待停止信号,SN红灯

Display();}

/***********赋值**********/

EW=EW1;

SN=SN1;

EWL=EWL1;

SNL=SNL1;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1