单片机交通灯实验报告 单片机红绿灯实验报告 单片机交通灯实验报告

导读:爱华网网友为您分享以下“单片机交通灯实验报告”的资讯,希望对您有所帮助,感谢您对aIhUaU.com的支持!

交通灯控制系统设计

院 系: 电子电气工程学院

专 业: 电气自动化

班 级: P10电气四班

成 员: 王 帅、茹旭桐、夏 振、薛佳佳、 魏光琪、刘昌爽

指导老师:李 霞

交通灯控制系统设计实验

一.设计目的

1. 通过本次课程设计进一步熟悉和掌握单片机的结构及工作原理,巩固和加深“单片机原理与应用”课程的基本知识,掌握电子设计知识在实际中的简单应用。

2. 综合运用“单片机原理与应用”课程和先修课程的理论及生产实际知识去分析和解决电子设计问题,进行电子设计的训练。

3. 学习电子设计的一般方法,掌握AT89C52芯片以及简单电子设计过程和运行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是总体设计能力。

4. 通过计算和绘制原理图、布线图和流程图,学会运用标准、规范、手册、图册和查阅有关技术资料等,培养电子设计的基本技能。

5. 通过完成一个包括电路设计和程序开发的完整过程,了解开发单片机应用系统全过程,为今后从事的工作打基础。

二.设计要求

1.利用单片机的定时器定时,实现道路的红绿灯交替点亮和熄灭。

2.以AT89C52单片机为核心,设计一个十字路口交通灯控制系统。用单片机控制LED灯模拟交通信号灯显示。假定东西、南北方向方向通行(绿灯)时间为25秒,缓冲(黄灯)时间5秒,停止(红灯)时间35秒。

3.南北方向、东西方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。

三.实验原理

1.基本原理

主体电路:交通灯自动控制模块。这部分电路主要由80C51单片机的I/O端口、定时计数器、外部中断扩展等组成。

本设计先是从普通三色灯的指示开始进行设计,用P1口作为输出。程序的初始化是东西南北方向的红灯全亮。然后南北方向红灯亮,东西方向绿灯亮,60秒后东西方向黄灯闪亮5秒后南北方向绿灯亮,东西方向红灯亮。重复执行。倒计时用到定时器T0,用P2口作为LED的显示。二位一体的LED重复执行60秒的倒计时。作为突发事件的处理,本设计主要用到外部中断EX0。用一模拟开关作为中断信号。实际中可以接其它可以产生中断信号的信号源。

2.芯片AT89C52

AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL

公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

主要功能特性:

? 兼容MCS51指令系统

? 8k可反复擦写(>1000次)Flash ROM

? 32个双向I/O口

? 256x8bit内部RAM

? 3个16位可编程定时/计数器中断

? 时钟频率0-24MHz

? 2个串行中断

? 可编程UART串行通道

? 2个外部中断源

? 共6个中断源

? 2个读写中断口线

? 3级加密位

? 低功耗空闲和掉电模式

? 软件设置睡眠和唤醒功能

四. 实验流程图

(一)实现方法

(1)在设计中利用软件程序延时的方法来控制红(绿)的亮的时间。考虑延时时间较长所以先用T0产生终端然后通过计数的方法来实现延时。利用P1口的P1.1、P1.2、P1.3作为红绿灯控制端口。

(2)南北向的绿灯连在一块,东西向的红灯连在一块,他们一块与P1.1相连。同样南北向的红灯连在一块,东西向的绿灯连在一块,他们一块与P1. 2相连,四个黄灯连在一块与P1.3相连。

(二)流程图

五.硬件设计

1.单片机的结构

单片微机(Single-Chip Microcomputer)简称为单片机。它在一块芯片上集中成了中央处理单元CPU、随机存储器RAM、只读存储器ROM、定时/计数和多功能输入/输出I/O口,如并行口I/O、串行口I/O和转换A/D等。就其组成而言,一块单片机就是一台计算机。由于它具有体积小、功能强和价格便宜等优点,因而被广泛地应用于产品智能化和工业控制自动化上。

2.主要元器件选择

(1). 开关管的选择:BUTTON按钮

(2). LED发光二极管 LED-RED, LED-YELLOW ,LDE-GREEN

(3). 二位一体数码管 7SEG-MPX2-CAT-RED:共阳数码管(红色)

(4). PN4249:驱动三极管

(5). AT89S51系列单片机

3.设计显示部分

LED数码显示部分。LED数码显示部分由七段数码显示管组成。

发光二极管显示原理:

发光二极管是采用砷化镓、镓铝砷和磷化镓等材料制成,其内部结构为一个PN结,具

有单向导电性。发光二极管在制作时,使用的材料不同,那么就可以发出不同颜色的光。

当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值 ,重新进入循环。

