单片机课程设计基于8255A的交通灯_第1页
单片机课程设计基于8255A的交通灯_第2页
单片机课程设计基于8255A的交通灯_第3页
单片机课程设计基于8255A的交通灯_第4页
单片机课程设计基于8255A的交通灯_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章引言.1.1.1 设计目的.1.1.2 设计背景.1.1.3 设计要求.2.第二章 系统硬件设计.3.2.1 设计方案.3.2.2 工作原理.3.2.3 硬件介绍.4.2.3.1 MSC-51 芯片简介.4.2.3.28255A 芯片.5.第三章 系统软件设计.7.3.1 时间及信号灯的显示.7.3.2 延时设计.8.3.3 程序流程图.9.3.4 程序源代码.10第四章系统调试结果.1.54.1 测试结果.15小结.16参考文献.17Word文档1第一章 引言1.1 设计目的1、 通过交通信号灯控制系统的设计,掌握 8255A 并行口传输数据的方法,以控制 发光二极管的亮与灭;2、 用

2、 8255 作为输出口 , 控制十二个发光二极管熄灭 , 模拟交通灯管理 .3、 通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中 去,提高我们的动脑和动手的能力;4、 完成控制系统的硬件设计、软件设计、仿真调试。1.2 设计背景十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字 道口的交通红绿灯控制是保证交通安全和道路畅通的关键。 当前,国大多数城市 正在采用“自动”红绿交通灯,它具有固定的“红灯绿灯”转换间隔,并自动 切换。它们一般由“通行与禁止时间控制显示、 红黄绿三色信号灯和方向指示灯” 三部分组成。在交通灯的通行与禁止时间控制显示中, 通常要么东西、

3、 南北两方 向各 50 秒;要么根据交通规律,东西方向 60 秒,南北方向 40 秒,时间控制都 是固定的。交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每 次只是以一定周期交替变化。 但是,实际上不同时刻的车辆流通状况是十分复杂 的,是高度非线性的、随机的,还经常受认为因素的影响。采用定时控制经常造 成道路有效应用时间的浪费,出现绿灯方向车辆较少, 红灯方向车辆积压。 它不 顾当前道路上交通车辆数的实际情况变化, 其最大的缺陷就在于当路况发生变化 时,不能满足司机与路人的实际需要, 轻者造成时间上的浪费, 重者直接导致交 通堵塞,导致城市交通效率的下降。目前,有一种使用“模糊控制

4、”技术控 制交通灯的方法。 能够根据十字路口两个方向上车辆动态状况, 自动判断红绿灯 时间间隔,以保证最大车流量,减少道口的交通堵塞。但是却不像定时控制,能 用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作, 及时停车或启动。21.3 设计要求编写程序 , 使用 8255A 可编程并行接口芯片 , 控制 12 位 L ED (发光二极管 )的亮灭 , 从而实现交通灯的模拟控制过程。控制要求如下 :初始状态为四个路口的红灯全亮 , 之后 , 东西路口的绿灯亮南 北路口的红灯亮 , 东西路口方向通车。延时一段时间后东西路口的绿灯熄灭 , 黄 灯开始闪烁 , 闪烁若干次后 , 东

5、西路口红灯亮 ,而同时南北路口的绿灯亮 , 南北方 向开始通车 , 延时一段时间后 , 南北路口的绿灯熄灭 , 黄灯开始闪烁。闪烁若干 次后 , 再切换到东西路口方向 , 之后重复以上过程。3第二章系统硬件设计2.1 设计方案东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示 灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示 人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共 停车时间。设东西道比南北道的车流量大,指示灯燃亮的方案如表2。60S5S80S5S东西 道红灯亮黄灯亮绿灯亮黄灯亮南北 道绿灯亮黄灯亮红灯亮黄灯亮上表说明:(1)

