基于proteus的交通灯控制系统的设计与仿真论文内容摘要:
件的工作直到下一个复位。 管脚介绍 VCC: 供电电压。 GND:接地。 P0 口 : P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当 P0口的管脚第一次写 1 时,被定义 为高阻 输 入。 P0能够用于外部程序数据存储器,它可以被定义为数据 /地址的第八位。 在 FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行校验时, P0输出原码,此时 P0外部必须被拉高。 P1口 : P1口是一个内部提供上拉电阻的 8 位双向 I/O口, P1口缓冲器能接收输出 4TTL 门电流。 P1口管脚写入 1 后,被内部上拉为高,可用作输入, P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在 FLASH 编程和校验时, P1 口作为第八位地址接收。 P2口 : P2口为一个内部上拉电阻的 8位双向 I/O 口, P2 口缓冲器可接收 ,输出 4 个 TTL 门电流,当 P2 口被写 “1” 时,其管脚被内部上拉电阻拉高,且作为输入。 并因此作为输入时, P2 口的管脚被外部拉低,将输出电流。 这是由于内部上拉的缘故。 P2口当用于外部程序存储器或 16位地址外部数据存储器进行存取时, P2 口输出地址的高八位。 在给出地址 “1” 时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址基于 PROTEUS 的交通灯控制系统的设计与仿真 6 信号和控制信号。 P3口 : P3口管脚是 8 个带内部上拉电阻的双向 I/O口,可接收输出 4个 TTL 门电流。 当 P3 口写入 “1” 后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平, P3口将输出电流( ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如 下 所示: RXD(串行输入口) TXD(串行输出口) /INT0(外部中断 0) /INT1(外部中断 1) T0(记时器 0 外部输入) T1(记时器 1 外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储 器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。 当振荡器复位器件时,要保持 RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 FLASH 编程期间,此引脚用于输入编程脉冲。 在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。 如想禁止 ALE 的输出可在SFR8EH 地址上置 0。 此 时 , ALE 只有在执行 MOVX, MOVC 指令是 ALE 才起作用。 另外,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。 在由外部程序存储器取指期间,每个机器周期两次 /PSEN 有效。 但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /EA/VPP :当 /EA 保 持 低 电 平 时 , 则 在 此 期 间 外 部 程 序 存 储 器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1 时, /EA将内部锁定为 RESET;当 /EA端保持高电平时,此间内部程序存储器。 在 FLASH编程期间,此引脚也用于施加 12V 编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 其管脚图如下图 32 所示: 基于 PROTEUS 的交通灯控制系统的设计与仿真 7 图 32 AT89C51 管脚图 内部中断系统 MCS51 单片机是一个多中断源的单片机,有五个中断源 :外部中断 0、外部中断 定时器 0 中断、定时器 1中断和串行口接受或发送中断。 各中断源的中断处理程序入口地址如下表 31 所示 表 31 中断向量表 中断源 入口地址 外部中断 0 0003H 定时器 0 000BH 外部中断 1 0013H 定时器 1 001BH 串行口 0023H 中断的开放或禁止是由中断允许寄存器 IE 控制的。 IE格式如下表 32所示 表 32 IE格式 EA / / ES ET1 EX1 ET0 EX0 基于 PROTEUS 的交通灯控制系统的设计与仿真 8 其中与中断有关的控制位共 6位: EA—— 中断允许总控制位 EA= 0 中断总禁止,禁止所有中断 EA= 1中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位进行设置。 EX0 和 EX1—— 外部中断允许控制位 EX0( EX1)= 0 禁止外部中断 EX0( EX1)= 1 允许外部中断 ET0 和 ET1—— 定时器 /计数器中断允许控制位 ET0( ET1)= 0 禁止定时器 /计数器中断 ET0( ET1)= 0 允许定时器 /计数器中断 ES—— 串行中断允许控制位 ES=0 禁止串行中断 ES=1 允许串行中断 MCS51 单片机的中断优先级控制比较简单,因为系统只定义了高、低 2 个优先级。 高优先级用“ 1”表示,低优先级用“ 0”表示。 各中断源的优先级由中断优先级寄存器( IP)进行设定。 IP 格式如下表 33所示。 表 33 IP格式 / / / PS PT1 PX1 PT0 PX0 其中: PX0—— 外部中断 0 优先级设定位; PT0—— 定时中断 0优先级设定位; PX1—— 外部中断 1 优先级设定位; PT1—— 定时中断 1优先级设定位; PS—— 串行中断优先级设定位。 中断优先级控制位的意义是: 0 为设定为低优先级中断源; 1 设为高优先级中断。 如果同优先级的多个中断请求同时出现时,则按单片机的 CPU查询次序确定哪个中断请求被响应,其查询次序为: IE0、 IF0、 IE IF R1或 T1。 定时系统 在控制系统中,常常要求一些实时时钟以实现定时 或延时控制,如定时中断、定时检测、定时扫描等等,也往往要求有计数器能对外部事件计数。 MCS51 单片机有 2 个定时器,称为定时器 0( T0)和定时器 1( T1)。 MCS51 单片机的定时器由计数器 0,计数器 1,方式控制寄存器和定时器控制寄存器组成。 计数器 0和计数器 1 分别由 8 位计数器 TH0、 TL0、 TH TL1 构成。 TH0、 TL0、 TH TL1 是不能位寻址的特殊功能寄存器,通过对 TH0、 TL0、基于 PROTEUS 的交通灯控制系统的设计与仿真 9 TH TL1 的初始化编程来控制 T0 和 T1的计数初值。 MCS51单片机的两个计数器 TH0、 TL0 和 TH TL1可以构成 16位的计数器、13 位的计数器和 8 位的计数器。 计数器是定时器 T0 和 T1 的核心,它可以对外来事件计数;也可以对单片机的机器周期计数。 一个机器周期等于 12 个振荡脉冲周期,因此计数频率为振荡频率的 12 分之一。 这样,不但可以根据计数值计算出定时时间,也可以反过来按定时时间的要求计算出计数器的预制值。 计数器是加法计数器,所以预制值得计数初值为计数值的补码。 定时器的工作方式有: T0有方式 0,方式 1,方式 2 和方式 3 四种工作方式。 T1 有方式 0,、方式 1 和方式 2 三种工作方式。 T0 和 T1 的工作方式由控制寄存器 TMOD 寄存器来控制。 TMOD 寄存器是不能位寻址的特殊功能寄存器,各位定义如下 表 34所示 : 表 34 TMOD寄存器 GA C/T M1 M0 GAT C/T M1 M0 GATE 门控制 : GATE=1 时,由外部中断引脚 INT0、 INT1 来启动定时器T0、 T1。 当 INT0 引脚为高电平时 TR0 置位,启动定时器 T0; 当 INT1 引脚为高电平时 TR1 置位,启动定时器 T1。 GATE=0 时,仅由 TR0,TR1 置位分别启动定时器 T0、 T1。 C/T 功能选择位 : C/T=0 时为定时功能, C/T=1 时为计数功能。 置位时选 择计数功能,清零时选择定时功能。 M M0 方式选择功能 : 由于有 2 位,因此有 4 种工作方式 0011。 分别为选择方式 0( 13位定时器)、方式 1( 16位定时器)、方式 2( 8 位自动重装载定时器)和方式 3( T0 分成两个 8 位的定时器)。 时钟模块 51 系列单片机内由一个反相放大器构成振荡器,可以由它产生时钟。 时钟可以由两种方式产生:内部方式和外部方式两种。 内部方式:一些新型的 51系列单片机可以采用内部电路来产生时钟,不需外接任何元件就可以产生时钟信号,称为内部时钟,但是内部时钟由于没有高精度的石英晶体振荡器 稳频,精度低,主要用于对事件要求不高的场合。 外部方式:可以通过 XTAL1 和 XTAL2 接入外部时钟, XTAL1 和 XTAL2 分别为反向放大器的输入和输出。 此次设计采用 外 部方式, 在 XTAL1 和 XTAL2 引脚上外接定时元件就能构成自激振荡电路。 定时元件通常采用石英晶体和电容组成的并联谐振电路。 电容 C1 和 C2主要起频率微调作用,如图 33所示。 基于 PROTEUS 的交通灯控制系统的设计与仿真 10 图 33 谐振电路 LED 显示 模块 LED 就是 light emitting diode,放光二极管的英文缩写。 它是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。 模块 结构 LED 显示 模块 是发光二极管显示字段的显示器件。 在单片机应用系统中通常使用的是七段 LED。 七段 LED 内部由 7个条形发光二极 管和一个圆点发光二极管组成。 本设计中采用的是 7SEGMPX2CC 两位数码管,该数码管为红色数码管,每一段数码管内部相当于有一个红色发光二极管。 发光二极管具有单向导电性,只有当外加的正向电压使得正向电流足够大时才发光,它的开启电压比普通二极管的大,红色的在 到 伏之间,绿色的约为 2伏。 正向电流越大,发光越强。 接线形式 本设计中采用 7SEGMPX2CC 两位数码管是共阴极接法即公共点是地。 计算机与七段显示器的接口,分为静态显示接口和动态显示接口。 静态接口是每个七段显示器单独用一组寄 存器控制,将其公共点接地。 动态接口使用两组寄存器。 几个显示器的七段用一组寄存器控制,该寄存器称作段选寄存器。 另外一组寄存器控制这几个七段显示器的公共点,控制这几个显示器逐个循环点亮。 适当选择循环速度,利用人眼视觉停留效果,使得看上去好像这几个七段显示器同时在显示一样。 控制公共点的寄存器称为位选寄存器。 本次设计采用的四个数码管 接线如图 34 所示: 基于 PROTEUS 的交通灯控制系统的设计与仿真 11 T10T11T12T13T14T15T16W0W1 图 34 数码管 接线图 如图所示,“ 1”、“ 2”由 位 选寄存器控制, A 到 G由 段 选 寄存器 控制 ,点亮数码管。 这样 ,东西向两个数码管,南北向两个数码管, 数码管显示倒计时 ,控制车道,和人行道。 按键电路模块 考虑到交通过程中的三种特殊情况,本次设计使用了三个控制按键,来分别处理上文所说的三种特殊状况。 按键 模块 接 线图 如下图所示: 图 35 按键模块 接线图 P3 口默认值为 1,当开关按下时使 P3 口置 0,触发按键事件发生。 从上开始数按键编号为 key key key3,当 key1键按下时 会出现全红的状态,这时数码管显示 50,开始倒计时,倒计时为 0 后,进入正常状态, 这个特殊状态适用于紧急车辆驶过十字路口;当 key2键按下时会出现东西方向开绿灯,南北向红灯,随即东西向人行道绿灯,数码管显示 25秒,开始倒计时,倒计时为 0 后也进入正常状态 ,这个特殊状态可以处理某一基于 PROTEUS 的交通灯控制系统的设计与仿真 12 方向车流量较大的情况; key3 的功能同 key2 键。 信号灯显示模块 信号灯显示这部分模块,相对比较 简单,这时因为 Proteus 仿真工具就有交通灯这个元器件。 其硬件图如图 36 所示: 图 36 信号灯模块 如图所示,红、绿、黄三色灯分别对应一个接口,通过 单片机的 P2口控制写入“ 1”时点亮。 本次设计 中使 用 了 12 个信号灯模块,来控制十字路 口 包括人行道的交通。 4 软件设计 软件 设计 采用 C语言开发,利用 KEIL 软件调试。 主。基于proteus的交通灯控制系统的设计与仿真论文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。