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

下载本文档

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

文档简介

1、河南理工大学万方科技学院 课程设计报告2015 2016学年第 一 学期课程名称单片机原理及应用设计题目自动交通信号灯学生姓名闫建勋学 号 1516353029专业班级15计算机科学与技术专升本指导教师苏百顺2015年 12 月 17 日单片机课程设计实验报告近年来随着科技的飞速发展, 单片机的应用正在不断深入,同时带动传统控制检测 技术日益更新。 在实时检测和自动控制的单片机应用系统中, 单片机往往作为一个核心 部件来使用, 仅单片机方面知识是不够的, 还应根据具体硬件结构软硬件结合, 加以完 善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实 现这井然秩序呢?靠的

2、就是交通信号灯的自动指挥系统。 交通信号灯控制方式很多。 本 系统采用MSC-51系列单片机AT89C51和可编程并行I/O接口芯片8255A为中心器件 来设计交通灯控制器,实现设置红、 绿灯燃亮时间的功能; 红绿灯循环点亮,倒计时黄 灯警示(交通灯信号通过8255的PC 口输出,显示时间直接通过PB 口输出至双位数码 管)并用复位按键表示出现特殊情况时四个方向禁止通行 ,用set, inc和dec按键来实现 红绿灯及黄灯显示时间的控制。同时还加了 LCD 液晶显示功能。1、单片机概述单片机微型计算机是微型计算机的一个重要分支, 也是颇具生命力的机种。 单片机 微型计算机简称单片机, 特别适用

3、于控制领域, 故又称为微控制器。 通常单片机由单块 集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。 因此,单片机只需要和适当的软件及外部设备相结合, 便可成为一个单片 机控制系统。单片机经过 1、2、3、3代的发展,目前单片机正朝着高性能和多品种方 向发展,它们的 CPU 功能在增强,内部资源在增多,引角的多功能化,以及低电压底 功耗。2、芯片简介2.1 MSC-51 芯片简介MCS-51单片机内部结构:89C51 是 MCS-51 系列单片机的典型产品, 我们以这一代表性的机型进行系统的讲 解。89C51单片机包含中央处理器、程序存储器(ROM)、数

4、据存储器(RAM)、定时/计数 器、并行接口、 串行接口和中断系统等几大单元及数据总线、 地址总线和控制总线等三 大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是 8位数据宽度的处理器,能处理 8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运 算和控制输入输出功能等操作。数据存储器(RAM)89C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统- 编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或

5、用户定义的字型表。内都结构时钟瞰据存储劃I定时讦教調0打 TfT Mil程序存储器I中断亲统-程序存储器(ROM)89C51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格-定时/计数器(ROM)89C51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制 程序转向。-并行输入输出(I/O) 口:89C51共有4组8位I/O 口(PO、 P1、P2或P3),用于对外部数据的传输。-全双工串行口:89C51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行 口既可以用作异步通信收发器,也可以当同步移位器使用-中断系统:89C51具备较完善的中断功能,有

