




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本设计为一闭环控制系统,由89c51单片机,a/d转换电路,温度检测电路,湿度检测电路、控制系统组成。温度检测电路将检测到的温度转换成电压,该模拟电压经adc0809转换后,进入89c51单片机,单片机通过比较输入温度与设定温度来控制风扇或电炉驱动电路,当棚内温度在设定范围内时,单片机不对风扇或电炉发出动作。实现了对大棚里植物生长温度及土壤和空气湿度的检测,监控,并能对超过正常温度、湿度范围的状况进行实时处理,使大棚环境得到了良好的控制。该设计还具有对温度的实时显示功能,对棚内环境温度的预设功能。第一章 概述大棚、中棚及日光温室为我国主要的设施结构类型。其主要功能是采用电路来自动控制室内的温度,以利于植物的生长。温室的性能指标:1温室的透光性能 温室是采光建筑,因而透光率是评价温室透光性能的一项最基本指标。透光率是指透进温室内的光照量与室外光照量的百分比。温室透光率受温室透光覆盖材料透光性能和温室骨架阴影率的影响,而且随着不同季节太阳辐射角度的不同,温室的透光率也在随时变化。温室透光率的高低就成为作物生长和选择种植作物品种的直接影响因素。一般,连栋塑料温室在50%60%,玻璃温室的透光率在60%70%,日光温室可达到70%以上。2温室的保温性能 加温耗能是温室冬季运行的主要障碍。提高温室的保温性能,降低能耗,是提高温室生产效益的最直接手段。温室的保温比是衡量温室保温性能的一项基本指标。温室保温比是指热阻较小的温室透光材料覆盖面积与热阻较大的温室围护结构覆盖面积同地面积之和的比。保温比越大,说明温室的保温性能越好。3温室的耐久性 温室建设必须要考虑其耐久性。温室耐久性受温室材料耐老化性能、温室主体结构的承载能力等因素的影响。透光材料的耐久性除了自身的强度外,还表现在材料透光率随着时间的延长而不断衰减,而透光率的衰减程度是影响透光材料使用寿命的决定性因素。一般钢结构温室使用寿命在15年以上。要求设计风、雪荷载用25年一遇最大荷载;竹木结构简易温室使用寿命510年,设计风、雪荷载用15年一遇最大荷载。 由于温室运行长期处于高温、高湿环境下,构件的表面防腐就成为影响温室使用寿命的重要因素之一。钢结构温室,受力主体结构一般采用薄壁型钢,自身抗腐蚀能力较差,在温室中采用必须用热浸镀锌表面防腐处理,镀层厚度达到150200微米以上,可保证15年的使用寿命。对于木结构或钢筋焊接桁架结构温室,必须保证每年作一次表面防腐处理。第二章 比例微积分控制原理31 比例积分调节器(pd)比例调节器具有误差,为解决此问题,可引入积分(inte6rai)环节,其方块图见图433l 比例微分调节器对误差的任何变化,都产生一个控制作用比,阻止误差的变化。c变化越快,pd越大,输出校正量也越大。它有助于减少超调,克服振荡,使系统趋于稳定;同时加快系统的响应速度,减小调整时间,从而改善了系统的动态特性。它的缺点是抗干扰能力变差。32 pid调节器 积分器能消除镕差,提高精度,但使系统的响应速度变慢、稳定性变环。微分器能增加稳定性,加快响应速度。比例器为基本环节。三者合用,选择适当的参数,可实现稳定的控制。图437为pid调节器的方块图。第三章 自动控制系统的设计 自动控制系统的各个环节的特性一般是给定的,如机械、气动、电动、液压等设备。在设计自动控制系统时,采用加入“个专门用来校正(补偿)系统特性的环节(校正环节),来改变系统特性,使其符合给定的特性要求。实现该环节的装置,称为校正装置或调节器。设计自动控制系统主要招校正装置的设计。由于开习;系统一船达不到控制的要求,因而自动控制系统均采用闭环(反馈)控制方法。在采用串联校正时。自动控制系统的设计步骤 给出系统所要求的特性(期望特性)。 由控制目的、静态特性等要求来选择系统各元件(如电护、电动机等)。 对该系统进行系统特性分析,并与系统的期望特性进行比较,由比较的结果来求取校正装置的特性。 检验由此设计出的系统所具有的特性,若不满足,则更新修改校正装置的特队直至校合要求为d:具体的设计方法有时域法、频率法和根轨迹法。 时域法即按前面介绍的方法对系统进行分析,选择适当的校正装2,定性、稳态误差、超调量、过渡时间等的要求。频率法即分析系统的频率特性,选择适当的校正装置以改变其对数频率特性的形状,以满足对系统稳态误差、相位裕量和截止频率的要求。所谓频率特性,是在正弦量输入下,系统的输出稳态分量与输入稳态分量的复数比,邱o(j。)表示。只要将传递函数中的用加替代,就可得到系统的频率特性。由于酸(jq)是以复致形式表示,故其幅值可表示为称为幅位频率特性。其相角可表示为按系统的频率特性,可分析系统的稳定性、过渡特性和稳态误差。根轨迹法即分析闭环传递函数的根的轨迹,然后选择适应的校正装置,以满足对系统稳定竹、稳态误差和动态响应等的要求。由于难以求解高阶特征方程,故在分析特征方程的根与方程中参数的关系时,采用很的轨迹的方法。即按特征方程式的根(它们为复致)所必须满足的增益条件和相位条件并列用根轨迹的特性来作出根的轨迹。第四章 可控硅及其工作原理 可控硅为大功率直流元件(scr),硫氏 41可控硅结构 可控硅由p1h1pan2四层半导体材料制成,可用p1n1p2和nlp2n2两个三极管等效。阳极a、控制极o、阴极k达三个电极,其结构如图329所示。除了一班的单向可控桂外,现在还有双向可控桂(yriac),它等价于两个单向可控桂并联,可双向导通。 42可控硅特性 当照极电位高于阴极电乎,控制极电流18增大到一定值(触发电流)时,可控硅由截止转为导通,一旦导通以后,ig即使为o,可控桂仍保持导通,直至阳极电位小于等于阴极电位为止,即阳极电流小于维持电流时可控桂才由导通变为截止。 43单相可控硅整流电路 图330是一个最简单的单相半波可控整流电趴在uaxo且ig大于触发电流时scr导通,负载(电热丝)上才有电流流过,输出波形为部分半波交流电 第五章 温度传感器 温度传溉器将温度信号变换成电阻或电压信哥,它有多种类型,各种温度传感器变换特性和适用范用也不相同。51铂电阻 铂是一种贵金属,铂在氧化性介质中的物理化学性能稳定,尤其是耐氧化的能力6,此外它容易提纯、工艺简单,可以制成极细的铂丝或极薄的铂箔,有较高的电阻牢,是一种理想的热电阻材料,铂电阻具有精度高、稳定性好、性能可靠等优点。铂电阻的温度测量范围在200一十850左右,在小于?oo时,非线性误差小于o喇,它的电阻值月和温度f之间的关系可以近似地表示为: 只a6十b a,b为常数。a为热敏系数(ar)。 铂电阻的阻值比较小,常用的有pllo和ptloo,它们在o的阻值分别为109和looq,温医阻值换算关系如表32所示。铂电阻是一种高性能的金属热电阻,相应地价格较责,在被测温度较高精度也要求高的微机温度控制系统中,广泛地用铂电阻作热电阻传感器。然而在精度要求不高测量温度较低的场合可以用另一种金属热电阻一一铜电阻作热传感器。饲电阻可用来测量一50宅一十1io的温度,在该范围内铜电阻和温度基本呈线性关系:只。及。(1十。f),温度系数。!42ixlo”e”428x10”。铜电阻的缺点是电阻率小,一定阳值的钢电阻体积比铂电极大,温度超过loo时容易氧化。52热敏电阻 热敬电阻是一种半导体热电阻,按半导体电阻随温度变化的典型特性,热敏电阻有三种灸型;负温度系数热敏电阻(ntc)、正温度系数热敏电阻(ptc)和临界温度电阻器(ctr),53 热电偶 两种不同的导体(或半导体)a、b组成闭合回路(见图314)时,当a、b相接的两个接点温度不同时,则在回路中产生一个热电动势,这种现象称作热电效应。达两种不同导体(或半导体)的组合称为热电娟。每根单独的导体(或半导体)称为热电权。两个接点中一端称为工作端(亦称测量端或热端),如t端,另一瑞称为自由淌(亦称冷端)如to缩。54 半导体pn结温度传感器这种传感器是利用半导体二极管的pn结正向压降随温度升高而下降的特性制成的,传输特性为非线性,灵敏度约为一9ny,测量温度范围为“40“们50,它的价格低,但需使用恒压源馈电。第六章 数摸转换原理 61分辨率与量化误差 ad转换器的分辨率是指转换器所能感受到的模拟输入的最小变化值。通常定义为满刻度电压值与2之比值。也可以用1l5d对应满量程的百分数来表示,或者用ppm来表示,1lo。ppm。例如adc0809的位数为8位,则该转换器的输出数据可以用2个二进制数进行量化。如用百分数来表示,其分辨率为:12“loo12looo39 又如5g14433双积分ad转换器,输出是为3位半bcd码的转换器1999,用百分数表示其分辨率为:11999l oo005 实际上,无论是ad转换器还是da转换器,当其位数确定以后,分辨率就已确定,分辨率只是一个设计参数,它不能提供有关精度和线性度的任何信息。依分辨率的高低,ad转换器可分为三种类型:低分辨串为38位、中分辨率为912位、高分辨率为13位以上。一般分辨率越高,其价格也就越高。员化误差是由于ad转换器的分辨率有限所引起的误差,其大小通常规定为土12lsb。因此,系统设计者必须选择具有足够分辨串的转换器,才能将这种“数字化的噪声”降低到可接受的值 62 梢度ad的转换精度是反映实际ad转换器在量化值上与一个理想ad转换器的差值,可表示成绝对误差和相对误差。绝对误差的大小由实际模拟量输入值与理论值之差来度量。实际上对应于同一个数宁量输出,其模拟量输入并不是一个固定的值,而是有个范围。绝对误差包括增益误差、零点误差和非线性误差等。相对误差是指绝对误差与满到度值之比,一般用百分数()来表示。对ad转换器也常用ppm(百万分之一)或最小有效位的当量lsb来表尔:1isb12“满刻度值。 63 转投时间和转换速率 ad转换器完成一次转换所需的时间叫转换时间。而转换速率是转换时间的倒数。ad转换器按转换速度可分为三类。 (1)低速:以双积分转换方式多见,其转换时间较长,一般要大于40一50ms。但由于双积分式ad转换器外接器件少,使用十分方便,而且具有极高的性能价格比,因此在一些非快速的ad转换通道中仍j泛使用,如用于智能仪器仪表等。(2)中速:转换方式多为逐次退近式等。逐次逼近式ad转换器是目前种类最多、数星最大、应用最广的ad转换器件。逐次逼近式ad转换器又有单片集成与混合集成两种集成电路形式,后者的丰要性能指标均高于前者。这类器件的转换时间在1200冲之间,常用的多在几微秒到几十微秒之间,如adc0808d809为100psad e 74a为25fs等。它们常用于一般自动控制。(3)高速:转换方式为并行或串并行。转换时间员短的为全并行式ad转换器如用双极型或cm(s工艺制作的高速全并行式ad转换器的转换时间为20一50ns。并行式ad转换技术在实践l不易实现,所以长期以来并未获得实际使用。随着集成电路技术的发展,一些厂家已开始生产出单片集成化的低分辨车并行式ad转换器。由于其组成复杂,价格昂贵,因此目前又出现了种串、并行ad转换方案进行折衷,以简化电路,但速度有所下降。在选择ad转换芯片时,除,l述几点应认真考虑外的要求、ad的转换路数及电源的种类和功耗等。64接口时注意的问题 一般而言,任何型号的ad芯片都可以与微机(或单片机)连接使用,但对设计者来说、应该掌握所选ad电路的特点及性能技术指标,对不同的ad转换器采用不同的接口电路。在设计单片微机与ad转换器的接口对,要注意掌握下述几点方法。(1)模拟端输入信号的连接 ad转换器的模拟量信号大都为标难信号o一5v或o一1dv,但有些ad转换器的输入极性除单极性外,也可以是双极性,用户可通过改变外接线路来改变量程,使用时注意查阅有关ad转换器的使用手册。另外,在模拟输入通道中除了单通道输入外,还有多通道输入方式。在微机系统中,多通道插入可采用两种方法是采用单路模拟输入的ad芯片,在模拟量输入端加接多路开关;另一种是采用带有多路开关的ad转换器。(2)输出数字量引脚的连接 ad转换器数字量输出引脚与单片微机的连接方法与其内部结构有关。对于那些没有的出锁存器的ad转换器来说,一般要通过锁存器或io接口与单片机相连,常用的接口及锁存器有8155、8255b 8243、74l5273、74ls373等。当ad转换器内部含出锁存器时,可直接与单片机相连。有时为了增加控制功能,也采用io接口连接。另外,根据位数的不同,ad转换器与单片机数据总线的连接方法也不同。对于8位的ad转换器,其数字始出可与8仗单片机数据总线直接相连,或者从某个io口(如pi n)输入。但对于那些高于8位的ad转换器,如10位、12位或16位等,其连接就不那么简单了,应该分步读出。在读取数字量时,通常用单片机的控制信号而和地址译码信号来控制由不同的地址信号来分步读取全部数据。 (3)ad转换器的启动方式 无论选择什么样的ad转换芯片,当其与微机连接好了之后,都必须由微机在片选信号选中的基础上,发出启动该芯片所需的信号。芯片不同,启动的方式也不同。有的需要电平触发,有的需要脉冲触发。 所谓电平触发就是在ad转换器的启动引脚上加上一个要求的电平。当电平加上以后,ad转换立刻开始,而且在转换过程中必须保持这一电平,否则将停止转换。在这种启动方式下,cpu控制必须通过寄存器保持一段时间,一般采用d触发器、锁存器或并行io接口等来实现。如ad570、ad571、ad572都属电平控制转换电路。脉冲启动转换芯片,只要在启动转换输入引脚加一个启动脉冲即可。如adc0809ad574等都属于这一类芯片,一般用w/r及地址译码器的输出了i经过一定的逻辑电路进行控制。 (4)判断ad转换结束及读取数据 cpr发出启动信号后,ad转换器开始转换,当转换结束时,ad转换器芯片内含朗转换结束触发器置位,输出一个转换结束标志信号,通知单片机,ad转换已完成,可以进行读数操作,单片微机判断ad转换结束否通常有下列四种方法: 1程序查询方式将ad转换器的转换结束信号经子龙门送到cpu的数据总线或io接口的某一位上,当单片机发出启动转换信号后,即开始查询ad转换是否结束,没有结束则继续查询,直到有结束信号时,方可读取转换结果。采用这种方法的程序设计比较简单,且实时性也比较强、是单片机系统中应用较多的一种方法。2ddf方式 将ad转换器的转换结束信号接至单片机的中断请求信号端,单片机发出启动转换信号后,继续执行主程序,当ad转换结束时,向单片机提出中断申请单片机响应中断后,在中断服务子程序中读取转换结果。这种方法能使ad转换器与单片机并行工作,因而大大节省了cpu的时间,常用于实时性要求比较强或多参数的数据采集系统中。 3软件延时方式 单片机向ad发出启动转换信号后,即调用软件延时程序,延时时间的长短取决于ad转换器完成转换所需要的时间,延时结束后方可读取转换结果。为了确保转换完成,一般将延时时间延长于ad转换时间。这种方法可靠性比较高不用增加硬件连线,但要占用cpu的大量时间,多用在cpu处理任务比较少的系统小。 4等待方式 在ad转换期间,设法产生一个等待信号,暂停cpu工作,使之处于等待状态。只有当ad转换结束后,才使cpu继续工作,并读取转换结果。这种方法也不利于发挥cpu的效率。 ad转换完成后,如何从ad转换器读取数据,要根据ad转换器的结构特点而定。若转换器的片内具有可控的三态门或接口逻辑时,ad的数据输出可直接挂到单片机的数据总线上,而无须附加逻辑接口电路,并在转换结束时,利用而信号(只要通过一条指令movx a,dpte),打开三态门,待数据读入cpu。对于片内输出寄存器无可控的三态门或接口逻辑的ad转换器,则必须经io通道或输入缓冲电路才能与单片机连接。 (5)参考电源的连接 ad转换器中参考电源的作用是提供其内部da转换器的标准电源,它直接关系到ad转换的精度,因而对该电源的要求比较高,一般要求由稳压电源供电。不同的ad转换器,参考电源的提供方法也不 样。通常8位ad转换器采用外电源供电,如adc0809、ad7574等。但对于精度要求比较高的12位ad转换器,如ad574a、adc80等,一般在ad芯片内部设有精密参考电源,不必另外加电源。 在一些单、双极性均可使用的ad转换器中,参考电平常常有两个引脚:vraf+,和vraf-根据模拟量输入信号的极性不同,这两个参考电源引脚的接法也不同。若模拟量信号为单极性时,vnspt,端接模拟地,vnzpt、端接参考电源正端;当模拟量信号为双极性时,则vnspt,接参考电源的正端,vnzpt,接参考电源负端。 下面以较为常用的adc0809为例介绍其接口方法。 a比d809是8位ad转换芯片,由单一十5v电源供电。片内带有锁存功能的8路模拟多路开关,可以对8路。一5v的模拟输入电压信号分时进行转换,转换时间为100ys左右;片内具有多路开关的地址译码和锁存电路、高阻抗斩波稳定比较器、256r电阻t型网络和网状电子开关以及逐次退近寄存器,采用逐次逼近技术实现ad转换;其内部无时钟电路,时钟fcm须由外部提供,典型时钟频率为640kh,;输出具有ttl三态锁存缓冲器,可直接与单片机数据总线相连。此外,通过适当的外接电路,adc0809可以对0-5v的双极性模拟信号进行转换。 由此可见,当这些信号有效时,p27应置为低电乎。 adc0809的时钟信号一般由8031的ale端取得,如果ale信号频率过高,应分频后再送人转换器。例如当803l的品振频率选择6mhz时,al正端的频率约为lmhz,故需采用二分频后才能与0809的c工k端连接,分频器一般用74ls74d触发器实现,因107中选用了分频电路。图108为adc08080809的时序图。从时序图可以看出,在启动adc08080809后,eoc约在10us后才变为低电乎,编程时要注意这一点。第七章 具体方案设计71实施方案及分析实现以上功能有三种方案,每一种方案分析如下:1方案一: 工作原理:当温度低于设定的温度时,ad590温度传感器输出电流经电流电压变换及放大电路触发可控硅导通,使电炉家温装置工作,当温度回到正常温度范围内时,ad590输出的电流转换成电压不足以使可控硅电路1导通,电炉加温装置停止加温。湿度检测电路工作原理类似。2方案二: 工作原理:kc-100的第一脚为信号输入端,外接温度湿度传感器.当大棚内温度上升到设定温度时,kc-100自动识别使第三脚自动输出高电位,使vt9013导通,驱动电路驱动降温装置风扇开启,达到降温效果。温敏电阻时刻检测棚内温度,当温度恢复到设定温度时,kc-100输出低电位,vt9013截止,通风装置关闭。湿敏电路工作原理类似。3方案三: 工作原理:温度检测电路将检测到的温度转换成电压,该模拟电压经adc0809转换后,由int0中断口进入89c51单片机,单片机通过比较输入温度与设定温度来控制风扇或电炉驱动电路,并将室温送显。当棚内温度在设定范围内时,单片机仅实时显示温度。湿度控制类似。方案比较与方案选择: 方案一与方案二完全由全硬件实现,能实现对某一恒定温度点温度上下变动的自动控制,但可调温度范围窄。方案三为软硬件综合电路,单片机能实时监控温度、湿度,并能对相应的变化作出适当的控制调整,还能对温度湿度进行显示。 所以我们选择方案三。72单元电路设计1单片机和a/d通道电路:图一 温度传感器检测到的数据经ad0809的27脚送单片机89c51,单片机把采集到的数据与rom中所设的数据相比较,发出控制指令。当检测到的温度在允许温度范围内时,加温装置,降温装置均不动作。当温度上升或降低到允许范围外时,单片机相应控制端口输出高电平,驱动控制装置。单片机rom中设置有报警极限温度,当温度到达极限温度值时,单片机14脚输出使三极管tt1导通,蜂鸣器报警。2温度检测电路:图二 由pn节构成的温度传感器,随温度的变化阻值发生改变。把它接入桥电路,通过桥电路输出压差经741的放大输入ad0809。风扇、电炉控制电路:图三上图是电炉加温原理图。工作原理如下:单片机p1.7口输出,使三极管导通,光耦4n35工作将直流地与市网交流地隔离,可控硅被触发导通电炉回路。加热装置开始工作。风扇降温装置与电炉加温装置原理类似,不同之处在于可控硅被继电器代替。显示电路:由max7219直接驱动led显示。整机电路(见附页)3测试方法为了模拟温室环境,我们采用200w灯泡加热,12v/0.2a轴流风机降温。将温度计,大功率灯泡,风扇和温度传感器置于密闭的纸箱中,当密闭空间的温度低于设定温度时,电灯亮,模拟加热,当加热到上限温度时,电灯灭,停止模拟加热;当密室温度高于设定温度范围,风扇开,开始降温,直到设定温度范围内。如果降温过度,系统会自动启动加温装置。(升温装置一摄氏度需要2s,降温装置降温一摄氏度需20s。)4讨论基本功能基本实现,显示电路装入系统后没能实现对温度的实时显示功能。在前期制作过程中,由于布线没注意高频线与数据线的隔离,造成a/d通道采集的数据受到严重干扰,致使数据不能正确进入单片机rom.此外,软件方面,在寄存器的分配上存在一些混乱.我们将在以后的电路设计中注意这些问题,提高硬件设计的效率。第八章 工作原理与编程;* ;* 温度控制程序 w.asm * ;*;* ;说明:测试程序在e6000版本下通过 * ;*以下为一些伪指令定义*;*; the code meets all ad7416 family timing requirements when executed by an; at89cx051 microcontroller with a 6 mhz clock. code modifications may be; required if a faster clock is substituted.faddr data 24h zdata data 28h address data 29h ;addr_hi data 2ah ;*microcontroller connections to aad7416 or at24c02 serial bus lines.scl equ p3.4 sda equ p3.5 ;*ad7416presodo*wd_h_key equ p1.6wd_l_key equ p1.7h_key equ p3.2jdq equ p1.5h_data data 50h ; h_data 存放温度报警上限l_data data 51h ; l_data 存放温度报警上限w_data data 52hm_data data 53hs_h_data data 59hs_l_data data 5ah;m_h data 6bh;m_l data 6chorg 0000hajmp mainorg 000bhajmp time_t0org 0040htime_t0:push accclr tr0mov th0,#0mov tl0,#0inc 5fhmov a,5fhxrl a,#20jz clear0ret_t0:setb tr0pop accreticlear0:mov 5fh,#0mov a,w_datamov bcd_data,a lcall hex_bcd mov 69h,r5 mov 6ah,r6 mov 6bh,r7mov 6eh,#00hmov 6dh,#00hmov 6ch,#00h ajmp ret_t0org 0100h*主程序开始*main:mov sp,#70hmov tmod,#01hmov th0,#0mov tl0,#0clr et0clr tr0mov 6eh,#00hmov 6dh,#00hmov 6ch,#00hmov 6bh,#00hmov 6ah,#00hmov 69h,#00hmov 5fh,#00h ;5fh存放100ms 单元mov h_data,#0mov l_data,#0mov s_h_data,#0mov s_l_data,#0mov w_data,#0mov dptr,#0fb00hmov a,#03hmovx dptr,a;*read at24c02 from address 00h,01h faddr set 90h mov faddr,#0a0h mov address,#00hmov addr_hi,#00h mov a,#00h lcall rd_rand mov s_h_data,a mov address,#01h mov addr_hi,#00h mov a,#00h lcall rd_rand mov s_l_data,a faddr set 91h setb easetb et0setb tr0 start_1: lcall ad7416 mov h_data, r7 mov l_data, r6 mov r0,l_data mov r1,h_data lcall div25 mov w_data,r4 mov a,w_data mov bcd_data,a lcall hex_bcd mov 69h,r5 mov 6ah,r6mov 6bh,r7 mov a,s_data lcall hex_bcd mov 69h,a mov 6ah,b mov a,m_data lcall hex_bcd mov 6bh,a mov 6ch,b mov a,h_data lcall hex_bcd mov 6dh,a mov 6eh,blcall dislcall key mov faddr,#0a0hmov address,#00h mov addr_hi,#00hmov a,#00h mov zdata,s_h_datalcall wr_bytemov address,#01hmov a,#00h mov zdata,s_l_data lcall wr_byte lcall control ajmp start_1;*显示子程序*dis: push accmov dptr,#0fb00hmov a,#03hmovx dptr,ayled:mov r0,#6ehmov r3,#01hmov a,r3yb: mov dptr,#0fb01hmovx dptr,ainc dptrmov a,r0add a,#11hmovc a,a+pcmovx dptr,alcall delldec r0mov a,r3jb acc.5,eendrl amov r3,asjmp ybnopnopeend:ajmp s_endbd: db 3fh,06h,5bh,4fh,66h,6dhbd1: db 7dh,07h,7fh,6fh,77h,7chbd2: db 39h,5eh,79h,71h,73h,3ehbd3: db 31h,6eh,1ch,23h,40h,03hs_end:pop accret;*end display*;*delay program*dell:mov r7,#04hdel:mov r6,#0e7hnn:djnz r6,nndjnz r7,delret;* ;*key(按键) program *key:clr tr0 jb wd_h_key,l_set lcall dell jb wd_h_key,l_set inc s_h_data mov a,s_h_data cjne a,#7fh,s_dis mov s_h_data,#00hs_dis: mov a,s_h_data lcall hex_bcd mov 69h,r5 mov 6ah,r6 mov 6bh,r7 mov a,s_h_data lcall hex_bcd mov 69h,a mov 6ah,bmov faddr,#0a0h mov address,#00h mov addr_hi,#00h mov a,#00h mov zdata,s_h_data lcall wr_bytes_rep:lcall dis jnb wd_h_key,s_repl_set:jb wd_l_key,set_end lcall dell jb wd_l_key,set_end inc s_l_data mov a,s_l_data cjne a,#7fh,m_dis mov s_l_data,#00hm_dis:mov a,s_l_data lcall hex_bcd mov 6ch,r5 mov 6dh,r6 mov 6eh,r7 mov faddr,#0a0h mov address,#01h mov addr_hi,#00h mov a,#00h mov zdata,s_l_data lcall wr_byte mov 6bh,a mov 6ch,bm_rep:lcall dis jnb wd_l_key,m_reph_set:jb h_key,set_end lcall dell jb h_key,set_end inc h_data mov a,h_data cjne a,#60,h_dis mov h_data,#00hh_dis:mov a,h_data lcall hex_bcd mov 6dh,a mov 6eh,bh_rep:lcall dis jnb h_key,h_repset_end:setb tr0ret;*key(按键) program 结束*;*control jdq*control:mov a,w_data cjne a,s_h_data,compare1open1:clr jdq ajmp con_endcompare1:jnc open1 mov a,w_data cjne a,s_l_data,compare2open2:clr jdq ajmp con_endcompare2:jc open2 setb jdqcon_end:retret;*control jdq end* *hex_bcd 转换子程序*in acc, out :r5 r6 r7hex_bcd:mov b,#10 div ab mov r5,b mov a,b mov b,#10 div ab mov r6,b mov r7,a ret ;*ad7416 samping*ad7416: mov faddr,#090h mov address,#00h ii: mov a,#01h lcall rd_rand clr c rlc a mov 20h.1,crlc a mov 20h.0,c mov 4dh,a mov 20h.1,c clc c rlc a mov 20h.0,c anl a,#11111100b mov l_data,a mov 20h.0,c mov c,f0 mov acc.1,c mov a,20h anl a,#00000011b mov h_data,a retmov addr_lo,#0 mov address,#00h; ad7416温度寄存器地址为1 mov a,#00h lcall rd_rand mov a,r6 anl a,#00111111b rl a rl a mov b,a mov a,r7 rl a rl a mov r7,a mov a,b orl a,r7 mov r6,a mov a,b anl a,#00000011b mov r7,a ;r7放置ad7416温度值高2位,r6放置低8位 clr cretwr_byte:nop;at24cxx byte write function.;called with programmable address in a, byte address in; register pair addr_hi:addr_lo, data in register xdata.; does not wait for write cycle to complete.; returns cy set to indicate that the bus is not available; or that the addressed device failed to acknowledge.; destroys a. lcall startjcx49rla orla, faddrclracc.0 lcall shout jcx48 mov a, addr_hi lcall shout jc x48 mova, address lcall shout jcx48mov a, zdata lcall shout jcx48clrcx48: lcall stoutx49: retrd_curr:nop; at24cxx current address read function.; called with programmable address in a. returns data in a.; returns cy set to indicate that the bus is not available; or that the addressed device failed to acknowledge.lcall startjcx45rlaorl a, faddrsetbacc.0lcall shout jcx44lcall shin lcall nak clr cx44:lcall stopx45:retrd_rand:nop; at24cxx random read function.;called with programmable address in a, byte address in; register pair addr_hi:addr_lo. returns data in a.; returns cy set to indicate that the bus is not available; or that the addressed device failed to acknowledge.pushbmovb, a lcall startjcx47rlaorl a, faddrclracc.0lcall shout jcx46mova, addresslcall shout jc x46 mova, blcall rd_currljmp x47 x46: lcall stopx47: pop bretstart:nop; se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海岛生态旅游创新创业项目商业计划书
- 职场新人快速融入培训课件
- 软件开发项目管理计划及进度控制表
- 工程项目验收配合工作标准化方案
- 教师招聘面试评分标准汇编
- 初中学困生帮扶方案设计及实施细则
- 2025年音乐欣赏课程考试试卷及答案
- 会所场地租用收费标准及管理方案
- 市政管网工程施工组织方案
- 2025年护士资格证考试试题及答案
- 2022年资阳市雁江区社区工作者招聘考试笔试试题及答案解析
- 2.2 第2课时 基本不等式的综合应用(课件)高一数学(人教A版2019必修第一册)
- 帮助卧床老年人使用便器排便课件
- 勿忘国耻教学课件
- 【高考英语精品专题】必修1 Unit 1 Life Choices-高考英语-一轮总复习备考方略课件PPT(新教材北师大版)
- 中国传媒大学-新媒体概论(刘行芳)-课件
- 医学放射卫生相关法律法规ppt培训课件
- 《中国音乐发展简史》PPT课件
- SLZ 549-2012 用水审计技术导则(试行)
- 颈内动脉动脉瘤临床路径(2010年版)
- 车用驱动电机原理与控制基础PPT课件(200页)
评论
0/150
提交评论