毕业设计(论文)-基于单片机AT89C51的电热炉温度控制系条统的设计与仿真.doc

上传人:本田雅阁 文档编号:2108046 上传时间:2019-02-14 格式:DOC 页数:38 大小:681.52KB
返回 下载 相关 举报
毕业设计(论文)-基于单片机AT89C51的电热炉温度控制系条统的设计与仿真.doc_第1页
第1页 / 共38页
毕业设计(论文)-基于单片机AT89C51的电热炉温度控制系条统的设计与仿真.doc_第2页
第2页 / 共38页
毕业设计(论文)-基于单片机AT89C51的电热炉温度控制系条统的设计与仿真.doc_第3页
第3页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《毕业设计(论文)-基于单片机AT89C51的电热炉温度控制系条统的设计与仿真.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于单片机AT89C51的电热炉温度控制系条统的设计与仿真.doc(38页珍藏版)》请在三一文库上搜索。

1、 目 录 摘 要 1 ABSTRACT .2 第 1 章 绪 论 .3 1.1 单片机的应用 3 1.2 电热炉控制中的问题 3 1.3 本设计主要内容 4 第 2 章 设计仿真平台和编程软件 5 2.1 设计仿真软件 PROTEUS5 2.2 编程软件 KEIL.7 第 3 章 系统硬件结构设计 8 3.1 系统硬件组成 8 3.2 PROTEUS原理图设计 8 3.3 硬件电路结构 .12 3.3.1 主控制芯片 AT89C51 原理及其说明12 3.3.2 外部时钟电路14 3.3.3 测温模块14 3.3.4 显示模块16 3.3.5 开关模块17 3.3.6 报警模块18 3.4 实

2、际情况中的问题 .18 第 4 章 系统软件设计及调试 .20 4.1 系统程序设计 .20 4.1.1 DS18B20 测温程序设计 22 4.1.2 LM016L 显示程序设计 .23 4.2 KEIL与 PROTEUS联调 .24 第 5 章 总结与展望 .27 5.1 总结 .27 5.2 展望 .27 参考文献 28 致 谢 29 附 录 30 1 摘 要:电热炉可使用金属发热体或非金属发热体来产生热源,其构造简单,工业电 热炉的主要用途是供机械工业对原材料、毛坯、机械零件加热用。温度控制对于电热 炉是至关重要的。 为了更好地控制温度、提高控制质量,选用单总线芯片DS18B20作为温

3、度传感器, 进行了基于单片机AT89C51的温度控制系统的设计与仿真。显示模块选用LCD显示器, 控制更为简单,显示更为清晰。配以键盘模块及由二极管、蜂鸣器组成的报警模块, 组合成较为完整的温度控制系统硬件。选用Proteus软件绘制电路原理图,同时选用软 件Keil进行编程编译,并将Keil与Proteus联调,在Proteus中查看仿真结果,实现温度的 自动控制。 关键词:单片机、温度控制、Keil、Proteus 仿真 2 Abstract:Electric furnace can use metal heater or ThermalTek to generate heat. Its

4、structure is simple. Industrial electric furnaces are mainly used for the engineering industry for heating raw materials, blanks and machine parts. Temperature control is critical for electric furnace. In order to control the temperature better and improve control quality, temperature control system

5、 based on AT89C51 microcontroller is designed and simulated. It uses a single bus chip DS18B20 as a temperature sensor. LCD monitor is used in display module for more simple control and more clearly shown. Accompanied by the keyboard module and alarm module consisting of the diode and buzzer, comple

6、te temperature control system hardware is formed. Circuit schematic diagram is drawn in proteus software, and the programs are compiled in the Keil platform. By debagging of keil and proteus, the simulation results can be viewed in proteus. And then temperature control is achieved. Keywords: Single

7、Chip、Temperature control、Keil、Proteus simulation 3 第 1 章 绪 论 1.1 单片机的应用 单片机具有体积小、可靠性高、功能强、使用方便、性能价格比高、容易产品化 等特点。国际上从 1970 年代开始,国内自 1980 年代以来,单片机已广泛应用于国民 经济的各个领域,对各个行业的技术改造和产品的更新换代起重要的推动作用。其应 用大致可分为如下几个范畴: 1、在智能仪器仪表上的应用 单片机具有功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应 用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温 度、流量、速度

