《课程设计报告--单片机控制十字路口交通灯撞红灯报警.doc》由会员分享,可在线阅读,更多相关《课程设计报告--单片机控制十字路口交通灯撞红灯报警.doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、- .目 录第一章 设计说明31.1 设 计 容 31.2 主 要 设 备 与 器 材31.3设计要求3第 二 章 硬 件 方 案32.1 设 计 思 路32.2 原 理 电 路 图32.3 主 要 元 件 功 能 说 明42.3.1 8255A的 主 要 功 能52.3.2 ADC0809的 主 要 功 能52.3.3 2817A的 主 要 功 能52.4 工 作 原 理 阐 述5第 三 章 软 件 方 案3.1分析论证63.1.1 显示模块63.1.2 运算模块63.2 程序流程图73.3 程序清单10第 四 章 调 试 过 程 及 结 果 分 析19第 五 章 设 计 总 结20 参考文
2、献20第 一 章 设 计 说 明1.1 设计容设计用单片机控制的十字路口交通灯及撞红灯报警,并编程实现这些功能。1.2 主要设备与器材PC机一台,TSC实验箱一个或MCS-51单片机仿真器一台,并行接口芯片8255A一片,发光二极管红、绿、黄三色各4个,E2PROM存储器2817A一片,ADC0809一片,扬声器或音乐芯片一只,其他器材任选。1.3 设计要求1用8255A驱动三种颜色的12只发光二极管,用软件使它们模拟十字路口交通灯的功能。2当某一方向的红灯亮时,假设有车辆通过,那么用单片机控制扬声器发声报警。撞红灯的信号可用传感器采集并转换成数字量,这里以采集到一个35V的模拟电压表示。第
3、二 章 硬 件 方 案2.1 设计思路本系统硬件上采用8051单片机和并行接口芯片8255A,分别控制图2所示的四个组合。8051单片机具有MCS-51核,片有128字节的SRAM作为片数据存储器使用,字节地址为00H7FH.。还有21个特殊功能存放器用于各种编程控制。它还有4KB的片程序存储器掩膜ROM,地址为0000H0FFFH。最高工作频率可达24MHz,完全可以满足本系统的需要 ;与其他控制方法相比,所用器件可以说是比拟简单经济的。1、电源提供方案为使模块稳定工作,须有可靠电源。我们考虑了两种电源方案方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各
4、模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约本钱;缺点是输出功率不高。综上所述,我们选择第二种方案。2、显示界面方案该系统要求完成。基于上述原因,我们考虑了三种方案:方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。方案二:完全采用点阵式LED 显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。方案三:采用数码管与点阵LED 相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分
5、别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。3、输入方案:题目要求系统能手动设灯亮时间、紧急情况处理,我们讨论了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。该方案的优点是:使用灵活可编程,并且有RAM,及计数器。假设用该方案,可提供较多I/O 口,但操作起来稍显复杂。方案二:直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比拟多,我们使用四个按键,分别是K1、K2、K3、K4。由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口
6、就可实现,且本身的计数器及RAM已经够用,应选择方案二。2.2 原理电路图说明:8255A由个8为的并行的I/O端口,分别是PA口、PB口、PC口,这些端口可以通过控制软件编程来改变它们的工作方式,并且8255A可以与MCS-51单片机直接接口。用8255A驱动3种颜色的12只发光二极管,用软件使它们模拟十字路口交通灯的功能。而某一辆车的撞红灯,那么用一个输入脉冲来实现。用ADC0809实现撞红灯信号的采集并转换成数字量。图1是一个十字路口示意图。分别用1、2、3、4说明四个流向的主车道,用A、B、C、P分别表示各主车道的左行车道、直行车道、右行车道以及人行道。用a、b、c、p分别表示左转、直
7、行、右转和人行道的交通信号灯,如图2所示。交通灯闪亮的过程:路口1的车直行时的所有指示灯情况为:3a3b2p绿3c红+4a4b4c 3p全红+1c 绿1a1b4p红+2c绿2a2b1p红路口2的车直行时的所有指示灯情况为:4a4b3p绿4c红+ 1a1b1c 4p全红+ 2c绿2a2b1p红+3c绿3a3b2p红故路口3的车直行时的所有指示灯情况为:1a1b4p绿1c红+ 2a2b2c 1p全红+3c绿 3a3b2p红+4c 绿4a4b3p红故路口4的车直行时的所有指示灯情况为:2a2b1p绿2c红+3c3a3b2p全红+4c绿4a4b3p红+1c绿1a1b4p红图1:十字路口交通示意图 图2
8、:十字路口通行顺序示意图图3:十字路口交通指示灯示意图2.3 主要元件功能说明2.3.1 8255A的 主 要 功 能8255引脚图和引脚功能资料8255引脚功能:单片机系统里常用的8255芯片是一个典型的可编程通用并行接口芯片,用来扩展单片机的端口,它具有3个8位的并行口,有三种工作方式,可作为单片机与各种外部设备连接的接口电路! 下面介绍8255的引脚图及引脚功能。PA3- 1 40 -PA4 GND- 7 34 -D0 PA2- 2 39 -PA5 A1- 8 33 -D1PA1- 3 38 -PA6 A0- 9 32 -D2PA0- 4 37 -PA7 PC7- 10 31 -D3RD
9、- 5 36 -WR PC6- 11 30 -D4 PC5- 12 29 -D5 PC4- 13 28 -D6 PC0- 14 27 -D7 PC1- 15 26 -VCC PC2- 16 25 -PB7 PC- 17 24 -PB6 PB0- 18 23 -PB5 PB1- 19 22 -PB4 PB2- 20 21 -PB3 8255引脚功能说明: RESET:复位输入线,当该输入端外于高电平时,所有部存放器包括控制存放器均被去除,所有I/O口均被置成输入方式。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,
10、一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进展通讯。 RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255
11、。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。表4 8255芯片的引脚信号说明引脚信号 引脚号 引脚名称 Vcc 26 电源的+5V端 GND 7 电源的0端 RESET 35 复位信号输入端。使部各存放器去除,置A,B,C口为输入口 36 写信号输入端,使CPU输出的数据或者控制字到8255A 5 读信号输入端。使8255A输出数据或者状态信息到CPU 6 片选端 A1,A0 8,9 地址总线的最低2位。用于决定断口地址:如A1A0为00,是A口:A1A0 为01,是B口:A1
12、A0为10,是C口:A1A0 是11,是控制字存放器 D7D0 2734 双向数据总线 PA7PA0 3740 14 A口的8位I/O引脚 PB7PB0 2518 B口的8位I/O引脚 PC7PC0 1013 1714 C口的8位I/O引脚 数据总线缓冲器:是一个8位的双向三态驱动器,用于与单片机的数据总线相连。读/写控制逻辑:根据单片机的地址信息A1 A0 与控制信息RD WR RESET,控制片的数据,CPU控制字,外设状态信息的传送。控制电路:根据CPU送来的控制字所管I/O 口按一定的方式工作。对C口甚至可按位实现置位或者复位。控制电路分为两组:A组控制电路控制A口及C口的高四位PC7
13、PC4,B组控制电路控制B口及C口的低四位PC3PC0。三个并行I/O端口:A口可编程为8位输入,或者8位输出,或者双向输出:B 口可编程为8位输入,或者8位输出,但是不可以双向传输;C口分为两个4位口,用于输入或者输出,也可以用作A口,B口的状态控制信号。3.4.2 8255的操作方式1读/写控制逻辑操作选择由单片机输出的地址A1,A0及控制信号,来选择口的操作状态。口的操作状态如表5所示表5 8255的口操作状态A1 A0 输入操作读 0 0 0 1 0 A口数据总线 0 1 0 1 0 B口数据总线 1 0 0 1 0 C口数据总线 输出操作写 0 0 1 0 0 数据总线A口 0 1
14、1 1 0 数据总线B口 1 0 1 0 0 数据总线C口 1 1 1 0 0 数据总线控制口 制止操作 1 数据总线为三态 1 1 0 1 0 非法状态 0 1 0 数据总线为三态 2)8255的三种工作方式方式0根本输入/输出方式:这种工作方式不需要任何选通信号。A口,B口及C口的两个4位口中任何一个端口都可以由程序设定为输入或者输出。作为输出口时,输出数据被锁存:作为输入口,输入数据不锁存。方式1( 选通输入/输出方式):在这种工作方式下,A,B,C三个口分为两组。A组包括A口和C口的高四位,A口可由编程设定为输入口或者输出口,C口的高四位那么是用来作为A口输入/输出操作的控制和同步信号
15、:B组包括B口和C口的低四位,B口可由编程设定为输入口或者输出口,C口的低四位那么是用来作为B口输入/输出操作的控制和同步信号。A口和B口的输入或者输出的数据都被锁存。方式2( 双向传送方式)在这种方式下,A口可以用于双向传送,C口的PC3PC74用来作为输入/输出的控制同步信号。应该注意的是,只有A口允许用作双向传送,这时B口和PC0PC2那么可编程为方式0或者方式1工作。3编程控制字 8255A 的编程选择是通过对控制口输入控制字的方式实现的。控制字有方式选择控制字和C口置位/复位控制字。方式选择控制字:其格式如下表6所示:C口置位/复位控制字:C口具有位操作功能,把一个置位/复位控制字送
16、入送入8255A的控制存放器控制口就能把C口的某一位置1或者清0而不影响其他位的状态。C口置位/复位控制的格式与定义如表7所示。表6 方式选择控制字D7 D6 D5 D4 D3 D2 D1 D0 A组 B组 控制字标志1=方式控制字 方式选择 00=方式0 01=方式11*=方式2 A口1=输入0=输出 上C口1=输入0=输出 方式选择00=方式0,01=方式1 B口1=输入0=输出 下C口1=输入0=输出 8051单片机与8255的接口逻辑简单,其接口电路为图15所示,因为8255A芯片部没有地址锁存能力,所以图中8255A 的片选信号及口地址选择线A1,A0分别由8051的P0.7 和P0
17、.1 经由地址锁存器后提供。如果没有参入选址的地址的状态都看作“1 状态,那么8255的A,B,C口及控制口地址为FF7CH,FF7DH,FF7EH,FF7FH。当然各口都有重复的地址,8255的复位端与8051的复位端相连,都接到8051的复位电路。2.3.2 ADC0809的主要功能ADC0809的主要特性18路8位AD转换器,即分辨率8位。 2具有转换起停控制端。 3转换时间为100s4单个5V电源供电 5模拟输入电压围05V,不需零点和满刻度校准。 6工作温度围为-4085摄氏度 7低功耗,约15mW。 2部构造 ADC0809是CMOS单片型逐次逼近式AD转换器,部构造如图1322所
18、示,它由8路模拟开关、地址锁存与译码器、比拟器、8位开关树型DA转换器、逐次逼近存放器、三态输出锁存器等其它一些电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与TTL兼容。外部特性引脚功能 ADC0809芯片有28条引脚,采用双列直插式封装,如下图。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动信号,输入,高电平有效。 EOC: AD转换完
19、毕信号,输出,当AD转换完毕时,此端输出一个高电平转换期间一直为低电平。 OE:数据输出允许信号,输入,高电平有效。当AD转换完毕时,此端输入一个高电平,才能翻开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF+、REF-:基准电压。 Vcc:电源,单一5V。 GND:地。ADC0809引脚图如下ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比拟器。START上升沿将逐次逼近存放器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进展。直到AD转换完成,EOC变为高电平,指示AD转换完毕,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门翻开,转换结果的数字量输出到数据总线上。2.3.3 2817A的主要功能2.4 工作原理阐述 十字路口电子交警主要由8255A芯片控制12个发光二极管的灭和亮,以此到达第三章 软件方案3.1 分析论证此十字路口电子交警的设计与实现,主要采用了12只发光二极管,并行接口8255A,E2PROM存储器2817A,还有ADC0809等芯片,包括了显示模块和采集数据模块两大功能模块。3.1.1. word.zl.
限制150内