机械工程课程设计(论文)基于AT89C51单机片的一氧化碳报警器.doc

上传人:仙人指路1688 文档编号:4145221 上传时间:2023-04-07 格式:DOC 页数:28 大小:345.50KB
返回 下载 相关 举报
机械工程课程设计(论文)基于AT89C51单机片的一氧化碳报警器.doc_第1页
第1页 / 共28页
机械工程课程设计(论文)基于AT89C51单机片的一氧化碳报警器.doc_第2页
第2页 / 共28页
机械工程课程设计(论文)基于AT89C51单机片的一氧化碳报警器.doc_第3页
第3页 / 共28页
机械工程课程设计(论文)基于AT89C51单机片的一氧化碳报警器.doc_第4页
第4页 / 共28页
机械工程课程设计(论文)基于AT89C51单机片的一氧化碳报警器.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《机械工程课程设计(论文)基于AT89C51单机片的一氧化碳报警器.doc》由会员分享,可在线阅读,更多相关《机械工程课程设计(论文)基于AT89C51单机片的一氧化碳报警器.doc(28页珍藏版)》请在三一办公上搜索。

1、摘 要:鉴于单片机AT89C51具有高集成度等优点,开发设计了一种基于AT89C51的一氧化碳报警器,为了提高系统的灵敏度和准确性,系统采用了一种十分稳定的传感器MQ-7。该报警器对一氧化碳(CO)进行实时控制,当一氧化碳的浓度超过允许值时,控制电路进行报警。关键词:一氧化碳;单片机;报警器;传感器Abstract :Carbon monoxide alarm is designed based on AT89C51 with a high level of integration. In order to improve sensitivity and accuracy ,the elect

2、rochemical sensor is used. The carbon monoxide alarm is monitored on for real - time, when permitted vale of the concentration 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;

3、MCU; alarm;electrochemical sensor目 录引言11绪论11.1 课题背景11.2 一氧化碳报警器的概述21.3 课题研究的目的及意义31.4 设计飞主要任务32 方案设计32.1 设计要求42.2 初始化方案42.2.1 系统方案的选择52.2.1 系统方案的确定72.3 系统组成72.3.1 一氧化碳报警器系统的三大部分83 硬件电路设计93.1 设计使用的基本知识介绍103.2 芯片介绍及相关电路模块设计103.2.3.1 传感器的设计要点203.2.3.2 传感器与ADC0809的连接203.2.4 报警电路的设计213.3 设计的硬件电路214 软件部分2

4、14.1单片机编程21参考文献24附录25引言当今,单片机微型计算机技术迅猛发展,由单片机技术开发的智能化测控设备和产品广泛应用到各个领域,单片机技术产品和设备促进了生产技术水平的提高。而此次的一氧化碳报警器检测系统正是单片机应用系统中的一种。单片机应用系统由硬件和软件组成。硬件是指单片机扩展的存储器、输入/输出设备以及各种实现单片机系统控制要求的接口电路和有关的外围电路芯片或部件;软件是指单片机应用系统实现其特定控制功能的各种工作程序和管理程序。只有系统硬件和软件紧密配合、协调一致,才可能组成高性能的单片机应用系统。在单片机应用系统的开发过程一般包括系统的总体设计、硬件设计、软件设计和系统调

5、试几个阶段。这几个系统开发阶段并不是相互独立、各自进行的,而应根据开发的实际需要,相互协调、交叉,有机的进行。实现气体浓度监测离不开高性能的气体传感器。从广义上讲,传感器就是能感受外界信息并能按一定规律将这些信息转换成可用信号的装置。狭义上讲,传感器就是能将外界信息转换成电信号的装置。随着新技术和自动化的发展,传感器的使用数量越来越大,一切现代仪器、设备几乎都离不开传感器。在工业生产中,尤其是自动化生产过程中,用各种传感器来检测和控制生产过程中的各个参数,如温度、压力、流量、PH值等,以便使设备工作在最佳状态,产品达到最好的质量。此次设计中所利用到的气体传感器就是要测量一氧化碳气体浓度的动态信