8、、厚度、角度、长度、硬度、元素、压力等物理量的测量。 2、在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。在工业过程控制、机床 控制、机器人控制、汽车控制以及飞行器制导系统等方面得到广泛应用。 3、在家用电器中的应用 这个领域的应用特点是量大面广并且具有价格低廉的特点,如电饭锅、电子游戏 机、电视机、录音机、组合音响、洗衣机、电冰箱以至电子玩具等,都广泛地使用单 片机进行控制。 4、在计算机网络和通信领域中的应用 现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交 换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话, 集群移动通

9、信,无线电对讲机等。 5、单片机在医用设备领域中的应用 单片机在医用设备中的用途相当广泛,例如医用呼吸机,各种分析仪,监护仪, 超声诊断设备及病床呼叫系统等等。 6、在各种大型电器中的模块化应用 某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而 不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电 子芯片中(有别于磁带机的原理),需要复杂的类似于计算机的原理。又如音乐信号 以数字的形式存于存储器中(类似于 ROM),由微控制器读出,转化为模拟音乐电信 号(类似于声卡)。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路, 降低了损坏、错误率,也

10、方便于更换。 7、单片机在汽车设备领域中的应用 单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于 CAN 总 线的汽车发动机智能电子控制器,GPS 导航系统,ABS 防抱死系统,制动系统等等。 1 1.2 电热炉控制中的问题 温度是工业生产和科学实验中一个非常重要的参数。许多生产过程都是在一定的 温度范围内进行的,甚至对温度的要求相当严格,因此生产现场需要测量温度和控制 4 温度。温度是电热炉需要控制的主要参数。在传统的电热炉温度控制系统中,炉温控 制采用温度仪表监视和人工调节相结合的方式,电热炉的电源通断大多采用交流接触 器来控制。这种控制方式结构简单,但控制精度差,控制速度

11、慢,在资源方面耗费人 力且本身耗能多,控制器的噪音大,而且在控温过程中由于接触器频繁通断,经常发 生触点电弧放电现象,容易造成短路,使接触器损坏,对操作人员和设备带来不利影 响及安全隐患。传统的定值开关温度控制法存在温度滞后的问题,而多数传统基于常 规PD控制的控制装置,存在精度不高、效率低等问题。 1.3 本设计主要内容 本课题是基于单片机的电热炉温度控制系统的设计,要求实现温度自动控制,同 时显示实际温度值和设定温度值,并控制实际温度值与设定温度值相差不超过 2 度, 超过 范围时自动报警并作出相应的动作。温度的控制图如图 1-1 所示。 CPU对象 测温 显示 设定值 输出值 - 图 1

12、-1 温度控制反馈图 第二章中简单介绍了编程软件 Keil 及电路设计仿真软件 Proteus。第三章介绍本设 计硬件结构及所涉及的芯片、电路说明,主控制芯片采用 AT89C51;由于 DS1302 是 一种高性能的芯片,可自动计时计数,故时钟电路采用 DS1302;温度传感芯片 DS18B20 是单总线结构芯片,结构简单,接线少,且程序编写简单,故温度采集、转 换、传递采用 DS18B20;LCD 显示电路结构简单且软件设计也相对简单,具有低功耗 特点,因此显示模块采用 LCD 显示。第四章简单讲述了程序的编写及 Keil 与 Proteus 联调显示的结果,具体程序见附录。 本课题基于编程

13、软件 Keil 和硬件电路仿真软件 Proteus,在 Keil 软件中程序编译成 功后与 Proteus 软件的原理图联调,仿真实现课题要求。 5 第 2 章 设计仿真平台和编程软件 2.1 设计仿真软件 Proteus Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件。该软件将处 理器模型、Prospice 混合电路仿真、虚拟仪器、高级图形仿真、动态器件库和外设模型、 处理器软仿真器、第三方的编译器和调试器等有机结合起来,真正第一次实现了在计算 机上完成从原理图设计、处理器代码调试及实时仿真、系统测试及功能验证,甚至可以 生成 PCB,功能及其强大。它

