石家庄铁道大学四方学院毕业设计
3.5 按键控制模块
3.5.1 按键控制模块电路原理图
按键分为两类:独立式按键和矩阵键盘。
独立式键盘是最简单的键盘电路,各个键相互独立,每个按键独立的与一根数据输入线相连接。任何一个键按下时,通过门电路都会向CPU申请中断,在终端服务程序中,读入对应值,从而判断是哪一个按键被按下。查询时,平时所有的数据输入线都通过上拉电阻被连接成高电平;当任何一个键被压下时,与之连接的数据输入线将被拉成低电平,要判断是否有键被压下,只要用位处理指令即可。
18
石家庄铁道大学四方学院毕业设计
第4章 系统软件设计
在对所要设计的课题有了整体的了解之后,需要先建立程序框架的流程图,对整个设计划分模块,逐个模块实现其功能,最终把各个子模块合理的连接起来,构成总的程序。主程序首先要对整个系统进行初始化,然后将指令传给芯片,设置按键功能,按下按键,看其对应的按键,完成预期的功能。
系统的主流程图如图4-1所示:
开始 系统初始化 N K1是否被按下? Y 调用按键子程序 调用录音子程序 K2是否按下? Y 判断按键次数 调用语音模块放音子程序 调用液晶显示子程序 结束
图 4-1 主程序流程图
19
石家庄铁道大学四方学院毕业设计
4.1 录音模块设计
首先是对SS、MOSI、SCLK、MISO设定为低电平有效,且串行时钟指令SCLK为下降沿触发。然后将上电指令发送给主控芯片,当主控芯片存储了本条指令,而系统再次调用它的时候,即可实现对ISD4004语音芯片通电。往芯片内烧录语音信息 (录音地址0XA0,当前录音地址0XB0)。 如图4-2所示:
开始 系统初始化 开始录制第一段语音 将ISD4004芯片指令传送给STC89C52 再次按下K2键 设置按键功能 开始录制第二段语音 Y 是否按下K2键? 返回
图4-2 录音模块程序流程图
4.2 放音模块设计
以上已对SS、MOSI、MISO、SCLK进行了设定,故我们需要将上电指令发送给主控芯片,当主控芯片存储了本条指令,而系统再次调用它的时候,即可实现对ISD4004语音芯片通电。然后我们将从指定地址开始的放音指令0XE0和从当前地址
20
石家庄铁道大学四方学院毕业设计
开始放音指令0XF0传送给主控芯片,当芯片调用该指令的时候,语音执行相应的操作。执行过程如图4-3所示:
开始 系统初始化 将ISD4004芯片指令传送给STC89C52 设置按键功能 N 判断K1是否被按下? 无操作 Y Y Y 判断a是否为奇数? N 播放第一段录音 播放第二段录音 返回 图4-3 放音模块流程图
4.3 显示模块设计
显示模块采用带中文字库的LCD12864液晶屏,首先设定汉字地址表,再根据需显示的汉字地址或坐标显示对应的汉字。在主函数调用第一站信息时,显示对应内容,当调用第二站信息时显示第二站对应内容。如图4-4:
21
石家庄铁道大学四方学院毕业设计
开始 系统初始化 N 判断K1是否被按下? Y Y 判断a是否为奇数? 显示: 本站:四方学院 下车请当心 下站:火车站 显示: 本站:火车南站 下车请当心 下站:铁道大学 N 无操作 返回
图4-4 显示模块流程图
4.4 键盘扫描模块设计
键盘扫描采用的是独立按键,确定有无按键按下并判断是哪一个按键。当检测到有键按下后,需要去除键抖动,延时一段时间再做下一步的检测判断,识别出是哪一个键闭合。扫描过程如图4-5所示:
22