基于51单片机的多路温度采集控制系统设计

合集下载

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

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

基于 51 单片机的水温自动控制系统引言在现代的各种工业生产中,不少地方都需要用到温度控制系统。

而智能化的控制系统成为一种发展的趋势.本文所阐述的就是一种基于 89C51 单片机的温度控制系统。

本温控系统可应用于温度范围30℃到96℃。

设计并制作一水温自动控制系统,可以在一定范围(30℃到96℃)内自动调节温度,使水温保持在一定的范围(30℃到96℃)内。

(1) 利用摹拟温度传感器检测温度,要求检测电路尽可能简单。

(2) 当液位低于某一值时,住手加热。

(3) 用 AD 转换器把采集到的摹拟温度值送入单片机。

(4) 无竞争—冒险,无颤动。

(1) 温度显示误差不超过1℃.(2) 温度显示范围为0℃—99℃。

(3) 程序部份用 PID 算法实现温度自动控制。

(4) 检测信号为电压信号。

根据设计要求和所学的专业知识,采用 AT89C51 为本系统的核心控制器件。

AT89C51 是一种带4K 字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8 位微处理器。

其引脚图如图1 所示。

显示模块主要用于显示时间,由于显示范围为0~99℃,因此可采用两个共阴的数码管作为显示元件.在显示驱动电路中拟订了两种设计方案:方案一:采用静态显示的方案采用三片移位寄存器 74LS164 作为显示电路,其优点在于占用主控系统的 I/O 口少,编程简单且静态显示的内容无闪烁,但电路消耗的电流较大。

方案二:采用动态显示的方案由单片机的 I/O 口直接带数码管实现动态显示, 占用资源少,动态控制节省了驱动芯片的成本,节省了电,但编程比较复杂,亮度不如静态的好。

由于对电路的功耗要求不大,因此就在尽量节省 I/O 口线的前提下选用方案一的静态显示.图 1 AT89C51 引脚图1 温度检测:有选用 AD590 和LM35D 两种温度传感器的方案,但考虑到两者价格差距较大,而本系统中对温度要求的精度不很高,于是选用比较便宜 LM35D。

基于单片机的多路温度采集系统设计

基于单片机的多路温度采集系统设计

ANYANG INSTITUTE OF TECHNOLOGY本科毕业论文基于单片机的多路温度采集系统设计Based on Single Chip Multi-channel Temperature AcquisitionSystem Design系(院)名称:电子信息与电气工程系专业班级: 0000级自动化00班学生姓名: 123指导教师姓名: 000指导教师职称:讲师000 年00月基于单片机的多路温度采集系统设计专业班级: 000级自动化00班学生姓名: 000指导教师: 000 职称: 讲师摘要:单片机系统的开发应用给现代工业测控领域带来了一次新的技术革命,自动化、智能化均离不开单片机的应用。

单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。

单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。

温度控制系统是利用下位机设置温度上下限和实时温度的采集,并将结果传输到上位机。

以达到对温度的比较、控制。

本设计用MCS-51单片机为主要硬件,设计了包括温度采集,温度显示,系统控制,串口通信等外围电路。

而且对所设计电路给出了相应的软件设计,包括定时器初始化,串行口初始化和数据传输等程序。

在温度测量部分采用具有“一线总线”接口的数字传感器DS18B20,实现单线多点数据的采集。

多点温度检测与控制系统是典型的集散式控制系统。

由下位机、上位机、和通讯网络三部分组成。

下位机是基于单片机AT89C52和DS18B20的高精度温度采集系统,功能是对温度的检测与输出控制。

上、下位机之间通过RS-232总线构成网络系统。

