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

发布时间 : 星期二 文章公交车自动报站系统毕业论文(DOC)更新完毕开始阅读

武汉大学珞珈学院本科毕业论文

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

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

3.3.1 矩阵式键盘扫描原理

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

图3.3 4 * 4矩阵键盘

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

GPIO_KEY=0X0F;

switch(GPIO_KEY) {

case(0X07): case(0X0b):

KeyValue=0;break;测试第一列 KeyValue=1;break;测试第二列

3

武汉大学珞珈学院本科毕业论文

}

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

KeyValue=3;break;测试第四列

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

switch(GPIO_KEY) { }

case(0X70): case(0Xb0): case(0Xe0):

KeyValue=KeyValue;break;测试第一行 KeyValue=KeyValue+4;break;测试第二行 KeyValue=KeyValue+12;break;测试第四行

case(0Xd0): KeyValue=KeyValue+8;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还要

4

武汉大学珞珈学院本科毕业论文

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

1、程序控制扫描方式

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

2、定时扫描控制方式

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

3、中断控制方式

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

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

5

武汉大学珞珈学院本科毕业论文

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

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

4.1 系统主流程设计序

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

图 4.1 系统主流程图

1

联系合同范文客服:xxxxx#qq.com(#替换为@)