《多功能语音播报系统毕业论文.doc》由会员分享,可在线阅读,更多相关《多功能语音播报系统毕业论文.doc(63页珍藏版)》请在三一办公上搜索。
1、摘 要这篇论文主要介绍多功能语音播报系统的设计过程。采用凌阳科技推出的16位结构的微控制器SPCE061A作为核心芯片,利用凌阳61板、传感器模组及液晶显示模组的配合,实现温度、光线的实时测量、语音播报及时间显示。温度测量范围0-125,通过按键来控制系统对温度、光线的测量和播报。由按键组合完成显示屏上时间及闹钟的调整。通过液晶显示提供友好的用户界面,操作简单、方便。 设计由硬件和软件两部分组成。硬件方面我们用Protel软件绘制电路原理图并完成焊接和调试,软件则是编写控制电路工作的程序,在集成开发环境IDE下调试通过后下载到单片机中。最后实现温度、光线的语音播报和日期、时间的显示。设计中热敏
2、电阻测温度是通过中断系统实时监测热敏电阻两端的电压,经过微处理器计算得到温度值,再由音频压缩算法播报出实时温度值。这样的设计可以克服水银温度计的很多缺点,使测量值更准确。 这个设计非常实用,可以让我们方便、快捷、准确地了解当时的温度、光线强弱、日期时间等信息。关键词:语音播报、凌阳、SPCE061A、传感器模组、SPLC501液晶显示模组目录第一章 引言3第二章 需求分析52.1 设计需求52.2概要设计52.2.1 硬件组成52.2.2 SPCE061A概述5第三章 硬件设计93.1 电路图设计93.1.1 原理图设计93.2 焊接113.2.1 检测元器件、并做器件整形113.2.2 元件
3、分类123.2.3 焊接步骤123.3硬件测试133.4下载自检程序143.4.1硬件连接143.4.2程序下载153.4.3 现象153.5 模组简介163.5.1 传感器模组163.5.2 SPLC501液晶显示模组17第四章 软件设计184.1概要设计194.2主程序204.3 子程序模块214.4 调试中遇到的问题及解决方法25第五章 操作指南275.1 硬件连接275.2 操作说明28第六章 总 结29谢 辞30参考文献31附录一:61板电路原理图32附录二:61板PCB图33附录三:元器件清单34附录四:主程序代码35附录五:键盘扫描子程序代码40附录六:通道1、2的A/D转换程序
4、代码40附录七:温度测量程序代码41附录八:语音播报程序代码42附录九:FIQ程序代码45附录十:光线检测程序代码48附录十一:时间日期调整程序代码49第一章 引言随着嵌入式技术的快速发展及其在各领域的广泛应用,单片机以其体积小、功能强、价格低、使用灵活等特点显示出了明显的优势和广泛的应用前景。单片机由于CPU、存储器、I/O接口电路均集中于一块芯片上,其结构非常紧凑,价格便宜,功能却非常强大。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,实现智能化,在航空航天、机械加工、智能仪器仪表、家用电器、通信系统、智能玩具等领域发挥了巨大作用。单片机有着微处理器所不具备的功能,它
5、可单独完成现代工业控制所要求的智能化控制功能,已成为现代电子技术应用领域十分重要的技术之一。世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,应有尽有,有与主流C51系列兼容的,也有不兼容的,它们各具特色,为单片机的应用提供了广阔的天地。现在单片机技术较以往又有了很大进步。主要反映在内部结构、功率消耗、外部电压等级以及制造工艺上。用户对单片机的需求越来越多,要求也越来越高。1、内部结构的进步 单片机在内部已集成了越来越多的部件,这些部件包括一般常用的电路,例如:定时器,比较器,A/D转换器,D/A转换器,串行通信接口,Watchdog电路,LCD控制器等。2、功耗、封装及电源
6、电压的进步 功耗越来越小,特别是很多单片机都设置了多种工作方式,这些工作方式包括等待,暂停,睡眠,空闲和节电。3、工艺上的进步 采用CMOS技术,但还是有很多公司采用的是0.6um以上的光刻工艺,有个别的公司,如Motorola公司则已采用0.35um甚至是0.25um技术。这些技术的进步大大地提高了单片机的内部密度和可靠性。4、单片机应用的可靠性技术发展 在单片机应用中,可靠性是首要因素。为了扩大单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。近年来,单片机的生产厂家在单片机设计上采用了各种提高可靠性的新技术,这些新技术主要有:EFT(Ellectrical Fast Tran
7、sient)技术、低噪声布线技术及驱动技术和采用低频时钟技术。单片机在目前的发展形势下,表现出几大趋势: 1、可靠性及应用越来越水平高和互联网连接已是一种明显的走向; 2、集成的部件越来越多;NS(美国国家半导体)公司的单片机已把语音、图象部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以是万用机,原因是其内部已集成各种应用电路。 3、功耗越来越低和模拟电路结合越来越多; 随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:单片机与微机系统之间的距离越来越小,甚至难以辨认。我们这次毕业设计选用凌
8、阳公司推出的以SPCE061A为核心的单片机。因为它除了具有集成度高、抗干扰性强、体积小、功耗低、价格便宜等特点外,还具有以下功能特点:1、DSP功能、语音特色的凌阳十六位单片机开发系统;2、集开发板仿真器和编程器于一体。只需PC机即可进行产品开发,同时免费提供原版开发环境;3、不需要任何外围器件就可以完成语音录放、识别等功能;4、所有I/O全部引出,可以和用户外部电路直接搭配;5、具有多种电源供电方式,使用户使用更加方便。单片机已渗透到我们生活的各个领域,在科学技术更加进步的未来,单片机的功能会变得更加强大,其应用意义已远不限于它的应用范畴或由此带来的经济效益,更重要的是它已从根本上改变了传
9、统的控制方法和设计思想,是控制技术的一次革命,是一座重要的里程碑。第二章 需求分析任务需求:利用凌阳61板、传感器模组及液晶显示模组的配合,实现温度、光线的实时测量、语音播报及时间显示。温度的测量范围0-125,通过按键来控制系统对温度、光线的测量和播报。通过按键的组合完成显示屏上时间及闹钟的调整。2.1 设计需求单片机已渗透到我们生活的各个领域,大到导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用
10、说自动控制领域的机器人、智能仪表、医疗器械了。小到手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。 传统教学中51单片机的开发需要较多的工具,例如仿真器、编程器、烧录器等,这些开发无论是从价格还是从操作上都使得其难以在学生中普及,它注重的是单片机本身的学习。61板作为一套完整的16位单片机开发系统,可以代替51单片机开发系统所需要的仿真器、编程器、单片机开发板。用一条下载线连接到计算机的并口就可以实现在线仿真、在线调试、在线下载,低廉的价格保证了我们可以拥有自己的单片机开发系统;此外,61板具有SOC概念、DS
11、P功能和语音特色,能让我们接触较新的技术,也能提升学习单片机的兴趣;使用标准C语言也是该单片机的一个优势。所以从以上的比较中我们选择凌阳SPCE061A单片机作为设计的核心部件。2.2 概要设计2.2.1 硬件组成 用61扳与SN-6048传感器模组、SPLC501液晶显示模组连接,实现设计功能。我们将在后面详细介绍两个模组及与61板的连接方式。2.2.2 SPCE061A概述SPCE061A是凌阳科技继unSP (microcontroller and signal rocessor,即16位微处理芯片)系列产品之后推出的又一款16位结构的微控制器。在存储器方面考虑到用户对资源的需求较少以及
12、便于程序调试等功能,SPCE061A里内嵌32K字的闪存(FLASH)。较高的处理速度使nSP能够非常容易快速地处理复杂的数字信号。1、性能 内核采用16位nSP微处理器; 工作电压(CPU)VDD为2.43.6V ,I/O端口高电平VDDH为2.45.5V; CPU时钟:0.32MHz49.152MHz ; 内置2K字SRAM和32K FLASH; 可编程音频处理; 晶体振荡器; 系统处于备用状态下(时钟处于停止状态),耗电仅为2A3.6V; 两个16位可编程定时器/计数器(可自动预置初始计数值); 两个10位DAC(数-模转换)输出通道; 32位通用可编程输入/输出端口; 14个中断源可来
13、自定时器A / B,时基,两个外部时钟源输入,键唤醒 具备触键唤醒的功能; 使用凌阳音频编码SACM_S240方式(2.4kb/s),能容纳210s的语音数据; 32768Hz实时时钟,由锁相环PLL振荡器提供系统时钟信号;图2-1 7通道10位电压模/数转换器(ADC)和单通道声音模-数转换器; 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能; 具备串行设备接口; 具有低电压复位(LVR)功能和低电压监测(LVD)功能; 内置在线仿真电路ICE(In- Circuit Emulator)接口; 具有保密能力; 具有Watch Dog功能。2、结构如图2-1所示。其主要功
14、能模块有并行I/O端口、模/数转换ADC、存储RAM&FLASH、定时器/计数器T/C(脉宽调制输出PWM)、WatchDog、异步串行通信口UART、指令寄存器IR、设备串行口SIO、低电压检测LVD(低电压复位)等。3、封装图2-2 SPCE061A有两种封装片,一种为84个引脚,PLCC84封装形式;另一种为80个引脚,LQFP80封装。我们选用的是PLCC84,引脚排列如图2-2所示。在PLCC84封装中,有15个空余脚,在使用时这15个空余脚悬浮。在LQFP80封装中有9个空余脚,在使用时这9个空余脚接地。 下面是PLCC84管脚功能介绍。表2-1 LQFP84封装管脚功能管脚名称管
15、脚功能IOA0IOA15(4148,5360)I/OA口,16个IOB0IOB15(51,8176,6864)I/OB口,16个OSCI 13振荡器输入,采用石英晶振时,接晶振OSCO 12振荡器输出,采用石英晶振时,接晶振RES_B 6复位信号输入端,低电平有效ICE_EN 16ICE使能端,接在线调试器PROBE的使能脚ICE_ENICE_CLK 17ICE时钟脚,接在线调试器PROBE的时钟脚ICE_CLKICE_SDA 18ICE数据脚,接在线调试器PROBE的数据脚ICE_SDAPVIN 20程序保密设定电源输入脚PFUSE 29程序保密设定输入脚DAC1 21音频输入通道1DAC2
16、 22音频输入通道2VREF2 23 2 V参考电压输入脚AGC 25语音输入自动增益控制引脚OPI 26Microphone第二级运放输入脚MICOUT 27Microphone第一级运放输入脚MICN 28Microphone正向输入脚MICP 33Microphone负向输入脚VRT 35A/D转换参考电压输入脚VCM 34ADC参考电压输入脚VMIC 37Microphone电源SLEEP 63睡眠状态指示,当CPU进入睡眠状态时,输出高电平VCP 8锁相环压控振荡器阻容输入端XPOMT PVPP XTEST(61.69.14)出厂测试管脚,使用时悬空即可VDDH 51.52.75I/
17、O电平参考电压输入端,当输入参考电压为5V/3.3V时,I/O输入、输出高电平为5V/3.3VVDD 7锁相环PLL电源VSS 9锁相环PLL地VSS 19.24模拟信号地VSS 38.49.50.62数字信号地VDD 15.36数字信号电源 第三章 硬件设计 电路板按功能设计可分为电源区、下载区、音频区、键控区、输出输入接口等区域。3.1 电路图设计61板设计的结构框图如图3-1所示。图3-13.1.1 原理图设计在熟悉了Protel 99SE的使用后,就开始电路原理图的设计。图3-21、电源区:采用3节5号电池供电,由J10接入。其中的前后两组电容用来去耦滤波,使其供给芯片的电源更加干净平
18、滑。为了活动标准的3.3V电压,在板子上加入SPY0029三端稳压器。两个二极管,是为防止误将电源反接造成不必要损失而设置的,在操作过程中千万不要将电源接反,因为反向电压超过一定的值,二极管将会被损坏,达不到保护的目的。后面的零电阻及其电源、地分成不同的几路是为了减少电池干扰设置的。原理图如图3-2所示。2、下载区:ICE基本运作方式的通过控制clock及通过ICE喂入指令方式,来控制CPU的运行及缓存器资料和内存资料的存取,因此必须透过控制缓存器值的设定来控制目前CPU的运作。每个相连接的不同ICE模块都拥有自己独特的3-bit ID,当PC在传送control 信号时都会先传送该 3-bi
19、t ID ,只有ICE本身的ID和control信号的ID相同时才会执行该命令或回传资料。61板上的74HC244主要在我们选用下载线的时候起作用,主要寄缓存的作用和完成SDA是作为数据回送还是数据下传的选择。原理图如图3-3所示。图3-33、音频区:MICP和MICN将随着MIC产生的波形变化,并在两个端口处形成两路反相的波形,在经过两级运放放大,把放大的语音信号交给ADC转换为数字量,这个时候我们就可以通过单片机编程对这些数据进行处理,比如说语音数据压缩、语音识别样本处理。SPY0030A专门用于语音信号放大的芯片。原理图如图3-4所示。4、键控区:按键是通过通断控制来实现它的功能,在按键
20、没有按下时,它的1、3脚是断开的当按下时这两个脚是连通的。若此时我们在1脚接一个高电平,把第3脚连到一个I/O口上,这就形成了一个人机操作界面,通过编程对I/O扫描,单片机就能识别到我们的按键指令。原理图如图3-5所示。5、输入输出接口:(也可简称为I/O口)是单片机与外设交换信息的通道。输入端口负责从外界接收检测信号,键盘信号等各种开关量信号。输出端口负责向外界输送由内部电路产生的处理结果,显示信息,控制命令,驱动信号等。unSP内有并行和串行两种方式的I/O口。SPCE061A有两个16位通用的并行I/O口:A口和B口。这两个口的每一个都可通过变成单独定义成输入或输出口。原理图如图3-6所
21、示。图3-4图3-5 图3-661板原理图见附录一,PCB板的设计见附录二。3.2 焊接3.2.1 检测元器件、并做器件整形1、用万用表检测12个电解电容、16个独石104、3个独石224是否短路,短路的器件需更换。2、利用万用表检测4个按键,按键按下后看1、3脚是否接通,是则说明按键正常。3、 先将单排插针掰开,分别为10PIN4个、1PIN1个、3PIN3个和2PIN两个。4、将所有检测过的电阻、电容、二极管按电路板间距把引脚折弯,以便插到电路板上。3.2.2 元件分类1、小个子元器件(20个):晶振(1个)、二极管(3个)、SPY0029A(1个)、电阻(18个)。2、中间个子元器件(4
22、5个):瓷片电容(5个)、独石电容(19个)、电解电容(12个)、按键(4个)、发光二极管(2个)、芯片座(3个)。3、大个子元器件(13个):排针(9个)、接座(3个)、电位器(1个)。(元件清单见附录三)3.2.3 焊接步骤焊接原则是从高到低,为确保焊接一次成功,需要元件的大小来决定,由小到大焊接。焊接流程图如图3-7所示。 独石电容(19个)SPY0029A电阻(18个)二极管(3个)晶振瓷片电容(5个)电解电容C33、C35电源整体初测电源器件初测完成所有电解电容的焊接焊接按键、电位器发光二极管电源座第二次电源测试单排插针五针座麦克风芯片座焊接管脚修整图3-7 说明:1、先用万用表查P
23、CB板上J10两管脚,若短路则查清楚短路的原因,可能是因为二极管坏掉或者电源部分电容有问题,请排除错误后再往下执行。2、用万用表查SPY0029A的三个管脚之间是否短路;若短路,可能是因为第二个二极管坏掉或者SPY0029A没焊好,请排除错误后再往下执行。3、焊接电源座。焊接完电源座,电源部分已全部焊完,这时我们可以上电,会看到电源指示灯点亮,如没亮请立刻断电并查清原因,依照电流走向可很快就能查到原因。4、焊接麦克风。麦克风的焊接一定要注意正极与负极;麦克风正确的插入板子中, 需要自己加工一下,具体步骤如下: 获得两节剪断的裸露导线或是被剪断焊接元件多余的引脚,长度大于1cm; 镊子把两节导线
24、分别拆成“L”形,短边的长度小于5mm,分别给“L”的短脚抹上一点焊锡,便于焊接; 利用烙铁分别把制作好的“L”形导线焊接到底盘上银白色的金属上,目的就是给麦克风做两个引脚; 对应正、负极把引脚插入61板的正、负极焊接完成。3.3硬件测试 在进行硬件测试之前,要将板子底部的引线修剪整齐。焊接后的电路板实物图如图3-8所示。图3-8第一步测试目的:测试61板电源和地是否有短路;条件:断开电源并拔掉电池盒,将J5的2、3脚用跳线帽短接;步骤:用万用表测试量J10的两脚的电阻是否为零;现象 :电阻为零;结论:焊接过程中可能造成短路了;解决办法:进行电源部分的排查;现象 :电阻大于300欧姆;结论:正
25、常,进入第二步。第二步测试目的:测试61板电源部分器件是否工作正常;条件:将三节5号电池装入电池盒中,接到J10处,将电池盒开关拔到ON处;步骤:将电池盒开关拔到ON处;现象 :发光二极管D1没点亮,立即将电源断开,进入步骤4的测试;结论:电源部分器件有问题进入Step4;解决办法:进行电源部分的排查;现象 :发光二极管D1点亮;结论:正常,进入第三步。第三步测试 目的:测试61板上各器件电源供电是否正常;条件:用跳线帽把S5的1、2脚短接;步骤:测试U1的第7脚电压-3.3V左右; 测试U4的第20脚电压-3.3V左右; 测试J4的第1脚电压-3.3V左右; 测试U2的第7、8脚电压-4.5
26、V左右; 测试J6、J7、J8、J9的+端电压-4.5V左右;现象 :电压不正常;结论:在供电的某个传输方向上出现了问题;解决办法:对照原理一步步排查;现象 :电压正常;结论:正常,进行键盘部分测试。3.4下载自检程序3.4.1硬件连接1、喇叭连接,直接与61板的J3连接;2、连接跳线冒:连接J5的第一脚与第二脚;S5的第二脚与第三脚;J2的第一脚与第二脚;3、连接下载线与SPCE0061A板的J11;4、61板电源连接可接三节电池,电源就与SPCE0061A板的J10相连,下载器由SPCE0061A板的电源进行供电;这样在连接上准备就绪了。61板与计算机的连接如图3-9所示图3-93.4.2
27、 程序下载1、 打开SPCE0061A板的开发环境unSP IDE 1.8.4;2、 在unSP IDE 1.8.4中打开已上传的自检程序,是.spj文件类型的;3、 点击工具栏的“Select body“与半子连接,再点击下载程序;这样就能将程序下载到板子上面了,下载完后将S5的跳线冒拔掉。3.4.3 现象工作时的连接方式如图3-10所示。图3-101、我们将听见一段录音:“欢迎进入自检模式,I/O测试失败”; 2、然后将两根排线分别将IOA0IOA7与IOB0IOB7相连和IOA8IOA15与IOB8IOB15相连,然后按下复位键,如果板子没有问题,则会听见一段录音:“欢迎进入自检模式,I
28、/O测试成功”,否则提示:“I/O测试失败”,再进行下一步;3、按下k1键,绿灯要闪一下,然后就播报:“睡眠测试成功”,再进行下一步;4、按下k2键,就会播报:“AD测试成功”,否则就提示:“AD测试失败”,再进行下一步;5、拔掉两根排线,按下k3键,则会出现叫声,在MIC上拍几下,看是否有声音。以上工作顺利完成后,就表示硬件测试调试通过,硬件部分工作完成了。下面就将介绍我们的设计所需要用到的外围设备。 3.5 模组简介在本次设计中用到了两个模组:传感器模组和液晶显示模组,以下分别对两模组做介绍。3.5.1 传感器模组1、传感器模组实物图如图3-11所示。 图3-11 2、基本特性与参数指标
29、(1) 模组工作电压:3V5.5V; (2) 工作温度:060。 3、功能 主要供用户进行学习和简单设计,功能如下: (1) 可以测量温度; (2) 可以测量光线状况; (3) 可以进行障碍检测; (4) 可以接收来自遥控器的信号; (5) 可以模拟简易遥控器。 4、注意事项 (1)温度及光线检测模块 测量温度时,测量到的是与热敏电阻直接接触物体(包含空气)的温度,热敏电阻有一定的反应时间。 测量光线时,最好把整个光敏电阻暴露于测量环境下;如果想用手遮住光线测量光敏电阻是否正常工作时,最好用手掌而不要用手指,因为手指两测会漏一些光线。(2)红外发射接收 红外接收头的最低工作电压是3V;如果用红
30、外发射接收管检测障碍物,检测距离会随着电压的减小而缩短。 3.5.2 SPLC501液晶显示模组 1、液晶显示模组实物图如图3-12所示。图3-122、功能SPLC501液晶显示模组为128X64点阵,面板采用STN(Super Twisted Nematic)超扭曲向列技术制成并且由128 Segment和64 Common组成,LCM非常容易通过接口被访问。模组上的液晶显示器采用凌阳科技的SPLC501芯片作为LCD驱动和控制器,为128X64点阵图形液晶显示器。可以方便地和61板连接,可进行字符显示、汉字显示以及图形显示,应用在需要图形、文本显示的系统中。SPLC501液晶显示模组的基本
31、参数:显示模式 黄色模式STN液晶 显示格式 128X64点阵地图形液晶显示 输入数据 兼容68/80系列MPU数据输入 背光 黄绿色LED 模块尺寸 72.8(长)73.6(宽)9.5(高)mm 视屏尺寸 58.84(宽)35.79(长)mm 点大小 0.42(宽)0.51(长)mm 像素尺寸 0.46(宽)0.56(长) 第四章 软件设计nSP IDE 是由凌阳科技提供的一个集成开发环境,它集程序的编辑、编译、链接、调试和仿真等功能为一体,具有友好的交互界面、下拉菜单、快捷键和快速访问命令列表等,使程序设计工作更加方便、高效,此外它的软件仿真功能可以不连接仿真板,通过模拟硬件的部分功能来调
32、试程序。IDE开发环境界面如图4-1所示。图4-1语音播报及显示A/D转换温度计算光线计算时间日期设置语音播报语音处理液晶显示键盘扫描系统初始化 图4-2 4.1 概要设计本设计的编程语言选用C语言和凌阳汇编指令。按照设计需求,程序应完成以下功能,其结构框图如图4-2所示。YNYN键盘、显示器初始化 开 始闹钟是否到时间点?播放音乐是否有键按下?判断是KEY?按下Key1按下Key2按下Key3按下进入调整界面播报日期、时间播报温度、光线结 束图4-3 4.2 主程序主程序完成各变量及常数数组的定义,实现各功能模块的调用,如键盘初始化、液晶显示界面和按键控制等。主程序流程图见图4-3所示,程序
33、代码见附录四。系统初始化开 始是否有按键键值处理结束 N Y 图4-4 开始选择ADC通道使能ADC启动ADC判断转换是否完成?取转换数据转换结果右移六位返回转换值图4-5 4.3 子程序模块按照子程序功能不同,下面将分别对键盘扫描、温度、光线、语音播报、时间调整等子程序模块进行相关的介绍。1、键盘扫描该程序实现键盘端口初始化和键盘函数扫描的功能。当有键按下,通过一定时间延时后,获取键盘值并赋给按键值,暂存变量,确定按键值后,返回给主程序。键盘扫描流程图见图4-4所示,程序代码见附录五。2、A/D转换在通道1/2中,将模拟数据转换为数字信号。因只有数字信号才能被61板、传感器模组和液晶显示模组
34、识别,当各模组识别到数字信号并进行相应的数据移位后,再传递参数给液晶显示模组进行相应的功能显示。通道1或通道2选择的A/D转换函数程序流程图见4-5所示,程序代码见附录六。开始测温端口初始化开IRQ4_1KHZ中断是否完成30次测量?求温度平均值查表计算出温度结束图4-63、温度测量驱动程序通过求多次采样数据的平均值获得温度值。为了提高读数的准确性,采样次数由10次提高到30次,再求平均值。测量次数增加,需要的时间也增加,所以延时时间会较10次采样长。温度测量驱动程序流图如图4-6所示,程序代码见附录七。4、语音播报程序实现多功能语音播报系统的语音播报。例如开机的语音提示、实时日期和时间的语音
35、播报,及传感器测得到的温度值和光线强度的语音播报。多功能语音播报程序流程图如图4-7所示,该程序代码见附录八。NYNY开始初始化端口传入键值KEY=3?报温度值、光线强弱KEY=2?报日期、时间清看门狗图4-7 NYNY开始寄存器入栈保护判断是否为TimerA中断?判断是否为TimerB中断?清除中断TimerA中断TimerB中断寄存器出栈返回图4-85、中断程序 选定中断定时器TimerA/B后,进入语音函数资源库,进行温度、光线、日期和时间等相应的语音资源解码并语音数据输出;或是对相应的日期、时间等函数调用,在液晶屏幕上得到日期、时间等的显示。 快速中断(FIQ)程序流程图如图4-8所示
36、,该程序代码见附录九。6、光线测量驱动程序通过求多次测量电压并AD转换后数据的平均值获得光线强度。为了读数的准确性,采用10次测量电压数据并AD转换,再求取平均值。光线测量驱动程序流程图如图4-9所示,该程序代码见附录十 。开始初始化端口开1k Hz中断IRQ4取十次光线求平均值计算电压值结束图4-97、时间日期调整程序实现开机显示设计者信息;根据按键操作显示时间、日期、星期、图片、农历及闹钟状态的调整及显示界面。时间日期调整程序流程图如图4-10所示,该程序代码见附录十一 。8、DM Tool字模提取工具设置液晶模组的显示,需要了解该液晶显示模组的点阵调用和字模提取工具的相关信息,以下是对D
37、M Tool字模提取工具的介绍。(1) 功能简介DM(Dot Matrix)Tool工具是BMP图像和字符编辑、字模数据生成工具,有友好的用户界面,用户可以方便地使用下拉菜单和快捷操作,完成对BMP图像、字符的导入、编辑,以及数据生成操作。DM Tool工具的主要功能如下: 字符(汉字、ASCII码)导入; 字符(汉字、ASCII码)编辑; 单色BMP图像(小于或等于240X240点)导入; 单色BMP图像编辑; 图像、字符的字模数据生成; 字模数据文件导出。(2) DM Tool工具主窗口DM Tool是针对unSP系列16位单片机的字模数据提取工具,用户可以利用此工具提取汉字字模、BMP位
38、图字模,还可以很方便地提取ASCII码字模,还可以利用此工具对所要取的汉字、位图等进行编辑,生成的字模数据以Word(字型)数据为基本单元,以数组的形式保存。字模数据导出时,可以导出一个.C文件和一个.h的头文件,用户可以直接把这两个文件加载到工程中,供汉字显示、位图显示使用。图 4-11为DM Tool工具的主窗口。 NYYNYNNY开始清屏Key1=?显示正常运行界面进时间调整界面K1键按下?光标修改K2健按下?光标是否到最后?光标对应值加1结束按键标志清0,清屏图4-10图4-114.4 调试中遇到的问题及解决方法在程序调试过程中,我们遇到了许多难题,影响设计进程。以下是对在编程调试中普
39、遍遇到的几个问题及解决方法做一总结。1、 程序调试时,偶尔有变量未定义或未做全局声明在程序调试过程中遇到变量没定义时,首先查找此变量是在哪个模块中被用到,然后再在相应的模块中去定义该变量;有的是全局变量,却只作了局部定义,要作全局声明,则到资源中去作相应声明,然后保存,再调试下载。2、 变量重复定义单个模块编译不会报错误,但是在程序下载时,出现某个变量重复定义,此时要搜索查找所有用到此变量处,然后再分析是哪个部分多余,或哪个部分的定义需要修改。3、 资源没有加载或加载不完全程序加入了新的功能模块,成功编译了各功能模块的程序,但下载报出错,找不到某文件,此时要做的是在资源中查看缺少哪些资源,然后
40、找到该资源所在的位置,在IDE的资源表单中进行相应的加载或直接将该资源从原文件的资源库复制到目标文件的资源库,并重新打开该程序,然后编译下载。4、 下载时找不到路径程序下载时找不到路径,按如下操作projectsetting文件名link在library modules框中作相应的路径修改,或直接用Alt+F7的快捷键打开文件选项框,再做相应的操作即可。5、温度光线的语音播报不受控制(不报/乱报/不停止的播报)将光线、温度程序和时钟程序修改后,正确下载到61板上,连接好各部分硬件电路,按key3键操作,发现此时的操作无任何反应。重新查看分析程序,把与语音播报无关的项目删掉,例如键盘扫描、清看门
41、狗等。然后再编译下载,发现按key3键播报的温度和光线都是乱序的。经过仔细分析查找后,发现资源和主程序的调用有一定偏差,把资源和程序作对应修改后,温度、光线能按正常顺序播报,但会一直播报,若在主程序的温度、光线后加上*P_IOA_Data&=0xfffb,k3键由高电平变为低电平,这样使得每按K3一次,温度值和光线强度语音播报一次。6、 字符加载无法正常显示( 文字/图片)在字模提取工具中,文字的点阵格式虽然有多种,但是此液晶模组字模规则只有选择12*12的点阵才可在液晶显示屏上正常显示。7、字符坐标调试在程序中,设置文字或图片在液晶显示屏上的横纵坐标,以改变文字或图片在显示屏幕上的位置(横坐
42、标以液晶显示屏左下脚为原点,纵坐标以液晶显示屏右上脚为原点)。8、开机显示延时处理在主程序开机信息调用后面加载延时子程序Delay( i );要对i进行定义并赋初值(本设计中i的值为400)。这样使得操作者可以清晰的看到设计者的相关信息。9、温度值播报差异过大在温度模块程序中修改采样次数和调节平均温度值的记录。本设计中,将最初的10次采样次数改为30次。因采样次数的增加,使得传感器模组的温度采集更精准。第五章 操作指南本次毕业设计具有如下功能:1、语音播报功能(1) 开机播放提示音;(2) 语音播报时间,包括:年、月、日、时和分。(3) 语音播报光线强度和温度值。2、液晶显示功能(1) 开机显
43、示设计者相关信息;(2) 显示时间、日期、星期、图片、农历及闹钟状态;(3) 显示相关的各调整界面。本次设计采用61板与传感器模组、液晶显示模组相接合,实现语音播报和显示。下面我将详细介绍本次设计的具体操作。注:在系统未进行设置前,系统默认的时间和日期为2006年8月1日0点0分;默认的闹钟时间是12:00,闹钟默认状态为开。5.1 硬件连接1、与传感器模组的连接用10pin排线将传感器模块的J2与61板上的J8连接。 注意:连接时接口的极性,正极接正,负极接负。 2、与液晶显示模组的连接用10pin排线将液晶显示模块的DB和61板上的J9相连接(正极接正,负极接负);用一个4pin排线(如表5-1所示)连接各引脚。 表5-1 61板与液晶