这个430单片的小项目是我本科刚毕业的时候做的,花了近乎一个月的时间。现在看来,东西做是做成了,但是文档功底似乎还要提高。之后我又花了近乎一个月的时间做了这个项目的姐妹版本——基于MSP430的湿度计及定标。两者的区别除了前者多个控制功能以外,主要在定标功能的实现上。前者的定标计算就是430完成的,包括整个定标控制过程的软件设计,最小二乘法直线拟合系数的计算,存储定标参数,以及段式液晶的显示界面等等全是在单片机里完成,整个过程全工作在低功耗模式3。而后者的定标计算则是利用串口,通过计算机软件实现。只不过我没有用纯软件开发工具编写定标GUI程序界面,用的是matlab编写界面。基于MSP430的湿度计及定标博文点击
http://bbs.ednchina.com/BLOG_ARTICLE_3006334.HTM
下面就详细介绍湿度控制器及其定标过程。
概述:可完成定时自动定标显示,手动定标显示,保存拟合数据,更新的地址以及定标次数信息(掉电复位无影响),选择当前已经保存的历史数据校正RH%显示(最多16次,如果校正次数超过16,则擦除历史数据重新保存这次数据,依此循环),上电复位显示最近一次定标的RH%。
硬件电路设计:本湿度控制器由湿度采集部分和湿度控制部分组成。系统方框图如下。其中,湿度采集部分由电源模块、CPU控制模块、锁相环模块、液晶显示模块、按键模块组成。
硬件电路原理图可以到这里下载
http://bbs.eetop.cn/viewthread.php?tid=344832&extra=
或者
电源电路:输入直流电压为4.5V-5V,经过MC34063升压稳压后,输出5V电压,在经过ME62后输出3.3V电压。
CPU控制电路:采用MSP430F435或449混合信号处理器,共100引脚,3.3V供电,片内定时器TIMER B1(管脚为P2.2)产生锁相环的输入频率,采集的湿度信号进入MSP430的12bitADC。两路IO作为加湿和除湿器开关的控制接口。
锁相环电路:该电路主要功能是利用锁相环工作在中心频率时的相位同步输出功能,将湿度传感器的电容变化转化频率变化,进而得到VCO的输入电压变化值。至于为什么不直接通过单片机捕获频率变化(传感器HS1101的datasheet上也有频率参考公式)就不太清楚了,可能是因为电压值的变化相对来说要容易获得些吧,一个是与ADC的位宽有关,另一个则与计数器的最小时间间隔有关。锁相环芯片为CD4046。电路原理图如下所示。
液晶显示电路:本液晶片共38个引脚,其中1脚为COM1,2、38脚为COM2,37脚为COM0,分别于单片机的相应脚相连;3-36脚为液晶各段脚,分别与单片机的12-45脚相连。液晶共十位数字,本设计只用到了九位。
下面介绍按键相关操作,在一些中小学的计算器上也可以看到这种模式设置。当然,现在的计算器比我们那个时候的计算器功能要复杂多了。[page]
按键功能说明:按键位置分布如图1所示K1:左上,K2:左下,K3:右下,K4:右上。上电复位后K1为模式选择按键,其他按键无用。
图1 初始状态(模式0)按键分布
按下K1按键进入模式选择界面如下图2所示,1,2,3分别对应模式1,2,3,此时K1,K2,K3,K4对应的功能如图3所示。K1:退出,K2:确定,K3:重复左移,K4:重复右移。
图2 模式选择界面
图3 模式选择控制功能
系统总共有4个模式状态,模式0(默认),模式1,模式2,模式3。
- 模式0:上电复位时默认的显示状态,由系统校正次数(store_count)确定显示哪次定标时计算的RH值。其显示界面如图4所示。左边显示当前计算的RH%值,右边为RH%对应的ADC的测试电压值(单位V),代替温度显示位置。
图4 模式0显示界面
- 模式1:设定定时时间,由系统自动定标校正RH%功能。进入模式设置确定选择模式1后,进入模式1的设置界面如图5所示,选择的位值开始闪烁表示该位被选中,K3,K4可以加减调节该位的数值,K2确定设定值。例如:如果屏幕上显示30,那么自动模式中系统读秒30后转换一次测试状态,切换过程中默认设置有大约2秒的测试状态显示,测试状态说明见模式2。
图5 模式1定时值的设定显示界面
图6 模式1设定按键功能
- 模式2:手动测试模式,可手动完成一次定标校正RH%功能,还可以手动启动定时30s切换测试模式。在模式选择时,选择模式2,系统则进入了模式2显示界面如图7所示。按键功能如图8所示。图7所示内容,定标的标准环境值RH%=11.8%,测试HD1101(湿度传感器)测得相对湿度RH%=60.7%,右边的1表示此时是测试状态1。同理其他测试状态如图9所示,读秒计时如图10所示。测试定标一次系统返回模式0,显示当前使用当前校正公式计算的RH%值,同时曲线拟合的系数,更新的地址以及校正次数分别保存到FLASH的信息存储区段1和段2。具体说明看模式3。
图7 测试状态1显示界面
图8 手动测试按键控制功能
图9 测试状态2,3,4,5显示界面
图10 定时读秒显示界面
- 模式3:选择已经保存的历史数据校正RH%显示。如果没有进行过定标,则模式3的显示界面如图11所示,如果已经有过9次定标数据则模式3的显示界面如图12所示。也就是说,进入模式3的显示界面,第一次显示的值便是历史保存的数据个数,选择范围只能在0到这个数据之内。0表示未校正时的数据,1表示第一次校正时的数据,以此类推。设定的按键控制功能由图13所示。[page]
图11 模式3显示界面1
图12 模式3显示界面2
图 13 模式3的按键控制功能
软件程序设计及代码见下面网址,内容包括如下:
1>P1外部中断处理函数流程图
2>TimerA的定时数据刷新程序流程图
3>模式处理函数程序流程图
4>2000行左右的原代码
code_fy.rar
P1外部中断处理流程图.pdf
TimerA的定时数据刷新程序流程图.pdf
模式处理程序流程图.pdf
http://bbs.eetop.cn/viewthread.php?tid=344832&page=1&extra=#pid7044979
实物图:
上一篇:一款串口输出超声波测距模块使用范例
下一篇:STC单片机一键下载器
推荐阅读最新更新时间:2024-03-16 14:03