关键词:MCS-51;DS18B20;温度采集;RS-232Based on Single Chip Multi-channel Temperature AcquisitionSystem DesignAbstract:The development and application of MCU (Micro Control Unit) have made a great change in many fields of modern industrial detect and control. Adopt Single-Chip Microcomputer is it control convenient, simple, flexibility advantage such as being heavy to have not merely to control to go on to temperature to come, and can raise by technical indicator not to accuse of temperature by a large margin, thus can big improvement quality and the quantity of products. Because of the small scale, low price and high efficiency of MCU, it is widely used in home appliances and industrial control.The temperature control system is uses in the lower position machine establishment temperature the lower limit, with real-time temperature gathering, transmits to on position machine. By achieves to the temperature comparison, the control,This design uses MCS-51 The monolithic integrated circuit is the main hardware, In order to realize design goal this design including temperature gathering, the temperature demonstrated that, the systems control, strung together periphery electric circuit and so on mouth correspondence. Moreover to design the electric circuit to produce the corresponding software design, including timer initialization, serial procedure and so on mouth initialization and data transmission. The 1-Wire bus digital thermometer DS18B20 is used to measure temperature. It can realize the 1-Wire multi-point collection.Several points of temperature examination and control system is typically concentrate-disperse system. It consists of up a machine, bottom a machine, and communication network. Bottom a machine is a high accuracy data collection system that bases on the microcontroller AT89C52 and the DS18B20 system. Its function is to temperature and output the control. The up machine and bottom machines constitute of network system, via RS-232 bus.Key words: MCS-51;Temperature gathering;DS18B20;RS-232目录摘要 (Ⅰ)Abstract (Ⅱ)引言 (1)第一章多路温度采集显示系统的设计要求与设计方案 (2)1.1系统设计任务和要求 (2)1.2课题分析 (2)1.3方案比较与方案论证 (3)1.4方案论证和选定 (5)第二章多路温度采集系统硬件的设计 (7)2.1总体分析 (7)2.2AT89C52单片机的性能及应用 (7)2.3DS18B20芯片简介 (10)2.4DS18B20与单片机的典型接口设计 (14)2.5DS18B20使用中注意事项 (16)2.6温度检测系统设计 (16)2.7硬件电路设计 (18)第三章多路温度采集系统的软件设计 (20)3.1程序流程图设计 (20)3.2程序设计 (20)3.3单通道显示 (23)3.4串行通信 (24)第四章系统的抗干扰技术 (25)4.1硬件抗干扰技术 (25)4.2软件抗干扰技术 (25)结论 (27)致谢 (28)参考文献 (29)附录1:DS18B20温度测量程序 (30)引言近些年计算机领域的变化令人目不暇接,而单片微型计算机(简称单片机),作为微型计算机家族中的一员、发展中的一个分支,以其体积小、单一电源、功能强、价格低廉、低功耗、运算速度快、可靠性高、面向控制等独特优点,越来越深受各个应用领域的关注和重视,应用十分广泛,发展极快。

《2024年基于51单片机的温度控制系统设计与实现》范文

《2024年基于51单片机的温度控制系统设计与实现》范文

《基于51单片机的温度控制系统设计与实现》篇一一、引言在现代工业控制领域,温度控制系统的设计与实现至关重要。

为了满足不同场景下对温度精确控制的需求,本文提出了一种基于51单片机的温度控制系统设计与实现方案。

该系统通过51单片机作为核心控制器,结合温度传感器与执行机构,实现了对环境温度的实时监测与精确控制。

二、系统设计1. 硬件设计本系统以51单片机为核心控制器,其具备成本低、开发简单、性能稳定等优点。

硬件部分主要包括51单片机、温度传感器、执行机构(如加热器、制冷器等)、电源模块等。

其中,温度传感器负责实时监测环境温度,将温度信号转换为电信号;执行机构根据控制器的指令进行工作,以实现对环境温度的调节;电源模块为整个系统提供稳定的供电。

2. 软件设计软件部分主要包括单片机程序与上位机监控软件。

单片机程序负责实时采集温度传感器的数据,根据设定的温度阈值,输出控制信号给执行机构,以实现对环境温度的精确控制。

上位机监控软件则负责与单片机进行通信,实时显示环境温度及控制状态,方便用户进行监控与操作。

三、系统实现1. 硬件连接将温度传感器、执行机构等硬件设备与51单片机进行连接。

具体连接方式根据硬件设备的接口类型而定,一般采用串口、并口或GPIO口进行连接。

连接完成后,需进行硬件设备的调试与测试,确保各部分正常工作。

2. 软件编程编写51单片机的程序,实现温度的实时采集、数据处理、控制输出等功能。

程序采用C语言编写,易于阅读与维护。

