单片机课程设计交通灯报告_第1页
单片机课程设计交通灯报告_第2页
单片机课程设计交通灯报告_第3页
单片机课程设计交通灯报告_第4页
单片机课程设计交通灯报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机课程设计实验报告 课题: 交通灯 班级: 成员: 指导老师: 单片机课程设计实验报告 :近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用msc-51系列单片机at89c51和可编程并行i/o接口芯片8255a为中心器件来设计交通灯控制器,实现设置红、绿灯燃亮

2、时间的功能;红绿灯循环点亮,倒计时黄灯警示(交通灯信号通过8255的pc口输出,显示时间直接通过pb口输出至双位数码管);并用复位按键表示出现特殊情况时四个方向禁止通行,用set,inc和dec按键来实现红绿灯及黄灯显示时间的控制。同时还加了lcd液晶显示功能。1、 单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和i/o接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经

3、过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的cpu功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。2、 芯片简介2.1 msc-51芯片简介mcs-51单片机内部结构: 89c51是mcs-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 89c51单片机包含中央处理器、程序存储器(rom)、数据存储器(ram)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(cpu)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,c

4、pu负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(ram)89c51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的ram只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。1图程序存储器(rom):89c51共有4096个8位掩膜rom,用于存放用户程序,原始数据或表格。定时/计数器(rom):89c51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(i/o)口:89c51

5、共有4组8位i/o口(p0、 p1、p2或p3),用于对外部数据的传输。全双工串行口:89c51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:89c51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:89c51内置最高频率达12mhz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(harvard)结构,另一种是采用通用计算机广泛使用的

6、程序存储器与数据存储器合二为一的结构,即普林斯顿(princeton)结构。intel的mcs-51系列单片机采用的是哈佛结构的形式,而后续产品16位的mcs-96系列单片机则采用普林斯顿结构。下图是mcs-51系列单片机的内部结构示意图2。 图2mcs-51的引脚说明:mcs-51系列单片机中的8031、8051及8751均采用40pin封装的双列直接dip结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个i/o口,中断口线与p3口线复用。现在我们对这些引脚的功能加以说明:mcs-51的引脚说明:mcs-51系列单片机中的8031、805