6、当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道 为绿灯,此道车辆通过,行人禁止通行。时间为 60 秒。(2)黄灯闪烁 5 秒,警示车辆和行人 红、绿灯的状态即将切换。(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁 止通过,行人通行。时间为 80 秒。东西方向车流大 通行时间长。(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆 就能安全畅通的通行。2.2 工作原理(1) 开关键盘输入交通灯初始时间,通过 8051 单片机 P1 输入到系统(2) 由 8051 单片机的定时器每秒钟通过 P0 口向 8255 的数据口送信息, 由 8255的 PA

7、 口显示红、绿、黄灯的燃亮情况;由 8255 的 PC 口显示每个灯的 燃亮时间。(3) 8051 通过 设置 各个信号等的燃亮时间、通过 8031 设置,绿、红时 间分别为60 秒、80 秒循环由 8051 的 P0 口向 8255 的数据口输出。(4) 通过 8051 单片机的 P3.0 位来控制系统是工作或设置初值,当.牌位 0 就对系统进行初始化,为 1 系统就开始工作。(5) 红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警, 3S 后然后恢复正常4( 6)增加每次绿灯时间车流量检测的功能,并且通过查询P2.0 端口的电平是否为低, 开关按下为低电平, 双位数码管显示车流量, 直

8、到下一次绿灯时间重 新记入。(7)绿灯时间倒计时完毕,重新循环。2.3硬件介绍2.3.1 MSC-51 芯片简介8051是MCS-5係列单片机的典型产品, 我们以这一代表性的机型进行系统的讲解。 8051单片机包含中央处理器、程序存储器(ROM)数据存储器(RAM)定时/计数器、并 行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总 线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位 二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和 控制输入输出功能等操作。数据存储

9、器 (RAM):8051 部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是统一编 址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户 数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或 用户定义的字型表。程序存储器 (ROM):8051 共有 4096 个 8 位掩膜 ROM 用于存放用户程序,原始数据或表格。定时/计数器 (ROM):8051 有两个 16 位的可编程定时 / 计数器,以实现定时或计数产生中断用于控制程 序转向。并行输入输出 (I/O) 口:8051 共有 4 组 8 位 I/O 口 (P

10、0、P1、P2 或 P3),用于对外部数据的传输。 全双工串行口:8051 置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既 可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051 具备较完善的中断功能,有两个外中断、两个定时 / 计数器中断和一个串行中 断,可满足不同的控制要求,并具有 2 级的优先级别选择。时钟电路:8051 置最高频率达 12MHz 的时钟电路,用于产生整个单片机运行的脉冲时序,但 8051单片机需外置振荡电容。5232 8255A 芯片In tel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral

11、 Interface)简称PPI,型号为 8255,具有 24 条输入/输出引脚、可编程的通用并行 输入/输出接口电路。它是一片使用单一 +5V 电源的 40 脚双列直插式大规模集成 电路。8255A 的通用性强,使用灵活,通过它 CPU 可直接与外设相连接。8255A 的部结构和引脚图部结构-数据总线缓冲器:这是一个双向三态的 8 位数据缓冲器,它是 8255A 与微机系 统数据总线的接口。输入输出的数据、 CPU 输出的控制字以及 CPU 输入的状态信息都是通过这个缓冲器传送的。三个端口 A,B 和 C:A 端口包含一个 8 位数据输出锁存器和缓冲器,一个 8 位数据输入锁存器。B 端口包

12、含一个 8 位数据输入/输出锁存器和缓冲器,一个 8 位数据输入缓冲器。C 端口包含一个 8 位数据输出锁存器和缓冲器,一个 8 位数 据输入缓冲器(输入没有锁存器)。 A 组和 B 组控制电路:这是两组根据 CPU 输出的控制字控制 8255 工作方式的 电路,它们对于 CPU 而言,共用一个端口地址相同的控制字寄存器,接收 CPU 输出的一字节方式控31313jjj5慕y数据缓冲3*1卫纽1Vn!FC0W1端口fwxAoA1RESETPX1p詔PUPMPKP端口匸FT3P; +ST.1ID| I/O6制字或对 C 口按位复位字命令。方式控制字的高 5 位决定 A 组的工作方式,低 3 位决

13、定 B组的工作方式。对 C 口按位复位命令字可对 C 口 的每一位实现置位或复位。 A 组控制电路控制 A 口和 C 口上半部, B 组控制电 路控制 B 口和 C 口下半部。读写控制逻辑:用来控制把 CPU 输出的控制字或数据 送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到 CPU。 引脚信号8255A 的引脚分为数据线、地址线、读 /写控制线、输入 /输出端口线和电源线。D7DO (data buS :三态、双向数据线,与 CPU 数据总线连接,用来传送数据。(chip select):片选信号线,低电平有效时,芯片被选中。A1, AO (port addresS:地址线

14、,用来选择部端口。(read):读出信号线,低电平有效时,允许数据读出。(write):写入信号线,低电平有效时,允许数据写入。RESET (reset):复位信号线,高电平有效时,将所有部寄存器(包括控制寄存 器:清 O。PA7PAO (port A::A 口输入 /输出信号线。PB7PBO (port B::B 口输入 /输出信号线。PC7PCO (port C::C 口输入 /输出信号线。VCC : + 5V 电源。 GND :电源地线。8255A 的工作方式8255A 在使用前要写入一个方式控制字,选择 A、 B、 C 三个端口各自的工 作方式,共有三种 ;方式 O :基本的输入输出方

15、式,即无须联络就可以直接进行的 I/O 方式。 其中 A、 B、C 口的高四位或低四位可分别设置成输入或输出。方式 1 :选通 I/O,此时接口和外围设备需联络信号进行协调, 只有 A 口和 B 口可以工作在方式 1,此时 C 口的某些线被规定为 A 口或 B 口与外围设备的联 络信号,余下的线只有基本的 I/O 功能,即只工作在方式 O.方式 2: 双向 I/O 方式,只有 A 口可以工作在这种方式,该 I/O 线即可输 入又可输出,此时 C 口有 5 条线被规定为 A 口和外围设备的双向联络线, C 口 剩下的三条线可作为 B 口方式 1 的联络线,也可以和 B 口一起方式 O 的 I/O

16、 线。8255A 是一个并行输入、输出器件,具有 24 个可编程设置的 I/O 口,包括 3 组 8 位的I/O 为 PA 口、PB 口、PC 口,又可分为 2 组 12 位的 I/O 口: A 组包括 A 口及 C 口高 4 位,B 组包括 B 口及 C 组的低 4 位。7第三章系统软件设计3.1 时间及信号灯的显示显示原理:当定时器定时为 1 秒,时程序跳转到时间显示及信号灯显示子程序,它将 依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定 时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在 重新给时间计数器赋初值,重新进入循环。8255PA 口输出信

17、号接信号灯:由于发光二极管为共阳极接法,输出端口为低电平,对应的二极管发光, 所以可以用置位方法点亮红,绿,黄发光二极管。58255 输出信号与数码管的连接:LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否 点量而显示不同的字形如 SP,g,f,e,d,c,b,a管角上加上7F H所以SP上为0伏,不亮其余为TTL高电平,全亮则显示为8采用共阴级连接:其中 PCOPBO-a,PC1PB1-b,PC2PB2-c,PC3PB3-d,PC4PB4-e,PC5PB5-f,PC6PB6-gPC7PB7 -SP 接地显示数值dop g f e d c b a驱动代码(16 进制)00

18、 0 1 1 1 1 1 13FH10 0 0 0 0 1 1 006H20 1 0 1 1 0 1 15BH30 1 0 0 1 1 1 14FH40 1 1 0 0 1 1 066H50 1 1 0 1 1 0 06DH60 1 1 1 1 1 0 07DH70 0 0 0 0 1 1 107H80 1 1 1 1 1 1 17FH表 3 驱动代码表8255 与 8051 的连接:8用 8051 的 P0 口的 p0.7 连接 8255的片选信号 cs 我们用 8031 的地址采其他无效, p0.1 p0.1 用于选择A7A6A5A4A3 A2 A1 A01XXXXX00 00H为 825

19、5 的 PA 口1XXXXX01 01H为 8255 的 PB 口1XXXXX10 02H为 8255 的 PC 口1XXXXX11 03H为 8255 的控制口由于 8051 是分时对8255 和储存器进行访问所以8051 的 P0 口不会发生冲突3.2 延时设计MCS-51 的工作频率为 2-12MHZ 我们选用的 8031 单片机的工作频率为 6MHZ 机器周期与主频有关, 机器周期是主频的 12 倍,所以一个机器周期的时间为 12*(1/6M) =2us。我们可以知道具体每条指令的周期数, 这样我们就可以通过指令的执行条数来确定 1 秒的时间。具体的延时程序分析:DELAY:MOV R

20、4,#08H 延时 1 秒子程序DE2:LCALL DELAY1DJNZ R4,DE2RETDELAY1:MOV R6,#0 延时 125ms 子程序MOV R5,#0DE1: DJNZ R5,$DJNZ R6,DE1RETMOV R,N #DATA 字节数数为 2 机器周期数为 1 所以此指令的执行时间为 2msDELAY1 为 一 个 双 重 循 坏 循 环 次 数 为 256*256=65536 所 以 延 时 时 间=65536*2=131072us 约为 125usDELAY R4 设置的初值为 8 主延时程序循环 8 次,所以 125us*8= 1 秒由于单片机的运行速度很快其他的

21、指令执行时间可以忽略不计。用全译码方式,当 p0.7 =0 时片选有效, 8255端口P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.093.3 程序流程图程序流程图10;主程序的入口地址;跳转到主程序的开始处;外部中断 0 的中断程序入口地址;定时器 0 的中断程序入口地址 ;跳转到中断服务程序处;外部中断 1 的中断程序入口地址;CPU 开中断,允许 TO 中断,T1 中断和外部中断; 设置 T1 为计数方式 ,T0 为定时方式,且都工作;T1 计数器清零; 启动 T1 计时器; 允许 INT1 中断;选择边沿触发方式MOV DPTR ,#OOO3HMOV A,

22、 #8OH;给 8255 赋初值, 8255 工作于方式 OMOVX DPTR, AAGAIN: JB P3.1,NO 为 1 则跳转;判断 P 1 .7 是否为 1,若为 1 则设定红灯时间,否则;RO 清零; 存入东西方向绿灯初始时间LCALL DELAYAJMP AGAINRED:MOV A,P1ANL A,#7FHMOV R7,#OOHMOV R7,AMOV R3,A3.4 程序源代码ORG 0000HLJMP MAINORG 0003HORG 000BHLJMP T0_INTORG 0013HMAIN : MOV SP,#50HMOV IE,#8EH1 中断MOV TMOD,#51H

23、于模式 1MOV TH1,#00HMOV TL1,#00HSETB TR1 SETBEX1SETB IT1MOV A,P1JB P1.7,RED设定绿灯时间MOVRO,#OOHMOV RO,AMOV R3,ALCALL DISP1;P1.7 置 0;R7 清零; 存入东西方向红灯初始时间;判断是否要设定东西方向红绿灯时间的初值, 若 P3.111LCALL DISP1LCALL DELAYAJMP AGAINJN0:SETB TR0MOV 76H,R7;启动 T0 计时器;红灯时间存入 76HN00:MOV A,76HMOV R3,A;东西方向禁止,南北方向通行MOV DPTR,#0000HM

24、OV A,#0DDHMOVX DPTR, A;置 8255A 口,东西方向红灯亮,南北方向绿灯亮N01:JB P2.0,B0N02:SETB P3.0执行CJNE R3,#00H,N01 ;比较 R3 中的值是否为 0,不为 0 转到当前指令处J黄灯闪烁 5 秒程序 -N1:SETB P3.0MOV R3,#05HMOV DPTR,#0000HMOV A,#0D4HMOVX DPTR,A;置 8255A 口,东西,南北方向黄灯亮N11:MOV R4,#00HN12:CJNE R4,#7DH,$;黄灯持续亮 0.5 秒N13:MOV DPTR,#0000HMOV A,#0DDHMOVX DPTR

25、,A; 置 8255A 口,南北方向黄灯灭N14:MOV R4,#00HCJNE R4,#7DH,$;黄灯持续灭 0.5 秒CJNE R3,#00H,N1;闪烁时间达 5 秒则退出N2:MOV R7,#00HMOV A,R0 ;东西通行,南北禁止MOV R3,AMOV DPTR,#0000H ; 置 8255A 口,东西方向绿灯亮,南北方向红灯亮MOV A,#0EBHMOVX DPTR,AN21: JB P2.0,T0312N22:JCJNE R3,#00H,N21 黄灯闪烁 5 秒程序N3:MOV R3,#05HMOV DPTR,#0000HMOV A,#0E2HMOVX DPTR,A;置

26、8255A 口,东西,南北方向黄灯亮N31:MOV R4,#00HCJNE R4,#7DH,$;黄灯持续亮 0.5 秒N32:MOV DPTR,#0000HMOV A,#0EBHMOVX DPTR,A; 置 8255A 口,南北方向黄灯灭N33:MOV R4,#00HCJNE R4,#7DH,$;黄灯持续灭 0.5 秒CJNE R3,#00H,N3SJMP N00;闪烁时间达 5 秒则退出J闯红灯报警程序 -B0:MOV R2,#03H;报警持续时间 3 秒B01:MOV A,R3JZ N1;若倒计时完毕,不再报警CLR P3.0;报警CJNE R2,#00H,B01SJMP N02;判断 3

27、 秒是否结束J1 秒延时子程序 -N7:RETIT0_INT:MOV TL0,#9AH;给定时器 TO 送定时 10ms 的初值MOV TH0,#0F1HINC R4INC R5CJNE R5,#0FAH,T01;判断延时是否够一秒,不够则调用显示子程序MOV R5,#00H;R5 清零DEC R3;倒计时初值减一DEC R2;报警初值减一T01:ACALL DISP;调用显示子程序RETI;中断返回J显示子程序 -DISP: JNB P2.4,T02DISP1: MOV B,#0AH13MOV A,R3;R3 中值二转十显示转换14DIV AB MOV 79H,AMOV 7AH,BDIS:

28、MOV A,79HMOV DPTR,#TABMOVC A,A+DPTRMOV DPTR,#0002HMOVX DPTR,A MOVDPTR,#0001H MOVA,#0F7H MOVXDPTR,A LCALLDELAYDS2: MOV A,7AHMOV DPTR,#TABMOVC A,A+DPTRMOV DPTR,#0002HMOVX DPTR,A MOVDPTR,#0001H MOVA,#0FBH MOVXDPTR,ARET;-东西方向车流量检测程序T03: MOV A,R3 SUBB A,#00HJZ N3 JB P2.0,T03INC R7 CJNER7,#64H,E1 MOVR7,#00HE1: SJMP N22;-东西方向车流量显示程序T02: MOV B,#0AHMOV A,R7DIV AB MOV 79H,AMOV 7AH,BDIS3: MOV A,79H MOVDPTR,#TAB;显示十位;显示个位;若绿灯倒计时完毕,不再检测车流量;中断到 100 次则清零;R7 中值二转十显示转换;显示十位15MOVC A,A+DPTRMOV DPTR,#0002H MOVX DPTR,AMOV DPTR,#0001HMOV A,#0F7HMOVX DPTR,A LCALL DELAYDS4: MOV A,7AH;显示个位MOV DPTR

温馨提示

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

评论

0/150

提交评论