本科生毕业设计单片机模拟交通灯的设计(编辑修改稿)内容摘要:

体谐振器和微调电容;当使用外部时钟时,用于接入外部时钟脉冲信号。 6 ( 3)控制引脚 RST/VPD:复位 /掉 电保护信号输入端。 RST 为 复位信号输入。 Vcc 掉电后,此引脚 ( VPD) 可接备用电源,低功耗条件下保证内部 RAM 中的数据。 ALE/PROG : 地址锁存控制信号 /编程脉冲输入端 ALE 为 地址锁存允许。 当单片机访问外部存储器时,该引脚的输出信号 ALE 用于锁存 P0 端口的低 8 位地址。 ALE 输出的频率为时钟振荡频率的 1/6。 对 8751 单片机片内EPROM 编程时,编程脉冲由此引脚接入。 PSEN :片外程序存储器读选通有效信号 取指令操作期间, PSEN 的频率为振荡频率的 1/6; 但若此期间有访问外部数据存储器的操作时,则有一个机器周期中的 PSEN 信号将不会出现。 EA /VPP:访问程序存储器控制信号 /编程电源输入端 当 EA =0 时 单片机只访问外部程序存储器。 对于 8031 单片机此引脚必须接地。 EA =1,单片机访问内部程序存储器。 对于内部有程序存储器的 8xx51 单片机,此 引脚应接高电平,但若地址超过 4KB 范围( 0FFFH),单片机将自动访问外部程序存储器。 在 8751 单片机片内 EPROM 编程期间,此引脚接入 21V编程电源 Vpp。 ( 4) I/O 引脚 — : P0 口 数据 /低 8 位地址复用总线端口。 —: P1 口 静态通用端口。 —: P2 口 高八位地址总线动态端口。 —: 双功能静态端口,具有第二功能。 表 21 P3口线的第二功能说明 口线 第二功能信号 第二功能信号名称 RXD 串行数据接收 TXD 串 行数据发送 INT0 外部中断 0 申请 INT1 外部中断 1 申请 T0 定时器 /计数器 0 计数输入 T1 定时器 /计数器 0 计数输入 WR 外部 RAM 写选通 RD 外部 RAM 读选通 7 时钟电路 本设计采用 AT89C51 单片机 的内部时钟方式, 在 XTAL1 和 XTAL2 引脚上外接定时元件 , 内部振荡电路就产生自激振荡。 定时元件通常石英晶体和电容组成的并联谐振回路 ,晶 体 振 荡器 选择 12MHz, 电容采用 30pF。 图 25 时钟电路 复位 电路 单片机复位是使 CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后 PC= 0000H, 使单片机从第 — 个单元取指令。 无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚 MCS51型单片机复位的条件、复位电路和复位后状态。 单片机复位的条件是:必须使 RST/VPD或 RST引脚加上持续两个机器周期 (即 24个振荡周期 )的高电平。 例如,若时钟频率为 12MHz,每机器周期为 1us,则只需 2us以上时间的高电平,在 RST引脚出现高电平后的第二个机器周期执行复位。 本设计所用的复位电路如图25所示: C310 U FR310 K+5 图 26 复位电路 RST EA C1 30pFC2 30pFX112MHzXTAL1XTAL28 单片机的最小系统构成 单片机控制系统是由单片机和外围电路组成的,用最少的元件组成的单片机系统被称为单片机最小系统。 即主要有电源电路、晶振电路、复位电路构成。 图 27 单片机最小系统构成 7405 TTL 集电极开路六反相器 7045 为六路反相器其内部由 6 个与非门组成,在设计中 7405 反相器的输入端 与单片机 的 ~ 相连,输出端与 LED发光二极管 的负极 相连,以实现对不同的状态下的 LED进行控制。 例如 当单片机的 I/O 口输出高电平时,经过 7405 反相器输出低电平使该路的LED 点亮。 图 28 7405 一路反相 指示电路 本设计中采用红、绿、黄三种颜色的 发光 二极管 各 4 个 通过 7405 反相器与单片机的P2 口的相应引脚相连,在不同状态下点亮不同的二极管 实现对道路的控制。 发光二极管是 半导体二极管的一种,可以把电能转化成光能 , 简写为 LED。 发光二极管与普通二极管一样是由一个 PN 结组成,也具有单向导电性。 当给发光二极管加上正向9 电压后,从 P 区注入到 N 区的空穴和由 N 区注入到 P 区的电子,在 PN 结附近数微米内分别与 N 区的电子和 P 区的空穴复合,产生自发辐射的荧光。 不同的半导体材料中电子和空穴所处的能量状态不同。 当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。 图 29 红、绿、蓝三种颜色的发光二极管 LED 数码显示器 LED 是 Light Emiting Diode(发光二极管)的缩写,发光二极管是能将电信号转换为光 信号的 发光器件。 由条形发光二极管组成“ 8”字形的显示器,也 称 数码管。 通过数码管中发光二级管的亮暗组合,可以显示多种数字、字母以及其他符号。 数码管在单片机应用系统中主要用于显示单片机的输出数据和状态等。 LED 显示器为发光二极管构成的显示器件。 常用的 LED 显示器有两种供应状态,既共阴极 LED 与共阳极 LED。 图 210 LED 数码管 结构图 10 LED 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据 LED 数码管的驱 动方式的不同,可以分为静态式和动态式两类。 静态显示驱动: 静态驱动也称直流驱动。 静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O口 进行驱动,或者使用如 BCD 码二 — 十进位器进行驱动。 动态显示驱动: 动态驱动是将所有数码管的 8 位段码 a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位 选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到 相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位 选通 COM 端电路的控制,所以我们 只要将需要显示的数码管的选通控制打开 被选中的数码管就会显示字符 ,没有选通的数码管就不会亮。 在设计中我们采用静态显示方式,利用 8 个数码管每个方向各两个与 AT89C51 的 P1口和 P3 口相连用来显示倒计时的十位和个位。 11 3 系统 软件设计 系统 整体 程序流程图 图 31 系统整体 程序流程图 设置定时,显示初始化 在单片机应用系统中,实现定时的方法一般有以下三种: ( 1) 软件定时:让计算机执行一 段程序来进行事 件延时。 这 个程序段本身 没有安排其他的执行目的,只是利用该程序段 执行花费的一个固定时间。 通过适当的选择指令和安排循环次数,可调节这段程序执行所需花费的 时间的长短。 其特点是定时时间精确,不需外加硬件电路,但占用 CPU时间。 因此软件定时的时间不宜过长。 ( 2) 硬件定时:利用硬件电路实现定时。 其特点是不占用 CPU时间,通过改变电路元器件参数来 调 节定时,但使用不够灵活方便。 对于时间较长的定时,常用硬件电路来实现。 ( 3) 可编程定时器:通过专用的定时计数器芯片来实现。 其特点是通过对系统时钟设置定时,显示初始化 开始 处理状态、显示 时间到否。 处理下一状态 结束 是 否 12 脉冲进行计数实现定时,定时的时间可通过程 序的设定的方法改变,使 用灵活方便。 也可实现对外部脉冲的计数功能。 当定时计数器设置为计数工作方式时,计数 器对来自输入引脚 T0 和 T1 的外部信号计数,外部信号的下降沿将触发计数。 最高检测频率为振荡频率的二十四分之一。 计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。 当设置了定时器的工作方式并启动定时器工作后,定时器就 按照 设定的工作方式独立工作,不 再 占用 CPU的操作时间,只有在计数器计满溢出时才能中断 CPU当前的操作。 延时方法可以有两种,一种是利 用 MCS51 内部定时器 产 生溢出中断来确定 1 秒的时间,另一种是采用软延时的方法。 定时器工作时必须给计数器送计数器初值,这个值是送到 TH 和 TL 中的。 它 是以加法记数的,并能从全 1 到全 0 时自动产生溢出中断请求。 因此,我们可以把计数器记满为零所需的计数值设定为 C 和计数初值设定为 TC 可得到如下计算通式 : TC=M – C ( 4 – 1) 式中, M 为计数器模值,该值和计数器工作方式有关。 在方 式 0 时 M 为 8196; 在方式 1时 M 的值为 65536;在方式 2 和 3 为 256。 T=( M TC) *T计 数 或 TC= MC/T计 数 ( 4 – 2) T计 数 是单片机时钟周期 CLKT 的 12 倍; TC 为定时初值 如单片机的主脉冲频率 CLKT =12MHz,经过 12 分频 方式 0 m a x 13 *T = 2 1 u s 8 .1 9 2 m s ( 4 – 3) 方式 1 m a x 16T = 2 * 1 u s 6 5 .5 3 6 m s ( 4 – 4) 我们在这里采用的是方式 1,则初始值 TC=6553650000 TH0=(6553650000)/256 TL0=(6553650000)%256 ( 4 – 5) 显然 1 秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题。 我们采用在主程序中设定一个初值为 1 的软件计数器和使 T0 定时 50 毫秒.这样每当T0 到 50 毫秒时 CPU就响应它的溢出中断请求,进入他的中断服务子程序。 在中断服 务子程序中, CPU先使软件计数器加 1,然后判断它是否为 20。 为 20 表示 1 秒已到可以返回到输出时间显示程序。 设置定时程序: 13 START: MOV TMOD,01H。 置 T0 工作方式 1 MOV TH0,3CH。 置 T0 定时初值 50ms MOV TL0,0B0H CLR TF0 SETB TR0。 启动 T0 CLR A 处理状态、倒计时显示 图 32 状态处理流程图 当处理到相应的状态时调用所对应的状态子程序和显示子程序来点亮该状态下的发光二极管来表示是否允许通 过并利用 LED 数码管显示倒计时间。 通过比。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。