SPCE061A在语音环境湿度测量仪的应用

[09-12 16:45:07]   来源:http://www.88dzw.com  单片机学习   阅读:8811

文章摘要:如图 2.6:根据图 2.3中的参数,为了使湿度传感器HS1101的工作频率尽量接近10KHz,选择一个620KΩ的电阻和HS1101形成Feedback1;390pF的电容作为基准,和另外一个620KΩ电阻形成Feedback2。 图 2.6 电容式湿度传感器电路模块电路2.3.3 按键电路 本系统直接使用SPCE061A精简开发板上的按键,61板上按键电路如图 2.7。 图 2.7 61板按键电路3 系统软件设计 本方案的软件系统包括下面模块: 按键扫描:扫描按键,判断是否有键按下,在Key.c文件中实现; 湿度测量:端口初始化,测量湿度并返回湿度值,在Hum_Measure.c文件中

SPCE061A在语音环境湿度测量仪的应用,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

如图 2.6:根据图 2.3中的参数,为了使湿度传感器HS1101的工作频率尽量接近10KHz,选择一个620KΩ的电阻和HS1101形成Feedback1;390pF的电容作为基准,和另外一个620KΩ电阻形成Feedback2。


图 2.6 电容式湿度传感器电路模块电路

2.3.3 按键电路

本系统直接使用SPCE061A精简开发板上的按键,61板上按键电路如图 2.7。


图 2.7 61板按键电路

3 系统软件设计

本方案的软件系统包括下面模块:

按键扫描:扫描按键,判断是否有键按下,在Key.c文件中实现;
湿度测量:端口初始化,测量湿度并返回湿度值,在Hum_Measure.c文件中实现;
语音播放任意数字:播放任意的整数,本系统中用来播放湿度值,在PlayVoice.c文件中实现;
中断服务:语音播放中断服务程序和IRQ2中断读计数值程序,在isr.asm文件中定义。

3.1 各模块程序说明

3.1.1 主程序

主程序流程如图 3.1:调用按键扫描程序读取键值,如果是KEY1键按下则启动测量,调用湿度测量函数测量湿度,并根据测量结果进行相应播放;如果不是KEY1键按下,返回继续扫描按键。

注意:在每次测量前都会关断快速中断FIQ,这是因为在测量过程中用到了定时/计数器TimerA,而在语音播放时打开了FIQ中断,所以在测量前需先关闭,以免在测量过程中CPU一直相应FIQ中断,造成不必要的麻烦。


图 3.1 主程序流程图

3.1.2 按键扫描模块

本系统中只用到了一个按键--61板上的KEY1键,这个键和IOA0连接。按键扫描程序流程如图 3.2所示。利用延时去抖的方法,先取一次端口数据,延时一段时间,一般延时几十ms即可,再取一次端口数据,如果二者相同,说明取到了正确的键值。


图 3.2 按键扫描程序流程图

3.1.3 湿度测量程序流程图

湿度测量程序流程如图 3.3,为了减少误差,确保测量的正确性,测量四次,去掉一个最高值和一个最低值,如果中间两个数相差不大于10,则中间两个数的平均值就是测量的最终数据,程序中这个数据为TimerA的计数值。

由于用Feedback功能测量传感器的电容,如图 2.6。事实上利用Feedback功能直接能测到传感器工作的频率,根据这个频率来才能计算传感器的电容值。

测量传感器工作频率的方法:利用TimeB作为定时器,TimeA作为计数器;根据TimeB定时时间内TimeA计数的个数来测得传感器的工作频率。


图 3.3 湿度测量程序流程图

3.1.4 语音播放任意整数数据程序

语音播放任意三位整数程序流程如图 3.4。这个程序可以定义形式参数来传递任意三位数。先计算这个数据的百、十、个位,再分别进行播放,播放的流程如下:

上一页  [1] [2] [3] [4]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行