单片机课程设计 交通灯.docx

上传人:b****5 文档编号:5972109 上传时间:2023-01-02 格式:DOCX 页数:13 大小:160.83KB
下载 相关 举报
单片机课程设计 交通灯.docx_第1页
第1页 / 共13页
单片机课程设计 交通灯.docx_第2页
第2页 / 共13页
单片机课程设计 交通灯.docx_第3页
第3页 / 共13页
单片机课程设计 交通灯.docx_第4页
第4页 / 共13页
单片机课程设计 交通灯.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

单片机课程设计 交通灯.docx

《单片机课程设计 交通灯.docx》由会员分享,可在线阅读,更多相关《单片机课程设计 交通灯.docx(13页珍藏版)》请在冰豆网上搜索。

单片机课程设计 交通灯.docx

单片机课程设计交通灯

 

课程设计说明书

(2010/2011学年第一学期)

 

课程名称:

单片机原理及应用

题目:

交通灯系统

专业班级:

07应物一班

学生姓名:

王轲

学号:

070470108

指导教师:

崔继馨

设计周数:

两周

设计成绩:

2010年12月17日

一、课程设计目的:

(1)掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

(2)通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。

(3)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

(4)与模拟电子技术,数字电子技术等课程相结合,进一步熟悉和掌握单片机的结构及工作原理,为以后所学的后续课程打下良好的基础。

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

二.原始数据及主要任务:

按照单片机原理及应用课程设计大纲的要求,在熟练掌握89C52RC处理器开发基础上进行交通灯系统硬件电路的设计、仿真、焊接和测试;并能熟练运用KeilC开发环境完成软件程序设计,制作一套完整的交通灯系统。

三、技术要求:

本系统模拟真实的交通环境,实现交通控制,用数码管显示红绿灯时间,用发光二极管模拟红绿灯,同时设置按键使红绿灯时间可动态调整;另外,系统外扩接口,用于输入输出新技术带来的更加智能的交通信息,实现交通信息智能化控制。

具体要求如下:

(1)可以在数码管上显示红绿灯等待时间。

(2)每一秒钟,等待时间自动减1;时间归零后,红绿灯颜色自动切换。

(3)通过键盘可动态修改红绿灯时间。

(4)应用Proteus7进行硬件电路方案设计及仿真;最终完成硬件焊接和测试。

(5)利用KeilC开发环境完成软件设计,下载后调试运行。

四课程设计正文

 

交通灯系统

近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时也带动着传统控制的日新月异更新。

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

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

那么靠什么来实现这井然秩序呢?

靠的是交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

本系统采用MSC-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过单片机芯片的P1口设置红、绿灯燃亮时间的功能;显示时间直接通过单片机的P0、P2口输出,系统实用性强、操作简单、扩展性强。

软件方面

系统分析

本设计的主要任务为设计一个以AT89C51单片机为核心的最小应用系统,实现有时间显示的定时交通信号灯控制。

要求:

(1)A道放行:

绿灯放行40秒,同时B道红灯亮60秒。

(2)左转:

A道左转绿灯20秒,同时B道红灯继续亮20秒。

(3)B道放行:

B道绿灯亮40秒,同时A道红灯亮60秒。

(4)左转:

B道左转绿灯20秒,同时A道红灯继续亮20秒。

十字路口的两组红绿交通灯受MCS-51单片机I/O口的控制,试验时皆由发光二极管替代,紧急车请求通过的信号由人工控制,以中断方式输入单片机,即正常模式转入到正常、繁忙或特殊模式。

正常模式:

系统工作时,按照任务分析的状态循环进行,同时进行倒计时显示作为时间提示,使人们能够直观地把握时间。

繁忙模式:

当车辆较多,通过人工控制开关发出信号使交通灯处于繁忙模式,当交通信号灯处于繁忙模式下时,调整红绿灯循环时间为45秒,汽车快速通过。

特殊模式:

当车辆较少,通过人工控制开关发出信号使交通灯处于特殊模式,当交通信号灯处于特殊模式下时,调整红绿灯循环时间为75秒,汽车依次通行。