同时,需编写上位机监控软件,实现与单片机的通信、数据展示、控制指令发送等功能。

3. 系统调试在完成硬件连接与软件编程后,需对整个系统进行调试。

首先,对单片机程序进行调试,确保其能够正确采集温度数据、输出控制信号。

其次,对上位机监控软件进行调试,确保其能够与单片机正常通信、实时显示环境温度及控制状态。

最后,对整个系统进行联调,测试其在实际应用中的性能表现。

四、实验结果与分析通过实验测试,本系统能够实现对环境温度的实时监测与精确控制。

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

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

基于51单片机的温度控制系统设计引言:随着科技的不断进步,温度控制系统在我们的生活中扮演着越来越重要的角色。

特别是在一些需要精确控制温度的场合,如实验室、医疗设备和工业生产等领域,温度控制系统的设计和应用具有重要意义。

本文将以基于51单片机的温度控制系统设计为主题,探讨其原理、设计要点和实现方法。

一、温度控制系统的原理温度控制系统的基本原理是通过传感器感知环境温度,然后将温度值与设定值进行比较,根据比较结果控制执行器实现温度的调节。

基于51单片机的温度控制系统可以分为三个主要模块:温度传感器模块、控制模块和执行器模块。

1. 温度传感器模块温度传感器模块主要用于感知环境的温度,并将温度值转换成电信号。

常用的温度传感器有热敏电阻、热敏电偶和数字温度传感器等,其中热敏电阻是最常用的一种。

2. 控制模块控制模块是整个温度控制系统的核心,它负责接收传感器传来的温度信号,并与设定值进行比较。

根据比较结果,控制模块会输出相应的控制信号,控制执行器的工作状态。

51单片机作为一种常用的嵌入式控制器,可以实现控制模块的功能。

3. 执行器模块执行器模块根据控制模块输出的控制信号,控制相关设备的工作状态,以实现对温度的调节。

常用的执行器有继电器、电磁阀和电动机等。

二、温度控制系统的设计要点在设计基于51单片机的温度控制系统时,需要考虑以下几个要点:1. 温度传感器的选择根据具体的应用场景和要求,选择合适的温度传感器。

考虑传感器的测量范围、精度、响应时间等因素,并确保传感器与控制模块的兼容性。

2. 控制算法的设计根据温度控制系统的具体要求,设计合适的控制算法。

常用的控制算法有比例控制、比例积分控制和模糊控制等,可以根据实际情况选择适合的算法。

3. 控制信号的输出根据控制算法的结果,设计合适的控制信号输出电路。

控制信号的输出电路需要考虑到执行器的工作电压、电流等参数,确保信号能够正常控制执行器的工作状态。

4. 系统的稳定性和鲁棒性在设计过程中,需要考虑系统的稳定性和鲁棒性。

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

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

基于单片机的温度控制系统设计1.设计要求要求设计一个温度测量系统,在超过限制值的时候能进行声光报警。

具体设计要求如下:①数码管或液晶显示屏显示室内当前的温度;②在不超过最高温度的情况下,能够通过按键设置想要的温度并显示;设有四个按键,分别是设置键、加1键、减1键和启动/复位键;③DS18B20温度采集;④超过设置值的±5℃时发出超限报警,采用声光报警,上限报警用红灯指示,下限报警用黄灯指示,正常用绿灯指示。

2.方案论证根据设计要求,本次设计是基于单片机的课程设计,由于实现功能比较简单,我们学习中接触到的51系列单片机完全可以实现上述功能,因此可以选用AT89C51单片机。

温度采集直接可以用设计要求中所要求的DS18B20。

报警和指示模块中,可以选用3种不同颜色的LED灯作为指示灯,报警鸣笛采用蜂鸣器。

显示模块有两种方案可供选择。

方案一:使用LED数码管显示采集温度和设定温度;方案二:使用LCD液晶显示屏来显示采集温度和设定温度。

LED数码管结构简单,使用方便,但在使用时,若用动态显示则需要不断更改位选和段选信号,且显示时数码管不断闪动,使人眼容易疲劳;若采用静态显示则又需要更多硬件支持。

LCD显示屏可识别性较好,背光亮度可调,而且比LED 数码管显示更多字符,但是编程要求比LED数码管要高。

