完整单片机交通灯课程实验报告

合集下载

单片机的交通灯实训报告

单片机的交通灯实训报告

一、引言随着我国经济的快速发展,城市交通问题日益突出,交通拥堵、事故频发等问题严重影响了市民的生活质量。

为了解决这些问题,智能交通系统应运而生。

单片机作为一种高效、低成本的微控制器,在智能交通系统中扮演着重要角色。

本实训报告以单片机为控制核心,设计并实现了一套交通灯控制系统,旨在提高交通效率,保障交通安全。

二、实训目标1. 熟悉单片机的基本原理和编程方法。

2. 掌握交通灯控制系统的设计方法。

3. 学会使用单片机进行交通灯控制。

4. 提高动手实践能力和团队协作能力。

三、实训内容1. 系统组成本系统采用AT89C52单片机作为核心控制单元,通过外围电路实现交通灯的控制。

系统主要由以下模块组成:(1)单片机模块:负责整个系统的控制和数据处理。

(2)信号灯模块:包括红、黄、绿三个信号灯,用于指示交通灯状态。

(3)按键模块:用于手动控制交通灯状态。

(4)数码管模块:用于显示交通灯倒计时时间。

(5)电源模块:为整个系统提供稳定的电源。

2. 系统工作原理系统启动后,单片机首先进行初始化设置,包括设定交通灯状态、倒计时时间等。

然后进入主循环,不断检测按键状态,并根据交通灯状态和倒计时时间进行控制。

(1)正常状态:系统按照预设的交通灯状态和时间进行控制,绿灯亮30秒,黄灯亮5秒,红灯亮25秒。

(2)紧急状态:当检测到紧急车辆时,系统立即切换到紧急状态,所有交通灯亮红灯,直到紧急车辆通过。

(3)手动控制:用户可以通过按键手动控制交通灯状态,实现交通灯的切换。

3. 程序设计程序采用C语言编写,主要包括以下部分:(1)初始化函数:设置单片机的工作模式、IO口状态、定时器等。

(2)主循环函数:检测按键状态,控制交通灯状态和倒计时时间。

(3)中断服务程序:处理按键中断和定时器中断。

四、实训过程1. 硬件设计根据系统组成,设计并焊接电路板,包括单片机模块、信号灯模块、按键模块、数码管模块和电源模块。

2. 软件设计使用Keil uVision软件编写程序,并进行编译、下载和调试。

信号灯单片机实训报告

信号灯单片机实训报告

一、实训背景随着城市化进程的加快,交通流量日益增大,交通信号灯系统作为城市交通管理的重要手段,对于提高道路通行效率、保障交通安全具有至关重要的作用。

为了让学生更好地了解和掌握单片机在交通信号灯控制系统中的应用,我们进行了信号灯单片机实训。

二、实训目的1. 熟悉单片机的硬件结构和编程方法。

2. 掌握交通信号灯控制系统的设计原理和实现方法。

3. 培养学生的动手能力和创新意识。

三、实训内容1. 硬件设计本实训选用51单片机作为主控单元,利用P1口输出控制红、黄、绿三色LED 灯的亮灭。

同时,通过P2口连接4个7段数码管,用于显示倒计时时间。

硬件电路主要包括以下部分:- 51单片机- 4个LED灯(红、黄、绿)- 4个7段数码管- 电阻、电容等元件2. 软件设计软件设计主要包括以下功能:- 红绿灯控制:根据预设的时间,控制红、黄、绿三色LED灯的亮灭。

- 倒计时显示:在数码管上显示倒计时时间。

- 中断控制:通过外部中断实现紧急情况下的信号灯控制。

软件设计流程如下:1. 初始化硬件资源,包括单片机端口、LED灯和数码管。

2. 设置定时器,实现定时中断。

3. 在定时中断服务程序中,根据预设的时间控制红、黄、绿三色LED灯的亮灭。

4. 在数码管上显示倒计时时间。

5. 设置外部中断,实现紧急情况下的信号灯控制。

四、实训过程1. 硬件搭建首先,根据设计电路图,将51单片机、LED灯、数码管等元件焊接在电路板上。

注意,在焊接过程中要注意元件的极性,避免损坏元件。

2. 软件编程使用C语言编写程序,实现信号灯控制功能。

在编程过程中,注意以下要点:- 熟悉单片机的指令系统和寄存器。

- 掌握定时器、中断等功能的实现方法。

- 注意程序的逻辑性和可读性。

3. 调试与测试将编写好的程序烧录到单片机中,进行调试和测试。

在测试过程中,观察信号灯的亮灭情况、倒计时时间的显示以及紧急情况下的信号灯控制。

