基于单片机的酒精浓度测试仪的设计_第1页
基于单片机的酒精浓度测试仪的设计_第2页
基于单片机的酒精浓度测试仪的设计_第3页
基于单片机的酒精浓度测试仪的设计_第4页
基于单片机的酒精浓度测试仪的设计_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机的酒精浓度测试仪的设计摘 要 :随着经济的发展,越来越多的家庭拥有了自己的汽车,然而也带来了很多问题,比如“酒驾”。酒后驾车造成的交通事故越来越多,给我们的生命财产造成了巨大的损失。现如今人们对酒后驾驶越来越重视了,酒精测试课题得到了社会普遍的关注。所以为了减少和预防因酒后驾驶的交通事故的发生,在此特别设计了一种以气敏传感器和单片机为主要元件的,能检测空气酒精浓度,而且还具有LCD显示功能的酒精浓度检测装置。此设计用气敏传感器收集气体相关数据,再经过酒精浓度传感器模块进行调制和数据转化处理,最后将收集的数据传送给单片机进行相关处理并执行相应的功能。LCD会显示气体中的酒精浓度,再通过

2、按键进行阀值的设定,如果超过设定的阀值系统就会有发光报警等功能。关键词:单片机; 酒精浓度检测系统; 气敏传感器 Design of Alcohol Concentration Detector Based on Single Chip Computer ABSTRACT:With the development of economy,more and more families have their own cars. But also brings many problems, such as “Drunken driving”.Nowadays people pay more and m

3、ore attention to drunk driving, alcohol test subjects received widespread attention. So, in order to reduce and prevent due to the number of alcohol-related traffic accidents, in this special designed a gas sensor and single chip microcomputer as the main components, can detect alcohol concentration

4、 in the air. But also has the LCD display function of the alcohol concentration detection device. The design of gas sensor, gas collecting relevant data, through the alcohol concentration sensor modulation and data conversion module, and finally will collect data transmit to SCM relevant processing

5、and perform the corresponding functions. LCD displays alcohol concentration in the gas, and then carried through the key threshold setting, if more than set threshold system there will be light alarm, and other functions.Keywords: gas sensor; alcohol concentration detection system; single chip micro

6、computer 目 录第一章 前言11.1 概述11.2 “酒驾”的相关背景11.3 酒精浓度检测装置的现状和未来发展趋势2第二章 装置的总体方案设计42.1 设计前的准备工作42.2 设计的相关构思42.3 总体方案设计42.4 系统单片机的总体设计52.5 系统各芯片介绍52.5.1 MQ-3酒精传感器52.5.2 EEPROM-AT24C02存储芯片的主要特性72.5.3 LCD1602显示模块112.5.4 STC12C5A16AD单片机14第三章 硬件电路设计173.1 酒精浓度检测装置设计框图173.2 主程序CPU模块183.3 MQ-3传感器调理电路183.4 按键模块的设计

7、193.5 LCD1602液晶显示模块193.6 AT24C02阀值存储模块20第四章 系统的软件设计214.1 主程序设计214.2 AT24C02阀值存储程序的设计214.3 LCD1602显示模块程序的设计224.4 系统的软硬件调试224.4.1 元器件的焊接及电路测试224.4.2 系统的软件调试224.4.3 系统的整体调试22总结23参考文献24附录1:实物图及硬件电路原理图25附录2:程序26第一章 前言1.1 概述我国家庭收入越来越多,家庭购买轿车的数量也越来越多,由此带来的交通事故也在不断攀升当中,然而喝酒开车造成的交通事故占据交通事故很大比重。我们大家都知道酒精会使神经麻

8、痹,迟缓大脑的反应时间,也能让我们的四肢不受大脑的控制。所以对于酒后驾驶机动车的人来说,发生交通事故的频率的高低是因为他们的身体血液中含有的酒精浓度的高低。为此我们必须研制出能便于携带,放置车内的酒精浓度检测装置,只要驾驶员一进入车内检测系统就能工作,检测出驾驶员体内的酒精含量。如果检测到了驾驶员体内含有酒精,系统将会发出告警,以提示驾驶员现在不能驾驶机动车上路。1.2 “酒驾”的相关背景在我国对“酒驾”的处理也是十分严厉的,轻则吊销驾照,重则要负相应的法律责任了。“酒驾”有分为饮酒驾驶和醉酒驾驶两种,关于这两种情况的界定,法律上给出了明确的界定。醉酒驾驶将被判刑。判断“酒驾”是有标准的,具体