14、运行于 Windows 操作系统上,可以仿真集成电路,简单 介绍该软件的特点如下: 具有强大的原理图绘制功能。 支持主流单片机系统的仿真。目前支持的单片机类型有:68000 系列、8051 系 列、AVR 系列、HC11 系列、PIC12 系列、PIC16 系列、PIC18 系列、Z80 系列以及各 种外围芯片如 LCD、DS18B20。 实现了单片机仿真和 SPICE 电路仿真相结合。在元件库中有各种虚拟仪器,如 示波器、逻辑分析仪、信号发生器等。具有模拟电路仿真、数字电路仿真、单片机及 其外围电路组成的系统的仿真、RS232 动态仿真、I2C 调试器、SPI 调试器、键盘和 LCD 系统仿

15、真的功能。 提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能, 同时可以观察各个变量、寄存器等的当前状态,在该软件仿真系统中同时支持第三方 的软件编译和调试环境,如 Keil C51 uVision2 等软件。 Proteus ISIS 的工作界面是一种标准的 Windows 界面,如图 2-1 所示。包括:标题 栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制 按钮、仿真进程控制按钮、图形编辑窗口、对象选择器窗口、预览窗口。 图 2-1 Proteus界面 6 其中各部分的功能简单介绍如下: 原理图编辑窗口(The Editing Window)

16、:用来绘制电路原理图。蓝色方框内 为可编辑区,画元件时要放置到里面。这个窗口没有滚动条,可通过拖动预览窗口的 绿色方框来改变原理图的可视范围。 预览窗口(The Overview Window):它可显示两个内容,在元件列表中选择 一个元件时,可以显示该元件的预览图;鼠标焦点落在原理图编辑窗口时,会显示整 张原理图的缩略图,并会显示一个绿色的方框,绿色的方框里面的内容就是当前原理 图窗口中显示的内容。 模型选择工具栏(Mode Selector Toolbar): 主要模型(Main Modes): 1* 选择元件(components) 2* 放置连接点 3* 放置标签(用总线时会用到) 4

17、* 放置文本 5* 绘制总线 6* 放置子电路 7* 即时编辑元件参数 配件(Gadgets): 1* 终端接口(terminals):有VCC、地、输出、输入等接口 2* 器件引脚:用于绘制各种引脚 3* 仿真图表(graph):用于各种分析,如Noise Analysis 4* 录音机 5* 信号发生器(generators) 6* 电压探针:使用仿真图表时要用到 7* 电流探针:使用仿真图表时要用到 8* 虚拟仪表:有示波器等 2D图形(2D Graphics): 1* 画各种直线 2* 画各种方框 3* 画各种圆 4* 画各种圆弧 5* 画各种多边形 6* 画各种文本 7* 画符号 8

18、* 画原点等 元件列表(The Object Selector):用于挑选元件(components)、 终端接口 (terminals)、 信号发生器(generators)、 仿真图表(graph)等。当选择“元件 (components)”,单击“P”按钮会打开挑选元件对话框,选择了一个元件后(单击了 “OK”后),该元件会在元件列表中显示,以后要用到该元件时,只需在元件列表中选 择即可。 方向工具栏(Orientation Toolbar): 7 旋转:旋转角度只能是90的整数倍。 翻转:完成水平翻转和垂直翻转。 使用时先右键单击元件,再点击(左击)相应的旋转图标。 仿真工具栏 仿真控

19、制按钮 1* 运行 2* 单步运行 3* 暂停 4* 停止 通过单步运行可以查看程序的执行情况。 2.2 编程软件 Keil 目前流行的 51 系列单片机开发软件是德国 Keil 公司推出的 Keil C51 软件,它是 一个基于 32 位 Windows 环境的应用程序,支持 C 语言和汇编语言编程,其 6.0 以上的 版本将编译和仿真软件统一为 Vision(通常称为 V2) 。Keil 提供 C 编译器、宏汇编、 连接器、库管理和一个功能强大的仿真调试器等的完整开发方案,界面如图 2-2 所示。 该软件由以下几部分组成:Vision IDE 集成开发环境、C51 编译器、A51 汇编器、

