江西科技师范大学 通信与电子学院
《单片机应用技术》实训报告 实训题目:模拟交通灯
小组成员:龚石冲 罗仁敏 曾建伟 班 级:12电子科学与技术 指导老师:熊朝松 一、实训选题内容、要求 交通模拟灯 要求: 1、南北方向为主干道,东西方向为支路;主干路绿灯时间为45秒,红灯时间为35秒; 支路绿灯时间30秒,红灯时间为50秒,两个方向的黄灯时间都为4秒; 2、使用定时器实现时间的倒计时;用显示部件显示主干道路的倒计时变化; 3、设计三个外部按钮,分别用以手动控制紧急情况下两个方向同时禁通过;南北方向 长时间通过(不显示时间倒计时变化);东西方向长时间通过;释放按钮后则正常 通行。
二、实训计划和人员安排 经小组人员商定,分工完成任务,在课余时间完成。 若其中遇到什么问题,大家聚在一起讨论解决。具体分工如下: 1、程序编写:龚石冲 2、实体焊接:龚石冲 3、实训报告:罗仁敏 4、视频及PPT:曾建伟
三、实训选题分析 交通灯由东西南北四向灯,倒计时显示,人行横道通行指示标志等部分组成。其中东西南北四向灯中的每一向都由红、黄、绿三色灯组成;东西为一组,南北为一组。黄灯在红绿灯之间转换时亮。倒计时显示表示红、黄、绿灯亮时所剩时间。由于人行横道通行指示标志与红灯是同步的,所以在模拟交通灯时省略。交通会遇到一些突发情况。因此交通信号灯要设定一些特定功能,以防不时之需。 整个电路由单片机完成,控制部分由软件完成,硬件只负责响应。
四、方案设计 方案一:主控系统采用AT89C51单片机作为控制器,由定时器1间接控制
通行倒计时及南北和东西的通行。由按键开关完成禁止通行,东西 通行,南北通行。
方案二: 主控系统采用AT89C51单片机作为控制器,由延时函数完成信号灯 的相互转换,由定时器完成通行倒计时。由按键开关完成禁止通行, 东西通行,南北通行。
方案比较:方案二由于信号灯的相互转换与倒计时显示用的是两种独立的方法
完成,要把这两种方法运行的时间达到一致,这大大的增大了程序 的难度,而方案一切采用了同一种方法。就是程序变得了简单。占 用端口少,耗电也最小。统电源采用独立 的+5V稳压电源,有各种 成熟电路可供选用,使此方案可靠稳定。该设计可直接在I/O口上 接按键开关,精简并优化了电路。结合实际情况,显示界面采用LED 数码管动态扫描的方 法,满足了倒计时的时间显示输出和状态灯提 示信息输出的要求,减少系统的复杂度,既经济又简洁。所以选择 方案一。
五、方案实现 该交通灯有以下几个部分组成:紧急控制(按键电路)、复位电路、晶振电路、电源电路、单片机、led数码管显示、led信号指示灯。如图所示:
该交通灯控制系统有以上几个部分组成:紧急控制(按键电路)、单片机。 1各模块电路 1.1主控制系统
主控器采用AT89C51,是美国ATMEL公司生产的一款性能稳定、低功耗的单片机,兼容MCS-51系列产品指令系统及引脚。片内含4KB的可重复编程的Flash程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,使用5(1±20﹪)V的电源电压, 128×8位的内部RAM,4个8位的双向可位寻址的I/O端口,2个16位定时/计数器,6个中断源,AT89C51单片机可提供许多高性价比的应用,灵活应用于各种控制领域。 单片机的P0口及P2口应用于控制南北及东西方向的通行灯,P1口及P3.0、P3.1、P3.3、P3.4口应用于2组LED计时器的控制,P2.6、P2.7、P1.7分别用于南北方向和东西方向和禁止通行的紧急情况。 1.2 晶振电路、复位电路
1.3 通行灯输出控制 道口交通灯指示采用红、绿、黄发光二极管,南北通行、东西通行各两个。
1.4 时间显示电路 红绿灯通行时间采用数码管显示,这是一种很好的方法。通行剩余时间采用高亮7段LED发光数码管,采用共阳数码管。由于采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。虽然这样在任一时刻只有一位显示器被点亮,但由于视觉残留效应,看起来与全部显示器同时点亮效果完全一样。为了显示LED显示器的动态扫描,不仅要给显示器提供段(字形代码)的输入之外,还要对显示器加位控制,这就是通常所说的段控和位控。因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出8条段控线(有小数点显示);另一个用于输出位控线,位控线的数目等于显示器的位数。时间显示驱动电路如图所示。
时间显示驱动电路 1.5 电源电路 整个系统采用的是+5V电压。由于实训没有要求,因此可采用自制不可调的3端稳压器件,用LM7805就可以满足系统电源的要求。LM7805内部是由基准电压回路、恒流源、过流保护、过压保护和短路保护回路等8部分组成的三端集成稳压电源,且其低功耗,高效率,纹波系数小,输出电压稳定。
2.1 LED显示器简介 通常所说的LED显示器由7个发光二极管组成因此也称之为七段LED显示器,其排列形状如图3.10所示。此外,显示器中还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其他符号。LED显示器中的发光二极管共有两种连接方法: (1) 共阳极接法 把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。 (2) 共阴极接法 把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。
图3.9 LED显示器结构图 使用LED显示器时要注意区分这两种不同的接法。为了显示数字或符号,要为LED显示器提供代码,这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。各代码位的对应关系如表3.4。 表3.4 代码对应关系表 代码位 D7 D6 D5 D4 D3 D2 D1 D0 显示段 dp g f e d c b A
3.2 单片机AT89C51 AT89C51是一种高效微控制器,它是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的Flash只读程序存储器(FPEROM—Flash Programmable and Erasable Read Only Memory) 和128×8位的随机存取数据存储器(RAM),该器件采用ATMEL公司的高密度、非易失性存储技术生产,它与MCS-51系统产品兼容,AT89C51单片机功能强大,具有8Kb中央处理器(CPU)和4KbFlash程序存储器,性价比高,可应用于很多要求高性价比的场合,灵活地应用于各个控制领域。
3.2.1 AT89C51的主要性能 ·内含4Kb可重编程的FPEROM; ·与MCS-51产品指令系统完全兼容; ·128×8位的内部RAM; ·4个8位(32根)双向可位寻址的I/O端口; ·2个16位的计数/定时器; ·全双工方式的串行通道(UART); ·6个中断源; ·5个向量二级中断结构; ·最高时钟振荡频率可达12MHz; ·指令集中64条为单周期指令,支持6种寻址方式,共111条指令; ·低功耗空闲和掉电方式; ·片内振荡器和时钟电路。 3.2.2 AT89C51的引脚功能 AT89C51为双列直插(DIP)式封装的51单片机芯片,有40条引脚,其引脚示意及功能分类如图3.2所示。 图3.2 89C51单片机引脚图 各引脚功能说明如下: (1)主电源引脚 Vcc(40脚):接+5(1±20﹪)V电源正端; Vss(20脚):接地。 (2)I/O引脚 P0口(39~32脚):P0.0~P0.7统称为P0口。P0口是一组8位漏极开路型双向I/O口,分时复用为低8位地址总线和双向数据总线。作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器时,这组端口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口作为原码输入口,当Flash进行校验时,P0口输出原码,此时P0外部必须被拉高。 P1口(1~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O口使用。P1是一个带内部上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。P1口被外部下拉为低电平时,输出电流,是因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在Flash编程和校验时,P1口作为第八位地址接收。 P2口(21~28脚):P2.0~P2.7统称为P2口,一般作为准双向I/O使用。P2是一个带内部上拉电阻的8位双向I/O口。P2的输出缓冲器可驱动4个TTL逻辑门电路。当对P2端口写“1”时,内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在接有片外存储器或扩展I/O口且寻址范围超过256B时,P2口用作高8位地址总线。当给出地址为“1”时,它就利用内部上拉优势,当对外部八位地址数据存储器进行读/写时,P2口便输出其特殊功能寄存器的内容。在FLASH编程和校验时,P2口接收高八位地址信号和控制信号。 P3口(10~17脚):P3.0~P3.7统称为P3口。P3口是一组带有内部上拉电阻的8位双向I/O口。P3口的输出缓冲器可驱动4个TTL逻辑门电路接收输出电