六.软件设计

1.单片机中断系统基本结构

中断是一项重要的计算机技术,是处理正常工作与紧急状态的好办法,是实现人机实时交互的重要途径,在单片机应用系统中,中断技术得到了广泛应用。下面详细介绍单片机中断系统基本结构、与中断相关的特殊寄存器的设置及中断应用系统编程方法。

当CPU查询到系统有中断请求时,如果系统处于中断允许状态,CPU将停止当前的工作,响应中断请求,转向中断服务,中断服务完成后,返回原程序继续执行当前任务,这叫单片机中断。

8051系列单片机中断系统结构如图3.7所示。能让CPU产生中断的信号源叫中断源。8051单片机有NT0、INT1、T0、T1、TI、RI六个中断源,但只有EX0、ET0、EX1、ET1、ES

图:单片机中断系统基本结构

INT0、INT1:外部中断源,由P3.2和P3.2引脚输入。具有低电平和脉冲两种触发方式,在每个机器周期的S5P2采样引脚信号,如有效则由硬件将它的中断请求标志IE置1,请求中断。当CPU响应中断时,由硬件复位。

T0、T1:定时/计数器中断,当定时/计数器产生溢出时,置位中断请求标志TF请求中断处理。

RI、TI:串行中断,RI是接收,TI为发送。单片机串行口接收到一个字符后RI置1,

发送完一个字符TI置1。值得注意的是,RI、TI在响应中断后,必须由用指令将其复位。

中断响应:

CPU在执行程序的过程中,在每个机器周期的S5P2对中断标志位按中断优先级进行查询,一旦查询到有中断请求,CPU只要不在执行同级或高级的中断服务程序和当前指令(RETI指令或访问IE、IP的指令除外)执行完毕两种情况,则响应中断。如果当前正在执行的指令是RETI或访问IE、IP的指令,则当前指令执行完毕后,CPU才可响应中断。中断响应时间可以从中断信号被查询开始算起,中断响应时间在以下三种情况下,响应时间还会更长:

① CPU正在执行一个比要响应的中断源优先级相等或更高的中断源的中断服务程序,此时须等到中断服务程序执行完毕才可中断响应。

② 正在执行的当前指令不是在最后一个机器周期,只有指令执行完后才响应中断。 ③ 如果当前执行的是RETI或访问IE、IP的指令,则当前指令执行完毕后,CPU需再执行一条指令才可以中断响应,因此附加等待响应时间不会超过5个机器周期。

中断入口:

单片机响应中断后,将转向特定的入口进行中断服务,单片机的中断入口地址如表3.2所示。

表3.2 MCS-51单片机中断服务程序入口地址表

从表中可以看出,两相邻中断源的入口地址间隔为8个单元。这意味着如果要把中断源对应的中断服务程序从入口地址开始存放,则程序的长度不能超过8个字节,否则会影响到下一个中断源的入口地址的使用。而通常的情况下,中断服务程序的长度不止8个字节,因此,常见的处理方法是:在入口地址处存放一条无条件转移指令,通过这条转移指令转向对应的中断服务程序入口,中断服务程序以RETI为结束。

中断请求的撤销:

CPU响应中断请求,在中断返回(RETI)之前,该中断请求应被撤除,否则会引发另一次中断。

定时/计数器中断请求撤销:CPU在响应中断后,由硬件自动清除中断请求标志TF。 外部中断请求撤销:如果采用脉冲触发方式,CPU在响应中断后,由硬件自动清除中断请求标志IE;对于电平触发方式的外部中断请求,中断标志的撤销是自动的,由于造成中断请求的低电平继续存在,所以在响应中断后再次会产生中断请求,为此响应中断后要撤销外部信号。

2.每秒钟的设定

延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。

3.计数器初值计算

定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC 可得到如下计算通式: TC=M-C

七.实验程序

单片机交通灯实验报告 单片机红绿灯实验报告 单片机交通灯实验报告

#include <reg51.h>

#define uchar unsigned char #define uint unsigned int sbit R1=P2^0; //东西红灯 sbit Y1=P2^1; //东西黄灯 sbit G1=P2^2; //东西绿灯 sbit R2=P2^3; //南北红灯 sbit Y2=P2^4; //南北黄灯 sbit G2=P2^5; //南北绿灯 sbit Z1=P2^6; //南北人行道绿灯 sbit Z2=P2^7; //东西人行道绿灯 sbit K0=P3^0; //全部禁行开关 sbit K1=P3^2; //主干道通行开关 sbit K2=P3^3; //支道通行开关 sbit JG=P3^6; //全部禁行警报 uchar a=0,m,k,h; uchar code

dis[]={ 0Xc0, 0Xf9, 0Xa4, 0Xb0, 0X99,

0X92, 0X82, 0Xf8, 0X80, 0X90, 0Xff}; //断码

