mcs51单片机机应用于温度控制器.doc
《mcs51单片机机应用于温度控制器.doc》由会员分享,可在线阅读,更多相关《mcs51单片机机应用于温度控制器.doc(38页珍藏版)》请在咨信网上搜索。
目 录 1 前 言 1 2 温度控制器的技术参数 2 3 系统设计方案的论证 3 3.1 方案比选 3 3.2 方案说明 4 4 控制系统设计 5 4.1 系统的工作原理 5 4.2 硬件电路设计 6 4.3 系统软件设计 16 5 调试,安装,运行 30 5.1 系统硬件调试 30 5.2 系统软件调试 30 6 小结 31 毕业论文(设计)原创性声明 本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 毕业论文(设计)授权使用说明 本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名: 日期: 日期: 注 意 事 项 1.设计(论文)的内容包括: 1)封面(按教务处制定的标准封面格式制作) 2)原创性声明 3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分:引言(或绪论)、正文、结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。 3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写 2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画 3)毕业论文须用A4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上 5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序 1)设计(论文) 2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 3)其它 MCS51单片机机应用于温度控制器 摘要: 本文论述了采用单片机控制的智能温度控制器,使用AT89C4051单片机、ADS7844E A/D转换芯片、HT1621B液晶显示驱动芯片及液晶显示器,实现温度的测量、输出控制及显示功能。 关键字:单片机、A/D转换,液晶显示及其驱动 1 前 言 模拟电路温度控制器存在电路复杂、功能简单和调试不方便的问题,随着电子技术的快速发展,超大规模集成电路的技术越来越成熟,制造成本越来越低,单片机在军事、工业、通讯、家用电器、智能仪表等领域的应用越来越广泛,使产品的功能、精度和质量大幅度提高;同时,电路的设计更简单、故障率低、可靠性高、成本低;特别是近几年来Flash技术的发展,使单片机系统的开发周期大大缩短,开发成本大幅降低,使用单片机控制的智能仪表是仪表领域发展的必然趋势。本文论述了采用ATMEL公司的AT89C4051单片机和美国Burr-Brown公司的ADS7844E模-数转换芯片以及HOLTEK公司的HT1621B液晶显示驱动芯片设计的LCD显示智能温度控制器。 本系统实现了模拟温度数据采集、模拟量到数字量转换、软件对温度信号进行非线性校正,单片机数据运算及逻辑处理、LCD显示、键盘处理及继电器输出控制功能。 本文主要介绍了智能温度控制器的功能和设计的过程。重点说明电路设计、软件设计。 第 37 页 共 31 页 2 温度控制器的技术参数 本系统采用ATMEL公司的AT89C4051单片机和美国Burr-Brown公司的ADS7844E模-数转换芯片以及HOLTEK公司的HT1621B液晶显示驱动芯片设计,实现了模拟温度数据采集、模拟量到数字量转换、单片机数据运算及逻辑处理、LCD显示、键盘处理及继电器输出控制功能,主要技术参数见表1 表1 主要技术参数表 测量精度: 0.5℃ 量程 0~400℃ 显示分辨率: 0.1℃ 采样速度: 500毫秒 调节算法: 开关调节 (ON/OFF) 输入: 热电阻:Pt100 输出: 继电器,常开触点(max.250VAC, 1A) 报警: 继电器,常开触点(max.250VAC,3A) 电源: 220VAC ±10% ; 50Hz 环境: 工作温度:0 ~ 50℃,相对湿度≤85% 3 系统设计方案的论证 本章主要叙述温度控制器的设计方案。 3.1 方案比选 随着电子技术的发展,温度控制器的设计方案经历了模拟电路温度控制器、模拟量测量加数字显示、单片机温度控制器的发展过程;在单片机温度控制器的设计方案中,又发展出各种智能型的温度控制器方案,如:高AD转换的精度,PID调节控制输出、PID + 模糊控制等。本次设计着重锻炼自己的动手能力,熟悉单片机的使用,具体提出如下设计方案: 方案一:采用8031单片机作为控制核心,以最普通的器件ADC0809作数/模转换,以继电器作为控制输出。此方案简单可行,造价低廉,但由于8031没有片内ROM,需要扩展程序存储器,增加了电路的复杂性,并且由于0809是8位的数/模转换电路,在温度测量范围很小时,测量精度还能满足要求,当测量温度范围稍宽时,测量的精度就不能实际应用的要求。 方案二:采用片内带Flash存储器MCS51系列单片机作为控制核心,采用12位数/模转换电路,以继电器作为控制输出。由于采用了12位的ADC转换芯片,转换范围从0到4096,当温度范围要求为0-1000℃时,每一位表示约为0.25℃,考虑到ADC转换芯片的转换精度±1LSB及运算放大器的误差,测量精度理论上可到0.5℃,可以满足一般的控制要求。 方案三:目前许多单片机生产商推出了自带ADC转换,FLASH存储器、EEPROM的产品,如美国Analog Devices公司AduC812内部带12位的ADC转换,如果采用AduC812单片机作为控制核心,则系统外围电路比较简单且能够达到控制精度要求,但是成本较高。 本系统采用方案二,温度控制器所需要的I/O数量不多,程序量不是很大(不考虑PID调节控制输出),为了节省单片机的I/O口,选用12位串行口数/模芯片ADS7844E,单片机使用AT89C4051,片内程序存储器空间为4K,15条I/O。 3.2 方案说明 系统中设计了一个EEPROM存储器来保存设置参数,目前市面上常用的EEPROM芯片主要有两种接口类型:I2C接口及SPI接口,主要的代表芯片有AT24C02/04/08/16系列和AT25010/020/040系列,由于ADS7844E转换芯片采用的是SPI接口,所以选用AT25010存储器可以节省I/O端口。 显示器件常用的有LED数码管显示器件、LCD显示器件。LED数码管显示器件具有亮度大,寿命长等特点,但需要较大的驱动电流;LCD显示器件成本低、功耗小,但需要专用的驱动电路以及亮度低;本方案的显示器件采用6位字符液晶显示器,驱动芯片采用HOTELK公司的HT1621B。 4 控制系统设计 控制系统设计主要包括系统工作原理、系统硬件设计和系统软件设计。系统软件设计主要包括软件结构、各子程序流程及具体代码设计;下面分别介绍各部分的设计过程 4.1 系统的工作原理 单片机 AT89C4051 A/D 存储器 显示驱动 液晶显示器 键盘及控制输出 图 1 系统功能框图 温度测量放大 电源电路 系统功能框图如图1所示 系统的工作原理是:电桥将温度传感器Pt100的温度信号转换为与温度相关的电压信号,经过两级运算放大后进入ADC转换;CPU读取ADC转换结果,经过运算转换为显示的温度字符,控制LCD驱动器来显示温度值,另外,CPU将测量出的温度值与系统设定的温度值相比较,根据不同的控制模式来控制继电器的输出,系统中的按键用来设定系统工作参数,电源电路主要为各电路提供工作电源。 系统中需要保存的参数有:设定温度值、回程差值(防止温度到达设定值时输出振荡)、加热或制冷工作模式(0表示加热模式,1表示制冷工作模式)、温度测量范围、温度校正值、温度校正符号等。由于温度测量范围、温度校正值、温度校正符号用于系统调试校正,此参数不能由用户随便修改,所以在修改这些参数前必须先输入一个密码(默认为1234)后系统才显示这些参数,建议用户不要修改此类参数。 本系统采用了四个按键,功能分别为:加键、移位键、功能键、保存键。按下功能键可循环显示系统各项参数,通过加键和移位键组合可对各项参数进行修改,按下保存键后,CPU将修改后的参数写到EEPROM中,系统重新上电后CPU将调用EEPROM中的参数(如果不对数据进行保存时,系统重新上电后将调用以前设置的参数)。 4.2 硬件电路设计 温度控制器电路主要包括:CPU电路、温度信号调理电路、ADC转换电路、液晶显示及驱动电路、电源电路及控制输出电路; 4.2.1 CPU电路 图2 AT89C4051管脚图 CPU电路主要是CPU、数据存储器及晶振电路。CPU采用美国ATMEL公司的MCS51系列单片机AT89C4051,管脚图如图2所示,它具有以下标准功能:4K字节FLASH闪速存储器,128字节内部RAM,15个I/O口,两个16位定时/计数器,5个中断向量(两种优先级),一个全双工串行通信接口,内置一个精密模拟比较器,片内振荡器及时钟电路。AT89C4051的功能框图如图3所示。CPU的端口资源分配见表2: 图3 AT89C4051功能框图 表2: CPU的端口资源分配表 引脚名称 功能 引脚名称 功能 P1.0 AT25010片选信号 P3.0 功能键 P1.1 HT1621B片选信号 P3.1 加键 P1.2 ADS7844E片选信号 P3.2 保存键 P1.3 HT1621B读控制信号 P3.3 移位键 P1.4 HT1621B写控制信号 P3.4 P1.5 串行口时钟 P3.5 继电器控制输出 P1.6 串行数据输入 P3.6 P1.7 串行数据输出 P3.7 看门狗复位 注:由于P1.0及P1.1内部不带上拉电阻,使用时在此两脚上需要接上拉电阻,电阻阻值按10K选取 数据存储器采用美国ATMEL公司AT25010 EEPROM。AT25010通过SPI接口与CPU进行数据交换,端口连接见表1。 时钟采用12M晶体振荡器,负载电容按22p选取。 4.2.2温度信号调理电路 本设计温度传感器采用Pt100,温度信号由电桥电路输出后,经过两级放大后进入ADC转换。 1、Pt100传感器介绍 Pt100传感器是利用铂电阻的阻值随温度变化而变化、并呈一定函数关系的特性来进行测温,其温度/阻值对应关系为:0℃≤t≤850℃时,Rt=R0(1+At+Bt2) 式中,A=3.90802×10-3;B=-5.80×10-7;R0=100。 Pt100温度传感器的主要技术参数如下:测量范围:-200℃~+850℃;热响应时间<30s;允通电流≤5mA。另外,Pt100温度传感器还具有抗振动、稳定性好、准确度高、耐高压等优点。 2、电桥采集数据的电路图及原理 Pt100电桥电路如图4、图5所示。其中,R10﹑R11﹑R14﹑Rt组成电桥,R10=R11= 10R0, R14=R0。电桥采用TL431组成恒流源供电,为了避免流过Pt100传感器的电流过大使其发热进而导致非线性失真增大,取Im=1mA。 R10 R14 R11 Rt - + 1mA - + Vo 图4 信号调理电路 设流过R14的电流为I1,流过Rt的电流为I2,由于恒流源的电流为1mA,所以有: I1+I2 = 1; (1) I1/I2=(10R0+Rt)/11R0 (2) Rt=R0(1+At+Bt2) (3) A=3.90802×10-3;B=-5.80×10-7;R0=100 当温度较低时,I1/I2≈1,所以有: Vi=I2Rt-I1R0≈0.5(Rt-R0) (4) 又因为△R= Rt-R0 = R0(At+Bt2),所以: Vi≈0.5*R0(At+Bt2)≈0.5*R0*A*t =0.195*t (mV) (5) 由公式(5)可知,温度较低时,Pt100传感器的线性度良好;当温度较高时,Pt100传感器的线性度变差,此时有 Vi= 10R0(At+Bt2)/(22+At+Bt2)(mV) (6) 软件校正采用最小二分法分段校正:将整个测量范围按每50℃为一段,共分为8段,求出每一段的校正函数分别为:(求解方法采用Excel中的SLOPE函数及INTERCEPT函数) 0~50℃ : T0 = 0.89*T – 0.10 50~100℃ : T0 = 0.92*T – 1.44 100~150℃ : T0 = 0.95*T – 4.28 150~200℃ : T0 = 0.98*T – 8.80 200~250℃ : T0 = 1.01*T – 15.11 250~300℃ : T0 = 1.04*T – 23.45 300~350℃ : T0 = 1.08*T – 34.16 350~400℃ : T0 = 1.12*T – 47.65 温度的计算方法:T=ADC转换结果*量程/4096,将T的值代入校正函数中,求出校正后的温度值T0。 图5 信号调理电路 3、误差分析 (1)Pt100传感器的非线性产生的误差 Pt100的温度函数为Rt=R0(1+At+Bt2),由此可见Pt100的阻值与温度的函数不是线性关系,不考虑其它因素带来的误差,由于Pt100传感器的非线性,在0-400℃的范围内,可产生约12℃的误差,在实际测量中,用非线性校正程序可以减少由此带来的误差。 (2)A/D转换器非线性带来的误差 在实际应用中会发现,对同一模拟输入信号Vi,经A/D转换得出的数字量会有±1位的跳变,这是由A/D转换器的判断误差造成的。A/D转换器的一位跳变对应的电压值,即为该12位A/D转换器的分辨率0.00122V=1.22mV,将会产生温度误差。 (3)A/D转换器参考电压Vref带来的误差 在比较转换过程中,Vref的变化会对输出的二进制代码有影响。在模拟输入信号不变的情况下,若Vref变大,会导致输出的二进制代码变小;反之,则变大,从而导致了温度误差。 4、注意事项与结论 由上面的分析可得,为了提高温度测量的准确性, A/D转换器的5V参考电源要稳定在mV级;在价格允许的情况下,Pt100传感器﹑A/D转换器和运放的线性度要高。同时,利用软件矫正其误差,可以使测得温度的精度在±0.5℃。 4.2.3 ADC转换电路 本方案的ADC转换采用Burr-Brown公司的ADS7844E,它是推出的一种高性能、宽电压、低功耗的12bit串行模数转换器。它有8个模拟输入端,可用软件编程为8通道单端输入A/D转换器或4通道差分输入A/D转换器,其转换率高达200KHz,而线性误差和差分误差最大仅为±1LSB。ADS7844在电源电压为2.7V~5V之间均能正常工作,最大工作电流为1mA,进入低功耗状态后的耗电仅3μA。ADS7844通过串行接口与CPU进行通信,而且接口简单方便。ADS7844E的引脚排列如图6所示,引脚与其它电路的连接见表3。 ADS7844E的引脚功能:CH0~CH7:模拟输入端,当器件被设置为单端输入时,这些引脚可分别与信号地COM构成8通道单端输入A/D转换器;当器件被设置为差分输入时,利用CH0~CH1、CH2~CH3、CH4~CH5和CH6~CH7可构成4通道差分输入A/D转换器 COM:信号地 VREF:参考电压输入端,最大值为电源电压 CS:片选端,低电平有效,该脚为高电平时,其它数字接口线呈三态 DCLK:外部时钟输入端,在时钟作用下,CPU将控制字写入ADS7844E,并将转换结果从中读出 DIN:串行数据输入端,在片选有效时,控制字在DCLK上升沿被逐位锁入ADS7844E DOUT:串行数据输出端,在片选有效时,转换结果在DCLK的下降沿开始被逐位从ADS7844E移出 BUSY:“忙”信号输出端,在接收到控制字的第一位数据后变低,只有在转换结束且片选有效时,该脚才输出一个高脉冲 SHDN:电源关闭端,低电平有效。当SHDN为低电平时,ADS7844E进入低功耗状态 VCC,GND:分别为电源端和数字地。 图6 ADS7844引脚图 表3: ADS7844E引脚连接表 序号 引脚名称 功能 与其它电路的连接 备注 1~3 CH0~CH2 模拟输入通道 温度信号放大输出 4~7 CH3~CH7 模拟输入通道 未连接 9 COM 模拟输入公共端 模拟地 11 VREF 参考电压端 工作电源VCC 采用5V的参考电压 12、20 VCC 工作电源 工作电源+5V 接10uF和0.1uF的退耦电容 13、14 GND 电源地 电源地 15 DOUT 串行数据输出 CPU P1.6 16 BUSY “忙”信号输出端 未连接 17 DIN 串行数据输入 CPU P1.7 18 CS ADS7844E片选信号 CPU P1.2 19 DCLK 串行口时钟 CPU P1.5 4.2.4 液晶显示及驱动电路 HT1621B是128 点内存映象和多功能的LCD驱动器,HT1621B 的软件配置特性使它适用于多种LCD应用场合,包括LCD模块和显示子系统,用于连接主控制器和HT1621的管脚只有4 或5 条,HT1621 还有一个节电命令用于降低系统功耗。 HT1621B的引脚功能及与其它电路的连接见表4: 表4: HT1621B的引脚功能及与其它电路的连接表 序号 引脚名称 功能 与其它电路的连接 备注 1 CS Ht1621B 片选 CPU P1.1 低电平有效 2 RD 读控制 P1.3 3 WR 写控制 P1.4 4 DATA 数据线 P1.7 5 Vss 电源地 电源地 6/7 OSCI/OSCO 时钟 未连接 使用片内RC振荡器 8 VLCD LCD电源 +5V 选用5VLCD 9 VDD 电源 +5V 10 IRQ 看门狗输出 未连接 11、12 BZ 声音频率输出 未连接 13~16 COM0~COM3 LCD 公共输出口 LCD 公共输出口 17~48 SEG0~SEG31 LCD 段输出口 LCD 段输出口 只用到其中12位 4.2.5 电源电路 图5 电源电路 4.3 系统软件设计 4.3.1 软件结构设计 温控器软件主要包括主程序模块、定时器中断处理模块、LCD显示处理模块、ADC转换模块和键盘处理模块。定时器中断处理模块主要产生时间事件,其中200ms事件用于读取键盘的健值,500ms为ADC转换事件。主程序模块循环判断系统是否有事件发生,当发生200ms事件时,调用键盘处理子程序、LCD显示刷新子程序。当发生500ms事件时,调用ADC转换子程序及LCD显示刷新子程序。主要模块调用关系如图6所示 LCD显示刷新 定时器中断程序 读取键值 图6 主要模块调用关系图 页面处理 保存处理 移位处理 加键处理 闪烁处理 显示转换 写显示数据 启动ADC转换 读ADC数据 求温度平均值 温度比较 温度校正 二进制转换BCD码温度 主程序模块 键盘处理 系统初始化程序 ADC转换模块 4.3.2 系统程序流程图设计 图7 主程序流程图 看门狗复位 主循环开始 判断是否有键盘事件 Y N 上电或复位,程序开始 设置堆栈,清内存 调用设备初始化子程序 开中断 N N N 清键盘事件标志 判断上次键盘事件处理是否完成 判断键盘值是否为0 键盘处理子程序 判断是否有ADC转换事件 清ADC转换事件标志 ADC处理子程序 显示刷新处理子程序 1、主程序流程图 2、键盘处理流程 功能:显示相应页面以及修改系统参数 输入:键值 输出:修改显示缓冲器数据及系统参数 寄存器分配:寄存器组1,各子程序具体分配情况见子程序说明。 调用子程序:页面处理子程序(Pagehandle)、加键处程序(Uphandle)、保存数据子程序(Savehandle)、移位处理子程序(Shifthandle) 父函数:主程序 图8 键盘处理程序流程图 压堆栈,设置寄存器组 置键盘未处理完标志 是否有为功能键 Y N 是否为加键 Y N 是否为保存键 Y N 是否为移位键 Y N 调用页面处理子程序 调用加键处理子程序 调用移位处理子程序 调用保存数据处理子程序 恢复堆栈 3、ADC转换处理流程 功能:启动ADC转换、读取ADC转换结果、进行温度校正、比较、继电器控制输出 输入:无 输出:温度值显示值、继电器控制输出 寄存器分配:寄存器组3,各子程序具体分配情况见子程序说明。 调用子程序:启动ADC转换子程序(Start_Adc)、读转换结果程序(ReadADC)、求平均值子程序(Average)、二进制温度转BCD码子程序(Bin_Temp_BCD)、温度校正子程序(TempAdjust)、温度比较子程序(TempCopmare) 父函数:主程序 图9 ADC转换程序流程图 压堆栈,设置寄存器组 调用ADC启动子程序 延时等待ADC转换结束 调用读ADC结果子程序 调用二进制温度转换子程序 调用求平均值子程序 恢复堆栈 调用温度校正子程序 调用温度比较子程序 4、定时器中断处理程序流程 功能:产生定时事件 输入:无 输出:时间事件 寄存器分配:寄存器组1。 调用子程序:读取键值子程序(Getkeyvalume)、定时器初始化子程序 父函数:无 Y N 图10 定时器中断处理子程序流程图 判断是否为200ms 判断是否为500ms 置200ms事件标志 置500ms事件标志 Y Y N N 恢复堆栈 清超时标志,恢复正常显示 判断是否为1000ms 判断键盘是否超时 N Y Y N 压堆栈,设置寄存器组 重装定时计数器(调用定时器初始化子程序) ms计数单元加1 调用取键值子程序 判断是否为100ms 键盘事件处理是否完成 4.3.3 系统程序设计 目前许多公司在生产单片机的同时,都会推出自己的编译系统,并且许多编译系统都会支持C语言、汇编语言或两种语言的混合编程;本系统采用汇编语言编程,使用Keil C51编译。由于程序的篇幅较长,下面主要介绍主程序及二进制温度转换为BCD温度值子程序,其它程序请查阅附录中的程序清单。 1、主程序清单 ORG 0000H ; 复位入口 JMP PROGRAME_STAR ; 程序开始 ORG 0003H ; 外部中断0入口 RETI ; ORG 000BH ; 定时0中断入口 AJMP TIME0_INT ; ORG 0013H ; 外部中断1入口 RETI ; ORG 001BH ; 定时1中断入口 RETI ; ORG 0023H ; 串口中断入口 RETI ; ORG 0060H ; 程序起点 PROGRAME_STAR: MOV SP , #STACK ; 设置堆栈 MOV PSW , #(0 SHL 3) ; 使用寄存器组0 MOV R0 , #10H ; 清内存的开始地址 MOV R1 , #50H -1 ; 设置清除内存计数 MOV A , #00H ; MAIN0: MOV @R0 , A ; 内存清零 INC R0 ; DJNZ R1 , MAIN0 ; ACALL DEVICE_INIT ; 设备初始化 MOV IE ,#82H ; 开中断 MAINLOOP: ACALL WDRESET ; 看门狗复位 MOV A , TIMEEVENT ; 200ms事件标志, 处理键盘事件 ANL A , #EVT_MS200 ; A和#EVT_MS200做与运算,取出200ms事件标志位 JZ MAIN1 ; 200ms事件标志位为0时跳到MAIN1 MOV A , #EVT_MS200 ; CPL A ; ANL TIMEEVENT , A ; 清除200ms事件标志 MOV A , KEYOVER ; 键盘处理完标志 JNZ MAIN3 ; ******************** MOV A , KEY_VALUE ; 取键值 JZ MAIN3 ; 键盘值为0时跳出********** ACALL KEYHANDLE ; 处理键盘事件 AJMP MAIN3 ; *********************** MAIN1: MOV A , TIMEEVENT ; 500ms事件标志 处理ADC转换 ANL A , #EVT_MS500 ; A和#EVT_MS500做与运算,取出500ms事件标志位 JZ MAIN4 ; 500ms事件标志位为0时跳到MAIN4 MOV A , #EVT_MS500 ; CPL A ; ANL TIMEEVENT , A ; 清除500ms事件标志 LCALL ADCCONVERT ; 调用ADC转换子程序 MAIN3: ACALL REFESHLCD ; 刷新LCD MAIN4: SETB CSLCD ; LCD控制芯片片选信号拉高 SETB CSADC ; 置位AD7844E 片选 SETB CSE2ROM ; 置位AT25010 片选 AJMP MAINLOOP ; 主循环 2、二进制温度转换为BCD温度值子程序 ;二进制温度转换为BCD温度值子程序 ;输出:无 ;输入:无 ;寄存器组: 第 3 组 ; 温度值=ADC转换结果(BIN) * 量程值/4096 BIN_TEMP_BCD: MOV PSW , #(3 SHL 3) ; 使用寄存器组3 MOV R6 , RANGE ; 将BCD码量程值转换为二进制数 MOV R7 , RANGE+1 ; LCALL BCDTOBIN ; MOV R0 , #TEMP_VALUE ; 温度转换后的存储地址 MOV R6 , TEMP_BINL ; 取二进制温度低位 MOV R7 , TEMP_BINH ; 取二进制温度高位 LCALL MUL16 ; 调用16进制乘法 ;以下程序根据第一次转换的结果查表取出校正函数 MOV A , TEMP_VALUE+1 ; 取二进制温度高位 ANL A , #0F0H ; SWAP A ; MOV R6 , A ; MOV A , TEMP_VALUE+2 ; 取二进制温度高位 ANL A , #0F0H ; SWAP A ; MOV R7 , A ; MOV A , TEMP_VALUE+2 ; 取二进制温度高位 ANL A , #0FH ; SWAP A ; ADD A , R6 ; MOV R6 , A ;R6,R7分别存放二进制温度的低位和高位 LCALL BINTOBCD ; 调用二进制转换为BCD码 MOV A , R5 ; 去掉转换结果的千位 ANL A , #0FH ; TEMP_BCDH 存放结果的百位和十位 SWAP A ; MOV R5 , A ; MOV A , R4 ; ANL A , #0F0H ; SWAP A ; ADD A , R5 ; MOV R6 , A ; MOV R7 , #00H ; LCALL BCDTOBIN ; MOV DPTR , #DIVCODE00 ; 查表地址 MOV A , R4 ; 偏移地址 MOVC A , @A+DPTR ; MOV R5 , A ; RL A ; 偏移地址*2 MOV DPTR , #INTERCEPT0 ; 查表地址 MOVC A , @A+DPTR ; MOV BINRANGE+1 , A ; 校正值高位 INC DPTR ; MOV A , R5 ; RL A ; MOVC A , @A+DPTR ; MOV BINRANGE , A ; 校正值低位 MOV DPTR , #DIVCODE00 ; 查表地址 M- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mcs51 单片机 应用于 温度 控制器
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文