单片机红绿灯电路设计
51单片机红绿灯设计报告
![51单片机红绿灯设计报告](https://img.taocdn.com/s3/m/d60b686ebdd126fff705cc1755270722192e5981.png)
51单片机红绿灯设计报告一、设计目的在交通管理中,红绿灯是一种重要的交通设施,能够有效地控制交通流量,保证道路交通的安全和顺畅。
本设计旨在使用51单片机实现一个红绿灯控制系统,通过控制红绿灯的状态来实现交通信号控制。
二、系统设计1.设计原理红绿灯控制系统分为两种模式:定时模式和交通流量感应模式。
在定时模式下,红绿灯会按照预设的时间间隔循环切换;在交通流量感应模式下,通过传感器检测车辆的流量来实现智能控制。
2.硬件设计本设计采用51单片机作为控制核心,配合电路部件包括红绿灯LED 灯、传感器等。
51单片机通过IO口控制LED灯的状态,同时接收传感器信号用于交通流量感应模式。
3.软件设计软件设计主要包含控制程序和交通流量感应算法。
控制程序通过定时器产生中断来实现定时模式下红绿灯的切换;交通流量感应算法通过读取传感器信号来判断是否有车辆通过,进而控制红绿灯的切换。
三、系统实现1.控制程序控制程序主要实现红绿灯状态的切换,包括定时模式和交通流量感应模式的切换逻辑。
在定时模式下,通过定时器中断来实现红绿灯的周期性切换;在交通流量感应模式下,通过传感器信号来判断车辆的流量,并根据流量大小来调整红绿灯的状态。
2.传感器接口传感器接口用于检测车辆的流量,根据传感器的信号来实现对红绿灯状态的控制。
在系统中,传感器可以是红外传感器、光电传感器等,通过检测车辆通过时的信号变化来判断车辆的流量。
3.LED灯控制LED灯控制通过51单片机的IO口来实现,控制红绿灯的状态。
根据控制程序的逻辑,51单片机可以实现红绿灯的亮灭控制,从而实现交通信号的控制。
四、系统优化1.系统稳定性优化为了提高系统的稳定性,在设计中可以加入硬件看门狗等机制来监测系统的运行状态,确保系统正常运行。
2.智能交通流量控制在交通流量感应模式下,可以通过进一步算法优化,实现更加智能的交通流量控制,提高红绿灯的切换效率。
3.软硬件结合优化软硬件结合优化可以进一步提高系统的性能和稳定性,减少系统的延迟,提高交通信号的控制效率。
单片机交通灯设计
![单片机交通灯设计](https://img.taocdn.com/s3/m/0dae65d5dc88d0d233d4b14e852458fb770b38d7.png)
单片机交通灯设计一、引言交通信号灯是管理交通流量的重要设备之一,通过交替显示红、黄、绿三种颜色的光信号来指挥车辆和行人的通行,以确保交通有序、安全畅通。
现代交通信号灯一般由LED灯和单片机控制模块组成,本文将介绍如何使用单片机设计一个交通信号灯。
二、设计原理本设计使用单片机AT89S52作为控制中心,通过对不同的IO口进行高低电平控制来控制交通信号灯的状态。
具体原理如下:1.模拟红、黄、绿三个交通信号灯的状态,通过输出高低电平控制LED灯的亮灭。
2.利用定时器功能,设置不同的时间段来控制每个交通信号灯的亮灭时间。
3.使用按键进行手动切换交通信号灯的状态,以模拟行人按下等待按钮的场景。
三、硬件设计硬件设计如下:1.单片机AT89S52:作为控制中心,通过编程对IO口进行控制。
2.LED灯:分别代表红、黄、绿三种状态的信号灯。
3.按键:用于手动切换交通信号灯的状态。
4.电源:提供工作电压。
四、软件设计软件设计采用C语言编程,利用Keil软件进行开发。
主要代码如下:```c#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit red = P1^0; //红灯sbit yellow = P1^1; //黄灯sbit green = P1^2; //绿灯sbit button = P3^2; //按键void delay(uint i) //延时函数uint j, k;for(j = i; j > 0; j--)for(k = 110; k > 0; k--);void init( //初始化函数red = 0;yellow = 0;green = 0;void maininit(; //初始化while (1)red = 1; //红灯亮delay(1000); //延时1秒yellow = 1; //黄灯亮delay(200); //延时0.2秒red = 0; //红灯灭yellow = 0; //黄灯灭green = 1; //绿灯亮delay(1000); //延时1秒green = 0; //绿灯灭//检测按键是否按下,按下则切换到人行道信号灯状态if(button == 0)yellow = 1; //黄灯亮delay(200); //延时0.2秒green = 0; //绿灯灭yellow = 0; //黄灯灭red = 1; //红灯亮delay(1000); //延时1秒}}```五、实验结果六、结论本设计通过单片机控制三种颜色的LED灯的亮灭,实现了交通信号灯的基本功能。
51单片机红绿灯设计报告
![51单片机红绿灯设计报告](https://img.taocdn.com/s3/m/cf1bfe6c7275a417866fb84ae45c3b3567ecdd3f.png)
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口的电平和延时函数,能够实现红绿灯的各种状态的切换。
该设计简单、实用、可靠,适用于城市交通管理中的红绿灯设备。
交通红绿灯单片机控制课程设计
![交通红绿灯单片机控制课程设计](https://img.taocdn.com/s3/m/c345b4ff10a6f524cdbf8592.png)
交通红绿灯课程设计要求:任务目标:某十字路口,南北向为主干道,东西向为支道,每个道口安装一组交通灯:红、黄、绿。
设计十字路口的交通灯控制器,使交通灯按状态1 状态2 状态3 状态4 的规律变化,循环不止。
状态1:东西向绿灯亮,南北向红灯亮,其他灯全灭,保持25 秒;状态2:东西向黄灯亮,南北向红灯亮,其他灯全灭,保持5 秒;状态3:东西向红灯亮,南北向绿灯亮,其他灯全灭,保持25秒;状态4:东西向红灯亮,南北向黄灯亮,其他灯全灭,保持5 秒。
原理图:调试效果图:C语言运行程序:#include<reg52.h>sbit gre1=P2^0; sbit yel1=P2^1; sbit red1=P2^2; sbit gre3=P3^0; sbit yel3=P3^1; sbit red3=P3^2; sbit bi1=P3^6; sbit bi2=P3^7;void dx();void yan(int cs); void display2(); void display3(); void display31(); void display32(); void display33(); void display34(); void display35();int a,b=0;unsigned char table1[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x f8,0x80,0x90} ;void main(){P1=0X00;P0=0X00;EA=1;EX1=1;// IT0=0;while(1){dx();}}void dx(){red1=0; gre3=0; display3(); gre3=1; yel3=0; display31(); yel3=1; display32(); yel3=0; display33(); yel3=1; display34(); yel3=0; display35(); red1=1; yel3=1; gre1=0; red3=0;display2();gre1=1;yel1=0;display31();yel1=1;display32();yel1=0;display33();yel1=1;display34();yel1=0;display35();yel1=1;red3=1;}void display2(){int i;for(i=0;i<50;i++){bi1=0;bi2=1;P1=table1[0];P0=table1[5];yan(10);bi2=0;bi1=1;P1=table1[2];P0=table1[2];yan(10);}for(i=0;i<50;i++){bi1=0;P1=table1[9];P0=table1[4];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[2];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[8];P0=table1[3];yan(10);bi2=0;P1=table1[1];P0=table1[2];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[7];P0=table1[2];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[2];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[6];P0=table1[1];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[2];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[5];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[2];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[4];P0=table1[9];yan(10);bi2=0;bi1=1;P1=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[3];P0=table1[8];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi2=1;P1=table1[2];P0=table1[7];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[1];P0=table1[6];yan(10);bi1=1;P1=table1[1];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[0];P0=table1[5];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[9];P0=table1[4];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P0=table1[3];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[7];P0=table1[2];yan(10);bi2=0;bi1=1;P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[6];P0=table1[1];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[1];yan(10);}for(i=0;i<50;i++){bi1=0;bi2=1;P1=table1[5];P0=table1[0];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[4];P0=table1[9];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[0];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[3];P0=table1[8];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[0];}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[2];P0=table1[7];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[0];yan(10);}for(i=0;i<50;i++) {bi1=0;P1=table1[1];P0=table1[6];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[0];yan(10);}}void display3(){int i;for(i=0;i<50;i++){bi1=0;P1=table1[5];P0=table1[0];yan(10);// bi1=1;bi2=0;bi1=1;P1=table1[2];P0=table1[2];yan(10);}for(i=0;i<50;i++){bi1=0;bi2=1;P1=table1[4];P0=table1[9];yan(10);bi1=1;P1=table1[2];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[3];P0=table1[8];yan(10);bi2=0;bi1=1;P1=table1[2];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[2];P0=table1[7];yan(10);bi2=0;bi1=1;P1=table1[2];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P0=table1[6];yan(10);bi2=0;bi1=1;P1=table1[2];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[0];P0=table1[5];yan(10);bi2=0;bi1=1;P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[9];P0=table1[4];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[1];yan(10);}for(i=0;i<50;i++){bi1=0;bi2=1;P1=table1[8];P0=table1[3];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[7];P0=table1[2];bi2=0;bi1=1;P1=table1[1];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[6];P0=table1[1];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[1];}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[5];P0=table1[0];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[1];yan(10);}for(i=0;i<50;i++) {bi1=0;P1=table1[4];P0=table1[9];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[0];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[3];P0=table1[8];yan(10);bi2=0;P1=table1[1];P0=table1[0];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[2];P0=table1[7];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[0];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[1];P0=table1[6];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[0];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[0];yan(10);bi2=0;bi1=1;P1=table1[1];P0=table1[0];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[9];P0=table1[4];yan(10);bi2=0;bi1=1;P1=table1[0];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[8];P0=table1[3];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[0];yan(10);}for(i=0;i<50;i++) {bi2=1;P1=table1[7];P0=table1[2];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[0];yan(10);}for(i=0;i<50;i++) {bi1=0;bi2=1;P1=table1[6];P0=table1[1];yan(10);bi1=1;P1=table1[0];P0=table1[0];yan(10);}}void display31(){int i;for(i=0;i<50;i++){bi1=0;bi2=1;P1=table1[5];P0=table1[5];yan(10);bi1=1;P1=table1[0];P0=table1[0];yan(10);}}void display32(){int i;for(i=0;i<50;i++){bi1=0;bi2=1;P1=table1[4];P0=table1[4];yan(10);bi2=0;P1=table1[0];P0=table1[0];yan(10);}}void display33(){int i;for(i=0;i<50;i++){bi1=0;bi2=1;P1=table1[3];P0=table1[3];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[0];yan(10);}}void display34(){int i;for(i=0;i<50;i++){bi1=0;bi2=1;P1=table1[2];P0=table1[2];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[0];yan(10);}}void display35(){int i;for(i=0;i<50;i++){bi1=0;bi2=1;P1=table1[1];P0=table1[1];yan(10);bi2=0;bi1=1;P1=table1[0];P0=table1[0];yan(10);}}void int1() interrupt 2 {P1=0Xff;P0=0Xff;gre1=1;yel1=1;red1=1;gre3=1;yel3=1;red3=1;while(1){}}void yan(int cs){int i,j;for(i=0;i<cs;i++){for(j=0;j<125;j++){};}}。
基于单片机交通红绿灯控制系统设计
![基于单片机交通红绿灯控制系统设计](https://img.taocdn.com/s3/m/b080aed6a5e9856a571260b4.png)
鉴于单片机交通红绿灯控制系统设计单片机作为电子产品的开发平台已应用到众多领域。
用单片机控制交通红绿灯有很高的性价比。
本设计要求:1)熟习 MCS-51 单片机的构造及编程方法。
2)认识继电器的工作原理。
3)设计并实现交通红绿灯控制系统。
用8255 作为输出口,接继电器,控制 12 个信号灯的燃灭,模拟交通等管理。
4)控制算法自定并可设置。
目录一、前言二、单片机概括三、 80C51 引脚说明四、 8255A 芯片简介五、系统硬件设计5.1、原理说明5.2、元件选择5.3、电路原理图六、系统软件设计6.1、程序流程图6.2、程序清单七、仿真结果八、心得领会九、参照文件一、前言2005 年最新统计数据表示,在中国每 5 分钟就有一人丧身车轮,每一分钟都会有一人因为交通事故儿伤残。
每年因交通事故所造成的的经济损失达数百亿元。
为了减少交通事故,此刻交通红绿灯已经安装在各个交通路口上,已经成为劝导交通车辆最常有和最有效的手段。
但这一技术在 19 世纪就已出现了。
1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868 年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯构成,红色表示“停止” ,绿色表示“注意” 。
1869 年 1 月2 日,煤气灯爆炸,使警察受伤,遂被撤消。
电气启动的红绿灯出此刻美国,这类红绿灯由红绿黄三色圆形的投光器构成, 1914 年始安装于纽约市 5 号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行” 。
1918 年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器何在地下,车辆一靠近红灯便变成绿灯;另一种是用扩音器来启动红绿灯,司机会红灯时按一下嗽叭,就使红灯变成绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能觉察到有人要过马路。
单片机红绿灯设计总结
![单片机红绿灯设计总结](https://img.taocdn.com/s3/m/514a379cd0f34693daef5ef7ba0d4a7302766c8b.png)
单片机红绿灯设计总结
单片机红绿灯设计是基于单片机控制的红绿灯电路设计。
该设计主要包括单片机选型、外设连接、程序设计等几个方面。
一、单片机选型
单片机选型是非常重要的一步,需要根据具体应用需求选择适合的单片机型号。
可以考虑单片机的处理能力、存储容量、接口数量等方面。
推荐使用性价比好、易于学习和应用的常用型号,如STC等。
二、外设连接
外设连接是指单片机和红绿灯等其他器件的连接。
需要注意接口电平匹配、外设供电等问题,以保证外设正常工作。
建议使用插拔式电路板和公母排针连接,方便后期维护和更换。
三、程序设计
程序设计是单片机红绿灯设计的核心部分,需要编写合适的程序实现红绿灯的控制。
具体实现可以采用定时器中断、输入输出口控制等方式,实现红绿灯的交替闪烁、定时等功能。
四、总结
单片机红绿灯设计是一项经典的单片机实验,可以帮助学生快速掌握单片机应用基础和电路设计能力。
通过此实验,可以提高学生的学习兴趣和动手能力,培养其创新思维和团队协作能力。
单片机课程设计—十字路口交通灯
![单片机课程设计—十字路口交通灯](https://img.taocdn.com/s3/m/2f9d8cde08a1284ac8504366.png)
十字路口交通灯控制一、设计任务及题目要求利用JD51开发板上彩色LED灯做出符合普通十字路口通行逻辑的交通灯,1.东西绿-南北红、东西红-南北绿;2.LED绿-红切换时,黄灯亮并延时3秒;3.数码管前两位显示东西向量倒计时,后两位显示南北向量倒计时。
二、工作原理及设计思路在JD51电路板上有红、绿、黄三种颜色LED灯,自定义选取两组彩灯对其进行逻辑控制。
工作时,先南北绿灯16S、东西红灯19S,然后,南北绿灯转黄灯3S;接着,东西绿灯15S,南北红灯18S,东西绿灯转黄灯3S。
在LED亮的同时两个方向的数码管显示倒计时,东西向一组数码管,南北向一组数码管。
三、硬件电路设计及描述使用JD51电路板上P1^7口的红色LED,P1^6口的黄色LED,P1^5口的绿色LED表示东西向指示灯,P1^4口的红色LED,P1^3口的黄色LED,P1^2口的绿色LED表示南北向指示灯,四位数码管的前两位显示东西向量倒计时,后两位显示南北向量倒计时。
四、软件设计流程及描述五、程序和注释C语言程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned int//定义位变量sbit RED_A=P1^7; //东西向指示灯sbit YELLOW_A=P1^6;sbit GREEN_A=P1^5;sbit RED_B=P1^4; //南北向指示灯sbit YELLOW_B=P1^3;sbit GREEN_B=P1^2;sbit en=P2^5; //573片选使能uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳0-9不带小数点数表uchar code table_d[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //共阳0-9带小数点数表uchar time[4]={0,0,0,0};//数码管显示00.00初值uchar timec[4]={1,6,1,9};//南北绿初值 16.19uchar timeb[4]={1,5,1,8};//东西绿初值15.18 红灯比绿灯长三秒uchar cp=0;//计数初值int n=0;//C语言延时程序void DelayMS(uint x){ uchar i;while(x--)for(i=0;i<120;i++);//数码管动态扫描程序void display(uchar *p){int i,j=0xFE;//第一位选通for(i=0;i<4;i++){P2=j;P0=*p;DelayMS(3);j=(j<<1)|0x01;//第二位选通if(j==0xEF);p++;}}//中断初始化函数void timer0_initialize(void){ EA=0;//关闭中断TR0=0;//停止计数TMOD=0x01;//T0工作在方式一TL0=0x00;//装入低八位初值TH0=0xEE;//装入低八位初值,定时器溢出产生中断5msPT0=1;//T0中断优先级调制最高ET0=1;//开启T0中断EA=1;//开启总中断TR0=1;//开始计数}//中断服务函数void timer0_isr(void) interrupt 1{ int k;//控制亮灯时间k++;if ((k>=200)&&(k<200*(16+1)))//1秒到16秒,东西绿16秒,南北红16秒{ RED_A=1;YELLOW_A=1;GREEN_A=0;RED_B=0;YELLOW_B=1;GREEN_B=1;}if ((k>=200*(16+1))&&(k<200*(16+4+1)))//16秒到19秒,东西黄3秒,南北红3秒{ RED_A=1;YELLOW_A=0;GREEN_A=1;RED_B=0;YELLOW_B=1;GREEN_B=1;}if ((k>=200*(16+4+1))&&(k<200*(16+4+1+15))) //接下来15秒,东西红15秒,南北绿15秒{ RED_A=0;YELLOW_A=1;GREEN_A=1;RED_B=1;YELLOW_B=1;GREEN_B=0;}if ((k>=200*(16+4+1+15)))//接下来3秒,东西红3秒,南北黄3秒{ RED_A=0;YELLOW_A=1;GREEN_A=1;RED_B=1;YELLOW_B=0;GREEN_B=1;if ((k==200*(16+4+1+18))){ k=0;}}TR0=0;cp++;//数码管逻辑判断if(cp==200){cp=0;if( (time[0]!=0)&&(time[2]!=0)&&(time[1]==0)&&(time[3]==0) ) //非0位-1,为0位变9{time[1]=9;time[3]=9;time[0]--;time[2]--;}else if((time[0]!=0)&&(time[2]!=0)&&(time[1]==0)&&(time[3]!=0)){time[1]=9;time[3]--;time[0]--;}else if((time[0]!=0)&&(time[2]!=0)&&(time[1]!=0)&&(time[3]==0)) {time[1]--;time[3]=9;time[2]--;}else if((time[1]!=0)&&(time[3]!=0)){time[1]--;time[3]--;}else if((time[3]!=0)&&(time[0]==0)&&(time[1]==0)&&(time[2]==0))//熄灭的灯为3. 0变成3{time[0]=0;time[1]=3;time[1]--;time[3]--;}else if((time[3]!=0)&&(time[0]!=0)&&(time[1]==0)&&(time[2]==0)){time[0]--;time[1]=9;time[2]=0;time[3]--;}else if((time[3]!=0)&&(time[0]!=0)&&(time[1]==0)&&(time[2]==0)){time[0]--;time[1]=9;time[2]=0;time[3]--;}else if((time[3]==0)&&(time[0]==0)&&(time[1]!=0)&&(time[2]!=0)){time[0]=0;time[1]--;time[2]--;time[3]=9;}else if((time[3]==0)&&(time[0]==0)&&(time[1]!=0)&&(time[2]==0)) {time[1]--;time[3]=3;time[3]--;}//东西绿与南北绿的转换else if((time[3]==0)&&(time[0]==0)&&(time[1]==0)&&(time[2]==0)) {if(n==0){ time[0]=timec[0];time[1]=timec[1];time[2]=timec[2];time[3]=timec[3];n++;}else if(n==1){time[0]=timeb[0];time[1]=timeb[1];time[2]=timeb[2];time[3]=timeb[3];n=0;}}else{while(1);}}timer0_initialize();}//主函数void main (void){uchar i,dpldata[4];timer0_initialize();en=1;while(1){ for(i=0;i<4;i++) //数码管第二位用带小数点的数表,隔开东西与南北的倒计时{ if(i==1){dpldata[i]=table_d[time[i]];}else{dpldata[i]=table[time[i]];}}display(dpldata);}}汇编语言程序:ORG 0000HJMP MAIN//中断入口地址ORG 000BHMOV TL0,#0B0H//装入初值MOV TH0,#3CHDJNZ R2,EXIT_T0//用寄存器R2装溢出的次数MOV R2,#20 //溢出20次为1秒DEC R3//东西方向计数寄存器DEC R4 //南北方向计数寄存器EXIT_T0:RETIMAIN:MOV TMOD,#01H//T0工作在方式一MOV TH0,#3CH//装入初值MOV TL0,#0B0HMOV R2,#20//设置R2初值为20SETB TR0 //开始计数SETB ET0 //开启T0中断SETB EA//开启总中断MOV SP,#60H//堆栈指针的地址N_B:MOV P1,#0CFH//设置P1口的值MOV R3,#16 //南北绿16SMOV R4,#19 //东西红19SNB_W1:CJNE R3,#0,NB_DISP//判断南北方向绿灯倒计时是否结束,不为0跳到数码管显示SJMP N_B_YNB_DISP:CALL DISPLAYSJMP NB_W1N_B_Y:CPL P1.5//熄灭南北绿灯NB_W2:MOV R3,#0CJNE R4,#0,NB_DISP2//判断东西红灯是否结束JMP D_XNB_DISP2:CPL P1.6CALL DISPLAYSJMP NB_W2D_X:MOV P1,#07BHMOV R3,#18 //东西红18sMOV R4,#15 //南北绿15SDX_W1:CJNE R4,#0,DX_DISPSJMP D_X_YDX_DISP:CALL DISPLAYSJMP DX_W1D_X_Y:CPL P1.2DX_W2:MOV R4,#0CJNE R3,#0,DX_DISP2JMP N_BDX_DISP2:CPL P1.3CALL DISPLAYSJMP DX_W2DISPLAY:MOV DPTR,#TAB1 //数表中的值送入DPTR MOV A,R3MOV B,#10DIV AB//倒计时/10MOVC A,@A+DPTR//数表送到A中MOV P0,A//A送到P0SETB p2^0//实现位选SETB p2^2MOV P2,#0FEHMOV P2,#0FFHMOV A,BMOVC A,@A+DPTRMOV P0,ASETB p2^0SETB p2^2MOV P2,#0FDHMOV P2,#0FFHMOV A,R4MOV B,#10DIV ABMOVC A,@A+DPTRMOV P0,ASETB p2^0SETB p2^2MOV P2,#0FBHMOV P2,#0FFHMOV A,BMOVC A,@A+DPTRMOV P0,ASETB p2^0SETB p2^2MOV P2,#0F7HMOV P2,#0FFHSETB p2^0SETB p2^2RETTAB1://数码管数表DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,80H,90HEND六、实验结果七、实验心得“纸上得来终觉浅,绝知此事要躬行。
利用51单片机实现交通红绿灯讲解
![利用51单片机实现交通红绿灯讲解](https://img.taocdn.com/s3/m/9d731d24fc4ffe473368ab51.png)
END
谢谢大家!
MOV A,#0B6H
MOVX @DPTR,A ;从A口输出数据0B6H,来控制相应二极管发光
INC DPTR
MOV A,#0DH
MOVX @DPTR,A ;从B口输出数据0DH,来控制相应二极管发光
北
西
南
东
黄绿红 110
黄绿红 110
黄绿红 黄绿红 110 11 0
B口低4位(ODH)
;允许定时器1中断
SEYB TR1
;打开定时器1
SJMP $
SER: MOV TH1,#3CH
MOV TL1,#0B0H ;定时器重装初值
DJNZ R1,NO ;循环定时(20H)次
MOV R1,20H
DJNZ R2,NO ;循环定时(21H)次
MOV R2,21H
RET
NO: RETI
MOV 20H,#0AH
MOV 21H,#01H
LCALL DELY
;延时0.5s
MOV DPTR,#0FF7CH
MOV A,#0BEH
MOVX @DPTR,A
INC DPTR
MOV A,#0FH
MOVX @DPTR,A
;东西红灯亮
MOV 20H,#0AH
MOV 21H,#01H
LCALL DELY
MOVX @DPTR,A
;南北红灯亮
MOV 20H,#0AH
MOV 21H,01H
LCALL DELY
;延时0.5s
DJNZ R7,JOD1
;闪烁次数未到继续
红绿灯单片机课程设计实验报告
![红绿灯单片机课程设计实验报告](https://img.taocdn.com/s3/m/9c0efd18302b3169a45177232f60ddccdb38e671.png)
红绿灯单片机课程设计实验报告引言红绿灯是交通工具行驶安全的重要标志之一,它在城市交通中起着至关重要的作用。
为了深入理解红绿灯的工作原理以及掌握单片机的编程技术,本实验设计了一个红绿灯控制系统,通过单片机来实现红绿灯的自动控制。
设计目的本实验的设计目的是通过使用单片机和相关的电路设计,实现一个能够自动控制红绿灯的系统,并能够按照交通规则进行正常的红绿灯切换。
实验内容本实验的主要内容如下:1.设计一个可以自动控制红绿灯的单片机电路。
2.编写单片机程序,实现红绿灯状态的切换。
3.进行实验验证,观察红绿灯的工作状态。
实验原理红绿灯的控制原理是通过利用单片机的IO口输出控制信号,来控制相应的LED灯的亮灭。
通过控制LED灯的亮灭顺序和时间,就可以实现红绿灯的自动控制。
本实验设计的红绿灯控制系统采用了一个三色LED灯和一个单片机。
单片机通过IO口输出不同的电平信号控制LED的亮灭,并根据一定的时间间隔进行切换。
设计步骤步骤一:搭建电路首先,需要准备一个三色LED灯和一个单片机。
将LED的三个引脚分别连接到单片机的三个IO口上。
在连接过程中,需要注意引脚的方向和连接的正确性。
步骤二:编写程序在编写程序之前,需要明确红绿灯的状态切换规则。
通常情况下,红灯亮的时间应该比绿灯亮的时间长,黄灯亮的时间则要比红灯和绿灯的时间都短。
根据这个规则,可以设计一个合适的时间间隔来控制红绿灯的切换。
接下来,使用合适的编程语言(如C语言)编写程序,通过控制单片机的IO 口输出信号来实现红绿灯的切换。
程序的核心逻辑是根据一定的时间间隔,依次将红、黄、绿三个LED灯控制引脚的电平信号进行切换。
步骤三:实验验证在编写程序后,将单片机烧录到实验板上,并连接好电路。
接通电源后,观察LED灯的状态切换情况,验证红绿灯的自动控制是否正常工作。
通过观察LED灯的亮灭情况和时间间隔,可以判断红绿灯控制系统是否按照预期工作。
实验结果经过实验验证,我们发现红绿灯控制系统能够按照一定的时间间隔进行红绿灯的切换。
单片机课程设计指导-红绿灯控制
![单片机课程设计指导-红绿灯控制](https://img.taocdn.com/s3/m/3ef4b70eb207e87101f69e3143323968001cf471.png)
单片机在红绿灯控制系统中的应用
控制红绿灯的切换:单片机通过编程控制红绿灯的切换,实现红绿灯的定时切换。 检测交通流量:单片机通过传感器检测交通流量,根据流量大小调整红绿灯的切换时间。 故障检测与报警:单片机实时检测红绿灯系统的运行状态,发现故障时及时报警。 联网控制:单片机可以与交通管理系统联网,实现远程控制和监控。
设计过程中遇到的问题和解决方案
设计成果展示,包括实物展示和演示效果
设计报告撰写,包括设计思路、设计过程、设计成果和总 结
团队合作精神,包括分工合作、沟通协调和团队协作
THANK YOU
汇报人:
单片机概述
单片机是一种集成 电路芯片,将微处 理器、存储器、输 入/输出接口等集 成在一起
单片机具有体积小、 功耗低、可靠性高、 编程灵活等特点
单片机广泛应用于 工业控制、家电、 汽车电子等领域
单片机编程主要使 用C语言或汇编语 言,通过编程实现 各种功能
单片机工作原理
单片机是一种集成 电路芯片,将微处 理器、存储器、输 入/输出接口等集 成在一起
自信表达:保持自信,清晰表达设计思路 和成果
回答问题:认真听取评委提问,准确回答
展示成果:展示课程设计成果,如实物、 视频等
总结反思:总结课程设计过程中的收获和 反思,提出改进建议
礼貌待人:尊重评委,保持礼貌,感谢评 委的指导
课程设计成绩评定标准
设计思路清晰,逻辑严密,推理精确
设计内容完整,包括硬件设计和软件设计
红绿灯控制系统的未来发展前景
智能化:通过AI技 术实现红绿灯的自 动调节,提高交通 效率
节能化:采用太阳 能等可再生能源, 降低能源消耗
联网化:实现红绿 灯与交通管理系统 的联网,提高交通 管理效率
单片机课程设计指导红绿灯控制
![单片机课程设计指导红绿灯控制](https://img.taocdn.com/s3/m/79b224271fb91a37f111f18583d049649a660e6a.png)
控制器:单片 机或微控制器
输入设备:传 感器,如红外 传感器、超声
波传感器等
输出设备: LED灯,用于 显示红绿灯状
态
电源:提供系 统所需的电源
电压
通信接口:用 于与上位机或 其他设备进行
通信
保护电路:如 过流保护、过 压保护等,确 保系统安全运
行
软件架构:模块化设计,易于维护和扩展 功能模块:包括交通信号灯控制、交通流量检测、交通信息发布等 通信协议:采用TCP/IP协议进行通信,保证数据传输的稳定性和可靠性 用户界面:提供友好的用户界面,方便用户进行操作和设置
特点:单片机具有体积 小、功耗低、可靠性高、 编程灵活等特点,广泛 应用于各种电子设备中。
应用领域:单片机广 泛应用于工业控制、 智能家居、汽车电子、 医疗电子等领域。
发展趋势:随着科技 的发展单片机的发展历程: 从早期的4位单片 机到现代的32位单 片机
智能交通系统:利用单片机实现交通信号控制、车辆定位、交 通信息管理等功能
添加项标题
发展趋势:随着物联网、大数据等技术的发展,单片机在智能 交通系统中的应用将更加广泛和深入
添加项标题
应用前景:单片机在智能交通系统中的应用可以提高交通效率、 减少交通事故、降低交通污染,具有广阔的应用前景
添加项标题
作用:单片机广泛应用于各种电子设备中,如家电、汽车、工业控制等领域,可以实现各种复杂的控制功能。
特点:单片机具有体积小、功耗低、可靠性高、编程灵活等特点,可以方便地实现各种控制功能。
应用:在红绿灯控制中,单片机可以实时检测交通流量,根据交通状况自动调整红绿灯的切换时间,提高交通效 率和安全性。
单片机分类:根据功能、 性能、应用领域等不同, 可以分为8位、16位、 32位等不同类型。
红绿灯单片机设计报告
![红绿灯单片机设计报告](https://img.taocdn.com/s3/m/07b7c9ba4793daef5ef7ba0d4a7302768e996f37.png)
红绿灯单片机设计报告1.引言红绿灯是道路交通管理中非常重要的一个部分,在城市交通中起到了引导车辆和行人安全过马路的作用。
本报告将描述我们设计并实现的基于单片机的红绿灯控制系统。
2.设计目标我们的设计目标是通过单片机控制红绿灯的亮灭,以实现道路交通的规范和安全。
具体来说,我们希望达到以下几点目标:1. 实现灯光状态的自动切换,模拟真实红绿灯的工作原理;2. 设计可调节的时间参数,以便根据交通流量的不同调整红绿灯的切换时间;3. 添加手动控制功能,以便交警在需要时手动控制红绿灯。
3.设计思路我们采用了基于单片机的设计方案,通过控制单片机的输入输出口使得灯光的状态切换符合规定的时间间隔。
具体的设计思路如下:1. 硬件设计:使用单片机作为控制中心,与红绿灯的LED灯和传感器进行连接。
利用传感器检测车辆和行人的情况,通过单片机控制灯光的亮灭。
2. 软件设计:使用C语言编程,通过单片机的输入输出口与红绿灯的LED灯进行控制。
设置计时器和中断来实现灯光状态的自动切换,同时通过检测传感器状态实现手动控制功能。
4.实施与测试4.1 硬件实施我们采用了Arduino Uno单片机作为控制中心,连接了红绿灯的LED 灯和传感器。
通过面包板和杜邦线进行连接。
将红绿灯的LED灯连接到单片机的输出口,传感器连接到单片机的输入口。
4.2 软件实施我们使用Arduino开发环境进行程序编写和烧录。
设计了以下几个关键模块的程序:1. 初始化模块:设置输入输出口和计时器的初始化参数;2. 灯光控制模块:根据设定的时间参数控制红绿灯的亮灭;3. 传感器检测模块:检测输入口传感器的状态,根据情况进行手动控制或自动切换;4. 主循环模块:通过轮询的方式检测传感器状态和计时器中断,根据情况调用相应的模块。
4.3 测试与效果我们进行了一系列的测试,包括自动切换时间的调节、传感器检测功能的测试和手动控制功能的测试。
经过测试,我们的系统能够根据设定的时间参数自动切换红绿灯的状态,并能够根据传感器检测到的情况进行手动控制。
单片机十字路口红绿灯课程设计
![单片机十字路口红绿灯课程设计](https://img.taocdn.com/s3/m/a09e4c5efbd6195f312b3169a45177232f60e4fb.png)
单片机十字路口红绿灯课程设计单片机十字路口红绿灯课程设计引言:红绿灯是交通管理的重要组成部分,合理的红绿灯设置能够有效地控制交通流量,提高道路交通的安全性和流畅性。
本文将设计一个基于单片机的十字路口红绿灯控制系统。
一、设计思路1. 硬件设计:本次设计中需要使用的硬件主要有:单片机、交通信号灯LED灯、按钮等。
其中,单片机作为主控制器,通过控制LED灯的亮灭来控制红绿灯的切换;按钮用于模拟车辆驶过触发红绿灯变换的情况。
2. 软件设计:软件设计主要包括两个方面:红绿灯状态控制和红绿灯切换算法。
红绿灯状态控制:通过编程控制LED灯的亮灭,分别代表红、黄、绿灯的状态。
按照交通规则,红灯亮时其他方向为绿灯,绿灯亮时其他方向为红灯,黄灯为过渡信号。
红绿灯切换算法:本设计采用时间片轮转的算法来实现红绿灯的切换。
设定每个方向的绿灯亮的时间为一定的时长,超过时长后按照顺时针方向切换到下一个方向亮绿灯。
二、实验流程1. 初始化:设置单片机引脚和中断,初始化红、黄、绿灯的LED灯。
2. 设置定时器:通过定时器控制红绿灯的切换。
使用定时器中断来触发红绿灯状态的变化。
3. 设置按键中断:通过按键中断模拟车辆行驶的情况,触发红绿灯的变化。
4. 程序循环执行:在主程序中循环执行红绿灯的状态控制和按键的检测。
根据当前的状态控制红绿灯的亮灭,并周期性地切换红绿灯的状态。
三、实验结果经过实验验证,本设计能够正常地控制红绿灯的切换。
车辆行驶到红绿灯路口时,按下按钮即可模拟车辆通过,触发相应方向红绿灯的切换。
四、设计总结本次课程设计基于单片机实现了十字路口红绿灯的控制系统,通过对红绿灯状态的控制和红绿灯切换算法的设计,实现了交通信号的准确控制。
该设计具有实验性和教育性,能够提高学生对单片机和交通信号控制的实际操作能力和理论理解能力。
同时,本设计可以进一步拓展,加入更多的功能和指标,以适应不同的交通场景和要求,提高交通管理的效率和智能化水平。
基于单片机的红绿灯设计毕业设计
![基于单片机的红绿灯设计毕业设计](https://img.taocdn.com/s3/m/72378c56f7ec4afe05a1df0b.png)
西安航空职业技术学院毕业设计(论文)任务书题目:基于单片机的红绿灯设计任务与要求:交通信号灯能够控制东西、南北两个方向的交通,红绿黄灯用对应颜色的发光二极管代替; 用四个2位数码管分别显示东、南、西、北方向的通行时间,东西或南北通行时间为30秒,红绿灯切换中间黄灯闪烁5秒时间:2013年9月1日至2013年11月1日共8周所属系部:自动化工程系学生姓名:学号: 11专业:生产过程自动化指导单位或教研室:计算机控制教研室指导教师:职称:助教毕业设计(论文)进度计划表摘要在日常生活中,交通灯作为管理交通、调协车辆的一个便捷的手段,起着很大的作用。
各种交通工具、行人都要根据交通灯的变化来决定是否前行,通行的时间的规定协调了它们的步伐,极大的减少了由于交通混乱引起的各种事故的发生。
因此,一个完善的交通系统中,交通灯是必不可少的设备,一个完善的交通灯程序会更有效的管理当前道路中出现的实际情况,使车辆、行人的行进变得更顺畅、更和谐。
随着我国国民经济的快速发展,我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后,交通拥挤和堵塞现象时常出现。
如何利用当今计算机和自动控制技术,有效地疏导交通,提高城镇交通路口的通行能力,减少交通事故是很值得研究的一个课题。
目前,国内的交通灯一般设在十字路口,在醒目位置用红、绿、黄三颜色的指示灯加上一个倒计时的显示器来控制行车。
关键字:交通灯;单片机;MSC-51;计时AbstractIn daily life , traffic lights as traffic management , co-ordination of the vehicle a convenient means , plays a big role . Various modes of transport , pedestrians should be based on the traffic lights change to decide whether to move forward, the passage of time coordinating their pace required , greatly reducing the traffic chaos caused by various accidents. Therefore, a comprehensive transportation system, traffic lights are essential equipment , a complete traffic lights would be more effective in the management of the current road situation occurs , the vehicle , a pedestrian road becomes smoother and more harmonious .With China's rapid economic development, China's rapid development of motor vehicles , while the urban road construction due to historical and other reasons is lagging behind, traffic congestion and jams often occur . How to take advantage of today's computers and automatic control technology, effective flow of traffic, improve urban traffic junction capacity and reduce traffic accidents is a topic worthy of study . At present , the domestic traffic lights generally located at the crossroads, prominently with red , green and yellow three color LED display with a countdown to control traffic.Key words:traffic light;SCM;MSC-51;timing目录1绪论 (1)1.1单片机的发展 (1)1.2单片机的定义 (2)1.3单片机的特点 (2)1.4单片机的应用领域 (3)2任务分析与设计思路 (5)2.1任务分析 (5)2.1.1本次设计要求 (5)2.2设计思路 (6)3总体设计 (7)3.1单片机内部资源分布图 (7)3.2单片机交通控制系统的基本构成及原理 (8)3.3软件结构框图 (8)3.4软硬件分工 (9)4详细设计 (10)4.1设计电路 (10)4.2交通灯电路 (10)4.2.1数码管的工作原理 (12)4.2.2 I/O口扩展 (13)4.2.3单片机的RP1 (13)4.2.4 单片机硬件结构 (14)4.3软件框图 (16)4.3.1主程序流程图 (16)4.3.2显示子程序流程图 (17)附录 (19)结束语 (19)谢辞 (26)参考文献 (27)1绪论在城市能很明显的感受到交通的日益拥堵,各种各样的问题都会出现在马路上,像行人穿马路,车辆的行进,都少不了交通灯的指挥,可以说如果没有了交、通灯,交通将会瘫痪。
单片机红绿灯电路设计
![单片机红绿灯电路设计](https://img.taocdn.com/s3/m/d1ead2e619e8b8f67c1cb97f.png)
四川现代职业学院《单片机原理及应用》课程设计红绿灯实训报告题目:红绿灯项目设计报告系别:电子信息技术系专业:电子信息工程技术组员:贺淼、纪鹏、邵文稳指导老师:***2014年7月12日摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
本系统采用STC89C52点单片机以及数码管为中心器件来设计交通灯控制器,实现了南北方向为主要干道,要求南北方向每次通行时间为30秒,东西方向每次通行时间为25秒。
启动开关后,南北方向红灯亮25秒钟,而东西方向绿灯先亮20秒钟,然后闪烁3秒钟,转为黄灯亮2秒钟。
接着,东西方向红灯亮30秒钟,而南北方向绿灯先亮25秒,然后闪烁3秒钟,转为黄灯亮2秒钟,如此周而复始。
软件上采用C语言编程,主要编写了主程序,中断程序延时程序等。
经过整机调试,实现了对十字路口交通灯的模拟。
目录(一)硬件部分--------------------------- 31.1 STC89C52芯片简介-----------------------31.2 主要功能特性---------------------------41.3 STC89C52芯片封装与引脚功能-------------51.4 基于STC89C52交通灯控制系统的硬件电路分析及设计-------------------------------------------10 (二)软件部分----------------------------142.1 交通灯的软件设计流程图-----------------142.2 控制器的软件设计-----------------------15 (三)电路原理图与PCB图的绘制-------------163.1 电路原理图的绘制(见附录二)----------163.2 PCB图的绘制(见附录三)---------------163.3 印刷电路板的注意事项------------------16 (四)调试及仿真---------------------------------------194.1 调试----------------------------------194.2 仿真结果------------------------------20 (五)实验总结及心得体会---------------------------215.1 实验总结-----------------------------------------------215.2 实验总结-----------------------------------------------22附录程序清单---------------------------22(一)硬件部分1.1 STC89C52芯片简介STC89C52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及STC89C52引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的STC89C52可为许多嵌入式控制应用系统提供高性价比的解决方案。
单片机交通信号灯设计
![单片机交通信号灯设计](https://img.taocdn.com/s3/m/fde03199e43a580216fc700abb68a98270feac47.png)
单⽚机交通信号灯设计交通信号灯设计姓名:冯佳义班级:⾃09A-2学号:0910*******⽇期:2012-7-11⼀:系统的组成这个交通信号灯系统是由AT89S51、8255、74LS240芯⽚、数码管、74HC245芯⽚以及LED信号灯组成的。
该系统在运作过程中⾸先将编译好的程序转换成为电信号传⼊AT89S51单⽚机中,然后传输到8255,经过74LS240芯⽚的数据处理,将得到的结果传⼊到数码管中,由数码管来显⽰60s倒计时。
再由AT89S51的数据传⼊到74HC245芯⽚,并由其运⾏数据并传⼊LED信号灯中,实现交通灯的变换。
AT89S51的作⽤是:连接计算机和试验箱,使得在计算机上编的的程序能够顺利的下载到试验箱上,使得实验能够顺利的实现。
8255的作⽤:将AT89S51单⽚机的数据传⼊到下⼀个器件74LS240的作⽤是:提⾼三态输出存储地址驱动器,时钟驱动器和总线定向接收器和发射器的性能可和集成度,可以按照需求将原码,反码输出。
数码管的作⽤:数码管的作⽤就是显⽰单⽚机所输出的倒计时的秒数。
74HC245的作⽤是:信号功率放⼤,并且将其信号处理。
LED信号灯作⽤:显⽰单⽚机信号红绿灯的变化⼆:系统组成结构⽅框图:三:硬件电路原理图:四:程序设计流程图,源程序代码:#include#define uint unsigned int#define uchar unsigned charvoid ds_50ms(void);void delay(uchar);void ptime(uchar time);void Js_Scan();sbit L1=P1^0; //黄sbit L2=P1^1; //绿sbit L3=P1^2; //红sbit L4=P1^3; //黄sbit L7=P1^6;sbit L8=P1^7;uint m=60;uchar num=0,ms=0,mg=0;bit flag;int code TABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void main() {L7=1;L8=1;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;P1=0x00;while(1){if(flag==0&&m>5){L2=0;//green on L7=0;//red onL1=1;L3=1;L5=1;L6=1;L4=1;L8=1;}if(flag==1&&m>5) {L3=0;L6=0;L1=1;L8=1;}Js_Scan();}}void Js_Scan(){uchar i;ms=m%10;mg=m/10;for(i=0;i<5;i++){P2=0xfe;P0=TABLE[ms];delay(1); P2=0xfd;P0=TABLE[mg];delay(1); } }void ds_50ms() interrupt 1{TH0=(65535-50000)/256;TL0=(65535-50000)%256;num++;ptime(num);}void ptime(uchar time){if(time==20){num=0;m--;if(m<5 && m>0) {L4=~L4; //yellowL8=~L8; //yellow}if(m==0){m=60;flag=~flag;}}}void delay(uchar k) {uchar x;while(k--)for(x=0;x<110;x++);}五:系统仿真的⽅法与步骤:1:⾸先新建⼯程,选择AT89S51,然后保存。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四川现代职业学院《单片机原理及应用》课程设计红绿灯实训报告题目:红绿灯项目设计报告系别:电子信息技术系专业:电子信息工程技术组员:贺淼、纪鹏、邵文稳指导老师:***2014年7月12日摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
本系统采用STC89C52点单片机以及数码管为中心器件来设计交通灯控制器,实现了南北方向为主要干道,要求南北方向每次通行时间为30秒,东西方向每次通行时间为25秒。
启动开关后,南北方向红灯亮25秒钟,而东西方向绿灯先亮20秒钟,然后闪烁3秒钟,转为黄灯亮2秒钟。
接着,东西方向红灯亮30秒钟,而南北方向绿灯先亮25秒,然后闪烁3秒钟,转为黄灯亮2秒钟,如此周而复始。
软件上采用C语言编程,主要编写了主程序,中断程序延时程序等。
经过整机调试,实现了对十字路口交通灯的模拟。
目录(一)硬件部分--------------------------- 31.1 STC89C52芯片简介-----------------------31.2 主要功能特性---------------------------41.3 STC89C52芯片封装与引脚功能-------------51.4 基于STC89C52交通灯控制系统的硬件电路分析及设计-------------------------------------------10 (二)软件部分----------------------------142.1 交通灯的软件设计流程图-----------------142.2 控制器的软件设计-----------------------15 (三)电路原理图与PCB图的绘制-------------163.1 电路原理图的绘制(见附录二)----------163.2 PCB图的绘制(见附录三)---------------163.3 印刷电路板的注意事项------------------16 (四)调试及仿真---------------------------------------194.1 调试----------------------------------194.2 仿真结果------------------------------20 (五)实验总结及心得体会---------------------------215.1 实验总结-----------------------------------------------215.2 实验总结-----------------------------------------------22附录程序清单---------------------------22(一)硬件部分1.1 STC89C52芯片简介STC89C52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及STC89C52引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的STC89C52可为许多嵌入式控制应用系统提供高性价比的解决方案。
STC89C52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外, STC89C52设计和配置了振荡频率可为0Hz 并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
1.2主要功能特性:· 兼容MCS-51指令系统· 8k可反复擦写(>1000次)ISP Flash ROM· 32个双向I/O口· 4.5-5.5V工作电压· 3个16位可编程定时/计数器· 时钟频率0-33MHz · 全双工UART串行中断口线· 256x8bit内部RAM· 2个外部中断源· 低功耗空闲和省电模式· 中断唤醒省电模式· 3级加密位· 看门狗(WDT)电路· 软件设置空闲和省电功能· 灵活的ISP字节和分页编程· 双数据寄存器指针表1-1-11.3 STC89C52芯片封装与引脚功能STC89C52芯片的尾缀第一个字母共4种,分别是A,J,P,Q,表示的是封装类型,A是TQFP封装(四方密脚扁平塑封封装),J是PLCC封装(塑封J形脚),P是PDIP也就是双列直插封装,Q是QPFP封装(四方扁平塑封封装)。
第二个字母共3种,分别是C,I,A,表示的是允许的环境温度,C为商业级,工作温度0至+70摄氏度;I为工业级,工作温度-40至+85度;A为汽车工业级,工作温度-40至+105度。
这两个字母前的数字表示最高主频,如12为12M,16为16M,20为20M,24为24M。
STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业STC89C52产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能: 8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8位微控制器 8K 字节在系统可编程 Flash STC89C52 1.3.1 P0 口介绍P0 口:P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下, P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
1.3.2 P1 口介绍P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。
对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用)P1.6 MISO(在系统编程用)P1.7 SCK(在系统编程用)1.3.3 P2 口介绍P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。
对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。
在这种应用中,P2 口使用很强的内部上拉发送1。
在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
1.3.4 P3 口介绍P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。
对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚的第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
1.3.5 控制信号介绍RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。