20、 LIB51 库管理器、BL51 连接/定位器、OH51 目标文件生成器以及 Monitor-51、RTX51 实时操作系统。 图 2-2 Keil 界面 keil vision2 编写程序一般步骤如下: 1、新建工程 2、新建源程序文件,可以是 C 语言或汇编语言等 3、把源程序添加到工程中 4、编译并生成 Hex 文件 8 绘制原理图及编写程序过程见第三章、第四章,本章不再叙述。 9 第 3 章 系统硬件结构设计 3.1 系统硬件组成 系统硬件设备由以下几部分组成: 单片机:本系统选用AT89C51, 它的片内有集成的存储器, 无需外接存储器, 使程序写入更加方便。 温度测量电路: 采用美

21、国公司生产的单总线数字式温度传感器, 由于是单总线 结构,具有结构简单, 不需要外接电路,可用一根数据线既供电又传输数据, 并且具有体 积小,分辨率高,转换快等优点。 键盘设定电路:输入设定的温度, 必须依靠键盘, 这里利用单片机的P2口连接 矩阵式键盘, 采用扫描方式读键值,以实现温度设定。 温度显示电路:采用LCD显示器,电路比较简单,且在软件设计上也相对简单,具有低 功耗功能,能够满足设计最优的要求。为使显示器能正常显示、稳定工作, 单片机的P0口作 为数据输出接口,P1口作为控制字输入端口。 报警电路: 在系统温度达到上下限报警温度时选择发光二极管和蜂鸣器来实 现这一功能。发光二极管工

22、作时需要电流, 设计时考虑了相应的控制电路。 3.2 Proteus 原理图设计 本设计采用 AT89C51 作为控制系统,DS18B20 温度传感器采集、转换温度,显示 器 LM016L 显示温度,用 proteus 画的原理图如图 3-1 所示: 图 3-1 原理图 10 电路图的绘制过程如下: 1、将所需元器件添加到对象选择器窗口。 单击对象选择器按钮,如图 3-2 所示。 图 3-2 选择元件 弹出“Pick Devices”页面,在“Keywords”输入 AT89C51,系统在对象库中进行搜索 查找,并将搜索结果显示在“Results”中,如图 3-3 所示。 图 3-3 查找元件

23、 在“Results”栏中的列表项中,双击“AT89C51” ,则可将“AT89C51”添加至对象选 择器窗口。同理,添加 LM016L、DS18B20、LED、DS1302 等其他涉及的元器件至对 象选择器窗口。如图 3-4 所示。 图 3-4 对象选择器窗口 11 2、放置元器件至图形编辑窗口 在对象选择器窗口中,选中 AT89C51,将鼠标置于图形编辑窗口该对象的欲放位 置、单击鼠标左键,该对象放置完成。若对象位置需要移动,将鼠标移到该对象上, 单击鼠标右键,该对象的颜色变至红色,表明该对象已被选中,按下鼠标左键,拖动 鼠标,将对象移至新位置后,松开鼠标,完成移动操作。同理放置其他元器件

24、,如图 3-5 所示。 图 3-5 放置元件 3、元器件之间的连线 Proteus 具有线路自动路径功能(简称 WAR),当选中两个连接点后,WAR 将选择 一个合适的路径连线。WAR 可通过使用标准工具栏里的“WAR”命令按钮来关闭 或打开,也可以在菜单栏的“Tools”下找到这个图标。例如,在 LCD 红色引脚处引出 起点,连接到单片机对应引脚。如图 3-6 所示。同理,可以完成其它连线。在此过程的任何 时刻,都可以按 ESC 键或者单击鼠标的右键来放弃画线。 图 3-6 连线 12 4、给总线或应连接而不便连接的导线贴标签 单击绘图工具栏中的导线标签按钮,使之处于选中状态。将鼠标置于图形

25、编辑 窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“”号,如图 3-7 所示。 表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如图 3-8 所示。 图 3-7 贴标签 图 3-8 编辑标号 在“string”栏中,输入标签名称(如 P10),单击“OK”按钮,结束对该导线的标签标 定。如图 3-9 所示。同理,可以标注其它导线的标签。 图 3-9 编辑好的标签 5、加入电源、接地 单击工具栏中按钮,出现如图 3-10 后选择 POWER 或 GROND,将电源或接地 符号放置在相应引脚上。如图 3-11 所示。 图 3-10 选择电源或地 13 图 3-11 放置电源或地

