收藏 分享(赏)

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

上传人:精品资料 文档编号:8028680 上传时间:2019-06-05 格式:DOC 页数:12 大小:127.01KB
下载 相关 举报
51单片机综合实验交通灯设计报告.doc_第1页
第1页 / 共12页
51单片机综合实验交通灯设计报告.doc_第2页
第2页 / 共12页
51单片机综合实验交通灯设计报告.doc_第3页
第3页 / 共12页
51单片机综合实验交通灯设计报告.doc_第4页
第4页 / 共12页
51单片机综合实验交通灯设计报告.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、51单片机综合实验交通灯设计报告班 级: 学 生 姓 名:学 号:指 导 教 师: 一 实验题目交通灯控制系统设计二 实验目的1、学会用 8051 单片机开发简单的计算机控制系统;2、学会用汇编语言和 C 语言开发系统软件;3、学会 8051 单片机开发环境 wave 或 Keil uVision3 软件的使用;4、学会 Proteus 软件的使用方法,会用 Proteus 单片机系统进行仿真;5、学会 Protel 软件的使用方法,会用 Protel 绘制电气原理图和印制板图;6、熟悉七位数码管显示的使用方法;7、了解交通灯控制系统的基本组成。三 实验要求交通灯处在十字路口上。它有红黄绿三种

2、颜色的灯组成。红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换。下面拿东西南北四个方向来说明。当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮。交通灯配置示意图如图 1 所示。同时当有特殊的情况发生时,能手动控制各个方向的信号灯。设计任务就是将这一电路用单片机来实现具体的控制。图 1 十字路口交通灯配置示意数码管北西南绿直行数码管北黄灯缓红灯停绿左转东图四 设计

3、内容与原理为了在后面的分析中便于说明,将南北方向允许直行命名为状态 1,南北方向允许左转命名为状态 2,南北方向行车到东西方向行车的转换阶段命名为状态 3,将东西方向允许直行命名为状态 4,东西方向允许左转命名为状态 5,东西方向行车到南北方向方向行车的转换阶段命名为状态 6。假定直行绿灯点亮的时间为 25s,左转绿灯点亮的时间为 20s,黄灯点亮的时间为 5s,则对方红灯的点亮时间为 50 秒。黄灯每隔 500ms 亮一次,之后灭500ms(亮灭一次叫作闪烁一次) ,一共闪烁 5 次,持续 5s。各个状态之间的变换情况如下:状态 1 状态 2 状态 3 状态 4 状态 5 状态 6 状态 1

4、具体显示周期如下:25s 20s 5s 50s状态 1 状态 2 状态 3 状态 4 状态 5 状态 6南北路口 直行绿灯亮 左转绿灯亮 黄灯亮 缓行 红灯亮禁行东西路口 红灯亮禁行 直行 左转 黄灯亮图 2 交通信号灯点亮时间图设计电路中每个路口的控制信号灯应有四个,即绿灯两个、黄灯、红灯各一个,同时需要七段数码管一个。因此,本电路的设计中应用到绿灯八个,黄灯四个,红灯四个,七段数码管两个(东西方向相同,南北方向相同,为节省空间可省略一对) 。五 电路设计分析根据前面的设计内容与原理分析,电路设计中应有控制模块(单片机电路) 、显示模块(十六个信号灯和两个七段数码管)本电路的设计,将发光二极

5、管作为 16 个信号灯的材料。电源将采用 5V 的直流电源。东西两个方向的绿灯是同时亮的,为了简化电路可以让这两个灯接同一个引脚。同理,东西方向的黄灯、红灯也可以分别接同一个引脚。南北方向同上。这样我们可以用一个 8 位口控制 16 盏信号灯。各信号灯均是共阴极接法,LED 负极均接地,正极通过保护电阻接单片机P1 口。这样单片机引脚的输出一个高电平时,相应的信号灯就被点亮。七段数码管经过 8 位排阻 RESPACK-8 连接。单片机中应包括复位电路和晶振电路。本设计中,采用上电复位形式,由于本系统应用的机器周期为 ls,所以晶振选择为 12MHz,根据调试电容选择30pF绿灯亮 绿灯亮 缓行