9、判定标准我们可以从表1-1中直观的看出。表1-1 “酒驾”的判定标准表行为类别对 象临界值(毫克每百毫升)饮酒驾驶车辆驾驶人员20醉酒驾驶车辆驾驶人员80酒精浓度检测装置,本设计主要是装置对呼出气体的测量。我们怎样判定“酒驾”呢?得知道血液酒精浓度。那么酒精在气体和血液中的浓度之间的关系如表1-2所示:表1-2 呼气酒精含量与血液酒精含量换算一览表序 号呼出气体中酒精浓度mg/L呼出气体中酒精浓度106血液中酒精浓度mg/100mL10.022711.85520.045423.691030.068135.531540.090947.432050.113659.282560.136371.133

10、070.159183.023580.181894.864090.2045106.7145100.2272118.5650110.2500130.4555120.2727141.2660130.2954154.1565140.3181166.0070150.3409177.8975160.3636189.7280170.3863201.1585180.4091213.4390190.4318225.3395200.4515237.12100210.6618355.68150220.9091474.242001.3 酒精浓度检测装置的现状和未来发展趋势人们喝酒后,我们通过自己的鼻子就可以闻出酒后呼

11、出的气体中的酒味。最早我们就是通过鼻子做来传感器来进行酒精检测的。在第十九世纪末有化学试剂乙醇含量的定量分析。1927年,科学家通过重铬酸钾和硫酸的混合溶液来进行检测,该混合溶液能与酒精气体进行反映,溶液的颜色会随之发生由蓝到绿再到黄的变化过程,可以通过传统检测方法得到BAC。然后BAC极限值检测方法也不能有效的科学的检测出酒精含量,存在着很多弊端。所以我们必须研制出一种操作简单,携带方便,能科学准确的检测酒精的装置。这就是我们当下需要解决的问题。一个好的酒精浓度检测装置必须达到以下目的:(1)能提高人们法律意识,特别是道路交通安全法;(2)要有助于社会的公共交通安全;(3)要能便携、准确、安

12、全、高效,便于家庭的普及化。第二章 装置的总体方案设计2.1 设计前的准备工作本次毕业论文设的装置主要测试的是含有酒精的气体,基于本次论文所采用的单片机的处理部分是主要的控制对象,硬件系统是我们完成该系统之前首要研究的实质内容,通过查阅大量资料,最终确定了以MQ-3元件为气敏传感器,然后利用Proteus数字电路仿真软件进行硬件电路的设计。通过在图书馆查阅相关的资料,了解到了该气敏传感器的一些特性参数,为后续的设计打下了一定的基础。2.2 设计的相关构思本设计所采用的单片机在市场上是比较常见的,容易购买,有很多优点,最为重要的有8位高速A/D转换器集成在该单片机中,内存也要比51单片机大4倍。

13、程序结构也与其他的51单片机一样,但写程序却比较方便。在一个初步的设计思想是在传感器开始检测酒精气体,然后在通过单片机的转换,最终显示到LCD1602数码管上,本装置还得具有按钮复位,超限告警,故障显示等功能。2.3 总体方案设计此次酒精浓度检测装置的设计能够测量出空气环境中醇类气体浓度,再经过系统将浓度数值呈现到LCD1602上,可以及时准确的知道空气中醇类气体浓度的含量。该系统还可以根据不同的驾驶员不同的环境对阀值进行水平设置,如果超过阀值会有报警来提醒危害。如框图2-1所示。STC12C5A16AD单片机MQ-3气敏传感器信号调制按键控制LCD液晶显示器模块报警提示图2-1 系统结构方框

14、图2.4 系统单片机的总体设计当该系统开始工作时,在空气中检测到醇类气体后MQ-3气体传感器接收到信号,然后对传感器输出的信号调制,再经过ADC转换。在屏幕显示数据之前有关芯片会对转换后的信号处理,在系统中设定两种情况的界定值,这时系统会判断限度。整个装置进行模块化的设计,以单片机为基础进行整合,最终达到预期效果。2.5 系统各芯片介绍本装置设计采用了型号为MQ-3的酒精传感器、型号为AT24C02阀值存储芯片、型号为LCD1602显示装置、型号为STC12C5A16AD单片机等芯片。2.5.1 MQ-3酒精传感器该传感器为半导体醇类气体检测传感器,SiO2在空气中有着电导率低的特性所以是用于