26、 在绘制过程中如需删除元器件或导线、标签等,用右键双击需要删除的对象即可。 至此,电路图基本绘制完成。根据实际要求可不断修改。 3.3 硬件电路结构 3.3.1 主控制芯片 AT89C51 原理及其说明 AT89C51 是美国 ATMEL 公司生产的低电压、高性能 CMOS 8 位单片机,片内含 4k bytes 的可反复擦写的只读程序存储器(PEROM)和 128 bytes 的随机存取数据存 储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 FLASH 存储单元,功能强 大,可灵活应用于各种

27、控制领域。 主要性能参数: 与 MCS-51 产品指令系统完全兼容 4K 字节可重复擦写 FLASH 闪速存储器 1000 次擦写周期 全静态操作:0Hz24MHz 三级加密程序存储器 128*8 字节内部 RAM 32 个可编程 I/O 口线 2 个 16 位定时/计数器 6 个中断源 可编程串行 UART 通道 低功耗空闲和掉电模式 引脚功能: VCC(40):电源电压 GND(20):接地 P0 口(32-39):P0 口是一个 8 位双向 I/O 接口,也即地址/数据总线复用口。作为输 出口用时,每位以吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“1”时, 可作为高

28、阻抗输入端用。在访问外部数据存储器时,这组口线分时转换地址(低 8 位)和 14 数据总线复用。 P1 口(1-8):P1 是一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级可驱动 (吸收或输出电流)4 个 TTL 逻辑门电路,对端口写“1”通过内部的上拉电阻把端口 拉到高电平时,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个 引脚被外部信号拉低时会输出一个电流。P1.0 和 P1.1 还可以分别作为定时/计数器 2 的 外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。 P2 口(21-28):P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P

29、2 的输出缓冲级可 驱动(吸收或输出电流)4 个 TTL 逻辑门电路,对端口 P2 写“1” ,通过内部的上拉电 阻把端口拉到高电平时,此时可作输入口。作为输入口使用时,因为内部存在上拉电 阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或 16 位地址 的外部数据存储器时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器 时,P2 口输出 P2 锁存器的内容。 P3 口(10-17):P3 是一组带有内部上拉电阻的 8 位双向 I/O 口,P3 口输出缓冲级可 驱动(吸收或输出电流)4 个 TTL 逻辑门电路,对端口 P3 写“1”时,它们被内部上 拉电阻拉

30、高并可作为输入端口,此时,被外部拉低的 P3 口将用上拉电阻输出电流。P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能,如表 3-1 所示: 表 3-1 P3 口的第二功能 端口引脚第二功能 P3.0RXD(串行输入口) P3.1TXD(串行输出口) P3.2INT0(外中断 0) P3.3INT1(外中断 1) P3.4T0(定时/计数器 0) P3.5T1(定时/计数器 1) P3.6WR(外部数据存储器写通道) P3.7RD(外部数据存储器读通道) RST(9):复位信号输入端。当振荡器工作时,RST 引脚出现两个机器周期以上高 电平将使单片机复位。复位电路如图 3-1

31、2 所示。 图 3-12 复位电路 XTAL1(19):振荡器反相放大器的输入端及内部时钟发生器的输入端。 15 XTAL1(18):振荡器反相放大器的输出端。通过 XTAL1、XTAL2 外接晶振后,即 可构成自激振荡器,驱动内部时钟发生器向主机提供时钟信号。震荡电路如图 3-13 所 示。 图 3-13 震荡电路 3.3.2 外部时钟电路 在时间控制中,如果用系统的定时器设计时钟,当偶然掉电或晶振的误差都会造成 时间的错乱,因此本设计采用 DS1302 构成时钟电路。如图 3-14 所示: 图 3-14 时钟电路 DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM

32、 的实时时钟 电路芯片,它可以对年、月、日、时、分、秒进行计时,具有闰年补偿功能,工作电 压为 2.5V5.5V。采用三线接口与 CPU 进行同步通信,这里与单片机的 P1.5、P1.6、P1.7 口连接,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数 据。DS1302 内部有一个 318 的用于临时性存放数据的 RAM 寄存器。 DS1302 可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,可以同 时记录数据与出现该数据的时间。这种记录对长时间的连续测控系统结果的分析及对 异常数据出现的原因的查找具有重要意义。传统的数据记录方式是定时采样,不能记 录时间,因此,只能记录数

