1、南 通 航 运 职 业 技 术 学 院课程设计(论文)班级 港电 3101 专业 港口电气 题目 交通灯控制系统 学生姓名 32 刘志永 31 戴永伟 09 吴杰 指导教师 张崇辉 2011 年 11 月 24 日摘 要摘要本设计是在熟练掌握单片机及其仿真系统使用方法基础上,综合应用单片机原理、微机原理等课程方面的知识,设计一个采用 AT89C51 单片机控制的交通灯控制电路。该设计结合实际情况给出了一种简单低成本城市交通灯控制系统的硬件及软件设计方案、各个路口交通灯的状态循环显示,并对程序流程图进行详细讲解分析。硬件的设计采用 89ATC51 单片机为核心器件。并辅助复位电路,驱动电路,数码
2、管及晶体管显示部分。通过中断扩展实现交通灯系统特殊情况的转换。本设计利用单片机控制可以实现以下功能:(1)A 道和 B 道上均有车辆要求通过时,A,B 道轮流放行。A 道放行 5 分钟(调试时改为 5秒钟) ,B 道放行 4 分钟(调试时改为 4 秒钟) 。(2)一道有车而另一道无车(实验时用开关 K0 和 K1 控制) ,交通灯控制系统能立即让有车道放行。(3)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A,B 道均为红灯,紧急车由 K2开关模拟。(4)绿灯转换为红灯时黄灯亮 1 秒钟关键词:51 单片机;交通灯控制系统;PROTEUS 仿真;目 录目 录摘 要1 概述11.1 设计任务
3、书11.2 设计思路12 硬件电路设计12.1 系统总体方案12.2 硬件设计13 程序设计6目 录3.1 程序流程图63.2 软件系统设计74Proteus 软件仿真74 源代码8总结与分析12参考文献121 概述1.1 设计任务书目 录设计个单片机控制的交通灯控制系统,可以实现以下功能:1.2 设计思路南北红灯亮东西绿灯亮 25 秒南北红灯亮东西黄灯亮 5 秒南北绿灯亮东西红灯亮 25 秒南北黄灯亮东西绿灯亮 5 秒图 21 交道口模型图2 硬件电路设计2.1 系统总体方案(1)硬件设计部分为实现所要求的功能,首先参考多种参考资料,选用 89ATC51 单片机为硬件设计的核心器件。它具有
4、128*8 位内部 RAM,有 32 根可编程 I/O 线、两个 16 位定时器/计数器、5 个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。其次采用74LS245 驱动电路驱动 LED 晶体管显示部分, 由 89ATC51 的 P2.1 口控制北边和东边剩余时间的十位数的显示,P2.0 控制北边和东边剩余时间的个位数的显示。用 P1 端口作为输出端口,用 P1.2 到 P1.7 端口分别控制东和北两组灯的状态,低电平点亮,用数码管显示黄、红、绿灯。通过中断扩展实现交通灯系统特殊情况的转换。(2)软件设计部分软件设计部分,分为一个主程序和两个中断子程序,一个用于有紧急车
5、辆通过时,系统目 录要能禁止普通车辆通行,实行中断可使A、B两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即A道放行,假如B道有车A道无车,长按K1可以控制交通灯系统能立即B道放行。2.2 硬件设计(1)AT89C51简介 功能: 1AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。具有128*8位内部RAM,有32根可编程I/O线、两个
6、16位定时器/计数器5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。 管脚说明: 2VCC:供电电压。GND:接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL门电流。P1 口管脚写入 1
7、 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输
8、出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。目 录P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入 “1”后,它们被内部上拉为高电平,并用 作输入。作为输入,由于外部下拉为低电平, P3 口将输出电流(ILL)这是由于上拉的缘 故。P3 口也可 作为 AT89C51 的一些特殊功能口,如下表所 示:口管脚 备选功 能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(记 时器 0 外
9、部输入)P3.5 T1(记 时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节PSEN:外部程序存储器的选通信号。EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。当/EA 端保持高电平时,此间内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性: 3XTAL1 和
10、XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除: 4整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被目 录重复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置
11、模式下,CPU 停止工作。但 RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。(2)复位部分:连接如图:(3)显示部分:数码管显示部分 1采用四位一体共阴数码管,分别显示西和北的剩余时间,A 到 G 为码段控制端口,1 到4 为片选端口。数码段显示部分通过 74LS245 接单片机管脚的 P0 口,片选部分由 P2.0 到 P2.1提供,具体的共阴数码管见图。其中 P2.1 控制北边和西边剩余时间的十位数的显示;P2.0控制北边和西边剩余时间的个位数的显示。目 录晶体管显示部分 2由于对称性,设计时只设计了西北两个方向。由红黄绿按要求显示。用 P1 端口作为输出端口,用 P1.2 到 P1.7 端口分别控制西和北两组灯的状态,低电平点亮,具体端口功能如下:P1.2 控制北边红灯的亮灭;P1.3 控制北边黄灯的亮灭;P1.4 控制北边绿灯的亮灭;P1.5 控制东边红灯的亮灭;P1.6 控制东边黄灯的亮灭;P1.7 控制东边绿灯的亮灭。