综合考虑之后,我选用了LCD显示屏作为温度显示器件,由于显示字符多,在进行上下限警戒值设定时同样可以采集并显示当前温度,可以直观的看到实际温度与警戒温度的对比。

LCD 显示模块可以选用RT1602C。

3.硬件设计根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度采集模块、LCD 显示模块、报警与指示模块。

其相互联系如下图1所示:图1 硬件电路设计框图3.1单片机时钟电路形成单片机时钟信号的方式有内部时钟方式和外部时钟方式。

本次设计采用内部时钟方式,如图2所示。

单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频率范围为1.2~12MHz ,经由片外晶体振荡器或陶瓷振荡器与两个匹配电容一起形成了一个自激振荡电路,为单片机提供时钟源。

最新51单片机的多路温度采集控制系统设计汇总

最新51单片机的多路温度采集控制系统设计汇总

51单片机的多路温度采集控制系统设计基于51单片机的多路温度采集控制系统设计言:随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。

本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。

本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。

单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。

本系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。

我所采用的控制芯片为AT89c51,此芯片功能较为强大,能够满足设计要求。

通过对电路的设计,对芯片的外围扩展,来达到对某一车间温度的控制和调节功能。

关键词:温度多路温度采集驱动电路正文:1、温度控制器电路设计本电路由89C51单片机温度传感器、模数转换器ADC0809、窜入并出移位寄存器74LS164、数码管、和LED显示电路等组成。

由热敏电阻温度传感器测量环境温度,将其电压值送入ADC0809的IN0通道进行模数转换,转换所得的数字量由数据端D7-D0输出到89C51的P0口,经软件处理后将测量的温度值经单片机的RXD端窜行输出到74LS164,经74LS164 窜并转换后,输出到数码管的7个显示段,用数字形式显示出当前的温度值。

89C51的P2.0、P2.1、P2.2分别接入ADC0809通道地址选择端A、B、C,因此ADC0809的IN0通道的地址为F0FFH。

输出驱动控制信号由p1.0输出,4个LED 为状态指示,其中,LED1为输出驱动指示,LED2为温度正常指示,LED3为高于上限温度指示,LED4为低于下限温度指示。

基于51单片机的多路温度控制系统课程设计

基于51单片机的多路温度控制系统课程设计

智能化仪器仪表课程设计题目基于51单片机的仓库温度控制系统学院机械工程学院专业测控技术与仪器学生姓名学号 201 年级2012级指导教师2015年 6月 20日摘要:本设计为基于C52单片机的4路DS18B20、LCD1602显示、开关量控制系统,采用模块化、层次化设计。

如今运用DS18B20数字式温度传感器测温度,省略模电转换,将数字信号直接送给单片机调用。

采用LC1602液晶显示方式,使显示更加方便简介,接着使用单片机AT89C51I/O 口交流电机开和关,构建了一个集显示、检测与控制于一体的单片机应用系统。

此外,该系统自行设计了一个5V稳压电源,不仅可在220V交流中供电,而且能够接受5V电压直接供电。

关键词:单片机;液晶显示;数字式温度传感器;开关量控制电路目录目录 (3)第一章绪论 (1)1.1 课题的研究背景 (1)1.2 课题的研究内容及目标 (1)1.3 本文的结构组织 (1)第二章系统方案设计及论证 (2)2.1总体方案设计 (2)2.2方案比较与论证 (2)2.2.1采集电路 (2)2.2.2处理器选择 (3)2.2.3 显示部分 (3)第三章系统的电路设计与元器件介绍 (4)3.1 系统的电路设计 (4)3.1.1 最小系统电路 (4)3.1.2 温度采集电路 (5)3.1.3 控制系统电路 (5)3.1.4 显示系统电路 (6)3.1.5 报警电路 (6)3.2 元器件介绍 (7)3.2.1 单片机介绍 (7)3.2.1.1 单片机主要性能 (7)3.2.1.2 单片机各引脚功能介绍 (7)3.2.1.3 单片机特殊功能寄存器介绍 (8)3.2.2 DS18B20简介 (9)3.2.2.1 DS18B20主要特性 (9)3.2.2.2 DS18B20内部结构 (10)3.2.3 LCD1602简介 (11)3.2.3.1LCD1602主要技术参数 (11)3.2.4 继电器简介 (14)第四章系统软件设计 (15)4.1 程序流程图 (15)4.2 程序设计 (16)4.2.1DS18B20的程序设计 (16)4.2.2LCD1602液晶的程序设计 (16)4.2.3主程序设计 (17)总结 (18)附录一原理图 (19)附录二仿真图 (20)附录三程序代码 (21)第一章绪论1.1 课题的研究背景通过课程设计,使学生进一步加深理解单片机的工作原理,通过实习制作掌握引入外部中断的方法及其中断服务程序的编程方法;掌握定时器的使用及其中断服务程序的编写方法;从而了解如何构成系统的主程序;通过实习制作掌握单片机应用系统的制作工艺及调试方法,进一步理解单片机系统设计及开发方法,从而使学生具备设计单片机应用系统的能力。