33、据而无法准确记录其出现的时间;若采用单片机计时,一 方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,耗费单片机 的资源。但是,如果在系统中采用时钟芯片 DS1302,就能很好地解决这个问题。 本设计将 DS1302 芯片作为一个扩展。 3.3.3 测温模块 温度传感器是各种传感器中最常用的一种,早期使用模拟温度传感器如热电阻。 现代的温度传感器已经走向数字化、微型化、集成化。本设计采用 DS18B20。 在 Proteus 中温度传感器 DS18B20 的元件图形及实物图如图 3-15 所示。 16 图 3-15 DS18B20 元件图及实物图 DS18B20 是 DALLAS

34、 公司生产的 1Wire,即单总线器件,具有微型化、低功耗、 高性能、抗干扰能力强、易配微处理器等优点,与单片机接口仅需占用一个 I/O 端口, 无须任何外部元件,直接将环境温度转化成串行数字信号供处理器处理。其特性如下: (1)只要求一个端口即可实现通信。 (2)在 DS18B20 中的每个器件上都有独一无二的序列号。 (3)实际应用中不需要外部任何元器件即可实现测温。 (4)测量温度范围在55到125之间。 (5)数字温度计的分辨率用户可以从 9 位到 12 位选择。 (6)内部有温度上、下限报警设置。 (7)支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点 测

35、温。 (8)电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 如果需要控制多个 DS18B20 进行温度采集,只需将 DS18B20 的 I/O 口都连到一起。 如图 3-16 所示。 DS 18B 20DS 18B 20DS 18B 20 4.7 K GNDGNDGND VCC VCC单 片 机 . . . . 图 3-16 DS18B20 多点测温 DS18B20 的引脚功能为:DQ 为数字信号输入/输出端;GND 为电源地;VCC 为 外接供电电源输入端。本设计使用单片机 AT89C51 的 P1.0 口与 DS18B20 的单总线端 口 DQ 相连。如图 3-15 所示。 DS1

36、8B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温 度报警触发器 TH 和 TL、配置寄存器。 DS18B20在出厂时默认设置为12位,最高位为符号位,温度值共11位。单片机在 读取数据时一次读取2个字节共16位,前5位为符号位,当前5位为1时,读取的温度为 负值,读到的数值要取反加1再乘以0.0625才是实际温度值。而当前5位为0时,读取的 17 温度为正值,读到的数值直接乘以0.0625便是实际温度值。 根据 DS18B20 的通讯协议,主机控制 DS18B20 完成温度转换必须经过三个步骤: 每一次读写之前都要对 DS18B20 进行复位,复位成功后发送一条

37、 ROM 指令,最后发 送 RAM 指令,这样才能对 DS18B20 进行预定的操作。复位要求主 CPU 将数据线下拉 500 微秒,然后释放,DS18B20 收到信号后等待 1660 微秒左右,后发出 60240 微 秒的存在低脉冲,主 CPU 收到此信号表示复位成功。 在实际使用中,DS18B20 有以下事项需要注意: 在对 DS18B20 进行读写编程时,必须严格的保证读写时序,否则将无法读取测 温结果。 在用 DS18B20 进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹 配问题。因为连接 DS18B20 的总线电缆是有长度限制的。 向 DS18B20 发出温度转换命令后,程序

38、要等待 DS18B20 的返回信号,假如某 个 DS18B20 接触不好,当程序读该 DS18B20 时,将没有返回信号,程序会进入死循 环。 DS18B20 的初始化、工作时序见第四章。 3.3.4 显示模块 液晶显示器的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构 成画面。各种型号的液晶显示器通常按照显示的行数来命名,如1602,就是每行显示 16个字符,一共显示2行。 液晶显示器(LCD)具有功耗低、体积小、质量轻的特点。点阵字符型液晶显示 器把LCD 控制器、点阵驱动器、字符存储器集成在一块印刷电路板上,构成便于应用 的液晶模块。这类液晶模块不仅可以显示数字、字符,还可以