五、实训结果经过调试和测试,信号灯单片机实训取得了以下成果:1. 成功实现了红、黄、绿三色LED灯的控制,并根据预设的时间进行倒计时显示。

交通灯实训实验报告

交通灯实训实验报告

一、实验目的1. 理解交通灯控制系统的工作原理。

2. 掌握使用单片机进行交通灯控制系统的设计与实现。

3. 提高动手实践能力和问题解决能力。

二、实验原理交通灯控制系统通常采用单片机作为核心控制单元,通过编程实现对交通灯的红、黄、绿三种灯光状态的切换。

本实验采用单片机(如STC89C52)作为核心控制单元,利用定时器实现灯光的定时切换,并通过LED灯模拟交通灯的灯光状态。

三、实验器材1. 单片机开发板(如STC89C52开发板)2. LED灯(红、黄、绿各一个)3. 电阻(根据LED灯的规格选择)4. 跳线5. 编程器6. 计算机四、实验步骤1. 硬件连接:- 将红、黄、绿LED灯分别连接到单片机的P1.0、P1.1、P1.2端口。

- 将电阻串联在每个LED灯的两端,防止LED灯过载。

- 将跳线连接到单片机的相关引脚,用于编程和调试。

2. 软件编程:- 使用Keil软件编写单片机程序,实现交通灯的控制逻辑。

- 设置定时器,实现灯光的定时切换。

- 编写主循环程序,根据定时器的值切换LED灯的状态。

3. 程序调试:- 将程序烧录到单片机中。

- 使用示波器或逻辑分析仪观察LED灯的状态,确保程序运行正常。

4. 实验验证:- 将LED灯连接到实际交通灯的位置。

- 启动单片机,观察LED灯的状态是否符合交通灯的控制逻辑。

五、实验结果与分析1. 实验结果:- 红灯亮时,表示禁止通行。

- 绿灯亮时,表示允许通行。

- 黄灯亮时,表示准备切换到红灯。

2. 实验分析:- 通过本次实验,掌握了使用单片机进行交通灯控制系统的设计与实现。

- 了解了定时器在实现灯光切换中的作用。

- 提高了动手实践能力和问题解决能力。

六、实验总结1. 优点:- 实验操作简单,易于上手。

- 理论与实践相结合,提高了学生的动手能力。

2. 不足:- 实验内容较为简单,未能涉及到复杂交通灯控制系统的设计。

- 实验器材较为有限,限制了实验的拓展性。

七、实验拓展1. 研究复杂交通灯控制系统的设计,如多路口交通灯协同控制。

单片机实训报告交通灯

单片机实训报告交通灯

一、实训背景与目的随着城市化进程的加快,交通流量日益增大,传统的交通灯控制系统已经无法满足日益复杂的交通需求。

为了提高交通效率,减少交通拥堵,本实训项目旨在设计并实现一套基于单片机的智能交通灯控制系统。

通过本实训,学生可以深入了解单片机原理,掌握单片机编程与调试技巧,同时锻炼动手实践能力和团队协作精神。

二、系统设计1. 系统组成本系统主要由以下模块组成:单片机模块:采用AT89C52单片机作为核心控制单元,负责接收传感器信号、处理数据、控制交通灯状态等。

传感器模块:包括红外传感器、地磁传感器等,用于检测车辆和行人,实时获取交通信息。

执行模块:包括LED灯、继电器等,用于驱动交通灯和信号灯。

显示模块:采用LCD显示屏,用于显示交通灯状态、倒计时等信息。

电源模块:为系统提供稳定电源。

2. 工作原理系统工作原理如下:(1)单片机初始化,设置各模块参数。

(2)单片机通过传感器模块检测交通情况,如车辆和行人数量。

(3)单片机根据检测到的交通情况,控制交通灯和信号灯的亮灯状态。

(4)LCD显示屏显示交通灯状态和倒计时信息。

(5)当系统检测到紧急情况时,如行人过马路,系统自动切换到紧急模式,确保行人安全。

三、硬件设计1. 单片机模块选用AT89C52单片机作为核心控制单元,具有以下特点:内置8K字节闪存,可存储程序和数据。

内置8位定时器/计数器,可进行定时或计数操作。

内置串行通信接口,可进行数据通信。

2. 传感器模块红外传感器:用于检测车辆和行人,实现自动控制。

地磁传感器:用于检测车辆行驶方向,实现左转和直行控制。

3. 执行模块LED灯:用于显示交通灯状态。

继电器:用于驱动信号灯。

4. 显示模块采用LCD显示屏,用于显示交通灯状态、倒计时等信息。

5. 电源模块采用DC 12V电源,为系统提供稳定电源。

四、软件设计1. 编程语言采用C语言进行编程,具有以下优点:语法简单,易于理解。

可移植性好,可在不同平台上运行。

