多用途夜间公路指示标志牌设计.docx
《多用途夜间公路指示标志牌设计.docx》由会员分享,可在线阅读,更多相关《多用途夜间公路指示标志牌设计.docx(39页珍藏版)》请在冰豆网上搜索。
![多用途夜间公路指示标志牌设计.docx](https://file1.bdocx.com/fileroot1/2022-11/23/c1287244-4fdf-4c21-ace6-228597d79b4e/c1287244-4fdf-4c21-ace6-228597d79b4e1.gif)
多用途夜间公路指示标志牌设计
多用途夜间公路指示标志牌设计
摘要
本设计是基于单片机控制的LED多用途夜间公路指示标志牌设计。
应用单片机的高密集度、功能强大、运行速度快、能耗低、使用方便、可靠性高等优点,采用的是美国ATMEL公司生产的高性能CMOSS八位单片机AT89C52。
系统设计以单片机为主控制模块,包括外部存储器、通信I/O口、I/O口驱动模块、LED显示屏和按键控制模块组成的。
能够针对不同的路况选择相对应的交通指示标志,来达到控制交通的效果。
本设计的主要功能是通过按键选择在LED显示屏上显示警告、禁止、提示等交通指示标志牌图像,来控制夜间交通,使交通压力减小,让人们的出行更加的安全快捷。
这种交通指示牌标志的设计,能应用在很多路况复杂的地方,避免出现堵车,发生交通事故等情况。
让现阶段拥挤的交通得到缓解,更方便了人们的生活。
这一设计操作简便实用性强,是针对目前的交通情况专门设计的一个系统,具有很大的开发和利用价值。
关键词:
AT89C52I/O口驱动LED显示屏按键交通指示牌标志
Abstract
Thisdesignisamulti-purposeLEDnightroadsignsindicatingthedesignmicrocontrollerbasedcontrol.SCM'shighdensityapplications,powerful,fast,lowpowerconsumption,easeofuseandhighreliability,isusedintheUnitedStatesATMELcompanyproduceshigh-performanceCMOSSeightSCMAT89C52.MCU-basedsystemdesignedtocontrolmodules,includinganexternalmemory,acommunicationI/Oports,I/Oportdrivermodules,LEDdisplayandbuttoncontrolmodulecomposed.Youcanselectthecorrespondingtrafficsignsfordifferentroadconditions,trafficcontroltoachieveresults.
Themainfeatureofthisdesignisbyselectingthebuttondisplaysawarning,ban,suggestingthattheLEDdisplaysignspicturetrafficsignstocontroltrafficatnight,sothetrafficpressureisreduced,sothatpeopletravelmoreefficientandsafe.Suchtrafficsignslogodesign,canbeappliedinmanyplacescomplexroadtoavoidtrafficjams,trafficaccidentsandsoon.Letthisstagetoeasetrafficcongestion,andmoreconvenientforpeople'slives.Thisoperationissimpleandpracticaldesign,isasystematicviewofthecurrenttrafficconditionsdesigned,hasgreatdevelopmentandutilizationvalue.
Keywords:
AT89C52I/OPortDriverButtonLEDDisplay
TrafficSignsSigns
绪论
在人类的进程中,汽车的出现极大地方便了人类社会、经济、文化等各项活动,节约了时间、方便出现、丰富了人们的生活,带动了经济的发展。
但随着社会的发展,城市规模不断的扩大,汽车的数量也随着越来越多,使得交通需求迅速增长,随之出现的交通拥挤、交通事故、环境污染等影响着人们的生活。
实施交通控制和管理是解决这些问题的一重要手段,然而提供一个安全可靠实用的交通指示控制系统应运而生,结合我国当前的道路交通情况设计相对应的智能交通标志指示牌系统势在必行。
单片机自从发展以来,它的功能和特性得到了不断提高和完善,其资源又能适合越来越多的场合应用,再加上单片机本身所具有很高的集成度、功能性强大、运行速度快、体小质轻、耗能低、使用方便快捷、性能稳定、价格便宜,其易于产品化、抗干扰的能力强、能够在不同的恶劣环境下稳定的工作等特点。
本设计结合单片机控制LED显示屏,来显示交通标志指示牌图像,系统可应用在不同的路况上,对交通起到控制的作用。
系统设计包括硬件部分和软件部分,让我对单片机、存储器等各种芯片有了更多的了解,能更好的利用单片机做出不同方案的设计。
通过使用软件对系统模块的调试,大大提高了我的编程能力,同时也使我对软件和硬件结合有了更进一步的认识。
1课题研究的目的和意义
1.1课题研究的目的
随着人类社会的进步和经济的高速发展,城市现代化在世界范围性的扩大,人们对交通的需求和交通流量也在飞快的增长,在城市交通网络中体现出的交通拥挤现象经常出现,道路运输量剧增带来的交通拥堵、交通事故等不良效应也日渐突出,在很多方面都影响着人们的生活,逐步成为人类经济和社会发展进程中很严重的全球性共同问题。
交通问题已经慢慢成为人类必须面对的问题,道路交通事故、交通拥挤堵塞和造成的环境污染问题越来越突出。
为了解决道路交通中车辆和道路相互制约的矛盾,在实际中我们常用的两种主要方法:
一是控制人们对车辆的需求,最简单直接的办法就是限制车辆数量的增加;二是增加车辆行驶道路的供给,即大规模的修建道路基础设施增加道路网络的办法,不管是在资源的限制,还是环境污染问题上这一矛盾在当今越发的突出,在面对越来越拥挤的交通状况时,有限的资源利用和财力支出以及环境污染造成的压力,也将在很大程度上受到限制。
这时就需要找到除了依靠限制车辆需求和修建道路设施之外的其他方法来解决当前我们面临的对交通需求的严峻问题。
在目前已建成的道路交通网络条件下,对交通进行实时的控制和管理,充分的提高现有道路利用率,做到车辆快速有序的行驶,正是解决眼下严峻形势的有效途径,并且大量的事实已经证明这种方法是非常有效。
1.2课题研究的意义
城市发达程度的一个重要体现就是城市交通高速的发展,交通控制和交通管理也是在不断地显示着其重要性。
道路交通标志指示牌是城市交通中对控制交通发挥重要作用的系统,人们日常生活与之密切相关.随着人类生活水平的不断提高的同时,交通管制在交通网络中也提出了更高的要求,因此提供一个可靠、安全、便捷的多功能交通指示标志控制系统有着现实的必要性。
在当前面临的问题上,再与我国的城市交通道路网络所要解决的真正难题的情况下,现在的主要解决方案是能研制出一种能够适合我国道路交通特点的智能道路交通指示标志牌系统。
单片机具有很多优点,能适合很多方面的研发工作,特别是它所具有的强大的面向控制能力,使它在工业控制中发挥很大作用,更是在精密仪表、外设系统的调制、智能机器人、军事设备等方面得到了非常大的范围的应用。
由于单片机有着更能强大、操作简便快捷、成本低、稳定性好等特点,本设计采用的是MCS-51系列的单片机作为主控模块来实现道路交通指示标志牌的控制。
正常情况下,交通指示标志在根据不同的路况信息显以及警告提示。
来通过此次单片机的设计,我们可以进一步认识单片机在控制系统中的重要性。
而且在平时的学习当中,我们学到的更多的是课本理论知识,在动手实践方面的能力不够强。
虽然我们能够清楚的了解单片机的基本构造原理以及它的各种基本功能,但在结合原理和硬件的系统整合的过程中还是存在很多问题的,因此以单片机为主进行一次课程设计是非常有必要的。
这次设计不仅需要扎实的理论知识,还需要有很强的动手能力,绘制电路、仿真调试、编写程序以及软硬件联合调试,这每一项都是一个挑战。
同时也能扩展到我们工作和学习的其他方面,让我们对此次设计有一个更深刻的认识。
设计成果也是具有非常大的现实意义的,能让我的知识得到巩固,能力得到锻炼,而且设计的目的是为了造福人类,来方便人们的生活。
2系统方案设计
本系统设计主要包括六大模块,这些模块分别是:
主控制模块单片机,外部存储器,通信端口I/O口,I/O口驱动模块,LED显示模块和按键控制模块。
在这些模块中AT89C52单片机是本系统的主要控制中心,它是一种集成电路芯片,单片机可以分为通用型、总线型、飞总线型和工控型/家电型。
这里采用的是单片机既是通用型又是总线型。
利用用单片机来控制实现各个模块的功能,并使系统模块紧密联系密切的相互配合来完成整个系统最终的功能。
外部存储模块的作用是用来存储获取的图像自模,供其它模块读取信息。
通信端I/O口是单片机的四个八位并行的端口,通过对同名的一些具有特殊功能的寄存器的控制实现的,是CPU与其他设备、存储器的连接和数据交换的桥梁。
每个端口都可以用作准双向通信端个用户,它是系统中重要的资源之一。
I/O口驱动模块利用单片机内部弱上拉电阻的低电平作驱动,是对LED显示屏进行行扫描和列扫描。
LED显示模块是用来显示交通标志牌图形的,包括禁止、警告、提示等交通标志图形。
按键模块包括图形样式选择、复位等功能。
系统通过单片机控制,通信端I/O口输入输出信号,对LED显示屏进行行扫描和列扫描,加上软件部分的控制来显示“禁止、警告、提示”的一些交通指示牌图像。
设计中选取AT89C52单片机其内存空间较大。
设计中还包含对单片机I/O口进行扩展,选择芯片通过适当的组合作为编码译码器电路,来实现对LED显示屏进行扫描。
其他外围电路的选择和设计也是要求很高的。
显示模块LED点阵屏的设计是一个复杂的过程,要非常的细心。
其次的程序编写也是非常具有挑战性的,最后软硬件联合调试中遇到问题和解决问题是不可或缺的。
3硬件部分
3.1硬件结构框图
硬件结构包括主控制器单片机、通信端口、外部存储器、I/O口驱动模块、显示屏模块和按键控制模块等组成,控制核心为单片机。
单片机在接收到通信端口信息后,从外部存储器中获取已经存储好的信息(图形字模信息等)以及不同信息所对应的按键控制,通过I/O口驱动模块驱动发光管在LED显示屏上显示不同的图样信息。
I/O口驱动模块,I/O端口输出“0”电平可以使LED灯熄灭,输出“1”电平灯亮,来驱动LED显示模块。
显示屏由16×16个LED灯组成,也可以是32×32(64×64)的规格,LED的排布密度越大显示的图样更加清晰,当显示屏LED灯过多时,单片机的接口就不足以控制这么多的引脚端,这样就要进行I/O口扩展来满足设计的要求。
硬件电路组成框图3-1如图所示
图3-1系统硬件控制结构框图
3.2主控制模块单片机
设计的主控制模块单片机用的是AT89C52。
AT89C52是ATMEL公司生产的低电压、高性能CMOS8位单片机。
与MCS-51系列单片机的指令和引脚完全兼容。
片内含8KbyTES的可反复擦写的只读程序存储器(PEROM)和256byTES的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH由存储单元,功能强大AT89C52单片适用于许多较为复杂控制应用场合。
设计电路如图3-2所示。
图3-2主控制模块单片机
主要性能参数:
与Mcs-51产品指令和引脚完全兼容。
8字节可重擦写FLASH闪速存储器
1000次擦写周期
全静态操作:
0HZ-24MHZ
三级加密程序存储器
256X8字节内部RAM
32个可编程I/0口线
3个16位定时/计数器
8个中断源
可编程串行UART通道
低功耗空闲和掉电模式
AT89C52芯片在设计电路中的引脚如图3-3,其内部框图3-4如下所示[14]。
图3-3AT89C52单片机引脚图
图3-4AT89C52内部框图
功能特性[8、9]:
AT89C52[15]提供以下标准功能:
8字节FLASH闪速存储器,256字竹内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.
功能引脚说明:
Vcc:
电源电压
GND:
地
P0口:
P0口的结构由一个锁存器、两个三态输入缓冲器、控制与门、场效应管、反相器和转换开关组成。
P0口有两个用途,第一个是用作普通的I/O口使用,第二个是用作地址/数据总线使用。
用作第二个用途时,P0口上分时送出低八位地址和传输数据,这种和数据公用一个I/O口的方式被称为总线复用方式。
当P0口作为输出口,数据输出时要在场效应管外接上拉电阻来保证高电平输出。
P0口作为输入口使用时,有读芯片引脚的数据和读端口两种情况。
但在实际应用中,P0口多作为地址/数据总线。
P1口:
P1口只用作普通的I/O接口使用,但具有输出、读引脚和读锁存器三种工作方式。
P1口内部结构里没有转换开关,它的驱动部分和P0口试不一样的,其内部具有上拉电阻,是由两个场效应管并在一起构成的。
P1口能够驱动四个LSTTL负载。
通常将100μA的电流定义为一个LSTTL负载的电流,所以P1口吸收或输出的电流不会大于400μA。
与AT89C51不同之处是,Pl.0 和P1.1还可分别作为定时/计数器2 的外部计数输入(Pl.0/T2 )和输入(P1.1/T2EX),FLASH编程和程序校验期间,Pl接收低8位地址。
P2口:
P2口有两种用途,一是作普通的I/O接口,二是作为高八位地址线使用。
其内部结构比P1口多一个转换控制部分。
当P2口用作通用I/O口时,在控制端的作用下,多路开关转向锁存器的Q端,并具备输出、读引脚和读锁存器三种工作方式;当单片机执行访问片外RAM或片外ROM指令时,程序计数器PC或数据指针DPTR的高八位地址由P2.n引脚输出,这时,转换开关在CPU的控制下转向地址线的一端,使地址端信号与引脚P2.n电平同向变化。
P2口的负载能力和P1口相同,能驱动四个LSTTL负载。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL).
P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表3-1所示:
表3-1P3口第二功能
端口
端口标号
第二功能
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口还接收一些用于FLASH闪速存储器编程和程序校验的控制信号。
RST/VPD:
(第9脚)复位输入/备用电源引脚。
复位端RST:
单片机上电后,其内部各寄存器都处于随机状态,如果在该引脚上输入满足复位时间要求的高电平,将使单片机复位。
备用电源端VPD:
在主电源掉电期间,可以利用该引脚处外接+5V备用电源为单片机片内RAM供电,保证片内RAM信息不会丢失。
使单片机电压恢复后能够正常工作。
ALE/PROG,地址锁存使能输出/编程脉冲输入:
当访问外部程序存储器或数据存储单片机上电后器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节.一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位.可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
·PSEN:
程序储存允许PSEN输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
·EA/Vpp:
外部ROM允许访问/编程电源输入。
外部ROM允许访问EA:
当EA=1,即为高电平时,CPU从片内ROM开始读取指令。
当程序计数器PC的值大于4KB地址范围时,就会自动转向对片外ROM的指令进行执行过程。
如当EA=O时,即处于低电平,这时CPU仅访问片内ROM。
编程电源输入Vpp:
在对含有EPROM的单片机进行EPROM形式的编程时,Vpp引脚应该接在12V的编程电压上。
对不同型号的芯片有相对应的编程电压,使用期应仔细阅读芯片使用说明。
·XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端.
·XTAL1:
振荡器反相放大器的输出端。
如图3-5所示内部时钟方式[10、11]。
图3-5内部时钟方式
内部时钟方式是利用单片机芯片内部的振荡电路实现的,这时需要通过单片机的XTAL1和XTAL2引脚外接定时器元件,定时器元件一般采用晶体振荡器和电容组成并联谐振回路。
电容主要作用是帮助振荡器起振,晶体的振荡频率范围在1.2—13MHz。
晶体振荡器频率越高,则系统的时钟频率也就越高,这样单片机的运行速度也就越快。
·特殊功能寄存器:
在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器(SFE),SFR的地址空间映象如表2所示。
并非所有的地址都被定义,从80H-FFH共128 个字节只有一部分被定义,还有相当一部分没有定义。
对没有定义的单元读写将是无效的,读出的数位将不确定,而写入的数据也将丢失。
不应将数据"1"写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。
存储结构说明:
89C52的程序存储器主要用于存放程序代码和程序中用到的常数。
当EA引脚接地时,CPU只从外部ROM读取程序,当EA接VCC时,程序是先从内部ROM(地址0000H—1FFFH)开始,然后再从外部寻址,寻址范围为:
2000H—FFFFH。
AT89C52的数据存储器用于存放运算中间结果、标志位、待调试的程序等。
它有256字节RAM,高128字节的存储区与特殊功能寄存器重叠,也就是说两者有着相同的存储地址,却在物理上是分开的。
AT89C52一共有六个中断源,它们分别是一个串行中断、两个外部中断源INT1和INT0和三个定时中断定时器。
这六个中断源都能够通过置位或者清除特殊寄存器中的相关中断允许控制位,来使中断源变成有效和无作用。
在特殊寄存器中有一个能禁止所有中断的总控制位EA。
3.3LED显示屏模块
3.3.1LED显示屏的制作
由于涉及中用到的是32×32的LED点阵屏,首先制作一个16×16的LED点阵[4],再将绘制好的模块复制四个连接成32×32LED点阵。
而在Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,下面就是制作LED点阵的过程,首先是使用8×8点阵构建16×16点阵的方法,并构建一块16×16LED点阵,用于库元件保存备用。
。
首先,打开从Proteus7.1软件[1、6、7、13],选择元件模式在元件库中输入LED,并在目录中找到“MATRIX-8X8-RED”元器件,共放置四块一样的LED元器件在Proteus文档区的绘制窗口中。
在放置的时候要特别注意点阵的行和列,如下是判断其行和列的方法如图3-6所示,在编辑框内放置一个8×8的点阵,用终端元件VCC和GND连接点阵,保存后点击开始仿真。
电路图中可以看到竖着的灯是亮着的,而其他灯都是灭的,连接GND的只有一根线,连接电源VCC的有三根线,可以看出左边的接口是点阵的行,右边的是点阵的列。
图3-6LED点阵仿真
在放置LED元件时要注意每一个的方向都是一致的,起始的想左旋转90°,靠左边的引脚是行线,靠右边的是列线。
然后将四个点阵对应的行线和列线连接起来,使每一行和每一列都有16个LED灯,注意连接处的线头不要太长,保证后面用起来方便,看起来简洁。
如图3-7连接好的四个8×8点阵。
图3-7相互连接的8×8LED点阵
上面做好的是第一步,每一行和每一列都是连接起来的,为了达到更好的显示效果,需要将这四部分进行组合在一起。
操作也是很简单的,首先用鼠标选中图3-7中靠右边的量个8×8点阵,拖拽选中部分使之与左边的两块并在一起(如图3-8),再将下面两部分选中与上面的并在一起(如图3-9)。
通过这两个步骤我们可以发现开始很多的连接线都被隐藏了起来,剩下的线结点不要移动。
就做成了一个16×16的LED点阵了,上面区分好了小块点阵的行和列,组成的新点阵的左边是行线,只对高电平有效,而下边的是点阵的列线,为低电平有效。
保存好之后再进行后面的操作。
图3-8左右两块平移后
图3-9下部模块上移后的图
制作完16*16的LED显示屏之后,把这一模块再复制4个出来,跟上面的步骤一样的来制作一个32*32的LED显示屏。
系统设计的电路主要是由单片机和一些外部设备连接构成的,利用16个8*8LED显示组装成32*32LED显示,在电路中连接4个R*8排电阻。
这个显示模块是采用AT89C52单片机作为主控制器,由晶振产生内部时钟,单片机的P0口作为字符数据输出口,P1.4—P1.7口和P3.0-P3.3口作为显示器扫描输出口,在第31管脚(EA)出接电源VCC。
电路包括单片机、电源电路、时钟电路、复位电路、驱动电路和LED点阵电路等。
本设计主要的运行方式是通过单片机获取显示图形的字模,通过行列扫面驱动电路对32×32LED点阵进行显示,得到给出图样的点阵显示形式。
3.3.2LED显示屏行列扫描模块
此处用到的LED行扫描模块是采用的4线—16线译码器即4514芯片,如图3-10所示。
图3-104524译码器芯片引脚图
译码器的A、B、C、D接口分别接单片机的P1.4—P1.7和P3.0—P3.3接口作为心号输入端,用来输入二进制数值。
4514有一个禁止控制端和一个选通控制端,引脚标号分别为INH和STB。
当禁止控制端INH输入的是高电平时,芯片的16路输出就都是低电平。
当选通控制端的输入为低电平时,芯片的16路输出是不受输入端控制的,这样就会保持它原来的输出状态。
它的输入为四位二进制数,选通对应芯片上的输出端口线是Q0—Q15,这16个引脚的选通逻辑与共阳极