基于51单片机的交通信号灯系统设计说明

合集下载

基于51单片机的交通信号灯模拟控制系统设计

基于51单片机的交通信号灯模拟控制系统设计

XXXX学院毕业设计(论文)课题名称交通信号灯模拟控制系统学生姓名X X X学号XXXXXXXXXXXXX系别自动化工程系专业班级机电一体化X班指导教师X X技术职务讲师XXXXXX学院教务处制指导教师:XXX 2016年9月5 日用51单片机设计交通信号灯模拟控制系统机电一体化X班XXX 指导老师:XXX摘要:城市交通信号灯模拟控制系统模拟了能够对信号灯进行远程投时的城市十字路口控制系统功能。

借助于单片机开发板上的已有资源,构建了模拟实际系统功能的单片机扩N82C55控制LED灯模块、8位七段数码管显示控制模块和板上扩展接线模块。

在分析实际系统工作流程的基础上,给出了针对单片机开发板的模拟系统C51控制程序流程。

用于实际系统时,只需要将代码移植到现场设备并进行具体设置和适当修改即可,可以在满足客户需求的前提下最小化系统开发成本。

交通信号灯模拟控制系统模拟了能够对信号灯进行远程授时的城市十字路口控制系统功能。

基于AT89C51单片机的性能参数和工作原理,应用Keil单片机编译软件的C语言编程以及使用该软件开发单片机程序,说明设计的交通信号灯模拟控制系统的工作原理、程序流程和硬件结构等相关技术,指出该系统的特点。

设计一种基于AT89C51超低功耗单片机的交通信号灯模拟控制系统,详细阐明了交通信号灯模拟控制系统的工作原理,实现了一般交通信号灯控制系统的主要功能及要求,具有实用性。

该系统充分利用了AT89C51单片机的特点,使用现今单片机广泛采用的C语言编制了系统程序,并利用Keil uVision3软件进行编译运行,最终通过Proteus完成了模拟控制系统的仿真。

关键词:AT89C51单片机K eil单片机编译软件仿真软件Proteus 6 C语言交通灯XXXXX学院毕业设计(论文)指导记录表注:指导情况须填明学生在毕业设计(论文)撰写过程中存在的问题,指导教师要求修改的内容或改进措施。

指导情况填写不包括下达任务书和开题报告意见。

基于51单片机设计的交通灯报告书

基于51单片机设计的交通灯报告书

报告书干路—支路口交通信号灯控制器项目目的:通过对模拟交通灯控制系统的操作,让我们掌握定时器和中断系统的综合应用,进一步熟练51单片机的应用.项目要求:本项目主要通过感应开关控制交通灯的切换显示,实现主干路与支路车辆的分流。

(1)在正常情况下,主干道交通灯绿灯一直亮着。

(2)当支路检测到有车辆,60秒后,主干道禁止通行,支路放行。

(3)支路放行30 秒后,恢复正常情况。

项目电路如图:按键S1、S2模拟支路的车辆检测,当S1、S2为高电平(不按下按键)时,表示正常情况。

当S1或S2为低电平(按下按键)时,表示支路上有车辆,将S1、S2接到P3.0、P3.1把信号送入到单片机。

程序设计:源程序代码:#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar time,second,n,m;sbit k1=P3^0;sbit k2=P3^1;Uchar code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x 80,0x90};//数码管显示0~9的段码表void delay(uint t){uchar i;while(t--)for(i=0;i<255;i++);}void shumaguan(uchar s){P2=0xfd;P0=Tab[s/10];delay(1);P2=0xfe;P0=Tab[s%10];delay(1);}void main(){IE=0x82;TMOD=0x01;TH0=(65536-50000)/16;TL0=(65536-50000)%16;while(1){ uchar j;P1=0xde;if(k1==0||k2==0){delay(500);if(k1==0||k2==0){time=40;TR0=1;for(second=60;second>0;)shumaguan(second);TR0=0;P2=0x00;P1=0xf3;delay(3000);for(j=0;j<2;j++){P1=0xfb;delay(200);P1=0xf3;delay(200);}P1=0xeb;delay(500);}}}}void ld() interrupt 1{TR0=0;time--;if(time==0){time=40;second--;if(second==5)P1=0xdf;if(second==4)P1=0xde;if(second==3)P1=0xdf;if(second==2)P1=0xdd;if(second==1)P1=0xdd;}TH0=(65536-50000)/16;TL0=(65536-50000)%16;TR0=1;}项目小结:本项目程序主要包括四部分:主函数、延时函数、数码管显示函数、中断函数。

基于51单片机交通信号灯课程设计

基于51单片机交通信号灯课程设计

基于51单片机交通信号灯课程设计下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!基于51单片机交通信号灯课程设计一、引言交通信号灯是城市交通管理的重要组成部分,它能有效地引导车辆和行人的通行,提高交通流畅度和安全性。

51单片机交通灯毕业设计方案

51单片机交通灯毕业设计方案

51单片机交通灯毕业设计方案
以下是一个基于51单片机的交通灯设计方案:
1. 硬件设计:
- 使用51单片机作为主控制器。

- 使用红黄蓝三个LED作为信号灯的显示器件。

- 使用按钮作为手动触发信号灯切换的输入设备。

- 使用数码管显示当前信号灯状态的计时器。

- 使用适当的电阻、电容、继电器等连接单片机和LED、按钮、数码管等。

2. 软件设计:
- 配置51单片机的I/O口,将LED、按钮和数码管连接到正
确的引脚。

- 编写主程序,设置中断或轮询等方式读取按钮状态,并根
据按钮状态切换信号灯状态。

- 通过控制LED引脚的输出电平,实现红黄蓝三个信号灯的
闪烁、亮灭和切换。

- 使用定时器计时,实现信号灯的定时控制。

根据交通规则,红灯、黄灯、绿灯的显示时间可以根据需要设定。

- 使用数码管显示当前信号灯的状态和剩余时间,方便车辆
和行人了解交通灯变化。

3. 功能设计:
- 根据交通规则,设置交通灯的变换顺序和时间,确保道路
的交通流畅和安全。

- 根据需要加入手动触发信号灯切换的功能,允许人工控制,
例如紧急情况下的交通调节。

- 可以考虑加入流量检测、车辆和行人优先等功能,提高交
通效率和安全性。

- 可以通过串口或无线通信模块,实现与其他设备的联动,
例如与车载导航系统、交通监控系统等的数据交换和协同控制。