39、显示各种图形符号以及 少量自定义符号,并且可以实现屏幕的上下左右滚动、文字的闪烁等功能。但是液晶 的使用温度范围比较窄,通用型液晶正常工作范围为055。因此在设计产品时, 要选取合适的液晶显示器。 本设计使用显示器LM016L,如图3-16所示。 图 3-16 LM016L 液晶显示器 LM016L 主要技术参数如下: 显示容量:16*2 个字符 芯片工作电压:4.55.5V 工作电流:2.0mA 字符尺寸:2.95*4.35(W*H)mm 表 3-1 LM016L 引脚说明 管脚号名称电平功能描述 18 1VSS0V 2VDD5.0V 3VEE 4RSH/LH:数据线上为数据信号;L:数据线

40、上为指令信号 5RWH/LH:读数据模式;L:写数据模式 6EH/L使能信号端 714DB0DB7H/L数据口 采用液晶显示装置即把温度信号显示在液晶显示器上,不仅结构简单清新可见, 而且省电容易控制。数据的传输采用 P0 口进行控制, 与显示器的 D0D7 脚相连,同 时连接一个 8 脚排阻。其引脚 VSS 和 VEE 接地,VDD 接高电平,RS 和 RW、E 是显 示器的控制端,分别由单片机的引脚 P1.1、P1.2、P1.3 进行控制。如图 3-17 所示。 图 3-17 LM016L 与单片机的连接 显示器相关初始化、读写控制见第四章。 3.3.5 开关模块 本课题温度设定由矩阵式键

41、盘设定,键盘是一组按键的组合,共有 12 个按键,分 别是 0、1、2、3、4、5、6、7、8、9、+、-,电路如图 3-18 所示。 。通常用到的开关 都是机械弹性开关,当开关闭合时,线路导通,开关断开时,线路断开。单片机 AT89C51 的 P2 口作为检测按键时用的 I/O 口与矩阵键盘两端都相连,在检测是否有键 按下时需人为通过 P2 口送出低电平。即采用扫描式读键值。检测时,先送一列为低电 平,其余几列全为高电平,然后轮流检测一次各行是否有低电平,若某一行有低电平, 则可确认当前按下的键的行列数。 键在按下和释放的瞬间会产生抖动现象,因此在检测键盘时要加上去抖动电路, 本设计使用延时

42、程序来去抖动。 19 图 3-18 键盘模块 3.3.6 报警模块 本设计采用发光二极管和蜂鸣器作为报警装置。当实际温度达到上限或下限时, 相关二极管发光、蜂鸣器报警;实际温度低于设定温度时,发光二极管点亮报警。二 极管分别与 P3.0、P3.1、P3.2、P3.3 相连,蜂鸣器与 P3.4 连接。电路如图 3-19 所示。 图 3-19 报警模块及相应管脚连接 3.4 实际情况中的问题 实际的温度控制是一个反馈控制,CPU 进行温度处理后控制信号作用于对象,将 对象的测温结果再反馈给 CPU,是一个动态过程。 在实际的硬件电路中,温度的对象是具体存在的,但在 proteus 中,DS18B2

43、0 已经 包含了温度对象,对电阻 R6 的控制就是对温度对象的控制,再通过 DS18B20 的测温 反馈到单片机中。单片机对实际温度与设定温度进行比较后,根据设定要求通过热电 阻等器件加温,通过自然冷却降温,从而达到温度的大致恒定。DS18B20 在实际中仅 作温度传感器使用,但在 proteus 中可以通过改变 DS18B20 的值来改变实际温度的值。 在本设计中控制方法是定值开关温度控制,没有采用 PID 控制算法,可以满足本 设计要求。在实际应用中还有 PD、PID 算法,可以达到比较高的精度。不同的控制对 象,所采用的算法有所不同。例如对于热惯性大、时间滞后明显、耦合强、难于建立 精确