15、该传感器的材料。当传感器满足乙醇气体传感器,导电率随乙醇浓度的增加而增加。再用转换电路将这一变化转换为与之相对应的输出信号。MQ-3气体传感器对醇类气体的感知度很高,水蒸气、烟雾、烃类物质等一些其他化学气体对它毫无影响。该传感器成本低,能够检测出多种浓度的酒精气体。应用也非常广泛。该传感器模块具有的特性:1. 具有信号输出指示2. 模拟量输出0-5V电压,浓度越高电压越高3. 具有模拟量输出及TTL电平输出的双路信号输出4. 具备快速响应恢复特性5. 对乙醇气体具有很高的灵敏度和良好的选择性6. 简单的驱动回路该传感器的性能参数:1. MQ-3传感器的标准工作条件如下表所示:表2-1 MQ-3

16、气体传感器理论工作条件表符号参数名称技术条件备注 VC回路电压15V交流或直流 VH加热电压5.0V0.20V交流或直流 RL负载电阻可调 RH加热电阻2834室温 PH加热功耗900mW2. MQ-3灵敏度特性参数如下表所示:表2-2 MQ-3传感器各项灵敏数值参数表符号参数名称技术参数备注Rs敏感体电阻1.0M 8.0M(200ppm 醇类气体 )适用范围:10.01000.0ppm 醇类气体(200/100)醇类气体浓度斜率0.6理论工作条件温度: 20.02.0 Vc:5.00V0.10V相对湿度: 65%5% VH: 5.00V0.10V预热时间不少于24小时3. MQ-3工作环境条

17、件如下表所示:表2-3 MQ-3传感器工作环境条件表符号参数名称技术条件备注 Tao使用温度-10-50 Tas储存温度-20-70 RH相对湿度小于95%RH O2氧气浓度21.0%(理论条件)O2浓度会影响灵敏度相关参数不小于2.04. MQ-3传感器的组成材料如下表所示:表2-4 MQ-3传感器的组成材料表 部件材料1气体敏感层二氧化锡2电极金(Au)3测量电极引线铂(Pt)4加热器镍铬合金(Ni-Cr)5陶瓷管三氧化二铝6防爆网100目双层不锈钢(SUB316)7卡环镀镍铜材(Ni-Cu)8基座胶木9针状管脚镀镍铜材(Ni-Cu)此外MQ-3传感器在遇到的外部条件不同会有不同的电阻值。

18、在不同的温度湿度的情况下电阻值也不一样。因此,我们利用MQ-3时,调整灵敏度是非常重要的。2.5.2 EEPROM-AT24C02存储芯片的主要特性(1) 工作电压:1.8V5.5V;(2) 输入/输出引脚兼容5V;(3) 应用在内部结构:1288(1K),2568(2K),5128(4K),10248(8K),20488(16K);(4) 二线串行接口;(5) 由施密特输入引脚触发滤波抑制噪声;(6) 双向数据传输协议;(7) 兼容0.4MHz(1.80V,2.50V,2.70V,3.60V);(8) 支持硬件写保护;(9) 高可靠性;(10) 读写次数:1,000,000次;(11) 数据

19、保存:100年。AT24C02的功能结构如下图所示,是一个2K的CMOS阀值存储模块,这种技术本质能降低器件的功耗。有一个16字节页写缓冲器,这一功能可以专门的写保护。支持内部集成电路总线数据传输协议,还有些其他功能可以参见表2-5外部特性及引脚功能和表2-6AT24C02工作原理。 AT24C02功能结构图:图2-2 AT24C02阀值存储模块的功能结构图外部特性及引脚功能:表2-5 TLC1549引脚功能表引脚功能标号说明A0 器 件地 址输 入124C02地址输入引脚。24C02在同一总线上可寻址8个器件。这些引脚内部一定要连接起来。A1,A2是两个硬件地址输入脚。这样最多可以寻址4个器

