1、燕山大学课程设计燕山大学课程设计说明书 课程名称 单片机原理及应用技术 题 目 空调温度控制 学院(系) 电气工程学院 年级专业 2011级检测技术与仪器一班 学 号 110103020024 学生姓名 余 焊 威 指导教师 吴 希 军 教师职称 副教授 燕山大学课程设计(论文)任务书院(系):电气工程学院 基层教学单位:仪器科学与工程系 学 号110103020024学生姓名余焊威专业(班级)检测11-1设计题目空调温度控制设计技术参数利用实验仪上显示电路、键盘或开关电路、A/D转换电路,模拟空调恒温控制。可以利用实验仪上的电位器模仿温度变化,制冷可以用发光二极管模拟,也可以控制直流电机模仿
2、压缩机的运行。要求可以用键盘或开关设定恒温温度,当外界温度超过设定温度1时,就要启动加热或制冷压缩机。设计要求显示电路、键盘或开关电路、A/D转换电路的硬件电路设计;编制相应的程序。工作量设计的内容满足课程设计的教学目的与要求,设计题目的难度和工作量适合学生的知识和能力状况,工作量饱满。工作计划查阅资料进行设计准备、设计硬件电路、编制程序,编制程序、验证设计、撰写任务书。参考资料单片微型计算机接口技术及其应用 张淑清 国防工业出版社单片机原理及应用技术 张淑清 国防工业出版社单片机应用技术汇编指导教师签字基层教学单位主任签字说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。2014
3、年 7 月 6 日 目录引言3摘要4第一章 设计说明51.1 设计要求51.2 设计目的51.3设计过程5第二章 设计总体说明6第三章 各个模块介绍73.1 总体模块介绍73.2 8051单片机介绍73.3 可调模拟输入电路介绍83.4 A/D转换器模块介绍93.5 8255与LED显示介绍103.6 数码管与键盘工作介绍12第四章 硬件连接15第五章 程序流程图16第七章 程序设计19总结25参考文件26燕山大学课程设计评审意见表27引 言 温度是表示物体冷热程度的物理量,微观上来讲是物体分子热运动的剧烈程度。温度只能通过物体随温度变化的某些特性来间接测量,而用来量度物体温度数值的标尺叫温标
4、。它规定了温度的读数起点(零点)和测量温度的基本单位。国际单位为热力学温标(K)。目前国际上用得较多的其他温标有华氏温标(F)、摄氏温标(C)和国际实用温标。从分子运动论观点看,温度是物体分子运动平均动能的标志。温度是大量分子热运动的集体表现,含有统计意义。对于个别分子来说,温度是没有意义的。 在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面,随着人们生活质量的提高,酒店厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务于社会.而今,空调等家用电器随着生产技术的发展和生活水平的提高越来越普及,一个简单,稳定的温度控制系统能更好的适应市场。摘 要 在现代自动控制领
5、域中,温度检测占据这至关重要的作用。温度检测系统在科研领域、安全监控以及人们的日常生活发挥着无可替代的作用。温度控制系统正从模拟式向数字式飞速发展。本论文概述了空调温度控制系统的原理及特性,在此基础上描述了系统研制的理论基础,温度采集等部分的电路设计,并对测温系统的一些主要参数进行了讨论。针对测温系统温度采集、接收、处理、显示部分的总体设计方案进行了论证,进一步介绍了单片机在系统中的应用,分析了系统各部分的硬件及软件实现。本空调温度控制系统采用以MCS51单片机为核心,以控制室内温度稳定为目的。通过单片机处理经A/D转换后的模拟信号,控制制冷制热电机的运转,以达到控制室内温度稳定的目的。关键字
6、:51单片机 温度控制第一章 设计说明 1.1 设计要求 利用实验仪上显示电路、键盘或开关电路、A/D转换电路,模拟空调恒温控制。可以利用实验仪上的电位器模仿温度变化,制冷可以用发光二极管模拟,也可以控制直流电机模仿压缩机的运行。要求可以用键盘或开关设定恒温温度,当外界温度超过设定温度1时,就要启动加热或制冷压缩机。而且要求显示电路、键盘或开关电路、A/D转换电路的硬件电路设计,编制相应的程序。1.2 设计目的温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制越来越重要,没有合适
7、的温度,许多电子设备就不能正常的工作。由此可见,温度影响的各方各面,而温度的控制也显得日益重要。传统的人工操作控制温度,效率低,精度小,误差大,操作受到很大的人为因素的影响。为了提高工业生产效率,减小误差,基于单片机的智能化的温度控制是主流。现代的智能空调,不仅利用了数字电路技术和模拟电子技术,而且采用了单片机技术,实现了软硬件的结合,既完善了空调的功能,又简化了空调的控制与操作,不仅满足了不同用户对温度的不同要求,而且能全智能调节室内温度。单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。因此,单片机广泛用于现代
8、工业生产控制中。本次课程设计的目的是,围绕为了熟悉WAVE开发软件及在电子信息课程中的应用课程,学习WAVE软件的使用,使我们能熟练的应用WAVE软件实现对80C51单片机的编程,了解程序开发过程中用到的一些基础知识,同时使我们熟悉应用程序开发过程,使我们从学校学习到参加工作之间有一个良好的过渡,为今后处理相应领域的专业问题打下坚实的程序基础。 1.3 设计过程本设计采用51单片机为控制芯片,用伟福实验箱上的电位器来模仿温度传感器,将电位器输出的电压输入A/D转换芯片,再将转换后的模拟信号输入单片机,通过单片机扩展的显像管、LED灯、矩阵键盘等来实现其功能。 第二章 设计总体说明本次单片机课程
9、设计空调温度控制,采用MCS-51单片机作为控制芯片,要求利用实验仪上显示电路、键盘、或开关电路、A/D转换电路,模拟空调恒温控制,可以实现键位与数字动态显示的一种设定温度可变的空调温度控制系统。本系统功能由硬件和软件两大部分协调完成,硬件部分主要完成电位器对温度的电压模拟、温度的设定、温度信息的显示等功能;而软件主要完成对模拟输出的温度信号进行数字化处理及数码显示管的显示控制等功能。电位器通过改变电压模仿温度传感器输出,经A/D转换变成0-255的数字信号从而输入单片机,单片机执行运算程序。由于要设定温度,我们需要用键盘或开关输入温度数值,初始设定温度值由程序写入,用户可通过外接键盘改变初始
10、设定温度。单片机对键盘进行扫描,确定那个键按下。然后显像管显示实际和设定温度。实际温度大于设定温度,则红灯亮;实际温度小于设定温度,则绿灯亮。根据以上设计思想,可设计功能如下:利用伟福试验箱的六位数码管,后两位显示设定温度,初定为10-30摄氏度;第三到第五位显示实际温度,初定为-40-50摄氏度。另通过设置键盘上的两个键位,实现温度+1和-1功能,用来调控设定温度,初定为NEXT、LAST键。再利用L1(红灯)和L2(绿灯)来模仿加热和制冷的电机驱动动态数码管实际温度LED82558051键盘设定温度电位器A/D图1 空调温度控制系统总系统框图第三章 各个模块介绍3.1 总体模块介绍本设计共
11、分为四个模块,分别为温度测量、按键控制、数码管温度显示、LED灯模仿制冷和制热系统。1) 温度测量模块是以电压器输出的电压模仿温度传感器通过A/D转换后进入单片机进行程序运算。2) 按键控制模块是通过键盘上NEXT、LAST键来升高或降低设定温度,通过比较与实际温度的大小来控制制冷和制热系统的运行。3) 数码管温度显示模块用来显示设定温度以及实际温度。4) LED灯模块用来模仿制冷和加热电动机的动作。 3.2 8051单片机介绍图2 8051单片机引脚图单片机就是在一块硅片上集成了微处理器、存储器和各种输入输出接口电路的微型计算机,简称单片机。单片机以其较高的性能价格比受到了人们的重视和关注。
12、它的优点就是体积小、重量轻、抗干扰能力强、对环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于单片机具有较高的性能比,国内MCS-51系列单片机得到了广泛的应用。单片机根据其基本操作处理的位数可分为4、8、16、32位单片机,应用最为广泛的是八位单片机。根据本次设计的实际情况和要求,在本次设计中采用80C51作为系统的控制芯片。单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 电源: VCC - 芯片电源,接+5V; VSS - 接地端; 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根, ALE/PROG:地址锁存允许/片
13、内EPROM编程脉冲 ALE功能:用来锁存P0口送出的低8位地址 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD功能:在Vcc掉电情况下,接备用电源。 EA/Vpp:内外ROM选择/片内EPROM编程电源。 EA功能:内外ROM选择端。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和
14、控制信号(属控制总线)。P0口输入时需要接上拉电阻才能置1;3.3 可调模拟量输入电路介绍 温度是一个非电量物理量,需要将之转化为电信号才能进行后续的测量和控制。由于电位器电路用于产生可变的模拟量,为此,在此课程设计中,利用了实验仪器上的电位器来模拟温度变化,将温度这个非物理量转化为电压信号输出。电位器结构图如所示。图3 电位器示意图 图4 电位器与A/D转换器连接图3.4 A/D转换器模块介绍A/D转换电路是将从电位器输出的模拟电信号转换为数字电信号的电路结构。目前A/D转换器的种类很多,有计数比较型、逐次逼近型、双积分型等等。选择A/D转换器件主要从转换速度、精度和价格上考虑。逐次逼近型A
15、/D转换器,在精度、速度和价格上都比较适中,是最常用的A/D转换器。双积分A/D转换器,具有精度高、抗干扰性好、价格低廉等优点,但转换速度慢。近年来在微机应用领域中也得到了广泛的应用。本次设计采用八路模拟输入通道的逐次逼近型的八位A/D转换器ADC0809。采用ADC0809作为与单片机的接口电路,它的结构比较简单,转换速度较高。采用ADC0809作为A/D转换器具有与单片机连接简单的优点,它是八位的转换器可以与八位的单片机直接连接,这样就简化了系统的连接电路也有利于系统软件的编写。是目前国内应用最广泛的8位通用A/D芯片。ADC0809芯片的接口及其外接电路如下图所示。图5 A/D转换内部结
16、构图图6 ADC0809芯片 图7 ADC0809A/D转换电路ADC0809芯片,内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。图中多路开关可选8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成A、B、C3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,下表为通道选择表。表1 通道选择表C B A 被选择的通道0 0 0 IN00 0 1 IN10 1 0 IN20 1 1 IN31 0 0
17、 IN41 0 1 IN51 1 0 IN61 1 1 IN73.5 8255与LED显示介绍一、8255介绍51系列单片机没有专用的对外地址总线和数据总线,其P0口和P2口既是通用I/O口,同时P0口还是分时复用的双向数据总线和低8位地址总线(一般需要加一级锁存器),而P2口则是高8位地址总线。在单片机的I/O口线不够用的情况下,可以借助外部器件对I/O口进行扩展。8255芯片是可编程并行I/O接口芯片,它具有三个8位并行口PA, PB和PC,一个8位的数据口D0D7 ,PC口分高4位和低4位。高4位可与PA口合为一组(A组),低4位可与PB口合为一组(B组) ,PC口可按位置位/复位。40
18、条引脚,DIP封装。 引脚图如图所示图8 8255引脚图 图9 LED显示电路图10 MCS-51单片机外扩8255A芯片的电路原理图二、LED显示介绍在此空调温度控制的设计中,我们用到了发光二极管LED,用红色的灯来表示加热,用绿色的灯来表示制冷。实验仪上装有8只发光二极管及相应驱动电路,其发光二极管的电路原理图如下示: 图11 发光二极管电路原理图3.6 数码管与键盘工作介绍一、键盘与数码管使用介绍本课设中用到的实验仪已经将LED显示电路和键盘电路集成到一个集成电路中。LED显示和键盘的等效电路如图12示。显示控制的位码由74HC374输出,经MC1413反向驱动后,做LED的位选通信号。
19、位选通信号也可作为键盘列扫描码,键盘扫描的行数据从74HC245读回,74HC374输出的列扫描码经74HC245读入后,用来判断是否有键被按下,以及按下的是什么键。如果没有键按下,由于上拉电阻的作用,经74HC245读回的值为高电平,如果有键按下,74HC374输出的低电平经过按键被接到74HC245的端口上,这样从74HC245读回的数据就会有低位,根据74HC374输出的列信号和74HC245读回的行信号,就可以判断哪个键被按下。LED显示的段码由另一个74HC374输出。键盘和LED显示的地址译码见图5,做键盘和LED实验时,需将KEY/LED_CS接到相应的地址译码上。位码输出的地址
20、为0X002H,段码输出的地址为0X004H,键盘行码读回的地址为0X001H,此处X是由KEY/LED_CS决定。图12 数码管与键盘连线图二、矩阵式键盘扫描方式本设计采用的是64矩阵式键盘,键盘的行线X0X3通过电阻接+5V,当键盘没有键闭合时,所有的行线和列线断开,行线X0X3均呈高电平。扫描法是在判定有键按下后逐列(或行)置低电平,同时读入行(或列)状态,如果行(或列)状态出现非全1状态,这时与状态行,列交叉点的键就是所按下的键。扫描法的特点是逐列(或行)扫描查询。这时,相应的行(或列)应有上拉电阻接高电平。当键盘上某一键闭合时,该键所对应的行线与列线短路,此时该行线的电平将由被短路的
21、列线电平所决定。如果将行线接至单片机的输入端口,列线接至单片机的输出端口,则在单片机的控制下使列线Y0为低电平,其余五根列线Y1、Y2、Y3、Y4、Y5均为高电平,然后单片机读输入口状态(即键盘行线状态),若X0、X1、X2、X3均为高电平,则Y0这一列上没有键闭合,如果读出的行线状态不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态。如果Y0这一列没有键闭合,紧接着使列线Y1为低电平,其余列线为高电平,用同样的方法检查Y1这一列有无键闭合,如此类推。CPU对键盘的扫描可以采取程序控制的随机方式,CPU空闲时才扫描键盘;也可以采取定时控制方式,每隔一段时间,CPU对键盘扫描一次;还可以采
22、用中断方式,当键盘上有键闭合时,向CPU请求中断,CPU响应键盘发出的中断请求,对键盘进行扫描,以识别哪一个键处于闭合状态,并对键输入信息作相应处理。图13 键盘电路图三、动态数码管扫描方式由于8051单片机本身提供的I/O口有限,因此我们选择动态扫描方式。所谓动态显示,就是单片机定时地对显示模块件扫描。在这种方法中,显示模块件分时工作,每次只能有一个器件显示。但由于人视觉的暂留现象,所以仍感觉所有的器件都在显示。如许多单片机的开发系统及仿真器上的6位显示模块即采用这类显示方法。此种显示方法的优点是使用硬件少,因而价格低。但它占用机时长,只要单片机不执行显示程序,就立刻停止显示。由此可见,这种
23、显示将使计算机的开销增大。扫描方式中在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。节约了电能,节省 了I/O口。 图14 八位数码管原理图 图15 数码显示管电路图表2 数码管显示数字-共阴极字符码对照表显示数字1234共阴极字符码06H5BH4FH66H显示数字5678共阴极字符码6DH7DH07H7FH显示数字90AB共阴极字符码6FH3FH77H7CH显示数字CDEF共阴极字符码39H5EH79H71H第四章 硬件连接 一、地址译码插孔译码插孔地址范围CS008000H08F
24、FFHCS109000H09FFFHCS20A000H0AFFFHCS30B000H0BFFFHCS40C000H0CFFFHCS50D000H0DFFFHCS60E000H0EFFFHCS70F000H0FFFFH二、硬件连线连 线插 孔 1插 孔 21CS08255-CS2CS1KET/LED-CS3CS2AD-CS4PA0L15PA1L26IN0电位器输出第五章 程序流程图一、主程序总体设计流程图当前温度和设定温度相比较高1度低1度温度初始化当前温度和设定温度送显示缓冲显示温度采样当前温度相等制冷不变加热读键盘向下键向上键设定温度减1设定温度加1开始键盘值当前温度和设定温度相比较低1度图
25、16 主程序流程图二、其他各模块程序流程图 图17 A/D转换程序流程图 图18 键盘程序流程图 图29 数码管程序流程图第六章 程序设计LowTemp equ -40 ; A/D 0传感器最低值设定HighTemp equ 50 ; A/D 255传感器最高值设定Heat equ 1Cool equ 2LowLimit equ 10HighLimit equ 30ORG 0000H ;程序起始地址为0000Hljmp Start ;长跳转到Start主程序段处Delay: ;延时函数 mov r7, #0ffhAA: djnz r7,AA ;DJNZ命令为寄存器减一不为0则跳转 ret ;延
26、时255TestKey: ;检测KEY有没有被按下函数 mov dptr,#09002h ;将键盘列地址9002H送入数据指针DPTR中 mov a, #0 ;A清0 movx dptr, a ;所有列为低电平检测 mov dptr,#09001h ;将键盘行地址9001h送入DPTR中, movx a, dptr ;9001h中的内容送入A中,按下的键为低电平 cpl a ;累加器取反,按下的键为高电平 anl a, #0fh ;低四位显示高电平为按下键的行数 ret ;从子程序返回KeyTable: ;键值表 db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h,
27、 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07hGetKey: ;读取键值 mov dptr,#09002h ;将立即数9002H送入DPTR中,键盘列地址 mov P2, dph ;将DPTR中的高8位送入P2端口 mov r0, #Low(09001h) ;送入立即数,取9001h低字节内容 mov r1, #00100000b mov r2, #6KLoop: ;检测按下键的位置 mov a, r1 ;将R1中的内容送入A中 cpl a ;累加器取反 m
28、ovx dptr, a ;检测哪列,哪列为低电平 cpl a ;累加器取反 rr a ;累加器循环右移 mov r1, a movx a, r0 ;行地址内容返回给a cpl a ;累加器取反,高电平的为选中行 anl a, #0fh ;立即数0fH和A中的内容与 jnz L1 ;累加器非0则转移,有键按下 djnz r2, KLoop ;寄存器R2减1不为0则转移到KLoop程序段 mov r2, #0ffh sjmp Exit ;短跳转到 Exit程序段处L1: ;检测到某列r2 mov r1, a mov a, r2 dec a ;累加器A自减1 rl a rl a mov r2, a
29、; r2 = (r2-1)*4 mov a, r1 mov r1, #4LpC: rrc a ;经过进位位的累加器循环右移 jc Exit ;如果进位位为1则转移到程序Exit inc r2 djnz r1, LpC ;寄存器R1减1,不为0则转移到LpC程序段Exit: ;读取键盘表中值,键值=(列值-1)*4+行值 mov a, r2 mov dptr, #KeyTable movc a, a+dptr mov r2, aWaitRelease: ;等待释放 mov dptr,#09002h mov a,#0 movx dptr, a call Delay call TestKey jnz
30、 WaitRelease ;未释放继续等待 mov a, r2 RetReadAD: ;读A/D值 mov dptr,#0A000h ;将A/D地址A000H送入DPTR中 clr a ;累加器A清0 movx dptr, a ; 启动 A/D In0通道 mov a, #0 ;A清0 djnz acc, $ ;如果A中的内容不为0则在此处一直循环 movx a, dptr ;将DPTR中的内容送入A中,读取A/D的值 retReadTemp: mov r1, #0 ;将立即数0送入寄存器R1中 mov r2, #0 ;将立即数0送入寄存器R2中 mov r0, #16 ;将立即数16送入寄存
31、器r0中RLoop: call ReadAD ;调用ReadAD程序段,读取A/D输出值 add a, r2 mov r2, a ;将累加器A中的内容送入R2中 jnc L01 ;如果进位位为0则转移到L01程序段 inc r1 ;r1寄存器中的内容增1L01: djnz r0, RLoop ;寄存器R0内容减一不为0则转移,累加16次 mov a, r2 ;将寄存器R2中的内容送入累加器A中 swap a ;累加器内高低半字节交换 anl a, #0fh ; 高四位清零,相当于/16 xch a, r1 ;寄存器与累加器内容交换 swap a ;累加器内高低半字节交换 anl a, #0f0
32、h ;立即数0FH与到累加器A,低四位清零 orl a, r1 ; a = r1r2/16 mov b, #(HighTemp-LowTemp);将立即数(HighTemp-LowTemp)送入寄存器B中 mul ab ;a和b相乘,结果低位在A中,高位在B中 mov a, b ;将B中的内容送入A中,相当于右移8位 即/256 add a, #LowTemp;将立即数LowTemp送入到寄存器A中 mov 51h, a; A/D值转换为实际温度送入51h中, retDisplayResult: ;显示结果 mov a,51h ;A/D转换温度值的显示地址 jnb acc.7,G0 ;如果ac
33、c.7位为0,为正数 mov 60h, #40h ;第一个数码管显示“-” dec a cpl a ;累加器取反,求原码运算 ajmp Goon ;跳转指令G0: mov 60h, #0Goon: mov b, #10 div ab ;累加器A中的内容除以寄存器B中的内容 mov dptr, #LEDMAP movc a, a+dptr mov 61h, a ;实际温度十位 mov a, b movc a, a+dptr mov 62h, a ;实际温度个位 mov 63h, #0 mov a,50h ;键盘设定温度地址 mov b, #10 div ab ;累加器A中的内容除以寄存器B中的内
34、容 movc a, a+dptr ;设定温度十位代码字节传送到累加器 mov 64h, a mov a, b movc a, a+dptr ;设定温度个位代码字节传送到累加器 mov 65h, a ret ;子程序返回LEDMAP: db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h;定义字节命令 db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h;定义字节命令DisplayLED: ;LED 显示 mov r0,#60h ;数码管显示内容地址 mov r1, #6 mov r2, #00100000bLoop: mov dptr
35、,#09002h ;数码管位选地址 mov a, #0 ;A清0 movx dptr, a ;外部寄存器置0,松片选信号 mov a, r0 ;将以R0中为地址60h的数据传给A mov dptr,#09004h ;段选地址 movx dptr, a ;60h输出至段码地址以显示 mov dptr,#09002h mov a, r2 movx dptr, a ;第i管显示6ih的内容 call Delay ;调用Delay函数 mov a, r2 rr a ;累加器循环右移 数码管右移显示 mov r2, a inc r0 djnz r1, Loop ; R1减1不为0则转移,循环6次 mov
36、 dptr,#09002h mov a, #0 movx dptr, a ;释放位选 retStart: mov sp, #70h;将立即数70H送入堆栈指针 mov a,#082h;将立即数82H送入累加器A中 mov dptr,#08003h;将立即数8003H送入数据指针DPTR中 movx dptr, a;将累加器A中的内容送入数据指针DPTR中 mov 50h, #20;将立即数20H送入地址50H的存储器中MLoop: call TestKey;调用TestKey程序检测是否有键按下 jnz KeyPressed;累加器非0转移,有键按下调整设定温度 call ReadTemp;调用读取采样值程序段 call DisplayResult;调用显示结果程序 call DisplayLED;调用LED显示程序 mov a,51h;将立即数51H送人累加器A中 jb acc.7, LE0;如果直接寻址为为1则转移,负数 clr c ;进位C清