44、数学模型的大型立式淬火炉,可以采用人工智能模糊控制算法,通过对淬火炉电 20 热元件通断比的调节,实现对炉温的自动控制,也可以采用仿人智能控制(SHIC)算 法和 PID 控制算法的联合控制方案,实际应用时应灵活运用。 本设计中考虑到对对象的执行部分,如图 3-20 所示。单片机的 P3.7 口控制热电阻 的通断。当经过比较后需要加温时 P3.7 输出高电平。否则保持低电平。 图 3-20 加热电阻 实际的工业情况中,温度的测量变送可以使用模拟式温度变送器或智能式温度变 送器。执行机构一般采用电动执行机构。如电动阀门。控制信号从控制器传送到电动 阀门即是从控制室传送到现场,需要通过安全栅,并采

45、用直流电流信号。具体参见控 制仪表相关书籍。 21 第 4 章 系统软件设计及调试 4.1 系统程序设计 Keil 使用“工程” (Project)的概念,对工程(而不能对单一的源程序)进行编译/ 汇编、连接等操作。首先新建工程(Project-new project) ,如图 4-1 所示。 图 4-1 新建工程 文件保存类型为.uv2,如图 4-2 所示。 图 4-2 保存工程 点击保存后在跳出来的对话框中选择 Ateml 下面的 89c51 单片机。如图 4-3 所示。 22 图 4-3 选择单片机类型 这时工程管理窗口的文件页(Files)会出现“Target1” ,将其前面+号展开,

46、接着 选择 Source Group1,右击鼠标弹出快捷菜单,选择“Add File to Group Source Group1 ” ,如图 4-4 所示。出现一个对话框,要求寻找并加入源文件,源文件后缀为.c 或.asm,如图 4-5 所示。打开空白 c 文件就可以开始编写程序了。 图 4-4 添加源文件 23 图 4-5 源文件 4.1.1 DS18B20 测温程序设计 1、DS18B20 的控制指令如下: CCH跳过 ROM。忽略 64 位 ROM 地址,直接向 DS18B20 发送温度变换命令。 55H匹配 ROM,发出此命令后发出 64 位 ROM 编码,访问单总线上与该编码 相对

47、应的 DS18B20 并使之做出响应。 33H读 ROM 中的编码。 如果主机只对一个 DS18B20 进行操作(即本设计这样的情况) ,只需用跳过 ROM(CCH)命令就可进行温度转换和读取操作。如下: 44H温度转换。启动 DS18B20 进行温度转换,结果存入内部 9 字节的 RAM 中。 BEH读暂存器。读内部 RAM 中 9 字节的温度数据。 4EH写暂存器。发出向内部 RAM 的第 2、3 字节写上下限温度数据命令,随 后传送两字节的数据。 2、工作时序及相应程序: 初始化: 先将数据线置高电平 1; 延时; 数据线拉到低电平 0; 延时; 数据线拉到高电平 1; 延时等待; 数据

48、线再次拉到高电平 1。 具体的程序应用如下: void dsreset(void) uint i; ds=0; i=103; while(i0)i-; ds=1; i=4; while(i0)i-; 写数据: 数据线置低电平 0; 延时 15us; 按从低位到高位的顺序发送数据; 24 延时 45 us; 将数据线拉到高电平 1; 重复步骤,直到发送完整个字节; 再次将数据线拉高到 1。 读数据: 将数据线拉高到 1; 延时 2us; 将数据线拉低到 0; 延时 6us; 将数据线拉高到 1; 延时 4us; 读数据线的状态得到一个状态位,并进行数据处理; 延时 30us; 重复步骤,直到读取

49、完一个字节。 在编写具体的程序时,首先要对 DS18B20 进行复位初始化,其次编写读一位数据 函数、读一个字节数据函数、写一个字节数据函数、温度的获取转换程序、读温度程 序等子程序。详细程序见附录。 4.1.2 LM016L 显示程序设计 1、基本工作时序: 读状态 输入:RS=0,RW=1,E=1 输出:D0D7=状态字 读数据 输入:RS=1,RW=1,E=1 输出:无 写指令 输入:RS=0,RW=0,D0D7=指令码,E=高脉冲 输出:D0D7=数据 写数据 输入:RS=1,RW=0,D0D7=数据,E=高脉冲 输出:无 2、初始化设置: 原则上每次进行读/写之前都必须进行读/写检测,但由于单片机的操作速度慢于液 晶控制器的反应速度,因此可以用简单延时代替读/写检测。本设计所用初始化指令如 下: write_com(0X01); 显示清 0,数据指针清 0 write_com(0X

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1