论文:基于单片机的温度控制系统

时间:2020-05-13 22:00:59 浏览量:

 

  本科毕业设计说明书

 基于单片机的温度控制系统 THE TEMPRETURE CONTROL SYSTEM BASED ON SINGLE CHIP MICROCOMPUTER

 学院(部):

  电气与信息工程学院

  专业班级:

 电气工程及其自动化

  学生姓名:

 指导教师:

 年

 月

 日

 基于单片机的温度控制系统

  摘要

  本设计以AT89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路、PC机与单片机串口通讯电路和一些接口电路 。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、超温报警程。该控制系统可以实时存储相关的温度数据并记录当前的时间。系统程序主要包括主程序,读出温度子程序,计算温度子程序、按键处理程序、LCD显示程序以及数据存储程序等。

 关键词:AT89C51,单片机 ,DS18B20温度芯片,温度控制

  THE TEMPRETURE CONTROL SYSTEM BASED ON SINGLE CHIP MICROCOMPUTER

 ABSTRACT

  The at89c51 monolithic integrated circuit is take as core temperature control system's principle of work and design method. The temperature signal by the temperature chip DS18B20 gathering, and transmits by digital signal's way for the monolithic integrated circuit. The control system's hardware part is introduced.Including:Temperature,examination,electric,circuit,temperature-control circuit, PC machine and monolithic integrated circuit serial port communication channel and some interface circuit. The monolithic integrated circuit through carries on corresponding processing to the signal, thus realizes the temperature control goal. In the article also emphatically introduced the software design part, uses the modular structure in here, the main module includes: Nixietube display sequence, keyboard scanning and pressed key disposal procedure, temperature signal processing procedure, black-white control procedure, excess temperature warning procedure.

  KEYWORDS:AT89C51 monolithic integrated circuit,DS1820 temperature chip,temperature control,serial port communication

 目录

 摘要(中文) I 摘要(英文) II 1绪论 1 1.1 中外温度控制系统的发展状况 1 1.1.1 国外温度测控系统研究 1 1.1.2 国内温度测控系统研究 1 1.2 温度控制系统研究意义 1 1.3 温度控制系统的实现方法 4 2方案设计 6 2.1 系统工作原理 6 2.2 各模块设计 6 2.2.1 温度传感器电路 6 2.2.2 通用键盘显示电路设计 8 2.2.3 温度控制及超温报警电路 9 2.2.4 数模转换模块设计 11 2.2.5 数据存储器扩展模块 12 3硬件介绍 14  3.1 AT89C51单片机简介 14 3.1.1 主要特性 14 3.1.2 管脚说明 15 3.1.3 振荡器特性 16 3.1.4 芯片擦除 16 3.2 8279芯片简介 17 3.2.1 引脚介绍 17 3.2.2 8279的编程方法 19 3.2.3 8279的操作 21 3.2.4 8279 编程举例 23 3.3 62256芯片简介 25 3.3.1 62256 引脚功能 25 3.3.2 62256引脚图 26 3.4 74LS373简介 27 3.5 DS1820简介 27

 3.5.1 DS18B20的内部结构 28 3.5.2 DS18B20温度传感器的存储器 28 3.5.3 DS1820使用中注意事项 29 4软件设计 31 4.1 程序结构分析 31 4.2 子程序设计 34 4.2.1 读出温度子程序 34 4.2.2 LED数码显示管程序 35 4.2.3 键盘扫描及按键处理子程序 36 5结束语 37 参考文献 39 致谢 40

 1绪论 1.1 中外温度控制系统的发展状况 1.1.1 国外温度测控系统研究

  国外对温度控制技术研究较早,始于20世纪70年代。先是采用模拟式的组合仪表,采集现场信息并进行指示、记录和控制。80年代末出现了分布式控制系统。目前正开发和研制计算机数据采集控制系统的多因子综合控制系统。现在世界各国的温度测控技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展。

 1.1.2 国内温度测控系统研究

  我国对于温度测控技术的研究较晚,始于20世纪80年代。我国工程技术人员在吸收发达国家温度测控技术的基础上,才掌握了温度室内微机控制技术,该技术仅限于对温度的单项环境因子的控制。我国温度测控设施计算机应用,在总体上正从消化吸收、简单应用阶段向实用化、综合性应用阶段过渡和发展。在技术上,以单片机控制的单参数单回路系统居多,尚无真正意义上的多参数综合控制系统,与发达国家相比,存在较大差距。我国温度测量控制现状还远远没有达到工厂化的程度,生产实际中仍然有许多问题困扰着我们,存在着装备配套能力差,产业化程度低,环境控制水平落后,软硬件资源不能共享和可靠性差等缺点。

 国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。随着我国经济的发展及加入WTO,我国政府及企业对此都非常重视,对相关企业资源进行了重组,相继建立了一些国家、企业的研发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。

 1.2 温度控制系统研究意义 二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,伴随着科学技术和生产的不断发展,需要对各种参数进行温度测量。因此温度一词在生产生活之中出现的频率日益增多,与之相对应的,温度控制和测量也成为了生活生产中频繁使用的词语,同时它们在各行各业中也发挥着重要的作用。如在日趋发达的工业之中,利用测量与控制温度来保证生产的正常运行。在农业中,用于保证蔬菜大棚的恒温保产等。

 温度是表征物体冷热程度的物理量,温度测量则是工农业生产过程中一个很重要 而普遍的参数。温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。

  在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合。但温度是一个模拟量,如果采用适当的技术和元件,将模拟的温度量转化为数字量虽不困难,但电路较复杂,成本较高。

 现代工业设计,工程建设及日常生活中温度控制都起着重要的作用,早期的温度控制主要用于工厂时间生产中,能起到实时采集温度数据,提高生产效率,产品质量之用。随着人们生活质量的提高,现代社会中的温度控制不仅应用在工厂生产方面也应用于酒店,厂房以及家庭生活中,在有些应用中,如高精度的生产厂房,对温度的要求极其严格,温度的变化极有可能对生产的产品造成极大的影响。因此,这就需要一种能够及时检测温度变化以及温度变化的设备,提供温度数据值,使人们对温度的变化做及时的调整,多点温度控制可根据人们不同的应用环境自行设置该环境的温度值,及时反映生产,生活中温度变化使人们能及时看到温度变化的第一手资料,提示人们温度变化情况,协助人们能及时的调整,起到温度报警作用,使温度控制更好的服务于社会生产,生活。

 电子技术的飞速发展,给人类的生活带来了根本的的变革,特别是随着大规模集成电路的产生而出现了微型计算机,更是将人类社会带入了一个新的时代。利用微机的强大功能。人们可以完成各种各样的控制。

 然而,微机造价高,对于大多数的工业控制来说,也并不需要微机那样强大的功能,于是单片机就运用而生了。单片机其实就是一个简化的微机,将微机的CPU,存储器,I/O接口。定时器/计数器等集成在一片芯片上就是单片机了,它主要用来完成各种控制功能。相对微机来说,单片机价格低,非常适合于应用在简单 的控制场合以降低成本。另外,单片机是按照工业控制要求设计的,其可靠性很高,可在工业现场复杂的环境下运行。单片机依靠其高的可靠性和极高的性价比,在工业控制,数据采集,智能化仪表,家用电器等方面得到极为广泛的应用。

 温度是表征物体冷热程度的物理量,温度测量则是工农业生产过程中一个很重要而普遍的参数。温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。

 在 单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合。但温度是一个模拟量,如果采用适当的技术和元件,将模拟的温度量转化为数字量虽不困难,但电路较复杂,成本较高。

 温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最基本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度湿度的检测与控制。并且随着人们生活水平的提高,人们对自己的生存环境越来越关注。而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度湿度的检测及控制就非常有必要了。 

  随着科技的飞速发展和普及,高性能设备越来越多,各行各业对温湿度的要求也越来越高。传统的温湿度检测模式是以人为基础,依靠人工轮流值班,人工巡回查看等方式来测量和记录环境状况信息。在这种模式下,不仅效率低不利于人才资源的充分利用,而且缺乏科学性,许多重大事故都是由人为因素造成的,人工维护缺乏完整的管理系统。而问世监控系统就可以解决这样人才资源浪费,管理不及时的问题,这是由于它的智能化设计所决定的。故本次设计对于类似项目还具有普遍意义。

 8051单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实力也很多。使用8051单片机能够实现温湿度全程的自动控制,而且8051单片机易于学习掌握,性价比高。  使用8051型单片机设计温湿度控制系统,可以即时精确的反应温室内的温度以及适度的变化。完成诸如升温到特定的温度、降温到特定的温度。在温度上下限范围内保持恒温等多种控制方式,在湿度控制方面也是如此。将此系统应用到温室当中无疑为植被生长提供了更加适宜的环境。对于大棚种植和花圃、花卉栽培,必须在某些特定环境安装温湿度装置对其进行监控。本系统可以及时、精确的反映室内的温度以及湿度的变化,能够满足温湿度的控制要求。

 温度控制系统广泛应用于社会生活的各个领域 ,如家电、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 , 在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。传统的继电器调温电路简单实用 ,但由于继电器动作频繁 ,可能会因触点不良而影响正常工作。控制领域还大量采用传统的PID控制方式,但PID控制对象的模型难以建立,并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。而采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。更能串接多个数字温度传感器DS18B20进行范围的温度检测。

 1.3 温度控制系统的实现方法 温度控制电路广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等,常用的控制电路根据应用场合和所要求的性能指标有所不同,传统的继电器调温电路简单实用,但由于继电器动作频繁,可能会因触点不良而影响正常工作。采用主回路无触点控制,克服继电器接触不良的缺点,且维修方便,缺点是温度控制范围小,精度不高。本文就最近几年快速发展的PID温控,模糊控制,神经网络控制在温度控制中的应用做一综述。

 模糊控制是基于模糊逻辑的描述一个过程的控制算法,主要嵌入操作人员的经验和直觉知识。它适用于控制不易取得精确数学模型和数学模型不确定或经常变化的对象。电力系统的模型通常是不完善的,即使模型已知,也存在参数变化的问题。PID控制简单、方便,但难以解决非线性和参数的变化,模糊控制不需要装置的精确模型,仅依赖于操作人员的经验和直观判断,非常容易应用。模糊温控的实现:(1)将温控对象的偏差和偏差变化率以及输出量划分为不同的模糊值,建立规则,例如,IF温度太高OR温度正在上升,THEN减少控制输入,或风冷。将这些模糊规则写成模糊条件语句,形成模糊模型。(2)根据控制查询表,形成模糊算法。(3)对温度误差采样的精确量模糊化,经过数学处理输入计算机中,计算机根据模糊规则推理做出模糊决策,求出相应的控制量,变成精确量去驱动执行机构,调整输入,达到调节温度,使之稳定的目的。同传统的PID控制比较,模糊控制响应快,超调量小,参数变化不敏感。

 人工神经网络是当前主要的、也是重要的一种人工智能技术,是一种采用数理模型的方法模拟生物神经细胞结构及对信息的记忆和处理而构成的信息处理方法。它用大量简单的处理单元广泛连接形成各种复杂网络,拓扑结构算法各异,其中误差反向传播算法(即BP算法)应用最为广泛。  温度控制系统由于负载的变化以及外界干扰因素复杂,而PID控制只能对电参数的影响做精确的计算,对于外界环境的变化只能做近似的估算,影响控制精度。人工神经网络以其高度的非线映射,自组织,自学习和联想记忆等功能,可对复杂的非线性系统建模。该方法响应速度快,抗干扰能力强,算法简单,且易于用硬件和软件实现。训练方法实际是网络的自学习过程,即根据事先定义好的学习规则,按照提供的学习实例,调节网络系统各节点之间相互连接的权值大小,从而达到记忆,联想,归纳等目的。在温控系统中,将温度的影响因素如天气、气温、外加电压、被加热物体性质以及被加热物体温度等作为网络的输入,将其输出作为PID控制器的参数,以实验数据作为样本,在微机上反复迭代,随实验与研究的进行与深入,自我完善与修正,直至系统收敛,得到网络权值,达到自整定PID控制器参数的目的。mnn(memory neuron network)在每个网络节点增加了记忆神经元,在学习动态非线性系统时,不须知道实际系统过多的结构,同时当系统滞后比较大时不会造成网络庞大难以训练。

 PID控制即比例、积分、微分控制。自19世纪40年代开始以来,广泛应用在工业生产中,长期以来,由于其结构简单、实用、价格低,在广泛的过程领域内可以实现满意的控制。温控系统将热电偶实时采集的温度值与设定值比较,差值作为PID功能块的输入。PID算法根据比例、积分、微分系数计算出合适的输出控制参数,利用修改控制变量误差的方法实现闭环控制,使控制过程连续,是很普通的调节方法。其缺点是现场PID参数整定麻烦,被控对象模型参数难以确定,外界干扰会使控制漂离最佳状态。提出一种PID参数自整定的温度控制算法,采用简化临界比例度整定法,只需整定一个参数,提高了参数的整定效率,用编程的方法实现在线参数自整定。应用这种规则的系统特点是其瞬态响应超调量小,抗干扰能力强,且振荡有足够的阻尼,具有良好的选择性和灵敏度。效果得到了改善。针对大功率二极管应用中的技术困难,提出开关型大电流双向输出模型和含PID调节器的双闭环控制。本文即采用PID算法来实现温控系统的设计。

  2方案设计 2.1 系统工作原理

  单片机温度控制系统是以AT89C51单片机为控制核心,辅以采样反馈电路,驱动电路,晶闸管主电路对电炉炉温进行控制的微机控制系统。系统的原理框图如图2-1所示,其基本控制原理为: 用键盘将温度的设定值送入单片机,并在LED显示,启动运行后,通过信号采集电路将温度信号采集到后,送入单片机系统进行PID 控制运算,将控制量输出,改变可控硅管的接通时间便可改变加热丝功率,以达到调节温度的目的控制电阻炉的加热。

 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。

 数存扩展

  8279

 AT89C51

 温控电路

 数模转换

 传感器

 键盘与显示

 电炉

  图2-1

  系统原理图 2.2 各模块设计 2.2.1 温度传感器电路 采用一线制数字温度传感器DS18B20来作为本课题的温度传感器。传感器输出信号进4.7K的上拉电阻直接接到单片机的P1.0引脚上。

 DS18B20温度传感器是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。本设计中温度传感器之所以选择单线数字器件DS18B20,是在经过多方面比较和考虑后决定的,主要有以下几方面的原因:

 (1)系统的特性:测温范围为-55℃~+125℃ ,测温精度为士0.5℃;温度转换精度9~12位可变,能够直接将温度转换值以16位二进制数码的方式串行输出;12位精度转换的最大时间为750ms;可以通过数据线供电,具有超低功耗工作方式。

 (2)系统成本:由于计算机技术和微电子技术的发展,新型大规模集成电路功能越来越强大,体积越来越小,而价格也越来越低。一支DS18B20的体积与普通三极管相差无几,价格只有十元人民币左右。

 (3)系统复杂度:由于DS18B20是单总线器件,微处理器与其接口时仅需占用1个I/O端口且一条总线上可以挂接几十个DS18B20,测温时无需任何外部元件,因此,与模拟传感器相比,可以大大减少接线的数量,降低系统的复杂度,减少工程的施工量。

 (4)系统的调试和维护:由于引线的减少,使得系统接口大为简化,给系统的调试带来方便。同时因为DS18B20是全数字元器件,故障率很低,抗干扰性强,因此,减少了系统的日常维护工作。

 DS18B20温度传感器只有三根外引线:单线数据传输总线端口DQ ,外供电源线VDD,共用地线GND。DS18B20有两种供电方式:一种为数据线供电方式,此时VDD接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,相应的完成温度转换的时间较长。这种情况下,用单片机的一个I/O口来完成对DS18B20总线的上拉。另一种是外部供电方式(VDD接+5V),相应的完成温度测量的时间较短。

 在本设计中采用外部供电方式实现DS18B20传感器与单片机的连接,其接口电路如图2-2所示。

  VCC

  P1.0 3

 2

 1

  图2-2温度传感器电路 2.2.2 通用键盘显示电路设计 如图2-3所示,ALE信号作为8279的时钟信号,从而与时钟同步。8279的中断信号IRQ接到单片机的P1.1引脚。缓冲器地址A0接到单片机的P2.5引脚,片选信号则接到单片机的P2.6引脚。读写信号分别和单片机的读写信号相连。8279的数据线D0-D7与单片机的数据线直接相连。

 8279与AT89C51的许多信号是兼容的,可直接链接,十分方便。8279的8位数据线直接连接到AT89C51的P0口。读写信号分别于89C51的读写信号相连接。AT89C51的锁存信号ALE接8279的CLK,在内部分频后产生共内部时钟信号。8279的终端请求信号经一个反相器反向后接AT89C51的P1.1.AT89C51的三个可寻址寄存器只需要两个地址,即命令/状态寄存器地址和数据寄存器地址。8279中与地址有关的信号为A0和片选信号,它们的链接情况直接决定着寄存器的地址,一旦硬件电路确定,寄存器的地址也就确定下来了。

 LED的发光效率和颜色取决于制造的材料,一般常用红色,偶尔也用黄色或绿色。发光二极管LED是智能化测量控制仪表中简单而常用的输出设备,通常用来指示机器的状态或其他信息。它的优点是耗电省,配置灵活,接口方便,价格低,寿命长,对电流电压的要求不高及容易实现多路等。

 LCD是一种被动显示器,它本身并不发光,只是调节光的亮度。目前常用的LCD是根据液晶的扭曲一向列效应原理制成的,可得到黑底白字或白底黑字的显示形式。对于采用电池供电的便携式智能化测量控制仪表,考虑到低功耗的要求,常常需要采用液晶显示器,它体积小,重量轻,功耗极低,因此在仪器仪表中的应用十分广泛。但是必须借助外来光显示。

 CRT显示器可以进行图形显示,但接口较复杂,成本也较高。

 在多路温度巡检仪中只需要显示4位数字形式的温度和路数,可以不必使用价格较高的CRT; 4位LED的工作电流为240mA左右,由于使用交流电源供电,足以提供LED显示器所需要的功率,对于LED而言,仅有4位,体积也很小,这样比较LED和 LCD的诸多特点,本系统选择 LED显示器。

 键盘是一组按键的组合,它的作用主要是控制系统的工作状态以及向系统中输入数据和命令,有编码式键盘和非编码式键盘两类。

 编码式键盘除了按键之外,还包括了产生键码的硬件电路、去抖动电路和多键、窜键保护电路。每按下一个键,能自动产生这个键的键码,与此同时,产生一个脉冲信号,通知CPU接收。这种键盘使用方便,接口程序简单,但是需要较多的硬件电路,价格较贵,一般的单片机应用系统较少采用。

 非编码式键盘仅由排成行、列矩阵形式的按键组成,按键的作用只是简单的实现接点的接通或断开,键的去抖动、键的编码的形成和键的识别等均由软件来完成。由于它经济实用,在单片机应用系统中广泛采用。

  经过以上对比,可以采用非编码式键盘。

 图2-3

 键盘与显示电路 2.2.3 温度控制及超温报警电路 AT89C51对温度的控制是通过可控硅调控器实现的。可控硅功输出与通断时间关系草图如图所示。双向可控硅管和加热丝串联接在交流220V,50Hz交流试点回路。在给定的周期T内,8031只要改变可控硅管的接通时间便可改变加热丝功率,以达到调节温度的目的。图示出了可控硅管在给定周期T内具有不同接通时间的情况。显然,可控硅在给定周期T的100%时间内接通的功率最大。

 可控硅接通时间可以通过可控硅控制板上控制脉冲控制。该触发脉冲由单片机用软件在P1.2引脚上产生,受过零同步脉冲后经光偶管和驱动器输送到可控硅的控制极上。偏差控制的原理是先求出史册炉温对所需炉温的偏差值,然后对偏差值处理而获得控制信号去调节电阻炉的功率,以实现对电阻炉的炉温控制。

 如图所示,利用电压控制信号进行移相控制的触发电路。该电路由同步电源,脉冲形成,放大和移相控制等环节组成。交流电源经同步变压器T1,D1-D4组成的桥式整流电路,以及由R1,组成的限幅电路,形成梯形电压,用它作为触发电路的同步电源,同时作为电路中放大器的电源。

 脉冲形成电路由单结晶管和半导体三极管T2等组成。Vi增大,T2的基极电位减小使其集电极电流增加,电容C1充电加快,相当于充电电阻减小,于是触发脉冲前移。可控硅导通角增大,vi减小,T2的基极电位增加使其集电极电流减小相当于充电电阻增加可控硅导通角减小。由此可见,三极管T2起了可变电阻的作用从而达到改变C1充电时间常数的目的。

 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。具体电路连接如图所示。

 电路中有一个三极管的保护电路,即将一个二极管反向接到三机管的两端。

 图2-4可控硅输出功与通断时间关系

 图2-5

  温度控制电路

  蜂鸣器

 图2-6

 超温报警电路

 2.2.4 数模转换模块设计 0832由8位数据输入寄存器,8位DAC寄存器和8位D/A转换器组成。它是电流输出型的即将输入的数字量转换成模拟电流量输出。但在单片机系统中,往往需要电压信号输出,为此,将电流输出再通过运算放大器,即可得到输出电压。

  +5V

 0832 AT89C51

  P0.7

  -

  P0.0

  P2.6

 WR D7

 ILE

  -

 D0

  GND CS

 XFER

 WR1

  WR2

  +12V

  ——

 1K

 —12V

 图2-7

  DAC0832接口电路图

 2.2.5 数据存储器扩展模块

  系统板扩展了一片32K的数据存储器62256,如图2-8所示。数据线D0-D7直接与单片机的数据地址复用口P0相连,地址的低8位A0-A7由锁存器74LS373获得,地址的高7位则直接与单片机的P2.0-P2.6相连。片选信号则由地址线A15(P2.7引脚)获得,读写信号分别于89C51的读写信号相连,低电平有效。

  ALE P2.7 RD WR

 P0.0

 P07

 P2.0

 P2.4 LE

  OE D0

  Q0 -

  - D7

  Q7

 CS

  A0 OE

 - WE

  A7

 D0 - D7 A8 - A12

 图2-8

 数据存储器扩展图

  3硬件介绍  3.1 AT89C51单片机简介 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

  3.1.1 主要特性

 ·与MCS-51 兼容

  ·4K字节可编程闪烁存储器

 ·寿命:1000写/擦循环

 ·数据保留时间:10年

 ·全静态工作:0Hz-24Hz

 ·三级程序存储器锁定

 ·128*8位内部RAM

 ·32可编程I/O线

 ·两个16位定时器/计数器

 ·5个中断源

 ·可编程串行通道

 ·低功耗的闲置和掉电模式

 ·片内振荡器和时钟电路 3.1.2 管脚说明

  VCC:供电电压。

 GND:接地。

 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写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口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

 P3口也可作为AT89C51的一些特殊功能口,如下表所示:

 管脚 备选功能

  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端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

  PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

  EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

 XTAL2:来自反向振荡器的输出。

 3.1.3 振荡器特性

 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

 3.1.4 芯片擦除

  整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

 很多初学51单片机的网友会有这样的问题:AT89S51是什么书上和网络教程上可都是8051,89C51等!没听说过有89S51 。

  这里,初学者要澄清单片机实际使用方面的一个产品概念,MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在, MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。

 有些文献甚至也将8051泛指MCS-51系列单片机,8051是早期的最典型的代表作,由于MCS-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。

 其他的公司的51单片机产品都是和MCS-51内核兼容的产品而以。同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS(菲利浦),和WINBOND(华邦)等,我们常说的已经停产的89C51指的是ATMEL公司的 AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取带了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。

 不过在市场化方面,89C51受到了PIC单片机阵营的挑战,89C51最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP功能等新功能才能更好延续MCS-51的传奇。89S51就是在这样的背景下取代89C51的,现在,89S51目前已经成为了实际应用市场上新的宠儿,作为市场占有率第一的atmel目前公司已经停产AT89C51,将用AT89S51代替。89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。89SXX可以像下兼容89CXX等51系列芯片。同时,Atmel不再接受89CXX的定单,大家在市场上见到的89C51实际都是Atmel前期生产的巨量库存而以。

 3.2 8279芯片简介 3.2.1 引脚介绍

  8279采用单±5V电源供电,40脚封装。

 DB0~DB7:双向数据总线,用来传送8279与CPU之间的数据和命令。

 CLK:时钟输入线,用以产生内部定时的时钟脉冲。

 RESET:复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序 时钟前置分频器被置为31,RESET信号为高电平有效。

 CS:片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。

 A0:缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态, 当为低电平时,表示数据总线上为数据。

 RD:读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。

 WR:写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。

 RL2-- 1 40 --VCC RL3-- 2 39 --RL 1 CLK-- 3 38 --RL 0 IRQ-- 4 37 --CNTL/STB RL4-- 5 36 --SHIFT RL5-- 6 35 --SL 3 RL6-- 7 34 --SL 2 RL7-- 8 33 --SL 1 RESRT-- 9 32 --SL 0 RD-- 10 31 --OUT B0 WR-- 11 30 --OUT B1 DB0-- 12 29 --OUT B2 DB1-- 13 28 --OUT B3 DB2-- 14 27 --OUT A0 DB3-- 15 26 --OUT A1 DB4-- 16 25 --OUT A2 DB5-- 17 24 --OUT A3 DB6-- 18 23 --BD DB7-- 19 22 --CS VSS-- 20 21 --A0 IRQ:中断请求输出线,高电平有效,在键盘工作方式下,当FIFO/传感器RAM中有数据时,此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM中还有信息,则此线重又变为高电平。在传感器工作方式中, 每当探测到传感器信号变化时,中断线就变为高电平。

 SL0~SL3:扫描线,用来扫描按键开关,传感器阵列和显示数字, 这些可被编程或被译码。

 RL0~RL7:回送线,经过按键或传感器开关与扫描线联接, 这些回送线内部设置有上拉电路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;无按键闭合时,均保持高电平。

 SHIFT:换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关时,SHIFT输入端保持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。

 CNTL/STB:当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平, 对于键盘输入方式,此线用作控制输入端,当键被按下时,按键位置就和控制输入状态一起被存贮起来,在选通输入方式中,作选通用,把数据存入FIFO RAM中。

 OUTA3~OUTA0及OUTB3~OUTB0:显示输出A口及B口,这两个口是16×4切换的数字显示。这两个端口可被独立控制,也可看成一个8位端口。

 BD:空格显示,此输出端信号用于在数字转换时将显示空格或者用显示空格命令控制其显示空格字符。

 VCC:+5V电源输入线。

 VSS:地线输入线。

 3.2.2 8279的编程方法

  1.8279可按其功能分为:键盘功能块;显示功能块;控制功能块;与CPU接口功能块控制功能块包括控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作。

 控制和定时寄存器:用于存贮来自CPU的编程命令,CPU对8279编程以确定键盘与显示器工作方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使A0=1,WR=0CS=0,并在WR上升沿把命令键存在控制和定时寄存器中,并经译码,建立适当的功能。

 定时和控制:它含基本的定时计数器,第一个计数器是一个分频系数为2-31的前置定时器,分频系数可由程序预置,使内部频率为100KHz,从而能给出5.1ms键盘扫描时间和10.3ms反跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描.行扫描.键盘阵列扫描.以及显示器扫描次数。

 扫描计数器:扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二进制计数,通过管脚SL0-SL3输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式时,扫描计数器对最低二位进行译码,SL0-SL3输出4选1的译码信号,作为显示器和键盘的译码扫描。

 键盘功能块包括:返回缓冲器,键盘反跳及控制,8x8 FIFO传感器RAM,FIFO/传感器RAM状态。

 2.返回缓冲器与键盘反跳及控制 8条返回线被返回缓冲器缓冲,在键盘工作方式中,这几条线被逐个检测,以找出该行键中闭合的键,如果反跳电路测知某键闭合,则它等待10.3ms,然后重核此键是否仍然闭合,如果仍闭合,那么该键在矩阵中的行列地址以及SHIFT和CNTL的状态一起被送到FIFORAM中,其在FIFO RAM中的数据格式如下: D7 D6 D5 D4 D3 D2 D1 D0 CNTL SHIFT SCAN RET URN 数据格式中,最高位CNTL,次高位为SHIFT状态,D5-D3来自扫描计数器,D2-D0来自返回计数器,扫描线计数器和回扫线计数器的值分别反映出被按下键的行.列的值,如果在传感器阵列中,返回线上的数据直接进入传感器RAM中相应于阵列中正被扫中的那行,这样每个开关位置就直接反映为一个传感器RAM的位置。

 FIFO/传感器RAM 一个8x8 RAM,在键盘方式和选通方式中它是一个先入先出(FIFO)存贮器,每一条新的信息顺次写入,然后又按写入顺序读出,在传感器阵列扫描方式时,存贮器作为传感器RAM,这时RAM中的各行存着传感器阵列中相应行的状态。

 FIF0/传感器RAM状态 在键盘或选通方式中,FIFO状态跟踪FIFO中字符数量注意它是"满"还是"空",写入或读出过多均被认作出错,当FIFO非空时,状态逻辑提供一个中断申请IRQ信号,在传感器阵列扫描方式中,若测知某一传感器变化时,IRQ则为有效高电平.FIFO状态字的低3位表示FIFO中的字符数,F表示FIFORAM已满;O(over mn)表示越限错误,即试图向已满的FIFO送另一字符;U(Under done)表示取空错误,即试图读取已空的FIFO.S/F有两种含义:在传感器扫描方式时,S/F表示在传感器RAM中至少包含了一个传感器闭合指示,在特殊错误方式时S/F位是出错标志,用来指示是否发生了多路同时闭合错误,Du位表示由于 CLEAR DISPLAY或CLEAR ALL命令尚末完成其消除操作而使显示RAM尚不可用。

 3.显示功能块包括:显示寄存器,16X8显示RAM,显示地址寄存器 显示RAM和显示寄存器 8279内部有16X8的显示RAM,通过显示寄存器和两个四位端口0UT A0-3,0UT BO-3来刷新显示,显示器可以是白炽灯,也可以是8段数码管,显示RAM可以是16X8的形式,也可以构成两个16x4的RAM形式,显示RAM可由CPU进行读写,被读写的RAM字节地址由显示地址寄存器指示.显示地址寄存器保存当前CPU读或写的那个RAM地址,以及正显示着的那两个4位半字节的地址,读写地址由CPU命令编程,也可置为每次读写后地址自动加1的工作方式,在设置了正确的工作方式后,显示RAM可直接由CPU读出,半字节A和半字节B地址自动由8279更新,以适应由CPU送入的数据,A和B半字节可独立送入,也可作为一个字送入,随CPU所设置的工作方式而定。

 3.I/O 接口功能块 8279通过数据缓冲器与I/O控制,使8279与CPU系统总线接口,I/O控制部分用CS.A0.RD和WR四条线控制CPU与8279之间的数据交换,数据缓冲器是数据交换的双向通道,控制信号与数据交换间的逻辑关系见下表: CS A0 WR RD 1 0 CPU从8279读状态 0 1 0 1 CPU向8279写状态 1 0 CPU从8279读数据 0 0 1 CPU向8279写数据 1 X X X 数据缓冲器输出呈三态 x为任意数(0或1) 3.2.3 8279的操作

  由前所述,8279可适应各种键盘和显示器的不同工作方式,这是由于8279内的各功能块的工作是可程控的,用户可根据自己的要求,利用向8279写命令字的方法对8279的工作方式等进行编程,从上表可见,只要同时使CS=0 WR=0A0=1,则可向8279写命令字,并在wR的上升沿把命令打入8279。

 对CPU而言,8279只有两个口地址,一个用于读写命令和状态(CS=0,A0=1),一个用于读写数据(CS=0,A0=0)但用于编程命令字却有多种,在8279中用于区别各种不同命令字的方法是命令字代码的高3位(D7,D6,D5,)编码而低5位是命令字的真正内容 1.8279的编程命令 a.键盘/显示器方式设置 最高位 最低位 命令代码 0 0 0 D D K K K 其中DD为显示方式,KKK为键盘方式 DD 00 8个8位字符显示--左端传入 01 16个8位字符显示--左端送入 10 8个8位字符显示--右端送入 11 16个8位字符显示--右端送入 所谓左端送入是显示器根据用户送的先后,从左端一位开始,向右逐位排列,到最右端一位之后,下一位再从最左端显示,在这种显示方式中,显示器的每个显示管和8279中的显示RAM单元一一对应,RAM中的O地址对应最左面的显示字符,而15号单元对应最右端的显示字符而右端送入方式是电子计算器中常用的显示方式,第一个送入的数在最右端的显示字符上,而以后每送 入一个新数,显示先左移一位然后把送入的数仍放在最右端显示字符上。

 K K K 0 0 0 编码扫描键盘--2键连锁 0 0 1 译码扫描键盘--2键连锁 0 1 0 编码扫描键盘--N键巡回 0 1 1 译码扫描键盘--N键巡回 1 0 0 编码扫描传感器阵列 1 0 1 译码扫描传感器阵列 1 1 0 选通输入,编码显示扫描 1 1 1 选通输入,译码显示扫描 其中2键连锁和N键巡回是8279对键盘中被按下键的两种处理方式,编码扫描和译码扫描是SL0-SL3 对链盘和显示器的两种扫描形。

 b.程序时钟 命令代码 0 0 1 P P P P P 此命令确定定时和控制中的前置定标器的分频系数,代码PPPPP可形成2-31的数,前置定标器可对外部时钟分频,以得到内部基频,选基频为100KHZ,可得到前面规定的扫描和反跳时间,则分频系数为;外部时钟100KHZ复位脉冲过后若无代码送入则自动为31。

 c.读FIF0/传感器RAM 命令代码:0 1 0 AI X A A A X=任意 此命令用于确定CPU读操作的对象是8279中的FIF0/传感器 RAM,并确定8个 RAM 字节中哪一个被读,其中 AAA表示CPU要读的行,AI为自动加1特征位,在键盘扫描方式中这两者互不相干,对随后的每次读取8279都按照数据第一次进入的FIF0的同一顺序自动送出数据,所有随后发生的读,都是读自FIFO,直到写入新命令为止.在传感器阵列方式中,AAA选择传感器RAM 8行中的一行若AI=1,则下一次读取便读自传感器RAM中的下一行。

 d.读显示器RAM 命令代码:0 1 1 AI A A A A CPU对8279写此命令,则确定了 CPU 以显示器 RAM为数据源进行读操作,其中AAAA为显示器RAM的地址,AI 为自动加1特征位,若AI=1,则每读一行RAM之后,行地址自动加1。

 e.写显示器RAM 命令代码: 1 0 0 AI A A A A CPU向8279写此命令,规定了下一步要对8279的显示RAM进行写,寻址方式和自动加1功能均与读显示器RAM相同。

 f.显示器写入禁止/空格 命令代码: 1 0 1 X IW IW BL BL X=任意 A B A B 此命令用于屏蔽A或B端口输出及使显示器显示空格,如果显示器用作双排4位显示,则必须把其中一个4位屏蔽掉这样CPU送入显示器的信息就不会影响另一半,IW为屏蔽特征位,若对某一端口设置IW=1,则该端口就被屏蔽,有必要注意的是:B0与D0对应,BL为显示空格标志位,若某一端口的BL置1,则此端口显示空格.当要使一个单8位输出格式的显示器空格时,则必须使两个BL标志全都置位,以使显示完全空格。

 g. 消除 命令代码: 1 1 0 CD CD CD CF CA 此命令用于按一定格式清显示器RAM的FIF0状态,其中CD规定清除格式: CD CD CD 0 X 全"0"(x为任意) 1 0 AB =16 进制 1 0 20(0 O 1 0 0 0 0 0) 1 1 全册"1" 当为"1"时允许清除显示器(或用CA=1) CF清除FIFO状态(包括中断),若CF=1,则清除FIF0状态,并对中断线复位自传感器RAM的指示器亦被置于0行CA为总清,其效果相当于CD和CF的合成,当CA=1时,利用CD指示的清除格式清除显示器RAM,并清除FIF0状态,C孔也使内部定时重新同步.在显示器RAM被清除期间(约16us)不能写入,同时在此期间FIFO的最高有效位被置"1"当显示RAM再度变为可用时即自动复位。

 h. 中断结束/出错方式设置 命令代码: 1 1 1 E X X X X X=任意 在传感器阵列方式时,此命令使IRQ线变低,并允许对RAM再写(检测到一个传感器位变化时,IRQ线可能已升高了,因此这样做可阻止在其复位以前把信息再度写入RAM).在N键巡回工作方式,若E位被编程为"1",则芯片电路将在特殊出错方式下运行。

 在N键巡回方式的特殊出错方式下主要用于检查键的多重按下,若在一个回弹周期中发现两个键被按下,即可看成同时多重按下,并建立出错标志,阻止任何对FIF0的进一步写入,同时设置中断(如中断尚末设置的话),在此方式中,可用读 FIFO 状态字命令读出错误标志,而发CF=1的清除命令,可使出错标志复位。

 3.2.4 8279 编程举例

  通用键盘显示接口板,能直接挂在Z80.8031.6502总线上编程方法全部相同,通常可按下列顺序: 设定分频系数(复位后分频系数为31);选择键盘/显示工作方式;消除显示 RAM 和 FIF0 状态;将显示的数据写入显示RAM中…… 下面用8031汇编程序对8279初始化 ORG 0000H MOV DPTR,#7000H ; 指向8279数据口 INC DPTR ; 指向8279控制口 MOV A, #00H ; 设定8279工作方式 M0VX @DPTR,A MOV A , #0GFH ; 清除8279内部显示RAM状态 MOVX @DPTR, A MOV A , #22H MOVX @DPTR , A ; 设定8279分频系数 LOOP:MOVX A , @DPTR JB ACC.7 , LOOP ; 显示RAM清除完毕吗? MOV A , 80H ; 指向第一位数码管 MOVX @DPTR , A MOV A , 9FH ; 输出"1"一个字形 MOV DPTR ,#7000H MOVX @DPTR , A INC DPTR LOOP1:M0VX A , @DPTR AND A , #07H CJNE A , #00H,L00P2 AJMP LOOP1 ; 无键按下转 LOOP2:MOV DPTR ,#7000H ;有键按下将键值送累加器AMOVX A , @DPTR 键值由8279的行扫描信号(SL0-SL3)与列信号(RL0-RL7)组成,不同组合的矩阵将得到不同键,但在同一矩阵中不会有相同的键值,这对初学者编制键显示程序大为方便.下表是通用键盘板键值: 名称 0 1 2 3 4 5 6 7 8 9 键值 C1 C8 C9 D0 D8 E0 C2 CA D1 D9 名称 A B C D E F LAST NEXT EXEC 键值 DA C3 CB D2 D3 DB E3 E2 E1 字形,与数码管的极性.连接方式有关,8279上一般选用共阴极数码管,通用键盘板字形代码如下: 字形 0 1 2 3 4 5 6 7 代码 0C 9F 4A 0B 99 29 28 8F 字形 8 9 A B C D E F 代码 08 09 88 38 6C 1A 68 F8 要点亮一个数码管必须选通位和字形,键盘显示板的8个数码管的位地址如下: 数码管 LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8 位地址 80 81 82 83 84 85 86 87 3.3 62256芯片简介 62256是32K的低功耗静态RAM存储器. 用P0和P2来扩展外部ram(就是用P0和P2与62256对应的管脚相连接),假设P3.6接WR,P3.7接RD,P2.7接CS,那么就可以确定外部RAM的一个地址,想往外部RAM的一个地址写一个字节时,地址可以定为XBYTE [0x8000],其中WR,CS为低,RD为高,那就是(也就是P2.7和P3.6输出了低电平,而P3.7输出了高电平,目的当然是要选通62256并且向62256写入数据),其它位的可以根据情况自己定(也就是其它位是什么不打紧,关键就是控制wr,cs,rd的那几个位要符合选通,读,写的规定就可以了),现在我们向62256中写个26进去就可以使用这条语句:XBYTE [0x8000] = 26 MCS-51单片机系统扩展时,一般使用P0口作为地址低8位(与数据口分时复用),而P2口作为地址高8位,它共有16根地址总线,寻址空间为64KB。

 3.3.1 62256 引脚功能 A0 – A14             地址总线(Address) D0 /D7                输入/输出口(nput/output)

  CS                      端口选择(Chip select)

  WE                      输入始能(Write enable)

  OE                      输出始能(Output enable)

  VCC                   电源始能(Power supply)

  VSS                   接地(Ground) Program:读写操作 #include <reg51.h> #include <absacc.h> #define ramaddress

 XBYTE[0X0000] //外部存儲器地址 unsigned char sum; void main() {

 unsigned char xdata *pt;//外部存儲器類型指針

 unsigned char i,sumtemp;

  pt=&ramaddress;

 //首地址

 P1=0x0f;

 for(i=0;i<20;i++)

 {

  *(pt+i)=i+1; //write外部存儲器操作

 }

 sum=0;

 for(i=0;i<20;i++)

 {

  sumtemp=*(pt+i);//read外部存儲器操作

  sum=sum+sumtemp;

 }

 P1=sum;

  //read結果在P1口 display.

 3.3.2 62256引脚图

 3.4 74LS373简介 八 D 锁存器(3S,锁存允许输入有回环特性) 简要说明:

 373为三态输出的八 D 透明锁存器,共有 54S373 和 74LS373 两种线路 结构型式,其主要电器特性的典型值如下(不同厂家具体值有差别):

 型号 TPD  PD 54S373/74S373 7ns 525mW 54LS373/74LS373 17ns 120mW 373 的输出端 Q0~Q7 可直接与总线相连。

 当三态允许控制端 OE 为低电平时,Q0~Q7为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,Q0~Q7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。

 当锁存允许端 LE 为高电平时,Q 随数据 D 而变。当 LE 为低电平时,D 被锁存在已建立的数据电平。当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV。

 引出端符号:

 D0~D7 数据输入端 OE 三态允许控制端(低电平有效) LE 锁存允许端 Q0~Q7 输出端 3.5 DS1820简介

  新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

 DS18B20、 DS1822 “一线总线”数字化温度传感器 同DS1820一样,DS18B20也 支持“一线总线”接口,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。DS1822的精度较差为± 2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。

 DS18B20、 DS1822 的特性 DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822与 DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。

 继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。

 3.5.1 DS18B20的内部结构 DS18B20内部结构主要由四部分组成:

 64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

 DS18B20的管脚排列如下 DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。

 例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。

 3.5.2 DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。

 暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。

 该字节各位的意义如下:

 TM R1 R0 1 1 1 1 1 低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位) 分辨率设置表: R1 R0 分辨率 温度最大转换时间 0 0 9位 93.75ms

  0 1 10位 187.5ms

  1 0 11位 375ms

  1 1 12位 750ms

  根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

 3.5.3 DS1820使用中注意事项 DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:

 (1) 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送。

 因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。

 (2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。

 (3)连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。

 (4)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。

  4软件设计

  在微机测控系统中,软件的重要性与硬件设置同样重要。硬件是躯体,软件是灵魂,当系统的硬件电路确定之后,系统的主要功能还要靠软件来实现。如果说硬件决定了产品的造价,那么在硬件搭配合理的前提下软件在很大程度上就决定了产品的性能。

 为了满足系统的要求,编制软件时必须符合以下基本要求: 易理解性、易维护性。通常是指软件系统容易阅读和理解,容易发现和纠正错误,容易修改和补充。由于生产过程自动化程度的不断提高,测控系统的结构日趋复杂,设计人员很难在短时间内就对整个系统理解无误,软件的设计与调试不可能一次完成,有些问题是在运行中逐步暴露出来,这就要求编制的软件容易理解和修改。在软件的设计方法中,结构化设计是最好的一种设计方法,这种设计方法是由整体到局部,然后再由局部到细节,先考虑整个系统所要实现的功能,确定整体目标,然后把这个目标分成一个个的任务。任务中可以分成若干个子任务,送样逐层细分,逐个实现。本仪表就是采用这种模块化的设计方法。这样不但使得设计目标明确、思路清晰,而且在检错、调试时也很方便。当出现问题时,可以根据问题的种类和现象来判断是哪一部分出的问题,很容易找出故障所在和故障原因。同时,采用模块化程序结构设计方案,对于系统功能的扩充和修改也提供了很大的方便。

  实时性。实时性是本系统的基本要求。即要求系统及时响应外部事件的发生,并及时给出处理结果。近年来,由于硬件的集成度与速度的提高,配合相应的软件,实时性容易满足要求,特别是对于汇编语言编制的软件。

  可测试性。系统软件的可测试性具有两方面的含义:其一是指比较容易地制定出测试准则,并根据这些准则对软件进行测定;其二是软件设计完成后,首先在模拟环境下运行,经过静态分析和动态仿真运行,证明准确无误后才可投入实际运行。

  准确性。准确性对整个系统具有重要意义。系统要进行大量运算,算法的正确性和准确性问题对控制结果有直接影响,因此在算法选择、位数选择方面要适合要求。

  可靠性。可靠性是系统软件最重要的指标之一,它要求两方面的意义:第一是运行参数环境发生变化时,软件都能可靠运行并给出正确结果,也就是要求软件具有自适应性:第二是在环境恶劣干扰严重情况下,软件必须保证也能可靠运行,这对整个系统尤为重要。

 4.1 程序结构分析

  主程序调用了4个子程序,分别是温度传感器读取程序,数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序。

 键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及进入相应的程序。

 温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。

 数码管显示程序:向数码的显示送数,控制系统的显示部分。

 程序结构

 LED数码显示管显示程序

 键盘扫描及按键处理程序

 温度传感器读取温度程序

  温度处理程序

  图4-1

 程序结构图

  开始

 温度显示

 读取传感器温度

 系统初始化

 是否超过上下限 是

 报警电路

 否

  是

 是否有按键

 否

 按键处理

 比较设置温度值与当前温度值大小

 温度控制

              

 图4-2  系统主程序图

 4.2 子程序设计 4.2.1 读出温度子程序 读出温度子程序的主要功能包括初始化,判断DS18B20是否存在,若存在则进行一系列的读操,作若不存在则返回。

    开始

 是 否   返回    读取温度值   存储操作指令   ROM操作指令 DS1820存在?    初始化

                图4-3

  读温度流程图

 4.2.2 LED数码显示管程序 Y N  返回 送完4个数据?   显示缓冲区指针加1 取显示数据查七段码表,并将查的七段码送8279的段数据出口,显示  显示缓冲区指针置初值  开始

           图4-4   显示子程序流程图

  4.2.3 键盘扫描及按键处理子程序   开始

 Y N 执行其他程序

  延时20ms 有键闭合

  Y

  有键闭合 N

 N

 N

 是不是相同键

 Y

   逐行扫描键盘

  N

 找到闭合键

 Y

                

  Y N  返回    查表得键码 延时20ms,消除释放抖动 键已释放?    形成键值

  图4-5  键盘处理程序5结束语 在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度范围内变化,稳定性好,不振荡,对系统的快速性要求不高。在论文中简单分析了单片机温度控制系统设计过程及实现方法。温度检测系统根据用户设定的温度范围完成一定范围的温度控制。

 通过此次毕业论文的课题设计,我们学会了怎样把所学的书本知识应用于实践中去,并学会了如何去思考整个控制系统的软硬件设计。实践过程中我们遇到了一些困难,但在解决问题的过程中,我们学会了怎样发现问题、分析问题,进而解决问题。此次课程设计不仅增强了我们学习专业课的兴趣,而且给了我们勇气和信心,更重要的是它为我们以后的学习指明了方向。

 参考文献 [1] 蔡振江.单片机原理与应用. 北京:电子工业出版社,2008. [2] 赖寿宏.微型计算机控制技术. 北京:机械工业出版社.2003. [3] 王毓银主编.数字电路逻辑设计.北京:高等教育出版社,1999. [4] 清源计算机工作室编著.Protel 99原理图与PCB及仿真. 北京:机械工业出版社,2008. [5] 索雪松等.传感器与信号处理电路.北京:中国水利水电出版社,2008. [6] 李华等.单片机实用接口技术. 北京:北京航空航天大学出版社,2002. [7] 陆子明.单片机设计与应用基础教程.北京:北京国防工业出版社,2005. [8] 孙炳达.自动控制原理.北京:机械工业出版社,2008. [9] 沙占友.王晓君.数字化测量.北京:机械工业出版社,2009. [10] 李广弟.单片机基础.北京:北京航空航天大学出版社,2001. [11]曹巧媛主编. 单片机原理及应用(第二版). 北京:电子工业出版社,2002. [12]全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编(2001),北京:北京理工大学出版社,2003. [13]何力民编. 单片机高级教程.

 北京:北京航空大学出版社,2000. [14]金发庆等编. 传感器技术与应用.北京机械工业出版社,2002. [15]王锦标,方崇智.过程计算机控制.北京:清华大学出版社,1997. [16]邵惠鹤.工业过程高级控制.上海:上海交通大学出版社,1997. [17]胡寿松.自动控制原理.北京:国防工业出版社,2000. [18]刘伯春.智能PID调节器的设计及应用.电子自动化,1995. [19]Katsuhiko Ogata.Moden Control Engineering.Publishing house of electronics industry,2000:1 96—202. [20] Microchip 24C01B/02B 8 位PIC®单片机产品手册[ED/OL]. [21]Borko H,Bernier C L.Indexing concepts and methods .New York:Academic . [22]Dallas products data Book[M],1999. [23]Maxim products data Book[M],2001. [24]Shao Jianlong, He Chun. Design of a Portable Popular Multifunctional Development System for 8051 Single-chip Microprocessor Family [J]. Computer Engineering and Applications, 2003.13.

 致谢   三年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。在这三年的求学生涯中师长、亲友给与了我大力支持,在这个翠绿的季节我将迈开脚步走向远方,怀念,思索,长长的问号一个个在求学的路途中被知识的举手击碎,而人生的思考才刚刚开始。感谢我教书育人的老师,我不是你们最出色的学生,而你们却是我最尊敬的老师。大学时代的老师治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了对待知识,走向社会的思考方式。在这里尤其要感谢XX老师,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。

 

推荐访问:单片机 控制系统 温度

《论文:基于单片机的温度控制系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:

文档为doc格式

一键复制全文 下载 投诉