资源描述
安徽理工大学毕业设计 本科毕业设计说明书基于单片机的温度控制系统THE TEMPRETURE CONTROL SYSTEM BASED ON SINGLE CHIP MICROCOMPUTER 学院(部): 电气与信息工程学院 专业班级: 电气工程及其自动化 学生姓名: 指导教师: 2013 年 05 月 25 日基于单片机的温度控制系统 摘要 本设计以AT89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路、PC机与单片机串口通讯电路和一些接口电路 。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、超温报警程。该控制系统可以实时存储相关的温度数据并记录当前的时间。系统程序主要包括主程序,读出温度子程序,计算温度子程序、按键处理程序、LCD显示程序以及数据存储程序等。关键词:AT89C51,单片机 ,DS18B20温度芯片,温度控制 46THE TEMPRETURE CONTROL SYSTEM BASED ON SINGLE CHIP MICROCOMPUTER ABSTRACTThe at89c51 monolithic integrated circuit is take as core temperature control systems principle of work and design method. The temperature signal by the temperature chip DS18B20 gathering, and transmits by digital signals way for the monolithic integrated circuit. The control systems 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 communicationIi目录摘要(中文)I摘要(英文)II1绪论11.1 中外温度控制系统的发展状况11.1.1 国外温度测控系统研究11.1.2 国内温度测控系统研究11.2 温度控制系统研究意义11.3 温度控制系统的实现方法42方案设计62.1 系统工作原理62.2 各模块设计62.2.1 温度传感器电路62.2.2 通用键盘显示电路设计82.2.3 温度控制及超温报警电路92.2.4 数模转换模块设计112.2.5 数据存储器扩展模块123硬件介绍143.1 AT89C51单片机简介143.1.1 主要特性143.1.2 管脚说明153.1.3 振荡器特性163.1.4 芯片擦除163.2 8279芯片简介173.2.1 引脚介绍173.2.2 8279的编程方法193.2.3 8279的操作213.2.4 8279 编程举例233.3 62256芯片简介253.3.1 62256 引脚功能253.3.2 62256引脚图263.4 74LS373简介273.5 DS1820简介27Ii3.5.1 DS18B20的内部结构283.5.2 DS18B20温度传感器的存储器283.5.3 DS1820使用中注意事项294软件设计314.1 程序结构分析314.2 子程序设计344.2.1 读出温度子程序344.2.2LED数码显示管程序354.2.3 键盘扫描及按键处理子程序365结束语37参考文献39致谢40ii1绪论1.1 中外温度控制系统的发展状况1.1.1 国外温度测控系统研究 国外对温度控制技术研究较早,始于20世纪70年代。先是采用模拟式的组合仪表,采集现场信息并进行指示、记录和控制。80年代末出现了分布式控制系统。目前正开发和研制计算机数据采集控制系统的多因子综合控制系统。现在世界各国的温度测控技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展。1.1.2 国内温度测控系统研究 我国对于温度测控技术的研究较晚,始于20世纪80年代。我国工程技术人员在吸收发达国家温度测控技术的基础上,才掌握了温度室内微机控制技术,该技术仅限于对温度的单项环境因子的控制。我国温度测控设施计算机应用,在总体上正从消化吸收、简单应用阶段向实用化、综合性应用阶段过渡和发展。在技术上,以单片机控制的单参数单回路系统居多,尚无真正意义上的多参数综合控制系统,与发达国家相比,存在较大差距。我国温度测量控制现状还远远没有达到工厂化的程度,生产实际中仍然有许多问题困扰着我们,存在着装备配套能力差,产业化程度低,环境控制水平落后,软硬件资源不能共享和可靠性差等缺点。 国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。随着我国经济的发展及加入WTO,我国政府及企业对此都非常重视,对相关企业资源进行了重组,相继建立了一些国家、企业的研发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。1.2 温度控制系统研究意义二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,伴随着科学技术和生产的不断发展,需要对各种参数进行温度测量。因此温度一词在生产生活之中出现的频率日益增多,与之相对应的,温度控制和测量也成为了生活生产中频繁使用的词语,同时它们在各行各业中也发挥着重要的作用。如在日趋发达的工业之中,利用测量与控制温度来保证生产的正常运行。在农业中,用于保证蔬菜大棚的恒温保产等。温度是表征物体冷热程度的物理量,温度测量则是工农业生产过程中一个很重要2i而普遍的参数。温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。 在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合。但温度是一个模拟量,如果采用适当的技术和元件,将模拟的温度量转化为数字量虽不困难,但电路较复杂,成本较高。 现代工业设计,工程建设及日常生活中温度控制都起着重要的作用,早期的温度控制主要用于工厂时间生产中,能起到实时采集温度数据,提高生产效率,产品质量之用。随着人们生活质量的提高,现代社会中的温度控制不仅应用在工厂生产方面也应用于酒店,厂房以及家庭生活中,在有些应用中,如高精度的生产厂房,对温度的要求极其严格,温度的变化极有可能对生产的产品造成极大的影响。因此,这就需要一种能够及时检测温度变化以及温度变化的设备,提供温度数据值,使人们对温度的变化做及时的调整,多点温度控制可根据人们不同的应用环境自行设置该环境的温度值,及时反映生产,生活中温度变化使人们能及时看到温度变化的第一手资料,提示人们温度变化情况,协助人们能及时的调整,起到温度报警作用,使温度控制更好的服务于社会生产,生活。 电子技术的飞速发展,给人类的生活带来了根本的的变革,特别是随着大规模集成电路的产生而出现了微型计算机,更是将人类社会带入了一个新的时代。利用微机的强大功能。人们可以完成各种各样的控制。 然而,微机造价高,对于大多数的工业控制来说,也并不需要微机那样强大的功能,于是单片机就运用而生了。单片机其实就是一个简化的微机,将微机的CPU,存储器,I/O接口。定时器/计数器等集成在一片芯片上就是单片机了,它主要用来完成各种控制功能。相对微机来说,单片机价格低,非常适合于应用在简单 的控制场合以降低成本。另外,单片机是按照工业控制要求设计的,其可靠性很高,可在工业现场复杂的环境下运行。单片机依靠其高的可靠性和极高的性价比,在工业控制,数据采集,智能化仪表,家用电器等方面得到极为广泛的应用。 温度是表征物体冷热程度的物理量,温度测量则是工农业生产过程中一个很重要而普遍的参数。温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。 在4i单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合。但温度是一个模拟量,如果采用适当的技术和元件,将模拟的温度量转化为数字量虽不困难,但电路较复杂,成本较高。 温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最基本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度湿度的检测与控制。并且随着人们生活水平的提高,人们对自己的生存环境越来越关注。而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度湿度的检测及控制就非常有必要了。 随着科技的飞速发展和普及,高性能设备越来越多,各行各业对温湿度的要求也越来越高。传统的温湿度检测模式是以人为基础,依靠人工轮流值班,人工巡回查看等方式来测量和记录环境状况信息。在这种模式下,不仅效率低不利于人才资源的充分利用,而且缺乏科学性,许多重大事故都是由人为因素造成的,人工维护缺乏完整的管理系统。而问世监控系统就可以解决这样人才资源浪费,管理不及时的问题,这是由于它的智能化设计所决定的。故本次设计对于类似项目还具有普遍意义。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算法来实现温控系统的设计。7i2方案设计2.1 系统工作原理 单片机温度控制系统是以AT89C51单片机为控制核心,辅以采样反馈电路,驱动电路,晶闸管主电路对电炉炉温进行控制的微机控制系统。系统的原理框图如图2-1所示,其基本控制原理为: 用键盘将温度的设定值送入单片机,并在LED显示,启动运行后,通过信号采集电路将温度信号采集到后,送入单片机系统进行PID 控制运算,将控制量输出,改变可控硅管的接通时间便可改变加热丝功率,以达到调节温度的目的控制电阻炉的加热。当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。 数存扩展8279AT89C51 温控电路数模转换 传感器键盘与显示 电炉 图2-1 系统原理图2.2 各模块设计2.2.1 温度传感器电路采用一线制数字温度传感器DS18B20来作为本课题的温度传感器。传感器输出信号进4.7K的上拉电阻直接接到单片机的P1.0引脚上。DS18B20温度传感器是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。本设计中温度传感器之所以选择单线数字器件DS18B20,是在经过多方面比较和考虑后决定的,主要有以下几方面的原因:(1)系统的特性:测温范围为-55+125 ,测温精度为士0.5;温度转换精度912位可变,能够直接将温度转换值以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所示。VCCP1.0321 图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转换器组成。它是电流输出型的即将输入的数字量转换成模拟电流量输出。但在单片机系统中,往往需要电压信号输出,为此,将电流输出再通过运算放大器,即可得到输出电压。+5V0832AT89C51 P0.7 - P0.0 P2.6 WRD7 ILE - D0 GNDCSXFERWR1 WR2+12V1K12V 图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的读写信号相连,低电平有效。ALEP2.7RDWRP0.0P07P2.0P2.4LE OED0 Q0- -D7 Q7CS A0OE -WE A7D0-D7A8-A12图2-8 数据存储器扩展图3硬件介绍3.1 AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash 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脚封装。DB0DB7:双向数据总线,用来传送8279与CPU之间的数据和命令。CLK:时钟输入线,用以产生内部定时的时钟脉冲。RESET:复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,RESET信号为高电平有效。CS:片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。A0:缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态, 当为低电平时,表示数据总线上为数据。RD:读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。WR:写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。RL2- 1 40 -VCCRL3- 2 39 -RL 1CLK- 3 38 -RL 0IRQ- 4 37 -CNTL/STBRL4- 5 36 -SHIFTRL5- 6 35 -SL 3RL6- 7 34 -SL 2RL7- 8 33 -SL 1RESRT- 9 32 -SL 0RD- 10 31 -OUT B0WR- 11 30 -OUT B1DB0- 12 29 -OUT B2DB1- 13 28 -OUT B3DB2- 14 27 -OUT A0DB3- 15 26 -OUT A1DB4- 16 25 -OUT A2DB5- 17 24 -OUT A3DB6- 18 23 -BDDB7- 19 22 -CSVSS- 20 21 -A0IRQ:中断请求输出线,高电平有效,在键盘工作方式下,当FIFO/传感器RAM中有数据时,此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM中还有信息,则此线重又变为高电平。在传感器工作方式中, 每当探测到传感器信号变化时,中断线就变为高电平。SL0SL3:扫描线,用来扫描按键开关,传感器阵列和显示数字, 这些可被编程或被译码。RL0RL7:回送线,经过按键或传感器开关与扫描线联接, 这些回送线内部设置有上拉电路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;无按键闭合时,均保持高电平。SHIFT:换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关时,SHIFT输入端保持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。CNTL/STB:当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平, 对于键盘输入方式,此线用作控制输入端,当键被按下时,按键位置就和控制输入状态一起被存贮起来,在选通输入方式中,作选通用,把数据存入FIFO RAM中。OUTA3OUTA0及OUTB3OUTB0:显示输出A口及B口,这两个口是164切换的数字显示。这两个端口可被独立控制,也可看成一个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 D0CNTL 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 RD1 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为键盘方式DD00 8个8位字符显示-左端传入01 16个8位字符显示-左
展开阅读全文