20、件。如果仅需要寻址一个器件则这三个脚接地或者不接即可。A12A23Vss地4接地SDA串行数据输 出/输 入5SDA是集成电路总线(IIC)的串行数据传输线路。可直接与所采用的单片机IIC相连,且是一个开漏输出管脚,可与其他开漏输出或集电极开漏输出进行线或。SCL串 行时 钟输 入6输入时钟信号时,上升沿将数据将被送入相关器件,在下降沿时读出数据。WP写保护7这个管脚接电为只读;不接电正常读写Vcc电源8正电源电压 AT24C02的工作原理:表2-6 器件操作工作原理表器件操作操作说明时钟及数据传输如果当数据在SCL为高电平时变化,则可视为一个起始或停止信号。起始信号SCL脚为1,SDA脚由1

21、到0作为起始命令,所以读写操作必须以这个命令信号为起始信号。停止信号SCL脚为1,SDA脚由0到1作为停止命令,所以读写操作必须以这个命令信号为停止信号。应答信号地址和数据是串行输入和输出的。电可擦可编程只读存储器会在一组数据后的第九个时钟周期是给出一个应答信号。主MCU在收到同样的一组数据后的下一个周期给EEPROM一个应答信号。在其收到应答信号后会输出下一组数据,没有则不输出。等待模式通过上电和收到停止位并且结束所有内部造作后可以让系统处在一个低功耗的等待模式。器件复位器件有三种方法进行复位操作,连续输入九个时钟信号;SCL和SDA同时为高电平时;重新建立一个开始条件。AT24C02工作时

22、各个时序图:(1) 数据有效时序图图2-3 数据有效时序图(2) 到达起始与停止时序图图2-4 起始与停止时序图(3) 写周期时序图图2-5 写周期时序图2.5.3 LCD1602显示模块1602型LCD一般有14或16条引脚。额外的两个为背光电源线。主要功能:1)40通道点阵LCD驱动2)输出可以产生202液晶显示器的驱动波形输入接受串行数据和控制信号的控制器3)通过单片机控制将所测的频率信号读数显示出来4)可选择当作行驱动或列驱动LCD1602显示模块相关参数如表2-7所示:表2-7 液晶屏的技术指标显示容量:162个字符芯片工作电压:4.5-5.5V工作电流:2.0mA(5.0V)模块最

23、佳工作电压:5.0V字符尺寸:2.954.35(WXH)mm 16针接口1602液晶显示器的使用标准,其界面如表2-8所示:表2-8 LCD1602的各管脚功能各引脚号各引脚名电平值输入/输出各引脚说明1VSS电源地2VDD电源正极(+5V)3VL液晶显示偏压信号4RS0/1输入数据/命令选择端,0:输入指令,1:输入数据5R/W0/1输入读/写选择,0:写指令或数据,1:从LCD上读取显示的信息6E10输入在1时读取信息,当下降沿时执行指令7D00/1输入/输出数据总线(最低位)8D10/1输入/输出数据总线9D20/1输入/输出数据总线10D30/1输入/输出数据总线11D40/1输入/输

24、出数据总线12D50/1输入/输出数据总线13D60/1输入/输出数据总线14D70/1输入/输出数据总线(最高位)15BLA+VCCLCD背光电源正极16BLK接地LCD背光电源负极第1脚:VSS为电源地。第2脚:VDD接5V电源正极。第3脚:VL为偏压信号,此端口是用来调整对比度的。对屏幕的清晰度而言是一个首要参数。接线是会影响对比度的,当接地时是最高的,当接正电源时是最低的。然而过高的对比度也会影响清晰度,我们可以加一个电位器就可以改善这一情况。第4脚:RS为命令/数据选择端口,由表格可以看出高低电平是所对应的寄存器也是不一样的。第5脚:R/W为读写选择端口。具体操作如表格所示。第6脚:

25、E端为使能端。该端口由高到低电平跳变时才会使模块执行命令。第714脚:所对应的端口全部为双向数据线。第15脚:背光源正极。第16脚:背光源负极 LCD1602显示器工作原理如表2-9所示。LCD1602共有11个控制指令。其中,DDRAM:显示数据RAM,用来寄存待显示的字符代码;CGROM:字符发生存储器;CGRAM:该存储器是用户自定义的。表2-9 LCD1602控制指令表指令功能清屏清DDRAM和AC值归位AC=0时画面回到起始位置输入方式设置光标、画面移动方式显示开关控制显示、光标及闪烁开、关光标和画面位移DDRAM不受影响功能的设置初始化命令的设置字符发生存储器地址设置A5A0=03