毕业设计_基于AT89C51单片机为核心的多路温度采集系统电路设计

毕业设计_基于AT89C51单片机为核心的多路温度采集系统电路设计
关键词:数字温度传感器(DS18B20);单片机(AT89C51);液晶(LCD1602)显示器。
Abstract
This design is proposed based onAT89C51microcontroller as the core of the temperature control system and its digital single-bus technology used inthe design of the greenhouse temperature measurement system. Program uses a new type of digital temperature sensor DS18B20, use DS18B20 temperature sensor embedded inside the greenhouse temperature, transformed into the current changes, and thenaconverted to voltage input ADC, the bus passed through the singleAT89C51comicic-rocontrollerAT89C51microcontroller input and output through the serial port tounat-e with the PC machine.System for real-time multi-point inspection of temperature,w-hile providing instruction based on the temperature of PC-time acquisition.Tempsen-sor for temperature DS18B2collection, microcontroller reads the message from theD-S18B20 temperature and with the effective temperature of the upper and lowerextm-comparison, if more than the effective temperature range, start alarm system, and to the PC, send the appropriate signals, or continue to read from the DS18B20temper- rure. The system has a practical and high reliability。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于51单片机的多路温度采集控制系统设计前言:随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。

本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。

本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。

单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。

本系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。

我所采用的控制芯片为AT89c51,此芯片功能较为强大,能够满足设计要求。

通过对电路的设计,对芯片的外围扩展,来达到对某一车间温度的控制和调节功能。

关键词:温度多路温度采集驱动电路正文:1、温度控制器电路设计本电路由89C51单片机温度传感器、模数转换器ADC0809、窜入并出移位寄存器74LS164、数码管、和LED显示电路等组成。

由热敏电阻温度传感器测量环境温度,将其电压值送入ADC0809的IN0通道进行模数转换,转换所得的数字量由数据端D7-D0输出到89C51的P0口,经软件处理后将测量的温度值经单片机的RXD端窜行输出到74LS164,经74LS164 窜并转换后,输出到数码管的7个显示段,用数字形式显示出当前的温度值。

89C51的P2.0、P2.1、P2.2分别接入ADC0809通道地址选择端A、B、C,因此ADC0809的IN0通道的地址为F0FFH。

输出驱动控制信号由p1.0输出,4个LED为状态指示,其中,LED1为输出驱动指示,LED2为温度正常指示,LED3为高于上限温度指示,LED4为低于下限温度指示。

当温度高于上限温度值时,有p1.0输出驱动信号,驱动外设电路工作,同时LED1亮、LED2灭、LED3亮、LED4灭。

外设电路工作后,温度下降,当温度降到正常温度后,LED1亮、LED2亮、LED3灭、LED4灭。

温度继续下降,当温度降到下限温度值时,p1.0信号停止输出,外设电路停止工作,同时LED1灭、LED2灭、LED3灭、LED4亮。

当外设电路停止工作后,温度开始上升,接着进行下一工作周期。

2、温度控制器程序设计本软件系统有1个主程序,6个子程序组成。

6个子程序为定时/计数器0中断服务程序、温度采集及模数转换子程序ADCON、温度计算子程序CALCU、驱动控制子程序DRVCON、十进制转换子程序METRICCON及数码管显示子程序DISP。

