资源描述
机电综合应用题 目: 多传感器仪器设计 系部名称: 信息工程系 专业班级: 自动081班 学生姓名: 学 号: 指导教师: 教师职称: 讲师 2011 年 12 月 25 日- 67 - 中原工学院信息商务学院课程设计(论文) 摘要 本设计主要运用单片机和传感器,实现了温湿度和酒精的显示。传感器是一种物理装置或生物器官,能够探测、感受外界的信号、物理条件(如光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其他装置或器官。 本设计通过单片机和传感器的应用实现了对环境温湿度,酒精浓度,烟雾浓度的实时数据进行采集和显示,存储并记录,键盘输入温湿度的上下限值和预置值,环境温湿度,酒精浓度,烟雾浓度超过上下限值蜂鸣器报警,指示灯提示,并且可以通过上位机远程设置上下限值,查询各时间段的温湿度,酒精浓度,烟雾浓度情况等功能。通过软件仿真可以实现对温度,湿度,酒精浓度的测量,显示环境的各个参数值,并在各个数值达到设计上线时发生报警它结构紧密、调试安装方便、可塑性强,经长期使用性能稳定可靠。关键字:单片机, 传感器 , 参数值 Multi-sensor instrument designAbstract The main use of the microcontroller and sensor design, and alcohol to achieve the temperature and humidity display.Sensor is a physical device or biological organ that can detect, feel the outside of the signal, the physical conditions (such as light, heat, humidity) or chemical composition (such as smoke), and the Discovery of the information to other devices or organs. This design microcontroller and sensor applications to achieve the environmental temperature and humidity, alcohol, smoke density, real-time data acquisition and display, store and record temperature and humidity up and down the keyboard input and preset limit value, temperature and humidity, alcohol concentration, the concentration of smoke over the upper and lower limit alarm buzzer, LED tips, and can be remotely set by the upper and lower limits of the host computer, check the time of the temperature and humidity, alcohol, smoke concentrations and other functions. Can be achieved through software emulation of temperature, humidity, measurement of alcohol concentration, showing various environmental parameters, and each value in the design of on-line to the alarm when it is compact, easy installation, commissioning, plasticity, the long-term stable and reliable performance .Keywords: microcontroller sensors parameter values目录第一章 引言61.1 系统研究的背景及意义61.2 国内外研究现状61.2.1 国内研究现状61.2.2 国外研究现状7第二章 系统总体方案设计82.1 总体设计思路82.2 STC89C52单片机概述10第3章 系统硬件介绍及设计原理113.1单片机与温湿度传感器之间的通信83.2 酒精浓度采集电路93.3 烟雾传感器的选择123.4显示元件的选择方案123.5时钟芯片DS1302133.6 传感器性能说明153.7电源引脚163.8. 串行接口(单线双向)163.9 MAX232介绍193.9.1 引脚介绍193.9.2 MAX232主要特点193.10 串行AD转换器TLC2543213.10.1 TLC2543的特点213.10.2 TLC2543的引脚排列及说明21第四章 系统软件设计234.1 系统软件设计的简介234.2 系统各部分的时序及流程图234.2.1 时钟传送时序图234.2.2 液晶显示屏LCD1602及显示电路244.2.3 处理器ATC89C52单片机254.2.4 时钟电路264.2.4 复位及复位电路264.2.5. 按键设置模块:294.3主程序工作流程图294.3.1 串口中断服务程序流程图:30结 论32致 谢33参考文献著录34附录一 编程程序35附录二 PCB图73附录三 原理图74 74第一章 引言 1.1 系统研究的背景及意义 本课程通过对单片机的运用实现对环境中温度,湿度及酒精浓度的测量,通过仿真能够显示各个数值,并能够设定各个数值的上限,达到上线时实现报警功能。1.2 国内外研究现状1.2.1 国内研究现状进入21世纪后,特别在我国加入WTO后,国内产品面临巨大挑战。各行业特别是传统产业都急切需要应用电子技术、自动控制技术进行改造和提升。例如纺织行业,温湿度是影响纺织品质量的重要因素,但纺织企业对温湿度的测控手段仍很粗糙,十分落后,绝大多数仍在使用干湿球湿度计,采用人工观测,人工调节阀门、风机的方法,其控制效果可想而知。制药行业里也基本如此。而在食品行业里,则基本上凭经验,很少有人使用湿度传感器。值得一提的是,随着农业向产业化发展,许多农民意识到必需摆脱落后的传统耕作、养殖方式,采用现代科学技术来应付进口农产品的挑战,并打进国外市场。各地建立了越来越多的新型温室大棚,种植反季节蔬菜,花卉;养殖业对环境的测控也日感迫切;调温冷库的大量兴建都给温湿度测控技术提供了广阔的市场。我国已引进荷兰、以色列等国家较先进的大型温室四十多座,自动化程度较高,成本也高。国内正在逐步消化吸收有关技术,一般先搞调温、调光照,控通风;第二步搞温湿度自动控制及CO2测控。此外,国家粮食储备工程的大量兴建,对温湿度测控技术提也提出了要求。 但目前,在湿度测试领域大部分湿敏元件性能还只能使用在通常温度环境下。在需要特殊环境下测湿的应用场合大部分国内包括许多国外湿度传感器都会“皱起眉头”!例如在上面提到纺织印染行业,食品行业,耐高温材料行业等,都需要在高温情况下测量湿度。一般情况下,印染行业在纱锭烘干中,温度能达到120摄氏度或更高温度;在食品行业中,食物的烘烤温度能达到80-200摄氏度左右;耐高温材料,如陶瓷过滤器的烘干等能达到200摄氏度以上。在这些情况下,普通的湿度传感器是很难测量的。 1.2.2 国外研究现状国外厂家比较优质的产品主要使用聚酰胺树脂,产品结构概要为在硼硅玻璃或蓝宝石衬底上真空蒸发制作金电极,再喷镀感湿介质材料(如前所述)形式平整的感湿膜,再在薄膜上蒸发上金电极.湿敏元件的电容值与相对湿度成正比关系,线性度约2%。虽然,测湿性能还算可以但其耐温性、耐腐蚀性都不太理想,在工业领域使用,寿命、耐温性和稳定性、抗腐蚀能力都有待于进一步提高。 1.3 设计内容要求采用单片机作为主控制器,采集温度、湿度、酒精浓度和烟雾浓度值并实时显示。按键可以调节报警参数值,采集值超出设定报警值时实现声光报警。具体要求如下:可使用全数字的温湿度传感器,也可分别使用温度传感器和湿度传感器,温度显示范围-1050C,温度测量精度为0.5C,湿度测量精度为2%RH;烟雾的测量范围50-10000ppm,测量精度1ppm;酒精浓度的测量范围: 0-1.00mg/L,测量精度:5%FS;要求画出原理图,PROTUES仿真出结果,并画出PCB板图,最后做出产品实物。第二章 系统总体方案设计2.1 总体设计思路 运用单片机实现环境中温度湿度和酒精浓度的测量。主要有晶振电路,复位电路,MQ-2传感器,MQ-3传感器,LCD1602显示,温湿度DHT11,串口通讯MAX232,LED报警几个部分构成。通过该设计能够实现对环境中温度,湿度及酒精的检测,并能够在显示屏上显示环境中各个参数的数值,能够显示时间和日期,并能够手动调节时间和日期的数值。根据设计内容的要求,我们可以大致的画出其模块流程图。如下图所示: STC89C52LCD1602显示温湿度DHT11串口通MAX232LED报警晶振电路复位电路按键检测蜂鸣器报警MQ-3传感器MQ-2传感器ADAD 图2-1 模块流程图 2.2 STC89C52单片机概述2.2.1 STC8952单片机的结构 STC89C52是51系列的单片机,内部有烧录的程序,单片机是一种集成在电路芯片,是采用超大规模集成技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调控电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 2.2.2 STC8952单片机 的管脚说明VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),在对Flash ROM编程和程序校验时,P1接收低8位地址。P2端口(P2.0P2.7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX DPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVX R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。P3端口(P3.0P3.7,1017引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。在对Flash ROM编程或程序校验时,P3还接收一些控制信号。第三章 系统硬件介绍及设计原理3.1酒精传感器的选择酒精检测传感器属于气敏传感器,是气-电变换器,它将酒精在空气中的含量(即浓度)转化成电压或电流信号,通过A/D转换电路将模拟量转换成数字量后传给单片机,进而由单片机完成数据处理、浓度处理及报警控制等工作。酒精检测传感器也属于气体检测传感器,所以我们可以选用MQ系列的MQ-3来采集空气中的酒精含量。3.2 温湿度传感器的选择方案一:温湿度检测采用集成模拟传感器,其灵敏度高、线性度好、响应速度快,且可以和信号处理电路及逻辑电路集成在一起,使用方便。湿度传感器选用HS1101,温度传感器选择DS18B20。但是在接入电路中时,HS1101需要A/D转换器,把模拟信号转换成数字信号,从而使单片机采集储存到数据。方案二:采用数字传感器,DHT11作为温湿度检测的一个整体,在测量过程中可对相对温湿度进行自动校正,准确的测量温湿度。且其互换性好,速度快,内部集成虽复杂但测量准确,能够提供数字输出,简化外部测量电路,适用测量范围广。 比较上面二种方案,第三种和本设计的温湿度检测相适合,因此选择DHT11作为温湿度测量元件。3.3 烟雾传感器的选择烟雾传感器属于气敏传感器,是气-电变换器,它将可燃气体在空气中的含量(即浓度)转化成电压或电流信号,通过A/D转换电路将模拟量转换成数字量后传给单片机,进而由单片机完成数据处理、浓度处理及报警控制等工作。烟雾传感器种类繁多,从检测原理上可分为三大类:a.利用物理-化学性质的烟雾传感器:如半导体、接触式烟雾传感器等。b.利用物理性质的传感器:如热导、光干涉、红外烟雾传感器等。c.利用电化学性质的传感器:如电流型、电势性烟雾传感器等。由于所处的环境会影响烟雾传感器的测量精度等,我们采用利用物理-化学性质的半导体烟雾传感器,其优点有灵敏度高、响应快、抗干扰性好、使用方便、价格便宜且发生探头阻缓及中毒现象的情况少等。而在众多半导体气体传感器中,本设计选用MQ-2比较适合。3.4显示元件的选择方案方案一:LCD1602液晶显示,具有字符发生器ROM可显示192种字符,具有64个字节的自定义字符RAM,但是不能显示汉字,只能显示ASCII码且只能显示显示两行。方案二:12864是128*64点阵液晶模块的点阵数简称,其是一种具有内部含国际一级、二级简体中文字库的显示模块,分辨率为128*64,内置8192个16*16点汉字和128个16*8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可显示8*4行16*16点阵的汉字,也可显示图形。低电压低功耗是其又一显著特点。方案三:数码管显示,数码管按段数分为七段数码管和八段数码管,其驱动方式分别为静态驱动和动态驱动。静态驱动编程简单,显示亮度高,但占用的I/O端口多,在实际应用时必须增加译码器,是硬件电路更复杂。动态显示是最广泛的显示方式之一,其能够节省大量的I/O端口,而且功耗低。针对数码管,其显示单调且不具备数据的直观性。比较上面三种方案,我们选用方案一。 3.5时钟芯片DS1302DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM,通过简单的串行接口与单片机进行通信.实时时钟/日历电路提供秒/分/时/日/日期/月/年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM 指示决定采用24 或12 小时格式.DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:1 RES ,复位2 I/O 数据线,3 SCLK串行时钟.时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信.DS1302 工作时功耗很低,保持数据和时钟信息时功率小于1mW.DS1302 是由DS1202 改进而来,增加了以下的特性;双电源管脚用于主电源和备份电源供应,Vcc1 为可编程涓流充电电源,附加七个字节存储器.它广泛应用于电话/传真/便携式仪器以及电池供电的仪器仪表等产品领域。3.5.1 DS1302 的基本组成和工作原理 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。3.5.2 DS1302的内部寄存器介绍DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。CH: 时钟停止位寄存器2的第7位12/24小时标志CH=0 振荡器工作允许bit7=1,12 小时模式CH=1 振荡器停止bit7=0,24 小时模式WP: 写保护位寄存器2的第5位:AM/PM 定义WP=0寄存器数据能够写入AP=1 下午模式WP=1 寄存器数据不能写入AP=0 上午模式3.6 传感器性能说明表3-1传感器性能说明参数条件MinTypMax单位湿度分辨率111%RH8Bit重复性1%RH精度254%RH0505%RH互换性可完全互换量程范围03090%RH252090%RH502080%RH响应时间1/e(63%)25,1m/s 空气61015S迟滞1%RH长期稳定性典型值1%RH/yr温度分辨率111888Bit重复性1精度12量程范围050响应时间1/e(63%)630S3.7电源引脚DHT11的供电电压为35.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。3.8. 串行接口(单线双向)DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。通讯过程如图1所示图3-1通讯过程图总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。图3-2通讯过程图总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示方法如图3所示图3-3通讯过程图数字1信号表示方法.如图所示图3-4信号表示方法 DHT11引脚说明表3-2DHT11引脚说明Pin名称注释1VDD供电 35.5VDC2DATA串行数据,单总线3NC空脚,请悬空4GND接地,电源负极3.9 MAX232介绍MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。3.9.1 引脚介绍第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。 第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。 其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。 8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。 TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。 第三部分是供电。15脚GND、16脚VCC(+5v)。 图3-5MAX232引脚图3.9.2 MAX232主要特点1、符合所有的RS-232C技术标准2、只需要单一 +5V电源供电3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V- 4、功耗低,典型供电电流5mA 5、内部集成2个RS-232C驱动器6、内部集成两个RS-232C接收器7、高集成度,片外最低只需4个电容即可工作。注意,由于RS232电平较高,在接通时产生的瞬时电涌非常高,很有可能击毁MAX232,所以在使用中应尽量避免热插拔。图3-6 MAX232与单片机连接图3.10 串行AD转换器TLC2543TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。3.10.1 TLC2543的特点12位分辩率A/D转换器;在工作温度范围内10s转换时间;11个模拟输入通道;3路内置自测试方式;采样率为66kbps;.线性误差1LSBmax;有转换结束输出EOC;具有单、双极性输出;可编程的MSB或LSB前导;可编程输出数据长度。3.10.2 TLC2543的引脚排列及说明TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图,引脚说明见表表3-3 TLC2543引脚说明引脚号名称I/O说明19,11,12AIN0AIN10I模拟量输入端。11路输入信号由内部多路器选通。对于4.1MHz的I/OCLOCK,驱动源阻抗必须小于或等于50,而且用60pF电容来限制模拟输入电压的斜率15I片选端。在端由高变低时,内部计数器复位。由低变高时,在设定时间内禁止DATAINPUT和I/O CLOCK17DATAINPUTI串行数据输入端。由4位的串行地址输入来选择模拟量输入通道16DATA OUTOA/D转换结果的三态串行输出端。为高时处于高阻抗状态,为低时处于激活状态19EOCO转换结束端。在最后的I/OCLOCK下降沿之后,EOC从高电平变为低电平并保持到转换完成和数据准备传输为止10GND地。GND是内部电路的地回路端。除另有说明外,所有电压测量都相对GND而言18I/O CLOCKI输入/输出时钟端。I/OCLOCK接收串行输入信号并完成以下四个功能:(1)在I/O CLOCK的前8个上升沿,8位输入数据存入输入数据寄存器。(2)在I/OCLOCK的第4个下降沿,被选通的模拟输入电压开始向电容器充电,直到I/OCLOCK的最后一个下降沿为止。(3)将前一次转换数据的其余11位输出到DATA OUT端,在I/OCLOCK的下降沿时数据开始变化。(4)I/OCLOCK的最后一个下降沿,将转换的控制信号传送到内部状态控制位14REF+I正基准电压端。基准电压的正端(通常为Vcc)被加到REF+,最大的输入电压范围由加于本端与REF-端的电压差决定13REF-I负基准电压端。基准电压的低端(通常为地)被加到REF-20Vcc电源可以用四种传输方法使TLC2543得到全12位分辩率,每次转换和数据传递可以使用12或16个时钟周期。一个片选()脉冲要插到每次转换的开始处,或是在转换时序的开始处变化一次后保持为低,直到时序结束。图6显示每次转换和数据传递使用16个时钟周期和在每次传递周期之间插入的时序,图7显示每次转换和数据传递使用16个时钟周期,仅在每次转换序列开始处插入一次时序。第四章 系统软件设计4.1 系统软件设计的简介系统的软件设计为设计的核心部分,通过程序的编写使个部分实现相应功能4.2 系统各部分的时序及流程图4.2.1 时钟传送时序图图4-1时钟传送时序图(不使用,MSB在前)、4.2.2 液晶显示屏LCD1602及显示电路图4-2写操作时序 LCD1602的RAM地址映射及一般初始化(复位)过程液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图10-57是1602的内部显示地址。例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。LCD1602的一般初始化(复位)过程:写指令38H(不检测忙信号)写指令38H(不检测忙信号)写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置4.2.3 处理器ATC89C52单片机ATC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。4.2.4 时钟电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图10(a)所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.212MHz之间选择,电容值在530pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图10(b)所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。 图4-3(a)内部方式时钟电路 图4-3(b)外部方式时钟电路4.2.4 复位及复位电路(1)复位操作复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表一所示。表4-1一些寄存器的复位状态:寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H(2)复位信号及其产生RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。产生复位信号的电路逻辑如图11所示:图4-4 复位信号的电路逻辑图整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。本系统的复位电路采用图12上电复位方式。 STC89C52具体介绍如下: 主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.7STC89C52主要功能如表5所示。表5 STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能4.2.5. 按键设置模块:因为本设计需要用的按键数目较少,所以采用独立按键,共设置三个按键,第一个按键为功能键,第二个按键为加一键,第三个按键为减一键。这三个按键用来设置温湿度以及酒精浓度烟雾浓度的上下限值。与单片机的接法如图1.4:其中4,5,6分别接单片机的I/O口。图4-5按键图 4.3主程序工作流程图主要功能是对系统进行初始化和对系统烟雾、酒精浓度、和温湿度检测。看是否超标。当检测超标时就由P2.6口输出高电平去驱动声光报警电路,产生声光报警,由P0口、P2口输出高电平驱动显示电路,从而计数显示。液晶初始化开始T0初始化串行口初始化温湿度酒精烟雾采集显示是否超限否是声光报警将数据发送至上位机串口接收标志位01处理接收到的数据图4-6主程序流程图4.3.1 串口中断服务程序流程图:串口中断恢复现场满足16个字符?置位标志位返回图4-7串口中断服务程序流程图 本程序实现的功能是:当单片机检测到传感器送来的脉冲触发信号后,表示被检查物质浓度超标,从而经过单片机内部程序处理后,驱动声光报警电路开始报警,报警持续几秒钟后自动停止报警,然后程序开始循环工作,检测是否还有下次触发信号,等待报警从而使报警器进入连续工作状态。同时,利用中断方式可以实现报警持续时间时,用手工按键停止报警的作用结 论 经过半年的时间,本次课设终于接近尾声。回想起这半年的路程有苦有甜,碰到过不少的挫折也有许多的收获。本系统是基于单片机89C51的处理,借助温湿度传感器,酒精传感器,烟雾传感器的测量,可以完美的实现对环境温度,湿度,酒精浓度和烟雾浓度的监测,实时显示环境的温湿度,酒精浓度和烟雾浓度,并在各个浓度达到设定值上限时,报警系统会发出声音报警,同时,该系统可以与上位机互通数据,可以实现远程监测功能。此系统完全能运用于工业生产、环境测量、货物保管等部门。它结构紧密、调试安装方便、可塑性强,经长期使用性能稳定可靠。本设计主要采用单片机和传感器,使设计出的硬件在仿真时能够显示环境中的温湿度,烟雾浓度及酒精浓度,并且能够在各个值超过设定上线时进行报警。通过本次课设提高了我们的动手能力,让我们课本上学到的知识更好的在现实中理解应用。致 谢 在本课题进行过程中得到孙继卫老师的悉心指导,在设计的过程中遇到的难题孙老师都给予认真耐心的辅导和解答 。老师渊博的学识,谦虚、严谨的治学态度、灵活的思维方式、认真的工作作风和对学生的关心都令我佩服不已,孙老师帮我分析遇到的种种困难,一直支持,鼓励我要有解决问题的信心,其对我耐心的指导和严格的要求及和同学们之间的相互探讨,使毕业设计得以顺利的完成。同时要感谢在设计过程中同学们给以的热心帮助,才能让本次课设圆满结束。在此,真诚的向尊敬的老师和同学致以崇高的敬意! 由于科技的日益进步及个人原因,本文还存在不少需要改进的地方欢迎广大老师和同学批评指正,在此深表感谢! 参考文献著录1 夏路易.电路板原理图与电路板设计教程 protel 99se北京希望电子出版社.2002.62 张晓东.报警集成电路和报警器制作实例 .北京人民邮电出版社,2001.43 杨学昭.单片机原理、接口技术及应用;西安:西安电子科技大学出版社,20094李永生, 杨莉玲. 半导体气敏元件的选择性研究. 传感器技术, 2002(3): 13 5 宋文绪. 传感器与检测技术M. 北京: 高等教育出版社, 2004.6 SCHOPFH,RUPPEL W,WURFEL P. Voltage responsivity of pyroelectric detectors on a heat sink substrate J. Ferroelectrics,1991 (8): 297 305.7 S. Pedersen, C.B. Pedersen. Animal Activity Measured by Infrared DetectorsJ. J. agric. Eng Res, 1995, 61:239-246.8Wang Xi huai,Xiao Jian mei,Bao Minzhong. Multi-sensor Fire Detection Algorithm for Ship Fire Alarm System Using Neural Fuzzy Network. Signal Processing Proceedings. 2000(3):16021605 9张鹏翼, 罗卫兵, 楼超英. 基于STC单片机的无人飞机控系统设计. 设计参考, 2006, 18:附录一 编程程序#include #include #define uint unsigned int #define uchar unsigned char#include DHT11.h#include DS1302.h#include TLC2543.H#include lcd_1602.hsbit Key_swi=P34;sbit Key_set=P35;sbit Key_add=P36;sbit Key_min=P37;sbit Beer =P21;sbit LED_RED=P30;sbit LED_GRE=P31;bit flag_display=0;/自动切换标志位=1显示时间和温湿度 =0时多界面有按键决定bit flag_display1=0;bit display_flag=0;/*动态显示控制位uchar sw1_2=0; /键二,设置时间uchar sw2_2=0; /键二,设置温湿度报警值uchar sw3_2=0;/建二,设置酒精浓度报警值uchar sw4_2=0;/建二,设置烟雾浓度报警值uchar num1=0;/功能切换uchar speed=0; /数据说新速度uint t0=0;delayms(uint z)uint m,n;for(m=z;m0;m-)for(n=124;n0;n-);void beer()Beer=0;delayms(30);Beer=1;t0=0; /自动切换清零/*功能键11111111111111*/void KKey_switch() /功能键一if(!Key_swi)beer();flag_display=0;/自动切换标志位if(!Key_swi & (sw1_2=0) & (sw2_2=0) & (sw3_2=0) & (sw4_2=0) /=1时,表示正在设置状态,不能却换到其他的状态num1+;if(num1=4)num1=0;while(!Key_swi);switch(num1)case 0:init_xian(0x80,str5_1);init_xian(0xc0,str5_2);break; /case 1:init_xian(0x80,str6_1);init_xian(0xc0,str6_2);break; /case 2:init_xian(0x80,str7_1);init_xian(0xc0,str7_2);break; /case 3:init_xian(0x80,str8_1);init_xian(0xc0,str8_2);break; /*功能键2222222222222*/void KKey_set() /功能键二if(Key_set=0) /设置beer();if(Key_set=0 & flag_display=0)switch(num1)case 0:sw1_2+;if(sw1_2=7)sw1_2=0;switch(sw1_2) /温湿度设置case 0: /确定 光标消失display_flag=0;wr_com(0x0c);Init_DS1302();break; /case 1: /光标 移动到display_flag=1;wr_com(0x88);wr_com(0x0d);break; / case 2:display_flag=1;wr_com(0x8b);wr_com(0x0d);break; /case 3:display_flag=1;wr_com(0x8e);wr_com(0x0d);break; /case 4:display_flag=1;wr_com(0xc7);wr_com(0x0d);break; /case 5:display_flag=1;wr_com(0xca);wr_com(0x0d);break; /case 6:display_flag=1;wr_com(0xc
展开阅读全文