基于单片机的公交车报站系统毕业设计.docx
- 文档编号:24232669
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:24
- 大小:709.49KB
基于单片机的公交车报站系统毕业设计.docx
《基于单片机的公交车报站系统毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的公交车报站系统毕业设计.docx(24页珍藏版)》请在冰豆网上搜索。
基于单片机的公交车报站系统毕业设计
毕业设计说明书
课题名称:
基于单片机的公交车报站系统设计
学生姓名
专业应用电子技术
班级1202
时间2014.10-2014.12
指导教师
电子工程学院
摘要:
本文介绍了一种公交车报站系统的硬件设计原理,提供了一种以AT89C52单片机为核心,控制大屏幕LED点阵显示的硬件设计方案。
系统主要通过AT89C52单片机做为系统CPU,处理包括键盘输入和LED显示屏显示站名的所有信号处理。
系统扫描到有键按下,判键确定后给CPU一个脉冲信号,然后CPU处理信号,确定所到站的站名,再通过扫描驱动从LED显示屏上显示出所到站的站名。
达到半自动报站的作用。
整个系统硬件设计包括键盘电路、复位电路、显示驱动电路、显示电路、内存扩展电路模块。
其中显示模块是本系统的重点。
本系统很大程度上提高公交车报站的准确性,可靠性。
提高了公交系统的服务质量。
促进城市经济发展和交通变化的和谐发展。
关键词:
AT89C52单片机,16*16LED点阵显示屏,
第一章………………………………………………………………………………3
1.1前言…………………………………………………………………………3
1.2背景与意义…………………………………………………………………3
1.3现状…………………………………………………………………………4
1.4发展趋势……………………………………………………………………4
1.5设计任务……………………………………………………………………4
第二章案论证和选择………………………………………………………………5
2.1总体方案……………………………………………………………………5
2.2单片机的选择………………………………………………………………5
2.3LED点阵显示方式的选择…………………………………………………6
第三章系统硬件设计………………………………………………………………7
3.1单片机介绍…………………………………………………………………7
3.1.1晶振电路……………………………………………………………10
3.1.2复位电路设计………………………………………………………11
3.1.3按键电路设计………………………………………………………11
3.2显示电路设计……………………………………………………………123.2.116*16LED显示屏……………………………………………………12
3.2.2LED显示屏工作原理………………………………………………14
第四章软件设计……………………………………………………………………16
4.1软件开发工具和语音……………………………………………………16
4.2单片机软件流程图………………………………………………………16
4.3LED程序分析………………………………………………………………17
结论…………………………………………………………………………………18
致谢…………………………………………………………………………………19
参考文献……………………………………………………………………………19
附录A元器件清单……………………………………………………………20
附录B原理图、proteus仿真图……………………………………………21
第一章
1.1前言
随着科技的不断进步,人们对事物的认知程度已经得到了广泛的提升,在实际生活中,大家都希望能使用简便、智能、人性化的产品。
在公交车自动报站方面,由于我国现状,人口众多,口音复杂,对于乘客而言,原来的人工报站存在着很多的问题。
为了跟随科技发展,提高公交系统的服务质量,提升城市形象。
开发一种能够节省人力和物力,而又能让乘客方便快捷的知道站台报站器就成为一种必然。
因此本次毕业设计中提出一个以AT89C52单片机为核心,用LED显示屏显示站名的即经济、高效、直观的公交车到站自动报站系统。
1.2背景与意义
随着国民经济的快速发展,城市建设规模不断扩大,大城市人口高度集中并大幅度增长,同时汽车保有量急剧上升,交通需求迅速扩大,而道路交通基础设施建设的发展则相对滞后。
城市交通需求与供给之间的矛盾越来越突出,城市“乘车难”、“行车难”的局面在加剧,交通阻塞呈现出点到线、由线到面的扩展趋势,交通拥挤、交通延误、交通阻塞以及由此引起的噪音、废气污染严重影响着居民的正常的生活以及社会经济的持续、健康发展。
近年来,我国城市交通的现状已引起了政府、公众、社会各界的广泛关注,
有关专家学者和交通工程师们在吸取各国城市交通发展经验的基础上,找到了一条解决我国城市交通发展问题的有效途径,即优先发展城市公共交通,以公共交通为杠杆降低城市交通需求总量,实现道路交通基础设施发展与交通需求增长的均衡。
实施“公交优先”是解决我国城市交通发展问题的有效途径,也是我国目前城市交通发展的基本政策。
公交智能化是智能交通的一个重要的子领域,同时也是落实“公交优先”,使城市交通与社会经济和谐发展的重要组成部分。
实施公交智能化,必须提高公交服务质量,而到站后的准确、及时报站就是一个方面,本设计基于AT89C52单片机、LED点阵制作的公交车报站系统就能解决这方面的问题。
从而,达到公共形象的提升。
当前国内主要大城市的公交车大都采用人工报站,即每到一站由司机或者乘务员来进行报站。
但有时由于受到各种因素如雨雪天路滑、车上拥挤、乘务员心情的变化等的影响,会出现报错站,漏报站的情况,给乘客特别是不熟悉本市地形的乘客带来了不必要的麻烦,从而影响到了一个城市的窗口形象工程建设。
于是开发研制自动报站系统成为必然。
1.3现状
随着公交优先战略的确定,公交在缓解城市交通拥堵方面的作用将越来越重
要,与这种要求相比,我国大城市公共交通还有很大差距,主要表现为:
为社会提供服务信息的水平低,只能是以经验为主的被动、滞后的实施服务,仍以人工作业为主。
上述问题显然不利于公交对乘客的吸引,也是导致公交运营组织模式落后、调度方式原始陈旧、企业管理效率不高的重要原因。
因此,如何提高公交系统的服务质量,是现代公交行业亟待解决的问题。
我国发展智能运输的基础较差,因此理论研究虽在进行,但相应技术却得不到推广。
在实际生活中得不到应用,达不到广泛服务社会的目的。
所以发展一种自动报站系统,提高公交服务质量就成为民用科技研究的一个项目。
目前在国际上已经实现了GPS定位车载智能系统,在国内的几个大城市也都有使用,实现了公交系统的全面监控、调度。
公交车自动报站系统的研究也达到了无线联络,全自动报站的水平。
但其一般其经济投入较高。
结合我国现有的公交系统现状,半自动化报站系统还有很大的应用空间。
适应用于一些中小城市。
1.4发展趋势
现代信息社会中,作为人机信息视觉传播媒体的显示产品技术得到了迅速发展,进入二十一世纪的显示技术将是平板显示的时代,LED显示屏作为平板显示的主导产品之一无疑会有很大的发展,并有可能成为二十一世纪平板显示的代表性主流产品。
信息化的社会的形成,信息领域的愈加广泛,显示屏的应用前景更为广阔。
预计大型或超大型LED显示屏的主流产品局面将会发生改变,适合于服务行业特点和专业性要求的小型LED显示屏会有较大提高,而向信息服务领域的LED显示屏产品门类和品种体系将更加丰富,部分潜在的市场需求和应用领域将会有所突破,如公共交通、停车场、餐饮、医院等综合服务方面的信息显示屏需求量将有更大的提高,大批量、小型化的标准系列LED显示屏在LED显示屏市场总量中将会有多数份额。
1.5设计任务
以AT89C51单片机为核心,16*16LED点阵作为显示屏,制作一个公交车报站系统。
设计要求:
1.用16×16LED点阵显示汉字,要求能稳定、清晰地显示预设文字;
2.公交站名显示通过编程能实现左移滚动显示方式;
3.通过按键控制下一站的播报。
第二章方案论证和选择
2.1总体方案
单片机控制系统框图,利用AT89C51单片机作为CPU来进行总体控制,通过驱动电路对点阵进行扫描,使其进行显示。
列驱动
单片机
16*16LED点阵显示屏
图2-1系统框图
2.2单片机选择
方案一:
采用通过SPCE061A单片机编写程序显示要求汉字。
SPCE061A是凌阳科技公司umSPTM(microcontroller and signal processor)系列产品中的16位微控制芯片,内置32闪存,其较高的处理速度芯片能够非常容易、快速地处理复杂的数字信号,适用于数字语音识别等领域。
此方案也是有单片机直接驱动,性能稳定,驱动能力强,简单方便,但是由于我们系主要学习的是51系列单片机对于这一款新的单片机再去学习了解可能时间不够,故此方案也被放弃了。
方案二:
选用ATMEL公司的AT89C52单片机作为硬件电路的主控芯片,它是一个低电压,高性能CMOS 8位单片机,片内8K BYTES的可反复擦写的只读程序存储器和256 BYTES的随机存取数据存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置有8位中央处理器和FLASH存储器单元,功能强大的AT89C52单片机可提供许多复杂系统控制应用场合。
AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,因此单片机选择ATC89C52较为合适。
报站器以单片机AT89C52为CPU来控制LED点阵显示屏显示所到站的站名,提高报站的准确性,高效性和直观性。
由于线路不同,报站系统中存储的站名需要通过更改来适用于各种线路,以此提高系统的通用性。
所以我们需要设计通信模块来实现PC机和单片机之间的通信。
并能通过单片机与PC机之间的通信来实现报站名的更改,使其成为多功能开发型报站器。
而由于考虑到自身设计水平有限,本次设计的系统没有设计语音模块模仿人声报站而是设计了按键模块控制LED显示屏显示站名,达到报站的目的。
在内存方面,由于AT89C52的数据存储为256字节,由于站名的信息量比较大,片内数据存储空间有限,所以需要扩展一个片外数据存储,来满足要求,这就要求系统应设置内存扩展模块。
LED显示屏考虑系统只是一个演示作用,所以本设计采用了4块8*8的LED显示模块组成的16*16的LED显示屏,可以达到演示要求。
2.3LED显示方式的选择
根据驱动方式的不同,LED大屏幕显示方式可分为静态显示和动态扫描显示。
方案一:
采用静态锁存方式,从理论上说,不论显示图形还是文字,只要控制这些组成图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16×16的点阵共有2566个发光二极管,显然单片机没有这么多端口,如果采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
这个数字很大,因为仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很大的数字。
这种方法可以直接驱动LED,原理简单,驱动能力强,LED的亮度也可以通过限流电阻调节,非常方便,但此种方法太浪费单片机的I/O口,只适合于较小的系统。
因此采用另一种称为动态扫描的显示方法。
方案二:
采用动态扫描方式,动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如24行)的同名列共用一套列驱动器。
具体就由4块8×8组成的16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起,先送出对应第一列发光管亮灭的数据并锁存,然后选通第一列使其点亮一定的时间,然后熄灭;再送出第二列的数据并锁存,然后选通第二列使其点亮相同的时间,然后熄灭;…… 第二十四列之后又重新点亮第一列,这样反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,只要刷新速率不小于25帧/秒,就不会有闪烁感,我们就能看到显示屏上稳定的图形了。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
故采用本设计方案。
第三章系统硬件设计
3.1单片机介绍
AT89C51单片机的结构框图如图3.1所示。
它主要由下面几个部分组成:
1个8位中央处理单元(CPU)、片内Flash存储器、片内RAM、4个8位的双向可寻址I/O口、1个全双工UART(通用异步接收发送器)的串行接口、2个16位的定时器/计数器、多个优先级的嵌套中断结构,以及一个片内振荡器和时钟电路。
在AT89C51单片机结构中,最显著的特点是内部含有Flash存储器,而在其他方面的结构,则和Intel公司的8051的结构没有太大的区别。
图3-1AT89C51单片机的结构框图
主要性能
1.与MCS-51兼容
2.4K字节可编程闪烁存储器
寿命:
1000次写/擦循环
数据保留时间:
10年
3.全静态工作:
0Hz-24Hz
4.三级程序存储器锁定
5.128*8位内部RAM
6.32可编程I/O线
7.两个16位定时器/计数器
8.5个中断源
9.可编程串行通道
10.片内振荡器和时钟电路
图3-2AT89C51引脚图
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出
。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
因为公交车车自动报站系统设计需要较大的存储量,所以要选择一个数据和程序容量较大的单片机,这样就不用扩展数据和程序存储器。
在这里我们选用了ATMEL公司的AT89C52单片机作为本设计硬件电路的主控芯片,它是一个低电压,高性能CMOS8位单片机,片内8KBYTES的可反复擦写的只读程序存储器和256BYTES的随机存取数据存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置有8位中央处理器和FLASH存储器单元,功能强大的AT89C52单片机可提供许多复杂系统控制应用场合。
3.1.1晶振电路
AT89C52的内部有一个用于构成振荡器的高增益反相放大器。
通过XTAL1,ATAL2外部接上一片作为反馈元件的晶体,与C1和C2构成了并联谐振电路,使其构成自激振荡器。
电容的值具有微调的作用,我们取30PF。
具体的接法如右图外部晶振电路
AT89C52的工作频率范围在0-24MHZ。
我们选用的是12MHZ的晶振,振荡周期为1us机器周期为1us,所以这个晶振可以满足这个系统的要求。
并且晶振不能离单片机太远,不然使用外部晶振进行软件调试时就会发现找不到信号。
3.1.2复位电路设计
复位有硬件和软件两种,复位的作用是使程序自动从0000H开始执行,因此我们只要在AT89C52单片机的RESET端加上一个高电平信号,并持续10ms以上即可,RESET端接有一个上电复位电路,它是由一个小的电解电容和一个接地的电阻组成的。
人工复位电路另外采用一个按钮来给RESET端加上高电平信号。
图3-3人工复位电路
我们采用放电型人工复位电路,如图3-3人工复位电路,上电时C通过R充电,维持宽度大于10ms的正脉冲,完成上复位功能。
C充电结束后,RESET端出现低电平CPU正常工作。
在此我们取了典型值R=10K,R1=1k,C=10uf。
上电复位实现的时间:
T=R*C
=10K*10UF
=100ms>=10ms
需要人工复位时,按下按钮K,C通过K和R1放电,RESET端电位上升到高电平,实现人工复位,K松开后C重新充电,充电结束后,CPU重新工作,R1是限流电阻,阻值不可以过大,否则不能起到复位作用。
3.1.3按键电路的设计
键盘实质上是一组按键开关的集合,控制CPU通过按键来识别特定的用户命令,从而转入相应的程序来执行用户命令。
键盘的软硬件的设计涉及下面几个方面的问题:
对于此设计来说我们要准确的显示我们所要对应的信息,每按下一次按键要显示所要显示的信息。
这按键是主要用来报站的而设计的。
这样比键盘操作方便,也比较实惠。
按键电路采用中断模式。
当有按键按下时,系统产生中断,CPU响应中断后,开始计数,即查询键号,通过软件来实现该键号所对应键的功能键盘的大体设置为:
第一个键为报站控制键S1用来控制站台“+”例如:
第一站为光谷站,按下S1时显示第二站:
火车站,其余的站台工作原理也一样。
S2用来控制站台的“-”,第二站为火车站,在按下S2时这样就显示火车站。
电路如图3-4按键电路:
图3-4按键电路
3.2LED显示屏设计
我们知道的用来显示的器件很多。
比如数码管、LCD、点阵式LED。
数码管只能显示数字,LCD可以显示汉字、符号、数字和图形。
虽然LCD的显示效果要比LED好,显示电路也比较简单(很大一部分已经集成化)。
但是它的价格比较高,也不容易采购。
所以综合考虑生产成本,本系统采用点阵式LED显示。
它具有以下优点:
1价格比较便宜2容易扩展显示比较多的汉字3显示汉字效果好,广泛用于广告显示屏,交通屏幕。
通常情况下,点阵式LED显示屏是由标准的LED显示模块组成的。
3.2.116*16LED显示屏
HS1088BS点阵式LED显示模块是8行8列64个LED组成。
单块点阵式LED显示模块能够显示各种字母,数字和常用的符号。
点阵式LED显示模块在8行8列的每一个交点上装有一个LED。
模块有共阳极和共阴极之分。
LED的正极接行引线,负极接列引线的称为共阳极LED显示模块,反之为共阴极LED显示模块。
由4个8*8的LED显示屏组成的16*16的LED汉字显示屏如图3-5,4个8*8的LED显示屏组成的16*16的LED显示屏,行引脚逐个连接而成。
图3-58*8单色LED模块内部电路
图3—64个8*8的LED显示屏组成的16*16的LED显示屏
3.2.2LED显示屏的工作原理
LED点阵显示系统中各模块的显示方式:
有静态和动态显示两种。
静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。
点阵式LED汉字广告屏绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。
将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。
最典型的例子就是电影放映机。
在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。
以8×8点阵模块为例,说明一下其使用方法及控制过程。
图2-1中,红色水平线Y0、Y1……Y7叫做行线,接内部发光二极管的阳极,每一行8个LED的阳极都接在本行的行线上。
相邻两行线间绝缘。
同样,蓝色竖直线X0、X1……X7叫做列线,接内部每列8个LED的阴极,相邻两列线间绝缘。
在这种形式的LED点阵模块中,若在某行线上施加高电平(用“1”表示),在某列线上施加低电平(用“0”表示)。
则行线和列线的交叉点处的LED就会有电流流过而发光。
比如,Y7为1,X0为0,则右下角的LED点亮。
再如Y0为1,X0到X7均为0,则最上面一行8个LED全点亮。
现描述一下用动态扫描显示的方式,显示字符“B”的过程。
其过程如图3-7
图3-7 用动态扫描显示字符“B”的过程
第四章软件设计
程序就是为计算机某一算式或完成某一工作的若干指令的有序集合。
计算机的全部工作概括起来就是执行这一指令序列的过成。
这一指令序列称为程序。
本章主要讲了主控部分以及LED显示部分的程序设计。
4.1单片机软件开发工具及语言
本系统的处理器是兼容8051指令集的高速单片机STC12C5412AD。
为此,首
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 公交车 报站 系统 毕业设计