(1)主程序主程序进行系统初始化操作,主要是进行定时/计数器的初始化。

(2)定时/计数器0中断服务程序应用定时计数器0中断的目的是进行定时采样,消除数码管温度显示的闪烁现象,用户可以根据实际环境温度变化率进行采样时间调整。

每当定时时间到,调用温度采集机模数转换子程序ADCON,得到一个温度样本,并将其转换为数字量,传送给89C51单片机,然后在调用温度计算子程序CALCU,驱动控制子程序DRVCON,十进制转换子程序MERTRICCON,温度数码显示子程序DISP。

(3)温度采集及模数转换子程序ADCON该子程序进行温度采样并将其转换为8位数字量传送给89C51的P0口。

采样得到的温度数据存放在片内RAM的20H单元中。

(4)温度计算子程序CALCU根据热敏电阻的分度值和电路参数计算出出一张温度表,存放在DATATAB数据表中,由于篇幅关系,本程序只给出0-49℃的温度数据。

一个温度有两个字节组成,前一字节为温度值,后一字节为该温度所对应的热敏电阻上的电压的数字量。

根据采样值,通过查表及比较的方法计算出当前的温度值,并将其存入片内RAM的21H单元。

采用查表法计算温度值时为了克服热敏电阻的阻值——温度特性曲线的非线性,提高测量精度。

(5)驱动控制子程序DRVCON该子程序调节温度,当温度高于上限温度时(本程序设为30℃),P1.0输出驱动控制信号,驱动外设工作降温;当温度下降到下限温度时(本程序设为25℃),P1.0停止输出,温度上升,周而复始;工作状态有LED1-LED4指示。

(6)十进制转换子程序METRICCON将存放于内部RAM21H单元的当前温度值得二进制数形式转换为十进制数(BCD码)形式,以便输出显示,转换结果存放在片内RAM的32H单元(百位)、31H(十位)、30H 单元(个位)。

(7)数码显示子程序DISP该子程序利用89C51串口的方式0串行移位寄存器工作方式,将片内RAM的30H、31H、32H单元的BCD码查表转换为七段码后由RXD端串行发出去,然后经74LS164串并转换,将七段值传送给数码管,以十进制形式显示出当前温度值。

根据以上分析画出的部分程序设计流程图如图1-0至图1-4所示。

图1-0 部分程序设计流程图的设计框架图1-1 主程序流程图图1-2 T0中断服务程序流程图图1-3 温度采样及模数转换子程序流程图图1-4 温度计算子程序流程图3、具体内容(1)温度控制器电器原理图设计按以上分析及相关知识设计出的温度控制器电路原理图如图1-5所示。

图1-5 温度控制电路原理图(2)温度数据表在图1-5所示的电路中,热敏电阻的连接如图1-6所示。

图1-6 热敏电阻的连接本设计所使用的热敏电阻的分度表及ADC0809转换后的电压数字量见附表1-1所示转换后的电压数字量的计算方法为:热敏电阻与R8并并联后的总电阻:R=(Rt*R8)/(Rt+R8)R与R7串联电路中R的分压值(即输入ADC0809的模拟量):V=5R/(R+R7)5V被分成256等分(8位量化),则每份的电压值:△=5/256输入的模拟量电压经8位量化后的数字量:D=V/△例如,热敏电阻在温度为20℃时的阻值为62.254千欧,则根据上述方法计算出的电压数字量为169,注意在计算中R7用实测值19.6千欧代入进入计算。

在实际做该电路时,可根据自己所选择的热敏电阻的分度表计相关电路参数,按上述方法计算出ADC0809转换后的各温度对应的电压数字量。

程序中的温度数据表构成:1个温度数据占2个字节,前一字为温度值,后一个字节为该温度下热敏电阻上的模拟电压转换成德8位数字量。

如在20℃时,热敏电阻对应的电压数字量为169,则20,169组成一个温度为20℃的温度数据。