7、1及8751均采用40pin封装的双列直接dip结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个i/o口,中断口线与p3口线复用。现在我们对这些引脚的功能加以说明:如图3 图3pin9:reset/vpd复位信号复用脚,当89c51通电,时钟电路开始工作,在reset引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器pc指向0000h,p0-p3输出口全部为高电平,堆栈指针写入07h,其它专用寄存器被清“0”。reset由高电平下降为低电平后,系统即从0000h地址开始执行程序。然而,初始复位不改变ram(包括工作

8、寄存器r0-r7)的状态,89c51的初始态。89c51的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,reset/vpd还是一复用脚,vcc掉电其间,此脚可接上备用电源,以保证单片机内部ram的数据不丢失。图4pin30:ale/当访问外部程序器时,ale(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ale端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ale会跳过一个脉冲。如果单片机是eprom,在编程其间,将用于输入编程脉冲。pin29:当访问外部程序存储器时,此脚输

9、出负脉冲选通信号,pc的16位地址数据将出现在p0和p2口上,外部程序存储器则把指令数据放到p0口上,由cpu读入并执行。pin31:ea/vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kb的程序存储器,当ea为高电平并且程序地址小于4kb时,读取内部程序存储器指令数据,而超过4kb地址则读取外部指令数据。如ea为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,ea端必须接地。在编程时,ea/vpp脚还需加上21v的编程电压。2.2 8255芯片简介8255可编程并行接口芯片简介: 8255可编程并行接口芯片有三个输入输出端口,即a口

10、、b口和c口,对应于引脚pa7pa0、pb7pb0和pc7pc0。其内部还有一个控制寄存器,即控制口。通常a口、b口作为输入输出的数据端口。c口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口a配合使用,可以用作控制信号输出或作为状态信号输入。8255可编程并行接口芯片方式控制字格式说明:8255有两种控制命令字;一个是方式选择控制字;另一个是c口按位置位复位控制字。其中c口按位置位复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述,需要时用户可自行查找有关资料。方式控制字格式说明如表1: 表1d7d6d5d4d3d2d1d0

11、d7:设定工作方式标志,1有效。 d6、d5:a口方式选择 0 0 方式0 0 1 方式1 1 方式2 d4:a口功能 (1=输入,0=输出) d3:c口高4位功能 (1=输入,0=输出) d2:b口方式选择 (0=方式0,1=方式1) d1:b口功能 (1=输入,0=输出)d0:c口低4位功能 (1=输入,0=输出) 8255可编程并行接口芯片工作方式说明: 方式0:基本输入输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。 方式1:选通输入输出方式。这时a口或b口的8位外设线用作输入或输出,c口的4条线中三条用作数据传输的联络信号和中断请求信

12、号。 方式2 :双向总线方式。只有a口具备双向总线方式,8位外设线用作输入或输出,此时c口的5条线用作通讯联络信号和中断请求信号。2.3 74ls373简介74ls373 是一种带三态门的8d锁存器,其管脚示意图如下示:其中:1d-8d为8个输入端。 1q-8q为8个输出端。 le为数据打入端:当le为“1”时,锁存器输出 状态同输入状态;当le由“1”变“0”时,数据 打入锁存器 oe为输出允许端:当oe=0时,三态门打开; 当oe=1时,三态门关闭,输出高阻。2.4 lm041l液晶简介管教及其功能描述:管脚名称lever管脚功能描述vss0电源地vdd+5.0v电源电压vee-液晶显示器

13、驱动电压rsh/ld/i=“h”,表示db7db0为显示数据d/i=“l”,表示db7db0为显示指令数据r/wh/lr/w=“h”,e=“h”数据被读到db7db0r/w=“l”,e=“hl”数据被写到ir或dreh/lr/w=“l”,e信号下降沿锁存db7db0r/w=“h”,e=“h”ddram数据读到db7db0db0h/l数据线db1h/l数据线db2h/l数据线db3h/l数据线db4h/l数据线db5h/l数据线db6h/l数据线db7h/l数据线模块控制芯片提供两套控制命令,基本指令和扩充指令如下:rsr/w操作00命令寄存器写入01忙标志和地址计数器读入10数据寄存器写入11

14、数据寄存器读入3、系统硬件设计3.1交通管理的方案论证东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设东西道比南北道的车流量大,指示灯燃亮的方案如表2。20s3s20s3s东西道红灯亮红灯亮绿灯亮黄灯亮南北道绿灯亮黄灯亮红灯亮红灯亮 表2表2说明: (1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为20秒。(2)黄灯闪烁3秒,警示车辆和行人红、绿灯的状态即将切换。 (3

15、)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为20秒。 东西方向车流大 通行时间长。(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。(5)此表中的红绿灯及黄灯的显示时间可以根据人流量来进行调整3.2交通灯设计选用设备89c51单片机一片选用设备:89c31单片机一片,8255并行通用接口芯片一片,74ls08两片,74ls373一片,共阴极的七段数码管4个,红、黄、绿交通灯各两个,开关按钮、连线若干。33 交通灯总体硬件仿真图 3.4 89c51与8255的扩展 其中用单片机的p0端口来扩展8255,如上图连接硬件图

16、,这样连接后8255的控制口地址为ff7fh,pa,pb,pc的地址分别为ff7ch,ff7dh,ff7eh。35 红绿黄灯模块本系统同过8255的扩展端口pc0pc5六个端口来控制六个发光二极管,发光二极管采用阳极驱动的方式,当输入为高电平时点亮。同时通过外部中断0来控制等状态的改变。相应的子程序如下:;状态一东西方向绿灯,南北方向红灯pint0:mov a,40h jnz bwl0 mov a,41h mov 45h,a add a,42h mov 44h,a inc 44h inc 45hbwl0:mov a,40h cjne a,41h,bxd0bxd0:jnc pint01 mov

17、r0,#7eh mov a,#0ch movx r0,a inc 40h dec 44h dec 45h reti;状态二东西方向黄灯,南北方向红灯pint01:mov a,40hcjne a,41h,bwl1mov 45h,42hinc 45hbwl1:mov a,41h add a,42h mov 43h,a mov a,40hcjne a,43h,bxd1bxd1:jnc pint02 mov r0,#7eh mov a,#14h movx r0,a inc 40h dec 44h dec 45h reti;状态二东西方向红灯,南北方向绿灯pint02:mov a,40h cjne a,

18、43h,bwl2 mov a,41h mov 44h,a add a,42h mov 45h,a inc 45h inc 44h bwl2:mov a,43h add a,41h mov 43h,a mov a,40h cjne a,43h,bxd2bxd2:jnc pint03 mov r0,#7eh mov a,#21h movx r0,a inc 40h dec 44h dec 45h reti;状态二东西方向红灯,南北方向黄灯pint03:mov a,40h cjne a,43h,bwl3 mov 44h,42h inc 44h bwl3:mov r0,#7ehmov a,#22hmo

19、vx r0,a dec 44h dec 45hinc 40hmov a,43hadd a,42hmov 43h,amov a,40hcjne a,43h,bxd3 mov 40h,#00 bxd3:reti3.6 数码管显示模块本系统中选用了两块双七段共阴数码管,分别用来显示东西方向和南北方向红绿灯倒计时剩余时间。用8255的pb端口来驱动,应为用同一组端口控制四个数码管因此要用到动态显示,这里用p1.0p1.3四个口来选中要送数显示的数码管,再用快速循环显示来达到所需的视觉效果。显示子程序如下:sndisp:mov a,44h ;南北方向的数码管显示mov b,#10div abmov p1

20、,#01h ;显示十位mov dptr,#tab2movc a,a+dptrmov r0,#7dhmovx r0,a nop nop mov a, #0ffh mov r0, #7dh movx r0, amov a,bmov p1,#02h ;显示个位mov dptr,#tab2movc a,a+dptrmov r0,#7dhmovx r0,anop nop mov a, #0ffh mov r0, #7dh movx r0, aewdisp:mov a,45h ;东西方向的数码管显示mov b,#10div abmov p1,#04h ;显示十位mov dptr,#tab2movc a,a

21、+dptrmov r0,#7dhmovx r0,a nop nop mov a, #0ffh mov r0, #7dh movx r0, amov a,bmov p1,#08h 显示个位mov dptr,#tab2movc a,a+dptrmov r0,#7dhmovx r0,a nop nop mov a, #0ffh mov r0, #7dh movx r0, a rettab2:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h3.7 外部控制按钮 为了控制的方便,本系统扩展了一些外部按钮来对交通灯进行外部设置。共有4个按钮,分别为复位键、设置

22、选择键、加一键、减一键。将他们的状态送入外部中断1来实现相应的功能,这里用两个与门来进行状态的叠加后再送到外部中断1,最后在中断程序中判断信号的具体来源,确定所要执行的子程序。set用来选择状态,点击第一下两路口的绿灯点亮,同时在程序中关闭外部中断0,示意现在可以设置绿灯显示的时间,然后分别用inc和dec来实现加一或减一,点击第二下,两路口的黄灯点亮,表示现在可以设置黄灯显示的时间,同样用inc和dec来进行调整,点击第三下打开外部中断0,路灯开始正常运行。在其他时候点击inc和dec无效。还有复位键是用来使交通灯的回到初始状态,并接着运行。具体实现代码如下: pint1:jnb p3.5,

23、pint11 jnb p3.0,pint12 jnb p3.1,pint13pint11:cjne r3,#00h,tz1 ajmp pint11a tz1:cjne r3,#01h,tz2 ajmp pint11b tz2:cjne r3,#02h,tz3 ajmp pint11c tz3:mov r3,#00hpint11a:mov r0,#7eh mov a,#09h movx r0,a mov 44h,41h mov 45h,41h clr ex0 mov 40h,#00 inc r3 retipint11b:mov r0,#7eh mov a,#12h movx r0,a mov 4

24、4h,42h mov 45h,42h clr ex0 mov 40h,#00 inc r3 retipint11c:setb ex0 mov r3,#00h retipint12:cjne r3,#01h,tc1 inc 41h mov 44h,41h mov 45h,41h tc1:cjne r3,#02h,tc2 inc 42h mov 44h,42h mov 45h,42h tc2:retipint13:cjne r3,#01h,tc3 dec 41h mov 44h,41h mov 45h,41h tc3:cjne r3,#02h,tc4 dec 42h mov 44h,42h mov

25、 45h,42h tc4:reti 3.8 液晶显示模块 液晶显示模块选用了16*4的显示板,选用8255的pa端口作为数据口。用p2.0p2.2三个端口来作为控制端。具体显示子程序如下: enable: clr rs clr rwclr elcall delaysetb eretksxshi: mov r0,#7ch mov a,#80h movx r0,a acall enable mov dptr,#tab lcall write1 mov r0,#7ch mov a,#0c0h movx r0,a lcall enable mov dptr,#tab1 lcall write1 ret

26、 write1: mov 50h,#00h a1: mov a,50h movc a,a+dptr lcall write2 inc 50h mov a,50h cjne a,#10h,a1 retwrite2:mov r0,# 7ch movx r0,a setb rs clr rw clr e lcall delay setb e retdelay: mov 55h,#100 d1: mov 56h,#100 d2: djnz 56h,d2 djnz 55h,d1 ret tab :db 00h,h,a,p,p,y,00h,n,e,w,00h,y,e,a,r,!tab1:db 00h,z,

27、h,a,n,g,r,u,i,00h,y,a,n,a,n,00h4、protel制版 4.1 原理图 4.2 pcd制版图5、实验总结 本本系统就是充分利用了89c51和8255芯片的i/o引脚。系统统采用msc-51系列单片机at89c51和可编程并行i/o接口芯片8255a为中心器件来设计交通灯控制器,实现了能根据实际车流量通过82551芯片的pc口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩n秒时黄灯闪烁警示(交通灯信号通过pc口输出,显示时间直接通过8255的pb口输出至双位数码管);通过这次课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如

28、何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,常有一些不如意,比如,程序的一些细节经常出错,而且特别难以发现错误,必须要静下心来仔细查看,认真核对才能够发现错误的所在,这要求我们必须要有相当的耐心,戒骄戒躁,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。这个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中的交通秩序的不了解给整个设计带来的

29、困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我坚持了下来。当然最终,这个设计很成功,主要体现在,整个系统的程序都是由我们自己独立完成,并用了8255来扩展端口,程序简单易读,结构清楚。总之通过本次课程设计我们学到了很多,不仅得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。6、参考书籍:张毅刚 单片机原理及应用 高等教育出版社7、附录:完整程序代码

30、org 0000hajmp mainorg 0003hajmp pint0org 0013hajmp pint1org 0100hmain:mov sp,#60hrs equ p2.2rw equ p2.1e equ p2.0mov r0,#7fhmov a,#80hmovx r0,amov r0,#7ehmov a,#24hmovx r0,amov 40h,#00mov 41h,#20mov 42h,#03mov 44h,41hmov 45h,42hmov p1,#0fhmov r2,#00hsetb ex1setb it1setb px1setb ex0setb it0clr px0set

31、b eastart:mov r0,#7ch mov a,#01hmovx r0,a acall enable mov a,#38hmov r0,7chmovx r0,a acall enable mov a,#0chmov r0,#7chmovx r0,a acall enable lcall ksxshiloop:lcall sndispajmp looppint0:mov a,40h jnz bwl0 mov a,41h mov 45h,a add a,42h mov 44h,a inc 44h inc 45hbwl0:mov a,40h cjne a,41h,bxd0 bxd0:jnc

32、pint01 mov r0,#7eh mov a,#0ch movx r0,a inc 40h dec 44h dec 45h retipint01:mov a,40hcjne a,41h,bwl1mov 45h,42hinc 45h bwl1:mov a,41h add a,42h mov 43h,a mov a,40h cjne a,43h,bxd1bxd1:jnc pint02 mov r0,#7eh mov a,#14h movx r0,a inc 40h dec 44hdec 45h retipint02:mov a,40h cjne a,43h,bwl2 mov a,41h mov

33、 44h,a add a,42h mov 45h,a inc 45h inc 44h bwl2:mov a,43h add a,41h mov 43h,a mov a,40h cjne a,43h,bxd2bxd2:jnc pint03 mov r0,#7eh mov a,#21h movx r0,a inc 40h dec 44h dec 45h retipint03:mov a,40h cjne a,43h,bwl3 mov 44h,42h inc 44h bwl3:mov r0,#7eh mov a,#22h movx r0,a dec 44h dec 45h inc 40h mov a

34、,43h add a,42h mov 43h,a mov a,40h cjne a,43h,bxd3 mov 40h,#00 bxd3:retipint1:jnb p3.5,pint11 jnb p3.0,pint12 jnb p3.1,pint13pint11:cjne r3,#00h,tz1 ajmp pint11a tz1:cjne r3,#01h,tz2 ajmp pint11b tz2:cjne r3,#02h,tz3 ajmp pint11c tz3:mov r3,#00hpint11a:mov r0,#7eh mov a,#09h movx r0,a mov 44h,41h mov 45h,41h clr ex0mov 40h,#00 inc r3 retipint11b:mov r0,#7eh mov a,#12h movx r0,a mov 44h,42h mov 45h,42h clr ex0mov 40h,#00 inc r3 retipint11c:setb ex0 mov r3,#00h retipint12:cjne r3,#01h,tc1 inc 41hmov 44h,41hmov 45h,41h tc1:cjne r3,#02h,tc2inc 42hmov 44h,42hmov 45h,42h tc2:retipint13:cjne r3,#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论