交通灯实验报告——单片机

交通灯实验报告——单片机

二、用51单片机设计交通灯、彩灯控制器一、可实现功能:1)通过51单片机,在面包板上模拟交通红绿灯。

分为主干道和支干道,每条道上安装红、绿、黄三种颜色的灯,并用两位八段数码管显示主干道三种灯亮的时间,由程序控制自动循环,红灯40秒,绿灯35秒,黄灯5秒;2)用单片机的外部中断0的产生来控制六路彩灯,此处只设计了四种花型。

二、电路原理图:三、源程序如下:#include "reg51.h"#include <intrins.h>void display(unsigned int digital);void delay(unsigned int time);void colour();unsigned shu[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6}; Unsignedled[41]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xff,0xdf,0xcf,0xc7,0xc3,0xc1,0xc0,0xc1,0xc3,0xc7,0xcf,0xdf,0xff, 0xf3,0xe1,0xc0,0xe1,0xf3,0xff,0xde,0xcc,0xc0,0xcc,0xdf,0xff, 0xdb,0xed,0xf6,0xed,0xdb,0xff,0xc0,0xff,0xc0,0xff,0xc0,0xff};sbit a=P2^6;sbit b=P2^7;sbit G=P2^0;sbit Y=P2^1;sbit R=P2^2;sbit g=P2^3;sbit y=P2^4;sbit r=P2^5;int flag=0;//全局变量,当它为1时显示彩灯,当它为0时,显示交通灯#define state_1 G=0;Y=1;R=1;g=1;y=1;r=0//主干道绿,支干道红#define state_2 G=1;Y=0;R=1;g=1;y=1;r=0//主干道黄,支干道红#define state_3 G=1;Y=1;R=0;g=0;y=1;r=1//主干道红,支干道绿#define state_4 G=1;Y=1;R=0;g=1;y=0;r=1//主干道红,支干道红void main(void){unsigned int i;EA=1; //首先开启总中断EX0=1; //开启外部中断 0IT0=1; //设置触发方式为下降沿触发while(1){while(flag==0){state_1;for(i=35;i>0;i--)delay(1);state_2;for(i=5;i>0;i--){delay(i);y1=~y1;}state_3;for(i=20;i>0;i--)delay(i);state_4;for(i=5;i>0;i--){delay(i);y2=~y2;}}while(flag==1) colour();}}//显示子程序,实现用两位数码管显示灯亮的时间void display(unsigned int digital){ unsigned int k;unsigned int ge=digital%10,shi=digital/10;//将十位与个位分离for(k=0;k<30000;k++){ a=1;b=0;P0=shu[ge];P0=0;a=0;b=1;P0=shu[shi];P0=0;}}//实现彩灯控制void colour(){ P1=0xff;P3=0x00;P2=0xff;while(1){ unsigned int j;for(j=0;j<41;j++)//循环程序演示四种花型{ P2=led[j];delay(1);} delay(5);}}//中断函数void key_scan() interrupt 0 //关键字"interrupt" ,这是C语言的中断函数表示法,,单片机有6个中断口,外部中断0的优先级最高,在程序里我们只用外部中断0 {flag++;if(flag==2) flag=0;}//延时程序void delay(unsigned int time) //参数time大小决定延时时间长短{ unsigned int j,k;time=time*5;for(j=0;j<time;j++)for(k=0;k<10000;k++);}四、源程序分析1、在电路设计时我用了共阴极八段数码管来显示时间:unsigned shu[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};数组中十个数分别表示0到9十个数;2、在设计彩灯时,我直接利用交通灯的主干道和支干道的六个灯设计彩灯:unsignedled[48]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xff,0xdf,0xcf,0xc7,0xc3,0xc1,0xc0,0xc1,0xc3,0xc7,0xcf,0xdf,0xff,0xf3,0xe1,0xc0,0xe1,0xf3,0xff,0xde,0xcc,0xc0,0xcc,0xdf,0xff,0xdb,0xed,0xf6,0xed,0xdb,0xff,0xc0,0xff,0xc0,0xff,0xc0,0xff};数组中的48个数共演示了四种花型3、void display(unsigned int digital){ unsigned int k;unsigned int ge=digital%10,shi=digital/10;//将十位与个位分离for(k=0;k<30000;k++){ a=1;b=0;P0=shu[ge];P0=0;a=0;b=1;P0=shu[shi];P0=0;}}显示子程序中将时间的十位与个位分离,用a、b来选择数码管将个位与十位分时输出。

交通灯单片机课程设计报告

交通灯单片机课程设计报告

课程设计报告:交通灯单片机控制系统1. 设计目的本课程设计旨在让学生通过使用单片机开发一个简单的交通灯控制系统来加深对单片机编程和控制原理的理解。