6、50s 25s 20s 5s图 3:复位电路图 4:晶振电路六 硬件原理图七 程序流程本程序的程序流程图如图所示设置闪烁次数延时 500ms南北左转绿灯亮东西红灯亮延时 25s延时 20s黄灯灭南北直行绿灯亮东西红灯亮黄灯亮延时 500ms设置闪烁次数黄灯亮延时 500ms东西左转绿灯亮南北红灯亮延时 25s延时 20s东西直行绿灯亮南北红灯亮开始复位黄灯灭闪烁次数到? 闪烁次数到?延时 500msN NY Y八 心得体会这次系统实验历时一个月的时间,在这实验过程里我们巩固了从编程、软件使用到调试的专业知识,逻辑思维和动手能力都得到了很大的提高。要解决的主要问题就是程序的设计和仿真,虽然初期在

7、设计和布局、编程时思路比较清晰,但是到了细节处,也出了不少问题,而且很难被检查出来,如在定时器使用方面出了一些错误。但是最后经过不断努力,还是写出来正确的代码。通过这次系统实验,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力,同时提高了对专业的认识及兴趣,对于我们工科生来说,对以后就业很有帮助。附录 程序代码:#define uchar unsigned char#define uint unsigned int#include /*定义控制位*/sbit EW_LED2=P23; /东西数码管个位sbit EW_LED1=P22; /东西

8、数码管十位sbit SN_LED2=P21; /南北数码管个位sbit SN_LED1=P20; /南北数码管十位_sbit SN_Yellow=P16;/南北黄灯sbit EW_Yellow=P12;/东西黄灯sbit EW_Red=P13;/东西红灯sbit SN_Red=P17;/南北红灯sbit Busy_Btton=P34;bit Flag_SN_Yellow; /南北黄灯标志位bit Flag_EW_Yellow;/东西黄灯标志位char Time_EW;/东西方向倒计时单元char Time_SN;/南北方向倒计时单元uchar EW=50,SN=25,EWL=20,SNL=20

9、; /程序初始化赋值uchar EW1=50,SN1=25,EWL1=20,SNL1=20;/用于存放修改值的变量 1-9段选码uchar code table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 ;uchar code S8=0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84;/交通信号灯控制代码/*延时子程序*/void Delay(uchar a)uchar i;i=a;while(i-);/*显示子函数*/void Display(void)char h,l;h=Time_EW/10;l=T

10、ime_EW%10;P0=tablel;EW_LED2=1;Delay(200);EW_LED2=0;P0=tableh;EW_LED1=1;Delay(200);EW_LED1=0;h=Time_SN/10;l=Time_SN%10;P0=tablel;SN_LED2=1;Delay(200);SN_LED2=0;P0=tableh;SN_LED1=1;Delay(200);SN_LED1=0;/*T0中断服务程序*/void timer0(void)interrupt 1 using 1static uchar count;TH0=(65536-50000)/256;TL0=(65536-

11、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;voi

12、d main(void) IT0=1; /INT0负跳变触发TMOD=0x01;/定时器工作于方式 1TH0=(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_SN0)P1=S0; /SN通行,EW 红灯Display();/*状态 2*/Flag_SN_Yellow=0; /SN关黄灯显示信

13、号Time_SN=SNL;while(Time_SN0)P1=S2;/SN左拐绿灯亮,EW 红灯Display();/*状态 3*/P1=0x00;while(Time_EW0)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_EW0)P1=S4; /EW通行,SN 红灯Display();/*状态 5*/Flag_EW_Yellow=0; /EW关黄灯显示信号Time_EW=EWL;while(Time_EW0)P1=S6;/EW左拐绿灯亮,SN 红灯Display();/*状态 6*/P1=0X00;while(Time_SN0)Flag_EW_Yellow=1; /EN开黄灯信号位SN_Red=1;/EW黄灯亮,等待停止信号,SN 红灯Display();/*赋值*/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报