6、息,并且利用数模转换芯片将浓度值转换为数字值,实现整个系统的检测与报警功能。本文的一氧化碳报警器就是单片机应用系统的一种典型应用,要求能够检测一样护坦气体浓度,并且在气体浓度超过给定值时候报警。由于一氧化碳中毒是家庭小区以及矿工企业常见事故,给人们生命财产带来了极大的危害。为了能减少事故的发生,提醒人们注意,迫切需要一氧化碳报警装置。随着电子技术与计算机技术的发展,面对各种检查对象和大量的测试点,需要利用数据采集系统将多路被测量转换成数字量,再经过单片机或微型计算机进行数据处理,实现实时测控。而此时采用单片机来实现一氧化碳报警不仅具有采集控制方便、简单、灵活等优点,而且可以大幅度提高采集点的技

7、术指标,从而大大提高系统的可利用性。此次的设计正是把ADC0809与89C51单片机有机的结合起来,实现了数据采集系统,也符合了本设计的要求。1绪论1.1 课题背景随着国家经济的提高,现代化、智能化的多功能建筑越来越多,对建筑的防火安全设计要求也越来越高。近年来,全国燃气行业发展迅猛,液化气、天然气、煤制气等城市燃气作为清洁能源已在工商业和城镇居民用户中得到广泛应用,特别是随着“西气东输”工程的快速进展,燃气行业发展潜力巨大。以“西气东输工程”为开端的大规模天然气利用工程的实施,意味我国城市燃气将大踏步的进入“天然气时代”。我国天然气市场将迎来一个千载难逢的机会,城市燃气需求的主要增长点将体现

8、在天然气上。20000年党中央国务院提出“西部大开发”的重大战略部署,特别是2002年“西气东输”第一期工程正式开工。这无疑为发展西部地区的燃气产业带来历史性的机遇。西气东输工程,在西部优势资源和东部广阔市场之间建立起了一座“金桥”,西气东输工程投入使用后,每年供应长江三角洲地区100亿立方米天然气。城市燃气的普及与应用无疑对改善城市的环境质量和提高具名的生活质量发挥了巨大的作用。但是随着燃气的广泛使用,由于燃气泄漏所引发的爆炸、中毒和火灾事故也时有发生,这在某种程度上增加了城市的不安全和不稳定因素。为了使燃气更好地造福于民,造福于社会 ,减少并杜绝各种因燃气泄漏而引发的爆炸及火灾事故,各燃气

9、使用单位及居民用户选择一种适合的燃气报警器实为必要之举。“报警早,损失少”,进一步说明了及时报警的重要性,在家庭里也是如此。一旦发生火灾,提早报警,可以及时将火扑灭,以免小火酿成大火灾。目前常用的有感烟、感温和可燃气体火灾报警器。像家庭中使用煤气、液化石油气和天然气等燃料时,安装一个可燃气体报警器,但出现漏气或者着火时,报警器能够立即鸣笛报警,告之主人及时采取措施。日本早在1980年1月开始实施安装城市煤气、液化石油气报警器的法规,1986年5月日本通产省又实施了安全器具普及出尽基本方针。美国目前已有7个州11个城市通过立法,规定家庭、公寓等都要安装一氧化碳报警器。随着城市燃气化的扩大,我国已

10、有北京市、辽宁省、黑龙江省、山西省、哈尔滨市、青岛市、等相继发布燃气安全管理文件,做到政府立法和百姓自身提高安全保护意识有机结合。一氧化碳(CO)为无色、无味、无刺激性气体,比重0.967,几乎不溶于水,不易被活性炭吸附。当碳物质燃烧不完全时,可产生CO,如人体短时间内吸收较高浓度的C0,或浓度虽低,但吸时间较长,均可造成急性中毒。CO与血红蛋白结合能力超过氧和血红蛋白的结合能力的200-300倍,当CO与血红蛋白结合形成的碳氧血红蛋白含量达到5%时,就会对人体产生慢性损害,达到60%时就会昏迷,达到90%就会死亡。由于发生一氧化碳中毒事件的普遍性和隐蔽性,迫切需要一种能够很好的监控室内一氧化