按这样方法组成的0-49℃的温度数据表如下:DATATAB:DB 0,194,1 ,193 ,2 ,192,3,191,4,190DB 5,189,6,188,7 ,187,8,186,9,185DB10,184,11,182,12,181,13,180,14,178DB 15,177,16,175,17,174,18,173,19,171DB 20,169,21,168,22,166,23,165,24,163DB 25,161,26,159,27,158,28,,156,29,154DB 30,152,31,150,32,149,33,147,34,145DB 35,143,36,141,37,139,38,147,39,135DB 40,133,41,131,42,129,43,127,44,125DB 45,123,46,121,47,118,48,116,49,114在温度采样机模数转换子程序中,采样得到的当前温度下热敏电阻上的数字电压存于20H单元,在温度计算子程序中通过查表的方法从表中的第一个温度(0℃)下热敏电阻上的数字电压开始,依次取出各温度下热敏电阻上的十字电压,与与存于20H单元的当前温度下热敏电阻上的的数字电压比较,如小于当前温度的数字电压,则在取出下一温度的数字电压与当前温度的数字电压比较;直到大于或等于当前的温度数字电压,比较结束。

如大于则取出前一温度作为当前温度存于21H单元,如等于则将该温度作为但前温度存于20H单元。

这种温度计算方法,避免了温度特性曲线的非线性对温度计算精确性的影响,计算出的温度非常精确。

