基于单片机的交通灯控制器的设计和实现毕业设计内容摘要:

端必须接地。 在编程时, EA/Vpp 脚还需加上 21V 的编程电压。 [2] 8255 芯片简介 8255 可编程并行接口芯片简介 : 8255 可编程并行接口芯片有三个输入输出端口,即 A 口、 B口和 C口,对应于引脚 PA7~ PA0、 PB7~ PB0 和 PC7~ PC0。 其内部还有一个控制寄存器,即控制口。 通常A 口、 B 口作为输入输出的数据端口。 C 口作为控制或状态信息的端口,它在方式字的控制下,可以分成 4位的端口,每个端口包含一个 4位锁存器。 它们分别与端口 A/B配合使用,可以用作控制信号输出或作为状态信号输入。 8255 可编程并行接口芯片方式控制字格式说明 : 8255 有两种控制命令字;一个是方式选择控制字;另一个是 C 口按位置位/复位控制字。 其中 C口按位置位/复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述,需要时用户可自行查找有关资料。 方式控制字格式说明如表 1: 表 1 方式控制字格式说明 D7:设定工作方式标志, 1 有效。 D D5: A口方式选择 0 0 — 方式 0 0 1 — 方式 1 1 — 方式 2 D7 D6 D5 D4 D3 D2 D1 D0 东华理工大学长江学院毕业设计(论文) 单片机概述及芯片简介 8 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 条线中三条用作数据传输的联络信号和中断请求信号。 方式 2 :双向总线方式。 只有 A口具备双向总线方式, 8 位外设线用作输入或输出,此时 C口的 5条线用作通讯联络信号和中断请求信号。 其他器件 数共阴极的七段数码管。 如图 5 图 5 数共阴极的七段数码管 VT 为双向晶闸管,当门极为高电平时晶闸管导通,该支路指示灯亮;当门极为低电平时晶闸管关断, 该支路指示灯灭。 东华理工大学长江学院毕业设计(论文) 控制器硬件系统设计 9 2 控制器硬件系统设计 交通管理的方案论证 A、 B 两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。 红灯亮禁止通行,绿灯亮允许通行。 黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为 A、 B 两干道的公共停车时间。 设 A 道比 B道的车流量大,指示灯燃亮的方案如表 2。 表 2 指示灯燃亮的方案 此表 2说明: ( 1)当为黄灯时 A、 B 两道同时为黄灯;以提示行人或车辆下一个灯色即将到来 时间 3 秒。 ( 2)当 A 到为红灯, A 道车辆禁止通行, A 道行人可通过; B 道为绿灯, B 道车辆通过,行人禁止通行。 时间为 60 秒。 ( 3)当 A道绿灯, A 道车辆通行; B 道为红灯, B 道车辆禁止通过,行人通行。 时间为 80 秒。 A道车流大 通行时间长。 ( 4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。 ( 5)此表可根据车流量动态设定。 系统硬 件设计 选用设备: 8051 单 片机一片, 8255 并行通用接口芯片一片, 74LS07 两片, MAX692‘看门狗’一片,共阴极的七段数码管两个双向晶闸管若干, 7805 三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。 3 60 3 80 3 60 „„ A 道 黄灯亮 红灯亮 黄灯亮 绿灯亮 黄灯亮 红灯亮 „„ B 道 黄灯亮 绿灯亮 黄灯亮 红灯亮 黄灯亮 绿灯亮 „„ 东华理工大学长江学院毕业设计(论文) 控制器硬件系统设计 10 2. 2. 1 系统总框图如下 图 6: 图 6 系统总框图 键盘设置时间参数 8051 系统处理 锁存 8255A 扩展 CPU 的并行接口 交通灯 显示时间 看门狗 东华理工大学长江学院毕业设计(论文) 控制器硬件系统设计 11 2. 2. 2 交通灯控制线路图 如图 7: 图 7 交通灯控制线路图 东华理工大学长江学院毕业设计(论文) 控制器硬件系统设计 12 系统工作原理 ( 1) 开关键盘输入交通灯初始时间,通过 8051单片机 P1 输入到系统。 ( 2) 由 8051单片机的定时器每秒钟通过 P0口向 8255 的数据口送信息,由 8255的 PC 口显示红、绿、黄灯的燃亮情况;由 8255 的 PA、 PB 口显示每个灯的燃亮时间。 ( 3) 8051通过设置各个信号等的燃亮时间、通过 8051设置,黄、绿、红时间依次为 3秒、 60 秒、 3 秒、 80 秒、 3 秒循环由 8051 的 P0口向 8255 的数据口输出。 ( 4) 通过 8051单片机的 位来控制系统是工作或设置初值,当 为 0就对系统进行初始化,为 1 系统就开始工作。 ( 5) 8255PA 口用于输出时间的个位, PB口用于输出时间的十位,由 747S07 驱动芯片驱动; 而 PC 口用于输出各个灯的情况,它的末段连接双向晶闸管采用 220V交流电压驱动。 ( 6)在交通控制程序中加入看门狗指令,当系统出现异常看门狗将发出溢出中断。 通过专用端口输入到 MAX692 看门狗芯片的 WDI 引角引起 RESET 复位信号复位系统。 [3] 东华理工大学长江学院毕业设计(论文) 控制器的软件设计 13 3 控制器的软件设计 每秒钟的设定 延时方法可以有两种一中是利用 MCS51内部定时器才生溢出中断来确定 1 秒的时间,另一种是采用软 延时的方法。 计数器硬件延时 计数器初值计算 定时器工作时必须给计数器送计数器初值,这个值是送到 TH 和 TL中的。 他是以加法记数的,并能从全 1到全 0 时自动产生溢出中断请求。 因此,我们可以把计数器记满为零所需的计数值设定为 C和计数初值设定为 TC 可得到如下计算通式: TC=MC式中, M 为计数器摸值,该值和计数器工作方式有关。 在方式 0时 M为 213 ;在方式1 时 M的值为 216;在方式 2和 3为 28。 [4] 计算公式 T=( M- TC) T计数 或 TC= MT/ T计数 T 计数是单片机时钟周 期 TCLK 的 12 倍;TC为定时初值 如单片机的主脉冲频率为 TCLK12MHZ ,经过 12分频 方式 0 TMAX= 213 *1 微秒= 毫秒 方式 1 TMAX= 216 *1 微秒= 毫秒 显然1秒钟已经超过了计数器的最大定 时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题。 1秒的方法 我们采 用在主程序中设定一个初值为 20的软件计数器和使 T0 定时 50毫秒。 这样每当 T0 到 50毫秒时 CPU 就响应它的溢出中断请求,进入他的中断服务子程序。 在中断服务子程序中, CPU 先 使软件计数器减 1,然后判断它是否为零。 为零表示 1秒已到可以返回到输出时间显示程序。 东华理工大学长江学院毕业设计(论文) 控制器的软件设计 14 (1)主程序 定时器需定时 50 毫秒,故 T0 工作于方式1。 初值: TC=MT/ T计数 = 21650ms/1us=15536=3CBOH ORG 1000H START: MOV TMOD, 01H。 令 T0 为定时器方式1 MOV TH0, 3CH。 装入定时器初值 MOV TL0, BOH。 MOV IE, 82H。 开 T0 中断 SEBT TR0 ;启动 T0 计数器 MOV RO, 14H。 软件计数器赋初值 LOOP: SJMP $ ;等待中断 (2)中断服务子程序 ORG 000BH AJMP BRT0 ORG 000BH BRTO: DJNZ R0, NEXT AJMP TIME。 跳转到时间及信号灯显示子程序 DJNZ: MOV R0,# 14H ;恢复 R0 值 MOV TH0, 3CH。 重装入定时器初值 MOV TL0, BOH。 MOV IE, 82H RET1 END 软件延时 MCS51 的工作频率为 212MHZ,我们选用的 8051 单片机的工作频率为 6MHZ。 机器周期与主频有关,机器周期是主频的 12 倍,所以一个机器周期的时间为 12*( 1/6M)=2us。 我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定 1秒的时间。 具体的延时程序分析: DELAY:MOV R4,08H 延时 1 秒子程序 DE2:LCALL DELAY1 东华理工大学长江学院毕业设计(论文) 控制器的软件设计 15 DJNZ R4,DE2 RET DELAY1:MOV R6,0 延时 125ms 子程序 MOV R5,0 DE1: DJNZ R5,$ DJNZ R6,DE1 RET MOV RN, DATA 字节数数为 2 机器周期数为 1 所以此指令的执行时间为 2ms。 DELAY1 为 一 个 双 重 循 环 循 环 次 数 为 256*256=65536 所 以 延 时 时 间=65536*2=131072us 约为 125us。 DELAY R4 设置的初值为 8 主延时程序循环 8次,所以 125us*8= 1 秒。 由于单片机的运行速度很快其他的指令执行时间可 以忽略不计。 时间及信号灯的显示 8051 并行口的扩展 8051 虽然有 4个 8 位 I/O 端口 ,但真正能提供借用的只有 P1 口 ,因为 P2 和 P0 口通常用于传送外部传送地址和数据 ,P3。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。