《基于单片机的水箱水位控制系统.doc》由会员分享,可在线阅读,更多相关《基于单片机的水箱水位控制系统.doc(47页珍藏版)》请在三一办公上搜索。
1、题 目:基于单片机的水箱水位自动控制系统英文题目:The water tank level automatic control system based on microcontroller 二零一二年 月 日摘 要 大型水箱是很多公司生产过程中必不可少的部件,它的性能和工作质量的优良不仅仅对生产有着巨大的影响,而且也关系着生产的安全。在过去,大量的对水箱操作是由相应的人员进行操作的,这样的人工方式带来了很大的弊端,比如水位的控制,时刻监控水箱的环境,夜间的监控等等,操作员稍有疏忽,或者简易的监则器件损坏,将带来无法弥补的损失,更严重的会危机到生产人员的人身安全等。所以,对水箱控制,如果能够使
2、用精密的而且完全会严格按照生产规定运行的自动化系统,可以最大限度的避免事故的几率,同时也能节省资源并能有效提高生产的效率。本单片机系统设计的目的是应用单片机控制技术,以单片机为核心控制水箱的水位,并实现了报警和水位显示、自动控制等功能。该系统操作方便、性能良好,比较符合生产生活用水系统控制的需要。关键词:单片机 ;水箱水位;自动控制; 水位显示;报警 ABSTRACTLarge water tanks are a lot of companies essential to the production process of parts, its performance and the qual
3、ity of work not only on production of the fine has enormous influence, but also the safety of production. In the past, many of the tanks are operated by the staff to operate, so that artificial means a lot of drawbacks, such as the water level control, water tanks at all times to monitor the environ
4、ment, and so on the night of monitoring, the operator slightly negligence, or damage to the Summary of the monitoring device will bring irreparable damage will be even more serious crisis in production, such as the personal safety of staff. Therefore, control of water tanks, if the use of sophistica
5、ted and can totally be run in strict accordance with the provisions of the automated production system that can maximize the chances of avoiding accidents, but also save resources and can effectively improve the efficiency of production. The purpose of single-chip system design is the application of
6、 single-chip control technology, to 8051 as the core to control the water level in water tanks, and of the alarm and manual, automatic switching function. The system is easy to operate, good performance, more in line with the power to control the production of the necessary water system.KEY WORDS: S
7、ingle chip microcomputer ;Voluntarily control the Lever level ; Relay;Auto-protecting;Alarm 目 录摘 要IABSTRACT。第一章 绪 论1第二章 系统设计32.1系统设计任务和主要内容32.2系统方案32.2.1总体思路32.1.2设计方案42.2系统方案选取42.2.1传感器选择方案42.2.2 A/D转换方案42.2.3单片机复位方案52.2.4单片机起振方案52.2.5水位显示驱动方案52.2.6电机驱动方案62.2.7电机选择方案6第三章 硬件设计73.1单元模块设计73.1.1 A/D转换设
8、计73.1.2起振电路设计83.1.3数码显示设计93.1.4电机驱动设计103.1.5电机控制103.1.6报警电路113.2系统整机分析12第四章 软件设计134.1 详细流程图134.1.1主程序134.1.2 中断子程序144.1.3 水位高度子程序154.1.4查表子程序154.1.5状态子程序164.1.6 状态控制子程序18总结36致 谢37参考文献38附录一39附录二41 第一章 绪 论1.1 课题背景水箱水位控制系统是以液位为被控参数的控制系统,它在工业生产的各个领域都有广泛的应用。在工业生产过程中,有很多地方需要对容器内的介质进行液位控制,使之高精度地保持在给定的数值,如在
9、建材行业中,玻璃窑炉液位的稳定对窑炉的使用寿命和产品的质量起着至关重要的作用。液位控制一般指对某一液位进行控制调节,使其达到所要求的控制精度。液体的液位的自动控制,是近年来新开发的一项新技术,它是微型计算机软件、硬件、自动控制等几项技术紧密结合的产物,工程作业采用的是微机控制和原有的仪表控制,微机控制有以下明显优势:1直观而集中的显示各运行参数,能显示液位状态。2在运行中可以随时方便的修改各种各样的运行参数的控制值,并修改系统的控制参数,可以方便的改变液位的上限、下限。3 具有水体控制过程的自动化处理以及监控软件和良好的人机界面,操作人员在监控计算机上能根据控制效果及时修改运行参数,这样能有效
10、地减少工人的疲劳和失误,提高生产过程的实时性、安全性综合以上的种种优点可以预见采用计算机控制系统是行业的大势所趋。单片机是在一块芯片上集成了一片微型计算机所需的CPU、存储器、输入、输出等部件。单片机自问世以来,性能不断提高和完善,体积小、速度快、功耗低的特点使它的应用领域日益广泛。一般,工业控制系统的工作环境差,干扰强。利用单片机控制就能克服这些缺点,因此单片机在控制领域得到广泛的应用,使用单片机控制液体液位是很好的选择。1.2 国内外研究的现状目前我国在单片机测控装置研究、生产、应用中,取得了很大的成绩,总结了很多经验,但是各行业仍处于发展期。经调查,许多科研所在这方面开展的工作更看重的是
11、理论和算法,数年来这方面的研究的论文较多,着重生产实际的很少。在上海,新型的单片机测控装置与系统研究的生产基础较雄厚,在生产过程中需要新型的测控装置与系统,因此在不断的努力研究与开发。上海的工程技术研究人员更着重的是生产实际研究,对理论、算法和成果的论文较少;深圳在研制新型的测控装置与系统领域也比较有成就,尽管与其他国家比较尚有差距。但是,深圳的高校、研究院所的最大的特点就是实际,与实际生产应用项目无关的问题基本不去考虑,主要考虑选取什么材料,测控什么物理量,优点是什,与机器设备的通讯接口等等。一些发达国家在单片机新型系统研究、制造和应用上,已积累了很多经验,奠定了基础,进入了国际市场。我国在
12、新型测控装置与系统研究、制造、应用和经验上,与其他发达国家相比还存在差距,但是我国的研究人员已经克服很多困难,并在不断的摸索中前进,有望在相关领域赶上甚至超过发达国家的技术水平,这是发展趋势。1.3 使用单片机实现水箱水位控制的优点使用单片机实现水箱水位控制具有较高的实用价值和稳定性好等特点。采用MPM416W/426W投入式液位传感器测量水位,可以有效保证水位的自动控制,能更好地对水箱水位进行自动化控制,避免了工作人员在现场进行检测操控,方便了人员对水箱水位系统的控制,控制方便且系统稳定性能好;单片机不仅有体积小,安装方便,功能较齐全等优点,而且有很高的性价比,应用前景广,同时有助于发现可能
13、存在的故障,通过微机实现给水系统的自动控制与调节,维持稳定系统,保证安全经济运行。此次设计就是采用AT89C51单片机为核心芯片的一种水箱水位控制系统,具有较高的实用价值和优越性。本系统与PLC控制系统相比大大降低了使用成本,提高了控制运行速度。根据仿真模拟运行的结果表明,该系统能很好的运行,将液位控制在给定的范围内,对过高和过低进行安全报警,稳定性能好,容易操作和控制,保证了生产的正常进行。 第二章 系统设计2.1系统设计任务和主要内容本系统主要研究基于单片机的水箱水位控制系统。实现水位显示和报警,自动控制等功能。操作方便、性能良好。主要内容如下:1 当水箱水位低于20%时,启动主,备电机给
14、水;当水箱水位高于20%而低于80%时,启动主电机给水,备用电机停止给水;当水箱水位高于80%时,主、备电机同时停止给水。2 当水位低于10%的时候,由传感器经变送器发送信号,系统水位低报警;当水位高于10%而低于80%的时候,系统水位不报警;当水位高于80%的时候,由传感器经变送器发送信号,系统水位高报警。 80% 20% 水箱 10% 阀门 进水 进水 主电机 备电机 图2.1 系统结构设计图 2.2系统方案2.2.1总体思路水位高度的检测:利用水位传感器完成。传感器输出信号处理:传感器输出信号,有直流电压和直流电流之分。设计中需将这一信号进行处理,以便单片机能够接收和处理。单片机控制:单
15、片机将由前级输入的检测信号进行分析和处理,从而产生相应的控制信号。数码显示、电机驱动和报警电路根据单片机产生的控制信号,作出相应的动作。电机控制电路根据电机驱动电路的状态作出相应的动作。2.1.2设计方案水位自动控制电路是通过水位传感器将水位高度转换为010V的直流电压,再经过A/D转换后,将转换所得的8路并行数字量送入单片机进行处理来达到对水位进行自动控制的目的。通过对电压和水位的转换关系,最终利用单片机进行精确的控制,实现对水位高度的显示、主/备电机和报警装置的控制。 水位自动控制器由6个部分组成,即水位传感器、A/D转换、单片机、数码显示、电机控制、报警控制部分,其总框图如图2.2.2所
16、示。2.2系统方案选取2.2.1传感器选择方案 传统的水位检测通过设检测点来完成对水位的检测。通常,由于受检测点物理体积的影响,水位检测点的数目有限,从而影响了后续电路控制的精度。本设计采用新型水位传感器,可以达到对水位高度的精确检测,以利于提高后续电路控制的精度。2.2.2 A/D转换方案通过对传感器的选择,可知由传感器输出的水位高度信号是010V的直流电压。在设计中,可以通过采样、保持电路对这一信号进行处理,将模拟信号转换为多个采样点信号。但这种处理方法由于受电路规模和采样精度的影响,不可能对水位信号做出精确的处理,近而也无法对电机、水位高度显示和报警做出精确的控制。因此,本设计中采用集成
17、芯片ADC0809对010V的直流电压进行处理。可以达到:电路简洁、明了。高转换精度。高控制精确。2.2.3单片机复位方案RST/VPD:复位/备用电源线,可以使单片机处于复位(即初始化)工作状态。通常,单片机的复位有自动上电复位和人工按钮复位两种,图2.2.3给出了它们的电路。考虑到,水塔与居民生活密切相关,当因特殊原因导致单片机掉电,需单片机立即自动复位(如:夜间短时间停电,导致本系统停止工作),故本设计采用上电复位方式。 2.2.4单片机起振方案XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。也可以采用外部时钟源驱动器件。
18、考虑到设计、使用的方便,本设计中采用片内时钟驱动。即XTAL1和XTAL2只需外接晶振(配上相应的电容),便可以给单片机提供相应的时钟频率。2.2.5水位显示驱动方案 本设计中需将水塔水位高度在数码管中进行显示,有两种方案选择:利用MAX7219进行驱动:MAX7219是一种高集成化的串行输入/输出的共阴极LED显示驱动器。每片可驱动8位7段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需3根线。MAX7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了MCU有限的运行时间和程序资源。利用74LS48驱动数码管:与单片机连接较为复杂,需占用单片
19、机8个端口。且在与数码管连接时需附加上拉电阻,用以完成数码管的驱动。考虑到本设计中,需显示的位数较少(两位),若利用MAX7219驱动数码管,将造成资源浪费,且MAX7219芯片价格较高,采用后大大提高成本支出。同时,随着MAX7219的使用(对MAX7219的编程)将提高源程序的复杂度,对编译、调试和单片机运行效率都将造成影响。故设计中采用74LS48驱动数码管显示。 2.2.6电机驱动方案利用单片机驱动交流接触器,进而驱动电动机的运转。其中,在单片机的输出端到交流接触器间需接驱动模块。该驱动模块,可以由分离元件组成放大电路来实现对交流接触器的驱动,也可以单使用一块芯片实现。本设计中,采用一
20、块芯片实现对交流接触器的控制。以达到使电路简洁,调试方便,易于维修的目的。2.2.7电机选择方案电动机有支流、交流之分。异步电动机属于交流电机的一种;另一种交流电机是同步电机。异步电机由于结构简单,维护方便,价格便宜,所以应用最为广泛。本设计中,采用交流电机,为了克服沿程阻力损失和高度差所产生的静压力,供水水泵的扬程应根据实际情况有所变化。 第三章 硬件设计3.1单元模块设计3.1.1 A/D转换设计AT89C51与ADC接口时必须弄清并处理好三个问题:要给START线送一个100ns宽的启动脉冲。获取EOC线上的状态信息,因为它是A/D转换结束的标志。要给“三态输出锁存器”分配一个端口地址,
21、也就是给OE线上送一个地址译码器输出信号。AT89C51和ADC接口通常采用查询和中断两种方式。采用查询法传送数据时AT89C51应对EOC线查询它的状态:若查询到EOC变为高电平,则给OE线送一个高电平,以便从D0D7线上提取A/D转换后的数字量。采用中断方式传送数据时,EOC线作为CPU的中断请求线。CPU响应中断后,应在中断服务程序中使OE线变为高电平,以提取A/D转换后的数字量。ADC0809内部有一个8位“三态输出锁存器”可以锁存A/D转换后的数字量,故它本身即可看作一种输入设备,也可认为是并行I/O接口芯片。因此,ADC0809可以直接和AT89C51接口,当然也可以像8255这样
22、的接口芯片连接。在本设计中采用ADC0809和AT89C51直接连接,如图3.1.1 所示,START和ALE互连可使ADC0809在接收模拟量路数地址时启动工作。START启动信号由AT89C51WR-和译码器输出端F0H经或门M2产生。平时,START因译码器输出端F0H-上的高电平而封锁,当AT89C51执行如下程序后 MOV R0 , #0F8H MOV A , #00H ;选择IN0模拟电压地址送A MOVX R0, A ;START上产生正脉冲START上正脉冲(此时F0H和WR线上皆为低电平)启动ADC0809工作,ALE上正脉冲使ADDA,ADDB和ADDC的地址得到锁存,以选
23、中IN0路模拟电压输入比较器。显然,AT89C51此时是把ADDA,ADDB和ADDC上的地址作为数据来处理的,但如果ADDA,ADDB和ADDC分别和P2.0、P2.1、和P2.2相连,情况就会发生变化。AT89C51只有执行如下指令才会给ADC0809送去模拟量路数地址: MOV DPTR ,#00F8H MOVX DPTR, A此时,AT89C51是把ADDA,ADDB和ADDC作为地址线处理的。从图3.1.1中还可以见到,EOC线经过反相器和AT89C51 INT1线相连,这就是说AT89C51是采用中断方式和ADC0809传送A/D转换后的数字量的。为了给OE线分配一个地址,图中把A
24、T89C51 RD和译码器输出F8H经或门M1和OE相连。平时,因译码器输出F8H为高电平,从而使OE处于低电平封锁状态。在响应中断后,AT89C51执行中断程序中如下两条指令就可以是OE变为高电平(此时FO和RD线上皆为低电平),从而打开三态输出锁存器,让CPU提取A/D转换后的数字量。 MOV R0, #0F8H MOVX A , R0 ;OE边为高电平,数字量送A其中,ADC0809所需时钟可以由AT89C51的ALE信号提供。AT89C51的ALE信号通常是每个机器周期出现两次,故它的频率是单片机时钟频率的1/6。本设计中AT89C51主频是12MHz,则ALE信号频率为2MHz,若A
25、LE上的信号经触发器二分频到ADC0809的CLOCK输入端,则可获得1MHz的A/D转换脉冲。当然,ALE上的脉冲会在MOVX指令的每个机器周期内至少出现一次,但通常情况下影响不大。3.1.2起振电路设计石英晶振起振后,应能在XTAL2线上输出一个3V左右的正弦波,以使AT89C51片内的OSC电路按石英晶振相同频率自激振荡。通常,OSC的输出时钟频率FOSC为0.516MHz,典型值为12MHz或11.0592MHz。电容C1和C2可以帮助起振,典型值为30pf,调节它们可以达到微调FOSC的目的。本设计中,晶振采用12MHz,CI和C2取30pf。其连接电路如图4.1起振电路所示。3.1
26、.3数码显示设计用7448可以直接驱动共阴极的半导体数码管,由图3.3.37448输出端可以看到,当输出管截止、输出为高电平时,流过发光二极管的电流是由Vcc经2k欧上拉电阻提供的。当Vcc=5V时,这个电流只有2mA左右。如果数码管需要的电流大于这个数值时,则应在2k欧的上拉电阻上在并联适当的电阻。用7448驱动半导体数码管的连接方式如图3.3.3数码显示所示。 3.1.4电机驱动设计 电感线圈是一种感性负载,当流过线圈的电流发生变化时线圈会发生很大的反电动势,这个反电动势有可能损坏驱动器中的输出晶体管。因此,为了防止驱动器损坏,线圈两端必须加箝位二极管。图3.3.4为采用SN75467驱动
27、交流继电器的电路图。 当AT89C51在P2.0上输出低电平时,SN75467相应的输出晶体管导通,继电器线圈中有电流流过,继电器吸合;当AT89C51在P2.0上输出高电平时,驱动器相应输出晶体管截止,继电器线圈中无电流流过,继电器不吸合,触电常开。在图3.3.4中,二极管用于箝位线圈两端可能出现的反电动势。3.1.5电机控制三相电动机单向启动控制:图3.3.5.1为三相电动机单向启动控制图。图中左侧是主电路图,右侧是辅助电路图。主电路构成:三相交流电源开关QS-熔断器FU1-交流接触器主触头KM-热继电器发热元件FR-电动机M。控制电路的构成:停止按SB1-启动按钮SB2-接触器线圈KM-
28、热继电器动断触头FR构成回路。从该电路图可以知道。 启动、停止按钮控制电动机启动或停止。 热熔器作为短路保护。热继电器作为过载保护。三相电动机单向控制(工作原理):异步电动机接入电网的瞬间,启动电流大约是额定电流的47倍。过大的启动电流会造成电网电压的变化过大;对于启动时间较长的电机,过大的启动电流对电机会造成损害。所以除了小型异步电动机外,大多数异步电动机采用压降启动方式,以减小启动电流。常见的降压启动方式有Y/降压启动、沿边三角形降压启动、自耦变压器降压启动等。本设计采用自耦变压器降压启动,其工作原理如图3.3.5.2所示:启动 KM主触点闭合 电机M得电运行按下SB2 KM线圈得电 KM
29、常开触点闭合 实现自保 停止 KM主触点复位 电机M断电停止 按下SB1 KM线圈失电 KM常闭触点断开 自保解除3.1.6报警电路 报警电路,如图3.2.7所示。当AT89C51的P2.0管脚有高电平输出时,SPEAKER发出报警声。3.2系统整机分析整机电路图见附录二 。本设计是通过水位传感器(见附录一)对水位高度百分比(0%100%)进行采样、量化后,输出010V的直流电压。再经过信号处理电路将这一直流模拟量转换为8位的并行数字量,并送入单片机进行处理。在单片机中将输入的8位数字量进行量化数为100的量化处理,并根据这一量化将水位高度控制转化为对状态0099的控制,其中状态00对应0%、
30、状态01对应1%、 状态99对应99% 。根据这一对应关系,设置三个水位控制点,分别为:10、20、80 。 当状态在0010时:主、备电机工作,低水位报警电路工作。 :当状态在1020时:主、备电机工作,报警电路停止工作。 :当状态在2080时:主电机工作、备电机停止工作,报警电路停止工作。 :当状态在8099时:主、备电机停止工作,高水位报警电路工作。 :根据状态0099的不同,分别将0099输出到数码显示部分。 根据上述状态,即可分别对数码显示、SPEAKER和电动机(主、备)实现单片机的自动化控制。第四章 软件设计4.1 详细流程图 4.1.1主程序 输入数据首地址30H送R2IN0地
31、址送R2令中断1为边缘触发SETB IT1送端口地址F8H到R0送IN0地址到08FH并启动A/D等待中断主程序开CPU中断SETB EA允许中断SETB EX1图4.1.1主程序 如图4.1.1程序所示:首先对单片机写入外围端口地址(INT0和F8H),并开中断1,且定义中断为边缘触发方式。再将INT0的端口地址写入F8H(ADC0809的端口地址),即可启动ADC0809。随后,单片机进入等待中断状态。4.1.2 中断子程序中断子程序如图4.1.2中断所示:在中断到来后,程序转到中断子程序。在中断子程序中,实现单片机对ADC0809转换所得的8路并行数据的接收。并通过GAODU子程序实现对
32、接收所得的并行数据的量化,其量化数为100。通过量化,将输入数据变为099种状态,为下一步处理作好准备。送IN0地址到08FH并启动A/D中断程序输入地址0F8H送R0输入数值送A将A数据存入输入数据区R1 转到电压与水位高度转换子程序 图4.1.2中断子程序4.1.3 水位高度子程序如图4.1.3GAODU子程序所示。通过乘法指令实现数据的转换:将输入的010转换为099,为查表指令的实现作好准备工作。GAODU输入数据作第一乘数MOV A ,R1倍率送B=10作第二乘数A*B=BA水位高度数A据送以00H为首地址的数据区RET图4.1.3GAODU子程序 4.1.4查表子程序如图4.1.4
33、查表子程序所示,本设计通过查表指令对099种状态进行处理。在处理过程中,关键是rel的初始值必须为0(因AJMP为双字节指令,当rel为0、2、198时,可进行查询),以便能够顺利的对表中数据进行查询,并通过查询结果作出相应的处理。在GAODU子程序中,将输入数据处理为以0开始的100种状态,正是出于这一考虑。0200HA 水位高度A2*AA*B=BA利用PCA+DPTR指令查表转到ROUT00转到ROUT01转到ROUT99图4.1.4查表子程序4.1.5状态子程序 根据查表所得的结果,可以转到不同的子程序中,如图4.1.5表0099所示。通过这些控制子程序(ROUT00ROUT 99),可
34、以对输入数据做出不同处理,LED显示00MOV P1 ,#00H转到状态ZT1ROUT10LED显示10MOV P1 ,#10H转到状态ZT1ROUT00RETRET ROUT11转到ZT2(水位大于1米小于2m)2m)ROUT20转到ZT2(水位大于1米小于2m)RETRETLED显示11MOV P1 ,#11H2m)LED显示20MOV P1 ,#20H2m) ROU80ROUT21 LED显示80MOV P1 ,#80HLED显示21MOV P1 , #21H 转到ZT3(水位大于2米小于8米)转到ZT3(水位大于2米小于8米)RET RETROUT81转到ZT4(水位大于8m小于10m
35、)2m)ROUT99转到ZT4(水位大于8m小于10m)RETRETLED显示81MOV P1 ,#81H2m)LED显示99MOV P1 ,#99H2m)图4.1.5表00994.1.6 状态控制子程序本设计中共用到四种控制状态,其控制方式如图4.1.6状态控制子程序所示。在这四种状态中包括了电机控制、报警控制。其中有两种状态需要报警,分别是水位低于1m和水位高于8m时。当水位低于1m时:SPEAKER发出间断的蜂鸣声(报警控制0)。当水位高于8m时,SPEAKER发出不间断的蜂鸣声(报警控制1)。有电机的状态三种:主、备电机同时工作。:主电机工作、备用电机工作。:主、备电机停止工作。ZT1
36、报警控制0 SETB P2.0 主程序主电机开启备用电机开启 关中断1ZT2停止报警控制 CLR P2.0 主程序主电机开启备用电机开启 关中断1ZT3停止报警控制 CLR P2.0 主程序主电机开启备用电机关闭 关中断1ZT4报警控制1 CLR P2.0 主程序主电机关闭备用电机关闭 关中断1图4.1.6状态控制子程序4.2 源程序ORG 0000H AJMP MAIN ;转到主程序 ORG 0008H AJMP CINT1 ;转到中断子程序 ORG 0040H AJMP GAODU ;转到高度子程序 ORG 0080H AJMP CHAB ;转到查表子程序MAIN: MOV R1 , #3
37、0H ;输入数据地址送R1 MOV R2 , #00H ;IN0地址送R2 SETB EA ;开CPU中断 SETB EX1 ;允许中断1 SETB IT1 ;令中断1为边缘触发 MOV R0 , #0F8H ;送端口地址F8H到R0 MOV A , R2 ;IN0地址送A MOVX R0, A ;送IN0地址并启动A/D ;SJMP $ ;等待中断或其他CINT1: MOV R0 ,#0F8H ;端口地址送R0 MOVX A , R0 ;输入数值送A MOV R1, A ;存入输入数据区 AJMP 0040H ;转到电流与水位高度转换子程序GAODU: MOV A ,R1 ;输入数据送A M
38、OV B ,#26 ;ADC量化水位高度量化比27送B DIV AB ;A/B:A中存整数,B中存余数 PUSH B ;保存B MOV B,#10 ;B 10 MUL AB ;A*B=BA POP B ;恢复B中数据 PUSH A ;保存A MOV A,B ;A B MOV B,#10 ;B 10 MUL AB ;BA A*B MOV B,#26 ;ADC量化水位高度量化比27送B DIV AB ;A/B:A中存整数,B中存余数 MOV B,A ;B A POP A ;恢复A中数据 ADD A,B ;A+B=水位高度 MOV R0,#00H ;水位高度存储地址 MOV R0,A ;存入水位高度
39、数据 AJMP 0080H ;转到查表子程序CHAB: MOV A ,R0 ;水位高度数据送A RL A ;A A*2 ;ADD A ,#10 MOV DPTR , #BRTAB ;绝对转移指令起始地址 JMP A+DPTR ;PCA+DPTRBRTAB :AJMP ROUT00 ;转到ROUT00 AJMP ROUT01 ;转到ROUT01 AJMP ROUT02 AJMP ROUT03 AJMP ROUT04 AJMP ROUT05 AJMP ROUT06 AJMP ROUT07 AJMP ROUT08 AJMP ROUT09 AJMP ROUT10 AJMP ROUT11 AJMP ROUT12 AJMP ROUT13 AJMP ROUT14 AJMP ROUT15 AJMP ROUT16 AJMP ROUT17