基于单片机的交通灯控制系统设计(皖西学院)内容摘要:

为 8 位 通用微处理器 ,采用工业标准的 C51 内核 ,在内部功能及管脚排布上与通用的 8xc52 相同,其主要用于会聚调整时的功能控制。 功能包括对会聚主 IC 内部寄存器、数据 RAM 及外部 接口等功能部件的初始化,会聚调整控制,会基于单片机的交通灯控制系统 9 聚测试图控制,红外遥控信号 IR 的接收解码及与主板 CPU 通信等。 主要管脚有:XTAL1( 19 脚)和 XTAL2( 18 脚)为振荡器输入输出端口,外接 12MHz 晶振。 RST/Vpd( 9 脚)为复位输入端口,外接电阻电容组成的复位电路。 VCC( 40 脚)和 VSS( 20 脚)为供电端口,分别接 +5V 电源的正负端。 P0~P3 为可编程通用 I/O 脚,其功能用途由软件定义,在本设计中, P0 端口( 32~39 脚)被定义为 N1 功能控制端口,分别与 N1 的相应功能管脚相连接, 13 脚定义为 IR 输入端, 10 脚和 11脚定义为 I2C 总线控制端口,分别连接 N1 的 SDAS( 18 脚)和 SCLS( 19 脚)端口, 12 脚、 27 脚及 28 脚定义为握手信号功能端口,连接主板 CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 P0 口 P0 口是一组 8 位漏极开路型双向 I/O 口, 也即地址 /数据总线复用口。 作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“ 1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址( 低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。 在 Flash 编程时, P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1 口 P1 是一个带内部上拉电阻的 8 位双向 I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对端口写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。 作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL)与 AT89C51 不同之处是, 和 还可分别 作为定时 /计数器 2 的外部计数输入( )和输入( ) ,Flash 编程和程序校验期间, P1 接收低 8 位地址。 P2 口 P2 是一个带有内部上拉电阻的 8 位双向 I/O 口, P2 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对端口 P2 写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL)。 在访问外部程序存储器或16 位地址的外部数据存储器(例如执行 MOVX @DPTR 指令)时, P2 口送出高 8 位地址数据。 在访问 8 位地址的外部数据存储器(如执行 MOVX @RI 指令)时, P2 基于单片机的交通灯控制系统 10 口输出 P2 锁存器的内容。 Flash 编程或校验时, P2 亦接收高位地址和一些控制信号。 P3 口 P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。 P3 口输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对 P3 口写入“ 1”时,它们被内部上拉电阻拉高并可作为输入端口。 此时,被外部拉低的 P3 口将用上拉电阻输出电流( IIL)。 P3 口除了作为一般的 I/O 口 线外,更重要的用途是它的第二功能 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。 RST 复位输入。 当振荡器工作时, RST 引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG 当访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。 一般情况下, ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 Flash 存 储器编程期间,该引脚还用于输入编程脉冲( PROG)。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。 该位置位后,只有一条 MOVX 和 MOVC 指令才能将ALE 激活。 此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。 PSEN 程序储存允许( PSEN)输出是外部程序存储器的读选通信号,当 AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。 在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP 外部访问允许。 欲使 CPU 仅访问外部程序存储器(地址为 0000H— FFFFH),EA 端必须保持低电平(接地)。 需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端), CPU 则执行内部程序存储器中的指令。 Flash 存储器编程时,该引脚加上 +12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。 基于单片机的交通灯控制系统 11 XTAL1 振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2 振荡器反相放大器 的输出端。 主控制系统电路 主控制器采用 MCS51 系列单片机 AT89C52,是一款性能稳定的 8 位单片机。 AT89C52 单片机内部由 CPU、 8KB 的 Flash ROM、 256B 的 RAM、 4 个 8 位的 I/O 并行端口、一个串行口、三个 16 位定时 /计数器及中断系统等组成。 AT89C52 外部需接时钟电路和复位电路,单片机才能正常工作。 此外, VCC 引脚需接电源, GND 引脚需接地, EA/VPP 引脚需接上拉电阻连接到电源。 时钟电路 时钟信号用来提供单片机片内各种微操作的时间基 准,时钟信号通常用两种电路形式得到 :内部振荡和外部振荡。 MCS51 单片机内部有一个用于构成振荡器的高增益反向放大器,引脚 XTALl 和 XTAL2 分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式, 如图 31 所示。 在其外接晶体振荡器 (简称晶振 )或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲 [8]。 图 33 中,外接晶体以及电容 C2和 C3 构成并联谐振电路,它们起稳 定振荡频率、快速起振的作用,其值为 30pF 左右,晶振频率约为 12MHz。 基于单片机的交通灯控制系统 12 复位电路 为了初始化单片机内部的某些特殊功能寄存器,必须利用复位电路,复位后可使 CPU 及系统各部件处于确定的初始状态,并从初始状态开始正常工作。 单片机的复位是靠外电路来实现的,在正常运行情况下,只要 RST 引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果 RST 引脚上持续为高电平,单片机就处于循环复位状态。 复位后系统将输入 /输出 (1/0)端口寄存器置为 FFH,堆栈指针 SP 置为 07H, SBUF 内置为不定值,其余的寄存器全部清 0,内部 RAM 的状态不受复位的影响,在系统上电时 RAM 的内容是不定的。 复位操作有两种情况,即上电复位和手动 (开关 )复位。 本系统采用上电复位方式 [9]。 图 34 中 R1 和 Cl 组成上电复位电路,其值 R 取为 1KΩ , C 取为 10pF。 图 34 复位电路 图 33 时钟电路 基于单片机的交通灯控制系统 13 信号灯模块 信号灯用来显示车辆通行状况,下面以一个十字路口为例,说明一个交通灯的四种状态见图 39。 每个路口的信号的的转换顺序为:绿 —— 黄 —— 红 绿 灯表示允许通行,黄灯表示禁止通行,但已经驶过安全。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。