文档视界 最新最全的文档下载
当前位置:文档视界 › 公交车自动报站系统毕业论文(DOC)

公交车自动报站系统毕业论文(DOC)

保密类别编号20100803075武汉大学珞珈学院

毕业论文

公交车自动报站系统

系别电子信息科学系

专业电子信息工程

年级2010级电信三班

学号20100803075

姓名熊鹏

指导教师李婧

武汉大学珞珈学院

2014年4月14日

摘要

本设计主要是利用89C52单片机作为CPU来进行总体控制,同时使用FYD12864液晶显示电路进行汉字显示,能够实现公交车的站名显示。在CPU控制模式下,键盘电路采用中断扫描模式,当有键按下时,系统产生中断,CPU响应中断后,通过软件来实现该键号所对应键的功能。因此当公交车到达某站时通过按键来控制本系统进行工作,CPU同时通过程序读取汉字信息送入LCD液晶显示电路进行汉字提示。通过本设计主要解决了如何方便、准确的指示乘客到站的问题,使得乘客能愉快、安全的下车。

关键词:单片机液晶显示键盘电路

The design of bus station reported were based on the DSP

ABSTRACT

This design is mainly to use 89C52 microcontroller as CPU to carry out , meanwhile it uses FYD12864 character LCD display circuit to achieve the bus station and station display. In the CPU control mode, the keyboard interrupt scan mode circuit, the system generates an interrupt when a key pressed , APU response to failure, the key number is inquired by the software to achieve the key number corresponding to the function keys. So when the bus reaches a certain point, through the keyboard to control the system to work, CPU while the information through the program reads characters into the LCD liquid crystal display circuit character prompt.This design primarily addresses the problem that how to direct the passengers to the stations conveniently and accurately,ensure the secure of the passengers when they get on board or get off the bas.

Keywords:Microcontroller LCD K eyboard

目录

第1章绪论

1.1 论文选题的目的及意义 (1)

1.2 国内外研究现状和发展趋势 (1)

1.3 本课题的研究内容 (2)

第2章总体设计方案

2.1 系统的总体框图 (1)

2.2 系统使用89C52的介绍 (2)

2.3 LCD液晶显示器 (6)

2.3.1 12864液晶显示模块的介绍 (7)

2.3.2 12864液晶显示模块的管脚图及管脚定义 (7)

2.3.3 12864液晶显示模块接口时序的介绍 (8)

2.3.4 12864液晶显示模块与单片机的接口设计 (9)

第3章系统的硬件部分设计

3.1 89C52的时钟电路 (11)

3.2 98C52的复位电路 (12)

3.3 键盘电路的设计 (13)

3.3.1 矩阵式键盘扫描原理 (13)

3.3.2 键盘的去抖设计 (14)

3.3.3 键盘扫描控制方式 (15)

第4章系统的软件部分设计

4.1 系统主流程设计 (16)

4.2 键盘扫描流程设计 (19)

4.3 LCD显示模块流程设计 (18)

结论 (25)

参考文献 (26)

附录 (27)

后记 (28)

第1章绪论

1.1 论文选题的目的及意义

随着城市化进程的加快,公共交通作为城市的基础设施之一,仍然是绝大多数出行者的首选交通方式。为使得人们特别是为外来旅游、出差、就医、求职等急需了解本地的公交路线的人提供高效、方便、快捷的公交系统,让他们得到自己所需要的各种相关信息,以便减少各种可能产生不必要的交通流量,提高公交的运作效率,公交自动报站系统便应运而生。公交应用系统带给公交企业的将不仅是形象的提升,也是效益的增长,所以一个城市的公交车的发展也体现一个城市的发展。

现在是一个高科技发达的时期,人们提倡的是智能设备,用科技来改变人们生活水平与方式,所以现在人们的生活中都感受到了科技给我们带来的方便。现在的城市公交车都装上了语音报站系统,从而提高人们的工作效率。本文正是一个研究如何利用单片机来设计一种适合在公交车上用的自动报站系统。对此的研究我们不仅能够对公交车行业的发展起到一个重要作用,还能够解决如何方便、准确的指示乘客到站的问题,使得乘客能愉快、安全的下车。

1.2 国内外研究现状和发展趋势