也可以在40‐99秒之间自定义红绿灯的循环时间。

系统设计

系统实施及程序

/*****************************************************

十字路口交通灯控制C程序

/*********************主程序开始**********************/

voidmain(void)

{

Busy_LED=0;

Special_LED=0;

IT0=1;//INT0负跳变触发

TMOD=0x01;//定时器工作于方式1

TH0=0x3c;//定时器赋初值

TL0=0x0b0;

EA=1;//CPU开中断总允许

ET0=1;//开定时中断

EX0=1;//开外部INTO中断

TR0=1;//启动定时

while

(1)

{/*******S0状态**********/

EW_ManGreen=0;//EW人行道禁止

SN_ManGreen=1;//SN人行道通行

Flag_EW_Yellow=0;//EW关黄灯显示信号

Time_EW=EW;

Time_SN=SN;

while(Time_SN>=5)

{P1=S[0];//SN通行,EW红灯

Display();}

SN_ManGreen=!

SN_ManGreen;//SN人行道禁止

/*******S1状态**********/

P1=0x00;

while(Time_SN>=0)

{Flag_SN_Yellow=1;//SN开黄灯信号位

P1=S[1];

Display();

}

/*******S2状态**********/

Flag_SN_Yellow=0;//SN关黄灯显示信号

Time_SN=SNL;

while(Time_SN>=5)

{P1=S[2];//SN左拐绿灯亮,EW红灯

Display();}

/*******S3状态**********/

P1=0x00;

while(Time_SN>=0)

{Flag_SN_Yellow=1;//SN开黄灯信号位

P1=S[3];

Display();}

 

/***********赋值**********/

EW=EW1;

SN=SN1;

EWL=EWL1;

SNL=SNL1;

 

/*******S4状态**********/

Flag_SN_Yellow=0;//SN关黄灯显示信号

Time_EW=SN;

Time_SN=EW;

EW_ManGreen=!

EW_ManGreen;//EW人行道通行

while(Time_EW>=5)

{P1=S[4];//EW通行,SN红灯

Display();}

EW_ManGreen=!

EW_ManGreen;//EW人行道通行

/*******S5状态**********/

P1=0X00;

while(Time_EW>=0)

{Flag_EW_Yellow=1;//EW开黄灯信号位

P1=S[5];

Display();}

/*******S6状态**********/

Flag_EW_Yellow=0;//EW关黄灯显示信号

Time_EW=EWL;

while(Time_EW>=5)

{P1=S[6];//EW左拐绿灯亮,SN红灯

Display();}

/*******S7状态**********/

P1=0X00;

while(Time_EW>=0)

{Flag_EW_Yellow=1;//EN开黄灯信号位

P1=S[7];

Display();}

Flag_EW_Yellow=0;//EW关黄灯显示信号

EW_ManGreen=!

EW_ManGreen;//EW人行道通行

/***********赋值**********/

EW=EW1;

SN=SN1;

EWL=EWL1;

SNL=SNL1;

}

}

硬件方面

系统方框图

控制部分

图2系统方框图

80C51简介

80C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:

中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

数据存储器(RAM):

8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

程序存储器(ROM):

8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

定时/计数器(ROM):

8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

并行输入输出(I/O)口:

80C51共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。

下图是MCS-51系列单片机的内部结构示意图。

图3MCS-51结构示意图

MCS-51的引脚说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

现在我们对这些引脚的功能加以说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

现在我们对这些引脚的功能加以说明:

如下图所示。

图4

Pin9:

RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。

初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。

RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。

然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。

8051的复位方式可以是自动复位,也可以是手动复位,见下图4。

此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。

图5

Pin30:

ALE/

当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。

而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。

更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。

如果单片机是EPROM,在编程其间,

将用于输入编程脉冲。

Pin29:

当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。

Pin31:

EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。

如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。

显然,对内部无程序存储器的8031,EA端必须接地。

 

晶体振荡部分

图6

电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了震荡器的功能。

由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。

显示部分

数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点)。

