参考文献
[1] 李建荣,薛亚平,钱松. 基于单片机的酒精浓度检测仪的设计[A]. 南通纺织职业技术学院学报, 2013,13(4):1-4
[2] 王彩红,王学梅. 酒精检测仪的研制[J]. 科技信息, 2008,29:1-3 [3] 田哥. 国外酒后驾车检测仪科技新动向[J]. 道路交通与安全,2009,5 [4]潘祖军,朱文胜,岳睿. 汽车用酒精传感器的分析[A]. 学术论坛, 2007:39-40
[5] 杨金瑞. 基于法布里—珀罗干涉效应的多孔硅乙醇传感器[J]. 重庆大学出版,2009:19-20 [6] 韩瑞芳. 酒后驾车涉及问题的综合探讨[M]. 西安文理学院学报(自然科学报), 2007,4(10):126-130
[7] 龙光利. 一种驾驶员酒精超标测控电路的设计[J]. 陕西理工学院报(自然科学报), 2012,6 [8] 陈海生. 基于STM32的TransFlash卡读写技术研究[J].哈尔滨工业大学,2009:18-19 [9] 刘婧. 电梯及扶梯GSM无线远程报警系统设计与应用[M].上海交通大学出版, 2011:21-28
第 26 页 共 31页
致 谢
本文是在赵丽娜老师的指导下,以及实验室同学的帮助下完成的,在这里向指导和帮助我的老师和同学表示衷心的感谢并致以崇高的敬意!在硬件设计及调试过程中遇到了许多问题,在导师和同学的帮助下都迎刃而解了,在撰写论文的过程中也遇到了许多这样那样的问题,有的是专业上的问题,有的是论文格式上的问题,在赵丽娜老师的细心、耐心指导下,最终又快又好的完成了我的论文。在此,再一次向他们表示衷心的感谢。 作者简介 姓名:性别:男 出生年月:民族:汉 E-mail:328390202@qq.com
第 27 页 共 31页
声 明
本论文的工作是2014年12月至2015年6月在成都信息工程大学控制工程学院完成的。文中除了特别加以标注地方外,不包含他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程大学或其他教学机构的学位或证书而使用过的材料。
关于学位论文使用权和研究成果知识产权的说明:
本人完全了解成都信息工程大学有关保管使用学位论文的规定,其中包括: (1)学校有权保管并向有关部门递交学位论文的原件与复印件。 (2)学校可以采用影印、缩印或其他复制方式保存学位论文。 (3)学校可以学术交流为目的复制、赠送和交换学位论文。 (4)学校可允许学位论文被查阅或借阅。
(5)学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。
除非另有科研合同和其他法律文书的制约,本论文的科研成果属于成都信息工程大学。
特此声明!
作者签名:
年 月 日
第 28 页 共 31页
附 件
AD转换主要程序 void Adc_Init(void) { }
void Get_Adc_Average(void) {
RCC_Configuration_ADC(); GPIO_Configuration_ADC(); DMA_Configuration_ADC(); ADC1_Configuration_DMA();
static u8 t = 0; static u32 adc_cnt;
static u16 adc_max = 0, adc_min = 0; if (t < 12 && Adc_avg_flag == 0) {
adc_cnt += ADC_ConvertedValue[0]; // 求和 } if (t == 12) {
Adc_avg_flag = 1; t = 0;
Adc_avg = (adc_cnt - adc_max - adc_min) / 10; adc_cnt = 0;
第 29 页 共 31页
delay_ms(100);
if(ADC_ConvertedValue[0] > adc_max) //求最大和最小
adc_max = ADC_ConvertedValue[0]; adc_min = ADC_ConvertedValue[0]; if(ADC_ConvertedValue[0] < adc_min)
t++;
}
}
adc_max = 0;
adc_min = 0xffff;
#define Air_cv 1.394
void Voltage_Deal(void) { }
报警主要程序 void Warning_init(void) {
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD |
RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef GPIO_InitStructure; Get_Adc_Average(); if(Adc_avg_flag == 1) { }
Adc_avg_flag = 0;
voltage_cv = Adc_avg * 3.34 / 4096;
alcometer = (Air_cv/voltage_cv-1.12)/(-0.101)-1.1; if(alcometer<0.1) alcometer = 0; sprintf(str,\OLED_P8x16Str(10, 4,str); Warning(alcometer); float voltage_cv; float alcometer = 0; u8 str[11] = \
第 30 页 共 31页
}
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; GPIO_Init(GPIOA, &GPIO_InitStructure);
Warning_BEEP = 0; Warning_LED0 = 1; Warning_LED1 = 1;
#define Warning_voltage_red 0.24
void Warning(float alcometer) { }
if(alcometer > Warning_alcometer_red){ } else{ }
Warning_LED0 = 0; Warning_LED1 = 1;
Warning_LED1 = 0; Warning_LED0 = 1; Warning_BEEP = 1; delay_ms(300); Warning_BEEP = 0;
第 31 页 共 31页