公交车自动报站系统的设计主要是为了弥补传统人工语音报站的落后方式,使进站、出站信息自动播报站名,为市民提供更人性化,更完善的服务。

目前自动报站系统技术主要有以下几种:一般语音报站器,到站前由乘务人员按动进站按钮开始报站,出站时由乘务人员按下出站按钮,开始预报下站的站名,通过序号来记录各个站点;第二种是门控语音报站器,将开门、关门时转换信号和语音报站器连接,开门和关门时自动报站;第三种是无线信标语音报站器,它是在每个公交车站点设置发射信标点,公交车临近到站点左右会收到信标信号,开始自动报站,出站后信号消失,开始预报下一站,此报站器报站准确,但需要为每个站点组建无线发射信标,建设复杂、费用高,大部分站点无电源供应,公交车数量多时存在频率干扰问题,且较严重,用户修改站点非常不方便,系统维护成本高;第四种就是GPS自动语音报站器,此报器是在公交车上安装GPS自动语音报站器,自动识别站点并报告站点信息。其优点是报站精准,无须人工操作,无须建设任何车外设施。但从便捷和价格来考虑一般语音公交报站比较普遍。

1.3 本课题的研究内容

在全面了解公交车自动报站系统的原理后,利用单片机设计并实现进站、出站的公交站名显示,准确的指示乘客到站的问题,使得乘客能愉快、安全的下车。为广大市民提供更人性化更完善的服务。

本设计实现的功能是:利用了89C52单片机作为CPU来进行总体控制,同时使用FYD12864液晶显示电路进行汉字显示,能够实现公交车的站名显示。在CPU控制模式下,键盘电路采用中断扫描模式,当有键按下时,系统产生中断,CPU响应中断后,通过软件来实现该键号所对应键的功能。因此当公交车到达某站时通过按键来控制本系统进行工作,CPU同时通过程序读取汉字信息送入LCD液晶显示电路进行汉字提示进行公交车报站。

本设计主要有三部分组成:1、控制部分由89C52组成,包括必要的按键电路、复位电路和时钟电路等外围电路。2、显示部分由12864的LCD液晶显示器完成。3、系统的软件设计用C语言进行编写。

第2章总体设计方案

2.1 系统的总体框图

图2.1 系统的总体框图

系统各模块简介:

1、CPU控制使用单片机STC89C52,它具有指令多、功能强、速度快、可靠性高等优点,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。

2、键控采用4 * 4矩阵键盘,这种键盘连接简单使用较少的I/O口就可以接较多按键。

3、液晶显示模块采用的是FYD12864模块,它构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。

2.2 系统使用89C52的介绍

STC89C52的管脚图及管脚定义如图2.2所示。

图2.2 STC89C52管脚图

管脚的功能介绍如下:

VCC(40引脚):电源电压。

VSS(20引脚):接地。

P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。

P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O 口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。

此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见表2.1。

在对Flash ROM编程和程序校验时,P1接收低8位地址。

表2.1 引脚功能特性

P2端口(P2.0~P2.7,21~28引脚):P2口是一个带内部上拉电阻的8位双向I/O 端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX @DPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVX @R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。

在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。

P3端口(P3.0~P3.7,10~17引脚):P3是一个带内部上拉电阻的8位双向I/O 端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。

在对Flash ROM编程或程序校验时,P3还接收一些控制信号。

P3口除作为一般I/O口外,还有其他一些复用功能,如表2.2所示。

表2.2 引脚复用功能

RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO 默认状态下,复位高电平有效。