6、两个外中断、两个定时 /计数器中断和一个串行 中断,可满足不同的控制要求,并具有 2级的优先级别选择。时钟电路:89C51内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序, 但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛 (Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一 的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构 的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。下图是MCS-51系列单片机的内部结构示意图2。

7、P0. 010. 7PL 0P2. 图2MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结 构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时 钟线两根,4组8位共32个I/O 口,中断口线与P3 口线复用。现在我们对这些引脚的 功能加以说明:MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结 构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时 钟线两根,4组8位共32个I/O 口,中断口线与P3 口线复用。现在

8、我们对这些引脚的 功能加以说明:如图30 12 34 5-6匚匚匚匚LJULJU匚RKD/P3. 0 CTXD;P3.1 C INT0/F3. 2 C INTT/P3. 3 匸T0/P3.4 CT1/P3. 5 ECKD/P3. 7 C KTALS c XTAL1 CCND C0123456789012 3 5 6 T 8 11 1 2098765432109876543214333 3333 332222 2-222 2Z Vcc FO O/ADO PO 1/AD1 PO.2/AD2 PO 3/AD PO 4/AD4 PO 5/AD5 FO.6/AD6 :FO. ?/AD7:EA/VFP3

9、ALE/PRQ :FESN P2. 7/A15 F2.6/A14 P2 5/Al3 P2 4/Al 2 P2 3/A11 P2 2/A10 :P2. 1/A9:P2. 0/A8FDIFPin9: RESET/Vpd复位信号复用脚,当89C51通电,时钟电路开始工作,在 RESET 引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC 指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0” RESET由高电平下降为低电平后,系统即从 0000H地址开始执行程序。然而,初始复 位不改变RAM (包括工作寄存器R0-R7)的状态,89C5

10、1的初始态。89C51的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd 还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部 RAM的数据 不丢失。G051out1号XTAI2时钟源18XTAL1外部时钟方式內部时钟方式图4 Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时, ALE端将 有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当 作一个时钟向外输出。更有一个特点,当访问外部程序存储器, ALE会跳过一个脉冲。如果单片机是EPROM在编程其间,将用于输入

11、编程脉冲。 Pin 29:当访问外部程序存储器时,此脚输出负脉冲选通信号,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可编程

12、并行接口芯片简介:8255 可编程并行接口芯片有三个输入输出端口,即A 口、B 口和C 口,对应于引脚PA&PA0 PB&PB0和PC&PCQ其内部还有一个控制寄存器,即控制口。通常A 口、B 口作为输入输出的数据端口。 C口作为控制或状态信息的端口,它在方式字的控制下, 可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口 A/E配合使用, 可以用作控制信号输出或作为状态信号输入。8255可编程并行接口芯片方式控制字格式说明:8255有两种控制命令字;一个是方式选择控制字;另一个是 C 口按位置位/复位 控制字。其中C口按位置位/复位控制字方式使用较为繁难,

13、 说明也较冗长,故在此不 作叙述,需要时用户可自行查找有关资料。方式控制字格式说明如表1:表1D7D6D5D4D3D2D1D0D7 :设定工作方式标志,1有效。D6、D5:A 口方式选择0 0方式00 1方式11x 方式 2D4 :A 口功能(仁输入,0=输出)D3 :C 口高4位功能(仁输入,0=输出)D2 :B 口方式选择(0=方式0,仁方式1)D1 :B 口功能(仁输入,0=输出)D0C 口低4位功能(1=输入,0=输出)8255可编程并行接口芯片工作方式说明:方式0:基本输入/输出方式。适用于三个端口中的任何一个。每一个端口都可以 用作输入或输出。输出可被锁存,输入不能锁存。方式1:选

14、通输入/输出方式。这时 A 口或B 口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号方式2 :双向总线方式。只有 A 口具备双向总线方式,8位外设线用作输入或输 出,此时C口的5条线用作通讯联络信号和中断请求信号。2.3 74LS373 简介74LS373是一种带三态门的8D锁存器,其管脚示意图如下示:STTTTIsD D DD D DD D01234367QiQ2Q3 Q5LEFT-f :2 -5 -币-9-1-1 1 1 I其中:1D-8D为8个输入端。1Q-8Q 为8个输出端。LE为数据打入端:当LE为“ 1”时,锁存器输出 状态同输入状态;当LE由“

15、 1”变“ 0”时,数据 打入锁存器OE为输出允许端:当 OE=0时,三态门打开;当OE=1时,三态门关闭,输出高阻。2.4 LM041L液晶简介管教及其功能描述:管脚名称LEVER管脚功能描述VSS0电源地VDD+5.0V电源电压VEE-液晶显示器驱动电压RSH/LD/I= “ H'表示 DB7 s DB0为显示数据D/I= “,表示DB7 s DB0为显示指令数据R/WH/LR/W= “ H,E= “ H数据被读至U DB7 s DB0 R/W= “L”,E= “ HR L'数据被写到 IR 或 DREH/LR/W= “ L”,E信号下降沿锁存 DB7 s DB0 R/W=

16、 “ H,E= “ H DDRAM数据读至U DB7 s DB0DB0H/L数据线DB1H/L数据线DB2H/L数据线DB3H/L数据线DB4H/L数据线DB5H/L数据线DB6H/L数据线DB7H/L数据线模块控制芯片提供两套控制命令,基本指令和扩充指令如下:RSR/W操作00命令寄存器写入01忙标志和地址计数器读入10数据寄存器写入11数据寄存器读入3、系统硬件设计3.1交通管理的方案论证东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指 挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、 绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道

17、的公共停车时间。设东西道 比南北道的车流量大,指示灯燃亮的方案如表 2。20S3S20S3S东西道红灯亮红灯亮绿灯亮黄灯亮南北道绿灯亮黄灯亮红灯亮红灯亮表2表2说明:(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯, 此道车辆通过,行人禁止通行。时间为 20秒。(2)黄灯闪烁3秒,警示车辆和行人 红、绿灯的状态即将切换。(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过, 行人通行。时间为20秒。东西方向车流大 通行时间长。(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安 全畅通的通行。(5)此表中的红绿灯及黄灯的显示时间可

18、以根据人流量来进行调整3.2交通灯设计选用设备89C51单片机一片选用设备:89C31单片机一片,8255并行通用接 口芯片一片,74LS08两片,74LS373片,共阴极的七段数码管4个,红、黄、绿交通灯各两个,开关按钮、连线若干3. 3交通灯总体硬件仿真图kkg'盟5:£1 fs詡舍峪SSM"II UhHE酣啡«洛-* b 叮3.4 89C51与8255的扩展P3.7RDM7PS-a-WRP1BP14P3.3HMT1P13F.ZflMTUP3FTXDP1.1P3.WRXDP10P2.7W15FZ.OFA-WPi.SfAlSEAP2.4/A12ALEP2

19、.A11P»M畑謝阳0P2.1 海P2.0«fiSm 7miD7RSTPO.ffADBro.S/AM-P0.4/AWP03AD3XTAL2POZ磁PO.irADIKl.CkADCiXTALi (J219o-311J6JQ7aoaQ4cnQ2Q 1QO0123507DDDDDDPD2- ebbs- - F 他 b ,8-严3-5-43-合>k/rdie s R-wA R c'lu其中用单片机的P0端口来扩展8255,如上图连接硬件图,这样连接后 8255 的控制口地址为FF7FH,PA,PB,PC的地址分别为FF7CH,FF7DH,FF7E。3. 5红绿黄灯模块

20、本系统同过8255的扩展端口 PC0-PC5六个端口来控制六个发光二极管,发 光二极管采用阳极驱动的方式,当输入为高电平时点亮。同时通过外部中断0来控制等状态的改变。相应的子程序如下:;状态一东西方向绿灯,南北方向红灯PINT0:MOV A,40HJNZ BWL0MOV A,41HMOV 45H,AADD A,42HMOV 44H,AINC 44HINC 45HBWL0:MOV A,40HCJNE A,41H,BXD0BXD0:JNC PINT01MOV R0,#7EHMOV A,#0CH MOVX R0,A INC 40H DEC 44H DEC 45HRETI ;状态二东西方向黄灯,南北方

21、向红灯 PINT01:MOV A,40HCJNE A,41H,BWL1MOV 45H,42HINC 45HBWL1:MOV A,41HADD A,42HMOV 43H,AMOV A,40HCJNE A,43H,BXD1BXD1:JNC PINT02MOV R0,#7EHMOV A,#14H MOVX R0,A INC 40H DEC 44HDEC 45HRETI ;状态二东西方向红灯,南北方向绿灯 PINT02:MOV A,40HCJNE A,43H,BWL2MOV A,41HMOV 44H,AADD A,42HMOV 45H,AINC 45HINC 44HBWL2:MOV A,43H ADD

22、 A,41H MOV 43H,A MOV A,40HCJNE A,43H,BXD2BXD2:JNC PINT03 MOV R0,#7EH MOV A,#21H MOVX R0,AINC 40HDEC 44HDEC 45H RETI ;状态二东西方向红灯,南北方向黄灯 PINT03:MOV A,40HCJNE A,43H,BWL3 MOV 44H,42HINC 44HBWL3:MOV R0,#7EH MOV A,#22H MOVX R0,ADEC 44HDEC 45HINC 40H MOV A,43H ADD A,42H MOV 43H,A MOV A,40HCJNE A,43H,BXD3 MO

23、V 40H,#00 BXD3: RETI3.6 数码管显示模块本系统中选用了两块双七段共阴数码管,分别用来显示东西方向和南北方向红绿灯倒计时剩余时间。用 8255的PB端口来驱动,应为用同一组端口控制四个 数码管因此要用到动态显示, 这里用 P1.0P1.3 四个口来选中要送数显示的数码 管,再用快速循环显示来达到所需的视觉效果。显示子程序如下:SNDISP:MOV A,44H ;南北方向的数码管显示MOV B,#10DIV ABMOV P1,#01H ;显示十位MOV DPTR,#TAB2MOVC A,A+DPTRMOV R0,#7DHMOVX R0,ANOPNOPMOV A, #0FFHM

24、OV R0, #7DHMOVX R0, AMOV A,BMOV P1,#02H ;显示个位MOV DPTR,#TAB2MOVC A,A+DPTRMOV R0,#7DHMOVX R0,ANOPNOPMOV A, #0FFHMOV R0, #7DHMOVX R0, AEWDISP:MOV A,45H ;东西方向的数码管显示MOV B,#10DIV ABMOV P1,#04H ;显示十位MOV DPTR,#TAB2MOVC A,A+DPTRMOV R0,#7DHMOVX R0,ANOPNOPMOV A, #0FFHMOV R0, #7DHMOVX R0, AMOV A,BMOV P1,#08H 显示

25、个位MOV DPTR,#TAB2MOVC A,A+DPTRMOV R0,#7DHMOVX R0,ANOPNOPMOV A, #0FFHMOV R0, #7DHMOVX R0, ARETTAB2:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H3.7 外部控制按钮为了控制的方便,本系统扩展了一些外部按钮来对交通灯进行外部设置。 共有 4 个按钮,分别为复位键、设置选择键、加一键、减一键。将他们的状 态送入外部中断 1 来实现相应的功能, 这里用两个与门来进行状态的叠加后 再送到外部中断 1,最后在中断程序中判断信号的具体来源,确定所要执行 的子程序。

26、 SET 用来选择状态,点击第一下两路口的绿灯点亮,同时在程 序中关闭外部中断 0,示意现在可以设置绿灯显示的时间,然后分别用 INC 和 DEC 来实现加一或减一,点击第二下,两路口的黄灯点亮,表示现在可 以设置黄灯显示的时间,同样用 INC 和 DEC 来进行调整,点击第三下打开 外部中断 0,路灯开始正常运行。在其他时候点击 INC 和 DEC 无效。还有 复位键是用来使交通灯的回到初始状态,并接着运行。具体实现代码如下:PINT1:JNB P3.5,PINT11JNB P3.0,PINT12JNB P3.1,PINT13PINT11:CJNE R3,#00H,TZ1AJMP PINT1

27、1A TZ1:CJNE R3,#01H,TZ2AJMP PINT11B TZ2:CJNE R3,#02H,TZ3AJMP PINT11CTZ3:MOV R3,#00HPINT11A:MOV R0,#7EHMOV A,#09HMOVX R0,AMOV 44H,41HMOV 45H,41HCLR EX0MOV 40H,#00INC R3RETIPINT11B:MOV R0,#7EHMOV A,#12HMOVX R0,AMOV 44H,42HMOV 45H,42HCLR EX0MOV 40H,#00INC R3RETIPINT11C:SETB EX0MOV R3,#00HRETIPINT12:CJN

28、E R3,#01H,TC1 INC 41H MOV 44H,41H MOV 45H,41HTC1:CJNE R3,#02H,TC2 INC 42H MOV 44H,42H MOV 45H,42HTC2:RETI PINT13:CJNE R3,#01H,TC3 DEC 41H MOV 44H,41H MOV 45H,41HTC3:CJNE R3,#02H,TC4 DEC 42H MOV 44H,42H MOV 45H,42HTC4:RETI3.8 液晶显示模块液晶显示模块选用了 16*4 的显示板,选用 8255的 PA 端口作为数据口 用 P2.0P2.2 三个端口来作为控制端。具体显示子程序

29、如下:ENABLE: CLR RSCLR RWCLR ELCALL DELAYSETB ERETKSXSHI: MOV R0,#7CHMOV A,#80HMOVX R0,AACALL ENABLEMOV DPTR,#TABLCALL WRITE1MOV R0,#7CHMOV A,#0C0HMOVX R0,ALCALL ENABLEMOV DPTR,#TAB1LCALL WRITE1RETWRITE1: MOV 50H,#00HA1: MOV A,50HMOVC A,A+DPTRLCALL WRITE2INC 50HMOV A,50HCJNE A,#10H,A1RETWRITE2:MOV R0,

30、# 7CHMOVX R0,ASETB RSCLR RWCLR ELCALL DELAYSETB ERETDELAY: MOV 55H,#100D1: MOV 56H,#100D2: DJNZ 56H,D2DJNZ 55H,D1RETTAB :DB 00H,'H','a','p','p','y',00H,'n','e','w',00H,'y','e','a','r','!'TAB1:DB 00H,'Z','h','a','n','g','R','u',&

温馨提示

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

评论

0/150

提交评论