




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第0页第页摘要随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。为了更好地推广单片机在实际生活和生产中的应用,本文介绍一种应用AT89C52单片机设计的热炉温度控制系统。该热炉温度系统采用温度传感器DS18B20通过I2C总线通信来获得当前温度,并与从3X4矩阵键盘输入的温度值进行验证,系统自动控制升温或降温的操作,将温度稳定在所设定的温度值。经实际制作表明该热炉温度控制系统具有体积小、操作灵活、可靠性高、实用、成本低等特点,适合住宅和各类温室温度的控制,具有一定的实际意义。关键词单片机;键盘;稳定温度;显示器;温度控制目录摘要.1第1章绪论.21.1选题背景.21.2选题简介.2第2章系统总体设计及方案.42.1单片机的介绍.42.1.1单片机的特点.42.1.2单片机的基本组成.42.2系统功能的确定.52.3温度传感器DS18B20的介绍.52.3.1DS18B20的特点.52.3.2DS18B20的内部结构.62.3.3DS18B20的引脚介绍.82.4人机交互与串口通信.9第3章硬件设计.103.1系统结构框图.103.2人机交互与串口通信单元设计.103.2.1键盘输入电路.103.2.2LED七段数码动态显示电路.123.2.3串口通信电路.143.3控制执行单元设计.15第4章软件设计.174.1设计思路、主程序流程图.174.2温度采集子程序.184.3数据转换子程序.194.4动态显示子程序.204.5温度控制执行子程序.214.6键盘输入中断服务子程序.23第5章结论.26参考文献.27附录1程序代码.28附录2原理图.42第1页第页第1章绪论1.1选题背景在生产过程中,温度的控制是十分常见的。温度控制的传统方法是人工仪表控制,其重复性差,工艺要求难以保障,工作强度大,存在种种弊端。因此,对传统的温度控制方法进行改造,用微机取代常规控制已成必然,国内已相继出现各种以微机为核心的温度控制系统。这种系统控制精度高、重复性好、自动化程度高。在日常生活中,人们为了拥有一个更舒适的生活环境,往往需要室内拥有一个合适的温度,而单片机的准确性高、价格低、功耗低等一系列优点,可结合升温和降温设备,有效的应用到实际生活中。单片机温度控制系统是单片机控制的一项简单应用。近几年来单片机因其独特的,方便,快捷的优势被广泛的应用于各个领域之中。1.2选题简介课题名称:热炉温度控制系统。主要任务:将温度控制在设定的温度值,设定范围为2-98度,针对在生产和日常生活中温度智能化控制系统的实现。开发环境:本热炉温度控制系统的软件部分是通过KEIL进行编译,并由Proteus7Professional进行仿真测试。技术指标:以AT89C52系列单片机为核心部件以数字电路和模拟电路为硬件基础以汇编语言为软件实现语言功能概述:在该热炉温度控制系统中,单片机作为核心部件进行检测控制,增强了设计的通用性,适时性。在该热炉温度控制系统中温度检测采用DS18B20温度传感器,它不仅具有较高的精度,而且适用电压宽。同时采用了3x4矩阵扫描键盘输入,显示设备等外围扩展芯片。温度控制分为升温和降温控制,升温控制和降温控制分别采用继电器来控制外部的升温和降温设备。软件部分采用流程图来表示,对各个子程序进行说明,包括控制算法,偏差计算等。控制是否升温或降温。第2页第页第2章系统总体设计及方案2.1单片机的介绍随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时/计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机。2.1.1单片机的特点1具有优异的性能价格比2集成度高、体积小、可靠性高3控制功能强4低电压、低功耗2.1.2单片机的基本组成它由CPU、存储器(包括RAM和ROM)、I/O接口、定时/计数器、中断控制功能等均集成在一块芯片上,片内各功能通过内部总线相互连接起来。输入/输出引脚P0、P1、P2、P3的功能:P0.0P0.7(3239脚):P0口是一个8位漏极开路型双向I/O端口。在访问片外存储器时,它分时作低8位地址和8位双向数据总线用。在EPROM编程时,由P0输入指令字节,而在验证程序时,则输出指令字节。验证程序时,要求外接上拉电阻。P0能以吸收电流的方式驱动8个LSTTL负载。P1.0P1.7(18脚):P1是一上带内部上拉电阻的8位双向I/O口。在EPROM编程和验证程序时,由它输入低8位地址。P1能驱动4个LSTTL负载。P2.0P2.7(2128脚):P2也是一上带内部上拉电阻的8位双向I/O口。在访问外部存储器时,由它输出高8位地址。在对EPROM编程和程序验证时,由它输入高8位地址。P2可以驱动4个LSTTL负载。P3.0P3.7(1017脚):P3也是一上带内部上拉电阻的双向I/O口。在MCS-51中,这8个引脚还用于专门的第二功能。P3能驱动4个LSTTL负第3页第页载。P3.0RXD(串行口输入)P3.1TXD(串行口输出)P3.2INT0(外部中断0输入)P3.3INT1(外部中断1输入)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6WR(片外数据存储器写选通)P3.7RD(片外数据存储器读选通)2.2系统功能的确定一个控制系统是否能被大众所接受,在于该控制系统是否拥有人性化的操作功能。为了使本次设计的热炉温度控制系统具有操作简单、灵活及高可靠性等特点,确定了该系统功能:3x4矩阵键盘输入。由温度采集。温度显示。温度控制执行。温度测量范围为0-99度,温度有效范围为2-98度,允许误差为1度。2.3温度传感器DS18B20的介绍DS18B20温度传感器是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的温度传感器,十分方便。2.3.1DS18B20的特点1.只要求一个端口即可实现通信。2.在DS18B20中的每个器件上都有独一无二的序列号。3.实际应用中不需要外部任何元器件即可实现测温。4.测量温度范围55到125。5.数字温度计的分辨率用户可以从9位到12位选择。6.内部有温度上、下限告警设置。第4页第页2.3.2DS18B20的内部结构DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2.1所示。64位ROM的位结构如图2.2所示。开始8位是产品类型的编号;接着是每个器件的唯一的序号,共有48位;最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用单线进行通信的原因。非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限数据。图2.264位ROM的位结构图DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM。高速暂存RAM的结构为9字节的存储器,结构如图2.3所示。前2字节包含测得的温度信息。第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5字节为配置寄存器,其内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如图2.4所示,其中,低5位一直为1;TM是测试模式位,用于设置64位ROM和单线接口存储器与控制逻辑高速缓存温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器图2.1DS18B20内部结构框图8位检验CRC48位序列号8位工厂代码(10H)MSBLSBMSBLSBMSBLSB第5页第页DS18B20在工作模式还是在测试模式,在DS18B20出厂时,该位被设置为0,用户不要去改动;R1和R0决定温度转换的精度位数,即用来设置分辨率,其定义方法见表2.1。温度LSB温度MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRCR1R0分辨率/位温度最大转换时间/ms00993.750110187.510113751112750TH用户字节11TL用户字节2E2PROM图2.3高速暂存RAM结构图表2.1DS18B20分辨率的定义和规定TMR1R0111111第6页第页由表可见,DS18B20温度转换的时间比较长,而且庙宇的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节是前面8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存RAM的第1、2字节中。单片机可以通过单线接口读出该数据。读数据时,低位在先,高位在后,数据格式以0.0625C/LSB形式表示。温度值格式如图2.5所示:低字节232221202-12-22-32-4高字节SSSSS2625242.3.3DS18B20的引脚介绍TO92封装的DS18B20的引脚排列见图2.6,其引脚功能描述见表2.2。图2.6(底视图)表2.2DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生图2.4配置寄存器位定义图2.5温度数值格式第7页第页电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。2.4人机交互与串口通信该热炉温度控制系统由温度采集、3x4矩阵键盘输入、温度显示、温度控制执行等四大模块组成。温度采集:由温度传感器DS18B20完成,并通过串口通信技术与单片机进行数据传输,使用单片机P3.7端口。3x4矩阵键盘输入:采用外部中断0来判断是否拥有输入请求,并通过键盘扫描技术来获取所输入的温度值和偏差温度值,输入更灵活、更方便,使用单片机P0口和P3.2端口。温度显示:通过4个7段LED数码显示管显示当前温度值和设定的温度值,及时反应当前温度的变化与设置温度的关系,使用单片机P1.0P1.5端口。温度控制执行:系统根据当前温度与设置的温度自动进行相应的升温或降温的操作,在系统自动进行升温或降温处理的同时显示相应的指示灯,让使用者知道系统正在进行的操作,使用单片机P2.2P2.3端口。第8页第页第3章硬件设计3.1系统结构框图图AT89C52温度显示电路温度控制电路键盘输入电路温度采集电路3.1系统硬件总体框图该系统由核心部件AT89C52来处理从键盘输入电路和温度采集电路送入的数据,并通过温度显示电路进行温度显示,由温度控制电路来进行相应的升温或降温的操作。3.2人机交互与串口通信单元设计在该系统中,人机交互技术主要应用在恒定温度与偏差温度的设置,以及当前温度与设置温度的显示;串口通信技术应用在对温度的采集。3.2.1键盘输入电路在本系统中,采用外部中断0控制键盘输入请求,键盘输入主要采用3x4矩阵键盘扫描技术。如图3.2所示,当按下“设置/切换”键时,进入恒定温度的设置,可从键盘中自由输入09的数字,如果输入错误可按“删除(*)”键进行删除,如果要设置偏差温度,再按一下“设置/切换”键,可进入偏差温度的设置,按“确定(#)”键,保存设置并退出键盘输入,进入温度控制状态。第9页第页1234567890#123ABCDSASBSCSDS1S2S3S1S2S3SASBSCSDR14.7kR124.7kR134.7kR144.7k+5SINT0R104.7kD1LED-REDD2LED-REDR1630R1730LED_ALED_B设置温度偏差温度设置/切换删除确定图3.2键盘输入原理图为了避免从键盘输入的数据错误,该键盘输入电路还为判断按键是否释放的功能做了铺垫,如图3.3所示,该电路由3个与门构成,当有键按下时SA、SB、SC、SD端中将会有一个为低电平,此时与门的SS端将会输出低电平,同时控制了单片机的P0.7端口,再通过软件控制按键是否释放。123U7:A74LS08456U7:B74LS089108U7:C74LS08SASBSCSDSS图3.3判断键盘是否有键按下AT89C52P0口第10页第页3.2.2LED七段数码动态显示电路在本系统中采用了LED七段数码动态显示电路来显示温度值,显示范围在0-99之间,该电路由显示、片选、译码三部分组成。显示部分:由两个两位的LED七段共阴数码管构成,分别用来显示当前温度和设置温度,如图3.4所示。L1L2L3L4L5L6L7L1L2L3L4L5L6L7L10L1L8L9当前温度恒定温度图3.4LED七段共阴数码管片选部分:如图3.5所示,由一片2-4译码器(74LS139)构成,单片机的P1.4和P1.5输出两位片选信号到2-4译码器的A、B端口,进行译码后输出到LED七段数码管的片选端口,其译码功能如表3.1所示。A2Y04B3Y15Y26E1Y37U3:A74LS139KAKBL8L9L10L11图3.5动态显示片选电路(2-4译码器)表3.174LS139功能表AT89C52P1.4P1.5第11页第页输入选通端地址输入端输出EABY0Y1Y2Y3100000011010110111110111110111110译码部分:该电路由LED七段数码管显示译码器(4511)来完成,如图3.6所示,单片机将要显示的十进制数据转换成8421BCD编码,对应的译码值如表3.2所示,再分别送到LED七段数码管显示译码器的A、B、C、D引脚进行译码,最后输出到LED七段数码管的相引脚。L1L3L2L4L5L6L7R11kR21kR31kR41kR51kR61kR71k+5A7B1C2D6LT3BI4LE/STB5QA13QB12QC11QD10QE9QF15QG14U64511图3.6LED七段数码显示译码电路第12页第页表3.24511译码表8421BCD码十进制数000000001100102001130100401015011060111710008100193.2.3串口通信电路为了使测得的温度更准确,在本系统中采用了温度传感器DS18B20来获取当前温度,而DS18B20是采用I2C总线进行通信的,如图3.7所示,单片机使用P3.7端口与DS18B20的数据通讯端口相连接,并通过软件实现P3.7控制DS18B20的读和写。+532.0DQ2VCC3GND1U8DS18B20图3.7单片机与DS18B20的通信AT89C52P3.7第13页第页3.3控制执行单元设计该电路的主要任务是完成单片机所发出的升温或降温操作,来控制外部的升温或降温设备。如图3.8所示,电路的GK1和GK2端分别与单片机的P2.2和P2.3端相连接,其工作原理如下:在通常情况下,GK1和GK2均为低电平,当单片机向温度控制执行电路发送降温命令时,GK1为高电平,GK2为低电平,使三极管Q1饱和导通,此时使继电器RL1闭合控制外部的降温设备进行工作,同时发光二极管D9将被点亮,提醒使用者温度过高正在进行降温操作。当单片机向温度控制执行电路发送升温命令时,GK1为高低平,GK2为高电平,使三极管Q2饱和导通,此时使继电器RL2闭合控制外部的升温设备进行工作,同时发光二极管D4将被点亮,提醒使用者温度过低正在进行升温操作。+5GK1GK2D9LED-RED温度过低温度过高RL1G2RL-1AB-DC5Q1MPS6514R8300Q2MPS6514RL2G2RL-1AB-DC5D4LED-BIRGR9300图3.8温度控制及相应显示电路第4章软件设计4.1设计思路、主程序流程图根据所学知识,实现本系统的软件部分将使用汇编语言,要配合硬件部分实现输入一个需要恒定的温度值和偏差温度,与从温度传感器所获取的当前实际温度相比较,并向温度控制执行电路发出升温或降温的命令,在这一过程中将随时显示当前温度值和设置的温度值。其主要实现的部分包括:键盘输入、温度采集、数据转换、动态显示、温度控制等。主程序流程图如图4.1所示。第15页第页开始系统初始化发送温度读取指令读出温度值数据转换16进制10进制温度控制执行显示当前温度和设置温度是否有外部中断0请求?键盘输入中断服务子程序结束断点YN图4.1主程序流程图4.2温度采集子程序温度采集子程序主要负责驱动力外部的温度传感器DS18B20进行工作,通过串口通信方式向DS18B20写入ROM命令,并读取当前温度值,将读取的数据存放在26H-2EH存储单元,其中26H单元存放温度值的低位,27H单元存放温度值的高位,程序流程图如图4.2所示。第16页第页开始DS18B20复位向DS18B20写入相应的ROM命令读出温度值并进行校验结束图4.2温度采集子程序流程图4.3数据转换子程序数据转换子程序功能是将从温度采集子程序中采集的十六进制温度数据,转换成十进制的数值并存储在指定的存储单元内。由于该恒温系统设计的温度检测有效为0-99,所以数据转换原理为:将获取到的十六进制温度值除以十进制数10,所得到的商为相应十进制数的十位,并存入31H单元,余数则为相应十进制数的个位,并存入30H单元,其程序流程图如图4.3所示。开始合并温度值的高位和低位存入AA除以10商送31H单元余数送30H单元结束图4.3数据转换流程图第17页第页4.4动态显示子程序在该恒温系统中使用了两个两位的LED七段数码管来显示系统所采集的当前温度值和设置的温度值,为了不占用更多的单片机端口,在针对显示电路的设计时采用了动态显示的方案,而动态显示子程序的主要任务就是控制显示电路的扫描规律,其程序流程图如图4.4所示。开始当前温度高位送入A片选信号初始化ORLA,#30H当前温度高位片选信号ANLA,#0CFH显示输出MOVP1,A延时1ms当前温度低位送入A片选信号初始化ORLA,#30H当前温度低位片选信号ANLA,#0DFH显示输出MOVP1,A延时1ms设置温度高位送入A片选信号初始化ORLA,#30H设置温度高位片选信号ANLA,#0EFH显示输出MOVP1,A延时1ms设置温度低位送入A片选信号初始化ORLA,#30H设置温度低位片选信号ANLA,#0FFH显示输出MOVP1,A延时1ms结束第18页第页图4.4动态显示子程序流程图4.5温度控制执行子程序温度控制执行子程序的任务是检测由温度当前温度值是否在设置温度值的允许范围内,若当前温度大于设置温度的允许范围,表明当前温度过高,立及向温度控制电路发出降温命令(P2.2为高电平,P2.3为低电平);若当前温度小于设置温度的允许范围,表明当前温度过低,立及向温度控制电路发出升温命令(P2.2为低电平,P2.3为高电平),程序流程图如图4.5所示。开始当前温度加偏差温度设置温度加偏差温度判断温度是否过高(设置温度加偏差温度再减当前温度)判断温度是否过低(当前温度加偏差温度再减设置温度)初始温度控制端P2.2和P2.3置低电平发出降温命令P2.2高电平P2.3低电平发出升温命令P2.2低电平P2.3高电平结束YYNN第19页第页图4.5温度控制执行子程序流程图4.6键盘输入中断服务子程序在本系统中键盘输入请求使用INT0(外部中断0)来实现,INT0采用电平触发方式,当按下键盘中的“设置/切换”键时,INT0(P3.2)端为低电平时,进入键盘输入中断服务子程序,此时可以设置要恒定温度的,“删除(*)”键为删除键,点击一次可删除输入的一位数据,在输入过程中通过P0.7端口判断每次按键后是否释放,当按下“确定(#)”号键时,则保存设置并退出中断服务子程序,返回到主程序,其程序流程图如图4.6所示。第20页第页INT0请求设置控制、温度控制初始化设置切换输入P0.7=低电平?设置第一列键码和第一列扫描端(P0.0)为低电平延时20ms消除抖动键按第二行扫描P0.4=低电平?键按第三行扫描P0.5=低电平?键按第四行扫描P0.6=低电平?设置第二列键码和第二列扫描端(P0.1)为低电平延时20ms消除抖动设置第三列键码和第三列扫描端(P0.2)为低电平延时20ms消除抖动第一列是否扫描过?第二列是否扫描过?第三列是否扫描过?输入显示键值相加,并存储数据输入确定?返回主程序键按第一行扫描P0.3=低电平?按键是否释放?设置切换YNYYNNYYNNYNYNYNYNYN第21页第页图4.6键盘输入中断服务子程序流程图第22页第页第5章结论在设计该系统的过程中我充分应用了在课堂上所学的相关理论知识,当把理论知识通过自己的双手变成实际后,使我对电路设计有了更多的了解,同时又产生了更浓厚的兴趣。本系统的核心技术表现在温度采集、3x4矩阵键盘输入和动态显示部分,其中温度采集的硬件部分使用温度传感器DS18B20,通过软件控制与DS18B20的串口通讯来进行温度采集;3x4矩阵键盘输入采用键码的扫描来实现.。为了实现这一系列功能我主动与指导老师交流,并且查阅了大量相关的书籍,在此过程中进一步锻炼了自己思考问题与解决问题的能力,巩固并提高了自己的单片机、数字电路、模拟电路等相关知识。该系统实现的最终功能是控制外界温度,使温度恒定在一定的范围内,统所能测量温度的范围在0-99度之间,能恒定的范围是在1-98度之间,所以该系统在日常生活与生产中有较大的应用空间,特别是运用在养值业方面。而在一些特殊的生产环境中,其需要恒温的范围远远超过了该系统,该恒温系统是不适用的,这也是该系统有待完善的地方。第23页第页参考文献1刘高鏁编著.单片机实用技术.清华大学出版社;2樊明龙,任丽静编著.单片机原理与应用.化学工业出版社;3徐光翔编著.单片机原理接口及应用.南京大学出版社4杨文龙编著.单片机原理及应用.西安电子科技大学出版社5楼然苗,李光飞编著.51系列单片机设计实例.北京航空航天大学出版社第24页第页附录1程序代码ORG0000HLJMPMAINORG0003H;外部中断INT0入口地址LJMPSKEY;转外部中断INT0ORG1000HMAIN:CLRP2.2;初始控制端,温度过高/降温CLRP2.3;温度过低/升温TEMPDINBITP3.7;DS18B20通信端口TEMPLEQU24H;温度低位存储单元TEMPHEQU25H;温度高位存储单元TEMPHEADEQU26H;DS18B209位数据存储单元(26H-2EH)SHOWGETLEQU30H;当前温度低位SHOWGETHEQU31H;当前温度高位SHOWSETLEQU32H;设置温度低位SHOWSETHEQU33H;设置温度高位TEMPCKEQU34H;偏差温度存储单元MOVTEMPCK,#03H;设置系统允许的偏差温度MOVSHOWGETL,#00H;当前温度低位初值MOVSHOWGETH,#00H;当前温度高位初值MOVSHOWSETL,#00H;设置温度低位初值MOVSHOWSETH,#00H;设置温度高位初值LOOP:MOVIE,#00HACALLREADTEMP;发送温度读取指令ACALLREADTEMP1;读出温度值子程序ACALLDATAS;数据转换(将16进制数据转换成10进制数据)ACALLSETOUT;温度数据处理,温度控制执行ACALLSHOW;显示当前温度和设置温度第25页第页CLRIT0;电平触发方式SETBEA;CUP开放中断SETBEX0;允许外部中断0AJMPLOOP;-;下面是主程序所用到的子程序;-;RESETDS18B20复位INITDS1820:SETBTEMPDINNOPNOPCLRTEMPDINMOVR6,#0A0H;DELAY480usDJNZR6,$MOVR6,#0A0HDJNZR6,$SETBTEMPDINMOVR6,#SHOWSETL;DELAY70usDJNZR6,$MOVR6,#3CHLOOP1820:MOVC,TEMPDINJCINITDS1820OUTDJNZR6,LOOP1820MOVR6,#064H;DELAY200usDJNZR6,$SJMPINITDS1820RETINITDS1820OUT:SETBTEMPDINRET第26页第页;-;读DS18B20的程序,从DS18B20中读出一个字节的数据READDS1820:MOVR7,#08HSETBTEMPDINNOPNOPREADDS1820LOOP:CLRTEMPDINNOPNOPNOPSETBTEMPDINMOVR6,#07H;DELAY15usDJNZR6,$MOVC,TEMPDINMOVR6,#3CH;DELAY120usDJNZR6,$RRCASETBTEMPDINDJNZR7,READDS1820LOOPMOVR6,#3CH;DELAY120usDJNZR6,$RET;-;写DS18B20的子程序,向DS18B20中写一个字节的数据WRITEDS1820:MOVR7,#08HSETBTEMPDINNOPNOPWRITEDS1820LOP:CLRTEMPDINMOVR6,#07H;DELAY15us第27页第页DJNZR6,$RRCAMOVTEMPDIN,CMOVR6,#34H;DELAY104usDJNZR6,$SETBTEMPDINDJNZR7,WRITEDS1820LOPRET;-;向DS18B20写入相应的ROM命令READTEMP:LCALLINITDS1820MOVA,#0CCHLCALLWRITEDS1820;写入ROM命令SKIPROMMOVR6,#34H;DELAY104usDJNZR6,$MOVA,#44HLCALLWRITEDS1820;写入ROM命令STARTCONVERSIONMOVR6,#34H;DELAY104usDJNZR6,$RET;-;读出温度值子程序READTEMP1:LCALLINITDS1820MOVA,#0CCHLCALLWRITEDS1820;写入ROM命令SKIPROMMOVR6,#34H;DELAY104usDJNZR6,$MOVA,#0BEHLCALLWRITEDS1820;写入ROM命令SCRATCHPADMOVR6,#34H;DELAY104us第28页第页DJNZR6,$MOVR5,#09HMOVR0,#TEMPHEADMOVB,#00HREADTEMP2:LCALLREADDS1820;开始读出温度MOVR0,AINCR0READTEMP21:LCALLCRC8CALDJNZR5,READTEMP2MOVA,BJNZREADTEMPOUTMOVA,TEMPHEAD+0MOVTEMPL,AMOVA,TEMPHEAD+1MOVTEMPH,AREADTEMPOUT:RET;-;DS18B20CRC-8校验程序CRC8CAL:PUSHACCMOVR7,#08HCRC8LOOP1:XRLA,BRRCAMOVA,BJNCCRC8LOOP2XRLA,#18HCRC8LOOP2:RRCAMOVB,APOPACCRRAPUSHACC第29页第页DJNZR7,CRC8LOOP1POPACCRET;-;数据转换(将16进制数据转换成10进制数据)DATAS:MOVA,TEMPLANLA,#0F0H;屏蔽低位SWAPAMOVB,AMOVA,TEMPHSWAPAORLA,BMOVB,#10DIVABMOVSHOWGETH,AMOVSHOWGETL,BRET;-;温度数据处理SETOUT:MOVA,SHOWGETL;设置偏差温度,当前温度+TEMPCKADDA,TEMPCKMOV50H,AMOV51H,SHOWGETHSUBBA,#0AHJCSSZ_5MOV50H,AINC51HSSZ_5:MOVA,SHOWSETL;设置偏差温度,设置温度+TEMPCKADDA,TEMPCK第30页第页MOV52H,AMOV53H,SHOWSETHSUBBA,#0AHJCSD1MOV52H,AINC53HSD1:MOVA,52H;设置温度+TEMPCK减当前温度(判断温度是否过高)SUBBA,SHOWGETLMOVA,53HSUBBA,SHOWGETHJCJIANGMOVA,50H;当前温度+TEMPCK减设置温度(判断温度是否过低)SUBBA,SHOWSETLMOVA,51HSUBBA,SHOWSETHJCSHENGCLRP2.2;初始控制端,温度过高/降温CLRP2.3;温度过低/升温AJMPOVERJIANG:SETBP2.2;温度过高/降温处理CLRP2.3;温度过低/升温AJMPOVERSHENG:SETBP2.3;温度过低/升温处理CLRP2.2;初始控制端,温度过高/降温OVER:RET;-;3x4矩阵键盘输入中断子程序SKEY:MOVR0,#00HCLRP2.2;初始控制端,温度过高/降温CLRP2.3;初始控制端,温度过低/升温第31页第页LS1:JBP3.2,SK1MOVA,R0CPLAMOVR0,AJNBP3.2,$SK1:MOVACC,#0FFHCLRACC.0SETBACC.1SETBACC.2MOVP0,ACCACALLDELAY1;调用两次10ms延时,消除抖动ACALLDELAY1MOVACC,P0MOV40H,#01HAJMPHS1LS2:MOVACC,#0FFHSETBACC.0CLRACC.1SETBACC.2MOVP0,ACCACALLDELAY1ACALLDELAY1MOVACC,P0MOV40H,#02HAJMPHS1LS3:MOVACC,#0FFHSETBACC.0SETBACC.1CLRACC.2MOVP0,ACC第32页第页ACALLDELAY1ACALLDELAY1MOVACC,P0MOV40H,#03HAJMPHS1HS1:JBACC.3,HS2MOVA,#00HADDA,40HAJMPKSOKHS2:JBACC.4,HS3MOVA,#03HADDA,40HAJMPKSOKHS3:JBACC.5,HS4MOVA,#06HADDA,40HAJMP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胃肠镜中心管理制度
- 脑卒中专科管理制度
- 自动化工厂管理制度
- 自救器维护管理制度
- 营运期招商管理制度
- 蒲公英驿站管理制度
- 蕲艾堂员工管理制度
- 蛋糕房员工管理制度
- 行政ab角管理制度
- 行政部费用管理制度
- DF6205电能量采集装置用户手册-2
- 培训课件 -华为铁三角工作法完全解密
- 2024年新版《公文写作与处理》近年考试题库(含答案)
- 水利安全生产风险管控六项机制题库
- 《鲁迅的简介》课件
- 韩国《寄生虫》电影鉴赏解读
- 重症肺炎并呼吸衰竭个案护理查房
- 吸烟有害健康课件高一上学期行为习惯养成教育主题班会
- 中医各家学说(湖南中医药大学)智慧树知到课后章节答案2023年下湖南中医药大学
- 油气井现代产量递减分析方法及应用讲座
- 基于PLC的全自动洗衣机控制系统设计毕业论文
评论
0/150
提交评论