关闭

关闭

关闭

封号提示

内容

首页 基于单片机的温湿度控制系统设计.doc

基于单片机的温湿度控制系统设计.doc

基于单片机的温湿度控制系统设计.doc

上传者: 我是刷子 2012-07-26 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《基于单片机的温湿度控制系统设计doc》,可适用于人文社科领域,主题内容包含基于单片机的温湿度控制系统目录摘要、绪论课题背景立题的目的和意义植被栽培技术温室环境的调节本系统主要研究内容、系统总体分析与设计系统功能及系统的组成符等。

基于单片机的温湿度控制系统目录摘要、绪论课题背景立题的目的和意义植被栽培技术温室环境的调节本系统主要研究内容、系统总体分析与设计系统功能及系统的组成和工作原理总体方案实施措施硬件系统设计主机与主要部件的选择:温湿度采样与控制系统温湿度采样系统温湿度控制系统键盘显示系统报警系统硬件电路设计系统硬件配置主要组件简介软件系统设计系统初始化模块键盘显示模块采样转换模块温湿度控制模块报警模块硬件调试方案硬件电路的调试功能模块的调试方案结论致谢参考文献附录:基于单片机的温湿度控制系统设计摘要本文利用单片机设计一个温室的温湿度控制系统对给定的温湿度进行控制并实时显示其中温湿度信号各有四路系统采用一定的算法对信号处理以确定采取某种控制手段在本系统中采用温度优先模式循环处理。关键字:C键盘显示LCD显示ADC、绪论课题背景改革开放以来人们对生活质量要求显著提高对美丽的植被和花卉的需求量也急剧上升这对以种植植被为生计的园林工人是一个机遇同时也对传统的手工植被种植是一个挑战而基于单片机的温湿度控制系统对解决这些问题有着非常重大的意义。前种植植被一般都用温室栽培为了充分的利用好温室栽培这一高效技术就必需有一套科学的先进的管理方法用以对不同种类植被生长的各个时期所需的温度及湿度等进行实时的监控。温湿度控制对于单片机的应用具有一定的实际意义它代表了一类自动控制的方法。而且其应用十分广泛。立题的目的和意义单片机是常用于控制的芯片在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果用其作为温湿度控制系统的实例也很多。使用单片机能够实现温湿度全程的自动控制而且单片机易于学习、掌握性价比高。使用型单片机设计温湿度控制系统可以及时、精确的反映室内的温度以及湿度的变化。完成诸如升温到特定温度、降温到特定温度、在温度上下限范围内保持恒温等多种控制方式在湿度控制方面也是如此。将此系统应用到温室当中无疑为植被的生长提供了更加适宜的环境。植被栽培技术植被“设施栽培”即“保护地栽培”。它是指在某种类型的保护设施内(如阳畦、温室、大棚等)人为地创造适宜植被生长发育的最佳环境条件在不同季节内尤其是不利于植被生长的季节内进行植被栽培的一种措施。设施栽培是人类利用自然、改造自然的一种创造。由于设施内的条件是可以人为控制的使得植被调节的周年生产得以实现。玻璃温室和塑料薄膜温室出现后植被生产出现了划时代的变化。现在人们可以根据自己的意愿随时生产出所需要的各种植被。可以说这是“设施栽培”的功劳。在不利于植被生长的自然环境中温室能够创造适宜植被生长发育的条件。温室环境的调节主要包括日光、温度、湿度三个方面。温度:根据植被生长的适宜温度进行温室温度调节若低于下限温度则采取升温措施通常采取电热增温和火力增温等火力增温比较方便。若高于上限温度则采取降温措施通常通过水管降温和风扇降温风扇降温比较方便。日光:遮荫是调节日照强度最好的办法其具体做法是加盖遮阳网或草席这种方法兼有降低温度的效果。湿度:为满足温室植被对湿度的要求可以在地上、台阶、盆壁洒水还可以在空中悬挂湿布以增加水分的蒸发最好的办法是设置自动喷雾装置自动调节湿度。如果湿度过大容易导致植被病害可以采用通风的办法来降低湿度而且最好在室温与气温相差不大的时候进行。本系统注重温度和湿度的调节光照强度没有考虑其中。本系统主要研究内容本系统所要完成的任务是:人性化的设计。界限温度值及湿度值能够由用户根据不同植被的各种生长需求由键盘输入并通过显示器显示。能够实时、准确的显示采样温度值与湿度值。通过采集温度及湿度值准确的判断标准值与当前值之间的差异及时的启动报警装置(包括警报灯的提示功能以及提示音等)进行报警并采取相应的方案。能够根据植被在不同时间段内对温湿度的不同要求用户可随机更改温度及湿度值以满足用户不同的需求。、系统总体分析与设计系统功能及系统的组成和工作原理总体方案温度监控:对温室温度进行测量并通过升温或降温达到植被的最佳温度。湿度监控:对温室湿度进行测量并通过喷雾或去湿达到植被的最佳湿度。控制处理:当温度、湿度越限时报警并根据报警信号提示采取一定手段控制。显示:LCD就地显示输入值和相应的温湿度数码管摆放在生产现场用于显示当前的温湿度。实施措施实际环境温度与给定界限比较执行加热制冷措施。实际环境湿度与给定界限比较执行加湿去湿措施。越限报警:当温湿度越限时声光报警。键盘显示:负责用户的输入及相关数据的显示其中包括LED和LCD显示。硬件系统设计经过上面的总体方案和实施措施的讨论后可以开始着手硬件系统的设计硬件系统是应用系统的基础、软件系统设计的依据主机与主要部件的选择:根据总体功能和性价比及其运行速度等因素的考虑选用MCS系列的C为主机满足上面的要求而且设计方便不需要再存储扩展。数据存储片内设有B外部有的B而由于存入的数据是随时更新的且不计小数位存入个进制数字其总共需要的容量只有B已经够用。对外部模拟量(温度、湿度)采样选用ADC能够满足要求。温室温湿度控制系统是以C单片机作为中央控制装置模数转换器ADC风扇加热设备加湿设备排潮设备键盘显示芯片等其功能和原理如下:C作为中央控制装置负责中心运算和控制协调系统各个模块的工作。四路采样温度信号采样简单平均处理温度保存为整数。四路采样湿度信号采样简单平均处理温度保存为整数。模数转换器ADC:即由模拟信号转换为数字信号。它共有个模数转换通道。模数的转换共有种方法。一种是利用INT中断当一次转换结束后ADC使INT产生中断通知系统转换完毕另一种使用延时方法开始转换后系统延时微秒等待转换完成。本方案采用延时转换的方法。键盘显示芯片:用识别键盘负责用户的输入及相关的数据的LED显示。例如选择系统的工作模式用户输入温度及湿度的界限数据显示实时的温度及湿度值等等。风扇:负责系统的降温工作。加热设备:负责系统的加热工作。喷雾设备:负责系统的加湿工作。排潮设备:负责系统的去湿工作。双色灯音效模块:负责系统的报警功能。如果当前的温度超过用户设定的界限值时系统将自动报警双色灯在LS的控制下有规律的闪烁同时音效模块发出报警声通知用户采取相应的措施。温湿度采样与控制系统温湿度采样系统为了更精确的反映温室的温度和湿度取温湿度各路信号采样简单平均处理作为温室的温度和湿度。在分辨率达到的前提下温湿度的精度为。温湿度控制系统首先系统启动后提示用户输入温度的上限与下限的温度值。用户输入之后系统自动求出中间值根据实际温度的情况采取相应的方案。如下图所示。下限温度中间温度上限温度图如果该时刻的实际温度值低于用户给定的下限温度值时系统立即启动报警装置且系统处于升温状态直到实际温度达到用户输入的上下限温度的中间值一定区间内时停止升温。反之如果实际温度值高于用户设定的上限值时系统也会立即启动报警装置且系统处于降温状态直到实际温度达到用户输入的上下限温度的中间值一定区间内时停止降温。选择中间值作为控制参数防止升温降温升温的死循环因为温度低于下限时会一直升温可能导致温度高于上限系统又开始降温这样系统便一直重复升温降温升温过程导致设备在某一个温湿度点附近频繁的启停使设备寿命下降而且没有实际意义。选择中间值的一定区间是防止达到中间值时采取了停止升温或者降温措施温度还是会持续上升或下降一会儿这时候温度可能不是正好在中间值处系统便还是采取升温或者降温的措施而此时的温度值可能已经是很适合植被生长的需要的温度值。所以本方案选在中间值的正负一度区间内认为此区间内都是适合的不产生任何控制动作变化这样就能解决设备频繁启停问题。键盘显示系统键盘显示系统采用芯片控制键的键盘和个七段数码管以实现用户的输入与数据输出。个键分别是“”到“F”对应的键值是到不需要键值的转换。七段数码管采用共阴极系统中使用的段码如下表所示。显示段码FHHBHFHHDHDHH显示ABCDEF段码FHFHHCHHEHHH表初始化时设定的相关命令字如下:ZEQUH状态命令口地址DEQUH数据口地址LEDMODEQUH左边输入八位字符显示外部译码键扫描方式,双键互锁LEDFEQEQUH扫描速率LEDCLSEQUDH清除显示RAMLEDWREQUH设定的将要写入的显示RAM地址系统的连接图如下图所示。图AD与C连接图:图报警系统报警系统由声音报警和警报灯报警组成。声音报警通过P口接SD口控制系统的音效模块发声用CPU控制P产生一定频率的方波就可以实现音效模块的发声。音效模块是一个带有扬声器的放大电路。如图所示。图硬件电路设计系统硬件配置采用总线型结构的设计。由P口作数据线P口和P口共同作地址。主要组件简介()C芯片C是Intel公司于年代初推出的位嵌入式微控制器(内部数据总线为位外部数据总线为位)它与MCS系统中的其它芯片相比具有性能高、功能全、售价低廉、使用方便(PINDIP)等优点。C在工业应用方面有许多明显的特点它具有灵活方便的位总线外围支持器扩展功能而在数据处理方面又有位微机的快速功能。由于大的高度集成化已把许多常驻用的输入检测输出控制通道都制作在同一块硅片上大大地灵活了外部连线增强了系统的稳定性并且速度快(时钟MHz)非常适合于工业环境下安装使用。因此本系统CPU选用C芯片。C单片机引脚采用双列直插式封装结构。C系统CPU中的主要组件有:高速寄存器阵列、特殊功能寄存器(SFR)、寄存器控制器和算术逻辑单元(RALU)。它与外部通讯是通过特殊功能寄存器SFR或存储器控制器进行的。系统的CPU的主要特色是体积小重量轻抗干扰能力强售价低使用方便。此外通过SFR还可以直接控制IO、AD、PWM、串行口等部件的有效运行。CPU内部的一个控制单元和两条总线寄存器阵列和EALU连接起来。这两条总线是:位地址总线(ABUS)和位数据总线(DBUS)。数据总线仅在RALU与寄存器阵列或SFR之间传送数据地址总线用作上述数据传送的地址总线或用作与寄存器控制器连接的多路复用地址数据总线。CPU对片内RAM访问是直接访问和通过寄存器R,R间接访问的。C工作时所需的时钟可通过其XTALL输入引脚由外部输入也可采用芯片内部的振荡器。其工作频率为~MHz。在本系统中采用MHz频率。()LS地址锁存器LS是带有三态缓冲输出的D锁存器LSD~D:三态门输入端。Q~Q:三态门输出端。GND:接地端。Vcc:电源端。OE:三态门使能端。G(STB):D锁存器控制端。()可编程键盘显示器接口芯片使Intel公司为位微处理器设计的通用键盘显示器接口芯片其功能主要体现在二个方面:接收来自键盘的输入数据并作预处理数据显示的管理和数据显示器的控制。单片机采用管理键盘和显示器可减少软件程序减轻负担且显示稳定程序简单。的引脚功能(采用线双列直插式封装):DB~DB:双向外部数据总线。用于传送与CPU之间的命令、数据和状态。CS:片选信号线低电平有效。A:区分信息的特征位。当A位置时CPU写入的信息位命令CPU从读出的信息为的状态当A为时IO信息都为数据。RD,WR:读和写选通信号线均为低电平有效。IRQ:中断请求输出线高电平有效。RL~RL:键盘回送线平时为高电平只有当某一键闭合时其中一条线才变低。SL~SL:扫描输出线用于对键盘和显示器进行扫描。OUTB~OUTBOUTA~OUTA:显示段输出线。BD:显示熄灭控制线低电平有效。RESET:复位输入线高电平有效。SHIFT,CNTLSTB:控制输入线由内部拉高电阴拉成高电平也可由外部控制按键拉成低电平。CLK:外部时钟输入线其信号由外部振荡器提供。Vcc,GND:分别为V电源和地。()七段LED显示器LED是单片机应用系统中一种常见的输出设备通常使用的是七段显示。这种显示块有共阴极与共阳极两种。以共阴极为例:显示个位“”a送d,e送b,c,f,g则送gnd送则立刻显示。它由个发光二极管(段和一个小数点)构成可用来显示~A、B、C、D、E、F、G(小数点)。在数码管中若把各二极管的阴极连在一起称为共阴极数码管若把各二极管的阴极连接在一起称为共阴极数码管若把各二极管的阳极连接在一起则称为共阳极数码管。在本系统中采用共阴极数码管。()ADC芯片ADC是脚双列直插式封装。D~D:位数字量输出引脚。IN~IN:路模拟量输入引脚。Vcc:V工作电压。GND:地。()LCD显示引脚功能:D~D双向数据总线。LCD数据读写方式可以分为位和位两种以位数据进行读写操作则D~D都有效若以位方式进行读写操作则只用到D~DRS:寄存器选择控制位。当RS=时并且做写入的动作时可以写入指令寄存器若RS=且做读取操作时可以读取忙标准及地址记数器的内容。若RS=责用于读取数据寄存器。RW:LCD读写控制线。RW=时LCD执行写入操作RW=时LCD执行读取操作。EN:启动控制线。高电平有效。VCC:电源端。VO:亮度调整电压输入控制器。当输入V时字符显示最亮。GND:接地。、软件系统设计系统初始化模块系统初始化模块的主要功能是完成系统的初始化以及设定系统的工作状态初始化部分包括以下方面的内容:系统启动后显示器上显示两行第一行为“WELCOMETOTHESYSTEM”,第二行显示为“STARTWORK”等待用户输入温度及湿度值。按“B”键表示开始输入这时可按温度下限、上限湿度下限、上限的顺序依次输入如果输入的顺序错可按“B”键可重新进行输入直到输入正确输入完毕后按“C”键确定。系统进入正常工作状态。系统整体的工作方式如下框图所示图初始化程序部分的流程图如下图所示。图键盘显示模块本系统中使用芯片完成有关键盘输入和温湿度显示工作。温度湿度是依次输入的并且依次以下限、上限输入并且将温湿度的中间数值存入单片机中在将LED清零后显示(分别在位)并依次显示实时的温度湿度数值(显示在位)实际上在系统初始化的过程中除了初始化键盘和显示器之外其中还包括着调用键盘显示模块键盘显示模块部分的基本流程如下图所示。图其中显示键值的程序流程图如下:图采样转换模块采样转换模块是本系统中的核心模块之一它负责完成温度和湿的测量及模拟量转换为数字量的全过程这也是它为什么重要的原因。系统每次转换前ADC的IN~IN送个任意数表示开始转换结果是一个数字量将其转化为#BCD码。送显示程序显示并将数值返回给主函数。湿度也可以通过此种方法观察变化得出相应的结论。为了更精确的反映系统的温度和湿度本系统对四路采样信号作简单平均处理并将处理后的数值作为温室的温湿度其过程如下图。图实时温湿度显示和温湿度中间数值显示便于我们实时比较和掌握系统工作状况实时的温度湿度不在要求的区间内则进行升温降温处理。图温湿度控制模块温湿度判断控制模块也是系统的核心模块之一所谓判断控制模块就是对用户输入的温度和湿度与当前温室内的实际温湿度进行比较先进行判断然后再进行控制控制模块是决定系统将要进行什么工作的。如温度高于上限时需要降温低于下限时需要升温同时还要启动警报等等。温度判断控制部分的程序整体思路如下如所示:图上面已经讨论了采取中间值作为控制参数采取中间值一定区间作为控制区间的原因那么按照()的思想控制程序流程图如下:图湿度判断控制部分与温度判断控制部分的功能及流程是相同的便不再赘述了。报警模块报警模块具备两项功能即为报警灯和声音报警。报警灯模块是完成LED有规律的闪烁以便从视觉上提醒用户。LED是由LS控制个双色LED灯组成的其闪烁规律为:向LS发送的数据FH,则双色LED灯发绿光。向LS发送的数据FH,则双色LED灯发红光。向LS发送的数据FFH,则双色LED灯熄灭。向LS交替发送FH、FFH或FH、FFH以实现LED灯红灭交替或绿灭交替这时我们就看到了闪烁的效果。在LED灯闪烁的同时声音报警也会同时启动可采用延时的方式来延长声音报警的声音。警报灯由个双色的LED灯组成一共需要根数据线使用LS芯片控制。要实现的功能是使个双色LED灯有规律的闪烁当用户输入温度的上下限值后系统进行实时的采样并判断出当前温度与用户输入温度之间的差异如果当前温度低于用户输入的下限温度值则说明当前温度过低系统自动启动警报灯此时警报灯发出绿光并进行有规律的闪烁同时开始加温直至加到所需温度值时警报灯熄灭。反之如果当前温度高于用户输入的上限温度值则说明当前温度过高系统也会自动启动警报灯但此时警报灯会发出红光并进行有规律的闪烁同时开始降温直至降到所需温度值时警报灯熄灭。图硬件调试方案硬件电路的调试此部分的任务是在系统连接好后,调试各个组件能否正常工作,能否实现软件设计的预期目标。其步骤如下:按照系统设计将系统需要的各个组件连接好。根据实验说明书了解各个组件的工作原理开始着手调试芯片。调试芯片。按照说明书调用.ASM汇编程序运行观察现象。现象正确说明芯片正常可以使用。调试ADC芯片。按照说明书调用CONW.ASM汇编程序运行观察现象。现象正确说明ADC芯片正常可以使用。调试直流电机按照说明书调用直流电机相应的汇编程序运行观察现象。现象正确说明直流电机正常可以使用。功能模块的调试方案把各个功能模块编写成单独的源文件进行调试调试成功以后再将各部分联合在一起。整个系统的编写、调试是从开始的。控制原理虽然简单但需要细节却很多如选择显示寄存器与送段码的顺序的初始化等待时间等。用户温度输入数据时上限、下限分别在七段数码管的、、、位置显示湿度输入数据时上限、下限分别在七段数码管的、、、位置显示。读键存储的过程是循环程序。可循环等待直到用户输入正确并确认为止。采样转换模块是一个比较重要的模块在调试的阶段遇到的问题较多由于它是程序运行的瓶颈如果这一部分通不过的话那么程序就无法执行下去本系统采用的是延时的方法。温湿度判断控制模块也一个非常重要的模块由于温湿度对于植被的生长起着决定性的作用因此如果这两个因素控制不好这个系统就失败了这就需要我认真的考虑这一模块的控制方式调试阶段比较顺利。除了以上所提到的模块之外还有一些模块也很重要也都需要认真的调试如报警模块等。调试了各模块之后接下来的工作就是将各源程序段连接起来进行综合调试了综合调试需要我们特别注意细节部分这样才能尽可能的减少错误的产生。结论虽然这个设计做的比较简单很多东西都考虑的不是很细也有一些特别情况没有做但是用了很多精力用来完成这个论文鉴于个人水平和时间的关系所以并没有把自己当初设想的所有情况都考虑进去这两个月的毕业论文让我学会的很多觉得自己学的太少还有很多需要认真学习学无止境所以要更努力。致谢此次毕业设计是在我的导师陈勉老师的精心指导及全力支持下完成的。本系统的设计成功与陈老师的帮助是密不可分的再加上自身的努力才能圆满地完成预期的目标。陈老师对新知识新事物都有自己独到的理解这深深的影响了我对学习的态度将使我终生难忘。他们一丝不茍的工作态度和认真负责的敬业精神同样给了我巨大的收益和鼓舞。这些都将使我受益匪浅同时也要感谢我的父母不是你们我就不可能在大学校园里也就不可能有这个毕业设计!最后我要以最真挚的感情来感谢指导本次毕业设计中的导师是您们用辛勤的劳动、无私的奉献和渊博的知识换来了我的毕业设计。同时感谢各位同学对我的帮助只有我们不断的努力学习明天才会更加美好因为机会永远属于那些有准备的人。参考文献http:wwwdangdangcomproductshtmlZ周坚单片机轻松入门M北京:北京航空航天出版社孙育才.MCS-系列单片微型计算机及其应用M南京:东南大学出版社P公孙茂马宝匍孙晨.单片机入口接口实例集M北京:北京航空航天出版社P求是科技PIC单片机典型模块设计和实例导航M北京:人民邮电出版社,龙泽明顾立志王桂莲陈光军MCS-单片机原理及工程应用M北京:国防工业出版社胡辉王晓戴永成单片机原理及应用设计M北京:中国水利水电出版社,PP蔡菲娜单片微型计算机原理和应用M。杭州:浙江大学出版社http:wwwlyenycomArticleShowArticleaspArticleID=ZBasedonmonolithicintegratedcircuittemperatureAndhumiditycontrolsystemdesignAbstract:Thisarticleusesmonolithicintegratedcircuitstodesignagreenhousethetemperatureandhumiditycontrolsystem,totemperatureandhumiditycontrolandrealtimedisplaywhichassigns,temperaturehumiditysignalhasfourgroupsrespectively,thesystemusesthecertainalgorithmtothesignalprocessingbytodetermineusessomecontrolmethod,usesthetemperaturefirstpatterninthissystem,circulationprocessingKeywords:TheCkeyboardsLCDADC附录:INEQUFFHINEQUFFHINEQUFFAHINEQUFFBHINEQUFFCHINEQUFFDHINEQUFFEHINEQUFFFHSETWLEQUHSETWHEQUHSETWEQUHCURTMWEQUHSETSLEQUHSETSHEQUHSETSEQUHCURTMSEQUHZEQUH状态命令口地址DEQUH数据口地址LEDMODEQUH左边输入八位字符显示外部译码键扫描方式,双键互锁LEDFEQEQUH扫描速率LEDCLSEQUDH清除显示RAMREADKBEQUH读FIFORAM地址的命令字ORGHLJMPSTARTORGHSTART:MOVSP,#HLCALLINITMOVR,#HMOVR,#HMOVR,#HMOVR,#HMOVR,#HMOVR,#HMOVR,#HMOVR,#HMOVH,#HLCALLDISPLAY液晶显示程序:DISPLAYST:RSEQUPLCDRC引脚定义ENEQUPLCDEN引脚定义WLEDEQUP工作指示灯引脚定义CLRENLCD被禁用LCALLLEDBLLCD闪烁LCALLSETLCDLCD做显示测试MOVA,#’’设置所要显示的字符MOVB,#设置所要显示的位置LCALLLCDP在LCD第一行显示字符MOVA,#’’设置所要显示的字符MOVB,#设置所要显示的位置LCALLLCDP在LCD第二行显示字符JMP$循环SETLCD:LCD初试化并做测试CLRENLCD被禁用LCALLINITLCDLCD初试化LCALLDELAY延时MOVDPTR,#LMESS指针指到消息第一行MOVA,#显示在第一行LCALLLCDPRINT显示执行消息于LCD第一行MOVDPTR,#LMESS指针指到消息第二行MOVA,#显示在第二行LCALLLCDPRINT显示执行消息于LCD第二行RETINITLCD:位IO初试化MOVA,#HLCALLWCOM双列显示字符使用点阵MOVA,#EHLCALLWCOM光标出现不闪烁MOVA,#HLCALLWCOM每次向右移动一位显示屏不动MOVA,#HLCALLWCOM清除LCD显示屏RETCLRLINE:MOVA,H清除LCD的第一行设置第一行字符LCALLWCOMMOVR,#设置记数值CL:MOVA,#’’载入空格到LCDLCALLWDATA输出字符到LCDDJNZR,CL记数结束RETLCDPRINT:CJNEA,#,LINE在LCD第一行或第二行显示字符LINE:设置第一行地址MOVA,#HLCALLWCOMLCALLCLRLINEMOVA,HLCALLWCOMJMPFILLLINE:设置第一行地址MOVA,#CHLCALLWCOMLCALLCLRLINEMOVA,CHLCALLWCOMFILL:CLRAMOVCA,ADPTRCJNEA,#,LRETL:LCALLWDATAINCDOTRJMPFILLRETCLRLINE:MOVR,#清除LCD该行字符C:MOVA,#’’载入空格符到LCDLCALLWDATA输出字符到LCDDJNZR,C记数结束RETDE:短暂延时MOVR,#DJNZR,$RETEN:SETENLCALLDECLRENLCALLDERETINITLCD:MOVP,#HLCD四位接口指令重置LCALLENRS=,RW=,D~D=MOVP,#HLCALLENMOVP,#HLCALLENMOVP,#H启动四位接口指令LCALLENRS=,RW=,D~D=LCALLINITLCDLCD指令设置初试化RETWCOM:MOVP,A先写入高四位命令CLRRSRS=写入命令LCALLEN产生高电平起用脉冲RLCA向左移四位RLCARLCARLCAMOVP,A先写入低四位命令CLRRSRS=写入命令LCALLEN产生高电平起用脉冲RETWDATA:MOVP,A先写入高四位命令SETBRSRS=写入数据LCALLEN产生高电平起用脉冲RLCA向左移四位RLCARLCARLCAMOVP,A写入低四位命令SETBRSRS=写入数据LCALLEN产生高电平起用脉冲RETLEDBL:MOVR,#LCD闪动控制程序LE:CPLWLEDMOVR,#LCALLDELAYDJNZR,LERETLEMSS:DB“WELCOMETOLCDSYSTEM”需要显示的字符消息DB“STARTWORK”LCDP:PUSHACC在LCD第一行特定位置显示字符MOVA,BA=ACC,DATA所要显示的字符ADDA,#H设置第一行地址LACLLWCOMPOPACC由堆栈取出A寄存器值LCALLWDATA写入所要显示的字符RETLCDP:PUSHACC在LCD第一行特定位置显示字符MOVA,BA=ACC,DATA所要显示的字符ADDA,#CH设置第一行地址LACLLWCOMPOPACCLCALLWDATARETEND键识别SETT:LCALLGETKEY调用GETKEYCJNEA,#FFH,SETT判断是否有键入无则再读MOVA,BCJNEA,#CH,TT判断键入是否CHCJNER,#H,SET判断是否有键入并键入完成SJMPSETTSET:LCALLDISPLAYNORMOVDPTR,#ZMOVA,#LEDMOD置工作方式MOVXDPTR,AMOVA,#LEDFEQ置键盘扫描速率MOVXDPTR,AMOVA,#LEDCLS清除LED显示MOVXDPTR,ALCALLLTT:CJNEA,#BH,KS判断是否键入BINCR作为标志位判断是否数据输入确定MOVR,#LCALLGETWORDMOVA,BMOVSETWL,AMOVR,#LCALLGETWORDMOVA,BMOVSETWH,AMOVA,SETWLADDA,SETWHMOVB,#HDIVABMOVSETW,AMOVR,#LCALLGETWORDMOVA,BMOVSETSL,AMOVR,#LCALLGETWORDMOVA,BMOVSETSH,AMOVA,SETSLADDA,SETSHMOVB,#HDIVABMOVSETS,AKS:SJMPSETTSETT:MOVR,#AHSETT:LCALLGETKEYCJNEA,#FFH,RING判断输入是否正确MOVA,BCJNEA,#BH,RING若正确则无需再读LJMPSETT若错误则调用SETT再键入数据RING:DJNZR,SETTRETGETKEY:PUSHDPH保存现场PUSHDPLPUSHPSWMOVDPTR,#ZMOVXA,DPTR读状态ANLA,#H屏蔽DDJNZGETVAL判断是否有键输入MOVA,#H置标志(无键输入)SJMPNKBHITGETVAL:MOVA,#READKB读FIFORAM命令MOVXDPTR,AMOVDPTR,#DMOVXA,DPTR读键ANLA,#FH屏蔽SHIFT和CTRL键MOVDPTR,#KEYCODE键码表起始地址MOVCA,ADPTR查表MOVB,A置返回键值MOVA,#FFH置标志(有键输入)NKBHIT:POPPSWPOPDPLPOPDPHRETGETWORD:读数子程序WKEY:LCALLGETKEY读键盘CJNEA,#FFH,WKEY无键输入,则再读MOVA,BADDA,#CHJCERROR判断输入是否大于MOVA,BSUBBA,#HJCERROR判断输入是否小于MOVR,ALCALLDISLED显示输入的字符MOVB,#MULABPUSHACC保存输入的值WKEY:LCALLGETKEY读键盘CJNEA,#FFH

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/48
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部