基于单片机的酒精浓度测试仪
L1602_string(2,1,\ mg/L\ //载入设定值 Load_Setting();
L1602_int(2,9,Threshold); while(1) {
//如果FlagStartAL标志置位,则进行AD转换 if (FlagStartAL == 1) {
//酒精浓度换算,50mg/L=62.5ppm,传感器灵敏度应事先校准
ALValue = 500 * GetADVal() / 256; //8位ADC,首先得到电压值,单位10毫伏 ALValue = ALValue - K_ZERO; //首先减去零点漂移,一般是130mV if (ALValue < 0) ALValue = 0; ALValue = ALValue * K_MG_MV; //将mV转变成mg/L,K_MG_MV系数需要校准
L1602_int(1,9,ALValue); if (ALValue > Threshold) Led_Warn1 = 0; //超过阈值,则 Led_Warn1灯报警,否则报警灯灭。 else Led_Warn1 = 1; FlagStartAL = 0; }
//查询乙醇传感器TTL电平,该指示灯为传感器模块报警 if (DOUT == 0) Led_Warn2 = 0; else Led_Warn2 = 1; //键盘查询,在弹起时响应
if ((Key_Up)&&(keyUp==0)) {FlagKeyPress = 1; keyvalue = 1;}
else if ((Key_Down)&&(keyDown==0)) {FlagKeyPress = 1; keyvalue = 2;} if (FlagKeyPress == 1) {
KeyProcess(keyvalue);
FlagKeyPress = 0; }
if (!Key_Up) keyUp = 0; else keyUp = 1;
if (!Key_Down) keyDown = 0; else keyDown = 1; DELAY(100); } }
- 36 -
基于单片机的酒精浓度测试仪
致谢
非常感谢陈杰老师能在百忙之中抽空给予我本次论文的悉心指导,从定题到解决论文之中的难题到最后的论文完成,陈杰老师总是不厌其烦的给我讲解不懂之处以及提出论文之中的不足。这次论文从定题到定稿其中有不少曲折,我真心感谢陈杰老师的耐心和支持,不断的给我鼓励,并提出板子的不足,使我能有进一步改进设计的正确方向。
这次论文完全是在陈老师的指导下完成的。所以我要借助这次机会衷心祝愿陈老师的事业能蒸蒸日上!
- 37 -
基于单片机的酒精浓度测试仪
- 38 -