51交通灯设计单片机课程设计报告大学论文Word文档下载推荐.docx
- 文档编号:19483706
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:19
- 大小:686.35KB
51交通灯设计单片机课程设计报告大学论文Word文档下载推荐.docx
《51交通灯设计单片机课程设计报告大学论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《51交通灯设计单片机课程设计报告大学论文Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
采用2个两位共阴极数码管,利用动态显示,通过单片机IO口控制位选,段选动态显示时间情况。
c实现急通车。
这需要人工实现,编程时利用到中断才能带到目的,当有按钮按下时,可以使东西方向(南北方向)显示绿灯,另一个方向显示红灯,禁止车辆通行。
当情况解除,通过复位按键使交通灯重新恢复工作。
2.2设计的主要内容和要求
交通灯处在十字路口上。
它有红﹑黄﹑绿三种颜色的灯组成。
红灯亮时道路上的车辆停止运行;
黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换。
下面拿东西南北四个方向来说明。
当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。
反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮。
交通灯配置示意图如图1所示。
同时当有特殊的情况发生时,能手动控制各个方向的信号灯。
设计任务就是将这一电路用单片机来实现具体的控制。
图1十字路口交通灯配置示意图
2.3总体设计框图
见图2:
三、硬件设计
3.1LED循环电路设计
89C52单片机概述
MCS-51单片机内部结构:
89C52是MCS-51系列单片机的典型产品,现在以这一代表性的机型进行系统的讲解。
89C52单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线。
89C52主要功能特性:
·
标准MCS-51内核和指令系统
片内8kROM(可扩充64kB外部存储器)
32个双向I/O口
256x8bit内部RAM(可扩充64kB外部存储器)
3个16位可编程定时/计数器
时钟频率3.5-12/24/33MHz
向上或向下定时计数器
改进型快速编程脉冲算法
6个中断源
5.0V工作电压
全双工串行通信口
布尔处理器
—帧错误侦测
4层优先级中断结构
—自动地址识别
兼容TTL和CMOS逻辑电平
空闲和掉电节省模式
PDIP(40)和PLCC(44)封装形式
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。
MCS-51系统的引脚说明:
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图3是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
图3
89C51的复位方式可以自动复位,也可以是手动复位,见下图。
除此之外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可以接上没用电源,以保证单片机内部RAM的数据不丢失。
在编程时,EA/Vpp脚还需加上21V的编程电压。
3.2LED循环说明
为了便于说明,不妨将东西方向允许直行命名为状态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
南北路口
直行
绿灯亮
左转
黄灯亮
缓行
红灯亮禁行
东西路口
图4
3.3
单片机I/O口控制交通灯电路:
protel电路原理图:
LED灯采用共阳极接法,所有的LED灯阳极都接在5V电压一端,加上限流电阻,阴极接单片机的IO口,当IO口输出低电平时LED亮,通过设置不同的输出来改变LED的亮灭,实现交通灯的控制。
上图为51单片机的最小系统,包括51的晶振电路和上电复位电路。
3.4倒计时显示电路
Protel电路原理图:
数码管采用共阴极数码管,位选端口直接接在IO口上,段码端口通过8个上拉电阻接在IO口上,通过IO口控制数码管显示时间。
3.4紧急情况按钮电路
为了实现此功能,利用单片机中断达到目的。
利用两个手动开关分别接至单片机外部中断0和中断1,同时在软件设计时将其设为最高优先级。
当开关S3按下,南北方向为红灯;
开关S4按下,东西方向为红灯。
按复位键退出中断,重新开始。
电路图如下图。
3.5整体电路图
上图是利用AltiumDesignerRelease10做出的整体设计原理图
Protel电路原理图的PCB图:
上图是利用AltiumDesignerRelease10做出的51交通灯的印制电路板PCB图。
Proteus仿真电路图:
上图是利用proteus搭建的51交通灯仿真电路,截图状态为仿真运行开始状态。
四软件设计
4.1程序流程图:
4.2LED红绿灯显示
当P1端口输出高电平,即P1各端口=1时,根据发光二极管的单向导电性可知,这是发光二极管熄灭;
当P1个端口输出低电平,即P1各端口=0时,发光二极管亮。
通过设置P1口不同时段输出电平的不同来控制发光二极管模拟交通灯的各种状态。
4.3倒计时显示
数码管的显示采用共阴极数码管的动态显示,通过P2口的P2.0至P2.3分别控制东西南北方向的数码管位选信号,然后通过P0口作为数码管的段选信号,通过位选信号的分时选择来控制数码管的个位,十位分别显示,又由于这期间的时间间隔很短,所以我们看起来数码管的个位十位是同时亮的。
然后利用定时器倒计时,通过数码管显示出来。
4.4急通车控制
将一按钮接到单片机外部中断0端口。
另一端接地,通过在程序里设置外部中断0为最高优先级。
当检测到有按钮按下时,产生中断,停止刚才的程序,转向中断执行。
4.5程序代码
见附录。
五总结
回顾起此次单片机课程设计,我仍感慨颇多,学到了很多的东西。
同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。
在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。
一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。
对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。
因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。
通过此次实践,我更加了解到自己对专业知识的不足,在课堂上我只能学习到理论知识,但实际动手能力却很差。
在硬件设计中还是没有很大困难的。
最困难的就是编写程序,加上对C语言程序的生疏,从一开始根本就不知道从何入手。
对于所编写的程序,自己感觉从理论上是可以的,但一应用到硬件上就不行了。
通过这次实习,使我的理论知识上升到了一个实践的过程。
同时在实践中也加深了我们对理论知识的理解。
总之,虽然实习的时间很短,但对我来说,收获是很大的。
我会更加珍惜我的学习,并且用实习的心得时时激励自己。
在这次设计中我得到了同学很多的帮助,我非常感谢他们,而且在设计过程中得到了老师们的帮助,衷心感谢老师给我们提供了这次难得的实践机会!
附录:
/*****************************************************
十字路口交通灯控制C程序
******************************************************/
#defineucharunsignedchar
#defineuintunsignedint
#include<
reg51.h>
/*****定义控制位**********************/
sbitEW_LED2=P2^3;
//东西数码管个位
sbitEW_LED1=P2^2;
//东西数码管十位
sbitSN_LED2=P2^1;
//南北数码管个位
sbitSN_LED1=P2^0;
//南北数码管十位_
sbitSN_Yellow=P1^2;
//南北黄灯
sbitEW_Yellow=P1^6;
//东西黄灯
sbitEW_Red=P1^7;
//东西红灯
sbitSN_Red=P1^3;
//南北红灯
//sbitBusy_Btton=P3^2;
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;
//用于存放修改值的变量
uchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x0,0x40};
//数字段码
ucharS[4]={0x7e,0x7d,0xe7,0xd7};
/**********************延时子程序************************/
voidDelay(uchara)
{
uchari;
i=a;
while(i--){;
}
}
/*****************显示子函数**************************/
voidDisplay(void)
charh,l;
h=Time_EW/10;
l=Time_EW%10;
P0=table[l];
EW_LED2=0;
Delay(200);
EW_LED2=1;
P0=table[h];
EW_LED1=0;
EW_LED1=1;
h=Time_SN/10;
l=Time_SN%10;
SN_LED2=0;
SN_LED2=1;
SN_LED1=0;
SN_LED1=1;
}
/**********************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=0;
//定义外部中断触发方式
IT1=0;
TMOD=0x01;
//定时器工作于方式1
//定时器赋初值
EA=1;
//CPU开中断总允许
ET0=1;
//开定时中断
EX1=1;
//开外部INTO中断
EX0=1;
TR0=1;
//启动定时
P2=0xff;
while
(1)
{/*******S1状态**********/
Flag_EW_Yellow=0;
//EW关黄灯显示信号
Time_EW=EW;
Time_SN=SN;
while(Time_SN>
0)
{P1=S[0];
//SN通行,EW红灯
Display();
/*******S2状态**********/
Flag_SN_Yellow=0;
//SN关黄灯显示信号
Time_SN=SNL;
{P1=S[1];
//SN左拐绿灯亮,EW红灯
Display();
/*******S3状态**********/
P1=0xff;
while(Time_EW>
{Flag_SN_Yellow=1;
//SN开黄灯信号位
EW_Red=0;
//SN黄灯亮,等待停止信号,EW红灯
Display();
}
/***********赋值**********/
EW=EW1;
SN=SN1;
EWL=EWL1;
SNL=SNL1;
/*******S4状态**********/
Flag_SN_Yellow=0;
Time_EW=SN;
Time_SN=EW;
while(Time_EW>
{P1=S[2];
//EW通行,SN红灯
/*******S5状态**********/
Flag_EW_Yellow=0;
Time_EW=EWL;
{P1=S[3];
//EW左拐绿灯亮,SN红灯
/*******S6状态**********/
P1=0Xff;
{Flag_EW_Yellow=1;
//EN开黄灯信号位
SN_Red=0;
//EW黄灯亮,等待停止信号,SN红灯
/***********赋值**********/
EW=EW1;
SN=SN1;
voidxint1()interrupt2//外部中断INT1控制南北通行东西禁止
P1=0xe7;
Display();
Delay(200);
{}
voidxint0()interrupt0//外部中断INT0控制东西通行南北禁止
P1=0x7e;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 交通灯 设计 单片机 课程设计 报告 大学 论文