11、碳浓度的仪器,并且在一氧化碳浓度过高时能够报警提高人们注意力,保护人们生命财产安全。本文正是通过分析目前燃气报警器的现状,设计制作的一氧化碳报警器,保障人们的生命财产安全。1.2 一氧化碳报警器的概述首先我们应该对国家标准规定的燃气报警器的种类有所了解。燃气报警器可分为可燃气体泄漏仪(简称“检漏仪”),可燃气体报警控制器(简称“控制器”)、可燃气体探测器(简称“探测器”)、家用可燃气体报警器(简称“报警器”)四大系列产品。报警器为居民家庭用的燃气报警器,一般安装在厨房,遇燃气泄漏时,报警器可发出声光报警,以提醒居民。燃气报警器的核心是气体传感器,俗称“电子鼻”。当气体传感器遇到燃气时,传感器电

12、阻随燃气浓度而变化,随之产生电信号,供燃气报警器后继线路处理。经过电子路线处理变成浓度成比例变化的电压信号,由线性电路加以补偿,使信号线性化,经微机处理、逻辑分析,输出各种控制信号,即当燃气浓度达到报警设定值时,燃气报警器发出声光报警信号。1.3 课题研究的目的及意义设计出性能更加可靠,经济实惠的一氧化碳报警器。目前,现有一氧化碳检测仪器主要是面对工矿企业或者公共场所的检测,价格高昂,对家庭也不适用。因此,本次设计所面对的广大居民,其优点在于:(1)成本低廉并能对一氧化碳准确报警(2)该产品无需专业人员操作,只要放在合适位置,通电即可,连续使用、方便简捷。(3)能起到预防一氧化碳中毒的效果,使

13、人们高枕无忧。该产品必须能够有效预防广大农村居民冬季燃煤取暖一氧化碳中毒事件发生,同时也能够给城镇居民安全使用天然气提供有力的保障。1.4 设计飞主要任务本文利用单片机电路制作一氧化碳报警器。设计过程中最关键的两个部分:硬件的设计和控制软件的程序编写。这也是在设计过程中需要解决的最关键的问题。(1) 硬件问题一氧化碳报警器的硬件主要有3大部分,即浓度检测及显示模块、主控模块和报警模块。浓度检测模块主要有燃气传感器组成,他说整个系统中最关键的元件。主控模块也有单片机及其他相关软件组成,由程序对单片机进行控制。报警模块主要有蜂鸣器和LED灯组成,这个模块在燃气浓度过高时候起作用。硬件的设计需要单片

14、机、模电及其数电的相关知识。在解决这一问题的过程中,需要查阅大量资料,结合所学知识,向老师获取帮助。(2) 软件问题它的软件设计主要有延时处理数据比较2个部分。首先延时处理,将数据采集转换后经由单片机和已知数据进行比较。需要对程序进行多次调试,以确定最佳时间。最后根据需要调试出来实际电路即可。2 方案设计设计就是根据题目的要求而对硬件和软件进行规划,并选择最合适的硬件电路和软件程序来达到目的。硬件设计是通过对设计要求的分析,对各种元器件的了解,而得出分立元件与集成块的某些连接方法,已达到设计的功能要求。并且把这些元器件焊接在一块电路板上。它包括对各种元器件的功能和接发;了解,以及对各种元器件的

15、选择和设计方案的选择。软件设计是分析设计的硬件用程序实现其功能,并且调试优化产品功能。2.1 设计要求设计的报警器应实现如下功能:报警器需在一氧化碳浓度达到100ppm时启动报警。具体实现如下功能:(1)系统要求设置正常工作状态除正常工作状态外,LED红灯处于熄灭状态,蜂鸣器处于关闭状态。 (2)在正常工作状态下,绿灯应长亮。当室内一氧化碳浓度达到100ppm时系统应启动蜂鸣器报警,红灯闪烁。 2.2 初始化方案本设计念一下思路展开研究:(1) 根据该设计要实现的基本功能,设计大概应该分为信号接收,信号处理,信号控制和信号响应四个部分。 A.信号采集接收部分即通过一氧化碳检测房间气体浓度,并将