以上是一个基本的51单片机交通灯设计方案,可以根据具体
需求进行进一步调整和优化。

51单片机红绿灯设计报告

51单片机红绿灯设计报告

51单片机红绿灯设计报告一、引言红绿灯是城市道路交通管理中非常重要的设备,它能够有效地控制车辆和行人的通行,维护交通秩序,提高交通效率。

本报告将介绍一种基于51单片机的红绿灯设计,利用单片机的强大功能,实现了智能化、自动化的红绿灯控制系统。

二、设计原理1.硬件设计本设计使用了51单片机,通过其IO口控制LED灯的亮灭。

红绿灯的控制通过三个IO口分别连接到红、黄、绿三个LED灯,通过控制这三个IO口的电平,实现红绿灯的切换。

2.软件设计设计中使用了C语言进行程序开发。

程序通过设置IO口的状态和延时函数,控制红绿灯的切换和延时时间。

三、电路设计1.电路图电路图给出了51单片机、LED灯和电流限制电阻之间的连接关系。

单片机的P1口连接到红、黄、绿三个LED灯上,通过改变P1口的电平,控制LED的亮灭。

2.电路元件说明-51单片机:中央处理器,负责控制整个系统的运行和信号的处理。

-LED灯:用于显示红、黄、绿三种不同的状态。

-电流限制电阻:用于限制电流大小,保护51单片机和LED灯。

四、程序设计程序设计中,通过无限循环实现红绿灯系统的连续运行,程序中设置了红绿灯切换的时间间隔和黄灯亮灭的时间间隔。

五、实验结果经过测试,本设计能够正常地实现红绿灯的切换,各种状态都能够正确显示。

红灯亮10秒,黄灯亮3秒,绿灯亮15秒,然后循环重复。

六、总结本设计利用51单片机的强大功能,实现了红绿灯的自动切换。

通过控制IO口的电平和延时函数,能够实现红绿灯的各种状态的切换。

该设计简单、实用、可靠,适用于城市交通管理中的红绿灯设备。

基于51单片机的交通信号灯模拟控制系统设计整理资料

基于51单片机的交通信号灯模拟控制系统设计整理资料
关键词:AT89C51 单片机 Keil 单片机编译软件 仿真软件 Proteus 6 C
语言 交通灯
XXXXX 学院毕业设计
XXXXX 学院毕业设计(论文)指导记录表
学生姓 名 系 别
指导教 师
课题名 称
XXX
学号
XXXXXXXXXXX
自动化工程工程系
专业班级 xxx 级机电一体化 X 班
XXX
技术职务
基于 51 单片机设计交通信号灯模拟控制系统
第一次 指导情

XXXXX 学院毕业设计
指导教师签字:



第二次 指导情


指导教师签字:


XXXXX 学院毕业设计
注:指导情况须填明学生在毕业设计(论文)撰写过程中存在的问题,指导 教师要求修改的内容或改进措施。指导情况填写不包括下达任务书和开题报 告意见。
XXXXX 学院毕业设计
XXXX 学院 毕业设计(论文)
课题名称 交通信号灯模拟控制系统
学生姓名
XXX
学号
XXXXXXXXXXXXX
系别
自动化工程系
专业班级
机电一体化 X 班
指导教师
XX
技术职务
讲师
XXXXXX 学院教务处制
XXXXX 学院毕业设计
XXXXX 学院毕业设计(论文)任务书
学生姓名
XXX
关 2)有必要的程序流程图与单片机系统设计
要 3)上位机程序的编写或规划 求 4)要求格式正确,模块完整
第五学期 第2周
学生完成设计开题报告
第五学期 学生完成毕业设计初稿,指导教师给予修改
进 第 3-5 周 建议。

基于51单片机的交通信号灯模拟控制系统

基于51单片机的交通信号灯模拟控制系统

基于51单片机的交通信号灯模拟控制系统一、实验目的和要求1.掌握单片机基本资源使用。

2.掌握单片机电路原理图绘制和仿真。

3.掌握单片机C语言软件开发以及联合仿真。

二、实验内容和原理实验内容:1.根据题目绘制单片机电路原理图。

2.绘制程序流程图并编写C语言程序3.在仿真程序中进行联合仿真,最后提交实验报告三、主要仪器设备keilC,proteus。

四、操作方法与实验步骤4.1 题目要求用单片机设计一个十字路口交通灯模拟控制系统,要求东西、南北两个方向都通行20秒,警告3秒,禁止20秒,同时要考虑到东西、南北两个方向出现异常情况,出现异常情况器该方向通行60秒。

4.2 系统设计思路南北的绿红黄发光二极管与单片机AT89C51单片机的P1.0,P1.1,P1.2相连。

东西的绿红黄发光二极管与单片机AT89C51单片机的P1.4,P1.5,P1.6相连。

改变单片机P1口编码控制交通灯。

控制过程中会出现两种异常情况用外中断0和外中断1处理。

时间单位采用500ms信号,由定时/计数器0定时50ms,循环10次产生,定时/计数器0采用查询方式,主程序中设定定时/计数器0的工作方式:方式1。

4.2 电路图绘制(包含详细的参数选定文字和图像叙述)C1=1nF,C2=1nF,C3=1nF,R1=300,R2=300,R3=300,R4=300,R5=300,R6=300,R7=300,R8=300,R9=300,R10=300,R11=300,R12=300,R13=3004.3 C程序编制(包含详细的文字和程序流程图)4.3 仿真分析(包含文字和图像叙述)东西绿灯,南北红灯东西黄灯,南北红灯南北绿灯,东西红灯南北黄灯,东西红灯东西发生异常时,东西通行,南北禁止,东西方向绿灯闪,南北方向红灯闪南北发生异常时,南北通行,东西禁止,南北方向绿灯闪,东西方向红灯闪五、讨论和心得(不少于100字)通过这次对交通灯信号的模拟,了解了交通灯4种正常状态,2种异常状态,它们分别是:状态1,东西方向绿灯,南北方向红灯20秒。

基于51单片机的交通灯控制系统的设计

基于51单片机的交通灯控制系统的设计

论文题目【摘要】本文根据AT89C51单片机的特点及交通灯在实际控制中的特点,提出了一种用单片机自动控制交通灯以及时间显示的方法,同时给出了软硬件设计的方法。

设计的过程包括硬件电路设计和程序设计两大步骤,对在单片机应用中可能遇到的重要设计问题都有涉足。

