基于单片机at89s51的交通灯设计内容摘要:

U 的处理字长或提高时钟频率。 采用双 CPU 结构,这样可以提高处理能力,改进系统设计提升系统的速度:高性能单片机增加数据总线宽度,提高了数据处理能力。 存储器的发展:主要是存储容量的扩展。 采用存储器不仅大大提高了程序固 10 化的速度,而且程序的檫写次数也高达 10 万次:内部程序存储器容量的扩大等。 单片机的应用 单片机的应用很广,分别在以下领域中得到了广泛的应用。 工业自动化:在自动化技术中,无论是过程控制技术、数据采集技术还是测控技术,都离不开单片机。 在工业自动化的领域中,机电一体化技术将发挥愈来愈重要的作用,在这种机械、微电子和计算机技术为一体的综合技术(例如机器人技术、数控技术)中,单片机将发挥非常重要的作用特别是近些年来,随着计算机技术的发展,工业自动化也发展到了一个新的高度,出现了无人工厂、机器人作业、网络化工厂等,不仅将人从繁重、重复和 危险的工业现场解放出来,还大大提高了生产效率,降低了生产成本。 仪器仪表:目前对仪器仪表的自动化和智能化要求越来越高。 在自动化测量仪器中,单片机应用十分普及。 单片机的使用有助于提高仪器仪表的精度和准确度,简化结构,减小体积,易于携带和使用,加速仪器仪表向数字化、智能化和多功能化方向发展。 消费类电子产品:该应用主要反映在家电领域。 目前家电产品的一个重要发展趋势是不断提高其智能化程度。 例如,电子游戏、照相机、洗衣机、电冰箱、空调、电视机、微波炉、手机、 IC 卡、汽车电子设备等。 在这些设备中使用了单片机后,其功能 和性能大大提高,并实现了智能化、最优化控制 信方面:较高档的单片机都具有通信接口,因而为单片机在通信设备中的应用创造了很好的条件。 例如,在微波通信、短波通信、载波通信、光纤通信、程控交换等通信设备和仪器中都能找到单片机的应用。 武器装备:在现代化的武器装备中, 如飞机、军舰、坦克、导单、鱼雷制导、智能武器设备、航天飞机导航系统,都有单片机在其中发挥重要作用。 终端及外部设备控制:计算机网络终端设备,如银行终端,以及计算机外部设备如打印机、硬盘驱动器、绘图机、传真机、复印机等,在这些设备中都使用了单片机。 近 年来随着科技的飞速发展,同时带动 自动控制系统日新月异更新, 单片机的应用正在不断地走向深 入。 11 并 行/ 接 口存储器 并 行/ 接 口中断系统定时器/ 计数器 89S51 单片机的简介 89S51 是 MCS51 系列单片机的典型产品,我们 就这 一代表性的机型进行系统的讲解。 89S51 单片机包含中央处理器、程序存储器 (ROM)、数据存储器 (RAM)、定时 /计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加 以 说明: 图 单片机内部结构示意图 中央处理器 中央处理器 (CPU)是 整个单片机的核心部件,是 8位数据宽度的处理器,能处理 8 位二进制数据或代码, CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 数据存储器 (RAM) 89S51内部有 128个 8位用户数据存储单元和 128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM只有 128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 程序存储器 (ROM) 89S51 共有 4KB掩膜 ROM, 最大可 扩展 64K 字节, 用于存放用户程序,原始数据或表格。 定时 /计数器: 12 89S51 有两个 16位的可编程定时 /计数器,以实现定时或计数产生中断用于控制程序转向。 并行输入输出 (I/O)口: 89S51 共有 4组 8位 I/O 口 (P0、 P P2或 P3),用于对外部数据的传输。 中断系统 89S51 具备较完善的中断功能,有两个外中断、两个定时 /计数器中断和一个串行中断,可满足不同的控制要求,并具有 2级的优先级别选择。 89S51 单片机的引脚 89S51 单片机内部总线是单总线结构 ,即数据总线和地址总线 是公用的 . 89S51 有 40 条引脚 , 与其他 51 系列单片机引脚是兼容的 . 这 40 条引脚可分为I/O 接口线、电源线、控制线、外接晶体线 4 部分 . 89S51 单片机为双列直插式封装结构 , 如图 所示 . 图 89S51引脚分配图 89S51 单机的电源线有以下两种: ( 1) VCC: +5V 电源线。 电源线 13 ( 2) GND:接地线。 89S51 单片机的外接晶体引脚有以下两种 : ( 1) XTAL1:片内振荡器反相放大器的输入端和内部时钟工作的输入端。 采用内部振荡器时,它接外部石英晶体和微调电容的一个引 脚。 ( 2) XTAL2:片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。 采用外部振荡器时,该引脚悬空。 外接晶体引脚。 控制线 89S51 单片机的控制线有以下几种: ( 1) RST:复位输入端,高电平有效。 ( 2) ALE/PROG:地址锁存允许 /编程线。 ( 3) PSEN 外部程序存储器的读选通线。 堆栈介绍 日常生活中,我们都注意到过这样的现象,家里洗过的碗,一只一只摞起来,最晚放上去的放在最上面,而最早放上去的则放在最下面,在取的时候正好相反 ,先从最上面取,这种现象我们用一句话来概括:“先进后出,后进先出”。 就像建筑工地上堆放的砖头、材料,仓库里放的货物,都是“先进后出,后进先出”,这实际是一种存取物品的规则,我们称之为“堆栈”。 在单片机中,我们也可以在 RAM 中构造这样一个区域,用来存放数据,这个区域存放数据的规则就是“先进后出,后进先出”,我们称之为“堆栈”。 图 堆栈指针 14 如果我们需要存放的是一批 数据,每一个数据都需要知道地址那不是麻烦吗。 如果我们让数据一个接一个地放置,那么我们只要知道第一个数据所在地址单元就可以了,如果第一个数据在 27H,那么第二、三个就在 28H、 29H 了。 所以利用堆栈这种方法来放数据可以简化操作 那么 8051 中堆栈什么地方呢。 单片机中能存放数据的区域有限,我们不能够专门分配一块地方做堆栈,所以就在内存( RAM)中开辟一块地方用于堆栈,但是用内存的哪一块呢。 还是不好定,因为 8051 是一种通用的单片机,各人的实际需求各不相同,有人需要多一些堆栈,而有人则不需要那么多,所以怎么分配 都不合适,怎样来解决这个问题 ?分不好干脆就不分了,把分的权利给用户(编程者),根据自已的需要去定吧,所以 51单片机中堆栈的位置是可以变化的。 而这种变化就体现在 SP中值的变化,看图 , SP中的值等于 27H 不就相当于是一个指针指向 27H 单元吗。 当然在真正的 51 机中,开始指针所指的位置并非就是数据存放的位置,而是数据存放的前一个位置,比如一开始指针是指向 27H单元的,那么第一个数据的位置是 28H 单元,而不是 27H 单元。 15 第 3 章 硬件电路设计 灯控制电路设计 首先来了解下交 通灯的熄亮规律。 设有一个十字路口, 3为南北方向; 4为东西方向;每个方向都设有红绿黄三中信号灯共 12 个。 4个路口的 12 个信号灯的控制亮灭规律是:设初态为 4 个路口的红灯全亮,之后 3 路口的红灯灭,绿灯亮, 4 路口的红灯亮, 3 路口方向通车。 延迟一段时间后, 3路口的绿灯熄灭,点亮 4 个绿口的红灯,之后再点亮 4 路口的绿灯,红灯熄灭, 4 路口方向开始通车。 延时一段时间后, 4 路口绿灯熄灭,黄灯开始闪烁若干次(可自己设定时间)后熄灭,而红灯点亮,然后再切换到 3 绿口方向。 然后一直循环上述过程。 由于 12个 LED 来实现红绿灯状态,若直接接在单片机的口线,路口倒计时的显示就不能实现,所以本次设计中采用一种 比较简单 电路如图 所示。 图 灯控制电路 观察图可以看出:两组发光管 (分红,黄,绿三种)一端连接在单片机上,另一端接地。 图中电阻串联的二极管的作用是为了分压,防止因上下两组发光管分压不同导致逻辑的错误 ,以及防止由于在导电的瞬间电压过高损坏二极管。 共四组和上述相同的电路分别代表东西南北四个方向的红绿灯, 使用单片机软件系统对二极管控制,高电平驱动。 16 LED显示系统 1. LED显示器的显示方法及其与单片机的接口 在单片机系统中,通常用 LED 数码显示器来显示各种数字或符号。 由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。 LED 显示 器又称数码管 ,八段 LED 显示器由 8 个发光二极管组成。 其中 7 个发光二极管构成字型“ 8”的各个笔画段 ,另一个小数点为 dp 发光二极管。 LED显示器有两种不同的形式:一种是发光二极管的阳极都连在一起的,称之为共阳极 LED 显示器;另一种是发光二极管的阴极都连在一起的,称之为共阴极 LED显示器。 共阴和共阳结构的 LED 显示器各笔划段名和 安排位置是相同的。 当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示各种字符。 8 个笔划段hgfedcba 对应于一个字节( 8 位)的 D7 D6 D5 D4 D3 D2 D1 D0,于是用 8 位二进制码就可以表示欲显示字符的字型代码。 例如,对于共阴 LED显示器,当公共阴极接地(为零电平),而阳极 hgfedcba 各段为 0111011 时,显示器显示 P字符,即对于共阴极 LED 显示器, “P” 字符的字形码是 73H。 如果是共阳 LED显示器,公共阳极接高电平,显示 “P” 字符的字形代码应为 10001100( 8CH)。 图 LED数码管显示电路 LED 显示方式有动态显示和静态显示两种方式。 本系统采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的 8个笔划段 ah同名端连在一起, 17 而每一个显示器的公共极 COM 各自独立地受 I/O 线控制。 CPU 向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于COM 端。 也就是说我们可以采用分时的方法,轮流控制各个显示器的 COM端,使各个显示器轮流点亮。 在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约 1ms),但由于人的视觉暂留现象及 发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。 常用的 LED 显示器有 LED 状态显示器(俗称发光二极管)、 LED 七段显示器(俗称数码管)和 LED十六段显示器。 发光二极管可显示两种状态,用于系统状态显示;数码管用于数字显示; LED十六段显示器用于字符显示。 本节重点介绍 LED 七段显示器。 共阴极数码管的 8个发光二极管的阴极(二极管负端)连接在一起。 通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。 当某段驱动电路的输出端为 高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。 此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 编程扫描方式是利用 CPU 完成其它工作的空余时间,调用键盘扫描子程序来响应键盘输入的要求。 在执行键功能程序时, CPU不再响应键输入要求,直到 CPU重新扫描键盘为止。 LED 数码管采用静态显示与单片机接口时,共阴级或共阳级点连接在一起接地或接高电平。 每个显器位的段选线与一个 8 位并行口线对应相连,只要在显示位上的段选线上保持相应的显示 字符。 这里的 8位并行口可以直接采用并行 I/O 接口线,也可以采用串入 /并出的移位寄存器或是其他具有三态功能的锁存器等。 为了节省 I/O 口线,通常采用串行口,工作子方式 0作静态 LED 显示器的接口。 前面已经分析过相向的灯的状态和倒计时都是相同的,所以为了节省,采用 四 组 两 个数码管作为倒计时的显示;同时为了节省口资源,采用串口显示的方式驱动数码管。 2. 74LS164 简介 74LS164 是 8 位串入并出移位寄存器。 A、 B为串行输入端, QA与 QH为串行输出端, CLK 为串行时钟输入端, CLR 为串行输出 QB0 和 QH0代表在稳态输入条 18 件建立之前 QA、 QB 和 QH的输出状态; QAn、 QBn 和 QHn 代表在最近的时钟上升沿转换之前 QA、 QB 和 QH的输出状态; H/L、 Qan和 QBn 代表在最近的时钟上升沿转换之后 QA、 QB 和 QH的输出状态。 清零端, VCC为 +5V 电源输入端, GND 为接地端。 X 代表任意状态。 本题实际上是利用串行的方式来扩展并行输出显示口。 在 MCS51 里,直接使用串行口很容易操作。 将 MCS51 单片机的串行口设置在工作方式 0,只要把数据往 SBUF 里放,系统就自动将串行数据由 RXD( )送出,其中移位时钟由 TXD( )送出。 SBUF 的具体使用可预先参阅有关“ 串行通信基础”的资料。 图 74LS164 引脚图 依据输入输出关系图,将 74LS164 的 A、 B 端与 RXD 相接, CLK 与 TXD相接, CLR 接高电平 +5V,在满足条件时数据就传送到 74LS164 并寄存,管脚将自动置成相应的电平。 将前一个 74LS164 的 QH 端连接到下一个 74LS164 的 QA端,再将 CLK 端连接到一起并接到 TXD,则送数据时,前后数据就会依次从上一个片子 传到下一个片子。 这里硬件设计上只需要扩展四个并行输出显示口,因此 TXD 的驱动能力不容置疑,按上述直接相连就可以,不需要在 TXD 与 CLK之间作驱动处理。 74LS164 的输出端 QA、 QB~QH 无内置的限流电阻,一般不能与 LED 数码管直接相连,需加外接限流电阻,这里采用 300Ω限流电阻。 左边 LED 数码管用于显示键入的数,右边两个 LED 数码管用于显示数平方后的结果。 在程序上,根据所设计的硬件, 74LS164 之间是串接在一起来串行传送数据的,不能直接对其中某一个 74LS164 进行数据操作,因此显示时要对各个 74LS164 的数据都送一遍才能正确显示数据。 本题平方值的求取还是采用查表的方法,主程序与 14495 显示接口实训的基本一样,目的在于突出端口扩展的。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。