16、这种变化量转换成电压或者电流等模拟量的变化 B.信号处理部分是将接收部分得到的电压或电流等变化进行必要放大,为后一部分信号控制提供准备。 C.信号控制部分是通过预定控制方式等实现对设计要求的准确操作。 D.信号响应是通过事故处理部分和显示部分实现控制部分的要求。 (2)对上述四个部分进行分析,得到如下一些基本的结论: A.信号接收部分为了能准且采集到气体浓度的变化应选用传感器敏感器件,为使其有效部分的检测房间中气体浓度,必须选用高温一氧化碳传感器。 B.信号处理部分应该根据实际情况选用电荷放大,或比较器等装置,这部分电路将包含在传感器接口电路中。 C.控制部分为了实现精确控制,采用单片机较为合

17、适。 D.信号响应及报警部分,用蜂鸣器和LED灯即可。根据对上面设计系统的分析,我们得到该设计思想框图如下图2.1所示:信 号响 应装 置信 号控 制装 置信 号处 理装 置信 号接 收装 置 图 2.1 设计思想框图2.2.1 系统方案的选择鉴于此系统所要实现的功能,提出方案进行分析。方案一:采用单个传感器检测房间气体浓度,将检测到的浓度结果通过运算放大器放大后送入模/数芯片中进行模数转换,利用MCS-51单片机控制声音报警。分析:此设计十分简单,也十分实用。虽然对房间气体浓度的采集不是很精确,但报警方面已经十分符合生活必须。方案二:采用双传感器,采用相互补偿的方法检测房间气体浓度,将检测到

18、的浓度结果通过运算放大器放大后送入模/数芯片中进行模数转换,利用MCS-51单片机控制声音报警。分析:此设计方法虽然解决了传感器检测气体浓度时温度和湿度对测量值的影响,但是,在实际过程中,需要利用的核心控制芯片最少具有4路8位A/D口,气体和温度敏感信号直接由A/D口采集后,进行一定的算法修正和软件补偿。这与主控芯片采用常规的ADC0809和单片机并不匹配,且制作硬件极其复杂,系统整体设计体积过大、功耗高、成本高,并不适用,所以不采用方案二。现今传感器技术的飞速发展,设计出了性能更佳,适用范围更广的气体传感器。通过搜集信息,提出本次设计采用的MQ-7型传感器。特将此传感器介绍如下: 半导体一氧

19、化碳传感器MQ-7所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。采用高低温循环检测方式低温(1.5V加热)检测一氧化碳,传感器的电导率随空气中一氧化碳气体浓度增加而增大,高温(5.0V加热)清洗低温时吸附的杂散气体。使用简单的电路即可将电导率的变化,转换为与该气体浓度相对应的输出信号。MQ-7气体传感器对一氧化碳的灵敏度高,这种传感器可检测多种含一氧化碳的气体,是一款适合多种应用的低成本传感器。 特点:对一氧化碳的高灵敏度优异的稳定性长寿命大的电信号输出优异的选择性 应用:用于家庭、商业、工业环境的一氧化碳、煤气探测装置。 规格:适用气体一氧化碳CO探测范围101000ppm

20、特征气体100ppm一氧化碳灵敏度R in air/R in typical gas5敏感体电阻1K20K in 100ppm CO响应时间150s(70% Response)恢复时间150s(70% Response)加热电阻313加热电流加热电压5.0V0.2V/1.5V0.1V加热功率约350mW测量电压24V工作条件环境温度:-20+55湿度:95%RH环境含氧量:21%贮存条件温度: -20+70湿度:70%RH基本测试回路图2.2:图2.2 基本测试回路2.2.1 系统方案的确定出于设计成本等诸多问题,我们选择方案一作为本次设计的主体电路。2.3 系统组成本设计属于单片机应用系统。

