1、LED 模拟交通灯11设计任务1.1 功能及技术指标要求 设计交通灯的基本要求 :设计一个十字路口交通灯控制电路,要求主干道与支干道交替通行。主干道通行时,主干道绿灯亮,支干道红灯亮,时间为 60 秒。支干道通行时,主干道绿灯亮,主干道红灯亮,时间为 30 秒。1.2 设计内容 按设计技术指标进行交通灯的硬件和软件设计。熟悉使用 Keil 软件和 Proteus 软件。1.3 设计思路及关键技术 一个完整的交通灯相当于一个简单的单片机系统,该系统有交通灯设置电路、单片机、显示电路等构成。单片机是集成的 IC 芯片,只需根据实际设计要求选型。其他部分都需要根据应用要求和性能指标自行设计。 基于单
2、片机的交通灯的设计时要充分的认识以下两个问题: 1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态 0 为东西红灯,南北红灯。然后转状态 1 南北绿灯通车,东西红灯。过一段时间转状态 2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态 3,东西绿灯通车,南北红灯。过一段时间转状态 4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态 1。2.双色 LED 是由一个红色 LED 管芯和一个绿色 LED 管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯
3、亮;两端都加高电平时,黄灯亮。LED 模拟交通灯22.总体方案设计2.1 系统总体结构开始四个路口红灯亮东西绿灯亮,南北红灯亮,延时东西黄灯闪烁,南北红灯亮,延时东西红灯亮,南北绿灯亮,延时东西红灯亮,南北黄灯闪烁,延时2.2 单片机2.2.1 单片机简介单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写 MCU 表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有 CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和 CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
4、INTEL 的 Z80 是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O 设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 单片机内部也用和电脑功能类似的模块,比如 CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过 1
5、0 元即可用它来做一些控制电器一类不是很复杂的工LED 模拟交通灯3作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD 等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。 2.2.2 单片机的发展历史单片机诞生于 20 世纪 70 年代末,经历了 SCM、MCU、SoC 三大阶段。 SCM 即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了 SCM 与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel 公司功不可没。 MCU 即微控制器(Micro
6、Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展 MCU 的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel 逐渐淡出 MCU 的发展也有其客观因素。在发展 MCU 方面,最著名的厂家当数 Philips 公司。 向 MCU 阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了 SoC 化趋势。随着微电子技术、IC 设计、EDA 工具的发展,基于 SoC 的单片机应用系统设计会有较大的发展。因此,
7、对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。2.2.3 单片机的基本结构单片机的结构大体相同,只是在功能上存在着差异。现以 MCS-51 单片机为例来对单片机的内部功能结构进行介绍。MCS-51 单片机主要包括 9 个部分:CPU、8KB Flash ROM、256B RAM(128B SFR)、16 位3 个定时器/计数器、中断控制器、8 位4 个并行口、可编程全双工串行口、时钟电路、64KB 总线扩展控制器。(1)一个 8 位的微处理器 CPU。(2)8KB 的片内程序存储器 Flash ROM(基本型的 Flash ROM 位 128B),用于烧录运行的程序、常数
8、数据。(3)256B 的片内数据存储器 RAM(基本性的 RAM 为 128B),在程序运行时可以随时写入和读出数据,用于存放函数相互传递的参数、接收的外部数据、运算的中间结果、最后结果及现实的数据等;128B 特殊功能寄存器(SFR)控制单片机各个部件的运行。(4)3 个 16 位的定时器/计数器(基本型仅有 2 个定时器),每个定时器/计数器可以设置为计数方式,用于对外部事件信号进行计数,也可以设置为定时方式,满足各种定时要求。(5)有一个管理 6 个中断源(基本形式 5 个中断源)、2 个优先级的中断控制器。LED 模拟交通灯4(6)4 个 8 位并行 I/O 端口,每个端口即可以用作输
9、入,也可以用作输出。(7)一个全双工的 UART(通用异步接收发送器)串行 I/O 口,用于单片机之间的串行通信,或者单片机与 PC 机、其他设备、其他芯片之间的串行通信。(8)片内振荡电路和时钟发生器,只需外面接上一晶振获输入振荡信号,就可以产生单片机的控制电路。(9)有一个可寻址 64KB 外部数据存储器、还可以寻址 64KB 外部程序存储器的三总线的控制电路。以上各个部分通过片内总线相连,在 CPU 的控制下协调工作,实现用户程序的各种功能。2.2.4 单片机 AT89C51AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable
10、and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简版本。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。LED 模拟交通灯5AT89C5
11、1 单片机2.3芯片主要性能指标2.3.1 功能特性与 MCS-51 兼容4K 字节可编程闪烁存储器寿命:1000 写/擦循环数据保留时间:10 年全静态工作:0Hz-24Hz三级程序存储器锁定128*8 位内部 RAM32 可编程 I/O 线两个 16 位定时器/计数器5 个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 2.3.2管脚说明:VCC:供电电压。GND:接地。LED 模拟交通灯6P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被
12、定义为数据/地址的第八位。在 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”时,其管脚被内部上拉电阻拉高
13、,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由
14、于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在
15、 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALELED 模拟交通灯7才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有
16、效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,引脚也用于施加 12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.3.3 振荡器特性XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不
17、接。有余输入至部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.3.4 芯片擦除整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写 “1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功
18、能,直到下一个硬件复位为止。 LED 模拟交通灯83.硬件电路设计3.1 单片机最小系统单片机最小系统复位电路的极性电容 C1 的大小直接影响单片机的复位时间,一般采用 1030uF,51 单片机最小系统容值越大需要的复位时间越短。单片机最小系统晶振 Y1 也可以采用 6MHz 或者 11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51 单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。单片机最小系统起振电容 C2、C3 一般采用 1533pF,并且电容离晶振越近越好,晶振离单片机越近越好 4.P0 口为开漏输出,作为输出口时需加上拉电阻,阻值一般为1
19、0k。3.1.1 复位电路复位电路:由电容串联电阻构成,由图并结合“电容电压不能突变“的性质,可以知道,当系统一上电,RST 脚将会出现高电平,并且,这个高电平持续的时间由电路的 RC 值来决定.典型的 51 单片机当 RST 脚的高电平持续两个机器周期以上就将复位,所以,适当组合 RC的取值就可以保证可靠的复位.一般教科书推荐 C 取 10u,R 取 8.2K.当然也有其他取法的,原则就是要让 RC 组合可以在 RST 脚上产生不少于 2 个机周期的高电平.至于如何具体定量计算,可以参考电路分析相关书籍.LED 模拟交通灯9晶振电路:典型的晶振取 11.0592MHz(因为可以准确地得到 9
20、600 波特率和 19200 波特率,用于有串口通讯的场合)/12MHz(产生精确的 uS 级时歇,方便定时操作)单片机:一片 AT89S51/52 或其他 51 系列兼容单片机一、复位电路的用途单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。二、复位电路的工作原理在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。3.1.2 晶
21、振电路晶振一般采用三端式(考毕兹) 交流等效振荡电路;实际的晶振交流等效电路中,其中 Cv 是用来调节振荡频率,一般用变容二极管加上不同的反偏电压来实现,这也是压控作用的机理;把晶体的等效电路代替晶体后。其中 Co,C1,L1,RR 是晶体的等效电路。单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。3.1.3 电源电路当前市场上的交流稳压电源有继电器控制和伺服电机控制的交流稳压电源两类,前者是一种有级调整,价格低廉,效率较高,但由于是有级调整造成电压跳动和瞬间断电,用于计算机及带
22、微电脑的家用电器、智能化仪器仪表等容易造成故障。后者是一种无级调整、效率高、调压范围宽、波形失真小,但是功能比较单一,性能和可靠性欠佳,没有实现智能化,不能数字显示,更没有定时输出和闹钟作用。为此,我们研制的单片机控制多功能交流稳压电源,具有稳压精度好、效率高、适用范围宽,且能自动连续调压,波形失真小,特别是由于采用了单片机,实现了智能化,具有数字显示输出电压、稳压精度、时间、定时起止时间、闹钟时间等功能,参数可以由用户修改,而且既可以作交流稳压电源,又可以作定时输出电源。LED 模拟交通灯10LED 模拟交通灯113.1.4 串口电路LED 模拟交通灯123.2 单片机接口电路设计LED 模
23、拟交通灯134.软件设计4.1 程序流程图开始南北直行通行东西禁止南北左拐通行东西禁止AT89C51 初始化南北黄灯闪烁南北黄灯闪烁通行 35 秒YN闪烁 5 秒YN通行 15 秒YN闪烁 5 秒YN东西黄灯闪烁东西直行通行南北禁止东西左拐通行南北禁止东西黄灯闪烁通行 35 秒YN闪烁 5 秒YN通行 15 秒YN闪烁 5 秒YNLED 模拟交通灯144.2 程序清单#include sbit LED_R1=P00;sbit LED_Y1=P01; /横向路灯sbit LED_G1=P02;sbit LED_R2=P03;sbit LED_Y2=P04;/纵向路灯sbit LED_G2=P05
24、;void delayms(unsigned int t);void delay(unsigned char t);void main() while(1) unsigned char i;LED_G1=0;LED_R2=0;LED_Y1=1;LED_R1=1;LED_Y2=1;LED_G2=1;delayms(500);LED_R2=0;LED_G1=1;LED_Y2=1;LED_G2=1;for(i=0;iNew Project”菜单,如下图,:LED 模拟交通灯20选择工程文件要存放的路径 ,输入工程文件名 LED, 最后单击保存.在弹出的对话框中选择 CPU 厂商及型号LED 模拟交通
25、灯21选择好 Atmel 公司的 AT89S52 后 , 单击确定在接着出现的对话框中选择“是” 。LED 模拟交通灯22新建一个 C51 文件 , 单击左上角的 New File 如下图所示 :保存新建的文件,单击 SAVE 如下图:在出现的对话框中输入保存文件名 MAIN.C(注意后缀名必须为.C) ,再单击“保存”LED 模拟交通灯23,如下图;保存好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to Group Source Group 1 如下图:选择要加入的文件 , 找到 MAIN.C 后 , 单击 Add
26、, 然后单击 Close LED 模拟交通灯24在编辑框里输入如下代码 : 到此我们完成了工程项目的建立以及文件加入工程 , 现在我们开始编译工程如下图所示 : 我们先单击编译, 如果在错误与警告处看到 0 Error(s)表示编译通过 ;LED 模拟交通灯251. 生成 .hex 烧写文件,先单击 Options for Target,如图;2. 在下图中,我们单击 Output, 选中 Create HEX F。再单击“确定” 。LED 模拟交通灯263. 打开文件夹实验 1,查看是否生成了 HEX 文件。如果没有生成,在执行一遍步骤 10 到步骤 12,直到生成。5.3 实验结果分析优点
27、:此控制芯片功耗比较低,简单。缺点:没有紧急控制,无数码显示,不够智能化。仿真图:清晰,可靠,但功能不足。LED 模拟交通灯27总 结本次课程设计的过程是艰辛的,不过收获却是很大的。通过这次课程设计,使我更加扎实的掌握了有关电子线路方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知。通过自己亲手实践,是我们掌握的知识不再是纸上谈兵。由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。但是在我们设计和调试的过程中,也发
28、现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则效率还不是很高等等,这需要在实践中进一步完善。过而能改,善莫大焉。在课程设计过程中,我们不断发现错我,不断改正,不断领悟,不断获取。这次课程设计终于顺利完成了。在设计中遇到了很多问题,最后在老师的指导下,终于迎刃而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会极大人的认可。当然,通过这次课程设计,我也发现了自身的很多不足之处,在以
29、后的学习中,我会不断的完善自我,不断进取,能使自己在单片机编程这方面有一个大的发展。LED 模拟交通灯28致 谢本实训在选题及制作过程中得到陈晓云老师的悉心指导。老师多次询问制作进程,并为我指点迷津,帮助我们开拓研究思路,精心点拨、热忱鼓励。陈老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,给以终生受益无穷之道。对陈晓云老师的感激之情是无法用言语表达的。感谢与我同组实训的同学,在实训即将完成之际,我的心情无法平静,从开始进入设计到实训报告的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!这次实训,给予我的,是不断丰厚的学识,是从
30、容、自信和幸福的能力,还有,珍贵的友谊。微笑回首来路,一幕幕,宛在昨天。人生就是如此吧,每个段落结束的时候,我们总会感慨时光飞逝。但,该结束的总会结束,感谢所有的一切,让我有了受的机会。LED 模拟交通灯29参考文献1 李朝青,单片机原理及接口技术(简明修订版),杭州:北京航空航天大学出版社,1998。 2 李广弟,单片机基础,北京:北京航空航天大学出版社,1994。 3 阎石,数字电子技术基础(第三版),北京:高等教育出版社,1989。 4 何立民,单片机应用技术大全,北京:北京航空航天大学出版社,1994。5 张毅刚,单片机原理及接口技术,哈尔滨:哈尔滨工业大学出版社,1990。6 谭浩强
31、,单片机课程设计,北京:清华大学出版社,1989。7 胡汉才,单片机原理及其接口技术,北京:清华大学出版社,2002。8 李晓奎,单片机原理与应用,北京:电子工业出版社,2003。9 梅丽凤,王艳秋,汪毓铎,张军,单片机原理及接口技术,北京:清华大学出版社,北京交通大学出版社,2004。LED 模拟交通灯30目录1设计任务 .11.1 功能及技术指标要求 .11.2 设计内容 .11.3 设计思路及关键技术 .12.总体方案设计 22.1 系统总体结构 .22.2 单片机 22.2.1 单片机简介 .22.2.2 单片机的发展历史 .32.2.3 单片机的基本结构 .32.2.4 单片机 AT89C51 .42.3芯片主要性能指标 .52.3.1 功能特性 52.3.2管脚说明: .52.3.3 振荡器特性 .72.3.4 芯片擦除 .73.硬件电路设计 83.1 单片机最小系统 .83.1.1 复位电路 83.1.2 晶振电路 93.1.3 电源电路 93.1.4 串口电路 .113.2 单片机接口电路设计 124.软件设计 .134.1 程序流程图 134.2 程序清单 .144.3 导入程序 155.调试与检测结果分析 .175.1 实验系统连线图 175.2 调试 175.2.1 硬件调试 175.2.2 软件调试: 185.2.3 Keil uVision .18