该系统可以模拟道路上的交通灯,实现红灯、绿灯和黄灯的循环控制,并可以通过按键进行手动控制。

2. 设计原理2.1 交通灯状态交通灯状态包括红灯、黄灯和绿灯,它们按照固定的时间间隔循环切换。

2.2 按键控制设计中使用一个按键用于手动控制交通灯状态切换。

按下按键时,会切换到下一个灯状态。

3. 硬件方案3.1 单片机本设计采用ATmega328P单片机,它具有足够的GPIO引脚用于控制交通灯的LED。

3.2 LED使用红色、黄色和绿色LED模拟交通灯的三种状态。

3.3 按键一个按键连接到单片机的GPIO引脚,用于手动切换交通灯状态。

4. 软件方案4.1 控制逻辑编写单片机程序,实现交通灯状态的循环切换和按键控制逻辑。

4.2 定时器使用定时器来控制交通灯状态切换的时间间隔。

4.3 中断配置按键的中断,以便在按下按键时进行状态切换。

5. 实施过程连接硬件组件,包括LED、按键和单片机。

编写单片机程序,包括交通灯状态切换逻辑、定时器配置和按键中断处理。

编译并烧录程序到单片机。

运行程序,观察交通灯的状态切换和按键控制是否正常。

6. 测试结果经过测试,交通灯控制系统能够正常运行。

交通灯状态按照预定的时间间隔循环切换,同时按下按键可以手动切换状态,符合设计要求。

7. 问题解决在实施过程中,遇到了一些问题,如硬件连接错误和程序逻辑错误。

通过仔细检查和调试,成功解决了这些问题。

8. 总结本课程设计使我深入了解了单片机编程和控制系统的原理,通过实际动手操作,更好地掌握了这些概念。

设计交通灯控制系统是一个有趣且教育性的项目,我对单片机编程有了更深入的理解,这对我的学习和职业发展都有所帮助。

这个示例课程设计报告可以作为参考,你可以根据具体的课程设计要求和硬件平台的不同来进行调整和扩展。

完整单片机交通灯课程实验资料报告材料

课程设计任务书学生:王凯专业班级:电子科学与技术0901班指导教师:吴友宇工作单位:信息工程学院题目: 交通信号灯控制器的设计初始条件:本设计既可以使用集成集成译码器、计数器、定时器、脉冲发生器和必要的门电路等。

本设计也可以使用单片机系统构建交通信号灯控制器。

用数码管显示时间计数值,用红、黄、绿LED作信号灯。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。

2、技术要求:①要求甲车道和乙车道两条交叉道路上的车辆交替运行(以红绿灯指示),每次通行时间设为0—30秒(可预置);变更车道以前,黄灯先亮5秒钟,黄灯亮时,要求每秒钟闪亮一次;两个车道均以减计数方式显示时间。

其余部分可根据情况自行发挥。

②确定设计方案,按功能模块的划分选择元、器件和集成电路,设计分电路,阐述基本原理。

③绘制总体电路原理图。

3、查阅至少5篇参考文献。

按《理工大学课程设计工作规》要求撰写设计报告书。

全文用A4纸打印,图纸应符合绘图规。

时间安排:1、 2011 年 7 月 3 日集中,作课设具体实施计划与课程设计报告格式的要求说明。

2、 2011 年 7 月 3 日,查阅相关资料,学习电路的工作原理。

2、 2011年 7 月 4 日至 2011 年 7 月 5日,方案选择和电路设计。

2、 2011 年 7 月 6日至 2011 年 7 月 7 日,电路调试和设计说明书撰写。

3、 2011 年 7 月 8 日上交课程设计成果及报告,同时进行答辩。

指导教师签名:年月日系主任(或责任教师)签名:年月日系主任(或责任教师)签名:年月日目录摘要 (7)交通信号灯控制器的设计 (8)1 任务要求与设计 (8)1.1 设计目的 (8)1.2 设计任务和容 (8)1.2.1设计任务 (8)1.2.2设计容 (8)2 总体方案比较 (9)2.1 方案论证 (9)2.2 方案选择 (10)3 总体硬件电路设计及核心器件介绍 (11)3.1总体设计 (11)4单元电路模块设计 (12)4.1复位电路、晶振电路 (12)4.2 LED数码管显示电路 (12)4.3 仿真原理图 (13)5软件编程设计 (14)5.1 设计思想 (14)5.2 程序框图 (15)6 心得体会 (16)参考文献 (17)附录1 原件清单 (18)附录3 总电路图 (18)附录3 源程序 (18)摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

交通控制灯实验报告(3篇)

第1篇一、实验目的1. 理解交通控制灯的基本原理和设计方法。