21、他说单片机在系统检测以及工程控制方面的应用,是典型的嵌入式系统。通常将满足海量高速数据计算的计算机称为通用计算机系统;而把面向工控领域对象,嵌入到工控系统中,实现嵌入式应用的计算机称之为嵌入式计算机系统,简称嵌入式系统。嵌入式系统分为四种:工控机,通用CPU模块,嵌入式微处理,单片机。嵌入式系统具有以下特点:(1) 面对控制对象。如传感器信号输入、人机交互操作、伺服驱动等。(2) 嵌入到工控应用系统中的结构形态。(3) 能在工业现场环境中可靠运行的品质。(4) 突出控制功能。如对外部信息的捕捉、对控制对象实时控制和有突出控制功能的指令系统(I/O控制、位操作和转移指令等)。单片机有唯一的专门为

22、嵌入式应用系统设计的体系结构与指令系统,最能满足嵌入式应用要求。单片机是完全按嵌入式系统要求设计的单芯片形态应用系统,能满足面对控制对象、应用系统的嵌入、现场的可靠运行及非凡的控制品质等要求,是发展最快、品种最多、数量最大的嵌入式系统。2.3.1 一氧化碳报警器系统的三大部分单片机应用系统的结构分三个层次。(1) 单片机:通常指应用系统主处理机,即所选择的单片机器件。(2) 单片机系统:指按照单片机的技术要求和嵌入对象的资源要求而构成的基本系统,如时钟电路、复位电路和扩展存储器等与单片机构成了单片机系统。(3) 单片机应用系统:能满足嵌入对象要求的全部电路系统。在单片机系统的基础上加上面向对象

23、的接口电路,如前向通道、后向通道、人机交互通道(键盘、显示器、打印机等)和串行通行口(RS232)以及应用程序等。单片机应用系统(4) 单片机应用系统三个层次的关系如图2.3:应用程序单片机系统后向通道前向通道单片机人机交互通道串行通信口图2.3 单片机应用系统三个层次的关系以此理解,一氧化碳报警器同样具有单片机应用系统的三个层次。其中以AT89C51单片机为核心构成单片机系统。在此系统中,检测信号进入单片机进行运算处理。为了更好的理清设计思路,将整个系统细分为三部分加以设计说明。整个报警器由三个部分组成,分为三大模块:浓度检测模块、主控模块和报警模块。在本次设计中,使用的核心器件是单片机和一

24、氧化碳传感器。为了保重整个系统可靠的运行,设计中必须明确三大部分的实际联系:以单片机为中心,其他各大模块一一展开。其中,浓度检测及显示模块所实现的功能是将房间中的一氧化碳浓度值转换成为单片机能够处理的数字信号,并且浓度值显示出来:主控模块以单片机为主,对其他模块的运行进行控制;报警模块是此系统的外部电路,它的功能是实现报警。系统框图如图2.4所示。AT89C51气体浓度检测报警控制图2.4 一氧化碳报警器系统组成框图下面就对各个模块的功能和实现形式做简单介绍(1) 气体浓度检测模块一氧化碳报警器主要采用高稳定一氧化碳气体传感器MQ-7检测房间气体浓度,检测结果通过高精度运算放大器放大后送入模/

25、数转换芯片ADC0809中进行转换(2) 主控模块系统采用单片机控制,用的是MCS-51单片机,MCS-51单片机是美国Intel公司1980年推出的一种高性能8为单片微型计算机。内带4K字节的内存和程序保护系统,使用于程序的调试修改和保密,各管脚的功能在随后的知识中加以介绍。它的主要功能既是和ADC0809芯片一起共同接受检测信号,又可以通过对数字型号的处理来控制外围电路以及显示电路。模数转换芯片采用ADC0809,接收经过运算放大器处理后的一氧化碳传感器的检测值,检测结果通过ADC0809处理后才传给单片机进行数据处理。处理后的信息将通过单片机控制,以驱动报警。(3) 报警模块此模块主要有

