XXXX大学
毕业设计说明书
毕业生姓名 : 专业 : 学
号 :
指导教师 :
所属系(部) : 信息工程与自动化系
二〇 年 月
XXXX大学
Ⅰ
毕业论文评阅书
题目:
基于单片机的水温控制系统设计
信息工程与自动化 系 自动化 专业 姓名 设计时间:
评阅意见:
成绩:
指导教师: (签字)
职 务:
20 年 月 日
XXXX大学
毕业论文答辩记录卡
信息工程与自动化 系 专业 姓名
答 辩 内 容
问 题 摘 要 评 议 情 况 记录员: (签名)
成 绩 评 定
指导教师评定成绩 答辩组评定成绩 综合成绩 注:评定成绩为100分制,指导教师为30%,答辩组为70%。
专业答辩组组长: (签名)
20 年 月 日
摘 要
随着经济的快速发展,人们对各种家用电器和工业设备的温度控制提出更高的要
求,信息化、智能化成为温度控制系统的发展趋势,基于单片机的数字式温度控制系统成为最好的选择。采用单片机控制具有控制简单、软件编程灵活、方便等优点,改善了温度控制系统的技术指标,从而提高产品的质量和销量。本设计是用于热水器和饮水机等家用电器中的温度控制系统,采用单片机AT80C51作为控制核心,使用单总线温度转换芯片DS18B20采集温度,4个按键实现人工设定温度,3个数码管实时显示温度,继电器控制加热,各种运行状态由相应的指示灯进行显示,如:温度设置、加热、停止加热等。整个系统用汇编语言编程实现逻辑控制。本系统安全、可靠、使用方便,而且成本低,有较好的应用前景。
关键词: 温度控制;单片机;数码管显示;单总线;DS18B20
ABSTRACT
As the national economy and the development of the domestic industry ,people need the temperature control on a variety of household appliances and industrial equipment,Using SCM to control them is not only simple control, convenience and flexibility advantages, but also can significantly improve the temperature was charged with technical indicators, which can greatly enhance the quality and quantity of the product. At present, most of the temperature control system used by the analog temperature sensor, multi-channel analog switches, A/D converter and single-chip, such as the transmission system. Water temperature control is widely used in industry and daily life, more classification, water temperature control system to control a different approach.
The system design can be used for drinking water heater temperature control systems and other electrical circuits.This design uses a microcontroller as the core of the control of water temperature control system, to achieve the artificial setting temperature, automatic temperature control, and display real-time water temperature and other functions. AT80C51 microcontroller as the core of it, through the three temperature digital display and 4 keys to achieve man-machine dialogue, the use of single-chip bus temperature conversion temperature DS18B20 real-time acquisition and through the digital display and offers a variety of operating light to indicate system now live in the state, such as: temperature setting, heating, and stop heating, the entire system through the four buttons to set the heating temperature and control the operating mode.
key words:Temperature control;Microcontroller;digital display;single bus; DS18B20
II
目 录
摘 要..................................................................... III ABSTRACT .................................................................... II 第一章 绪 论 ................................................................ 3
1.1 课题研究的意义 ....................................................... 3 1.2 课题研究的背景 ....................................................... 4 1.3 单片机的发展趋势 ..................................................... 5 第二章 设计方案的选择 ....................................................... 7
2.1 系统应实现的功能 ..................................................... 7 2.2 各模块方案的选择 ..................................................... 7
2.2.1 控制模块方案的选择 ............................................. 7 2.2.2 温度采集模块方案的选择 ......................................... 8 2.2.3 键盘模块方案的选择 ............................................. 9 2.2.4 显示模块方案的选择 ............................................ 10 2.2.5 加热模块方案的选择 ............................................ 12
第三章 硬件电路设计 ........................................................ 13
3.1 硬件总体设计 ........................................................ 13 3.2 主要元器件 .......................................................... 13
3.2.1 主控制器AT80C51 .............................................. 13 3.2.2 温度传感器DS18B20 ............................................ 18 3.2.3 继电器 ........................................................ 24 3.3 各功能模块电路设计 .................................................. 25
3.3.1 单片机最小系统设计 ............................................ 26 3.3.2 温度采集电路的设计 ............................................ 27 3.3.3 键盘电路的设计 ................................................ 28 3.3.4 显示电路的设计 ................................................ 29 3.3.5 电源电路的设计 ................................................ 30 3.3.6 加热电路的设计 ................................................ 31 3.3.7 报警电路的设计 ................................................ 32 3.4 系统硬件总图 ........................................................ 33 第四章 系统软件设计 ........................................................ 34
4.1 软件总体设计 ........................................................ 34 4.2 各个模块的流程图 .................................................... 36
4.2.1 读取温度DS18B20模块流程 ...................................... 36 4.2.2 键盘扫描处理流程 .............................................. 38 4.2.3 报警处理流程 .................................................. 39
第五章 系统调试 ............................................................ 40
5.1 硬件调试 ............................................................ 40 5.2 软件调试 ............................................................ 40 5.3 操作说明 ............................................................ 40 5.4 社会效益 ............................................................ 41 5.5 经济效益 ............................................................ 41 结束语...................................................................... 43
i
参考文献 .................................................................... 44 附录1:系统硬件总图 ........................................................ 46 附录2:系统源程序 .......................................................... 47 附录3:外文资料原文 ........................................................ 56 附录4:外文资料译文 ........................................................ 60 致 谢...................................................................... 64
ii
第一章 绪 论
1.1 课题研究的意义
温度控制无论在工业生产过程中,还是在日常生活中都起着非常重要的作用,过低的温度或过高的温度都会使水资源失去应有的作用,从而造成水资源的巨大浪费。特别是在当前全球水资源极度缺乏的情况下,我们更应该掌握好对水温的控制,把身边的水资源好好地利用起来,所以我们必须能实时获取水温变化,对于超过适宜范围的温度能够报警。同时,我们也希望在适宜温度范围内,水温可以由人们根据实际情况加以改变。
传统的水温控制系统大多采用由模拟温度传感器、多路模拟开关、A/D转换器及单片机组成的控制系统。这种系统相当复杂,需要布置大量的测温电缆,才能把现场传感器的信号送到采集卡上,安装和拆卸复杂,成本也高。同时线路上传送的是模拟信号,易受干扰和损耗,线性度和准确度都不理想,不利于控制者根据温度变化及时做出决定。在这样的形式下,开发一种实时性高、精度高,能够综合处理多点温度信息的系统就很有必要。
近年来,作为高新技术之一的单片机以其体积小、价格低、功能强、使用方便、本身的指令系统等诸多优势等,在实时控制、自动测试、智能仪表、计算机终端、遥测通讯、家用电器等许多方面得到了广泛的应用。用单片机对温度进行实时检测和控制来解决工业及日常生活中对温度的及时自动控制,是现代温度控制系统发展的趋势。
本次设计为一个基于单片机的水温度控制系统,该系统可以实时检测水温,并且可以通过数码管显示水温度数,可以通过键盘或开关选择制冷或加热,可以人为设置水的温度的上下限,如加热,当温度在设定的范围内时正常工作,当低于水温下限时控制加热器加热,当温度高于水温上限时停止加热,当温度超过设定值时具有示警功能。该系统可用作工厂、学校等场所的温度检测设施,由人工设定温度,有很好的实用价值,控制系统不仅可用于控制水温,还可应用到对温度有一定要求的其它领域,也为今后水温控制技术的发展探索了一条行之有效的道路,具有广阔的发展空间。
3
1.2 课题研究的背景
目前,温度控制系统在国内各行各业的应用虽然已经十分广泛,国外温度控制系统正朝着高精度、智能化、小型化等方向快速发展,装备有完善的检测仪表和计算机控制系统。
从国内生产的温度控制器来讲,总体发展水平仍然不高,同国外的日本、美国、德国等先进国家相比,仍然有着较大的差距。目前,我国在这方面的总体技术水平处于国外20世纪80年代中后期水平。成熟产品主要以“点位”控制及常规的PID控制器为主,它只能适用于一般温度控制系统,难于控制滞后、复杂、时变温度系统。适用于较高控制场合的智能化、自适应控制仪表国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。我国温度控制系统的发展大致经历了三个阶段。
第一阶段:基地式仪表。上世纪四十年代初,当时由于石油、化工、电力等工业对自动化的需要,出现了将测量、记录、调节仪表组装在一个表壳里的基地式仪表,如自力式温度调节器。基地式仪表一般结构简单,价格低廉,它们的功能仅限于单回路控制且控制精度低。
第二阶段:单元组合式仪表。随着大型工业企业的出现,生产向综合自动化和集中控制的方向发展,人们发现基地式仪表的结构不够灵活,不如将仪表按功能划分,制定若干种能独立完成一定功能的标准单元,各单元之间以规定的标准信号相互联系,这样可以提高仪表的精度。在使用中,可根据需要,选择一定的单元,积木式地把仪表组合起来,构成各种复杂程度不同的自动控制系统,这种积木式的仪表就称为单元组合式仪表。
以上两个阶段,无论是基地式仪表阶段,还是单元组合式仪表阶段,都是利用各种仪表对温度进行检测、调节、控制。对于较复杂的系统,难以实现复杂的控制规律,控制精度不高。
第三阶段:微机控制阶段。随着微电子技术的发展、大规模集成电路制造的成功、微处理器的问世、计算机性能价格比的明显提高以及微型计算机在工业控制领域中的应用,使得温度控制系统发展到微机控制阶段。微机控制系统取代模拟控制系统,克服了其调节精度差、可靠性不高的缺点。由于计算机具有高速的数据运算处理功能和大容里存贮信息的能力,使此类系统稳定可靠、维护方便、
4
抗干扰能力强,而且可以采用先进的控制算法以进一步提高控制性能。 1.3 单片机的发展趋势
单片机是专门为嵌入式应用设计的,早期虽然有通用计算机改装而成的嵌入式计算机系统,而真正意义上的嵌入式系统始于单片机的出现。单片机只能实现嵌入式应用,也能最好地满足嵌入式应用的环境要求,例如,芯片级的物理空间、大规模集成电路的低价位、良好的外围接口总线和突出控制功能的指令系统。
单片机有计算机系统内核,嵌入到电子系统中,为电子系统智能化奠定了基础。因此,当前单片机在电子系统中的广泛使用,使经典电子系统迅速过渡到智能化的现代电子系统。
嵌入式系统源于计算机的嵌入式应用,早期嵌入式系统为通用计算机经改装后嵌入到对象体系中的各种电子系统,如舰船的自动驾驶仪、轮机监测系统。嵌入式系统首先是一个计算机系统,其次它被嵌入到对象体系中,在对象体系中实现对象要求的数据采集、处理、状态显示、输出控制等功能,由于嵌入在对象体系中,嵌入式系统的计算机没有计算机的独立形式及功能。单片机完全是按照嵌入式系统要求设计的,因此单片机是最典型的嵌入式系统。早期的单片机只是按嵌入式应用技术要求设计的计算机单芯片集成,故名单片机。随后,单片机为满足嵌入式应用要求不断增强其控制功能与外围接口功能,尤其是突出控制功能,因此国际上已将单片机正式命名为微控制器(MCU,Microcontroller Unit)。
单片机是器件级计算机系统,它可以嵌入到任何对象体系中去,实现智能化控制。集成器件级的低价位,低到几元、十几元,足以使单片机普及到许多民用家电、电子玩具中去,单片机构成的现代电子系统已深入到各家各户,正改变我们的生活,如家庭中的音响、电视机、洗衣机、微波炉、电话、防盗系统、空调等。单片机革新了原有电子系统,如微波炉采用单片机控制后,可方便地进行时钟设置、程序记忆、功率控制;空调机采用单片机后不但遥控参数设置方便,运行状态自动变换,还可实现变频控制。目前许多家用电器如VCD、DVD只有单片机出现后才可能实现其功能。
目前电子元器件产业除了微处理器、嵌入式系统器件外,大多是围绕现代电子系统配套的元器件产业,例如满足人机交互的按键,LED/LCD显示驱动、LED/LCD显示单元、语音集成器件等,满足数据采集通道要求的数字传感器、
5
ADC、数据采集模块、信号调理模块等,满足伺服驱动控制的DAC、固体继电器、步进电机控制器、变频控制单元等,满足通信要求的各种总线驱动器、电平转换器等。
若将经典电子系统当作一个僵死的电子系统,那么智能化的现代电子系统则是一个具有“生命”的电子系统,单片机应用系统的硬件结构给予电子系统“身躯”,单片机应用系统的应用程序赋予其“生命”。例如,在设计智能化仪器显示器的显示功能时,可在开机时显示系统自检结果,未进入工作时显示各种待机状态,仪器运行时显示运行过程,工作结束后可显示当前结果、自检结果、原始数据、各种处理报表等,在无人值守时,可给定各种自动运行功能。
21世纪是全人类进入计算机时代的世纪,许多人不是在制造计算机便是在使用计算机。在使用计算机的人们中,只有从事嵌入式系统应用的人才真正地进入到计算机系统的内部软、硬件体系中,才能真正领会计算机的智能化本质并掌握智能化设计的知识。世界电子元器件在嵌入式系统带动下,沿着充分满足嵌入式应用的现代电子系统的要求发展,这就使原来经典电子系统的天地愈来愈从学习单片机应用技术入手是当今培养计算机应用软、硬件技术人才的最佳道路之一,电子系统中的各类从业人员应尽早转向现代电子系统的康庄大道。
独具魅力的单片机能使你体会到电脑的真谛,你可以用单片机亲自动手设计智能玩具,可以设计不同的应用程序实现不同的功能,既有硬件制作又有软件设计,既动脑、又动手。初级水平可开发智能玩具,用宏指令编程,中级水平可开发一些智能控制器,如电脑鼠标、智能车、各种遥控模型,高级水平可开发机器人,如机器人足球赛,开发工业控制单元,网络通信等,并用汇编语言或高级语言设计应用程序。围绕单片机及嵌入式系统形成的电子产业的未来,将会为电子爱好者提供广阔的天地,一个比当年无线电世界更广阔、更丰富、更持久、更具魅力的电子世界。
6
第二章 设计方案的选择
2.1 系统应实现的功能
温度控制系统是比较常见和典型的过程控制系统。温度是工业生产过程中重要的被控参数之一,当今计算机控制技术在这方面的应用,可使温度控制系统达到自动化、智能化,比过去单纯采用电子线路进行PID调节的控制效果要好得多,可控性方面也有了很大的提高。
根据要求,系统可以划分为:控制模块、温度采集模块、键盘模块、显示模块、加热模块,如图2-1。
图2-1 结构框图
2.2 各模块方案的选择
为实现各模块的功能,分别做了几种不同的设计方案并进行了选择。 2.2.1 控制模块方案的选择
根据题目要求,控制器主要用于对温度测量信号的接受和处理,控制加热和保温,使控制对象满足设计要求、控制显示电路对温度值实时显示、控制键盘实现对温度值的设定等。对控制器的选择有以下三种方案:
方案一:
采用运放等模拟电路搭建一个控制器,用模拟方式实现PID控制,对于纯粹的水温控制,这是足够的。但是附加显示、温度设定等功能,还要附加许多电路,稍显麻烦。同样,使用逻辑电路也可实现控制功能,但总体的电路设计和制作比较烦琐。 方案二:
采用FPGA实现控制功能。使用FPGA时,电路设计比较简单,通过相应的编程设计,可以很容易地实现控制和显示、键盘等功能,是一种可选的方案。但
7
温度采集 控制单元 显示温度 加热 报警 设定温度
与单片机相比,价格较高,显然大材小用。
方案三:采用单片机最小系统同时完成控制、显示、键盘等功能,软件编程灵活、自由度大,电路设计和制作比较简单,并且其功耗低、体积小、技术成熟、成本低,是一种非常好的方案。
基于以上分析,很容易看出方案三电路的设计制作比较简单、功能强大、成本低,故采用了方案三。
就单片机而言,大学期间熟悉的就是51系列中的8031和8051,8051在8031的基础上,片内又集成了4KB ROM,是一个程序不超过4KB的小系统,不需要外扩展存储器,可使系统整体结构更为简单,所以我选用了AT80C51芯片。 2.2.2 温度采集模块方案的选择
温度信号为模拟信号,本设计要对温度进行控制和显示,所以要把模拟量转换为数字量。该温度采集模块有以下三种方案:
方案一:
利用热敏电阻传感器作为感温元件,热敏电阻的阻值随温度变化而变化,用仪表测量出热电阻的阻值变化量,从而得到与电阻值相应的温度值。最常用的是铂电阻传感器,铂电阻在氧化介质中,甚至在高温的条件下其物理、化学性质不变。由铂电阻阻值的变化经小信号变送器将铂电阻随温度变化的转换为4~20mA线性变化电路,再将电流信号转化为电压信号,送到A/D转换器——ADC0809.即将模拟信号转换为数字信号。
方案二:
采用温度传感器AD590K。AD590K具有较高精度和重复性,良好的非线性保证±0.1℃的测量精度,加上软件非线性补偿可以实现高精度测量。AD590将温度转化为电流信号,因此要加相应的调理电路,将电流信号转化为电压信号。送入8位A/D转换器,可以获得255级的精度。
方案三:
采用数字式温度传感器DS18B20,该传感器测温范围为-55℃-+125℃,最重要的是DS18B20传输方式为数字式,采用单总线专用技术,非常节约I/O口。实现对温度的采集和转换,直接输出数字量,可以直接和单片机进行通讯,大大简化了电路的复杂度。
8
传统的温度采集电路,需要经过温度采集、信号放大、滤波、A/D转换等一系列工作才能得到温度的数字量,并且这种方式不仅电路复杂,元器件个数多,而且,抗干扰能力弱。DS18B20与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求,通过简单的编程实现9~12位的数字值读数方式。另外,从DS18B20读出的信息或写入DS18B20的信息仅需要一根接口线(单线接口)读写,因而使用DS18B20可使系统结构更趋简单,可靠性更高。它在测量精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果。
基于以上分析,温度采集模块选用方案三。 2.2.3 键盘模块方案的选择
键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。键盘接口与键盘程序的根本任务就是要检测有没有键按下,若有键按下,系统有相应动作。
键盘分两大类:编码键盘和非编码键盘。编码键盘:由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘自动提供被按键的读数,同时产生一个选通脉冲,通知微处理器,一般还具有反弹跳和同时按键保护功能。这种键盘易于使用,但硬件比较复杂,对于主机任务繁重之情况,采用8279可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案。非编码键盘:只简单地提供键盘的行列与矩阵,其他操作如键的识别、决定按键的读数等都靠软件完成,故硬件较为简单,但占用CPU较多时间。非编码键盘有:独立式按键结构、矩阵式按键结构。本设计采用的是非编码独立连接式的键盘。在非编码键盘系统中,键闭合和键释放的信息的获取,键抖动的消除,键值查找及一些保护措施的实施等任务,均由软件来完成。
单片机应用系统中,键盘扫描只是CPU的工作内容之一。CPU忙于各项任务时,如何兼顾键盘的输入,取决于键盘的工作方式。考虑仪表系统中CPU任务的份量,来确定键盘的工作方式。键盘的工作方式选取的原则是:既要保证能及时响应按键的操作,又不过多的占用CPU的工作时间。键盘的工作方式有:查询方式(编程扫描,定时扫描方式)、中断扫描方式。独立式按键接口就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断
9
哪个按键被按下了。优点就是电路配置灵活,软件结构简单;缺点就是每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构得复杂,此键盘是用于按键较少或操作速度较高的场合。
本设计中由于所用键盘不多,所以采用独立连接式的查询式键盘。采用了软件扫描的方法,通过对键盘接口P1.0和P1.1的查询判断是否有键按下。当有键按下时,按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如果不妥善处理,就会出现按键命令的错误执行和重复执行,设计中采用软件延时去抖动的方法。 2.2.4 显示模块方案的选择
根据题目要求,水温要由人工设定,并能实时显示温度值。对显示模块有下面两种方案:
方案一:
采用1602液晶显示模块。本方案的优点是电路相对简单,显示字符内容较为丰富,考虑到本报警系统只需要显示测量的温度,不需要过多的复杂功能,实用1602液晶显示会增加系统的成本。
方案二:
采用数码管显示。此方案的最大优点就是成本较低,缺点是电路相对复杂,需要驱动电路,在软件上也需要作出处理,但是此方案完全可以满足本温度测量显示系统的功能和要求,软件处理上也不是特别的复杂,驱动电路也相对简单。
综合考虑,采用方案二,下面就LED显示方式进行论证。
在单片机的应用系统中,LED显示器是常用的输出部件,如图2-2。它是由若干个发光二极管组成,当发光二极管导通时,相应的一个点或一个笔画发亮,控制不同组合的二极管导通,就能显示出各种字符。常用的LED显示器有7段式和“米”字段之分。显示器又分共阳极和共阴极两种。共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地,当某个发光二极管的阳极接高电平时,发光二极管点亮,相应的字段被显示。同样,共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。
10
图2-2 7段数码管结构图
发光二极管是一种由磷化镓等半导体材料制成的,能直接将电能转变成光能的发光显示器件,当其内部有电流通过时,它就会发光。7段数码管每段的驱动电流和其他单个LED发光二极管一样,一般为5~10mA;正向电压随发光材料不同表现为1.8~2.5V不等。
显示器的显示有静态显示和动态扫描显示两种方法。 1.静态显示
所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地导通和截止。这种显示方法为每一们都需要有一个8位输出口控制。对于51单片机,可以在并行口上扩展多片锁存74LS573作为静态显示器接口。
静态显示器的优点是显示稳定,在发光二极管导通时,显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU才执行一次显示更新子程序,这样大大节省了CPU的时间,提高了CPU的工作效率;缺点是位数较多时,所需I/O口太多,硬件开销太大,因此常采用另外一种显示方式——动态显示。 2.动态显示
所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器被点亮,但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。若显示器
11
的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)。
动态显示器的优点是节省硬件资源,成本较低。但在控制系统运行过程中,要保证显示器正常显示,CPU必须每隔一段时间执行一次显示子程序,这占用了CPU的大量时间,降低了CPU工作效率,同时显示亮度较静态显示器低。
综合以上考虑,又考虑到对I/O口的使用,本毕业设计采用LED动态显示,为共阳极显示。
2.2.5 加热模块方案的选择
根据题目,可以通过控制加热棒工作实现水温的动态平衡。当需要加热时开启加热棒,当水温超过设定温度时,停止加热。由于加热的功率较大,考虑到简化电路的设计,我们直接采用220V电源。对加热装置控制模块有以下两种方案:
方案一:
采用可控硅来控制加热棒有效功率。可控硅是一种半控器件,应用于交流电的功率控制有两种形式:一是通过控制导通的交流周期数达到控制功率的目的,二是通过控制导通角的方式控制交流功率。由交流过零检测电路输出方波经适当延时控制双向可控硅的导通角,延时时间即移相偏移量由温度误差计算得到,可以实现对交流电单个周期有效值周期性控制,保证系统的动态性能指标。该方案可以实现功率的连续调节、响应速度快、控制精度高。但该方案电路稍复杂,需使用光耦合驱动芯片以及变压器等器件。
方案二:
采用继电器控制加热棒。使用继电器可以很容易实现通过较高的电压和电流的通断,在正常条件下,工作十分可靠。继电器无需外加光耦,自身即可实现电气隔离。这种电路虽然无法精确实现电热丝功率控制,电热棒只能工作在最大功率或零功率,对控制精度造成影响,但可以通过控制加热棒工作实现水温的动态平衡,电路焊接简单,响应速度快,控制精度高。
基于以上分析,选择方案二,采用继电器控制,省去光耦和交流过零检测电路、响应速度快、控制精度高。
12
第三章 硬件电路设计
3.1 硬件总体设计
设计了一个基于单片机的水温度控制系统的电路,其结构方框图如3-1, 采用单片机AT80C51系统来实现,用温度传感器DS18B20进行温度采集,用数码管来实时显示水温,能用键盘输入设定值,用继电器控制加热,使其达到电路简单、可靠的目的。
电源 温度传感器DS18B20 LED显示 继电器 报警 单片机 AT80C51 键盘 图3-1 系统结构框图
3.2 主要元器件
指示灯 本课题设计主要用到的元器件有:单片机AT80C51、数字温度传感器(DS18B20)、继电器。 3.2.1 主控制器AT80C51
由于Intel公司的单片机问世早、产品系列齐全、兼容性强,得到了广泛的应用。目前我国的主要使用MCS-51系列的产品,MCS-51是Intel公司的8位系列单片机,既包括三个基本型8031、8051、8751,也包括对应的低功耗型80C31、80C51、87C51。 1.主要性能
(1)内部程序存储器:4KB。 (2)外部数据存储器:128B。
(3)外部程序存储器:可扩展到64KB。
(4)输入/输出口线:32根(4个端口,每个端口8根)。
13
(5)定时/计数器:2个16位可编程的定时计数器。 (6)串行口:1个全双工的串行口。
(7)寄存器区:在内部数据存储器的128B中划出一部分作为寄存器区,分为四个区,每个区8个通用寄存器。
(8)中断源:5个中断源,2个优先级别。 (9)堆栈:最深128B。
(10)布尔处理机:即位处理器,对某些单元的某位做单独处理。 (11)指令系统(系统时钟为12MHz时):大部分指令执行时间为1us,少部分执行指令时间为2us,只有乘、除指令的执行时间为4us。 2.电源及时钟引脚
80C51采用双列直插封装(DIP)方式和方形封装方式。 下面分别叙述这些引脚的功能:
(1)电源引脚Vcc:电源端,Vss:接地端。 (2)时钟引脚
2个时钟引脚XTAL1和XTAL2外接晶体与片内的反向放大器构成了1个振荡器,它为单片机提供了时钟控制信号。2个引脚也可外接独立的晶体振荡器。 XTAL1:接外部晶体的一个引脚。该引脚内部是一个反向放大器的输入端,这个反向放大器构成了片内振荡器。当采用外部振荡器时,此引脚接地。
XTAL2:接外部晶体的另一端,在该引脚内部接至内部反相放大器的输出端。若采用外部振荡器时,该引脚接收时钟振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。 3.控制引脚
此类引脚提供控制信号,有的引脚还具有复用功能。
(1)RST/VPD:RST(RESET)是复位信号输入端,高电平有效。当单片机运行时,此引脚加上持续时间大于2个机器周期的高电平时,就可以完成复位操作。在单片机正常工作时,此引脚应为≤0.5V低电平。
VPD为本引脚的第二功能,即备用电源的输入端。当主电源Vcc发生故障,降低到某一规定值的低电平时,将+5V电源自动接入RST端,为内部RAM提供备用电源,以保证片内RAM中的信息不丢失,从而使单片机在复位后能继续
14
正常运行。
(2)ALE/PROG:ALE引脚输出为地址锁存允许信号,当单片机上电正常工作后,ALE引脚不断输出正脉冲信号。当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存的地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。如果想初步判断单片机芯片的好坏,可用示波器查看ALE端是否有正脉冲信号输出。如果有正脉冲信号输出,则单片机基本上是好的。
应当注意的是,每当MCS-51访问外部数据存储器时(即执行的是MOVX类指令),在1个机器周期中ALE只出现一次,即丢失1个ALE脉冲。因此,严格来说,用户不宜用ALE作精确的时钟源或定时信号。ALE端可以驱动8个LS型TTL负载。
PROG为本引脚的第二功能。在对片内EPROM型单片机编程写入时,此引脚作为编程脉冲输入端。
(3)PSEN:外部程序存储器的读选通信号。此引脚接外部程序存储器的OE(输出允许)端。当80C51由外部程序存储器取指令(或常数)时,每个机器周期两次PSEN有效(即输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的信号将不出现。PSEN端可驱动8个LS型TTL负载。 (4)EA/VPP:EA为内外程序存储器选择控制端。当EA端保持高电平时,单片机访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051、8751)时,即超出片内程序存储器的4KB地址范围时,将自动转向执行外部程序存储器内的程序。当EA保持低电平时,单片机访问外部程序存储器,不论是否有内部程序存储器。
VPP:本引脚的第二功能,外部访问允许端。要是CPU只访问外部程序存储器(地址为0000H-FFFFH),则VPP端必须保持低电平(接地),当VPP端保持高电平(接Vcc端)时,CPU则执行内部程序存储器中的程序。在FLASH存储器编程期间,该引脚也用于施加12V的编程允许电源VPP。 4.功能单元
15
(1)并行I/O接口
单片机芯片内有一项主要功能就是并行I/O口。51系列共有4个8位的并行I/O口,分别记作P0、P1、P2、P3,每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低八位地址和数据由P0口分时传送,高八位地址由P2口传送。 (2)定时器/计数器
定时器/计数器(timer/counter)是单片机中的重要部件,其工作方式灵活、编程简单,使用它对减轻CPU的负担和简化外围电路都大有好处。C51系列包含有两个16位的可编程定时器/计数器,分别称为定时器/计数器T0和定时器/计数器T1。在C51部分产品中,还包含有一个用做看门狗的8位定时器。在单片机的定时器T0或T1中,有一个定时器发生由0到1的跳变时,计数器增1,即为计数功能。在单片机内部对机器周期或其分频进行计数,从而得到定时,这就是定时功能。在单片机中,定时功能和计数功能的设定和控制都是通过软件来进行的。
定时器/计数器内部结构及其原理,由定时器0、定时器1、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。当定时器/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器加1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,因为C51系列单片机的一个机器周期由12个振荡脉冲组成,所以,计数频率fcfosc/12。适当选择定时器的初值可获取各种定时时间。
当定时器/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数。在每个机器周期的S5P2期间采样引脚输入电平,若前一个机器周期采样值为1,后一个机器周期采样值为0,则计数器加1。新的计数值是在检测到输入引脚电平发生1到0的负跳变后,于下一个机器周期的S3P1期间装入计数器中。可见,检测一个由1到0的负跳变需要两个机器周期,所以最高检测频率为振荡频率的1/24。计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。 6.中断系统
16
中断系统是单片机的重要组成部分。实时控制、故障自动处理、单片机与外围设备间的数据传送往往采用中断系统。中断系统大大提高了系统的效率。 C51系统有关中断的寄存器有4个,分别为中断源寄存器TCON和SCON、中断允许控制寄存器IE和中断优先级控制寄存器IP,中断源有5个,分别为外部中断0请求INT0、外部中断1请求INT1、定时器0溢出中断请求TF0、定时器1溢出中断请求TF1和串行中断请求R1或T1。5个中断源的排列顺序由中断优先级控制寄存器IP和顺序查询逻辑电路共同决定,5个中断源分别对应5个固定的中断入口地址。中断的特点是分时操作、实时处理和故障处理。 (1)外部中断源
AT80C51有INT0和INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或负边沿两种中断触发方式来输入中断请求信号。AT80C51究竟工作于哪种中断触发方式,可由用户对定时器控制寄存器TCON中IT0和IT1位状态的设定来选取。AT80C51在每个机器周期的S5P2时对INT0、线上中断请求信号进行一次检测,检测方式和中断触发方式的选取有关。若AT89051设定为电平触发方式(IT0=0或IT1=0),则CPU检测到INT0、INT1上低电平时就可认定其上中断请求有效;若设定为边沿触发方式(IT0=1或IT1=1),则CPU需要两次检测INT0、INT1线上电平方能确定其上中断请求是否有效,即前一次检测为高电平和后一次检测为低电平时中断请求才有效。
(2)定时器溢出中断源
定时器溢出中断由AT80C51内部定时器分的中断源产生,故它们属于内部中断。AT80C51内部有两个16位定时器/计数器,受内部定时脉冲(主脉冲经12分频后)或T0/T1引脚上输入的外部定时脉冲计数。定时器T0/T1在定时脉冲作用下从全“1”变成全“0”时,可以自动向CPU提出溢出中断请求,以表明定时器T0或T1的定时时间已到。 (3)串行口中断源
串行口中断由AT80C51内部串行口的中断源产生,也是一种内部中断。串行口中断分为串行口发送中断和串行口接收中断两种。在串行口进行发送/接收数据时,每当串行口发送/接收完一组串行数据时串行口电路自动使串行口控制寄存
17
器SCON中的RI或TI中断标志位置位,并自动向CPU发出串行口中断请求,CPU响应串行口中断后便立即转入串行口中断服务程序执行。因此,只要在串行口中断服务程序中安排一段对SCON中RI和TI中断标志位状态的判断程序,便可区分串行口发生了接收中断请求还是发送中断请求。 (4)中断标志
AT80C51在S5P2时检测(或接收)外部(内部)中断源发来的中断请求信号后先使相应中断标志位置位,然后便在下个机器周期检测这些中断标志位状态,以决定是否响应该中断。 3.2.2 温度传感器DS18B20
Dallas最新的数字温度传感器DS18B20被称为新的“一线器件”体积更小、适用电压更宽、更经济。DS18B20是世界上第一片支持“一线总线”接口的温度传感器,一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。 1.性能特点:
(1)采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位);
(2)测温范围为-55℃-+125℃,测量分辨率为0.0625℃; (3)内含64位经过激光修正的只读存储器ROM; (4)适配各种单片机或系统机;
(5)用户可分别设定各路温度的上、下限;
(6)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
(7)内含寄生电源。 2.内部结构
TO-92封装的DS18B20的引脚排列如下图3-2,其引脚功能描述见表3-1。
18
图3-2DS18B20引脚图
表3-1 DS18B20详细引脚功能描述
序号 1 2 3 名称 GND DQ 引脚功能描述 地信号 数据输入/输出引脚。 VDD 可选择的VDD引脚。当工作于寄生电源时此引脚必须接地。 DS18B20内部结构如图3-3所示,主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、高速暂存器。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM
19
中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
DS18B20温度传感器的存储器包括一个高速暂存RAM和一个非易失性的可电擦除EEPROM,后者存放高温度和低温度触发器TH、TL和结构寄存器。配置寄存器,五位一直都是\"1\"。TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率。
存储器与控制逻C 64 位 ROM 和 单 线 接 口 高速缓存 温度传感器 高温触发器TH 配置寄存器 8位CRC发生器 Vdd 图3-3 DS18B20内部结构图
3.控制命令
DS18B20有六条控制命令,如表3-2所示。
表3-2 DS18B20控制命令
指 令 温度转换 读暂存器 写暂存器 复制暂存器 重新调E2RAM 电源供电方式 约定代码 44H BEH 4EH 48H B8H B4H 操作说明 启动DS18B20进行温度转换 读暂存器9个字节内容 将数据写入暂存器的TH、TL字节 把暂存器的TH、TL字节写到E2RAM中 把E2RAM的TH、TL字节写到暂存器TH、字节 启动DS18B20发送电源供电方式的信号给CPU 20
4.工作过程
(1)初始化DS18B20所有的数据交换都由一个初始化序列开始。由主机发出的复位脉冲和跟在其后的由DS18B20发出的应答脉冲构成。DS18B20发出响应主机的应答脉冲时,当即向主机表明它已处在总线上并且准备工作。 (2)ROM命令ROM命令通过每个器件64-bit的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信,每个ROM命令都是8bit长。
(3)主机通过功能命令对DS18B20进行读/写Scratchpad存储器,或者启动温度转换。
注意,CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。 5.信号方式
DS18B20采用严格的单总线通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。除了应答脉冲所有这些信号都由主机发出同步信号。总线上传输的所有数据和命令都是以字节的低位在前。
单线总线结构是DS18B20的突出特点,也是理解和编程的难点。从两个角度来理解单线总线:第一,单线总线只定义了一个信号线,而且DS18B20智能程度较低,所以DS18B20和处理器之间的通信必然要通过严格的时序控制来完成。第二,DS18B20的输出口是漏级开路输出。这种设计使总线上的器件在合适的时间驱动它。这就决定:(1)微控制器不能单方面控制总线状态。之所以提出这点,是因为相当多的文献资料上认为,微控制器在读取总线上数据之前的I/O口的置1操作是为了给DS18B20一个发送数据的信号。这是一个错误的观点。如果当前DS18B20发送0,即使微控制器I/O口置1,总线状态还是0;置1操作是为了是I/O口截止(cut off),以确保微控制器正确读取数据。(2)除了DS18B20发送0的时间
21
段,其他时间其输出口自动截止。自动截止是为确保:1时,在总线操作的间隙总线处于空闲状态,即高态;2时,确保微控制器在写1的时候DS18B20可以正确读入。
由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT80C51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 (1)DS18B20的复位时序,如图3-4。
在初始化的过程中,主机通过拉低单总线至少480µs,以产生复位脉冲(TX)。然后主机释放总线并进入接收(RX)模式。当总线被释放后,4.7kΩ的上拉电阻将单总线拉高。DS18B20检测到这个上升沿后,延时15µs~60µs,通过拉低总线60µs~240µs产生应答脉冲。
图3-4 DS18B20的复位时序图
(2)DS18B20的读时序
对于DS18B20的读时序分为读0时序和读1时序两个过程。
对于DS18B20的读时序是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的读时序图如图3-5所示。
图3-5 DS18B20的读时序
22
(3)DS18B20的写时序
DS18B20的写时序仍然分为写0时序和写1时序,对于DS18B20写0时序和写1时序的要求不同,如图3-6所示。当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。
图3-6 DS18B20的写时序图
6.供电方式
在图3-7中示出了DS18B20的寄生电源电路。当DQ或VDD引脚为高电平时,这个电路便“取”的电源。寄生电路的优点是双重的,远程温度控制监测无需本地电源,缺少正常电源条件下也可以读ROM。为了使DS18B20能完成准确的温度变换,当温度变换发生时,DQ线上必须提供足够的功率。
有两种方法确保DS18B20 在其有效变换期内得到足够的电源电流。第一种方法是发生温度变换时,在DQ线上提供一强的上拉,这期间单总线上不能有其它的动作发生。通过使用一个MOSFET把DQ线直接接到电源可实现这一点,这时DS18B20 工作在寄生电源工作方式,在该方式下VDD引脚必须连接到地。
图3-7 DS18B20供电方式1
23
另一种方法是DS18B20工作在外部电源工作方式,如图3-8所示。这种方法的优点是在DQ线上不要求强的上拉,总线上主机不需要连接其它的外围器件便在温度变换期间使总线保持高电平,这样也允许在变换期间其它数据在单总线上传送。此外,在单总线上可以并联多个DS18B20,而且如果它们全部采用外部电源工作方式,那么通过发出相应的命令便可以同时完成温度变换。
图3-8 DS18B20供电方式2
7.DS18B20设计中应注意的几个问题
DS18B20具有测温系统简单、测温精度高、连接方便、占用接口线少等优点,但在实际应用中也应注意以下几方面的问题:较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送。因此, 在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在DS18B20 有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要考虑微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。连接DS18B20的总线电缆是有长度限制的。实际应用中,测温电缆线建议采用屏蔽4芯双绞线,其中一组线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。
本文以广泛应用的数字温度传感器DS18B20为例,说明了单总线的操作过程和基本原理。事实上,基于单总线的产品还有很多种,如单总线的E2PROM、实时时钟、电子标签等。它们都具有节省I/O资源、结构简单、开发快捷、成本低廉、便于总线扩展等优点,因此有广阔的应用空间,具有较大的推广价值。 3.2.3 继电器
在本设计中,被测温度信号经采样处理后,还需要通过单片机系统输出用以
24
控制水的温度,通过这种方式达到控制的目的。控制的方式主要有模拟量控制和开关量控制。本系统采用的是开关量控制,所谓的开关量控制就是通过控制设备的“开”或“关”状态的时间来达到控制的目的。
由于输出设备往往需要大电压来控制,而单片机系统输出的为TTL电平,这种电平不能直接驱动外部设备的开启和关闭。另一方面,许多外部设备在开关过程中会产生很强的电磁干扰信号,如果不隔离会使系统进行错误的处理。因此在开关量的输出控制过程中要考虑到两个问题,一要隔离;二要放大。
本设计采用继电器作为控制电路的主要器件,继电器具有一定的隔离作用,在继电器前面加一个三极管用以放大输出信号就可以驱动继电器的闭合和断开,从而实现弱电控制强电的效果。继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流控制较大电流的一种开关。故在电路中起自动调节、安全保护、转换电路等作用。在工业自动化控制系统中,继电器经常被用来控制执行机构,特别是应用在一些耐潮、耐腐蚀、防爆的特殊装置中。固态继电器和MCS-51系列单片机组成的控制系统,具有抗干扰性强、编程简单、系统兼容性好等特点,具有非常广阔的应用前景。继电器一般由通电线圈和触电组成,当线圈通电时,由于磁场作用,使开关触电闭合。当不通电时,则开关触点断开。一般线圈可用直流低电压控制(+5V,+8V,+15V)。
继电器的特性参数包括输入和输出参数,主要的参数为额定输入电压、额定输出电流、浪涌电流。根据输入电压参数值大小,可确定工作电压大小。如采用TTL或CMOS等逻辑电平控制时,采用有足够带载能力的低电平驱动,并尽可能使“0”电平低于0.8V。如在噪声很强的环境下工作,不能选用通、断电压值相差小的产品,必需选用通、断点压值相差大的产品,(如选接通电压为8V或12V的产品)这样不会因噪声干扰而造成控制失灵。本设计就是采用直流驱动电压为+5V的继电器。
3.3 各功能模块电路设计
本次设计主要思路是通过对单片机编程将由温度传感器DS18B20采集的温度外加驱动电路显示出来,包括对继电器的控制,进行升温,当温度达到上下限,蜂鸣器进行报警。P1.7开关按钮是用于确认设定温度的,初次按下表示开始进入
25
温度设定状态,然后通过P1.5和P1.6设置温度的升降,再次按下P1.7时,表示确认所设定的温度,然后转入升温或降温,P2.3所接的发光二极管用于表示加热状态,P2.5所接的发光二极管用于表示保温状态,P2.6接继电器,P3.1是温度信号线。整个电路都是通过软件控制实现设计要求。 3.3.1 单片机最小系统设计
因为80C51单片机内部自带8K的ROM和256字节的RAM,因此不必构建单片机系统的扩展电路。单片机最小系统如图3-9,其中有4个双向的8位并行I/O端口,分别记作P0、P1、P2、P3,都可以用于数据的输出和输入,P3口具有第二功能为系统提供一些控制信号。单片机最小系统有时钟电路和复位电路。时钟电路用于产生MCS-51单片机工作所必须的时钟控制信号,内部电路在时钟信号的控制下,严格地按时序指令工作。MCS-51内部有一个用于构成振荡器的高增益反向放大器,该高增益反向放大器的输入端为芯片的引脚XTAL1,输出端为XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成了一个稳定的自激振荡器。电路中的微调电容通常选择为30pF左右,该电容的大小会影响到振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体的振荡频率为12MHz。MCS-51的复位是由外部的复位电路来实现。采用最简单的外部按键复位电路,按键自动复位是通过外部复位电路的来实现的。
值得注意的是,系统没有外部程序存储器,所以单片机的31脚EA/VPP必须接高电平。在按键两端并联一个电解电容,滤除交流干扰,增加系统抗干扰能力。
26
U1 2 3 4 5 6 7 8 1111C30P晶振1 C30P12VC3119 C17 1P10 P11 P12 P13 P14 P15 P16 P17 INT1 INT0 TTEA/Vpp XTAL1 XTAL2 RESET RWR RXTXALE/P PSE1132P0P0P02 P0P0P0P0P07 P20 P2P2P2P2P25 P26 P27 3337 33333222225 26 27 2AT80C51 2 SW4 2 10UF 10K + SW-PB(双) 1 3 1 VC VC
图3-9 单片机最小系统图
3.3.2 温度采集电路的设计
DS18B20与单片机连接图如图3-10所示。本设计将温度传感器DS18B20与单片机TXD引脚相连,读取温度传感器的数值。
27
UP1P1P1 P1P1P1 P1 P17 INTINTTTP0P0P02 P0P0P0 P0 P07 P2P2 P2 P2P2 P2 P26 P27 33 37 333 3322 2225 26 27 21 2 3 4 5 6 7 8 1111311 AT80C51 EA/VXX 9 RXD TXALE/PSE113 2RESERW17 1 R14.7VC3 2 DS18B2
U3
VCC D 1 图3-10 DS18B20与单片机连接图
3.3.3 键盘电路的设计
图3-11为按键和AT80C51的接线图,检测仪共设有4个按键,每个按键由软件来决定其功能,4个按键功能分别为:
1.SW1:设定按键(设定按键) 2.SW2:加法按键(当前位加5) 3.SW3:减法按键(当前位减5) 4.SW4:退出设置键(系统初始化)
28
1
SW1 SW-PB(双) 3 1
SW2 3 SW3 1 3 SW4 1 3
1 2
2 4
2
4 SW-PB(双)
2
4 SW-PB(双) 2 4
1 2 3 4 5 6 7 8 13 12 U2 P1P1P1P1P1P1P1P17 INTINTTTEA/VXXRESERWRXTXALE/PSE10 11 30 29 P0P0P02 P0P0P0P0P07 P20 P2P2P2P2P25 P26 P27 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 SW-PB(双) 1 2
1 2
1 2
4.7kcom234567894.7k123456789VCCP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.715 14 31 19 18 9 17 16 AT80C51 图3-11 单片机按键和AT80C51的接线图
3.3.4 显示电路的设计
1.数码管显示说明
各个数码管的段码都是单片机的数据口输出,即各个数码管输入的段码都是一样的,为了使其分别显示不同的数字,可采用动态显示的方式,即先只让最低位显示0(含点),经过一段延时,再只让次低位显示1,如此类推。由视觉暂留,只要我们的延时时间足够短,就能够使得数码的显示看起来非常的稳定清楚,过程如表3-3。
29
表3-3 数码管编码表
段码 08H abH 12H 22H a1H 24H 04H aaH 位码 01H 02H 04H 08H 10H 20H 40H 80H 显示器状态 □□□□□□□0 □□□□□□1□ □□□□□2□□ □□□□3□□□ □□□4□□□□ □□5□□□□□ □6□□□□□□ 7□□□□□□□ 本论文中使用了3个数码管,其中前两位使用动态扫描显示实测温度,在设置加热温度的时候,两个数码管是闪烁,以提示目前处在温度设置状态。第三位数码管静态显示符号“℃”。
2.运行指示灯说明
图3-12为LED数码管显示电路图,系统中共使用到3个LED指示灯和3个数码管。右上角的红色LED是电源指示灯;数码管右边的红色LED是加热指示灯,当刚开机或温度降到设定温度5℃以下时,该灯会亮,表示目前处于加热状态;当温度上升到设定温度时,该LED灭,同时数码管右边的绿色LED亮,表示目前处于保温状态。当温度再次下降到设定温度5℃以下时,绿色LED灭,红色加热的LED灯亮,不断循环。 3.3.5 电源电路的设计
采用L7805稳压块,输出为5V。电子组件要正常运作都需要电源电压供电,一般常用的电源电压为+5V或+12V,因为数字集成电路所供给的电压为+5V,而 CMOS 集成电路所供给的电压为+12V,7805是一个稳压块。7805稳压管把高电压转换到低电压,7805稳压管具有保护单片机的作用。L7805输出端要并联上一个电解电容,滤除交流电干扰,防止损坏单片机系统。本设计采用两种供电方式,图3-13为系统电源设计图,一种为DC7~18V直流稳压电源变换成5V的直流电;另一种为四节干电池共6V经二极管加压后得到将近5V的直流电源,电源配以
30
R14VCCDP19com1com2DP2910U2Q1C31CP10P11P12P13P14P15P16P17ES8550*33B2Q3PNPBE12345678P00P01P02P03P04P05P06P07R6R7R8R9R10R11R12R13VCC4704704704704704704704703938373635343332图3-12 LED数码管显示电路图 13124.7KR164.7KR17INT1INT01VCC1514T1T031EA/VP1918P20P21P22P23P24P25P26P272122232425262728X1X29RXDTXDALE/PPSENRESET 继电器是常用的输出控制接口,可以做交直流信号的输出切换。它具有控制
系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电
开关和指示灯,以方便使用。黄色发光二极管表示保温,红色的表示加热状态。
1716RDWR10113029DPYaabcfbgdeecdfdpgdp3.3.6 加热电路的设计
12345678COM
47087654321
两位数码管DPY_7-SEG_DPDPYDPYaaabcfbfbggdeececddfdpdpgdp31
2PNP
D3LEDJ13+VCC12VGNDGND12D1IN4007U1L7805(大)VCCIN2P+VCC12VJ22121D2R1VCC1K12电源座IN4007GND1OUT31+C1220UF22 图3-13 系统电源设计图
路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”,故在电路中起着自动调节、安全保护、转换电路等作用。继电器控制接点操作说明如下: COM:Common,共同点。输出控制接点的共同接点。
NC:Normal Close常闭点。以Com为共同点,NC与COM在平时是呈导通状态的。
NO:Normal Open常开点。NO与COM在平时是呈开路状态的,当继电器动作时,NO与COM导通,NC与COM则呈开路状态。
AT80C51 P2.3 P2.5 470 R4 470 R5 D4 LED VCC
D5 LED VCC R6 4.2K 4 3 5 L1 ND COM L2 NC L 220V输入 1 2 1 2 2 1 发热管输出 图3-14 单片机控制继电器电路
图3-14为单片机控制继电器电路,当80C51的P2.5输出高电平时,继电器不导通,反之当输出低电平时,继电器导通,这样就激活了连接回路。 3.3.7 报警电路的设计
同时可以在系统里设定温度上限值,由于加热停止后,加热管还有余热当采
32
集到的外界温度高于当前所设定温度上限值时,程序就会进入报警子程序,触发蜂鸣器进行报警,报警电路原理图如图3-15所示。
FM1BELLR194.7KQ4C3P2.7BE285501VCC 图3-15 报警电路图
图中的三极管8550的作用是增加驱动能力,比9012的驱动电流还大些,因此选用8550。当程序进入报警子程序时,把P2.7置0,就会触发蜂鸣器,为了使报警声音效果更好,对P2.7取反,发出报警嘟噜声音。 3.4 系统硬件总图
本设计硬件原理图如附录1,实现的功能为:
1.本系统上电后数码管显示当前测量温度,此时加热指示灯和保温指示灯均不点亮;若此时按“自动加热”键,则单片机自动将预加热温度设置为80℃并开始加热,送出一个加热信号,并点亮加热指示灯;若按“温度设置”键,则进入预加热温度设置界面,此时数码管闪烁显示预设置温度,此时通过按键“+”和“-”进行设置温度,预设置温度按“5”递增或递减,设置好温度后再按一次“温度设置”键确定,单片机保存预设置温度,并开始加热;
2.如果实测温度大于或等于预设置温度,则单片机发出停止加热信号并熄灭加热指示灯,点亮保温指示灯,且当超过预设温度时发出报警;
3.当温度下降到预设置温度以下5度时,单片机再次发出加热信号,同时熄灭保温指示灯,点亮加热指示灯,依次循环控制;
4.完成加热管控制电路、报警电路设计。
33
第四章 系统软件设计
4.1 软件总体设计
良好的设计方案可以减少软件设计的工作量,提高软件的通用性、扩展性、可读性。本系统的设计方案和步骤如下:
1.根据需求按照系统的功能要求,逐级划分模块;
2.明确各模块之间的数据流传递关系,力求数据传递少,以增强各模块的独立性,便于软件编制和调试;
3.确定软件开发环境,选择设计语言,完成模块功能设计,并分别调试通过; 4.按照开发式软件设计结构,将各模块有机的结合起来,即成一个较完善的系统。
本系统采用循环查询方式来显示和控制温度的。系统的工作过程:接通电源,系统开始工作,通过按键设定温度值的上限值和下限值,确定按键,将设定的温度值存储到指定的地址空间,温度传感器开始实时检测,调用显示子程序显示检测结果,调用比较当前显示温度值与开始设定的温度值比较,如果当前显示值低于设定值就通过继电器起动加热装置,直到达到设定值停止加热,之后进行保温,如果温度高于上限进行报警。图4-1为主程序流程图,主要包括:读取温DS18B20程序、键盘扫描程序、报警处理程序。
34
开始初始化读D18B20温度转换显示温度自动加热?Y加热温度设置80℃N设置温度?Y温度‘+’Y预设温度+5NNN温度‘-’Y预设温度-5YN设置完成? 加热控制 35
加热控制实测温度 >=预设温度YYN实测温度<预设温度YN保温指示灯亮,停止加热加热指示灯亮,开始加热设置温度?YN 温度‘+’YNN 温度‘-’YN设置完成?Y预设温度加5预设温度减5加热控制读18B20温度转换显示温度实测温度>=预设温度 保温指示灯亮,停止加热N实测温度<预设温度加热指示灯亮,开始加热图 4-1 主程序流程图
4.2 各个模块的流程图
4.2.1 读取温度DS18B20模块流程
读取温度DS18B20的流程图如图4-2所示。由于DS18B20采用的是一根数据线实现数据的双向传输,而对AT80C51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。此模块程序设计主要包括三部分:读出温度子程序、温度转换命令子程
36
序、显示温度子程序。
开始初始化DS18B20存在吗?YROM操作命令存储操作命令读取温度值返回N
图4-2 读取温度DS18B20模块的流程图
程序代码为:
GET_TEMPER: SETB DQ ;读出转换后的温度值
LCALL INIT_1820 ;先复位DS18B20 JB FLAG1,TSS2 RET
;判断DS18B20是否存在?若DS18B20不存在则返回
TSS2: MOV A,#0CCH ;DS18B20已经被检测到!!!!!!!!!!!!!!!跳过ROM匹配
LCALL WRITE_1820
MOV A,#44H ;发出温度转换命令 LCALL WRITE_1820
LCALL DISPLAY ;这里通过调用显示子程序实现延时一段时间,等待
A/D转换结束,12位的话750微秒
LCALL INIT_1820 ;准备读温度前先复位 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH
;发出读温度命令
LCALL WRITE_1820
37
LCALL READ_18200 RET
;将读出的温度数据保存到35H/36H
4.2.2 键盘扫描处理流程
此流程为键盘扫描处理,CPU通过检测各数据线的状态(0或1)就能知道是否有按键闭合以及哪个按键闭合。键盘管理程序的功能是检测是否有按键闭合,如果有按键闭合,消除抖动,根据键号转到相应的键处理程序,按键流程图如图4-3所示。
开始温度设置键是否按下?YY调设置功能子程序温度+5键是否按下?NNY调温度+5功能子程序N温度-5键是否按下?Y调温度-5功能子程序NN温度设置键是否按下?YN返回键是否按下?Y调显示子程序返回主程序
图4-3 键盘扫描子程序流程图
38
4.2.3 报警处理流程
运行程序后,温度传感器DS18B20即可对环境进行温度采集,并送LED数码管显示。我们可以在程序里设定温度上限值,当采集到的外界温度高于当前所设定温度上限值时,程序就会进入报警子程序,触发蜂鸣器进行报警。其程序流程图如图4-4所示。
开始进行温度比较,超过上限值?YP2.7取反,启动蜂鸣器N不启动蜂鸣器,正常显示温度 图4-4 报警子程序流程图
39
第五章 系统调试
5.1 硬件调试
仔细检查所接电路,按照硬件原理图接线,理论上是能实现的,如果数码管不显示,则应该检查线路是否正确,或是因为单片机没有工作,还有集电极和发射极是否接对。如果只显示两个八,则可能是DS18B20没有接正确,检查上拉电路是否接好。另外要注意的是,由单片机输出的控制信号比较小,需要进行放大才能驱动继电器工作,否则就不能实现升温过程,通常选用8550三极管来进行放大。还有220V交流电绿色接头和加热管黄色接头必须接正确,否则导致电路烧坏。蜂鸣器是低电平有效。如果能注意这些问题,电路基本不会出错。
5.2 软件调试
如果硬件电路检查后没有问题,却实现不了设计要求,则可能是软件编程的问题,首先应检查初始化程序,然后是读温度程序,显示程序,以及继电器控制程序,对这些分段程序,要注意逻辑顺序,调用关系,以及涉及到了标号,有时会因为一个标号而影响程序的执行,除此之外,还要熟悉各指令的用法,以免出错。还有一个容易忽略的问题就是,源程序生成的代码是否输入到单片机中,如果这一过程出错,那不能实现设计要求也是情理之中的事。本人在设计的时候用Keil软件进行了调试,显示程序正确,产生了HEX文件。硬件与软件调试相结合,仔细检查各个模块的设计,就能顺利完成任务,实现设计要求。 5.3 操作说明
本系统上电后数码管显示当前测量温度,此时加热指示灯和保温指示灯均不点亮;若此时按“自动加热”键,则单片机自动将预加热温度设置为80℃并开始加热,送出一个加热信号,并点亮加热指示灯;若按“温度设置”键,则进入预加热温度设置界面,此时数码管闪烁显示预设置温度,此时通过按键“+”和“-”进行设置温度,预设置温度按“5”递增或递减,设置好温度后再按一次“温度设置”键确定,单片机保存预设置温度,并开始加热。此时单片机通过数码管显示实时检测的温度并和预设置温度进行对比,如果实测温度大于或等于预设置温度,则单
40
片机发出停止加热信号并熄灭加热指示灯,点亮保温指示灯,且当超过预设温度时发出报警;当温度下降到预设置温度以下5度时,单片机再次发出加热信号,同时熄灭保温指示灯,点亮加热指示灯,依次循环控制。 5.4 社会效益
随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么单片机技术的出现则是给现代工业控制测控领域带来了一次新的革命。目前,单片机在工业控制系统诸多领域得到了极为广泛的应用。特别是MCS51系列的单片机的出现,具有更好的稳定性,更快和更准确的运算精度,推动了工业生产,影响着人们的工作和学习。
现代工业设计、工程建设及日常生活中常常需要用到温度控制,早期温度控制主要应用于工厂中,例如钢铁的水溶温度,不同等级的钢铁要通过不同温度的铁水来实现,这样就可能有效的利用温度控制来掌握所需要的产品了。
在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面,随着人们生活质量的提高,酒店、厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务于社会。 5.5 经济效益
本系统的设计可以用于热水器温度控制系统和饮水机等各种电器电路中,当前社会上的饮水机种类繁多,功能差异也很大,而人们的生活水平提高很快,生活中,人们的对饮水机功能的要求也越来越高。就目前来看,最先进的饮水机都具备温度控制系统的,而且都有自动控制功能,可以人为设定温度,具有这样功能的饮水机已经成为目前饮水机市场的主流产品,就这样的形式来看,市场对这类产品的要求数量还在不断增加,因此,开发本系统是很有市场前景的。
本设计的特点是电路结构简单、功能强大,主要是利用单片机实现总体功能。由于考虑到成本的原因,设计从一开始就选择使用性价比较高的器件,因此,整个系统的成本也很低,经过计算,硬件的成本大概在90元人民币左右,如果本系统大批量生产,加上包装等各项费用大概在100远左右。经过市场调研,在目前市面上,具有同等功能的饮水机的价格平均为180元左右,以非常有竞争力的零
41
售价160元为基准,按照一般的市场规律厂家的出厂价定在120元,如果能够很好的宣传、推广的话,本产品将有很大的经济效益。
42
结束语
本次设计,让我进一步的认识了关于AT80C51等芯片的引脚功能、使用方法,学会了应用不同的芯片来配合完成整个设计的操作,懂得了如何运用课本知识结合实际来完成定时器的显示、编程、数码显示电路的驱动等,同时也提高了我们的思维能力和实际操作能力,使我们能够更快的适应现代控制技术发展的需求,为以后更好的走上工作岗位奠定了坚实的基础。
通过对软硬件不断撞墙,不断思考解决问题的过程中,我学会了很多东西,在做设计的时候,很需要耐心和细心,很多时候一个简单的问题、一个疏忽就会导致整个电路的不工作,只有不断的检查不断的调试,才能真正完成一个设计的制作。只有不断的发现问题解决问题,才能在解决问题的过程中提升自己的能力。
另外,此设计虽然能够完成温度的显示和控制,但功能和精度有待于进一步提高。以后可以通过加入PID算法优化控制功能,并通过液晶显示屏实时显示温度,通过扩展单片机输入输出口,增强系统功能。
43
参考文献
[1] 张洪润,张亚凡.单片机原理及应用[J]. 清华大学出版社,2005,(4). [2] 黄智伟.凌阳单片机课程设计指导[J]. 北京航空航天大学出版社,2007,(6). [3] 余锡存,曹国华.单片机原理及接口技术[M].陕西:西安电子科技大学出版 [4] 乐建波.温度控制系统[M].北京:化学工业出版社,2007:5-7.
[5] 余瑾,姚燕.基于DS18B20测温的单片机温度控制系统[J].单片机开发与应用,2009.
[6] 张毅刚,彭喜元,彭宇.单片机原理及应用[M].北京.高等教育出版社,2010. [7] 张洪润,刘秀英,张亚凡.单片机应用设计200例[M].北京.北京航空航天大学出版社, 2006.
[8] 朱家建.单片机与可编程控制器.北京:高等教育出版社,2007.
[9] 周兴华.单片机智能化产品——C语言设计实例详解[M].北京:北京航空航天大学出版社,2007.
[10]张开生,郭国法.MCS-51单片机温度控制系统的设计[J].微计算机信息,2005,21(7) 68-69
[11]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,2004. [12]雷丽文 等.微机原理与接口技术[M].北京:电子工业出版社,1997. [13]李晓妮.单片机控制系统的设计.九江学院学报(自然科学版),2005. [14]龚红军.单片机温度控制系统.电气时代,2002.
[15]余发山,王福忠.单片机原理及应用技术[M].中国矿业大学出版社,2007. [16]申忠如,申淼,谭亚丽.MCS-51单片机原理及系统设计,西安交通大学出版社,2008.
[17]赵旦峰,刘昕.集成温度传感器在多点温度测量中的应用[J].传感器技术,1997,(01):36-38.
[18]边海龙,孙永奎. 单片机开发与典型工程项目实例详解[J].电子工业出版社,2008.
[19]王为青,邱文勋. 51单片机开发案例精选[J].人民邮电出版2001(5)45-47. [20]孙运旺.传感器技术与应用[M].杭州.浙江大学出版社,2006.
[21]廖琪梅,韩彬,杨文昭等.基于单总线器件DS18B20的温度测量仪[J].国外电子
44
器件,2008(2):24-26.
[22]张勇,宋化龙.一种实用最简A/D电路及注意事项[J].鞍山钢铁学院学报,1996,(02):2.
[23]李萍.单片机温度控制系统的设计与实现,固原师专学报.
[24] 黄惠嫒,李润国.单片机原理与接口技术[M].北京.海军出版社,2006.
[25]赵娜,赵刚,于珍珠等.基于51单片机的温度测量系统[J].微计算机信息,2007:146-148.
[26]Alexander. Street MQ1 The microelect ronics and computer systems laboratory. [27]Augustine. Intelligent temperature controller based on single chip microcomputer control equipment.
[28]Louis Nashelsky ,Electronic Devices and Circuit Theory, 2007.
[29]Victor P. Nelson ,Digital Logical Circuits Analysis & Design ,Prentice Hall,2003,40-94.
[30]M.Morris Mano,Digital Design,(Third Edition)Higher Education Press, 2002.
45
D3LEDGND1R144.7kDP1VCCVCC470INOUT31+C1220UF2两位数码管DPY_7-SEG_DP2附录1:系统硬件总图
com1com2DP2913Q1U2313C1310ES8550*3PNP3B2Q31C31312INT1INT015142LEDR1824.7KD51C2C3EA/VPB30PFVCCX1X2RESET47030PF1918931R54.7KR164.7KR172D41SW1SW-PB(双)2124SW2SW-PB(双)P1.02P1.1124P1.2SW3SW-PB(双)P1.32P1.4124P1.5SW4SW-PB(双)P1.62P1.7124P10P11P12P13P14P15P16P17VCCR6R7R8R9R10R11R12R13P00P01P02P03P04P05P06P07E1123456784704704704704704704704703938373635343332B11P20P21P22P23P24P25P26P27R4470LEDVCCVCCEC324R154.7KDS18202VCCDQ3SW-PB(双)1123GNDVCCVCC1FM1P2.7BELLR194.7KQ4C3B2E85501VCC+46
T1T0VCCAT89S52Q2PNP2122232425262728S8550三极管3个J34L1NO晶振112MSW5R310KC41710UF16RDWRRXDTXDALE/PPSEN10113029KM11继电器closeVCC35COML2U32NCopen12VCC相当于开关,继电器闭合时短接DS18B20的管脚:拿着平的那面正对着自己,从左手边数起,分别为1、2、3脚DPYaabcfbgdeecdfdpgdpcom23456789P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678123456789COM9
D2R112VCC1KIN4007DPYDPYaaabcfbfbggdeececddfdpdpgdp876543212PNP
J1J21+VCC12V+VCC12V3GNDGND22121电源座D1IN40072PU1L7805(大)VCC两位接线柱12J412220V输入
两位接线柱12发热管输出
附录2:系统源程序
TEMPER_L EQU 28H
TEMPER_H EQU FLAG1 EQU A_BIT EQU B_BIT EQU B1 EQU A1 EQU DQ EQU BELL ORG
28H
;用于保存读出温度的高8位 ;用于保存读出温度的高8位
38H ;是否检测到DS18B20标志位 20H ;数码管个位数存放内存位置 21H ;数码管十位数存放内存位置
70H ;温度小数点位 71H ;设定温度值 P3.1
;DQ为DS18B20数据位
;//蜂鸣报警
EQU P2.7
0000H ;单片机内存分配申明!
AJMP MAIN0
;/////////////////前面的都是定义
MAIN: MOV R0,#10 M1: CPL P2.3
ACALL DELAY125 DJNZ
R0,M1 ;//此段为灯闪5次,无实际意义
MAIN0: MOV A1,#80 ;默认加热为80度 MAIN1: LCALL D1820 ;调用读温度子程序
LCALL DISPLAY ;调用数码管显示子程序 MOV CLR C CJNE SETB
A,A1,MAIN1_1
BELL ;//温度相等,开启蜂鸣器
;//不相等,则跳转到MAIN1_1_A
A,29H
AJMP MAIN1_1_A
MAIN1_1: JC MAIN1_2 ;为1转移,表示小于设定温度
CPL
BELL ;蜂鸣器断续鸣叫
P2.3
;//下面是表示没达到温度
MAIN1_1_A:
CLR
SETB P2.5
47
AJMP MAIN2
;////主要是检测温度是否小于设定的温度,小于,则开发热管
P2.3
CLR
MAIN1_2: SETB BELL ;//关闭蜂鸣器
CLR
P2.5
;//开发热管
SETB P2.3
;///////////////////////////////上面的是大于,关发热管
MAIN2: JB P1.0,MAIN1 ;//看P1.0有否按下
ACALL DELAY125 ;//延时防抖动 JB P1.0,MAIN1 ;//再次查看 CLR P2.3
JNB P1.0,$ ;//等按键完全松手才进入! SETB SETB
P2.3 P2.5
;///检测到P1.0按键后后进入设定温度
MAIN2_1: ACALL DISPLAY1
JB P1.2,MAIN2_2 ACALL DELAY125 JB P1.2,MAIN2_2 JNB P1.2,$ MOV
A,#5
ADD A,A1 CLR C CJNE MOV
A,#100,MAIN2_1_1 A,#99
AJMP MAIN2_1_3
;////////////////上面这一段是+5度按键,按下+5度
JC MAIN2_1_3 CLR
C
MAIN2_1_1: MAIN2_1_2:
MOV A,#99
48
MAIN2_1_3: MOV A1,A
MAIN2_2: JB P1.4,MAIN2_3
ACALL DELAY125 JB P1.4,MAIN2_3 JNB
P1.4,$
MOV A,A1 CJNE A,#99,ZY1 MOV B,#4 AJMP ZY2
ZY1: ZY2:
MOV B,#5 CLR
C
MOV A,A1 SUBB A,B
JNC
MAIN2_2_2
MAIN2_2_1:
MOV A1,#0 AJMP MAIN2_3
;////////////////上面这一段是-5度按键,按下-5度
MOV A1,A
MAIN2_2_2:
MAIN2_3: JB P1.6,MAIN2_1
ACALL DELAY125 JB P1.6,MAIN2_1 CLR JNB
P2.3 P1.6,$
SETB P2.3 AJMP MAIN1
;/////////////上面这一段是退出的意思的!
D1820: LCALL GET_TEMPER ;调用读温度子程序
MOV B1,29H MOV A,29H
49
MOV C,40H ;将28H中的最低位移入C RRC
A
MOV C,41H RRC
A
MOV C,42H RRC
A
MOV C,43H RRC
A
MOV 29H,A MOV A,B1 MOV B,#10H MUL
AB
MOV B,#10H DIV
AB
MOV B,#10 MUL
AB
MOV B,#10H DIV
AB
MOV B1,A RET
;//////////上面这一段是读取温度后进行转换的意思!
INIT_1820: SETB DQ ;这是DS18B20复位初始化子程序
NOP CLR
DQ ;主机发出延时537微秒的复位低脉冲
MOV R1,#3
TSR1: MOV R0,#107
DJNZ R0,$ DJNZ R1,TSR1
SETB DQ ;然后拉高数据线 NOP
50
NOP NOP NOP
MOV R0,#25H
DQ,TSR3 ;等待DS18B20回应
TSR2: JNB
DJNZ R0,TSR2 LJMP TSR4 ;延时
TSR3: SETB FLAG1 ;置标志位,表示DS1820存在
LJMP TSR5
FLAG1 ;清标志位,表示DS1820不存在
TSR4: CLR
LJMP TSR7
TSR5: MOV R0,#117 TSR6: DJNZ R0,TSR6 TSR7: SETB DQ
RET
;时序要求延时一段时间
GET_TEMPER: SETB DQ ;读出转换后的温度值
LCALL INIT_1820 ;先复位DS18B20 JB FLAG1,TSS2 RET
;判断DS1820是否存在?若DS18B20不存在则返回
TSS2: MOV A,#0CCH ;DS18B20已经被检测到!跳过ROM匹配
LCALL WRITE_1820
MOV A,#44H ;发出温度转换命令 LCALL WRITE_1820
LCALL DISPLAY ;这里通过调用显示子程序实现延时一段时间,等待
AD转换结束,12位的话750微秒
LCALL INIT_1820 ;准备读温度前先复位 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH
;发出读温度命令
LCALL WRITE_1820
51
LCALL READ_18200 RET
;将读出的温度数据保存到35H/36H
WRITE_1820: MOV R2,#8 ;一共8位数据
CLR DQ
C ;写DS18B20的子程序(有具体的时序要求)
WR1: CLR
MOV R3,#6 DJNZ R3,$ RRC
A
MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP
DJNZ R2,WR1 SETB DQ RET
READ_18200: MOV R4,#2 ;将温度高位和低位从DS18B20中读出
MOV R1,#29H
;低位存入29H(TEMPER_L),高位存入
28H(TEMPER_H)
RE00: MOV R2,#8 ;数据一共有8位 RE01: CLR 据
C ;读DS18B20的程序,从DS18B20中读出两个字节的温度数
SETB DQ NOP NOP CLR NOP NOP NOP SETB DQ
52
DQ
MOV R3,#9
RE10: DJNZ R3,RE10
MOV C,DQ MOV R3,#23
RE20: DJNZ R3,RE20
RRC
A
DJNZ R2,RE01 MOV @R1,A DEC
R1
DJNZ R4,RE00 RET
;/////////////////上面的这些都是温度采集的!
DISPLAY: MOV A,29H ;将29H中的十六进制数转换成10进制
MOV B,#10 ;10进制/10=10进制 DIV
AB ;显示子程序
;十位在A ;个位在B
MOV A_BIT,A MOV B_BIT,B
MOV DPTR,#NUMTAB ;指定查表启始地址 MOV R0,#1
DPL1: MOV R1,#25 ;显示1000次 DPLOP: MOV A,B_BIT
;取个位数
;查个位数的7段代码
MOVC A,@A+DPTR MOV P0,A CLR
P2.2
;送出个位的7段代码 ;开个位显示
ACALL D1MS ;显示1MS SETB P2.2 MOV A,A_BIT
;取十位数
;查十位数的7段代码
MOVC A,@A+DPTR MOV P0,A
;送出十位的7段代码
53
CLR P2.1 ;开十位显示
ACALL D1MS ;显示1MS SETB P2.1 MOV P0,#0FFH
DJNZ R1,DPLOP ;100次没完循环 DJNZ R0,DPL1
;4个100次没完循环
RET
;////////////////////////上面这段显示实时温度
;将29H中的十六进制数转换成10进制
DISPLAY1: MOV A,A1
MOV B,#10 ;10进制/10=10进制 DIV
AB ;显示子程序
;十位在A ;个位在B
MOV A_BIT,A MOV B_BIT,B
MOV DPTR,#NUMTAB ;指定查表启始地址 MOV R0,#1
DPL11: MOV R1,#25 ;显示1000次 DPLOP1:
MOV A,B_BIT
;取个位数
;查个位数的7段代码
MOVC A,@A+DPTR MOV P0,A CLR
P2.2
;送出个位的7段代码 ;开个位显示
ACALL D1MS ;显示1MS SETB P2.2 MOV A,A_BIT
;取十位数
;查十位数的7段代码
MOVC A,@A+DPTR MOV P0,A CLR
P2.1
;送出十位的7段代码 ;开十位显示
ACALL D1MS ;显示1MS SETB P2.1 MOV P0,#0FFH
54
DJNZ R1,DPLOP1 ;100次没完循环 DJNZ R0,DPL11 ;4个100次没完循环 RET;/////////////////////////////上面这段显示设置温度
D1MS: MOV R7,#50 ;1MS延时
DJNZ R7,$ RET
DELAY10: MOV R6,#20 ;10MS延时 D3: MOV R5,#255
DJNZ R5,$ DJNZ R6,D3 RET
DELAY125: MOV R6,#255 ;125MS延时 D1: MOV R5,#255
DJNZ R5,$ DJNZ R6,D1 RET
DELAY1S: MOV R7,#8 ;1S延时 D2: LCALL DELAY125
DJNZ R7,D2 RET
;///////////////////////这些都是延时,长短而已
NUMTAB: DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,0F8H DB 80H,90H,88H,83H
DB 0C6H,0A1H,86H,8EH;////////////////////数码管的具体值
END
55
附录3:外文资料原文
Single-chip
SCM is also known as micro-controller (Microcontroller Unit), commonly used letters of the acronym MCU that it was first used in industrial control.Only a single chip by the CPU chip developed from a dedicated processor. The first design is by a large number of peripherals and CPU on a chip in the computer system, smaller, more easily integrated into a complex and demanding on the volume control device which. INTEL'sZ80 is the first designed in accordance with this idea processor, then on the development of microcontroller and dedicated processors have parted ways.
Are 8-bit microcontroller early or4 bits. One of the most successful is the INTEL 8031, for a simple, reliable and good performance was a lot of praise. Then developed in 8031 out of MCS51 MCU Systems. SCM systems based on this system until now is still widely used. With the increased requirements of industrial control field, began a 16-bit microcontroller, because the cost is not satisfactory but have not been very widely used. After 90 years with the great development of consumer electronics, microcontroller technology has been a huge increase. With INTEL i960 series, especially the later series of widely used ARM, 32-bit microcontroller quickly replace high-end 16-bit MCU status and enter the mainstream market. The traditional 8-bit microcontroller performance have been the rapid increase capacity increase compared to 80 the number of times. Currently, high-end 32-bit microcontroller clocked over 300MHz, the performance catching the mid-90's dedicated processor, while the average model prices fall to one U.S. dollars, the most high-end model only 10 dollars.Modern SCM systems are no longer only in the development and use of bare metal environment, a large number of proprietary embedded operating system is widely used in the full range of SCM. The handheld computers and cell phones as the core processing of high-end microcontroller can even use a dedicated Windows and Linux operating systems.
SCM is more suitable than the specific processor used in embedded systems, so it was up to the application. In fact the number of SCM is the world's largest computer. Modern human life used in almost every piece of electronic and mechanical products will be integrated single chip.Phone, telephone, calculator, home appliances, electronic toys, handheld computers and computer accessories such as a mouse with a 1-2 in both the Department of SCM. Personal computer will have a large number of
56
SCM in the work. General car with more than 40 SCM, complex industrial control systems may even have hundreds of SCM in the same time work! SCM is not only far exceeds the number of PC and other computing the sum, or even more than the number of human beings
Single chip, also known as single-chip microcontroller, it is not complete a certain logic chips, but to a computer system integrated into a chip.Equivalent to a micro-computer, and computer than just the lack of a microcontroller I / O devices. General talk: a chip becomes a computer. Its small size, light weight, cheap, for the study, application and development of facilities provided.
SCM and the computer functions internally with similar modules, such as CPU, memory, parallel bus, the same effect as well, and hard disk memory devices, and different is its performance of these components were relatively weak many of our home computer, but the price is low , usually not more than 10 yuan you can do with it some control for a class is not very complicated electrical work is enough of. We are using automatic drum washing machine, smoke hood, VCD and so on appliances which could see its shadow! It is primarily as a control section of the core components It is an online real-time control computer, control-line is that the scene is needed is a stronger anti-jamming ability, low cost, and this is, and off-line computer (such as home PC), the main difference. SCM history
SCM was born in the late 20th century, 70, experienced SCM, MCU, SOC three stages.First model 1.SCM the single chip microcomputer (Single Chip Microcomputer) stage, mainly seeking the best of the best single form of embedded systems architecture. \"Innovation model\" success, laying the SCM and general computer completely different path of development. In the open road of independent development of embedded systems, Intel Corporation contributed.
MCU the micro-controller (Micro Controller Unit) stage, the main direction of technology development: expanding to meet the embedded applications, the target system requirements for the various peripheral circuits and interface circuits, highlight the object of intelligent control.It involves the areas associated with the object system, therefore, the development of MCU's responsibility inevitably falls on electrical, electronics manufacturers. From this point of view, Intel faded MCU development has its objective factors. In the development of MCU, the most famous manufacturers as the number of Philips Corporation. Philips company in embedded applications, its
57
great advantage, the MCS-51 single-chip micro-computer from the rapid development of the micro-controller. Therefore, when we look back at the path of development of embedded systems, do not forget Intel and Philips in History.
Embedded system microcontroller is an independent development path, the MCU important factor in the development stage, is seeking applications to maximize the solution on the chip; Therefore, the development of dedicated single chip SOC trend of the natural form. As the microelectronics, IC design, EDA tools development, application system based on MCU SOC design have greater development. Therefore, the understanding of the microcontroller chip microcomputer can be, extended to the single-chip micro-controller applications.
MCU applications
SCM now permeate all areas of our lives, which is almost difficult to find traces of the field without SCM. Missile navigation equipment, aircraft, all types of instrument control, computer network communications and data transmission, industrial automation, real-time process control and data processing, extensive use of various smart IC card, civilian luxury car security system, video recorder, camera, fully automatic washing machine control, and program-controlled toys, electronic pet, etc., which are inseparable from the microcontroller. Not to mention the area of robot control, intelligent instruments, medical equipment was. Therefore, the MCU learning, development and application of the large number of computer applications and intelligent control of the scientists, engineers. SCM is widely used in instruments and meters, household appliances, medical equipment, aerospace, specialized equipment, intelligent management and process control fields, roughly divided into the following several areas:
1. In the application of Intelligent Instruments
SCM has a small size, low power consumption, controlling function, expansion flexibility, the advantages of miniaturization and ease of use, widely used instrument, combining different types of sensors can be realized Zhuru voltage, power, frequency, humidity, temperature, flow, speed, thickness, angle, length, hardness, elemental, physical pressure measurement. SCM makes use of digital instruments, intelligence, miniaturization, and functionality than electronic or digital circuits more powerful. Such as precision measuring equipment (power meter, oscilloscope, various analytical instrument).
2. In the industrial control application
58
With the MCU can constitute a variety of control systems, data acquisition system. Such as factory assembly line of intelligent control
3. In Household Appliances
Can be said that the appliances are basically using SCM, praise from the electric rice, washing machines, refrigerators, air conditioners, color TV, and other audio video equipment, to the electronic weighing equipment, varied, and omnipresent.
4. In the field of computer networks and communications applications
MCU general with modern communication interface, can be easy with the computer data communication, networking and communications in computer applications between devices had excellent material conditions, are basically all communication equipment to achieve a controlled by MCU from mobile phone, telephone,mini-program-controlled
switchboards,
building
automated
communications call system, train radio communication, to the daily work can be seen everywhere in the mobile phones, trunked mobile radio, walkie-talkies, etc..
5. Microcomputer in the field of medical device applications
SCM in the use of medical devices is also quite extensive, such as medical respirator, the various analyzers, monitors, ultrasound diagnostic equipment and hospital beds, etc. call system.
6. In a variety of major appliances in the modular applications
Designed to achieve some special single specific function to be modular in a variety of circuit applications, without requiring the use of personnel to understand its internal structure. If music integrated single chip, seemingly simple function, miniature electronic chip in the net (the principle is different from the tape machine), you need a computer similar to the principle of the complex. Such as: music signal to digital form stored in memory (like ROM), read by the microcontroller, analog music into electrical signals (similar to the sound card). In large circuits, modular applications that greatly reduce the volume, simplifies the circuit and reduce the damage, error rate, but also easy to replace.
In addition, the MCU in business, finance, research, education, national defense, aerospace and other fields has a very wide range of applications.
59
附录4:外文资料译文
单片机
单片机也被称为微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器。
早期的单片机都是8位或4位的,其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上,而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备,概括的讲:一块芯片就成了一台计算机。它的体积小、质量
60
轻、价格便宜、为学习、应用和开发提供了便利条件。
单片机主要是作为控制部分的核心部件。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。 1.单片机历史
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。 SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。
MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。
Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SOC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SOC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。 2.单片机的应用领域
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智
61
能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: (1)在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。
(2)在工业控制中的应用
用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管
(3)在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
(4)在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
(5)单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 (6)在各种大型电器中的模块化应用
某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,
62
微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
63
致 谢
四年的大学,匆匆而过,毕业设计是我们四年所学的一个体现,经历半年的努力,此次毕业设计即将结束。在毕业设计这一段时间里,多方面复习了在大学期间里学到的的各门知识,同时有了新的领悟,在专业技能、动手能力多方面都有了一定的提高。这次设计为我们打开了以后面向实际应用的大门,为我们以后做各项工作和进一步学习奠定了基础,这将是我人生旅途当中的重要一站!
在整个毕业设计的过程中,我受到了指导老师史宝忠老师和同学们的耐心辅导和热心帮助。从接受课题到现在完成毕业设计,尤其是在课题设计的前期准备工作和设计的过程中,对我进行了有关单片机设计方面系统的讲解,对我的毕业设计提出了很多创造性的意见及建议,在最后的论证修改过程中老师还在百忙之中,抽出大量的时间对我的论文提供了必要的指导和帮助。对我的毕业设计的成功起到了指导性和决定性的作用。老师还教给了我们遇到问题,如何去分析问题、解决问题的方法。这使得我能够顺利的完成毕业设计工作。在这里我向他表示真诚的感谢!
在这个论文设计之中,涉及到了四年所学方方面面的知识,所以要感谢所有的任课老师,老师,您辛苦了!除此之外,我还要感谢同学们的支持与帮助,尤其是编程方面。通过完成毕业设计,我深刻的体会到了拥有良师益友是多么的重要、多么的难得。在此我表示深深的感谢!同时我也要感谢母校的辛勤培育之恩,感谢它给我提供的良好学习及实践环境,使我学到了许多新的知识,掌握了一定的操作技能。总之,感激师友们的教诲和帮助,谢谢!
64
因篇幅问题不能全部显示,请点此查看更多更全内容