本系统采用单片机作为核心控制器,通过红外检测系统来测量东西方向和南北方向的车流量大小,经过简单的算法得出红绿灯时间。

然后分别用红、黄、绿灯的不同组合来指挥两个方向的通车与禁行,用LED数码管作为倒计时指示,实时地控制当前交通灯时间使LED显示器进行倒计时工作并与状态灯保持同步,在保持交通安全的同时最大限度地提高交通能顺畅交替运行,从而实现十字路口的智能交通控制。

关键词:单片机;交通灯;红外检测;智能控制发发到的【关键词】AT89C51单片机,交通控制,传感检测,倒计时显示,异常状况判别及处理论文题目(英文)【Abstract】XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX…………【Keywords】XXXXXXX XXXXXXXXXXXXX XXXXXXXXXX…………(与中文摘要基本对应)目录引言----------------------------------------------------------------------------- 1第一章绪论------------------------------------------------------------------- 3 1.1研究意义-------------------------------------------------------------------- 3 1.2交通灯研究现状-------------------------------------------------------------101.2.1国内城市交---------------------------------------------------------------- 41.2.2国际先进成果-------------------------------------------------------------- 7 1.3研究内容-------------------------------------------------------------------15 第二章总体方案设计----------------------------------------------------------17第三章硬件设计-------------------------------------------------------------- 27 3.1单片机概述------------------------------------------------------------------28 3.2电源电路--------------------------------------------------------------------28 3.3检测电路--------------------------------------------------------------------283.3.1红外传感器----------------------------------------------------------------- 43.3.2常用的红外传感------------------------------------------------------------- 73.3.3主动式红外传感器简--------------------------------------------------------- 43.3.4检测电路------------------------------------------------------------------ 7 3.4紧急按键K1电路-------------------------------------------------------------28 3.5红绿灯显示电路------------------------------------------------------283.6倒计时显示电路-------------------------------------------------------283.7振荡电路-------------------------------------------------------------283.8复位电路-------------------------------------------------------------28第四章系统软件设计------------------------------------------------------ 30 4.1主程序设计-------------------------------------------------------------284.2延时子程序------------------------------------------------------284.2.1计数器硬件----------------------------------------------------------------- 44.2.2软件延时------------------------------------------------------------- 74.3计数器计数-------------------------------------------------------284.4数码管显示子程------------------------------------------------------------28 4.5黄灯闪烁子程序--------------------------------------------------------284.6车流量算法子程序------------------------------------------------------284.7紧急车辆子程序------------------------------------------------------------28 第五章系统实现------------------------------------------------------------- 305.1仿真软件简介-------------------------------------------------------------285.1.1Proteus软件简介--------------------------------------------------------- 45.1.2Keil软件简介-----5.2仿真实现------------------------------------------------------5.3实物设计-----结束语---------------------------------------------------------------------------32 致谢---------------------------------------------------------------------------- 33 参考文献------------------------------------------------------------------------ 34 ABSTRACT------------------------------------------------------------------------------------------------------------- 34附录程序清单------------------------------------------------------------------35基于单片机的交通灯控制系统设计摘要:本文根据AT89C51单片机的特点及交通灯在实际控制中的特点,提出了一种用单片机自动控制交通灯以及时间显示的方法,同时给出了软硬件设计的方法。

基于51单片机的交通灯设计

基于51单片机的交通灯设计

基于51单片机的交通灯设计交通信号灯是指示人和交通工具在道路交通中行进方向或行为的一种交通设施。

在设计交通信号灯时,应考虑交通流量、车辆速度、交叉口结构等因素,以确保交通的顺畅和安全。

本文将基于51单片机设计一种交通信号灯系统,并详细介绍其原理和实现方法。

交通信号灯系统的设计目的是通过控制红、黄、绿三种不同颜色的灯,指示车辆和行人在交通路口安全行驶。

在单片机设计中,我们将使用三个LED灯分别代表红、黄、绿三种状态。

通过控制LED的亮灭,来实现交通信号灯的变换。

首先,我们需要选择适当的硬件设备进行交通信号灯的设计。

在51单片机设计中,可以选择STC89C51或者AT89C51等型号的单片机。

此外,还需要准备三个LED灯、电阻、电容、按键等器件。

接下来,我们将进行电路设计。

在设计电路时,首先将三个LED灯连接到单片机的三个IO口上,每个IO口通过一个电阻与正极连接,负极与GND连接。

此外,在单片机的一个IO口上连接一个按键,通过按下按键触发程序的执行。

在编写程序之前,首先需要确立交通信号灯的运行逻辑。

一般而言,交通信号灯的运行逻辑如下:1.全红状态:所有车辆和行人均停止,任何方向都不可行驶。

2.绿灯状态:一些方向的车辆和行人可以行驶,其他方向均不可行驶。

3.黄灯状态:信号灯将要变成红灯或绿灯,此时车辆和行人应注意刹车或等待。

接下来,我们将编写程序并烧录到单片机中。

在程序中,需要使用到定时器和中断来进行交通信号灯的控制。

具体步骤如下:1.在程序中定义三个LED灯所对应的IO口。

2.初始化定时器,并设置定时时间,用于控制信号灯的变化。

3.设置中断,用于按键的检测和处理。

4.在主循环中,不断检测按键状态,当按键按下时,切换信号灯的状态。

5.根据信号灯的状态,控制LED灯的亮灭。

在程序设计中,应充分考虑各种异常情况和执行顺序,以保证交通信号灯的正常运行。

此外,还可以增加一些辅助功能,如倒计时显示等,以提高交通信号灯的可视性和安全性。

基于单片机的交通灯

