1、. .基于单片机的温湿度控制系统 目录摘要11、绪论11.1 课题背景11.2 立题的目的和意义11.3 植被栽培技术1温室环境的调节11.4 本系统主要研究内容22 、系统总体分析与设计22.1系统功能及系统的组成和工作原理22.1.1.总体方案22.1.2. 实施措施22.1.3.硬件系统设计2主机与主要部件的选择:32.2温湿度采样与控制系统32.2.1.温湿度采样系统32.2.2.温湿度控制系统32.3 键盘显示系统42.4 报警系统62.5硬件电路设计62.5.1. 系统硬件配置62.5.2. 主要组件简介63 软件系统设计83.1 系统初始化模块83.2 键盘显示模块103.3 采
2、样转换模块113.4温湿度控制模块113.5 报警模块134 硬件调试方案144.1 硬件电路的调试144.2 功能模块的调试方案14结论15致15参考文献16附录:18 基于单片机的温湿度控制系统设计摘要本文利用8051单片机设计一个温室的温湿度控制系统,对给定的温湿度进展控制并实时显示,其中温湿度信号各有四路,系统采用一定的算法对信号处理以确定采取某种控制手段,在本系统中采用温度优先模式,循环处理。关键字:89C51 8729键盘显示 LCD显示 ADC08091、绪论1.1 课题背景 改革开放以来,人们对生活质量要求显著提高,对美丽的植被和花卉的需求量也急剧上升,这对以种植植被为生计的园
3、林工人是一个机遇,同时也对传统的手工植被种植是一个挑战,而基于单片机的温湿度控制系统对解决这些问题有着非常重大的意义。 前种植植被一般都用温室栽培,为了充分的利用好温室栽培这一高效技术,就必需有一套科学的,先进的管理方法,用以对不同种类植被生长的各个时期所需的温度及湿度等进展实时的监控。温湿度控制对于单片机的应用具有一定的实际意义,它代表了一类自动控制的方法。而且其应用十分广泛。1.2 立题的目的和意义 8051单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实例也很多。使用8051单片机能够实现温湿度全程的自动控制,而且8
4、051单片机易于学习、掌握,性价比高。 使用8051型单片机设计温湿度控制系统,可以及时、准确的反映室内的温度以及湿度的变化。完成诸如升温到特定温度、降温到特定温度、在温度上下限X围内保持恒温等多种控制方式,在湿度控制方面也是如此。将此系统应用到温室当中无疑为植被的生长提供了更加适宜的环境。1.3 植被栽培技术植被 “设施栽培,即“保护地栽培。它是指在某种类型的保护设施内如阳畦、温室、大棚等,人为地创造适宜植被生长发育的最正确环境条件,在不同季节内,尤其是不利于植被生长的季节内进展植被栽培的一种措施1。设施栽培是人类利用自然、改造自然的一种创造。由于设施内的条件是可以人为控制的,使得植被调节的
5、周年生产得以实现。玻璃温室和塑料薄膜温室出现后,植被生产出现了划时代的变化。现在人们可以根据自己的意愿,随时生产出所需要的各种植被。可以说,这是“设施栽培的功绩。在不利于植被生长的自然环境中,温室能够创造适宜植被生长发育的条件。温室环境的调节主要包括日光、温度、湿度三个方面。 温度:根据植被生长的适宜温度进展温室温度调节,假设低于下限温度那么采取升温措施,通常采取电热增温和火力增温等,火力增温比拟方便。假设高于上限温度那么采取降温措施,通常通过水管降温和风扇降温,风扇降温比拟方便。 日光:遮荫是调节日照强度最好的方法,其具体做法是加盖遮阳网或草席,这种方法兼有降低温度的效果。 湿度:为满足温室
6、植被对湿度的要求,可以在地上、台阶、盆壁洒水,还可以在空中悬挂湿布,以增加水分的蒸发,最好的方法是设置自动喷雾装置,自动调节湿度9。如果湿度过大,容易导致植被病害,可以采用通风的方法来降低湿度,而且最好在室温与气温相差不大的时候进展。本系统注重温度和湿度的调节,光照强度没有考虑其中。1.4 本系统主要研究内容本系统所要完成的任务是:1.4.1人性化的设计。界限温度值及湿度值能够由用户根据不同植被的各种生长需求由键盘输入并通过显示器显示。1.4.2 能够实时、准确的显示采样温度值与湿度值。1.4.3通过采集温度及湿度值,准确的判断标准值与当前值之间的差异,及时的启动报警装置包括警报灯的提示功能以
7、及提示音等进展报警,并采取相应的方案。1.4.4能够根据植被在不同时间段内对温湿度的不同要求,用户可随机更改温度及湿度值,以满足用户不同的需求。2 、系统总体分析与设计2.1系统功能及系统的组成和工作原理2.1.1.总体方案 温度监控:对温室温度进展测量,并通过升温或降温到达植被的最正确温度。 湿度监控:对温室湿度进展测量,并通过喷雾或去湿到达植被的最正确湿度。 控制处理:当温度、湿度越限时报警,并根据报警信号提示采取一定手段控制。 显示:LCD就地显示输入值和相应的温湿度,数码管摆放在生产现场用于显示当前的温湿度。2.1.2. 实施措施 实际环境温度与给定界限比拟,执行加热/制冷措施。 实际
8、环境湿度与给定界限比拟,执行加湿/去湿措施。 越限报警:当温湿度越限时声光报警。 键盘显示:负责用户的输入及相关数据的显示,其中包括LED和LCD显示。2.1.3.硬件系统设计经过上面的总体方案和实施措施的讨论后可以开场着手硬件系统的设计,硬件系统是应用系统的根底、软件系统设计的依据主机与主要部件的选择:根据总体功能和性价比及其运行速度等因素的考虑,选用MCS-51系列的89C51为主机,满足上面的要求而且设计方便,不需要再存储扩展。数据存储片内设有128B,外部有8279的256B,而由于存入的数据是随时更新的且不计小数位,存入 8个16进制数字,其总共需要的容量只有16B,已经够用。对外部
9、模拟量温度、湿度采样,选用ADC0809能够满足要求。温室温湿度控制系统是以89C51单片机作为中央控制装置,模数转换器ADC0809,风扇,加热设备,加湿设备,排潮设备,键盘显示芯片等,其功能和原理如下:89C51作为中央控制装置,负责中心运算和控制,协调系统各个模块的工作。四路采样温度信号采样简单平均处理,温度保存为整数。四路采样湿度信号采样简单平均处理,温度保存为整数。模数转换器ADC0809:即由模拟信号转换为数字信号。它共有8个模数转换通道。模数的转换共有2种方法。一种是利用INT0中断,当一次转换完毕后,ADC0809使INT0产生中断,通知系统转换完毕;另一种使用延时方法,开场转
10、换后系统延时100微秒等待转换完成。本方案采用延时转换的方法。键盘显示芯片:用8729识别键盘,负责用户的输入及相关的数据的LED显示。例如选择系统的工作模式,用户输入温度及湿度的界限数据,显示实时的温度及湿度值等等。风扇:负责系统的降温工作。加热设备:负责系统的加热工作。喷雾设备:负责系统的加湿工作。排潮设备:负责系统的去湿工作。双色灯,音效模块:负责系统的报警功能。如果当前的温度超过用户设定的界限值时系统将自动报警,双色灯在74LS273的控制下有规律的闪烁,同时音效模块发出报警声,通知用户采取相应的措施。2.2温湿度采样与控制系统2.2.1.温湿度采样系统为了更准确的反映温室的温度和湿度
11、,取温湿度各4路信号采样简单平均处理作为温室的温度和湿度。在分辨率到达的前提下,温湿度的精度为1%。2.2.2.温湿度控制系统首先,系统启动后,提示用户输入温度的上限与下限的温度值。用户输入之后,系统自动求出中间值,根据实际温度的情况采取相应的方案。如下列图2-2-1所示。 下限温度 中间温度 上限温度28 - 32 - 36图2-2-1如果该时刻的实际温度值低于用户给定的下限温度值时,系统立即启动报警装置,且系统处于升温状态,直到实际温度到达用户输入的上下限温度的中间值一定区间内时停顿升温。反之,如果实际温度值高于用户设定的上限值时,系统也会立即启动报警装置,且系统处于降温状态,直到实际温度
12、到达用户输入的上下限温度的中间值一定区间内时停顿降温。选择中间值作为控制参数,防止升温降温升温的死循环,因为温度低于下限时会一直升温,可能导致温度高于上限系统又开场降温,这样系统便一直重复升温降温升温过程,导致设备在某一个温湿度点附近频繁的启停,使设备寿命下降,而且没有实际意义。选择中间值的一定区间,是防止到达中间值时,采取了停顿升温或者降温措施,温度还是会持续上升或下降一会儿,这时候温度可能不是正好在中间值处,系统便还是采取升温或者降温的措施,而此时的温度值可能已经是很适合植被生长的需要的温度值。所以本方案选在中间值的正负一度区间内,认为此区间内都是适合的,不产生任何控制动作变化,这样就能解
13、决设备频繁启停问题。2.3 键盘显示系统键盘显示系统采用8279芯片控制16键的键盘和8个七段数码管,以实现用户的输入与数据输出。16个键分别是“0到“F,对应的键值是0到15不需要键值的转换。七段数码管采用共阴极,系统中使用的段码如下表2-3-1所示。显示01234567段码3FH06H5BH4FH66H6DH7DH07H显示89ABCDEF段码7FH6FH77H7CH39H5EH79H71H表2-3-18279初始化时,设定的相关命令字如下:Z8279 EQU 08701H ;8279 状态/命令口地址D8279 EQU 08700H ;8279 数据口地址LEDMOD EQU 00H ;
14、左边输入 八位字符显示 ;外部译码键扫描方式,双键互锁LEDFEQ EQU 38H ;扫描速率LEDCLS EQU 0D1H ;去除显示 RAMLEDWR0 EQU 80H ;设定的将要写入的显示RAM地址系统的连接图如下列图2-3-2所示。图2-3-2AD0809与89C51连接图:图2-3-22.4 报警系统报警系统由声音报警和警报灯报警组成。声音报警通过P1.0口接SD口控制系统的音效模块发声,用CPU控制P1.0产生一定频率的方波就可以实现音效模块的发声。音效模块是一个带有扬声器的放大电路。如图2-4-1所示。图2-4-12.5硬件电路设计2.5.1. 系统硬件配置采用总线型构造的设计
15、。由P0口作数据线,P0口和P2口共同作地址。2.5.2. 主要组件简介189C51芯片89C51是Intel公司于80年代初推出的8位嵌入式微控制器内部数据总线为8位,外部数据总线为8位,它与MCS-96系统中的其它芯片相比,具有性能高、功能全、售价低廉、使用方便48PINDIP等优点。89C51在工业应用方面有许多明显的特点,它具有灵活方便的8位总线外围支持器扩展功能,而在数据处理方面又有8位微机的快速功能。由于大的高度集成化已把许多常驻用的输入检测输出控制通道都制作在同一块硅片上,大大地灵活了外部连线,增强了系统的稳定性并且速度快时钟12MHz,非常适合于工业环境下安装使用。因此本系统C
16、PU选用89C51芯片。89C51单片机引脚采用40双列直插式封装构造。89C51系统CPU中的主要组件有:高速存放器阵列、特殊功能存放器SFR、存放器控制器和算术逻辑单元RALU。它与外部通讯是通过特殊功能存放器SFR或存储器,控制器进展的。8051系统的CPU的主要特色是体积小,重量轻,抗干扰能力强,售价低,使用方便。此外,通过SFR还可以直接控制I/O、A/D、PWM、串行口等部件的有效运行。CPU内部的一个控制单元和两条总线存放器阵列和EALU连接起来。这两条总线是:16位地址总线A-BUS和8位数据总线D-BUS。数据总线仅在RALU与存放器阵列或SFR之间传送数据,地址总线用作上述
17、数据传送的地址总线或用作与存放器控制器连接的多路复用地址/数据总线7。CPU对片内RAM访问是直接访问和通过存放器R0,R1间接访问的。89C51工作时所需的时钟可通过其XTALL输入引脚由外部输入,也可采用芯片内部的振荡器。其工作频率为612MHz。在本系统中采用11.0592MHz频率。274LS273地址锁存器74LS273是带有三态缓冲输出的8D锁存器74LS273;D7D0:三态门输入端。Q7Q0:三态门输出端。GND:接地端。Vcc:电源端。OE:三态门使能端。GSTB:8D锁存器控制端。38279可编程键盘/显示器接口芯片8279使Intel公司为8位微处理器设计的通用键盘/显示
18、器接口芯片,其功能主要表达在二个方面:接收来自键盘的输入数据并作预处理;数据显示的管理和数据显示器的控制。单片机采用8279管理键盘和显示器,可减少软件程序,减轻负担,且显示稳定,程序简单。8279的引脚功能采用40线双列直插式封装:DB0DB7:双向外部数据总线。用于传送8279与CPU之间的命令、数据和状态。CS:片选信号线,低电平有效。A0:区分信息的特征位。当A0位置1时,CPU写入8279的信息位命令,CPU从8279读出的信息为8279的状态;当A0为0时,I/O信息都为数据。RD,WR:读和写选通信号线,均为低电平有效。IRQ:中断请求输出线,高电平有效。RL7RL0:键盘回送线
19、,平时为高电平,只有当某一键闭合时,其中一条线才变低。SL7SL0:扫描输出线,用于对键盘和显示器进展扫描。OUTB3OUTB0 OUTA3OUTA0:显示段输出线。BD:显示熄灭控制线,低电平有效。RESET:复位输入线,高电平有效。SHIFT,TL/STB:控制输入线,由内部拉高电阴拉成高电平,也可由外部控制按键拉成低电平。CLK:外部时钟输入线,其信号由外部振荡器提供。Vcc,GND:分别为+5V电源和地。4七段LED显示器LED是单片机应用系统中一种常见的输出设备,通常使用的是七段显示。这种显示块有共阴极与共阳极两种。4以共阴极为例:显示个位“4a 送 0d,e 送 0b,c,f,g
20、那么送 1gnd 送 0那么立刻显示4。它由8个发光二极管7段和一个小数点构成,可用来显示09,A、B、C、D、E、F、G(小数点)。在数码管中,假设把各二极管的阴极连在一起称为共阴极数码管;假设把各二极管的阴极连接在一起称为共阴极数码管;假设把各二极管的阳极连接在一起,那么称为共阳极数码管。在本系统中采用共阴极数码管。5ADC0809芯片3ADC0809是28脚双列直插式封装。D7D0:8位数字量输出引脚。IN0IN7:8路模拟量输入引脚。Vcc:+5V工作电压。GND:地。6LCD显示引脚功能7:D0D7双向数据总线。LCD数据读写方式可以分为8位和4位两种,以8位数据进展读写操作那么D0
21、D7都有效,假设以4位方式进展读写操作,那么只用到D4D7RS:存放器选择控制位。当RS=0时,并且做写入的动作时,可以写入指令存放器,假设RS=0,且做读取操作时,可以读取忙标准及地址记数器的内容。假设RS=1,责用于读取数据存放器7。R/W:LCD读写控制线。R/W=0时,LCD执行写入操作,R/W=1时,LCD执行读取操作。EN:启动控制线。高电平有效。VCC:电源端。VO:亮度调整电压输入控制器。当输入0V时字符显示最亮。GND:接地。3、软件系统设计3.1 系统初始化模块系统初始化模块的主要功能是完成系统的初始化以及设定系统的工作状态,初始化局部包括以下方面的内容:3.1.1 系统启
22、动后,显示器上显示两行,第一行为“WELE TO THE SYSTEM,第二行显示为“START WORK3.1.2 等待用户输入温度及湿度值。按“B键表示开场输入,这时可按温度下限、上限,湿度下限、上限的顺序依次输入,如果输入的顺序错可按“B键可重新进展输入,直到输入正确;输入完毕后按“C键确定。3.1.3 系统进入正常工作状态。系统整体的工作方式如下框图所示图3-1-1初始化程序局部的流程图如下列图3-1-2所示。 图3-1-23.2 键盘显示模块本系统中使用8279芯片完成有关键盘输入和温湿度显示工作。温度湿度是依次输入的并且依次以下限、上限输入,并且将温湿度的中间数值存入单片机中,在将
23、LED清零后显示分别在0123位,并依次显示实时的温度湿度数值显示在4567位实际上,在系统初始化的过程中,除了初始化键盘和显示器之外,其中还包括着调用8279键盘显示模块,8279键盘显示模块局部的根本流程如下列图3-2-1所示。 图3-2-1其中显示键值的程序流程图如下:图3-2-13.3 采样转换模块采样转换模块是本系统中的核心模块之一,它负责完成温度和湿的测量及模拟量转换为数字量的全过程,这也是它为什么重要的原因。系统每次转换前ADC0809的IN0IN7送个任意数,表示开场转换,结果是一个数字量,将其转化为#BCD码,。送显示程序显示,并将数值返回给主函数。湿度也可以通过此种方法观察
24、变化,得出相应的结论。为了更准确的反映系统的温度和湿度,本系统对四路采样信号作简单平均处理,并将处理后的数值作为温室的温湿度,其过程如下列图。图3-3-1实时温湿度显示和温湿度中间数值显示便于我们实时比拟和掌握系统工作状况,实时的温度湿度不在要求的区间内那么进展升温降温处理。 图3-3-23.4温湿度控制模块温湿度判断控制模块也是系统的核心模块之一,所谓判断控制模块,就是对用户输入的温度和湿度与当前温室内的实际温湿度进展比拟,先进展判断,然后再进展控制,控制模块是决定系统将要进展什么工作的。如温度高于上限时需要降温,低于下限时需要升温,同时还要启动警报等等。温度判断控制局部的程序整体思路如下如
25、所示: 图3-4-1上面已经讨论了采取中间值作为控制参数,采取中间值一定区间作为控制区间的原因,那么按照2.2的思想,控制程序流程图如下: 图3-4-2湿度判断控制局部与温度判断控制局部的功能及流程是一样的,便不再赘述了。3.5 报警模块报警模块具备两项功能,即为报警灯和声音报警。报警灯模块是完成LED有规律的闪烁,以便从视觉上提醒用户。LED是由74LS273控制4个双色LED灯组成的,其闪烁规律为:1 向74LS273发送的数据0F0H,那么双色LED灯发绿光。2 向74LS273发送的数据0FH,那么双色LED灯发红光。3 向74LS273发送的数据0FFH,那么双色LED灯熄灭。向74
26、LS273交替发送0F0H、0FFH,或0FH、0FFH,以实现LED灯红/灭交替或绿/灭交替,这时我们就看到了闪烁的效果。在LED灯闪烁的同时,声音报警也会同时启动,可采用延时的方式来延长声音报警的声音。警报灯由4个双色的LED灯组成,一共需要8根数据线,使用74LS273芯片控制。要实现的功能是使4个双色LED灯有规律的闪烁,当用户输入温度的上下限值后,系统进展实时的采样,并判断出当前温度与用户输入温度之间的差异,如果当前温度低于用户输入的下限温度值,那么说明当前温度过低,系统自动启动警报灯,此时警报灯发出绿光并进展有规律的闪烁,同时开场加温,直至加到所需温度值时警报灯熄灭。反之,如果当前
27、温度高于用户输入的上限温度值,那么说明当前温度过高,系统也会自动启动警报灯,但此时警报灯会发出红光并进展有规律的闪烁,同时开场降温,直至降到所需温度值时警报灯熄灭。图3-5-14 硬件调试方案4.1 硬件电路的调试此局部的任务是在系统连接好后,调试各个组件能否正常工作,能否实现软件设计的预期目标。其步骤如下:4.1.1 按照系统设计,将系统需要的各个组件连接好。4.1.2 根据实验说明书,了解各个组件的工作原理,开场着手调试芯片。4.1.3 调试8279芯片。按照说明书调用8279ASM汇编程序,运行,观察现象。现象正确,说明8279芯片正常,可以使用。4.1.4 调试ADC0809芯片。按照
28、说明书调用CON_WASM汇编程序,运行,观察现象。现象正确,说明ADC0809芯片正常,可以使用。4.1.5 调试直流电机,按照说明书调用直流电机相应的汇编程序,运行,观察现象。现象正确,说明直流电机正常,可以使用。4.2 功能模块的调试方案把各个功能模块编写成单独的源文件进展调试,调试成功以后,再将各局部联合在一起。整个系统的编写、调试是从8279开场的。控制8279原理虽然简单,但需要细节却很多,如选择显示存放器与送段码的顺序,8279的初始化等待时间等。用户温度输入数据时上限、下限分别在七段数码管的0、1、2、3位置显示,湿度输入数据时上限、下限分别在七段数码管的4、5、6、7位置显示
29、。读键存储的过程是循环程序。可循环等待直到用户输入正确并确认为止。采样转换模块是一个比拟重要的模块,在调试的阶段遇到的问题较多,由于它是程序运行的瓶颈,如果这一局部通不过的话,那么程序就无法执行下去,本系统采用的是延时的方法。温湿度判断控制模块也一个非常重要的模块,由于温湿度对于植被的生长起着决定性的作用,因此,如果这两个因素控制不好,这个系统就失败了,这就需要我认真的考虑这一模块的控制方式,调试阶段比拟顺利。除了以上所提到的模块之外,还有一些模块也很重要,也都需要认真的调试,如报警模块等。调试了各模块之后,接下来的工作就是将各源程序段连接起来,进展综合调试了,综合调试需要我们特别注意细节局部
30、,这样才能尽可能的减少错误的产生。结 论虽然这个设计做的比拟简单,很多东西都考虑的不是很细,也有一些特别情况没有做,但是用了很多精力用来完成这个论文,鉴于个人水平和时间的关系所以并没有把自己当初设想的所有情况都考虑进去,这两个月的毕业论文让我学会的很多,觉得自己学的太少还有很多需要认真学习,学无止境,所以要更努力。致 此次毕业设计是在我的导师陈勉教师的精心指导及全力支持下完成的。本系统的设计成功与陈教师的帮助是密不可分的,再加上自身的努力才能圆满地完成预期的目标。陈教师对新知识,新事物都有自己独到的理解,这深深的影响了我对学习的态度,将使我终生难忘。他们一丝不茍的工作态度和认真负责的敬业精神同
31、样给了我巨大的收益和鼓舞。这些都将使我受益匪浅,同时也要感谢我的父母,不是你们我就不可能在大学校园里,也就不可能有这个毕业设计!最后,我要以最真挚的感情来感谢指导本次毕业设计中的导师,是您们用辛勤的劳动、无私的奉献和渊博的知识换来了我的毕业设计。同时感谢各位同学对我的帮助,只有我们不断的努力学习,明天才会更加美好,因为时机永远属于那些有准备的人。参考文献1.dangdang./product/9160/9160128.shtmlZ.2周坚,单片机轻松入门M.:航空航天,2002.3孙育才MCS51系列单片微型计算机及其应用M.:东南大学,2004. P2314公孙茂,马宝匍,孙晨单片机入口接口
32、实例集M.:航空航天,2002. P1205求是科技.PIC单片机典型模块设计和实例导航M.:人民邮电,2005.6龙泽明,顾立志,王桂莲,陈光军.MCS51单片机原理及工程应用M.:国防工业,2005.7胡辉.王晓,戴永成.单片机原理及应用设计M.:中国水利水电,2005. P6 ,P1818蔡菲娜. 单片微型计算机原理和应用M。:XX大学,20039.lyeny./Article/ShowArticle.asp?ArticleID=113Z.Based on monolithic integrated circuit temperature And humidity control sys
33、tem designAbstract:This article uses 8051 monolithic integrated circuits to design a greenhouse the temperature and humidity control system, to temperature and humidity control and real time display which assigns, temperature humidity signal has four groups respectively, the system uses the certain
34、algorithm to the signal processing by to determine uses some control method, uses the temperature first pattern in this system, circulation processing.Key words: The 89C51 8729 keyboards LCD ADC0809附录:IN0 EQU 7FF8HIN1 EQU 7FF9HIN2 EQU 7FFAHIN3 EQU 7FFBHIN4 EQU 7FFCHIN5 EQU 7FFDHIN6 EQU 7FFEHIN7 EQU
35、7FFFHSET_WLEQU50HSET_WHEQU51HSET_W EQU 52HCURTM_W EQU53HSET_SLEQU54HSET_SHEQU55HSET_S EQU 56HCURTM_S EQU57HZ8279 EQU 08701H ;8279 状态/命令口地址D8279 EQU 08700H ;8279 数据口地址LEDMOD EQU 00H ;左边输入八位字符显示;外部译码键扫描方式,双键互锁LEDFEQ EQU 38H ;扫描速率LEDCLS EQU 0D1H ;去除显示 RAMREADKB EQU 40H ;读 FIFO RAM 地址 0 的命令字ORG 0000HLJM
36、P STARTORG 0040HSTART: MOV SP,#60H LCALL INITMOV R0,#00H MOV R1,#00H MOV R2,#00H MOV R3,#00H MOV R4,#00H MOV R5,#00H MOV R6,#00H MOV R7,#00H MOV 40H,#00HLCALL DISPLAY_1液晶显示程序:DISPLAY_ST:RS EQU P0.0 ;LCD RC引脚定义EN EQU P0.1 ;LCD EN 引脚定义WLED EQU P1.0 ;工作指示灯引脚定义CLR EN ;LCD被禁用LCALL LED_BL ;LCD闪烁LCALL SET_
37、LCD ; LCD做显示测试MOV A, #1 ;设置所要显示的字符MOV B, #15 ;设置所要显示的位置LCALL LCDP1 ;在LCD第一行显示字符MOV A, #2 ;设置所要显示的字符MOV B, #15 ;设置所要显示的位置LCALL LCDP2 ;在LCD第二行显示字符JMP $ ;循环SET_LCD: ;LCD初试化并做测试CLR EN ;LCD被禁用LCALL INIT_LCD ;LCD初试化LCALL DELAY ;延时MOV DPTR,#LMESS1 ;指针指到消息第一行MOV A,#1 ;显示在第一行LCALL LCD_PRINT ;显示执行消息于LCD第一行MOV
38、 DPTR,#LMESS2 ;指针指到消息第二行MOV A,#2 ;显示在第二行LCALL LCD_PRINT ;显示执行消息于LCD第二行RETINIT_LCD1: ;4位I/O初试化MOV A,#28H LCALL W ;双列显示字符使用57点阵MOV A,#0EHLCALL W ;光标出现不闪烁MOV A,#06HLCALL W ;每次向右移动一位,显示屏不动MOV A,#01HLCALL W ;去除LCD显示屏RETCLR_LINE1:MOV A,80H ;去除LCD的第一行,设置第一行字符LCALL WMOV R0,#24 ;设置记数值CL:MOV A,# ;载入空格到LCDLCAL
39、L WDATA ; 输出字符到LCDDJNZ R0,CL ;记数完毕RETLCD_PRINT:CJNE A,#1,LINE2 ;在LCD第一行或第二行显示字符LINE1: ;设置第一行地址MOV A,#80HLCALL WLCALL CLR_LINEMOV A,80HLCALL WJMP FILLLINE2: ;设置第一行地址MOV A, #0C0HLCALL WLCALL CLR_LINEMOV A,0C0HLCALL WFILL: CLR AMOVC A, A+DPTRCJNE A, #0,L1RETL1:LCALL WDATAINC DOTR JMP FILLRETCLR_LINE:MOV R0,#24