时间:2022-09-27 09:17:23
摘 要TI公司的Stellaris系列的单片机具有CortexTM-M3内核,它们为对成本尤其敏感的嵌入式单片机应用方案带来了高性能的32位运算能力。本论文设计了以CortexTM-M3为内核的嵌入式单片机LM3S811为控制器的,具有自动检测水位,防干烧,自动进行浸泡、预热、打浆、煮浆全过程,还有豆浆防溢出、温度检测等功能。
【关键词】嵌入式CortexTM-M3 LM3S811 温度检测
豆浆是现代科学公认的营养品,随着家庭生活条件的改善、生活水平的提高以及出于对食品安全的考虑,富含植物性蛋白的豆浆正以无可阻挡的魅力走进千家万户,本论文即采用 嵌入式单片机设计的一款豆浆机。
1 LM3S811单片机介绍
TI公司的Stellaris系列的单片机,能够使用户以传统的8位和16位器件的价位来享受32位的性能。该系列单片机是针对工业应用方案而设计的,包括远程监控、电子售货机、测试和测量设备、网络设备和交换机、工厂自动化、建筑控制、运动控制、医疗器械、以及火警安防等。
LM3S811单片机的优势还在于能够方便的运用多种ARM的开发工具和片上系统(SoC)的底层IP应用方案,能够满足各种需求。另外,该单片机使用了兼容ARM的Thumb?指令集的Thumb2指令集来减少存储容量的需求,并以此达到降低成本的目的。因此,本设计采用LM3S811单片机作为控制芯片。
2 豆浆机工作流程与硬件设计
2.1 豆浆机工作流程
正常上电后按豆浆按钮,蜂鸣器“嘀”一声,指示灯亮。
(1)延时2秒、随后加热到80℃,打豆10秒后停5秒。
(2)自动加热挂泡,停止加热10秒。
(2)打豆10秒,停10秒如此循环6次。
(3)加热到挂泡,如此循环3次。
(4)打豆10秒,停6秒如此循环6次。
(5)加热到挂泡,如此循环6次。
完成后蜂鸣器提示音1秒一声,一分钟后转至每间隔10秒蜂鸣器“嘀”一声提示音,表示工作进程结束。
2.2 豆浆机硬件电路设计
全自动豆浆机硬件电路包括温度传感器电路、单片机最小系统以及输出控制电路。
由于单片机内部有上拉电阻,所以按钮电路没有连接上拉电阻;用单片机引脚直接控制继电器的方式驱动电加热器与电机;温度传感器采用热敏电阻KTY81-110,采用电阻串联分压法直接将热敏电阻两端的电压输入到单片机LM3S811的ADC中;采用变压器降压、整流、滤波后,经过3.3V稳压器1117(3.3V)输出,为豆浆机提供电源。通过这些电路设计,能够实现全自动豆浆机系统。
3 基于LM3S811单片机的豆浆控制电路机程序框架
本设计为全自动豆浆机,采用状态机描述进行编程。按照状态机描述豆浆机不同得工作状态,程序由C语言写出,主程序由单片机初始化、温度传感器初始化、键盘初始化等等,程序框架如下:
include " LM3S811.h"
定义数码管译码数组;
定义数码管位选数组;
定义LED灯数组;
定义保存在FLASH中数据的数组;
定义定时标记变量;
定义其他全局数组与变量; //例如定时变量dsbl等
函数原型声明;
void main(void)
{
定时器0初始化; //实现时间标记
定时器1初始化; //对定时变量定时
引脚初始化; //按钮、水位电极、ADC、继电器等引脚初始化
ADC初始化;
其他初始化语句;
while(1)
{
//按键处理语句;
{
功能选择等按钮语句; //按钮变量anbl随按下按钮不同而不同
豆浆按钮按下时,anbl=1; //对应指示灯亮,表示工作状态
烧水按钮按下时,anbl=2;
搅拌按钮按下时,anbl=3;
若没有按钮按下,anbl=4;
需要按钮抬起判断语句;
}
//低水位电极、防溢出电极、温度检测
if(sample_time= =1)
{
检测水位电极; //设置低水位标志,若是低水位,低水位标志为1
检测防溢出电极; //设置防溢出标志,若是溢出,防溢出标志为1
ADC转换温度值、数字滤波语句,转换成温度值。
sample_time= =0;
}
//状态机
if (state_time= =1)
{
状态机语句;
state_time=0;
按钮变量=0
}
//输出语句:
4 结论
TI公司的Stellaris系列的单片机,LM3S811单片机与Stellaris系列的所有成员是代码兼容的,这为用户提供了灵活性,能够适应各种精确的需求,必将得到越来越广泛的应用。
参考文献
[1]都业弘.我国大豆磨{行业现状及发展[J].食品科学,1999(02):28-29.
[2]李延鹏.ARM嵌入式系统开发与应用完全手册[M].北京:中国铁道出版社,2013.
通讯作者简介
周立平(1979-),男,现为中国电子科技集团第二研究所工程师。研究方向为自动控制。
作者单位
中国电子科技集团第二研究所 山西省太原市 030024