基于单片机的交通信号灯控制电路设计内容摘要:

时, RST 引脚出现两个机器周期以上高电平将使单片机复位。 WDT 溢出将使该引脚输出高电平,设置 SFR AUXR 的 DISRT0 位(地址 8EH)可打开或关闭该功能。 DISRT0 位缺省为 RESET 输出高电平打开状态。 ALE/ PROG———— :当访问 外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。 即使不访问外部存储器, ALE 仍以 8 时钟振荡频率的 1/ 6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 F1ash存储器编程期间,该引脚还用于输入编程脉冲( PROG)。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。 该位置位后,只有一条 M0VX 和 M0VC 指令 ALE 才会被激活。 此外,该引脚会被微弱拉高,单片机 执行外部程序时,应设置 ALE 无效。 PSEN———— 程序储存允许( PSEN———— )输出是外部程序存储器的读选通信号,当AT89C51 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN——— — 有效,即输出两个脉冲。 当访问外部数据存储器,没有两次有效的 PSEN———— 信号。 、 按键接口电路的设计 单片机使用的键盘分为独立式和矩阵式两种。 一:矩阵式键盘适用于 按键数量较多的场合,它有行线和列线组成,按键位于行、列的交叉点上。 行、列线分别连接到按键开关的两端,而有键按下时,行线电平状态将由与此行线相连的列线电平决定,列线电平如果为低,则行线电平为低;反之,则为高。 矩阵式键盘各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。 二:矩阵式键盘也称行列式键盘,因为键的数目较多,所以键按行列组成矩阵。 独立式键盘就是各按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。 独立式按键 电路配置灵活,软件结构简单。 但每个按键需占用一根输入口线,此种按键电路适用于按键较少或操作速度教高的场合独立式实际上就是一组相互独立的按键,这些按键可直接与单片机的 I/O 口连接,连接方法就是每个按键独立一条口线,各按键之间状态不会影响且接口简单。 考虑到这个控制器中,设定的按键不多,为了使系统简单明了,在这里选择独立式按键。 如图 3 所示 : *[SET]键用来设置倒计时时间, *[SELECT]用来选择 “+”“—”。 9 图 3 、 指示电路的设计 指示很简单,采用 LED(发光二极管),考虑到单片机 端口常态是高电平,设计采用低电平点亮发光管,如图 4 所示。 I/O 口的灌电流最大 30mA 左右,假设每根线 20mA, S 系列都低于 20mA,假设单个发光管耐压 2V(不同的管子不同,相差不多),系统采用 5V 供电。 实际选择 200Ω,实验发现发光二极管显示正常。 通过程序来控制指示灯红、绿、黄的通断来模拟交通灯的指示作用。 其电路图如图 4 所示。 图 4 10 、 显示电路的设计 数码管显示电路有多种方式,按照数据传输方式有两种:并行形式和串行形式,下面针对两种方式进行说明。 本设计采用单片机设计,由 于口线不足,而需要多位数码管显示,因此,为了更大的利用资源,节省地址线,本设计采用 74LS164 串行形式来控制数码管显示。 74LS164 是 8 位移位寄存器,采用串行输入,并行输出 , 当清除端( CLEAR)为低电平时,输出端( QA- QH)均为低电平。 串行数据输入端( A, B)可控制数据。 当 A、 B 任意一个为低电平,则禁 止新数据输入,在时钟端( CLOCK)脉冲上升沿作用下 Q0 为低电平。 当 A、 B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态。 其真值表如 表 3 所示 : 表 3 11 单片机接口电路硬件连接图如图 5 所示 : 图 5 、 电源电路设计 本设计对电源部分的要求不是太高,因此对于电源的设计就是普通的 5V 电源,利用了典型的三端稳压管 7805,来得到 5V 的直流稳压电源用于给整个系统几各个芯片供电。 其电路原理图形如图 6 下: 12 F U S E 1RVC30 . 1 uT1 1234D B 1 B R I D G E 1E21 00 0 uD2V i n + 5VL M 7 80 5E34 70 uC40 . 0 1 uV C CNL2 20 ~ 图 6 五、软件设计 、 软件流程图 按交通灯的功能,系统程序必须具备按键扫描处理、实时数码管显示等任务。 系统在上电复位后,先对档位寄存器赋默认值,并进行清除超时标志位,设置定时器及中断系统的工作方 式等初始化工作。 如图 7 所示: 图 7 13 、 按键扫描处理子程序的设计 按键扫描处理子程序负责设置东西、南北走向的等待时间按,若有键按下,则作出相应处理。 图 8 所示为按键扫描子程序流程图。 图 8 14 软件程序清单 SECOND1 EQU 30H。 东西路口计时寄存器 SECOND2 EQU 31H。 南北路口计时寄存器 DBUF EQU 40H。 显示码缓冲区 1 TEMP EQU 44H。 显示码缓冲区 2 KEY_SET BIT。 按键定义 KEY_SET1 BIT。 按键定义 LED_G1 BIT。 东西路口绿灯 LED_Y1 BIT。 东西路口黄灯 LED_R1 BIT。 东西路口红灯 LED_G2 BIT。 南北路口绿灯 LED_Y2 BIT。 南北路口黄灯 LED_R2 BIT。 南北路口红灯 ORG 0000H LJMP START ORG 0003H LJMP INT_INT0 ORG 0100H START: MOV TMOD,01H。 置 T0 为工作方式 1 MOV TH0,3CH。 置 T0 定时初值 50ms MOV TL0,0B0H SETB EA。 开总中断 SETB EX0。 外中断 0 允许 CLR TF0 SETB TR0。 启动 T0 CLR A MOV P1,A。 关闭不相关的 LED。 ************************************* LOOP: MOV R2,20。 置 1s 计数初值 ,50ms*20=1s 15 MOV R3,20。 红灯亮 20s MOV SECOND1,25。 东西路口计时显 示初值 25s MOV SECOND2,25。 南北路口计时显示初值 25s LCALL DISPLAY LCALL STATE1。 调用状态 1 WAIT1: JNB TF0,WAIT1。 查询 50ms 到否 CLR TF0 MOV TH0,3CH。 恢复 T0 定时初值 50ms MOV TL0,0B0H DJNZ R2,WAIT1。 判断 1s 到否。 未到继续状态 1 MOV R2,20。 置 50ms 计数初值 DEC SECOND1。 东西路口显示时间减 1s DEC SECOND2。 南北路口显示时间减 1s LCALL DISPLAY DJNZ R3,WAIT1。 状态 1 维持 20s。 ******************************************* MOV R2,5。 置 50ms 计数初值 5*4=20 MOV R3,3。 绿灯闪 3s MOV R4,4。 闪烁间隔 200ms MOV SECOND1,5。 东西路口计时显示初值 5s MOV SECOND2,5。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。