基于单片机的交通灯
交通灯状态控制程序:根据预设的时序,控制红、 绿、黄三种LED灯的状态切换
按键处理程序:检测按键开关的状态,实现手动控 制交通信号的切换
报警处理程序:在系统异常时,控制蜂鸣器和LED指 示灯发出报警
3系统实现ຫໍສະໝຸດ 3 系统实现代码实现
基于51单片机的交通灯控制系统的代码实现主要采用C语言。下面是一个简单的示例代码 ,用于实现基本的交通灯控制逻辑
基于51单片机的交通 灯‘
--
1 引言 2 系统设计 3 系统实现
1
引言
1 引言
2
系统设计
2 系统设计
硬件设计
基于51单片机的交通灯控制系统硬件部分主要由单片机、电源模块、LED灯模块、按键模 块和报警模块组成。具体设计如下
单片机:采用8051单片机,负责处理和控制系统的各个模块 电源模块:为整个系统提供稳定的工作电压,一般采用5V直流电源
3 系统实现
调试与测试
在代码实现后,需要对系统进行 调试和测试,以确保交通灯控制 逻辑和人机交互功能的正确性。 具体的调试和测试方法可以包括 :连接硬件进行实际操作、观察 LED灯的状态、按键测试和报警 测试等。通过这些测试,可以确 认系统的稳定性和可靠性,为实 际应用提供保障
--
20XX
感谢您的聆听
ADD YOUR TITLE ADD YOUR TITLE HERE.ADD YOUR TITLE.ADD YOUR TITLE. HERE.ADD YOUR TITLE.ADD YOUR TITLE
2 系统设计
LED灯模块:包括红、绿、黄 三种颜色的LED灯,用于模拟 交通信号
按键模块:包含按键开关, 用于手动控制交通信号的切 换
报警模块:包含蜂鸣器和LED 指示灯,用于在系统异常时 发出报警

基于51单片机的交通灯控制系统设计

基于51单片机的交通灯控制系统设计

一、摘要:随着科技的飞速发展,越来越多的控制功能强大的芯片出现在我们生活中,但8051系列单片机,因为其的廉价几成本,在我们生活中依然处于十分重要的地位。

在实时检测和自动控制的单片机应用系统中,单片机是作为一个核心部件来使用,但是仅单片机方面知识是不够的,还需要根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。

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

作为交通控制的重要组成部份单片机。

因此,本人选择制作交通灯作为课题加以设计并实现。

交通管制应当以人性化、智能化为目的,做出相应的改善。

以此为出发点,本系统采用的单片机控制的交通信号灯。

系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广阔的应用前景。

关键词:交通灯,51单片机,数码管二、实习目的和意义1.学习51单片机的最小系统及硬件接口设计与应用2.熟练掌握电路原理图绘制软件DPX的使用。

3.熟练单片机的程序设计与调试。

4. 自主设计出具有实际意义的能用于生活的电路系统。

5. 本次课程设计对以后的毕业设计甚至工作打下了动手自己设计的基础。

三、实习要求1. 完成以8051系列单片机为核心处理器的模拟十字路口交通灯控制的硬件设计(在altium designer下画出硬件原理图)。

布线,印制电路板,并焊接原件搭载硬件电路,做出实物。

2. 完成交通灯控制系统的软件编程。

3. 软硬件综合调试,模拟实现对交通灯控制系统的控制。

4. 撰写实验报告:报告中给出硬件方案、软件流程图、软件关键代码四、实习内容1.设计题目:基于51单片机交通十字路口信号灯设计2.实现功能:具有红、绿、黄三种颜色彩灯,并有一个数码管进行倒计时显示倒计时时间为三十秒。

还应具有按键控制特殊情况下十字路口不需要红绿灯的显示(车流量很少的地段深夜可以不设红绿灯)。

五、系统实现1.电路设计:51单片机介绍:本实验使用的51单片机为STC89C52STC89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM)。

基于51单片机的交通灯(红绿灯)设计论文报告