26、FH显示存储器地址设置显示存储器地址设置读BF和AC值读出BF和AC值写数据数据写入DDRAM或CGRAM读数据DDRAM或CGRAM数据读出 1602内部寄存器的选择控制操作如表2-10所示:表2-10 LCD1602寄存器选择控制表RSR/W操作说明00写入指令寄存器01DB0DB6的值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据2.5.4 STC12C5A16AD单片机该单片机是宏晶科技生产的新一代51单片机,包含有各种存储器 、串口、CPU、数模转换、输入/输出接口、振荡器和晶振振荡模块,包含了系统所需要的所有模块。该单片机相比于传统单片机功能更强大。其引脚图和内部结构图

27、如2-5所示:图2-7 选型单片机的引脚排列图选型单片机的引脚说明:该单片机有40条引脚,双列直插方式,各引脚说明如图2-5所示:1)主电源引脚Vss和Vcc2)外接晶振引脚XTAL1和XTAL23)控制或与其它电源复用引脚RST,ALE和NA4)I/O引脚P0口,P1口,P2口,P3口。其中P0口是一个漏极开路双向输入/输出口,P1口、P2口、P3口都是一个含有内部上拉电阻的八位双向输入/输出口,P1口只能接收低八位地址,而P2口、P3口既能接收高八地址也能送出高八位地址。该单片机的具体功能特点如下:1、高速:比普通的单片机要快十倍左右2、宽电压:5.503.30V,2.203.60V3、增

28、加第二复位功能脚4、选型单片机在掉电时将数据保存进EEPROM,正常工作时无此需操作。5、低功耗设计:掉电和空闲模式可在任何时间被唤醒,也能远程唤醒。还支持上升和下降沿。6、工作频段:035.0MHz,相当于普通51单片机:0420.0MHz7、时钟:振荡器可以选择8、862K片内闪存程序存储器,能重复使用十万次以上9、1280 字节片内RAM 数据存储器10、芯片内EEPROM 功能,擦写次数10 万次以上11、ISP和IAP,在系统和应用中可编程12、八通道,十位高速数模转换器,速度可达25 万次/ 秒,两路PWM 还可当两路数模转换使用13、PWM、PCA、CCP可实现定时器或外部中断1

29、4、四个十六位定时器,兼容普通51单片机的定时器15、该时钟输出可编程。时钟在T0和T1分别在P3.4和P3.5输出16、硬件看门狗(W D T )17、高速SPI 串行通信端口18、UART串口兼容普通51单片机的串口19、有非常完善的指令集结构,兼容普通51单片机指令集20、通用的输入/输出口,能设置成四种模式21、20mA是每个I/O驱动能力能达到的上限。该单片机最多只承受100mA。第三章 硬件电路设计3.1 酒精浓度检测装置设计框图如图3-1所示。从图中我们可以知道输出信号经过调理电路的处理后产生模拟电压信号,传送给单片机,然后经过数模转换成数字信号显示在液晶显示屏上,这其中电路会进

30、行阀值比较,并对结果做出判断。图3-1 酒精浓度检测装置设计方框图3.2 主程序CPU模块图3-2 单片机最小系统电路该电路主控模块主要是由12C5A16AD单片机组成的,本模块主要包括系统初始化,数据处理和组织管理等功能模块。 3.3 MQ-3传感器调理电路MQ-3醇类气体传感器及其调理电路原理图,如图3-3所示。经过调理,检测信号由电阻值转变成电压值,以便于后续电路进行A/D转换和处理。图3-3 传感器模块原理图3.4 按键模块的设计电路一共采用了两个按键如图3-4,其功能分别是:K1为加大阀值键,K2为减小阀值键。图3-4 系统按键模块的电路设计3.5 LCD1602液晶显示模块如图3-

31、5显示模块与选型单片机之间的电路图。背光引脚是3号引脚。R7和R8用于调节背光亮度。LCD1602的4、5、6引脚分别接液晶的RS、E/W和E控制引脚,LCD1602的714引脚为数据引脚。图3-5 LCD液晶显示模块与选型单片机接口电路图3.6 AT24C02阀值存储模块驾驶员是否醉酒的判定值存在存储器芯片AT24C04中,这个值能通过按键来调节和保存。24C02的存储芯片最大特点是在掉电时不易丢失数据。图3-6为其电路图。在芯片地址引脚A0,A1和A2,一般接地。2042_SCL和2042_SDA为AT24C02和单片机集成电路总线通信的时钟线和数据线。图3-6 EEPROM存储电路第四章