(3)温度控制程序设计在本设计中,晶体振荡器频率为6MHz,T0定时时间为100ms,T0工作于方式1,则T0的初值为:X=(最大计数值M―定时时间t/及其周期Tm)=216 -100ms/2us=15536=3CB0H按以上任务分析设计出的源程序如下:ORG 0000H;跳转到主程序LJMP MAIN;ORG 000BH;LJMP T0INT;跳转到T0中断服务程序;主程序ORG 0100H;MAIN:MOV R1,#10; T0 100马上定时溢出计数寄存器R1赋初值10MOV P1,#0FFH; 所有指示灯灭MOV SP,#60H;堆栈指针赋初值60HMOV TMOD,#01H;T0定时、方式1、软启动MOV TL0,#0B0H;T0赋初值MOV TH0,#3CH;MOV IE,#82H;开放T0中断SETB TR0;启动T0SJMP $;定时/计数器0中断服务程序ORG 0200H;T0INT:DJNZ R1,NEXT;T0溢出10次,即1s进一次采样处理LCALL ADCON;调用温度采样及模数转换子程序LCALL CALCU;调用温度计算子程序LCALL DRVCON; 调用驱动控制子程序LCALL METRICCON; 调用十进制转换子程序LCALL DISP; 调用数码管显示子程序MOV R1,#10;R1重赋值10NEXT:MOV TL0,#0B0H; T0重装初值MOV TH0,#3CH;RETI;温度采样及模数转换子程序ORG 0300H;ADCON:MOV DPTR,#0F0FFH; 选通ADC0809通道0MOV A,#00H;MOVX @DPTR,A; 启动A/D转换HERE:JNB P3.3,HERE; 判断数据转换是否结束,没结束则等待MOVX A,@DPTR;读取转换后的数据MOV 20H,A; 将从ADC0809中读取的当前温度下热敏电阻上的电压值存于20H单元RET ;温度计算子程序ORG 0400H;CALCU:MOV R2,#01H; R2为数据表的索引值寄存器MOV DPTR,#DATATAB; 温度数据表首地址送DPTRNEXT1:MOV A,R2; 索引值送AMOVC A,@A+DPTR; 查表取出某一温度的数字电压值CJNE A,20H,K1; 与当前温度的数字电压值比较DEC R2;等于当前温度的数字电压值,则查表取出该温度值作为当前温度值MOV A,R2;MOVC A,@A+DPTR;LJMP K3;K1:JNC K2; 大于当前温度的数字电压值,则继续取出下一温度的数字电压进行比较DEC R2;小于当前温度的数字电压值,则查表取出前一个温度值作为当前温度值DEC R2DEC R2MOV A,R2;MOVC A,@A+DPTR;LJMP K3;K2:INC R2;INC R2;LJMP NEXT1;K3:MOV 21H,A; 将当前温度值存于21H单元RET;DATATAB;DB 0,194,1,193,2,192,3,191,4,190;温度数据表DB 5,189,6,188,7,187,8,186,9,185DB 10,184,11,182,12,181,13,180,14,178DB 15,177,16,175,17,174,18,173,19,171DB 20,169,21,168,22,166,23,165,24,163DB 25,161,26,159,27,158,28,156,29,154DB 30,152,31,150,32,149,33,147,34,145DB 35,143,36,141,37,139,38,137,39,135DB 40,133,41,131,42,129,43,127,44,125DB 45,123,46,121,47,118,48,116,49,114驱动控制子程序ORG 0500H;DRVCON:MOV A,21H; 取出当前温度值CJNE A,#30,J1; 与上限温度值(30℃)比较LJMP GO;J1:JNC DRV1;若高于上限温度,则输出驱动信号,同时高于上限温度指示灯点亮CJNE A,#25,J2; 与显现温度(25℃)比较LJMP GO;J2:JC DRV2;弱低于下限温度,则驱动信号停止输出,同时点亮低于下限温度的指示灯LJMP GO;DRV1:CLR P1.0;SETB P1.1;CLR P1.2;SETB P1.3;LJMP OVER;DRV2:SETB P1.0SETB P1.1;CLR P1.2;SETB P1.3;LJMP OVER;DRV2:SETB P1.0;SETB P1.1;SETB P1.1;SETB P1.2;CLR P1.3;LJMP OVER;GO:CLR P1.1; 在下线温度(25℃)至上限温度(30℃)之间,则驱动信号保持前面状态,同时温度正常指示灯点亮SETB P1.2;SETB P1.3;OVER:RET;;十进制转换子程序ORG 0600H;METRICCON:MOV R3,#00H;将存于21H单元中的当前温度转换为BCD码MOV R4,#00H;百位存于32H单元,十位存于31H单元,个位存于30H单元MOV A,21H;CLR C;W1:SUBB A,#100;JC W2;INC R4;AJMP W1;W2:ADD A,#100;CLR C;W3:SUBB A,#10;JC W4;INC R3;AJMP W3;W4:ADD A,#10;MOV 30H,A;MOV 31H,R3;MOV 32H,R4;RET;;数码管显示子程序ORG 0700H;DISP:MOV R5,#03H;将存于32H单元、31H单元、30H单元中的温度BCD码查表转换为七段码MOV R0,#30H;通过串行通信方式0输出驱动3个数码管,显示当前温度MOV DPTR,#TAB;LOOP:MOV A,@R0;MOVC A,@A+DPTR;MOV SBUF,A;WAIT:JNB T1,WAIT;CLR T1;INC R0;DJNZ R5,LOOP;RET;TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;七段码数据表附表:1-1热敏电阻分度表及经ADC0809转换后的电压数字量11 94.1006 18212 89.7613 18113 85.6511 18014 81.7564 17815 78.0646 17716 74.5637 17517 71.2425 17418 68.0903 17319 65.0972 17120 62.254 16921 59.5519 16822 56.9829 16623 54.5392 16524 52.2138 1625 50 16126 47.8916 15927 45.8829 15828 43.9683 15629 42.1428 15430 40.4017 15231 38.7405 15032 37.1552 14933 35.6418 14734 34.1967 14535 32.8164 14336 31.4979 14137 30.238 13938 29.0339 13739 27.883 13540 26.7828 13341 25.7308 13142 24.725 12943 23.763 12744 22.843 12545 21.9629 12346 21.1211 12147 20.3158 11848 19.5453 11649 18.8082 11450 18.1028 11251 17.4241 11052 16.7787 10853 16.1643 10454 15.5788 102参考文献:1.贾好来主编.MCS-51单片机原理及应用.北京:机械工业出版社,2006.2.江太辉,石秀芳主编. MCS-51单片机原理及应用.广东:华南理工大学出版社,2004.3.曹龙汉,刘安才主编. MCS-51单片机原理及应用.重庆:重庆出版社,2004.4.劳动和社会保障部教材办公室主编.单片机应用技术(汇编语言).北京:中国劳动社会保障出版社,2006.5.何立民主编. MCS-51单片机应用系统设计.北京:北京航天航空大学出版社,1990.6.朱定华主编.单片机原理及接口技术实验.北京:北京大学出版社,2002.。

相关文档
最新文档