ALE(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8

位地址的输出脉冲。在Flash编程时,此引脚也用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。否则,ALE将被微弱拉高。这个ALE 使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

29引脚:外部程序存储器选通信号是外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时将不被激活。

31引脚:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,29引脚必须接GND。注意加密方式1时,29引脚将内部锁定位RESET。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。

XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2(18引脚):振荡器反相放大器的输入端。

STC89C52单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。另外,它还具有指令多、功能强、速度快、可靠性高等优点。

因此本系统采用STC89C52单片机来控制总体控制。

2.3 LCD液晶显示器

液晶显示器的介绍:液晶显示器简称LCD,它具有功耗低、体积小、美观、方便、使用寿命长的特点。液晶显示器中最主要的物质就是液晶,它是一种规则性排列的有机化合物,是一种介于固体和液体之间的物质,在电厂的作用下,晶体排列发生改变,从而影响液体液晶的光折射特性,造成某些部分的视觉变化,从而达到显示的目的。2.3.1 12864液晶显示模块的介绍

FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。

逻辑工作电压(VDD):4.5~5.5V

电源地(GND):0V

工作温度(Ta):0~60℃(常温) / -20~75℃(宽温)

驱动方式:1/32DUTY,1/5BIAS

背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 2.3.2 12864液晶显示模块的管脚图及管脚定义

图2.3 LCD 12864管脚图

LCD 12864管脚定义如表2.3 :

表2.3 12864液晶显示模块管脚定义

2.3.3 12864液晶显示模块接口时序的介绍

12864显示模块有写时序和读时序两种时序如图2.4所示:

(a)MPU写资料到模块

(b)MPU从模块读出资料

图2.4 接口时序写/读资料图

基本操作时序:

①读状态:输入:RS=L,R/W=H,CS=H,E=H;输出:D0~D7=状态字

②写指令:输入:RS=L,R/W=L,D0~D7=指令码,CS=H,E=高脉冲;输出:无

③读数据:输入:RS=H,R/W=H,CS=H,E=H ;输出:D0~D7=数据

④写数据:输入:RS=H,R/W=L,D0~D7=数据,CS=H,E=高脉冲;输出:无2.3.4 12864液晶显示模块与单片机的接口设计

图2.5 12864与单片机接口电路图

图2.5为12864显示模块与单片机显示模块连接电路图:

1 VSS 为模块的电源地,所以1口接地。

2 VDD为模块的电源正端,则2口接电源。

3 V0为LCD驱动电压输入端,则需要连接电路来控制电路中的电压。

4 RS(CS) H/L 并行的指令/数据选择信号;串行的片选信号,则要连接单片机来

行使其片选功能。

5 R/W(SID) H/L 并行的读写选择信号;串行的数据口。因为在本电路中始终都

是写指令或数据,所以该端可以始终连接低电平。

6 E(CLK) H/L 并行的使能信号;串行的同步时钟。该项需要连接入单片机,再

在工作过程中的高/低电平决定该端口所起到的作用。

7~14接口为数据连接端口,与寄存器74LS373连接,通过寄存器传输单片机中的数据来获得相应的信息传送至12864显示器中。

15 PSB H/L 并/串行接口选择:H-并行;L-串行。

16 NC空脚,所以该处不接。

17 /RET H/L 复位低电平有效,则是直接连接高电平,使得12864显示模块刚

开始就处于复位状态

19和20分别为背光源的正负极,则分别连接相对应的电源正极和电源负极。

第3章系统的硬件部分设计

3.1 89C52的时钟电路

STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图(a),在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。

外部方式的时钟电路如图(b),RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。

(a)内部振荡方式 (b)外部振荡方式

图3.1 89C52时钟电路

3.2 89C52的复位电路

(1)复位信号及其产生

整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。

复位操作有上电自动复位和按键手动复位两种方式:如图(a),上电自动复位是

通过外部复位的电容充电来实现的,这样只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位,即接通电源那就成了系统的复位初始化;按键手动复位有电平方式和脉冲方式两种。如图(b),按键电平复位是通过使复位端经电阻与VCC电源接通而实现的。如图(c),按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。

(a)上电复位(b)按键电平复位(c)按键脉冲复位

图3.2 89C52复位电路

(2)复位操作

复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。

除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表3.1所示。

表3.1 一些寄存器的复位状态

3.3 键盘电路的设计

键盘在单片机系统中是一个很重要的部分。输入数据、查询和控制系统的工作状态都要用到键盘,键盘是人工干预计算机的手段。

微机所用的键盘可分为编码和非编码键盘两种。编码键盘采用硬件线路来实现键盘编码,每按下一个键,键盘能自动生成按键代码,键数较多,而且还具有去抖功能。这种键盘使用方便,但硬件较复杂,PC机所用的键盘就属于这种。非编码键盘仅提供按键开关状态,其他工作由软件完成,这种键盘键数较少,硬件简单,一般在单片机应用系统中广泛使用。

本次设计用的是矩阵式键盘,这种键盘连接简单使用较少的I/O口就可以接较多按键。

3.3.1 矩阵式键盘扫描原理

矩阵键盘扫描的方法有两种:1、逐行扫描:我们可以通过高四位轮流输出低电平来对矩阵键盘进行逐行扫描,当低四位接收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个按键被按下。2、行列扫描:我们可以通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。

图3.3 4 * 4矩阵键盘

矩阵键盘的原理如图3.3所示。首先可以通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,来判断是哪一列有键按下,其程序如下:

GPIO_KEY=0X0F;

switch(GPIO_KEY)

{

case(0X07): KeyValue=0;break;测试第一列

case(0X0b): KeyValue=1;break;测试第二列

case(0X0d): KeyValue=2;break;测试第三列

case(0X0e): KeyValue=3;break;测试第四列

}

然后再通过高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是哪一行有按键按下,其程序如下:

GPIO_KEY=0XF0;

switch(GPIO_KEY)

{

case(0X70): KeyValue=KeyValue;break;测试第一行

case(0Xb0): KeyValue=KeyValue+4;break;测试第二行

case(0Xd0): KeyValue=KeyValue+8;break;测试第三行

case(0Xe0): KeyValue=KeyValue+12;break;测试第四行

}

通过行与列的测试,这样就能够确定是哪一个按键按下了。

3.3.2 盘的去抖设计

(a)(b)

图 3.4 键操作和键抖动示意图

按键开关在电路中的连接如图3.4(a)所示。按键未按下时,A点电位为高电平5V;按键按下时A点电位低电平。A点电位就用于向CPU传递开关状态。但由于按键的结构为机械弹性开关,在按键按下和断开时触点在闭合和断开瞬间还会接触不稳定,引起A点电平不稳定,如图3.4(b)所示,键盘的抖动时间一般为5~10ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。因此,必须设法消除抖动的不良后果。

消除按键去抖不良后果的方法有硬件和软件两种。在此系统中我们采用软件去抖的方法来实现按键去抖问题。根据抖动的特性,在第一次检测到按键按下后,执行一段延时10ms子程序后再确定该键是否确实按下,从而消除抖动的影响。

3.3.3 键盘扫描控制方式

在单片机应用系统中,对键盘的处理工作只是CPU工作内容的一部分,CPU还要

进行数据处理,显示和其他输入操作,因此键盘处理工作既不能占用CPU太多时间,又需要CPU对键盘操作及时作出响应,CPU对键盘处理控制的工作方式有以下几种。

1、程序控制扫描方式

程序控制扫描方式是在CPU工作空余,调用键盘扫描子程序,响应键输入信号要求。程序控制扫描方式的键处理程序固定在主程序的某个程序段。当主程序运行到该程序段时,依次扫描键盘,判断有键输入否。若有,则计算按键编号,执行相应键功能子程序。这种工作方式对CPU影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输入响应的及时性。

2、定时扫描控制方式

定时扫描控制方式是利用定时器/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描,并在有键闭合时转入该键的功能子程序。程序控制扫描方式与定时控制扫描方式的区别是,在扫描间隔时间内,前者用CPU工作程序填充,后者用定时器/计数器定时控制,还要占用一个定时/计数器。

3、中断控制方式

中断控制方式是利用外部中断源,响应按键输入信号。当无按键按下时,CPU执行正常工作程序。当有键按下时,CPU立即产生中断。在中断服务子程序中扫描键盘,判断是哪一个键被按下,然后执行该按键的功能子程序,既能及时处理键输入,又能提高CPU运行效率。

本系统就采用此种键盘控制方式,来响应系统的按键输入信号。

第4章系统的软件部分设计

同硬件设计一样,软件设计也是分块进行的。本设计主要的现实背景就是以武昌火车站路线为依托,运行区间沿途设置12个站点。程序的主要设计包括系统主程序、键盘扫描程序、液晶显示程序等。各部分子程序由主程序调用,组成一个整体。

4.1 系统主流程设计序

如图4.1所示为系统主流程图。首先需要进行系统初始化设置,初始化后进行循环。在本设计中是采用中断扫描模式,当有键按下时,系统产生中断,CPU响应中断后,通过软件来实现该键号所对应键的功能。

图 4.1 系统主流程图

相关文档
相关文档 最新文档