基于51单片机的交通灯(红绿灯)设计论文报告
3.设计原理:
利用“自动控制”控制交通灯的方法。将事先编制好的程序输入单片机,利用单片机的定时、查询、中断功能;能够根据十字路口两个方向上车辆动态状况,采用查询的方式,根据具体情况,自动给予时间通行,其中利用中断方式来处理特殊情况。这样既方便驾驶员、路人,同时还可以紧急处理一些紧急实况。同样具有红、黄、绿灯的显示功能,为驾驶员、路人“照明”。
电阻
470Ω
8
数码管电路
电阻
1K
7
数码管驱动、按键电路
数码管
GC-3461BS
1
显示电路
微动开关
3
按键电路
三级管PNP
8550
4
数码管驱动电路
表1-1
2)2位8段数码管工作原理:
2位8段数码管电路采用“共阴”连接,阴极公共端(COM)由晶体管推动。如图4-3所示:
段码和位码,段码即段选信号 SEG,它负责数码管显示的内容,图中 a~g、dp组成的数据(a 为最低位,dp 为最高位)就是段码。位码即位选信号 DIG,它决定哪个数码管工作,哪个数码管不工作。当需要某一位数码管显示数字时,只需要先选中这位数码管的位信号,再给显示数字的段码。
IE0 = 1;//启动外部中断0
PX0 = 1;
EX1=1;
IE1=1;
EA = 1; //开总中断
}
void int0(void) interrupt 0//外中断0
{
flag = 0;
led_data_temp = P0;
t0 = 20;
if(!int0_key)
{
delayms(10);
if(!int0_key)
4、交通灯输出控制模块
道口交通灯指示采用高亮度红、黄、绿发光二极管进行提示。

基于51单片机的交通灯设计

基于51单片机的交通灯设计

基于51单片机的交通灯设计交通信号灯是现代城市交通管理的重要组成部分,也是保障道路交通安全的关键设施之一、为了更好地了解交通信号灯的设计原理和实现方法,本文将以基于51单片机的交通灯设计为例,详细介绍相关知识。

首先,我们需要了解51单片机的基本知识。

51单片机是一种常见的8位单片机,广泛应用于各类嵌入式系统中。

其开发工具多样,编程语言灵活,易于上手。

交通信号灯通常由红、黄、绿三种颜色的灯组成。

在运行过程中,红灯、黄灯和绿灯依次亮起,来实现交通的有序流动。

这背后的原理是通过控制每个灯的亮灭状态和持续时间,来控制车辆和行人的行动。

1.硬件设计:首先,需要设计交通信号灯的电路,并将其连接到51单片机上。

电路中需要包括三个LED灯(红、黄、绿),以及相应的电阻和连接线路。

2.程序编写:使用51单片机开发环境,编写程序来控制交通信号灯的闪烁状态和时间。

程序中需要定义每个灯的亮灭状态和持续时间,并按照预定的顺序进行切换。

可能遇到的问题和解决方法:1.灯的亮灭状态和时间不符合预期:检查程序中对每个灯的控制语句,确保逻辑正确。

也可以通过使用调试器来单步执行代码,以查看每个步骤的执行情况。

2.电路连接错误:检查电路连接是否正确,确保每个灯的电源和地线正确连接,并没有短路或断路的情况。

3.程序逻辑错误:检查程序中的条件判断和循环语句,确保程序按照预期的顺序和时间来切换灯的状态。

在交通信号灯设计中,还可以考虑以下几个方面的优化:1.增加传感器:可以通过添加传感器模块,来根据实时的交通流量和行人情况,动态调整交通信号灯的切换时间。

这样可以更好地适应实际交通状况。

2.增加无线通信功能:可以通过添加无线通信模块,与其他信号灯或交通管理中心进行通信,实现更高级的交通控制和协调。

这样可以提高交通效率和安全性。

3.引入自学习算法:可以通过引入机器学习算法,对交通信号灯进行优化和调整。

根据交通流量、行人情况等实时数据,自动调整交通信号灯的切换策略,进一步提升交通效率。

基于51单片机交通信号灯课程设计

基于51单片机交通信号灯课程设计

《电子系统设计》课程设计报告题目:交通信号灯控制器姓名:院系:电力学院专业:学号:指导教师:完成时间:年月日目录一、任务与目得二、总体设计三、硬件设计:原理图(接线图)及简要说明四、程序框图与清单五、实验结果与体会目得与要求本次课程设计得目得就是设计一个交通信号灯控制器,使其拥有以下功能:1.在十字路口每个入口处设置一个红绿灯,并且有数码管显示通行时间.2.主干道通行得时候支路禁止通行,支路通行时主干道禁止通行。

3.主干道通行时间为45S,支路通行时间为25S,中间有5S黄灯过渡。

4.在支路设有传感器,当检测不到有支路有车时,主干道将一直通行.总体设计核心为AT89C51单片机,输出计时秒表采用单片机程序输出BCD码再由74LS47译码至共阳数码管上.红绿灯输出则使用74LS160计数器得前四位进行循环译码至红绿灯,并且使用单片机程序控制输出固定脉冲至计数器CLK端使计数器按红绿灯计时跳变输出。

检测支路就是否来汽车可由在马路内放置压力传感器,当有汽车停靠在白线内等待红灯时,传感器向单片机某端口输入低电平使其被检测到。

硬件设计红绿灯电路首先分析十字路口红绿灯总用会有多少种可能,如下表:00 1 00 00 101 1 0 0 0 1 010 0 0 1 1 0 011 0 10 1 0 0我们不难从表中瞧出,十字路口得红绿灯状态最多分为4中.所以我们可以取74LS160计数器得低2位进行编码。

然后将每一位对应相应得显示规则,电路原理图如下:当74LS160输出为00时,4条译码规则中中只有NAND4这一条输出为高电平,此时对应状态为主干道绿灯亮,支路红灯亮.当74LS160输出为01时,对应主干道黄灯亮,支路红灯亮。

当74LS160输出为10时,主干道红灯亮,支路绿灯亮.当74LS160输出为11时,主干道红灯亮,支路黄灯亮。

当74LS160输出跳变至100时,Q2端向74LS160返回复位信号,重归00状态。

基于51单片机的交通灯设计

基于51单片机的交通灯设计

摘要当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。

因此,一个好的交通灯控制系统,将给道路拥挤等方面给予技术革新。

本文主要介绍了一个基于80C51单片机的交通灯控制系统,详细描述了利用89C51开发交通灯控制系统的过程,重点对硬件设计、软件编程、调试分析以及各模块系统流程进行了详细分析,对各部分的电路也一一进行了介绍。

本系统由80C51单片机、键盘、交通灯演示组成,。

该系统可以方便的实现交通灯控制。

该系统结构简单,可靠性高,修改程序简单(方便加入或改变功能),有较好的应用前景。

关键词:交通控制,单片机,80C51,ABSTRACTThe ages is an automation ages nowadays and transportation light control's waiting a lot of equipments of professions all is closely related with calculator. Therefore, a good transportation light control system, will hustle for road, give technique innovation.This paper describes a 80C51 microcontroller-based traffic light control system, detailed description of the use 89C51 development process of the traffic light control system. Focus on a detailed analysis of the hardware design, software programming, analysis and debugging process of the modular system, on the part of the circuit are introduced one by one. The system is made up of 80C5l microcomputer, keyboard and traffic lights display. The system can easily achieve traffic light control The system is simple, high reliability, easy to modify the program (easy add or change functions),has good prospects.KEYWORDS: Traffic Control, Single Chip Microcomputer , 80C51目录摘要 (Ⅰ)ABSTRACT (Ⅱ)1 绪论 (1)1.1课题研究的背景以及意义 (1)1.2当前的研究现状 (1)1.3本文的主要工作和难点 (1)2 道路交通灯的总体系统的设计方案 (3)2.1 总体设计方案 (3)2.1.1系统机构总框架 (3)2.1.2交通管理的方案论证 (3)2.1.3 控制电路框图 (4)2.2电路的工作原理 (4)2.3 本章小结 (4)3 硬件设计 (7)3.1MCS-51单片机介绍 (7)3.1.1简介 (7)3.1.2 管脚说明 (10)3.1.3 时钟脉冲电路 (12)3.1.4复位电路 (12)3.1.5电源电路 (12)3.2硬件原理图 (13)3.3 本章小结 (13)4 软件设计 (15)4.1 主程序设计 (15)4.1.1 主程序流程图 (15)4.2 初始化程序 (16)4.3 延时程序 (18)4.4 源程序 (18)4.6 本章小结 (18)5 调试分析 (19)5.1 KEIL51软件简介 (19)5.1.1 系统概述 (19)5.1.2 Keil C51单片机软件开发系统的整体结构 (20)5.2 调试步骤 (21)5.2.1 逻辑的调试 (21)5.2.2 模拟电路板的调试 (22)5.3 调试中的问题及解决方案 (23)5.4 本章小结 (23)6 结论与展望 (25)6.1 结论 (25)6.2展望 (25)致谢 (27)参考文献 (29)附录 (31)外文翻译 (37)..........................................................................................................................................1绪论1.1 课题研究的背景及意义随着经济的发展,城市现代化程度不断提高,交通需求和交通量迅速增长,城市交通网络中交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应也日益突出,逐步成为经济和社会发展中的全球性共同问题。

基于51单片机的交通信号灯系统_毕业设计

基于51单片机的交通信号灯系统_毕业设计

毕业设计基于单片机的交通信号的灯控制系统一. 综合实训的主要内容 1.设计任务设计一单片机控制的交通信号灯系统,模拟城市十字路口交通信号灯功能。

2.基本功能要求2.1 交通信号控制直行车道红黄绿灯控制、左行车道绿灯控制、人行横道红绿灯控制。

2.2 通行时间显示数码管倒计时显示通行时间。

2.3 时间参数设置存储按键实现通行时间的设置,并存储到EEPROM (24C02)芯片中。

二. 硬件方案设计与论证 1. 显示模块设计1.1倒计时时间显示设计思想:由于该系统要求完成倒计时显示通行时间的功能,且考虑到实际的交通系统中车辆及行人通行时间不会超过一分钟,基于以上原因,我们考虑完全采用数码管显示,四个路口分别采用一个二位共阴极数码管进行显示。

(其实物图见附录1图5.3)图2.1 数码管原理图原理图分析:为了显示数字或字符,必须对数字或字符进行编码。

七段数码管GND abcde fg dp gf ed c ba(a)(a,b,c,d,e,f,g)加上一个小数点(dp),共计8段,构成一个字节,通过对这八段给予高低平使二极管导通或截止,从而显示不同的数字或字符。

系统中所使用的是2位共阴数码管(实物图见附录),其管脚从左上方起顺时针依次为1,a,b,e,d,2,g,f,dp,c。

1.2 状态灯显示设计思想:由于该系统要求完成状态灯显示的功能,我们把各个路口的红灯和黄灯设成直行和左拐两个通行方式所共有,也就是说,一个路口只需四个状态灯,一个直行通行的绿灯,一个左拐通行的绿灯,一个共有的红灯,一个共有的黄灯,人行横道采用红绿灯控制,综上所述,我们共使用16个LED绿灯,12个LED 红灯,4个LED黄灯来完成状态灯显示功能。

2.控制模块设计2.1 设计思想由于本系统结构简单,实现较容易,不需要大量的外围扩展,所以我们采用STC89C51单片机作为主控制器,STC89C51单片机具有体积小,功耗低,控制能力强,价格低、扩展灵活,使用方便等特点,其最小系统由振荡电路、复位电路构成。

课程设计基于51单片机的交通灯设计

课程设计基于51单片机的交通灯设计

课程设计---基于51单片机的交通灯设计基于51单片机的交通灯设计一、设计目的和要求本设计旨在利用51单片机实现交通灯的控制,要求实现红、绿、黄三种颜色的信号灯按照一定的顺序和时间间隔进行循环显示,以模拟实际交通信号灯的工作过程。

二、设计原理本设计采用51单片机作为控制器,通过编程实现交通灯的控制逻辑。

单片机通过控制IO口的电平状态来控制信号灯的亮灭,从而实现交通灯的控制。

具体实现原理如下:1.单片机通过定时器产生定时中断,每当中断发生时,程序会跳转到中断服务程序执行。

2.在中断服务程序中,通过改变IO口的电平状态来控制信号灯的亮灭。

例如,当需要红灯亮时,将控制红灯的IO口设置为高电平状态;当需要红灯灭时,将控制红灯的IO口设置为低电平状态。

3.通过设置定时器的定时时间,可以控制信号灯亮灭的时间间隔。

例如,可以设置定时器每隔一段时间产生一次中断,然后在中断服务程序中控制信号灯的状态切换。

4.通过编写程序,可以实现红、绿、黄三种颜色的信号灯按照一定的顺序和时间间隔进行循环显示。

例如,可以实现红灯亮一段时间,然后绿灯亮一段时间,接着黄灯亮一段时间,最后又回到红灯亮的状态,如此循环往复。

三、设计步骤1.硬件电路设计:根据设计原理,选择合适的单片机型号和外围电路元件,设计交通灯控制的硬件电路。

2.软件编程:使用C语言编写程序,实现交通灯的控制逻辑。

具体程序流程可以参考设计原理中的描述。

3.程序调试:将编写好的程序下载到单片机中,进行程序调试和测试。

可以通过观察信号灯的亮灭情况来判断程序是否正确执行。

4.优化和完善:根据测试结果,对程序进行优化和完善,以提高程序的稳定性和可靠性。

四、设计实现1.硬件电路设计:本设计采用STC89C52单片机作为控制器,通过P1口的P1.0、P1.1和P1.2三个引脚分别控制红灯、绿灯和黄灯的亮灭。

定时器采用定时器0,设置定时时间为50ms,每50ms产生一次中断。

2.软件编程:(1)定义变量:定义变量red、green和yellow分别表示红灯、绿灯和黄灯的状态(0表示灭,1表示亮)。

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

毕业设计基于单片机的交通信号的灯控制系统一.综合实训的主要容1.设计任务设计一单片机控制的交通信号灯系统,模拟城市十字路口交通信号灯功能。

2.基本功能要求2.1 交通信号控制直行车道红黄绿灯控制、左行车道绿灯控制、人行横道红绿灯控制。

2.2 通行时间显示数码管倒计时显示通行时间。

2.3 时间参数设置存储按键实现通行时间的设置,并存储到EEPROM(24C02)芯片中。

二.硬件方案设计与论证1. 显示模块设计1.1倒计时时间显示设计思想:由于该系统要求完成倒计时显示通行时间的功能,且考虑到实际的交通系统中车辆及行人通行时间不会超过一分钟,基于以上原因,我们考虑完全采用数码管显示,四个路口分别采用一个二位共阴极数码管进行显示。

(其实物图见附录1图5.3)a b c d e f g dpg f e d c b a图2.1 数码管原理图原理图分析:为了显示数字或字符,必须对数字或字符进行编码。

七段数码管(a,b,c,d,e,f,g)加上一个小数点(dp),共计8段,构成一个字节,通过对这八段给予高低平使二极管导通或截止,从而显示不同的数字或字符。

系统中所使用的是2位共阴数码管(实物图见附录),其管脚从左上方起顺时针依次为1,a,b,e,d,2,g,f,dp,c。

1.2 状态灯显示设计思想:由于该系统要求完成状态灯显示的功能,我们把各个路口的红灯和黄灯设成直行和左拐两个通行方式所共有,也就是说,一个路口只需四个状态灯,一个直行通行的绿灯,一个左拐通行的绿灯,一个共有的红灯,一个共有的黄灯,人行横道采用红绿灯控制,综上所述,我们共使用16个LED绿灯,12个LED红灯,4个LED黄灯来完成状态灯显示功能。

2.控制模块设计2.1 设计思想由于本系统结构简单,实现较容易,不需要大量的外围扩展,所以我们采用STC89C51单片机作为主控制器,STC89C51单片机具有体积小,功耗低,控制能力强,价格低、扩展灵活,使用方便等特点,其最小系统由振荡电路、复位电路构成。

2.2 最小系统原理图图2.2 单片机最小系统原理图原理图分析:51单片机最小系统由复位电路,振荡电路组成。

振荡电路使用11.0592MHz高精度晶振,振荡电容选择30pF瓷片电容;复位电路采用RC电路。

3.存储模块3.1 设计思想:系统掉电存储模块采用串行E2PROM,它是基于IIC总线的存储器件,遵循二线制协议,其具有接口方便,体积小,数据掉电不丢失等特点。

3.2 24C02芯片原理图管脚描述:A0A1A2引脚器件地址选择SDA引脚串行数据/地址SCL引脚串行时钟WP 写保护VCC电源 1.8~6VVSS 地4.系统理论分析4.1交通灯显示时序的理论分析依次循环共分4种状态:南北方向直行通行、南北方向左拐通行、东西方向直行通行,东西方向左拐通行。

南北方向直行:南北段直行通行(绿灯)、东西段禁止(红灯),,此时,南北段人行道通行(绿灯),东西段人行道禁止(红灯),同时南北段和东西段方向的数码管分别从20s和30s(加上南北段左拐时间)开始倒计时,至最后5s时南北段绿灯变成黄灯闪烁;此后南北段左拐(左拐绿灯亮)通行、东西段禁止(红灯)10s,南北段、东西段人行道都禁止(红灯),同时南北段和东西段方向的数码管都从10s开始倒计时,至最后5s时南北段左拐灯变成黄灯闪烁;再后东西段直行通行(绿灯)、南北段禁止(红灯),东西段人行道通行(绿灯),南北段人行道禁止(红灯),同时东西段和南北段方向的数码管分别从20s和30s开始倒计时,至最后5s时东西段绿灯变成黄灯闪烁;最后东西段左拐(左拐灯亮)通行、南北段禁止(红灯)10s,东西段、南北段人行道都禁止(红灯),同时东西段和南北段方向的数码管都从10s开始倒计时,至最后5s时东西段左拐灯变成黄灯闪烁,即完成一次循环。

4.2 状态切换系统中共设置了四种模式,分别为开始模式、延长通行时间模式、减少左拐时间模式、急停模式,这几种模式分别通过相应的按键进行切换。

开始模式:直行20s,左拐10s;延长通行时间模式:直行40s,左拐20s;减少左拐时间模式:直行40s,左拐10s急停模式:当有紧急事故发生时,所有指示灯全变成红灯,禁止通行,数码管显示00.4.3倒计时显示的具体实现利用定时器中断,设置TH0=TH1=(65536-50000)/256,即每0.05秒中断一次。

每到第20次中断即过了20*0.05秒=1秒时,使时间的计数值减1,便实现了倒计时的功能。

4.4状态灯显示的实现方法黄灯闪烁利用定时器中断。

每到第10次中断即过了10*0.05秒=0.5秒时,使黄灯标志位反置,即可让黄灯1秒闪烁一次。

4.5 状态切换的实现方法状态切换在定时器中实现,定时器每0.05秒中断一次,完全可以检测按键的发生。

考虑到实际的交通系统不可能立即切换状态,程序一个周期检测两次状态,若在南北左拐前按键修改状态,则南北左拐结束后切换状态,若在南北左拐后修改状态,则在东西左拐后切换状态。

三.软件编程1.程序流程图图3.1 主程序流程图图3.2 定时0中断流程图2.程序#include<reg52.h>#include"24C02.h"/*************端口定义*************/sbit EW_ShuMa2=P2^3; //EW方向低位数码管控制位sbit EW_ShuMa1=P2^2; //EW方向高位数码管控制位sbit SN_ShuMa2=P2^1; //SN方向低位数码管控制位sbit SN_ShuMa1=P2^0; //SN方向高位数码管控制位sbit SN_Yellow=P1^1; //SN黄灯sbit EW_Yellow=P1^5; //EW黄灯sbit EW_ManGreen=P2^7; //EW人行道绿灯sbit SN_ManGreen=P2^4; //SN人行道绿灯sbit EW_ManRed=P2^6; //EW人行道红灯sbit SN_ManRed=P2^5; //SN人行道红灯sbit EW_Red=P1^6; //EW直行道红灯sbit SN_Red=P1^2; //SN直行道红灯sbit shezhi1=P3^0; //模式设置键sbit shezhi2=P3^1; //模式设置键sbit stop1=P3^7; //紧急情况键bit Flag_SN_Yellow; //SN黄灯标志位bit Flag_EW_Yellow; //EW黄灯标志位char Time_EW; //东西方向倒计时单元char Time_SN; //南北方向倒计时单元uchar EW=30,SN=20,EWL=9,SNL=9; //程序初始化赋值,正常模式uchar EW1=30,SN1=20,EWL1=9,SNL1=9;uchar code table[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //0-9段选码uchar code State[8]={0xBE,0xBD,0xB7,0xBD,0xEB,0xDB,0x7B,0xDB};/*************函数声明***************/void Delay_ms(uint z);void ShuMa_Display();void timer0_init();void state1();void state2();void state3();void state4();/**************主函数************/void main(){timer0_init(); //定时器初始化EW1=read(10); //24c02读操作SN1=read(11);EWL1=read(12);SNL1=read(13);EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;//Int_init();while(1){state1();state2();state3();state4();}}/*************延时函数*************//*void Delay_ms(uint z){ uint x,y;for(x=120;x>0;x--)for(y=z;y>0;y--);}*//**************数码管显示函数*****************/ void ShuMa_Display(){uchar H,L;H=Time_EW/10;L=Time_EW%10;P0=table[L];EW_ShuMa2=0; //点亮EW_LED2Delay_ms(1);EW_ShuMa2=1; //熄灭EW_LED2P0=table[H];EW_ShuMa1=0; //点亮EW_LED1Delay_ms(1);EW_ShuMa1=1;H=Time_SN/10;L=Time_SN%10;P0=table[L];SN_ShuMa2=0; //点亮SN_LED2Delay_ms(1);SN_ShuMa2=1;P0=table[H];SN_ShuMa1=0; //点亮SN_LED1Delay_ms(1);SN_ShuMa1=1;}/***************模式函数****************/void state1(){/*********SN通行SW禁止*********/SN_ManRed=1;SN_ManGreen=0; //SN人行道通行EW_ManRed=0; //EW人行道禁止EW_ManGreen=1;Flag_SN_Yellow=0; //SN关黄灯显示信号Flag_EW_Yellow=0; //EW关黄灯显示信号Time_EW=EW;Time_SN=SN;while(Time_SN>=5){P1=State[0]; //SN绿灯,EW红灯ShuMa_Display();}P1=0xff;//关闭P1口所有灯while(Time_SN>=0){Flag_SN_Yellow=1; //SN开黄灯信号位EW_Red=0;//P1=P1 |0XB0; //保持EW红灯ShuMa_Display();}}void state2(){/************SN方向左拐状态**********/SN_ManRed=0; //SN人行道禁止SN_ManGreen=1;EW_ManRed=0; //EW人行道禁止EW_ManGreen=1;Flag_SN_Yellow=0; //SN关黄灯显示信号Flag_EW_Yellow=0; //EW关黄灯显示信号Time_SN=SNL;Time_EW=EWL;while(Time_SN>=5){P1=State[2]; //SN左拐绿灯亮,EW红灯ShuMa_Display();}P1=0xFF;while(Time_SN>=0){Flag_SN_Yellow=1; //SN开黄灯信号位 Flag_EW_Yellow=1;ShuMa_Display();}}void state3(){/***********赋值*********/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;/*******SN禁止,EW通行状态**********/ SN_ManRed=0; //SN人行道禁止SN_ManGreen=1;EW_ManRed=1;EW_ManGreen=0; //EW人行道通行Flag_SN_Yellow=0; //SN关黄灯显示信号Flag_EW_Yellow=0;//EW关黄灯显示信号Time_EW=SN;Time_SN=EW;while(Time_EW>=5){P1=State[4];//EW通行,SN红灯ShuMa_Display();}P1=0Xff;while(Time_EW>=0){Flag_EW_Yellow=1;//EW开黄灯信号位SN_Red=0;//P1=P1|0x0B; //保持SN红灯}}void state4(){/***********EW方向左拐状态**************/SN_ManRed=0; //SN人行道禁止SN_ManGreen=1;EW_ManRed=0; //EW人行道禁止EW_ManGreen=1;Flag_SN_Yellow=0; //SN关黄灯显示信号Flag_EW_Yellow=0;//EW关黄灯显示信号Time_EW=EWL;while(Time_EW>=5){P1=State[6]; //EW左拐绿灯亮,SN红灯ShuMa_Display();}P1=0Xff;while(Time_EW>=0){Flag_EW_Yellow=1; //EN开黄灯信号位Flag_SN_Yellow=1;ShuMa_Display();}/***********赋值*********/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;}/****************定时器0初始化函数***************/ void timer0_init(){TMOD=0x01; //定时器0工作方式1TH0=(65536-10000)/256; //装初值EA=1; //开总中断ET0=1;//开定时器0中断TR0=1;//启动定时器}/*******************定时器0服务中断函数***********/ void timer() interrupt 1{uchar t;TH0=(65536-50000)/256;TL0=(65536-50000)%256;t++;if(shezhi1==0){EW1=60;SN1=40;EWL1=19;SNL1=19;write(10,60); //24C02写操作write(11,40);write(12,19);write(13,19);}if(shezhi2==0){EW1=50;SN1=40;EWL1=9;SNL1=9;//write(10,60);//write(11,50);//write(12,9);//write(13,9);}if(stop1==0){P0=table[0];EW_ShuMa1=0;SN_ShuMa2=0;SN_ShuMa1=0;P1=0XBB;EW_ManGreen=1;SN_ManGreen=1;EW_ManRed=0;SN_ManRed=0;while(1);}if(t==10){if(Flag_SN_Yellow==1) //测试南北黄灯标志位{SN_Yellow=~SN_Yellow;}if(Flag_EW_Yellow==1) //测试东西黄灯标志位{EW_Yellow=~EW_Yellow;}}if(t==20){Time_EW--;Time_SN--;if(Flag_SN_Yellow==1) //测试南北黄灯标志位{SN_Yellow=~SN_Yellow;}if(Flag_EW_Yellow==1) //测试东西黄灯标志位{EW_Yellow=~EW_Yellow;}t=0;}}24c02的.h程序#define uchar unsigned char#define uint unsigned intsbit SCL=P3^5;sbit SDA=P3^6;/*************函数声明************/ void delay();void Delay_ms(uint z);void init(void);void start();void stop();void ack();void noack();void write_byte(uchar dat);uchar read_byte(void);void write(uchar add,uchar dat); uchar read(uchar add);void delay()//短延时,大约5us{; ;;;;;;}void Delay_ms(uint z){ uint x,y;for(y=z;y>0;y--)for(x=120;x>0;x--);}void init(void){SDA=1;SCL=1;}void start() //启动信号{SDA=1;delay();SCL=1;delay();//下降沿到来SDA=0;delay();}void stop() //停止信号SDA=0;delay();SCL=1;delay();SDA=1;//上升沿到来delay();}void ack() //应答信号{uchar i;SCL=1;delay();while((SDA==1)&&(i<250)) //等待应答,用与语句防止一直不应答 i++;SCL=0; //若不应答,也将时钟拉低delay();}void noack(){SDA=1;delay();SCL=1;delay();SCL=0;delay();}void write_byte(uchar dat)//写字节{uchar i;SCL=0;for(i=0;i<8;i++){if(dat&0x80){SDA=1;}{SDA=0;}dat=dat<<1;delay();SCL=1;delay();SCL=0; //为下一次写数据做准备delay();SDA=1; //释放总线delay();}}uchar read_byte(void) //读一个字节{uchar i,dat;SCL=0;delay();SDA=1;//释放一次总线delay();for(i=0;i<8;i++){SCL=1;delay();dat=dat<<1;if(SDA){dat++;}SCL=0;delay();}return dat;}void write(uchar add,uchar dat) //在一个地址写一个字节{init();write_byte(0xa0);//写器件地址ack();write_byte(add);//单片机芯片地址ack();write_byte(dat);ack();stop();Delay_ms(30);}uchar read(uchar add) //在一个地址读一个字节{uchar a;start();write_byte(0xa0);//写器件地址ack();write_byte(add);ack();start();write_byte(0xa1);//写器件地址ack();a=read_byte();noack();stop();return a;}四.总结通过本次实训,对已有知识有了更进一步的理解和认识,在实训过程中,虽然碰到了很多的问题,但通过查阅相关书籍、资料以及和周围同学交流后都得以一一解决。

相关文档
最新文档