void delay(uchar x) //延时 {

uchar j;

while(x--)

for(j=0;j<120;j++);

}

xianshi() //显示部分 { while(1) {

while(1) { G1=1;R1=0;Y1=1;JG=0; G2=0;R2=1;Y2=1;Z2=0;Z1=1; k=35;h=30; while(1) //主干道通行35s { if(K0==0) break; //判断K0是否被按下,如果按下跳出本循环 P0=0x01; P1=dis[k/10]; delay(2); P0=0x02; P1=dis[k%10]; delay(2); P0=0x04; P1=dis[h/10]; delay(2); P0=0x08; P1=dis[h%10]; delay(2); if(k==0) break; if(h==0) {

h=5; G2=1; R2=1; Y2=0; }

} if(K0==0) break; //再判断一次K0,跳出本循环 G1=0;R1=1;Y1=1;JG=0; G2=1;R2=0;Y2=1;Z2=1;Z1=0; k=20;h=25; while(1) //支道通行25s {

P0=0x01; P1=dis[k/10]; delay(2); P0=0x02;

P1=dis[k%10]; delay(2); P0=0x04; P1=dis[h/10]; delay(2); P0=0x08;

P1=dis[h%10]; delay(2);

if(h==0) break; if(k==0) {

k=5; G1=1; R1=1; Y1=0; } }

if(K0==0) break; }

if(K0==0) {

while(1) {

G1=1;R1=0;Y1=1;JG=1;P0=0x00; G2=1;R2=0;Y2=1;Z2=1;Z1=1; if(K0!=0) break; } } }

}

void zhutong() interrupt 0 {

EX0=0; m=P2; if(K1==0) {

while(1)

//主干道通行,支道禁止通行

G1=1;R1=0;Y1=1;JG=0;P0=0x00; G2=0;R2=1;Y2=1;Z2=0;Z1=1; if(K1!=0)break; } }

P2=m; EX0=1;

}

void zhitong() interrupt 2 //支道通行,主干道禁止通行 { EX1=0;

m=P2; if(K2==0) {

while(1) { G1=0;R1=1;Y1=1;JG=0;P0=0x00; G2=1;R2=0;Y2=1;Z2=1;Z1=0; if(K2!=0)break; } } P2=m; EX1=1; }

void dss() interrupt 1 //1s的定时 { a=a+1; if(a==10) {

k--; h--; a=0; } TH0=0x3C; TL0=0xB0; }

void main() {

TMOD=0x01;

TH0=0x3C; TL0=0xB0; //6M晶振,100ms初值 ET0=1; TR0=1;

EA=1; EX1=1; EX0=1; IT0=0; IT1=0;

PX0=1;PX1=1; xianshi(); while(1); }

八.系统仿真

图 Protues仿真

九.参考文献

[1] 张迎新等.单片机初级教程[M].北京:北京航空航天大学出版社,2000。

[2] 王幸之等.AT89系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2004。 [3] 何立民.单片机高级教程[M].北京:北京航空航天大学出版社,2000。 [4] 李维偍,郭强. 液晶显示应用技术[M].北京:电子工业出版社,2000。

[5] 戴佳,戴卫恒.51单片机C语言应用程序设计实例精讲[M].北京:电子工业出版社,2006.4


百度搜索“爱华网”,专业资料,生活学习,尽在爱华网  

爱华网本文地址 » http://www.aihuau.com/a/350751/134792328445.html

更多阅读

AT89S51单片机16位摇摇棒制作过程 单片机at89c51交通灯

AT89S51系列摇摇棒是学生学习单片机和小制作的入门制作,现在给大家介绍一下原理和制作过程。电路说明:本电路采用16只LED作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象使得看到的是一幅完整画面,与LED点阵的显示

单片机C语言编程例子_Jan 单片机高效c语言编程

导航:前言. 2基础知识:单片机编程基础. 2第一节:单数码管按键显示. 4第二节:双数码管可调秒表. 6第三节:十字路口交通灯. 6第四节:数码管驱动. 7第五节:键盘驱动. 8第六节:低频频率计. 14第七节:电子表. 17第八节:串行口应用. 17

基于FPGA的自动交通灯控制系统设计 模拟交通灯控制系统

基于FPGA的交通灯控制系统华东交通大学电子信息工程2009-1陈磊一:设计目标l设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中

交通灯控制电路设计 交通灯的时间控制程序

第一章设计指标……………………………………....设计指标……………………………………………………………第二章 系统概述…………………………………… ..2.1设计思想…………………

声明:《单片机交通灯实验报告 单片机红绿灯实验报告 单片机交通灯实验报告》为网友餹菓菋灬分享!如侵犯到您的合法权益请联系我们删除