2. 掌握交通控制灯系统的硬件设计和软件编程。

3. 培养实际应用中交通控制灯系统的调试和优化能力。

二、实验背景随着城市化进程的加快,交通流量不断增加,交通拥堵问题日益严重。

交通控制灯作为城市交通管理的重要组成部分,对提高交通效率、保障交通安全具有重要作用。

本实验旨在设计一个简单的交通控制灯系统,模拟实际交通信号灯的控制过程。

三、实验内容1. 硬件设计本实验采用AT89S52单片机作为控制核心,利用LED灯模拟交通信号灯,通过按键实现交通灯的启动和停止控制。

2. 软件设计采用C语言编程,实现交通信号灯的时序控制,包括红灯、绿灯、黄灯的切换以及车辆通过时间的计时。

3. 系统调试通过调试程序,使交通控制灯系统稳定运行,实现交通信号灯的正常切换。

四、实验步骤1. 硬件电路连接(1)将AT89S52单片机的P1.0-P1.5引脚连接到LED灯的正极,P2.0-P2.5引脚连接到LED灯的负极。

(2)将AT89S52单片机的P3.0引脚连接到启动按键的正极,P3.1引脚连接到停止按键的正极。

(3)将AT89S52单片机的VCC和GND引脚分别连接到电源的正极和负极。

2. 软件编程(1)编写主函数,初始化单片机I/O口,设置延时函数。

(2)编写交通灯控制函数,实现红灯、绿灯、黄灯的切换以及车辆通过时间的计时。

(3)编写按键控制函数,实现交通灯的启动和停止控制。

3. 系统调试(1)通过观察LED灯的变化,检查交通灯控制函数的正确性。

(2)通过按键操作,检查启动和停止控制函数的正确性。

(3)调整延时函数,使交通灯时序符合实际需求。

五、实验结果与分析1. 实验结果经过调试,交通控制灯系统能够稳定运行,实现红灯、绿灯、黄灯的切换以及车辆通过时间的计时。

2. 实验分析(1)在硬件设计方面,电路连接简单,元器件选择合理。

(2)在软件设计方面,编程思路清晰,代码结构良好。

单片机交通灯实验报告

《单片机》技术期末总结报告基于单片机的交通灯控制器设计一、目的利用发光二极管模拟交通灯的控制。

二、程序功能模拟交通灯显示。

八位发光二极管分成2组,分别代表交通路口甲、乙两个方向的信号灯(红、黄、绿、左转)。

其中,红灯与绿灯显示时间均为50s,左转显示时间为15s,黄灯显示5s。

其状态表如下:在信号灯亮的同时,在LED数码管上显示响应的时间(每个方向用2个数码管,倒计时)。

三、电路原理图发光二极管电路图:数码管电路图: R00Q20 R201-2 LCD 2-3 DSYP00 P01 P02 P03 P04 P05 P06 P07abcdefgdpR01R02R03R04R05R06R07R21R22R23R24R25a b c d e f g dpa b c d e f g dpR26R27abfcgdedpabfcgdedpabfcgdedp1298DIG1DIG2DIG3123457111a b c d e f g dpabfcgdedpDIG46DS1P20 P21 P22 P23 P24 P25 P26 P271234JP23-4 LEDVCCabfcgdedpabfcgdedpabfcgdedp1298DIG1DIG2DIG3123457111a b c d e f g dpabfcgdedpDIG46DS2Q21Q22Q23Q24Q25Q26Q27四、程序流程:五、程序源码(应有必要的注释):程序功能:模拟交通灯显示。

其中,红灯与绿灯显示时间均为50s,中间的黄灯显示时间为15s。

绿灯用八位发光二极管流动闪烁作代表;红灯用八位发光二极管全亮作代表;黄灯用八位发光二极管全亮全灭闪烁作代表。

刚开始显示的为绿灯。

显示顺序:绿--黄--红--黄--绿--黄--红--………………#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit dula=P2^6;sbit wela=P2^7;sbit beep=P2^3;unsigned int pp;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchar j,k,l=255;uchar a1,a0;uchar shijian,deng=2;void delay(unsigned int i) //延时程序{ for(j=i;j>0;j--)for(k=125;k>0;k--);}void display(unsigned char sh_c,unsigned char g_c) //定义灯亮的方式函数{ dula=0;P0=table[sh_c];dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay(5);P0=table[g_c];dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay(5);}void main() //主函数{ TMOD=0x01;TR0=1;TH0=(65536-46080)/256;// 由于晶振为11.0592,故所记次数应为46080,计时器每隔50000微秒发起一次中断。

51单片机控制的交通灯系统实验报告