32、 系统的软件设计4.1 主程序设计主程序的设计主要得考虑设计要达到的功能要求,要进行数据、A/D转换、定时器等的初始化,实时采集MQ-3传感器模块输出的数据信息,采集驾驶员的醉酒程度值,系统进行判断处理,通过LCD1602显示醉酒程度以及是否属于酒驾等其他信号。具体的主程序见附录。图4-1 主程序流程图4.2 AT24C02阀值存储程序的设计驾驶员是否醉酒驾驶的判断值存储在电可擦可编程只读存储器芯片AT24C02中,这个值的大小可以通过按键调节然后进行保存。AT24C02是集成电路总线接口的电可擦可编程只读存储器芯片。最大特点是在掉电的情况下,数据不会丢失。首先要对其各个引脚进行定义,及时的发

33、送读取的字节函数。具体的程序见附录4.3 LCD1602显示模块程序的设计先对LCD1602进行引脚定义,然后进行系统初始化设置,最后进行数据控制。具体程序见附录。4.4 系统的软硬件调试4.4.1 元器件的焊接及电路测试焊接前应对整个电路板进行检查,得用万用表对印制电路板线路进行检查,如果没有问题,就可以焊接了。在焊接时候,对照丝印图查看印制电路板上的元器件封装和大小是否正确,焊接完成后对仔细检查电路板上元件是否存在漏焊、虚焊、连锡等各种情况。检查无误后可以进行上电测试了。4.4.2 系统的软件调试硬件调试完成后,软件调试就非常重要了。软调时为了避免出现错误应该按照各个模块来分别进行检查。首

34、先,检查1602液晶显示屏。其次,检查存储单元。最后,调试该单片机与ADC模块。在最后调试传感器模块。这样分开进行调试可以准确无误的发现问题解决问题。4.4.3 系统的整体调试在软硬件分别调试成功后,编写单片机程序,整个系统调试。将M传感器完全预热后,然后可以喝一口酒,对准传感器探头进行吹气。如果酒精浓度数值迅速在屏幕上显示出来,而且还超过了程序设定的80mg/100mL的报警阀值,出现发光警告的话,说明整个系统正常。此次设计的酒精浓度检测装置就基本达到了预期的效果,也就取得了成功。总结本论文在硬件设计方面花了很多时间,在对EEPROM的操作上,自从上了李老师的单片机课以来对外部访问,尤其是地

35、址操作很不习惯也很不熟悉。自然在操作上就存在一定的困难,但最终通过这段时间的努力还是克服了。此次在设计中为了降低硬件设计上的难度,也便于能够简化电路,提高成功率和节约时间我选择了型号为STC12C5A16AD的单片机,此型号的单片机自带八位高速数模转换器,这样可以大大减轻了设计的压力。参考文献1 薛峰,朱晓骏.单片机原理及应用M.北京理工大学出版社,2011.2 谭浩强. 新世纪计算机基础教育丛书.C程序设计M.清华大学出版3 万福君, 潘松峰单片微机原理系统设计及应用M.合肥:中国科学技术大学出版社,20014 蓝和慧,宁武,闫晓金.全国大学生电子设计竞赛指导系列. 全国大学生电子设计竞赛单

36、片机应用技能精解M.电子工业出版社,20095 何立民.单片机应用技术选编M.北京:北京航空航天大学出版社,20006 求实科技.单片机典型模块设计实例导航J.北京:人民邮电出版社,20047 陈小忠.单片机接口技术实用子程序M.北京:人民邮电出版社,20058 赵晶主.电路设计与制版 Protel99 高级应用J.北京:人民邮电出版社,20009 沙占友. 集成温度传感器原理与应用. M 北京:机械工业出版社,200210 刘君华. 智能传感器系统. M 西安:西安电子科技大学出版社,200311 梁森等.自动检测与转换技术M.北京:机械工业出版社,200612 赵负图. 传感器集成电路手册

37、M. 北京:化学工业出版社,200213 张毅刚. MCS-51单片机原理及应用. M 哈尔滨:哈尔滨工业大学出版社,200414 Vizimuller, P: RF design guide-systems, circuits, and equations (ArtechHouse, Boston, MA, 1995)6R. Dye, “Visual Object-Orientated Programming,” Dr. Dobbs MacintoshJournal, Sept. 1st (1991). Vizimuller, P: RF design guide-systems, circ

