超速报警系统的设计与实现(本科毕业论文) - 图文(6)

2019-09-01 20:56

武汉科技大学本科毕业设计

TCTL2 = 0x00; //开启通道0、禁止通道1的比较动作 TC0 = 6250; //T=1/(80MHZ/32)*6250=2.5ms TIE_C1I=0; //使能TC1中断,暂不使能TC0中断 TIE_C0I=1;

4.3 人机交互设计

在本章第一节中提到过,人机交互部分功能的实现应安排在main函数的for循环中。在单片机上电复位后,首先需要做的是对OLED屏进行初始化设置,因此需要编写一个LCD_Init()子函数,使屏处于待显示状态。为了能够显示汉字字符,用到了一个叫做“通用LED点阵文字图片代码生成下载器”的软件,如图4.2所示。

图4.2 字模处理软件

用这个软件生成了一组16*16大小的文字数据,建立了一个数组保存起来。但实际显示出来的效果比较怪,文字并不是正的,而是横躺着的效果,因此,在进入for循环前,写了一个location_change(16)函数,其功能是对点阵数据进行坐标变换并用另外一个数组存下来,使屏能够正常的显示汉字信息。

做完了以上两步,才开启中断,进入到for循环中去。先执行按键扫描函数Key_Scan(),也就是不断的读取相应的6个I/O引脚的电平状态,判断有无按键按下,当有按键按下时,修改相应变量(翻页、换行、加减数据)的值。

接下来是执行显示屏的显示功能,俗称“刷屏”,即函数redraw()。刷屏过快,屏幕上的字符信息会一直处于闪烁状态,不便于观察;刷屏过慢,屏上的信息会来不及刷新,并且在显示效果上也会感觉很卡,也不行,因此对刷新频率的调整,要结合实际观察效果来进行具体的调整。

- 21 -

武汉科技大学本科毕业设计

在程序编写过程中,对人机交互部分的按键输入及显示部分要多做调试,找出bug,弥补不足,调整显示,使系统的性能得到良好保证。

4.4 IIC总线读取A/D转换值

NXP 半导体(原Philips 半导体)公司于20世纪80年代初推出了一种简单的双向二线制串行通信总线,这种总线被称为Inter-IC(IIC或I2C)总线。目前IIC 总线已经成为业界嵌入式应用的标准解决方案,同SPI总线一样,被广泛地应用在基于微控制器与各种外围设备之间的串行通信,可以作为控制、诊断与电源管理等方面的数据通信总线,主要应用领域包括消费类电子、电信产品等。多个符合IIC 总线标准的器件都可以通过同一条I2C 总线进行通信,而不需要额外的地址译码器。IIC 是一种两线制串行总线,因此操作非常简单。

IIC 总线总是以字节(Byte)为单位收发数据的,每次传送的数据是8位。每次传输从起始信号开始,之后传送的字节数量没有严格限制。首先传输的是数据的最高位(MSB,第7 位),最后传输的是最低位(LSB,第0位)。另外,每个字节之后还要跟一个应答位,应答位总是由接收器产生。所有数据传送结束后,主控制器发出终止信号。

IIC总线不需要额外的地址译码器和片选信号。多个具有IIC总线接口的器件都可以连接到同一条IIC总线上,它们之间通过器件地址来区分。主机是主控器件,不需要器件地址,其他器件都属于从机,需要配置有器件地址。必须保证同一条IIC总线上所有从机的地址都是唯一确定的,不能有重复,否则IIC 总线将不能正常工作。一般从机地址由7 位地址位和一位读/写位标志R/ 组成,7位地址占据高7位,读/写位在最后。读/写位是0,表示主机将要向从机写入数据;读/写位是1,则表示主机将要读取从机数据。

IIC总线主机向从机发送数据的基本格式如图4.3所示。

图4.3 发送数据格式

IIC总线主机读取从机数据的基本格式如图4.4所示。

图4.4 接收数据格式

根据相应的格式,编写IIC总线的驱动程序,包括start_I2C()、stop_I2C()、send_byte(unsigned char c)、receive_byte()、Ack_I2C(unsigned char a)函数,实现单片机与转换器PCF8591T的双向通信,将数字量信息读入单片机并算出当前汽车行进中的实际速度[14]。

- 22 -

武汉科技大学本科毕业设计

4.5 语音芯片的驱动

为了实现语音播放功能,首先需要做的是获取一段音频播放文件,一种方式是通过个人电脑的录音孔录取一段音频数据,但实际制作的过程中选择了利用语音合成软件,这样不仅可以调节语速、语调,还可以选择标准的男音、女音,从而获得更佳的播放效果。所采用的语音合成软件如图4.5所示。

图4.5 语音合成软件

通过这个软件生成采样率为12000,WAV或者MP3格式的音频文件,再转化为AD4格式并存储在SD卡中。TF卡中可放置512段语音,语音文件名为10进制放置如0000、0001??等。语音播放模块音频解码芯片的驱动控制时序如图4.6所示。

图4.6 控制时序

- 23 -

武汉科技大学本科毕业设计

控制时序的延时很长,要执行完这段程序需要大约330ms的时间,显然若要在中断函数中安排这段程序的执行是不可能的,因此放在了for循环中,通过若干个中断周期的计数来进行延时,这样做既能做到延时又不会干扰到中断里面函数的执行,是一个很明智的安排。接下来需要做的工作是按照这段控制时序来编写程序使音频解码芯片响应单片机的指令解码音频文件并且播放语音。

- 24 -

武汉科技大学本科毕业设计

5 系统开发平台与辅助调试工具

5.1 系统硬件开发平台

在制作超速报警器系统的硬件电路时,为了让其性能更加稳定,可以定做印刷电路板(鉴于是一次毕业设计,用万用板搭做了实物而没画PCB板)。在画电路原理图时,用到了Altium公司推出的Altium Designer 09专业制图软件,它是业界首例将设计流程、集成化 PCB 设计、可编程器件(如 FPGA)设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品,具有将设计方案从概念转变为最终成品所需的全部功能。相比其早期产品Protel,它在性能和功能上都有很大提升,完全可以胜任诸如超速报警器之类的硬件电路的设计工作。

在使用上,其界面美观,功能完善,使用起来十分方便,此外系统元件库集成了目前世界上绝大部分芯片厂商的大多数芯片的原理图和封装,系统所用的元件基本都能在这里找到,这为我节约了不少时间和精力。

画图时,首先新建一个工程项目,为该工程添加一个原理图文件,然后从画图框右边的library库中找到需要的元件,将其拖到画图框,选择正确的封装。元件添加完毕后,再选择连线工具,将元件对应引脚连接起来即可,当在库中无法找到对应元件时,也可自己新建一个原理图库,在实施起来也很方便,其部分界面如图5.1所示。

图5.1 DXP界面

- 25 -


超速报警系统的设计与实现(本科毕业论文) - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:组胚复习要点

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: