基于SPCE061A具有语音功能的湿度测控系统设计论文_第1页
基于SPCE061A具有语音功能的湿度测控系统设计论文_第2页
基于SPCE061A具有语音功能的湿度测控系统设计论文_第3页
基于SPCE061A具有语音功能的湿度测控系统设计论文_第4页
基于SPCE061A具有语音功能的湿度测控系统设计论文_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 PAGE41 / NUMPAGES46 毕业设计论文题目:基于SPCE061A具有语音功能的湿度测控系统设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作与取得的成果。尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得与其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。作 者 签 名:日 期:指导教师签名: 日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

2、按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部容。作者签名: 日 期:学位论文原创性声明本人重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文使用授权书本学位论文作

3、者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 与格 不与格2、学生掌握专业知识、技能的扎实程度 优 良 中 与格 不与格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 与格 不与格4、研

4、究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 与格 不与格5、完成毕业论文(设计)期间的出勤情况 优 良 中 与格 不与格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规? 优 良 中 与格 不与格2、是否完成指定的论文(设计)任务(包括装订与附件)? 优 良 中 与格 不与格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 与格 不与格2、论文的观念是否有新意?设计是否有创意? 优 良 中 与格 不与格3、论文(设计说明书)所体现的整体水平 优 良 中 与格 不与格建议成绩:优 良 中 与格 不与格(在所选等级前的画“”)指导

5、教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规? 优 良 中 与格 不与格2、是否完成指定的论文(设计)任务(包括装订与附件)? 优 良 中 与格 不与格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 与格 不与格2、论文的观念是否有新意?设计是否有创意? 优 良 中 与格 不与格3、论文(设计说明书)所体现的整体水平 优 良 中 与格 不与格建议成绩:优 良 中 与格 不与格(在所选等级前的画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)与教

6、学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 与格 不与格2、对答辩问题的反应、理解、表达情况 优 良 中 与格 不与格3、学生答辩过程中的精神状态 优 良 中 与格 不与格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规? 优 良 中 与格 不与格2、是否完成指定的论文(设计)任务(包括装订与附件)? 优 良 中 与格 不与格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 与格 不与格2、论文的观念是否有新意?设计是否有创意? 优 良 中 与格 不与格3、论文(设计说明书)所体现的整

7、体水平 优 良 中 与格 不与格评定成绩:优 良 中 与格 不与格(在所选等级前的画“”)教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日目 录 TOC o 1-3 h z u TOC o 1-3 h z u HYPERLINK l _Toc293576571摘 要HYPERLINK l _Toc293576572AbstractHYPERLINK l _Toc293576573前 言HYPERLINK l _Toc293576574一、总体设计和实现的功能 PAGEREF _Toc293576574 h 4HYPERLINK l _Toc293576

8、5751.1 系统参数 PAGEREF _Toc293576575 h 4HYPERLINK l _Toc2935765761.2 功能简介 PAGEREF _Toc293576576 h 4HYPERLINK l _Toc293576577二、系统硬件设计 PAGEREF _Toc293576577 h 4HYPERLINK l _Toc2935765822.1SPCE061A芯片特点 PAGEREF _Toc293576582 h 5HYPERLINK l _Toc2935765832.1.1SPCE061A简介 PAGEREF _Toc293576583 h 5HYPERLINK l _

9、Toc2935765882.1.2芯片特性 PAGEREF _Toc293576588 h 5HYPERLINK l _Toc2935766102.2SPCE061A精简开发板 PAGEREF _Toc293576610 h 6HYPERLINK l _Toc2935766122.3湿度传感器HS1101 PAGEREF _Toc293576612 h 7HYPERLINK l _Toc2935766132.3.1湿度测量简介 PAGEREF _Toc293576613 h 7HYPERLINK l _Toc2935766252.3.2HS1101简介 PAGEREF _Toc29357662

10、5 h 8HYPERLINK l _Toc2935766342.3.3测量原理 PAGEREF _Toc293576634 h 9HYPERLINK l _Toc2935766372.3.4测量方法 PAGEREF _Toc293576637 h 9HYPERLINK l _Toc2935766472.4硬件电路 PAGEREF _Toc293576647 h 11HYPERLINK l _Toc2935766482.4.1SPCE061A最小系统 PAGEREF _Toc293576648 h 11HYPERLINK l _Toc2935766522.4.2电源模块 PAGEREF _Toc

11、293576652 h 12HYPERLINK l _Toc2935766612.4.3电容式湿度传感器HS1101电路模块 PAGEREF _Toc293576661 h 12HYPERLINK l _Toc2935766672.4.4按键电路 PAGEREF _Toc293576667 h 13HYPERLINK l _Toc293576671三、系统软件设计 PAGEREF _Toc293576671 h 13HYPERLINK l _Toc2935766773.1主程序 PAGEREF _Toc293576677 h 13HYPERLINK l _Toc2935766833.2按键扫描

12、模块 PAGEREF _Toc293576683 h 14HYPERLINK l _Toc2935766883.3湿度测量程序流程图 PAGEREF _Toc293576688 h 15HYPERLINK l _Toc2935766953.4语音播放任意整数数据程序 PAGEREF _Toc293576695 h 16HYPERLINK l _Toc2935767003.5中断服务程序流程图 PAGEREF _Toc293576700 h 17HYPERLINK l _Toc293576706结束语20HYPERLINK l _Toc293576707参考文献 PAGEREF _Toc2935

13、76707 h 21HYPERLINK l _Toc293576708致 PAGEREF _Toc293576708 h 22HYPERLINK l _Toc293576709附 录23基于SPCE061A具有语音功能的湿度测控系统设计摘要本文以SPCE061A单片机为控制核心,主要针对一般电子湿度计,研究了被测湿度值存在只能检测和数字显示、不可以语音播出的实际问题,运用16位单片机控制,利用电容式湿度传感器,设计了一种具有湿度的测量、数字显示以与语音报警功能的湿度检测系统。目前市面上已经出现了很多基于SPCE061A的相关产品。本文通过比较基础的方法,阐述了SPCE061A单片机是一种性价比

14、很高的产品,它自带语音模块,功能强大,应用面极广。关键词:单片微型计算机;语音播报;湿度传感器;HS1101;SPCE061ABased on theSPCE061Adesign of humidity measurement and control system with speech functionAbstractIn this article tospce061asingle-chip microcomputer to control core, is for general electronic hygrometers, study the measured humidity val

15、ue can only detect and problems of digital display, not the actual voice broadcast, using16-bit single-chip microcomputer control, the use of capacitive humidity sensor, designed a measurement with humidity humidity detection, digital displays, and voice alarm system. Currently there have been many

16、on the market based onspce061aof related products. By comparing the basic method in this article, expounded thespce061asingle-chip is a high price/performance of the product, it comes with voice modules, powerful, very wide.Key words:single-chip microcomputerstool;voicebroadcasts;HS1101;SPCE061A基于SP

17、CE061A具有语音功能的湿度测控系统设计摘要本文以SPCE061A单片机为控制核心,主要针对一般电子湿度计,研究了被测湿度值存在只能检测和数字显示、不可以语音播出的实际问题,运用16位单片机控制、利用电容式湿度传感器,设计了一种具有湿度的测量、数字显示以与语音报警功能的湿度检测系统。目前市面上已经出现了很多基于SPCE061A的相关产品。本文通过比较基础的方法,阐述了SPCE061A单片机是一种性价比很高的产品,它自带语音模块,功能强大,应用面极广。关键词:单片微型计算杌;语音播报;湿度传感器;HS1101;SPCE061A前 言目前,嵌入式系统的发展万兴未艾:其种类从小到一个芯片,大到一台

18、独立的应用设备,数量繁多,让人目不暇接;其应用领域从以工农业控制为主,渗透到人们日常生活的各个方面:在电冰箱、洗衣机、空调、电视机、手机、数码相机,甚至电饭锅和手表里,都有嵌入式系统的身影。正如美国福特汽车公司高级经理所说的那样:“福特出售的计算能力已经超过了IBM。因此,嵌入式系统成为了种无处不在的数字系统,并且成为了后PC时代的骄子。”在农工业方面,我国农业正处于从传统农业想以优质、高产、高效益为目标的现代农业转化的新阶段。环境的控制和检测作为农业生物速成、优质、高产的手段,是农业现代化的重要标志。温室大棚中的环境有多个因素组成,如温度、光照、湿度与二氧化碳浓度等。人工管理已经不能满足农业

19、的生产要求了,阻碍了农业的发展。另外,在工业领域里,比如矿井、锅炉、水温检测等等,诸多方面都需要进行温度、湿度、瓦斯、光照方面的检测。而且这些方面有时候要求特别严格,不容有误。比如矿井里的瓦斯检测。所以,综合很多方面,在此设计了一种基于SPCE061A具有语音功能的湿度测控系统,用于对湿度进行检测,语音报警,让检测系统更加安全和方便。此系统还能进行扩展,比如:扩展成多点湿度实时监测;变换检测模块进行其他诸如瓦斯、二氧化碳、光线的检测。总是次系统可以扩展的空间很大,用途很广。一、总体设计和实现的功能1.1 系统参数本方案系统的主要参数:工作温度:070;工作湿度:0100%RH;测量围:1%99

20、%RH;精度:5RH%。1.2 功能简介本方案预期实现的功能如下:按键控制启动湿度测量;语音播放测量湿度值;湿度判断,并有温馨提示语,当湿度太高时,播放“潮湿,请打开除湿机”,湿度太低时,播放“太干,请打开加湿器”。二、系统硬件设计对于湿度测量仪,除了具有一个控制器控制测量外,还需要测量器。本系统中采用SPCE061A作为控制器,电容式湿度传感器HS1101作为测量器,利用一个按键来启动湿度测量和语音播放。由于电容不能直接和SPCE061A的I/O口连接进行测量,所以需要一个电路模块,与SPCE061A的Feedback接口IOB2、IOB4,IOB3、IOB5连接,实现从电容到频率的转换,系

21、统的结构框图如图 2.1。图2.1系统结构框图SPCE061A单片机作为主控芯片,根据读到的键值判断是否启动测量,测量时负责读取Feedback电路的工作频率,根据频率计算HS1101的电容和它所在环境的湿度,并把湿度通过喇叭播放出来。同时如果湿度值太高或者太低,系统会播放提示。2.1SPCE061A芯片特点2.1.1SPCE061A简介SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,该芯片拥有8路10位精度的ADC,两路10精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。另外凌阳十六位单片机具有易学易用的效率较高的一套指令系统和集成开发环境。在此环境中,

22、支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用为软件开发提供了方便的条件。SPCE061A片还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真都变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSP IDE)我们可以利用它对芯片进行真实的仿真;而程序的下载(烧写)也是通过该接口进行下载。下图为SPCE061A单片机的部结构框图:图 2.2 SPCE061A部结构图2.1.2芯片特性16位nSP微处理器核心,能完成16为算术逻辑运算、16*16为硬件乘法运算和DSP的积滤波运算;CPU工作电压VDD为3.03.6V(CPU),IO口工作电

23、压VDDH为3.05.5V(I/O);CPU的工作时钟频率为0.32MHz49.152MHz;置2K字的静态存(SRAM);置32K字的闪存(FLASH);可编程音频处理;晶体振荡器;省电模式:系统处于备用状态下(时钟处于停止状态),耗电仅为2A(3.6V);2个16位可编程定时器/计数器(可自动预置初始计数值);2个10位DAC(数-模转换)输出通道;32位通用可编程输入/输出端口;14个中断源:包括2个定时器与时器,2个外部时钟源输入和按键唤醒;具备触键唤醒的功能;使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;锁相环PLL振荡器提供系统时钟信号;327

24、68Hz实时时钟;7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;声音模-数转换器输入通道置麦克风放大器和自动增益控制(AGC)功能;具备串行设备接口;低电压复位(LVR)功和低电压监测(LVD)功能;置在线仿真(ICE,In- Circuit Emulator)接口。2.2SPCE061A精简开发板SPCE061A精简开发板(简称61板),是以凌阳16位单片机SPCE061A为核心的精简开发仿真实验板,是凌阳专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作与电子竞赛所设计的,也可作为单片机项目初期研发使用。61板除了具备单片机最小系统电路外,还包括有电源电路

25、、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等,采用电池供电,方便学生随身携带!使学生在掌握软件的同时,熟悉单片机硬件的设计制作,锻炼学生的动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会!61板上有调试器接口(Probe接口)以与下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合unSP IDE,可方便地在板上实现程序的下载、在线仿真调试。下图为61板的实物图:图2.3 61板实物图2.3湿度传感器HS11012.3.1湿度测量简介1、湿度定义在计量法中规定,湿度定义为物象状态的量。日常生活中所指的湿度为相对湿度,用RH

26、%表示。总言之,即气体中(通常为空气中)所含水蒸气量(水蒸气压)与其一样情况下饱和水蒸气量(饱和水蒸气压)的百分比。2、电子式湿度传感器的特点电子式湿度传感器是近几十年,特别是近20年才迅速发展起来的。湿度传感器生产厂在产品出厂前都要采用标准湿度发生器来逐支标定,电子式湿度传感器的准确度可以达到2一3RH。精度下降,湿度传感器年漂移量一般都在2%左右,甚至更高。一般情况下,生产厂商会标明1次标定的有效使用时间为1年或2年,到期需重新标定。电子式湿度传感器的精度水平要结合其长期稳定性去判断,一般说来,电子式湿度传感器的长期稳定性和使用寿命都不是很好。湿度传感器是采用半导体技术,因此对使用的环境温

27、度有要求,超过其规定的使用温度将对传感器造成损坏。所以电子式湿度传感器测湿方法更适合于在洁净与常温的场合使用。电子式湿度传感器主要有电容式和电阻式两种:电容式湿敏元件的优点在于响应速度快、体积小、线性度好、较稳定,国外有些产品还具备高温工作性能。但是达到上述性能的产品多为国外名牌,价格都较昂贵。市场上出售的一些电容式湿敏元件低价产品,往往达不到上述水平,线性度、一致性和重复性都不甚理想,30%RH以下,80%RH以上感湿段变形严重。有些产品采用单片机补偿修正,使湿度出现阶跃性的跳跃,使精度降低,出现一致性差、线性差的缺点。无论高档次或低档次的电容式湿敏元件,长期稳定性都不理想,多数长期使用漂移

28、严重,湿敏电容容值变化为pF级,1%RH的变化不足0.5pF,容值的漂移改变往往引起几十%RH的误差,大多数电容式湿敏元件不具备40以上温度下工作的性能,往往失效和损坏。本系统中我们使用电容式湿度传感器HS1101,这颗传感器比较常见,适用于一些对精度要求不高的场合。2.3.2 HS1101简介1、基本参数如图 2.4。如果没有特别标注,默认下图的测量温度T=25,测量时HS1101工作频率为10KHz。图2.4HS1101参数图2、特性曲线如图 2.5。测量温度T=25,测量时HS1101工作频率为10KHz。图2.5HS1101特性曲线2.3.3测量原理HS1100湿度传感器是一种基于电容

29、原理的湿度传感器,相对湿度的变化和电容值呈线性规律。在自动测试系统中,电容值随着空气湿度的变化而变化,因此将电容值的变化转换成电压或频率的变化,才能进行有效地数据采集。用555集成电路组成振荡电路, HS1100湿度传感器充当振荡电容,从而完成湿度到频率的转换,电路图如图2.6所示。图2.6 测量电路图2.3.4测量方法HS1101湿敏传感器是采用侧面开放式封装,只有2个引脚,有线性电压输出和线性频率输出2种电路。在使用时,将2 脚接地,这里选用频率输出电路。该传感器采用电容构成材料,不允许直流方式供电,所以我们使用555定时器电路组成单稳态电路。具体电路分析如下。电源电压工作围是+3.5+1

30、2V。利用一片CMOS定时器TLC555 , 配上HS1101 和电阻R2 、R4构成单稳态电路,将相对湿度值变化转换成频率信号输出。输出频率围是73516033Hz,所对应的相对湿度为0100%。当RH=55%时,f=6660Hz。输出的频率信号可送至数字频率计或控制系统,经整理后送显示。R3为输出端的限流电阻,起保护作用。通电后,电源沿着U ccR4R2C对HS1101 充电,经过t1 时间后湿敏电容的压降Uc就被充电到TLC555的高触发电平(Uh = 0.67Ucc) ,使部比较器翻转, OUT端的输出变成低电平。然后C开始放电, 放电回路为CR2D部放电管地。经过t2 时间后,Uc降

31、到低触发电平(Ul =0.33Ucc) ,部比较器再次翻转,使OUT端的输出变成高电平。这样周而复始的进行充、放电,形成了振荡。充电、放电时间计算公式分别为:t1 =C(R2+R4)ln2; t2 =CR2ln2输出波形的频率(f)和占空比(D)的计算公式如下:f =1/T=1/(t1+t2) =1/C(2R2+R4)ln2D =t1/T=t1/(t1+t2) =R2+R4/(2R2+R4)通常取R480)PlaySnd(15);/播放潮湿PlaySnd(17);/播放请PlaySnd(18);/播放打开PlaySnd(19);/播放除湿机if(Result30)PlaySnd(16);/播放

32、太干PlaySnd(17);/播放请PlaySnd(18);/播放打开PlaySnd(20);/播放加湿器else*P_Watchdog_Clear = 0 x0001;/清看门狗 *P_IOA_Data &= 0 xfffe;/IOA2口回低电平 *P_Watchdog_Clear = 0 x0001;/清看门狗按键扫描程序/=/文件名称:Key.c/功能描述:初始化键盘函数和扫描键盘函数/=#include SPCE061A.h/=/语法格式:void Key_Init(void)/实现功能:键盘初始化/参数:无/返回值:无/=void Key_Init(void)*P_IOA_Dir &

33、= 0 xfffe;/初始化IOA0为带下拉电阻输入口*P_IOA_Attrib &= 0 xfffe;*P_IOA_Data &= 0 xfffe;/=/语法格式:void Delay(void)/实现功能:延时/参数:无/返回值:无/=void delay(void)unsigned int uiCount;for(uiCount = 0;uiCount = 3000;uiCount+)*P_Watchdog_Clear = 0 x0001;/清看门狗/=/语法格式:unsigned int KeyScan(void)/实现功能:获得键盘值并返回/参数:无/返回值:键盘值/=unsigne

34、d int KeyScan(void)unsigned int uiData;unsigned int uiTemp;uiData = *P_IOA_Data;/读取IOA端口输入uiData = uiData&0 x0001;/仅取最低位有效值if(uiData!=0)/非零则表示有键按下delay();/延时消抖uiTemp = *P_IOA_Data;uiTemp = uiTemp&0 x0001;/仅取最低位有效值if(uiData != uiTemp)uiData = 0;/两次读数不相等,则置返回值为0return uiData;/返回键值湿度测量程序/=/文 件 名: Hum_M

35、easure.c/功能描述: 湿度测量驱动程序/=#include SPCE061A.h#include math.h#define P_FeedBack (volatile unsigned int*)0 x7009unsigned int F_Counter,Flag=0;/=/语法格式:void Humidity_Init(void)/功能描述: 湿度测量初始化/入口参数: 无/出口参数: 无/=void Humidity_Init(void)*P_IOB_Dir |= 0 x020C;/初始化IOB2/IOB3为反相低电平输出口,IOB4/IOB5为悬浮高电平输入口,*P_IOB_At

36、trib |= 0 x0230;/如果要用SPCE061A的Feedback功能,必须这样设置.详细可参考SPCE061A的数据/编程手册*P_IOB_Data |= 0 x0230;*P_FeedBack = 0 x000C;/设置IOB2345为特殊功能(反馈功能)口/=/语法格式:void Humidity_Measure(void)/功能描述: 湿度测量函数,测量数据存储RH中,同时播放这个数据/入口参数: 无/出口参数: 无/=unsigned int Humidity_Measure(void)unsigned int i,iRH,max,min,f1,f2,err;/iRH为测量

37、湿度返回值,i用来循环/f1、f2分别为每次测量得到的Feedback1和Feedback2频率计数值,err为测量错误判断变量,iRH为测量返回值,unsigned int F_Con14,F_Con24;/两个数组分别用来存放的4次频率测量计数值 float RH,C,C1,Ca,f;/C为湿度传感器的矫正电容、RH为湿度、f为Feedback1的频率/C1为每次测量得到的湿度传感器的电容,Ca为频率补偿后55%RH的电容 F_Counter = 0;/初始化各个变量f = 0;C = 0;iRH = 0;Humidity_Init();/湿度测量初始化for(i=0;i4;i+)/进行4

38、次的电容测量 *P_TimerB_Ctrl = 0 x0001;/32768Hz*P_TimerB_Data = 0 xF0FF;/计1280个数 (FFFF-FAFF)=160/FAFF/2560/3840*P_TimerA_Ctrl = 0 x0037;/EXT1 *P_TimerA_Data = 0 x0000;/设置定时初值Flag = 0;/中断标志,这个位会在isr.asm的IRQ2中改变*P_INT_Ctrl |= 0 x0400;/允许IRQ2中断_asm(int irq);/开IRQ中断 while(Flag=0)/读计数器的数据 *P_Watchdog_Clear = 0

39、x0001;/清看门狗 *P_TimerA_Ctrl = 0 x0006;/停止TimerA和TimerB的计数或者定时*P_TimerB_Ctrl = 0 x0006;F_Con1i = F_Counter;/读取测量值,F_Counter在isr.asm的IRQ2中改变F_Counter = 0; *P_TimerB_Ctrl = 0 x0001;/32768Hz*P_TimerB_Data = 0 xF0FF;/计1280个数/3840 *P_TimerA_Ctrl = 0 x003D;/EXT2*P_TimerA_Data = 0 x0000;/设置定时初值Flag = 0;/中断标志

40、,这个位会在isr.asm的IRQ2中改变 *P_INT_Ctrl |= 0 x0400;/允许IRQ2中断_asm(irq on);/开IRQ中断 while(Flag=0)/读计数器的数据*P_Watchdog_Clear = 0 x0001;*P_TimerA_Ctrl = 0 x0006;/停止TimerA和TimerB的计数或者定时*P_TimerB_Ctrl = 0 x0006;F_Con2i = F_Counter;/读取测量值,F_Counter在isr.asm的IRQ2中改变F_Counter = 0;/f1的处理;去掉测量4次中的一个最大值.一个最小值,两个中间值的平均值即

41、为要测量数据max = F_Con10;/找出最大值,放在F_Con10中for(i=1;imax) max = F_Con1i;F_Con1i = F_Con10;F_Con10 = max;*P_Watchdog_Clear = 0 x0001;min = F_Con13;/找出最小值,放在F_Con13for(i=2;i0;i-)if(F_Con1iF_Con12)/错误处理,如果中间两个数据相差太大,忽略这次测量数据,认为是一次错误测量err = F_Con11 - F_Con12; else err = F_Con12 - F_Con11;if(err10)f1 = (F_Con11

42、+F_Con12)/2; else f1 = 0;/f2的处理;去掉测量4次中的一个最大值.一个最小值,两个中间值的平均值即为要测量数据max = F_Con20;/找出最大值,放在F_Con20中for(i=1;imax)max = F_Con2i;F_Con2i = F_Con20;F_Con20 = max;*P_Watchdog_Clear = 0 x0001;min = F_Con23;/找出最小值,放在F_Con23for(i=2;i0;i-)if(F_Con2iF_Con22)/错误处理,如果中间两个数据相差太大,忽略这次测量数据,认为是一次错误测量err = F_Con21 -

43、 F_Con22;else err = F_Con22 - F_Con21;if(err100)/如果湿度大于100iRH = 0;/湿度强制赋0return iRH;*P_Watchdog_Clear = 0 x0001;/清看门狗语音播放程序/=/文 件 名: PlayVoice.c/功能描述: 语音播放函数/=#include SPCE061A.h#include s480.h/=/语法格式: void PlaySnd(unsigned int SndIndex) /功能描述: 指定段的语音播放函数/入口参数: SndIndex:播放的语音索引号,索引顺序在Resource.asm中定义

44、/出口参数: 无/=void PlaySnd(unsigned int SndIndex)SACM_S480_Initial(1);/初始化为自动播放SACM_S480_Play(SndIndex,1,3);/选择播放的段为第SndIndex段,DAC1通道,声音可淡入淡出while(SACM_S480_Status()&0 x0001)!=0)/判断是否播放完成 SACM_S480_ServiceLoop();/没有播放完成,填充语音队列*P_Watchdog_Clear = 0 x0001;/清看门狗SACM_S480_Stop();/语音播放停止/=/语法格式: void PlaySnd

45、(unsigned int SndIndex) /功能描述: 指定三位数据的语音播放函数/入口参数: iData:任意三位数据/出口参数: 无/=void PlayData(unsigned int iData)unsigned bai,shi;/分别存放百和十的语音索引号unsigned int Bw,Sw,Gw;/分别存放百位十位和个位数据bai = 11;/初始化百和十的语音索引号 shi = 10; Bw = iData/100;/计算百位Sw = (iData%100)/10;/计算十位 Gw = iData%10;/计算个位if(Bw!=0)PlaySnd(Bw);/播放百位,百位

46、为0时,不播放PlaySnd(bai);/播放百if(Sw!=0) PlaySnd(Sw);/如果十位不为0,播放十位PlaySnd(shi);/播放十 elseif(Bw!=0)/如果百位不为0,十位为0,播放0PlaySnd(Sw); if(Gw!=0)/如果个位不为0,播放个位PlaySnd(Gw); elseif(Bw=0)&(Sw=0)/如果百位、十位、个位都为0,播放0PlaySnd(Gw);*P_Watchdog_Clear = 0 x0001;FIQ中断服务程序/=/文件名:isr.asm/功能描述:中断服务函数文件/=.INCLUDE SPCE061A.inc.INCLUDE

47、 s480.inc/.EXTERNAL _iData/外部变量用来存储IOA口读到的数据/.EXTERNAL _RN_Rx/.EXTERNAL _iCouter/外部变量用来存储电平的持续时间.EXTERNAL _F_Counter/外部变量用来存储电平的持续时间.EXTERNAL _Flag/外部变量用来存储电平的持续时间.TEXT/=/汇编语言格式:_BREAK/功能描述:BREAK的中断服务函数/ 如果需要,请在reti前面写用户的中断服务函数/入口参数:无/出口参数:无/=.PUBLIC _BREAK_BREAK:reti /=/汇编语言格式:_FIQ/功能描述:FIQ的中断服务函数/

48、 调用F_FIQ_Service_SACM_S480函数进行语音解码和语音数据的输出/入口参数:无/出口参数:无/=.PUBLIC _FIQ_FIQ:push r1,r5 tospr1 = 0 x2000test r1,P_INT_Ctrl/判断是否为FIQ_TMA中断jnz ?FIQ_TMA/是则转向?FIQ_TMAr1 = 0 x0800test r1,P_INT_Ctrl/判断是否为TMB中断jnz ?FIQ_TMB/是则转向?FIQ_TMBr1 = 0 x8000 P_INT_Clear = r1/清FIQ_PWM中断标志 jmp ?exit?FIQ_TMA:P_INT_Clear =

49、 r1/清FIQ_TMA中断标志call F_FIQ_Service_SACM_S480/调用F_FIQ_Service_SACM_S480函数解码并输出到语音输出通道jmp ?exit?FIQ_TMB:P_INT_Clear = r1/清FIQ_TMB中断?exit:pop r1,r5 fromspreti /=/汇编语言格式:_IRQ0/功能描述:IRQ0的中断服务函数/ 如果需要,请在reti前面写用户的中断服务函数/入口参数:无/出口参数:无/=.PUBLIC _IRQ0_IRQ0:reti /=/汇编语言格式:_IRQ1/功能描述:IRQ1的中断服务函数/ 如果需要,请在reti前面

50、写用户的中断服务函数/入口参数:无/出口参数:无/=.PUBLIC _IRQ1_IRQ1:reti/=/汇编语言格式:_IRQ2/功能描述:IRQ2的中断服务函数/ 如果需要,请在reti前面写用户的中断服务函数/入口参数:无/出口参数:无/=.PUBLIC _IRQ2_IRQ2:push r1,r5 tospr1 = 0 x0400P_INT_Clear = r1/清中断标志位r1 = P_TimerA_Data _F_Counter = r1/保存TimerA的计数值r1 = 1_Flag = r1/设置定时时间溢出标志pop r1,r5 fromspreti /=/汇编语言格式:_IRQ

51、3/功能描述:IRQ3的中断服务函数/ 如果需要,请在reti前面写用户的中断服务函数/入口参数:无/出口参数:无/=.PUBLIC _IRQ3_IRQ3:reti /=/汇编语言格式:_IRQ4/功能描述:IRQ4的中断服务函数/ 这个中断服务程序进行发送和接受数据/入口参数:无/出口参数:无/=.PUBLIC _IRQ4_IRQ4:reti /=/汇编语言格式:_IRQ5/功能描述:IRQ5的中断服务函数/ 如果需要,请在reti前面写用户的中断服务函数/入口参数:无/出口参数:无/=.PUBLIC _IRQ5_IRQ5:reti /=/汇编语言格式:_IRQ6/功能描述:IRQ6的中断服

52、务函数/ 如果需要,请在reti前面写用户的中断服务函数/入口参数:无/出口参数:无/=.PUBLIC _IRQ6_IRQ6:reti /=/汇编语言格式:_IRQ7/功能描述:IRQ7的中断服务函数/ 如果需要,请在reti前面写用户的中断服务函数/入口参数:无/出口参数:无.PUBLIC _IRQ7_IRQ7:Reti学位论文原创性声明本人重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的容和致的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感。本人完全意识到本声明的法律结果由本人承担。学位论文作者(本人签名): 年 月 日学位论文出版授权书本人

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论