38、uits, and equations (ArtechHouse, Boston, MA, 2001)15 R. Dye, “Visual Object-Orientated Programming,” Dr. Dobbs MacintoshJournal, Sept. 1st (2003). .附录1:实物图及硬件电路原理图实物图:硬件电路原理图:附录2:程序程序清单:AT24C02初始化程序:#include 2402.hvoid DELAY(unsigned int t)while(t!=0)t-;void IICStart(void) SCL=0; DELAY(1); SDA=1; S

39、CL=1; DELAY(1); SDA=0; DELAY(1); SCL=0; void IICStop(void) SDA=0;SCL=1; DELAY(1); SDA=1; DELAY(1); SCL=0; void SEND0(void)SDA=0;SCL=1;DELAY(1);SCL=0;void SEND1(void)SDA=1;DELAY(1);SCL=1;DELAY(1);SCL=0;bit Check_Ack(void) unsigned char errtime=250; DELAY(1); SCL=1; DELAY(1); CY=SDA; while(CY) errtime

40、-; CY=SDA; if (!errtime) IICStop(); return 1; DELAY(1); SCL=0; return 0;void Write_byte(unsigned char dat) unsigned char i;for(i=0;i8;i+)if(dati)&0x80)SEND1();elseSEND0();unsigned char Read_byte(void)unsigned char i,temp=0; for(i=0;i8;i+) SDA=1; SCL=1; DELAY(1); if(SDA=1)temp=temp1;temp=temp|0x01;el

41、setemp=temp1; SCL=0; return temp;unsigned char rdeeprom(unsigned char addr) unsigned char temp=0;bit flag=0;IICStart();Write_byte(0xa0); Check_Ack();Write_byte(addr);Check_Ack();IICStart();Write_byte(0xa1);Check_Ack();temp=Read_byte();SEND1();IICStop(); return temp; void wrteeprom(unsigned char addr

42、,unsigned char dat) IICStart();Write_byte(0xa0);Check_Ack();Write_byte(addr);Check_Ack();Write_byte(dat);Check_Ack();IICStop(); 1602.H#include STC12c5A.h#define uchar unsigned char#define uint unsigned int/这三个引脚参考资料sbit E=P25; /1602使能引脚sbit RW=P26; /1602读写引脚sbit RS=P27; /1602数据/命令选择引脚void delay();uc

43、har Convert(uchar );void enable(uchar );void write(uchar );void L1602_init(void);void L1602_char(uchar ,uchar ,char );void L1602_string(uchar ,uchar ,uchar *);void L1602_int(uchar, uchar, int);LCD1602液晶显示模块程序:#include 1602.h#include math.hvoid delay()int i,j;for(i=0; i=10; i+)for(j=0; j= 0) sign = 0

44、; else sign = 1; temp = abs(num); baiwei = temp / 100; temp = temp - baiwei*100; shiwei = temp / 10; gewei = temp - shiwei*10; num = abs(num); if (num=100) if (sign = 1) /负数 L1602_char(hang, lie, -); L1602_char(hang, lie+1, baiwei+48); L1602_char(hang, lie+2, shiwei+48); L1602_char(hang, lie+3, gewe

45、i+48); else if (num=10) if (sign = 1) L1602_char(hang, lie+1, -); L1602_char(hang, lie+2, shiwei+48); L1602_char(hang, lie+3, gewei+48); else if (sign = 1) L1602_char(hang, lie+2, -); L1602_char(hang, lie+3, gewei+48); 2402.H#ifndef _2402_H_#define _2402_H_#include STC12c5A.hsbit SCL = P10; /模拟I2C 总

46、线的引脚定义sbit SDA = P11;/定义2402 在I2C 总线协议中的从机地址/#define EEPROM_I2C_ADDR 0x00void DELAY(unsigned int t); /延时函数void IICStart(void); /I2C开始函数void IICStop(void); /I2C结束函数void Ack(void); /I2C应答函数void NOAck(void); /I2C应答非函数bit Check_Ack(void); /I2C应答检测函数void SEND0(void); /I2C发送0函数void SEND1(void); /I2C发送1函数 void Write_byte(unsigned char dat); /I2C发送字节函数unsigned char Read_byte(void); /I2C读取字节函数unsigned char rdeeprom(unsigned char addr); /读AT2402函数void wrteeprom(unsigned char addr,unsigned char dat); /写AT2402函数主程序:#include STC12c5A.h#include 1602

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论