系统实验报告——基于51单片机的交通灯设计专业:XX学生姓名:xx XX学号:***********指导教师:wwwwwwwwwww2000年x月x日目录1 设计任务和性能指标 (1)1.1设计任务 (1)1.2性能指标 (1)2 设计方案 (2)2.1任务分析 (2)2.2方案设计 (2)3 系统硬件设计 (3)3.1单片机的最小系统 (3)3.2电源电路 (4)3.3数码管显示时间电路设计 (4)3.4信号灯控制电路设计 (5)4 系统软件设计 (5)4.1主程序设计 (5)5 调试及性能分析 (6)5.1调试分析 (6)5.1.1 软件调试 (6)5.1.2 硬件调试 (6)5.1.3 系统功能调试 (6)6 心得体会 (6)参考文献 (8)附录1 系统原理图 (9)附录3 程序清单 (10)附录3元器件清单 (14)1 设计任务和性能指标1.1设计任务利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。

用红、绿、黄发光二极管作信号灯。

如图上图所示。

设东西向为主干道,南北为支干道。

1.2性能指标1. 状态1:仅亮灯,数码管不工作。

按下键4,红/黄/绿三色灯交替亮:红—〉(20秒)黄(闪烁)—〉(5秒)绿—〉(20秒) 黄(闪烁)—〉(5秒)红2. 状态2:灯和数码管相结合,模拟十字路口的交通灯 在以上功能的基础上数码管倒计时显示时间。

南东2 设计方案2.1任务分析模拟交通灯控制器就是使用单片机来控制一些LED 和数码管,模拟真实交通灯的功能。

红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等2.2方案设计根据设计的要求可知,系统的硬件原理框图如下图所示。

单片机键盘LED 显示三色指示灯系统硬件框图单片机选用A T89S52,它与8051系列单片机全兼容,但其内部带有4KB 的FLASH R OM ,设计时无需外接程序存储器,为设计和调试带来极大的方便。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书学生姓名:王凯专业班级:电子科学与技术0901班指导教师:吴友宇工作单位:信息工程学院题目: 交通信号灯控制器的设计初始条件:本设计既可以使用集成集成译码器、计数器、定时器、脉冲发生器和必要的门电路等。

本设计也可以使用单片机系统构建交通信号灯控制器。

用数码管显示时间计数值,用红、黄、绿LED作信号灯。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。

2、技术要求:①要求甲车道和乙车道两条交叉道路上的车辆交替运行(以红绿灯指示),每次通行时间设为0—30秒(可预置);变更车道以前,黄灯先亮5秒钟,黄灯亮时,要求每秒钟闪亮一次;两个车道均以减计数方式显示时间。

其余部分可根据情况自行发挥。

②确定设计方案,按功能模块的划分选择元、器件和集成电路,设计分电路,阐述基本原理。

③绘制总体电路原理图。

3、查阅至少5篇参考文献。

按《武汉理工大学课程设计工作规范》要求撰写设计报告书。

全文用A4纸打印,图纸应符合绘图规范。

时间安排:1、2011 年7 月3 日集中,作课设具体实施计划与课程设计报告格式的要求说明。

2、2011 年7 月3 日,查阅相关资料,学习电路的工作原理。

2、2011年7 月4 日至2011 年7 月5日,方案选择和电路设计。

2、2011 年7 月6日至2011 年7 月7 日,电路调试和设计说明书撰写。

3、2011 年7 月8 日上交课程设计成果及报告,同时进行答辩。

指导教师签名:年月日系主任(或责任教师)签名:年月日系主任(或责任教师)签名:年月日目录摘要 (6)交通信号灯控制器的设计 (7)1 任务要求与设计 (7)1.1 设计目的 (7)1.2 设计任务和内容 (7)1.2.1设计任务 (7)1.2.2设计内容 (7)2 总体方案比较 (8)2.1 方案论证 (8)2.2 方案选择 (9)3 总体硬件电路设计及核心器件介绍 (10)3.1总体设计 (10)4单元电路模块设计 (11)4.1复位电路、晶振电路 (11)4.2 LED数码管显示电路 (11)4.3 仿真原理图 (12)5软件编程设计 (13)5.1 设计思想 (13)5.2 程序框图..................... 错误!未定义书签。

6 心得体会 (14)参考文献 (15)附录1 原件清单 (16)附录3 总电路图 (17)附录3 源程序 (17)摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。

本设计就是采用单片机模拟十字路口交通灯的状态显示以及倒计时。

本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。

系统除基本的交通灯功能外,还具有倒计时功能,较好的模拟实现了十字路口可能出现的状况。

软件上采用汇编语言编程,主要编写了主程序,LED数码管显示程序。

经过整机调试,实现了对十字路口交通灯的模拟。

关键词:交通灯单片机C语言交通信号灯控制器的设计1 任务要求与设计1.1 设计目的(1)加强对单片机和C语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。