26、蜂鸣器、LED灯组成,在气体浓度过大,超过安全值时,蜂鸣器工作,提供报警服务。这个时候,用户可以自行关闭煤气,并通过对房间通风来解决。至此,本系统的三大模块功能和设计思路已经确立,下文将介绍整个系统的详细设计过程。并且给出设计电路。3 硬件电路设计每一个设计都要以一定的知识为基础,知识多少在一定程度上决定了设计出来的东西的好坏程度,这些知识包括硬件知识和软件知识。硬件知识用来设计硬件电路,以实现电路的放大、驱动、采集、隔离、匹配等功能。软件知识用来设计芯片处理数据的先后顺序,数据的获得途径以及对数据做怎样的处理,还有其他的一些驱动和显示功能等等。当然,在硬件电路里一些芯片是必不可少的,软件设计

27、也需要对芯片进行程序编写。本章将介绍本次设计用到的一些基本知识和主要芯片。3.1 设计使用的基本知识介绍我们在学校里学到的几乎都属于基本知识,它是指最基础的东西,我们只有掌握了它才能作更深一步飞学习。在实际的应用中,基本知识的掌握程度至关重要,他影响到应用的好坏。本设计应用到的基本的硬件和软件知识将在本节里作简单的介绍。本设计用到的硬件知识主要有:模拟电子技术、数字电子技术、单片机及其串口技术。在模拟电子技术方面,主要用来放大传感器检测信号和驱动反光二极管以及显示穿管器检测气体浓度。数字电子技术用来把模拟量转换成数字量,把从刚起检测到的模拟量转换成数字值。利用单片机实现综合控制。3.2 芯片介

28、绍及相关电路模块设计单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。ADC0809是M美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片运算放大器OP07参数通道数:1关断功能:No工

29、作电压Max. (V):36工作电压Min. (V):6每通道IQ(典型值)(mA):5带宽GBW(典型值)(MHz):0.600转换速率(典型值)(V/us):0.300输入失调电压(25)(Max.)(mV):0.150失调漂移(典型值)(uV/):0.500输入偏置电流(Max.)(pA):7000共模抑制比(Min.)(dB):100噪声电压(典型值):9.800单电源供电:No满幅:No封装/温度():PDIP-8/070描述:精密,低噪声运放3.2.1 主控电路原理主控电路中,以单片机为主体,通过分析A/D转换的得到的数字值,控制事故处理模块运行。他是系统的大脑。本次设计采用的是A

30、T89C51型单片机,AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT

31、89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3.1所示图3.1 单片机外形及引脚排列图主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路管脚说明:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外

32、部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的

33、管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚

34、 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出

35、正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部

36、程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 芯片擦除:整个PEROM阵列和三个锁定位的

37、电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 串口通讯 单片机的结构和特殊寄存器,这是你编写软件的关键。至于串口通信需要用到那些特殊功能寄存器呢,它们是SCON,TCON,TMOD,SCON等,各代表什么含义

38、呢? SBUF 数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。有朋友这样问起过“为何在串行口收发中,都只是使用到同一个寄存器SBUF?而不是收发各用一个寄存器。”实际上SBUF 包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址99H。CPU 在读SBUF 时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作SBUF寄存器的方法则很简单,只要

39、把这个99H 地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfr SBUF = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h 或at89x51.h 等头文件中已对其做了定义,只要用#include 引用就可以了。 SCON 串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。SCON 就是51 芯片的串行口控制寄存器。它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51 芯片串行口的工作状态。51 芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON 寄存器。它的各个位的具体定义如下: S

40、M0 SM1 SM2 REN TB8 RB8 TI RI SM0、SM1 为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式设置。 SM0 SM1 模式 功能 波特率 0 0 0 同步移位寄存器 fosc/12 0 1 1 8位UART 可变 1 0 2 9位UART fosc/32 或fosc/64 1 1 3 9位UART 可变 在这里只说明最常用的模式1,其它的模式也就一一略过,有兴趣的朋友可以找相关的硬件资料查看。表中的fosc 代表振荡器的频率,也就是晶振的频率。UART 为(Universal Asynchronous Receiver)的英文缩写。 SM2