共阴极的LED显示管的发光二极管的阴极连在一块,当某个发光二极管的阴极为高电平的时候,发光二极管点亮,相应的段被显示出来,为了使LED显示器不同的符号和数字,就要把不同段的发光二极管点亮,这样就要为LED显示器提供代码,因为这些代码可以使LED相应的段发光,从而显示不同的字型,因而该代码称之为段码。

图7

因为系统要求南北和东西方向的信号灯时间不一样,所以就利用单片机的p0和p2口来做数码管的段码驱动,东西方向和南北方向的位线可以公共来使用,可以节约单片机的口线。

数码管使用共阴数码管,数码管的每段的电流是10毫安。

信号灯部分

图8

本设计利用单片机的p1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机的信号引脚直接来控制发光二极管。

单片机最小系统

图9

单片机最小系统以89C51为核心,外加时钟和复位电路,电路结构简单,抗干扰能力强,成本相对较低,非常符合本设计的所有要求。

89C51单片机系列是在MCS-51系列的基础上发展起来的,是当前8位单片机的典型代表,采用CHMOS工艺,即互补金属氧化物的HMOS工艺,,CHMOS是CMOS和HMOS的结合,具有HMOS高速度和高密度的特点,还具有CMOS低功耗的特点.

时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器。

本系统采用的为12MHz的晶振,一个机器周期为1us,C1,C2为30pF。

复位电路分为上电自动复位和按键手动复位,RST引脚是复位信号的输入端,复位信号是高电平有效。

上电自动复位通过电容C3和电阻R1来实现。

Proteus仿真图:

图10

系统调试:

硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。

硬件调试可分为静态调试与动态调试两步进行。

静态调试是在用户系统未工作时的一种硬件检测。

第一步:

目测。

检查外部的各种元件或者是电路是否有断点。

第二步用万用表测试。

先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。

第三步加电检测。

给板加电,检测所有插座或是器件的电源端是否符合要求的值

第四步是联机检查。

因为只有用单片机开发系统才能完成对用户系统的调试。

动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。

动态调试的一般方法是由近及远、由分到合。

由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。

当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。

由分到合的调试既告完成。

由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。

调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。

课程设计结论:

本系统就是充分利用了AT89C51芯片的I/O引角。

系统统采用MSC-51系列单片机为中心器件来设计交通灯控制器,实现了能根据实际车流量通过单片机芯片的P1口设置红、绿灯燃亮时间的功能;p0口和p2口外接数码管来显示各个信号灯的时间。

系统设计简便、实用性强、操作简单、程序设计简便。

系统不足之处不能控制车的右转、以及自动根据车流改变红绿灯时间等。

这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现。

短短两周的课程设计即将结束,我们把学习的理论知识运用于实践,使我从中受益匪浅,同时提高了对各方面的知识的认识。

大学几年,我们只学到了一些基本的理论知识,却没有真正实践去运用这些知识。

这次课程设计初步让我们体会到了理论与知识的有机结合。

但是真正去完成一个工程只是用自己从专业课本上学到得还远远不够。

通过这次课程设计中遇到的问题让我认识到自己知识的欠缺,以后的时间要好好的利用图书馆学习更多的知识来武装自己,为以后走上工作岗位打下坚实的基础。

在课程设计中,从总体设计,画原理图,硬件选择,再到编程,最后到调试,每一步我们都认真的对待,并从中学到了不少知识。

这使我们认识到开发过程不是简单的理论知识的拼凑和组合,而是将理论和实际有机结合的过程。

在这次课程设计中我们五人一组,我们进行了简单的分工,我负责电路设计和制图,然后把工作汇总,在遇到问题时一起商讨共同克服,形成了统一的观点,还有老师和同学们的耐心的指点,让我们顺利的完成了课程设计。

参考文献

[1]朱善君、孙新亚等.单片机接口技术与应用北京:

清华大学出版社.2005

[2]何立民.单片机应用技术大全.北京:

北京航空航天大学出版.1994

[3]谭浩强.C程序设计(第3版).北京:

清华大学出版社.2005

[4]张毅刚.单片机原理及应用.北京:

高等教育出版社.2003

 

课程设计

评语

课程设计

成绩

指导教师

(签字)

年月日

注:

此表必须在同一页面。

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1