(2)用单片机模拟实现具体应用,使个人设计能够真正使用。

(3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。

(4)提高利用已学知识分析和解决问题的能力。

(5)提高实践动手能力。

1.2 设计任务和内容1.2.1设计任务①要求甲车道和乙车道两条交叉道路上的车辆交替运行(以红绿灯指示),每次通行时间设为0—30秒(可预置);变更车道以前,黄灯先亮5秒钟,黄灯亮时,要求每秒钟闪亮一次;两个车道均以减计数方式显示时间。

其余部分可根据情况自行发挥。

②确定设计方案,按功能模块的划分选择元、器件和集成电路,设计分电路,阐述基本原理。

③绘制总体电路原理图。

1.2.2设计内容(1)填写设计任务书。

(2)进行总体设计,画出原理图。

(3)编写并调试程序。

(4)用Proteus软件进行仿真。

2 总体方案比较为了实现上述功能,有两种选择,其一是采用纯硬件设置,可以使用集成集成译码器、计数器、定时器、脉冲发生器和必要的门电路设计技术延时显示电路,只需要手动按键,电路自行实现功能。

另一选择就是通过编程使用单片机系统,利用软件硬件结合。

2.1 方案论证方案一:如图2-1采用集成集成译码器、计数器、定时器、脉冲发生器以及所需要的门电路,首先周期为一秒的脉冲发生器产生脉冲沿使计数器进行一秒钟计数,计数通过译码器将计数值送给数码管显示作为交通灯的倒计时显示,倒计时为零时产生计数脉冲改变LED灯的亮与灭,逻辑开关包括总开关、复位开关和预置数功能。

图2-1方案一原理框图方案二:如图2-2 此方案主要以单片机为核心,采用C语言编程实现交通灯效果。

此方式为软硬件结合,硬件包括单片机最小系统,复位电路,数码管显示模块和LED灯模块。

软件设计时包括四种状态转换,中断延时程序。

系统框图如图。

AT89C51单片机LED数码管显示晶振电路复位电路图2-2 方案二原理图2.2 方案选择第一中方案使用纯硬件电路比较容易理解也也不需要软件设计,但是硬件焊接电路较复杂,而且需要比较精确的脉冲信号源,对硬件电路要求较高,第二种方案硬件电路很简单也几乎不需要电阻电容的组织选择,而且只需要+5V直接稳压电源,采用程序实现数码管与LED灯显示功能,所以综合难易程度也可实现性,选择第二种方案。

3 总体硬件电路设计及核心器件介绍3.1总体设计整个设计以AT89C51单片机为核心,LED数码管显示,晶振电路,复位电路组成。

硬件模块入图3-1。

图3-1 硬件原理图4单元电路模块设计4.1复位电路、晶振电路复位电路、晶振电路总体电路图如图 4-1图 4-1 复位电路、晶振电路4.2 LED数码管显示电路在单片机应用系统中,数码管显示常用两种方法:静态显示和动态扫描显示。

所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。

这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,可以提供单独锁存的I/O接口电路很多,动态扫描电路软件设计较为复杂,由于89C52的可供使用I/O口足够多所以采用静态扫描。

此处使用74LS04是由于数码管位选段选直接与单片机I/O口相连,但是单片机I/O口输出电流很小,可能不足以带动数码管位选,则会导致数码管显示不够亮,此处使用的非门作为驱动,增加输出电流。

电路图如图 4-2图 4-2 LED数码管显示电路4.3 仿真原理图如图4-3 数码管LED灯初始化显示(倒计时为三十秒)当数码管倒计时到22秒时,此时状态是南北路红灯亮而东西路绿灯亮。

图4-3 仿真原理图5软件编程设计5.1 设计思想及程序框图软件编程是实现交通信号灯显示的灵魂,由于设计要求LED灯循环显示,,并且倒计数时间可以(0~30s)预置数。

程序可以分为按键模块,LED灯循环显示模块,数码管计数模块。

如图5-1所示根据分析可以将交通灯根据其显示情况可以分为四个状态,可以通过中断定时来控制每个状态的时间,程序总思路是首先设计一秒钟的中断模块,在一秒到来时,数码管计数显示减一,当倒计时到五秒时状态转换到黄灯亮另一路口继续红灯亮,,倒计时到零,从新显示预置数值,状态装换到一路口红灯灭,另一路口路灯亮,然后继续倒计时五秒,装换状态,完成这四个状态构成一个完整的程序循环图5-1 程序框图6 心得体会心得体会今年是第二次做课程设计,上次做的很匆忙,可想而知结果也很糟糕,总结了上次的经验与教训,这次准备的比较早,虽然遇到了很多的困难与问题,但是在自己的自学和同学的帮助之下,圆满的完成任务。

本设计采用的是软硬件结合的方案,所以对软件编程和硬件焊接排布都有一定的要求,而且这也是我第一次自己写C语言程序,刚开始思路很僵硬也不知道机械语言的那种很强的逻辑性,最后通过多看程序,多思考和改进终于实现软件功能。

虽然硬件电路比较简单,但是首先要有比较好的布局,这关系到美观和走线的方便,再一个就是电路的排查方面,第一次焊出来的电路总是或多或少有一些接触不良的问题这就需要细心与耐心的排查。

总体觉得这次的课程设计对自己自学能力动手能力是一个很大的考验和检查。

参考文献[1] 叶挺秀.应用电子学.杭州:浙江大学出版社,1994[2] 朱承高.电工及电子技术手册.北京:高等教育出版社,1990[3] 周润景.PEOTEUS在MCS-51&ARM7系统中的应用百例.北京:电子工业出版社,2006[4] 李朝青.单片机原理及接口技术(第三版).北京:北京航空航天大学出版社,2005[5]刘艳萍,高振斌,李志军.EDA实用技术及应用.北京:国防工业出版社,2006.附录1 原件清单附录2 总电路图附录3 源程序#include<reg52.h>#define uchar unsigned char #define uint unsigned int sbit kai=P2^2;sbit jia=P2^4;sbit jian=P2^3;sbit shiwen=P3^0;sbit gewen=P3^1;sbit LED_BLUE1=P3^2; sbit LED_RED1=P3^3;sbit LED_YELLOW1=P3^4; sbit LED_BLUE2=P2^5; sbit LED_RED2=P2^7;sbit LED_YELLOW2=P2^6; bit wen=1,guan;uchar TIME,i,z;char TIME_MAX1=30;/*uchar code table[]={0x30,0xf3,0x98,0x91,0x53,0x15,0x14,0xb3,0x10,0x11}; */uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uchar wenxuan[]={0,1};shuzi[]={0,0}; void delayms(uchar z){uchar x,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}void re_display(uchar z){shuzi[0]=z/2/10;shuzi[1]=z/2%10;}void display(){P0=0xff;shiwen=wenxuan[wen];gewen=!wenxuan[wen];P0=table[shuzi[wen]];}void set_zhuangtai(uchar zhuangtai) {if(zhuangtai==0){LED_BLUE1=0;LED_RED1=1;LED_YELLOW1=1;LED_BLUE2=1;LED_RED2=0;LED_YELLOW2=1;TIME=2*TIME_MAX1+1;}else if(zhuangtai==1){LED_BLUE1=1;LED_RED1=1;LED_YELLOW1=!LED_YELLOW1;LED_BLUE2=1;LED_RED2=0;LED_YELLOW2=1;}else if(zhuangtai==2){LED_BLUE1=1;LED_RED1=0;LED_YELLOW1=1;LED_BLUE2=0;LED_RED2=1;LED_YELLOW2=1;TIME=2*TIME_MAX1+1;}else if(zhuangtai==3){LED_BLUE1=1;LED_RED1=0;LED_YELLOW1=1;LED_BLUE2=1;LED_RED2=1;LED_YELLOW2=!LED_YELLOW2;}}void key(){while(!kai){delayms(10);if(!kai){guan=~guan;set_zhuangtai(z);}while(!kai);}}void tiao(){if(jian==0){delayms(10);if(jian==0){if(--TIME_MAX1<0) TIME_MAX1=30;}while(!jian);}else if(jia==0){delayms(10);if(jia==0){if(++TIME_MAX1>30) TIME_MAX1=0;}while(!jia);}z=0;if(TIME_MAX1<6) z=1;}void main(){TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65532-2000)/256;TL1=(65536-2000)%256;EA=1;while(1){key();if(guan){TR0=1;TR1=1;ET0=1;ET1=1;}else{LED_BLUE1=1;LED_RED1=1;LED_YELLOW1=1;LED_BLUE2=1;LED_RED2=1;LED_YELLOW2=1;ET0=0;TR0=0;ET1=1;TR1=1;TIME=2*TIME_MAX1+1;re_display(TIME);tiao();}}}void TIME0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;i++;if(i==10){i=0;if(TIME_MAX1>5){if(1<--TIME&&TIME<12){set_zhuangtai(z+1);}if(TIME<2){set_zhuangtai(z=2-z);}}else{if(--TIME<2){set_zhuangtai(z=4-z);TIME=2*TIME_MAX1+1;}else set_zhuangtai(z);}re_display(TIME);}}void TIME1() interrupt 3{TH1=(65532-2000)/256;TL1=(65536-2000)%256;display();wen=~wen;}。

相关文档
最新文档