41、 在模式2、模式3 中为多处理机通信使能位。在模式0 中要求该位为0。 REM 为允许接收位,REM 置1 时串口允许接收,置0 时禁止接收。REM 是由软件置位或清零。如果在一个电路中接收和发送引脚P3.0,P3.1 都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REM=0 来禁止接收,在子程序结束处加入REM=1 再次打开串口接收。大家也可以用上面的实际源码加入REM=0 来进行实验。 TB8 发送数据位8,在模式2 和3 是要发送的第9 位。该位可以用软件根据需要置位或清除,通常这位在通信协议中

42、做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。 RB8 接收数据位8,在模式2 和3 是已接收数据的第9 位。该位可能是奇偶位,地址/数据标识位。在模式0 中,RB8 为保留位没有被使用。在模式1 中,当SM2=0,RB8 是已接收数据的停止位。 TI 发送中断标识位。在模式0,发送完第8 位数据时,由硬件置位。其它模式中则是在发送停止位之初,由硬件置位。TI 置位后,申请中断,CPU 响应中断后,发送下一帧数据。在任何模式下,TI 都必须由软件来清除,也就是说在数据写入到SBUF 后,硬件发送数据,中断响应(如中断打开),这时TI=1,表明发送已完成,TI 不会由硬件清除,所

43、以这时必须用软件对其清零。 RI 接收中断标识位。在模式0,接收第8 位结束时,由硬件置位。其它模式中则是在接收停止位的半中间,由硬件置位。RI=1,申请中断,要求CPU 取走数据。但在模式1 中,SM2=1时,当未收到有效的停止位,则不会对RI 置位。同样RI 也必须要靠软件清除。常用的串口模式1 是传输10 个位的,1 位起始位为0,8 位数据位,低位在先,1 位停止位为1。它的波特率是可变的,其速率是取决于定时器1 或定时器2 的定时值(溢出速率)。AT89C51 和AT89C2051 等51 系列芯片只有两个定时器,定时器0 和定时器1,而定时器2是89C52 系列芯片才有的。 波特率

44、在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。有一些初学的朋友认为波特率是指每秒传输的字节数,如标准9600 会被误认为每秒种可以传送9600个字节,而实际上它是指每秒可以传送9600 个二进位,而一个字节要8 个二进位,如用串口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进位,9600 波特率用模式1 传输时,每秒传输的字节数是960010960 字节。51 芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M 的晶振来计算,那么它的波特率可以达到1M。模式2

45、的波特率是固定在fosc/64 或fosc/32,具体用那一种就取决于PCON 寄存器中的SMOD位,如SMOD 为0,波特率为focs/64,SMOD 为1,波特率为focs/32。模式1 和模式3 的波特率是可变的,取决于定时器1 或2(52 芯片)的溢出速率。那么我们怎么去计算这两个模 式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。 波特率(2SMOD32)定时器1 溢出速率 上式中如设置了PCON 寄存器中的SMOD 位为1 时就可以把波特率提升2 倍。通常会使用定时器1 工作在定时器工作模式2 下,这时定时值中的TL1 做为计数,TH1 做为自动重装值 ,这个定时模式下

46、,定时器溢出后,TH1 的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个定时模式2 下定时器1 溢出速率的计算公式如下: 溢出速率(计数速率)/(256TH1) 上式中的“计数速率”与所使用的晶体振荡器频率有关,在51 芯片中定时器启动后会在每一个机器周期使定时寄存器TH 的值增加一,一个机器周期等于十二个振荡周期,所以可以得知51 芯片的计数速率为晶体振荡器频率的1/12,一个12M 的晶振用在51 芯片上,那么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 波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M 的晶体振荡器也会因晶体本身

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号