《学位论文-—一氧化碳报警器.doc》由会员分享,可在线阅读,更多相关《学位论文-—一氧化碳报警器.doc(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河南城建学院本科毕业设计(论文) 摘要 摘要当今社会上,出现了许多煤气报警器,而这些产品大都是针对煤气的泄漏所做出的相应的报警,即为家庭式。但是随着社会的发展,煤气报警器也在发展。在微机控制技术、传感器在工业控制、机电一体化、智能仪表、通信、家用电器等方面得到了广泛应用,显著提高了各种设备的技术水平和自动化程度。因此对这些原理和结构我们就需要很好的了解并掌握。鉴于单片机AT89C51具有高集成度等优点,开发设计了一种基于AT89C51的一氧化碳报警器,为了提高系统的灵敏度和准确性,系统采用了一种十分稳定的传感器MQ-7。该报警器对一氧化碳(CO)进行实时控制,当一氧化碳的浓度超过允许值时,控制
2、电路进行报警。关键词:一氧化碳,单片机,报警器,传感器I 河南城建学院本科毕业设计(论文) Abstract Abstract In the current society, a lot of coal gas alarms have appeared, and these products are mostly to letting out corresponding alarms made of coal gas , it is family. But with the development of society, coal gas alarm develop too.Microcomp
3、uter control technology, sensors in the industrial control, mechatronics, smart instrumentation, communications, household appliances, etc. has been widely applied, significantly improved the technological level of equipment and degree of automation. Thus the structure of these principles and we nee
4、d to understand and grasp the good. Carbon monoxide alarm is designed based on AT89C51 with a high level of integration. In order to improve sensitivity and accuracy ,the electrochemical sensor is used. The carbon monoxide alarm is monitored on for real - time, when permitted vale of the concentrati
5、on of carbon monoxide is exceeded,the control circuit will alarm, and it is program - controlled through external row fans and solenoid valve with .Key words :carbon monoxide, MCU, alarm,electrochemical sensorII 河南城建学院本科毕业设计(论文) 目录目 录摘要IAbstractII1 绪论11.1课题背景11.2 一氧化碳报警器的概述21.3 课题研究的目的及意义21.4 设计主要任务
6、22 方案设计52.1 设计要求52.2 初始化方案5 2.2.1 系统方案的选择6 2.2.2系统方案的确定72.3 系统组成7 2.3.1 一氧化碳报警器系统的三大部分83 硬件电路设计103.1硬件的总体构思103.2 芯片介绍及相关电路模块设计10 3.2.1 主控电路原理11 3.2.2 传感器的选择及电路18 3.2.3 报警电路的设计224.1 主程序设计流程234.2 程序编程与调试23 4.2.1程序调试的步骤24结论26参考文献27致谢28附录A29附录B30附录C31附录D33IV 河南城建学院本科毕业设计(论文) 1 绪论 1 1 绪论1.1 课题背景随着国家经济的提高
7、,现代化、智能化的多功能建筑越来越多,对建筑的防火安全设计要求也越来越高。近年来,全国燃气行业发展迅猛,液化气、天然气、煤制气等城市燃气作为清洁能源已在工商业和城镇居民用户中得到广泛应用,特别是随着“西气东输”工程的快速进展,燃气行业发展潜力巨大。以“西气东输工程”为开端的大规模天然气利用工程的实施,意味着我国城市燃气将大踏步的进入“天然气时代”。我国天然气市场将迎来一个千载难逢的机会,城市燃气需求的主要增长点将体现在天然气上。2000年党中央国务院提出“西部大开发”的重大战略部署,特别是2002年“西气东输”第一期工程正式开工。这无疑为发展西部地区的燃气产业带来历史性的机遇。西气东输工程,在
8、西部优势资源和东部广阔市场之间建立起了一座“金桥”,西气东输工程投入使用后,每年供应长江三角洲地区100亿立方米天然气。城市燃气的普及与应用无疑对改善城市的环境质量和提高具名的生活质量发挥了巨大的作用。但是随着燃气的广泛使用,由于燃气泄漏所引发的爆炸、中毒和火灾事故也时有发生,这在某种程度上增加了城市的不安全和不稳定因素。为了使燃气更好地造福于民,造福于社会 ,减少并杜绝各种因燃气泄漏而引发的爆炸及火灾事故,各燃气使用单位及居民用户选择一种适合的燃气报警器实为必要之举。“报警早,损失少”,进一步说明了及时报警的重要性,在家庭里也是如此。一旦发生火灾,提早报警,可以及时将火扑灭,以免小火酿成大火
9、灾。目前常用的有感烟、感温和可燃气体火灾报警器。像家庭中使用煤气、液化石油气和天然气等燃料时,安装一个可燃气体报警器,但出现漏气或者着火时,报警器能够立即鸣笛报警,告之主人及时采取措施。日本早在1980年1月开始实施安装城市煤气、液化石油气报警器的法规,1986年5月日本通产省又实施了安全器具普及出尽基本方针。美国目前已有7个州11个城市通过立法,规定家庭、公寓等都要安装一氧化碳报警器。随着城市燃气化的扩大,我国已有北京市、辽宁省、黑龙江省、山西省、哈尔滨市、青岛市、等相继发布燃气安全管理文件,做到政府立法和百姓自身提高安全保护意识有机结合。一氧化碳(CO)为无色、无味、无刺激性气体,比重0.
10、967,几乎不溶于水,不易被活性炭吸附。当碳物质燃烧不完全时,可产生CO,如人体短时间内吸收较高浓度的C0,或浓度虽低,但吸时间较长,均可造成急性中毒。CO与血红蛋白结合能力超过氧和血红蛋白的结合能力的200-300倍,当CO与血红蛋白结合形成的碳氧血红蛋白含量达到5%时,就会对人体产生慢性损害,达到60%时就会昏迷,1 达到90%就会死亡。由于发生一氧化碳中毒事件的普遍性和隐蔽性,迫切需要一种能够很好的监控室内一氧化碳浓度的仪器,并且在一氧化碳浓度过高时能够报警提高人们注意力,保护人们生命财产安全。本文正是通过分析目前燃气报警器的现状,设计制作的一氧化碳报警器,保障人们的生命财产安全。1.2
11、 一氧化碳报警器的概述首先我们应该对国家标准规定的燃气报警器的种类有所了解。燃气报警器可分为可燃气体泄漏仪(简称“检漏仪”)、可燃气体报警控制器(简称“控制器”)、可燃气体探测器(简称“探测器”)、家用可燃气体报警器(简称“报警器”)四大系列产品。报警器为居民家庭用的燃气报警器,一般安装在厨房,遇燃气泄漏时,报警器可发出声光报警,以提醒居民。燃气报警器的核心是气体传感器,俗称“电子鼻”。当气体传感器遇到燃气时,传感器电阻随燃气浓度而变化,随之产生电信号,供燃气报警器后继线路处理。经过电子路线处理变成浓度成比例变化的电压信号,由线性电路加以补偿,使信号线性化,经微机处理、逻辑分析,输出各种控制信
12、号,即当燃气浓度达到报警设定值时,燃气报警器发出声光报警信号。1.3 课题研究的目的及意义目前,现有一氧化碳检测仪器主要是面对工矿企业或者公共场所的检测,价格高昂,对家庭也不适用。因此,本次设计所面对的广大居民,其优点在于:成本低廉并能对一氧化碳准确报警。 该产品无需专业人员操作,只要放在合适位置,通电即可,连续使用、方便简洁。 能起到预防一氧化碳中毒的效果,使人们高枕无忧。该产品必须能够有效预防广大农村居民冬季燃煤取暖一氧化碳中毒事件发生,同时也能够给城镇居民安全使用天然气提供有力的保障。1.4 设计主要任务本文利用单片机电路制作一氧化碳报警器。设计过程中最关键的两个部分:硬件的设计和控制软
13、件的程序编写。硬件问题 一氧化碳报警器的硬件主要有3大部分,即浓度检测及显示模块、主控模块和报警模块。浓度检测模块主要有燃气传感器组成,它是整个系统中最关键的元件。主控模块也有单片机及其他相关软件组成,由程序对单片机进行控制。报警模块主要有蜂鸣器和继电器组成,这个模块在燃气浓度过高时候起作用。软件问题它的软件设计主要有延时处理和数据比较2个部分。首先延时处理,然后将数据采集转换后经由单片机和已知数据进行比较,需要对程序进行多次调试,以确定最佳时间,最后根据需要调试出来实际电路。4 河南城建学院本科毕业设计(论文) 2 方案设计 2 方案设计 设计就是根据题目的要求而对硬件和软件进行规划,并选择
14、最合适的硬件电路和软件程序来达到目的。硬件设计是通过对设计要求的分析,对各种元器件的了解,而得出分立元件与集成块的某些连接方法,已达到设计的功能要求。并且把这些元器件焊接在一块电路板上。它包括对各种元器件的功能和接发的了解以及对各种元器件的选择和设计方案的选择。软件设计是分析设计的硬件用程序实现其功能,并且调试优化产品功能。2.1 设计要求设计的报警器应实现如下功能:报警器需在一氧化碳浓度达到100ppm时启动报警。具体实现如下功能: 系统要求设置正常工作状态除正常工作状态外,蜂鸣器处于关闭状态。 在工作状态下,绿灯应长亮,数码管显示其浓度。当室内一氧化碳浓度达到100ppm以上时系统应启动蜂
15、鸣器报警,继电器闭合,即能自动关闭阀门。2.2 初始化方案本设计按以下思路展开研究:根据该设计要实现的基本功能,设计大概应该分为信号接收,信号处理,信号控制和信号响应四个部分。 1)信号采集接收部分即通过一氧化碳检测房间气体浓度,并将这种变化量转换成电压或者电流等模拟量的变化。 2)信号处理部分是将接收部分得到的电压或电流等变化进行必要放大,为后一部分信号控制提供准备。 3)信号控制部分是通过预定控制方式等实现对设计要求的准确操作。 4)信号响应是通过事故处理部分和显示部分实现控制部分的要求。 对上述四个部分进行分析,得到如下一些基本的结论: 1)信号接收部分为了能准确采集到气体浓度的变化应选
16、用传感器敏感器件,为使其有效部分的检测房间中气体浓度,必须选用高温一氧化碳传感器。 2)信号处理部分应该根据实际情况选用电荷放大或比较器等装置,这部分电路将包含在传感器接口电路中。 3)控制部分为了实现精确控制,采用单片机较为合适。 4)信号响应及报警部分用蜂鸣器和继电器即可。 根据对上面设计系统的分析,我们得到该设计思想框图如下图2.1所示:信 号控 制装 置信号响应 装 置信 号处 理装 置信号接收 装置 置 图 2.1 设计思想框图2.2.1 系统方案的选择鉴于此系统所要实现的功能,提出方案进行分析。方案一:采用单个传感器检测房间气体浓度,将检测到的浓度结果通过运算放大器放大后送入模/数
17、芯片中进行模数转换,利用MCS-51单片机控制声音报警。分析:此设计十分简单,也十分实用。虽然对房间气体浓度的采集不是很精确,但报警方面已经十分符合生活必需。方案二:采用双传感器,采用相互补偿的方法检测房间气体浓度,将检测到的浓度结果通过运算放大器放大后送入模/数芯片中进行模数转换,利用MCS-51单片机控制声音报警。分析:此设计方法虽然解决了传感器检测气体浓度时温度和湿度对测量值的影响,但是,在实际过程中,需要利用的核心控制芯片最少具有4路8位A/D口,气体和温度敏感信号直接由A/D口采集后,进行一定的算法修正和软件补偿。这与主控芯片采用常规的ADC0809和单片机并不匹配,且制作硬件极其复
18、杂,系统整体设计体积过大、功耗高、成本高。现今传感器技术的飞速发展,设计出了性能更佳,适用范围更广的气体传感器。通过搜集信息,提出本次设计采用的MQ-7型传感器。半导体一氧化碳传感器MQ-7所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。采用高低温循环检测方式低温(1.5V加热)检测一氧化碳,传感器的电导率随空气中一氧化碳气体浓度增加而增大,高温(5.0V加热)清洗低温时吸附的杂散气体。使用简单的电路即可将电导率的变化,转换为与该气体浓度相对应的输出信号。MQ-7气体传感器对一氧化碳的灵敏度高,这种传感器可检测多种含一氧化碳的气体,是一款适合多种应用的低成本传感器。 应用:用于
19、家庭、商业、工业环境的一氧化碳、煤气探测装置。基本测试回路如图2.2: 图2.2 基本测试回路2.2.2系统方案的确定在上述两种方案中,由于方案二比方案一制作硬件复杂,且功耗高、成本高,而方案一比方案二实用和简单,更符合广大群众的需求,所以我选择方案一作为本次设计的主体电路。2.3 系统组成本设计属于单片机应用系统。单片机在系统检测以及工程控制方面的应用,是典型的嵌入式系统。通常将满足海量高速数据计算的计算机称为通用计算机系统;而把面向工控领域对象,嵌入到工控系统中,实现嵌入式应用的计算机称之为嵌入式计算机系统,简称嵌入式系统。嵌入式系统分为四种:工控机,通用CPU模块,嵌入式微处理,单片机。
20、嵌入式系统具有以下特点: 面对控制对象。如传感器信号输入、人机交互操作、伺服驱动等。 嵌入到工控应用系统中的结构形态。 突出控制功能。如对外部信息的捕捉、对控制对象实时控制和有突出控制功能的指令系统(I/O控制、位操作和转移指令等)。单片机有唯一的专门为嵌入式应用系统设计的体系结构与指令系统,最能满足嵌入式应用要求。单片机是完全按嵌入式系统要求设计的单芯片形态应用系统,能满足面对控制对象、应用系统的嵌入、现场的可靠运行及非凡的控制品质等要求,是发展最快、品种最多、数量最大的嵌入式系统。2.3.1 一氧化碳报警器系统的三大部分单片机应用系统的结构分三个层次,分别是单片机、单片机系统及单片机应用系
21、统。单片机:通常指应用系统主处理机,即所选择的单片机器件。单片机系统:指按照单片机的技术要求和嵌入对象的资源要求而构成的基本系统,如时钟电路、复位电路和扩展存储器等与单片机构成了单片机系统。单片机应用系统:能满足嵌入对象要求的全部电路系统。在单片机系统的基础上加上面向对象的接口电路,如前向通道、后向通道、人机交互通道(键盘、显示器、打印机等)和串行通信口(RS232)以及应用程序等。单片机应用系统三个层次的关系如图2.3:单片机应用系统前向通道应用程序单片机系统后向通道单片机人机交互通道串行通信口 图2.3 单片机应用系统三个层次的关系以此理解,一氧化碳报警器同样具有单片机应用系统的三个层次。
22、其中以AT89C51单片机为核心构成单片机系统。在此系统中,检测信号进入单片机进行运算处理。为了更好的理清设计思路,将整个系统细分为三部分加以设计说明。整个报警器由三个部分组成,分为三大模块:浓度检测模块、主控模块和报警模块。在本次设计中,使用的核心器件是单片机和一氧化碳传感器。为了保证整个系统可靠的运行,设计中必须明确三大部分的实际联系:以单片机为中心,其他各大模块一一展开。其中,浓度检测及显示模块所实现的功能是将房间中的一氧化碳浓度值转换成为单片机能够处理的数字信号,并且浓度值显示出来;主控模块以单片机为主,对其他模块的运行进行控制;报警模块是此系统的外部电路,它的功能是实现报警。下面就对
23、各个模块的功能和实现形式做简单介绍: 气体浓度检测模块一氧化碳报警器主要采用高稳定一氧化碳气体传感器MQ-7检测房间气体浓度,检测结果通过高精度运算放大器放大后送入模/数转换芯片ADC0809中进行转换。 主控模块系统采用单片机控制,用的是MCS-51单片机,MCS-51单片机是美国Intel公司1980年推出的一种高性能8位单片微型计算机。内带4K字节的内存和程序保护系统,使用于程序的调试修改和保密,各管脚的功能在随后的知识中加以介绍。它的主要功能既是和ADC0809芯片一起共同接受检测信号,又可以通过对数字型号的处理来控制外围电路以及显示电路。模数转换芯片采用ADC0809,接收经过运算放
24、大器处理后的一氧化碳传感器的检测值,检测结果通过ADC0809处理后才传给单片机进行数据处理。处理后的信息将通过单片机控制,以驱动报警。 报警模块此模块主要有蜂鸣器、继电器组成,在气体浓度过大,超过安全值时,蜂鸣器工作,提供报警服务,且继电器闭合可以自行关闭煤气,用户可通过对房间通风来解决问题。至此,本系统的三大模块功能和设计思路已经确立,下文将介绍整个系统的详细设计过程,并且给出设计电路。39 河南城建学院本科毕业设计(论文) 3 硬件电路设计 3 硬件电路设计3.1硬件的总体构思基于8051单片机实现的煤气报警器的具体方案如图3.1所示。该方案主要包括了气体传感器、A/D转换器、8051单
25、片机电路、晶振、蜂鸣器以及LED显示电路。 气体传感器输出为模拟量,需要利用A/D转换器将模拟量转换成数字量送给8051单片机;晶振和按键控制作为8051单片机的外围输入电路,蜂鸣器作为报警用的8051单片机的外围输出电路;显示电路采用了LED显示,由8051单片机控制实现显示。 图3.1 基于8051单片机的实现3.2 芯片介绍及相关电路模块设计单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成
26、到一块硅片上构成的一个小而完善的计算机系统。ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片。3.2.1 主控电路原理主控电路中,以单片机为主体,通过分析A/D转换的得到的数字值,控制事故处理模块运行,它是系统的大脑。本次设计采用的是AT89C51型单片机,AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only
27、Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。其引脚排列如图3.2所示: 图3.2 单片机引脚排列图VCC:供电电压。 GND:接地。 P0口:P0口为一个8
28、位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲
29、器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电
30、平,P3口将输出电流(ILL),这是由于上拉的缘故。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置“0”。此时, ALE只有在执行MOVX和MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在
31、外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器工作期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器可寻址0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XT
32、AL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 整个EPROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM、
33、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 串口通讯:是单片机的结构和特殊寄存器,这是编写软件的关键。至于串口通信需要用到哪些特殊功能寄存器呢,它们是SBUF、TCON、TMOD和SCON等,各代表什么含义呢?SBUF 数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。SBUF 包含了两个独立的寄存器,一个是发送寄存器,另一个是接收寄存器,但它们都共同使用同一个寻址地址99H。CPU 在读SBUF 时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的
34、被响应,数据没有被取走,下一帧数据已到来而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去处理发送数据。操作SBUF寄存器的方法则很简单,只要把这个99H 地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfr SBUF = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h 或at89x51.h 等头文件中已对其做了定义,只要用#include 引用就可以了。 SCON 串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。SCON 就是51 芯片的串行口控制寄存器。它的寻址地址是98H,是一
35、个可以位寻址的寄存器,作用就是监视和控制51 芯片串行口的工作状态。51 芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON 寄存器。SM2 在模式2、模式3 中为多机处理通信使能位。在模式0 中要求该位为“0”。 REN 为允许接收位,REN 置“1” 时串口允许接收,置“0” 时禁止接收。REN 是由软件置位或清零。如果在一个电路中接收和发送引脚P3.0、P3.1 都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REN=0 来禁止接收,在子程序结束处加入REN=1 再次打开串
36、口接收。大家也可以用上面的实际源码加入REN=0 来进行实验。TB8 发送数据位8,在模式2 和3 是要发送的第9 位。该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多机处理通信中这一位则用于表示是地址帧还是数据帧。 RB8 接收数据位8,在模式2 和3 是已接收数据的第9 位。该位可能是奇偶位或地址/数据标识位。在模式0 中,RB8 为保留位没有被使用。在模式1 中,当SM2=0,RB8 是已接收数据的停止位。 TI 发送中断标识位。在模式0,发送完第8 位数据时,由硬件置位。其它模式中则是在发送停止位之初,由硬件置位。TI 置位后,申请中断,CPU 响应中断后,发送下一
37、帧数据。在任何模式下,TI 都必须由软件来清除,也就是说在数据写入到SBUF 后,硬件发送数据,中断响应(如中断打开),这时TI=1,表明发送已完成,TI 不会由硬件清除,所以这时必须用软件对其清零。 RI 接收中断标识位。在模式0,接收第8 位结束时,由硬件置位。其它模式中则是在接收停止位的半中间,由硬件置位。RI=1,申请中断,要求CPU 取走数据。但在模式1 中,SM2=1时,当未收到有效的停止位,则不会对RI 置位。同样RI 也必须要靠软件清除。常用的串口模式1 是传输10 个位的,1 位起始位为0,8 位数据位,低位在先,1 位停止位为1。它的波特率是可变的,其速率是取决于定时器1
38、或定时器2 的定时值。AT89C51 和AT89C2051 等51 系列芯片只有两个定时器,定时器0 和定时器1,而定时器2是89C52 系列芯片才有的。 波特率在使用串口做通讯时,是一个很重要的参数,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。有一些初学的朋友认为波特率是指每秒传输的字节数,如标准9600 会被误认为每秒种可以传送9600个字节,而实际上它是指每秒可以传送9600 个二进位,而一个字节要8 个二进位,如用串口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进位,9600 波特率用模式1 传输时,每秒传输的字节数
39、是960010960 字节。51 芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M 的晶振来计算,那么它的波特率可以达到1M。模式2 的波特率是固定在fosc/64 或fosc/32,具体用哪一种就取决于PCON 寄存器中的SMOD位,如SMOD 为0,波特率为focs/64,若SMOD 为1,波特率为focs/32。模式1 和模式3 的波特率是可变的,取决于定时器1 或2(52 芯片)的溢出速率。那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算:波特率(2SMOD32)定时器1的溢出速率。 上式中如设置了PCON 寄存器中的SMOD 位
40、为1 时就可以把波特率提升2 倍。通常会使用定时器1 工作在定时器工作模式2 下,这时定时值中的TL1 做为计数,TH1 做为自动重装值 ,这个定时模式下,定时器溢出后,TH1 的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个定时模式2 下定时器1的溢出速率的计算公式如下: 溢出速率(计数速率)/(256TH1) 上式中的“计数速率”与所使用的晶体振荡器频率有关,在51 芯片中定时器启动后会在每一个机器周期使定时寄存器TH 的值增加1,一个机器周期等于十二个振荡周期,所以可以得知51 芯片的计数速率为晶体振荡器频率的1/12,一个12M 的晶振用在51 芯片
41、上,那么51 的计数速率就为1M。通常用11.0592M 晶体是为了得到标准的无误差的波特率,那么为何呢?计算一下就知道了。如我们要得到9600 的波特率,晶振为11.0592M 和12M,定时器1 为模式2,SMOD 设为1,分别看看那所要求的TH1 为何值。代入公式: 11.0592M 9600(232)(11.0592M/12)/(256-TH1) TH1250 12M 9600(232)(12M/12)/(256-TH1) TH1249.49 上面的计算可以看出使用12M 晶体的时候计算出来的TH1 不为整数,而TH1 的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600
42、波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分的小的,可以忽略不计。AT89C51单片机的时钟电路中采用内部时钟方式利用芯片内部的振荡器,然后在引脚XTALl和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。外接晶振时,C1和C2的值通常选择为30pF左右;C1、C2对频率有微调作用,晶振或陶瓷谐振器的频率范围可在1.2MHz12MHz之间选择。为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单
43、片机引脚XTALl和XTAL2靠近。单片机的时钟电路如图3.3所示: 图3.3 时钟电路其次模数转换部分采用的ADC0809芯片,其主要特性如下: 8路输入通道,8位AD转换器,即分辨率为8位。 具有转换起停控制端。 转换时间为100s(时钟为640kHz时),130s(时钟为500kHz时), 单个5V电源供电。 模拟输入电压范围05V,不需零点和满刻度校准。 工作温度范围为-4085摄氏度。 低功耗,约15mW。引脚图如图3.4所示: 图3.4 ADC0809引脚图 ADC0809是CMOS单片型逐次逼近式AD转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近组成。ADC0809芯片有28条引脚,采用双列直插式封装,下面说明各引脚功能。 IN0IN7:8路模拟量输入端。 2.12.8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。 ALE:地址锁存允许信号,输入,高电平有效。