多路远程温度测量系统设计_第1页
多路远程温度测量系统设计_第2页
多路远程温度测量系统设计_第3页
多路远程温度测量系统设计_第4页
多路远程温度测量系统设计_第5页
已阅读5页,还剩22页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、多路远程温度测量系统设计摘 要多路远程温度测量系统是利用下位机实时温度的采集,并将结果传输到上位机。以达到对温度的比较、控制。本设计用MCS-51单片机为主要硬件,设计了包括温度采集,温度显示,串口通信等外围电路。而且对所设计电路给出了相应的软件设计,包括串行口初始化,数据采集和数据传输等程序。在温度测量部分采用具有“一线总线”接口的数字传感器DS18B20,实现单线多点数据的采集。多路远程温度测量系统是典型的集散式控制系统。由下位机、上位机、和通讯网络三部分组成。下位机是基于单片机AT89C2051和DS18B20的高精度温度采集系统,功能是对温度的检测与输出控制。上、下位机之间通过RS-4

2、85协议构成网络系统。关键词:MCS-51,DS18B20,温度采集,远程通信ABSTRACT The monolithic integrated circuit is the main hardware, In order to realize design goal this design including temperature gathering, the temperature demonstrated that, the systems control, strung together periphery electric circuit and so on mouth corr

3、espondence. Moreover to design the electric circuit to produce the corresponding software design, including serial procedure and so on mouth initialization ,data gathering and data transmission. The 1-Wire bus digital thermometer DS18B20 is used to measure temperature. It can realize the 1-Wire mult

4、i-point collection. Several points of temperature examination system is typically concentrate-disperse system. It consists of up a machine, bottom a machine, and communication network. Bottom a machine is a high accuracy data collection system that bases on the microcontroller AT89C2051 and the DS18

5、B20 system. Its function is to temperature and output the control. The up machine and bottom machines constitute of network system, via rs-485 bus.KEY WORDS: MCS-51 , DS18B20 ,Temperature gathering , Tekecommunications目 录第一章 绪论1第二章 多路远程温度测量系统设计要求与设计方案22.1系统设计任务和要求22.2 课题分析22.3 方案比较与论证22.3.1 温度传感器的选择

6、22.3.2显示部分32.3.3主控芯片的选择32.3.4远程传输模块的选择32.4方案选定4第三章 多路远程温度测量系统的硬件设计53.1总体设计53.2 主板部分电路设计53.2.1 AT89C51单片机的性能及应用53.2.2显示模块设计63.2.3串行通信63.2.4电源模块63.3分板电路设计73.3.1 AT89C2051单片机的性能及应用73.3.2 DS18B20芯片简介及接口设计7第四章 多路远程温度采集系统的软件设计84.1 软件设计总论84.1.1软件设计的一般方法84.1.2 程序流程图设计84.2汇编语言的产生及特点84.3 总体及各分模块程序设计94.3.1 主板主

7、程序设计94.3.2分板主程序设计104.3.3串行通信程序设计104.3.4温度采集程序设计124.3.5 LCD显示设计184.4软件抗干扰技术204.4.1软件陷阱技术204.4.2软件看门狗技术20结 论21致 谢22参考文献23附 录24第一章 绪论温度的监视和控制可以说是现代化工、农业最常用的技术,常用于农用系统、音频设备、汽车、气象控制、GPS设备、医疗装置、电信等方面。例如进行田间温度测量,将温度传感器放置在所需测量的农田的各个位置,在土壤表面,深入到作物根系附近,放置到植物的顶端,测量同一时间内不同位置的温度,经过一段时间的采样从而分析温度对作物生长产生的影响;还可以在粮库存

8、储的粮食中均匀分布温度探头,监测不同位置的粮食的温度变化,防止或尽早处理霉变现象。对于这类的温度测量需求,传统的人工测量已经远远的不能满足,而现有的大多数温度测量装置采用热电偶进行温度测量,热电偶发出模拟信号且信号比较微弱,需要先经过增益放大,再进行A/D转换,最后送交给MCU处理。这样的系统控制多个温度探头需要考虑很多因素,而且多个探头的连接也会使整个系统的构成变得非常复杂,不利于实际应用。 DALLAS公司出品的单总线数字传感器DS18B20,其不仅适用与高温或低温的环境,也适用于自然环境或接近自然温度的检测,如:对冷冻室或冷藏室温度的监测,粮食储备的温度监测,蔬菜大棚、花房的温度监测,程

9、控交换机室的温度监测,孵化室温度监测等等对环境温度要求较严格的场合。DS18B20在解决各种误差、可靠性和实现系统优化等方面与传统各种温度传感器相比,有无可比拟的优越性,因而广泛应用于过程控制、环境控制、建筑物、机器设备中的温度检测。而对于远程传输这一课题在本系统中也是不得不考虑的一个因素。连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。采用何种传输协议有效地扩展测量半径是我们要解决的一个问题。从当前发展趋势可知,利用一个仪器对多个温度进行测试是很有必要的,于是,多路远程温度测量系统的开发便应运而生。第二章 多路远程温度测量系

10、统设计要求与设计方案 2.1系统设计任务和要求用单片机、集成温度传感器、LCD或LED等设计一温度测量电路,该电路还能进行远距数据传输。测量温度范围:-40+125;传输距离:大于100米。2.2 课题分析首先,对于多路温度测量,温度探头的低功耗是十分重要的,同时还要满足易于控制的条件,测温范围也必须达到或超过题目要求。因此选择合适的温度传感器成为本次设计的重中之重。再次,对于传输距离大于100米的要求,如若直接将温度传感器用大于100米的普通连接线连接到单片机上,不可避免的会产生信号的衰减,甚至会由于外界的干扰造成传输误码率升高。要解决这个问题,只能通过专用的单片机串口通信设备芯片解决2.3

11、 方案比较与论证2.3.1 温度传感器的选择根据题目要求,设计一温度测量电路,能够通过温度传感器测量并显示被测量点的温度,常用的温度传感器可分为3大类:方案一:热电偶式热电偶具有构造简单,适用温度范围广,使用方便,承受热机械冲击能力强以及响应速度快等特点,常用于高温区域, 振动冲击大等恶劣环境以及适合于微小结构测温场合;但其信号输出灵敏度比较低,容易受到环境干扰和前置放大器温度漂移的影响,因此不适合测量微小的温度变化。方案二:电阻式电阻式可用来测量-220850范围内的温度,少数情况下,低温可测量至-272,高温可测量至1000,互换性差,非线性严重,在腐蚀介质中使用时,易氧化,因此,只能用于

12、低温及无腐蚀性的介质中。虽然测量温度范围广,但热稳定性差。方案三:数字式DS18B20温度传感器。DS18B20温度传感器为“一线式器件”,体积更小、适用电压更宽、更方便。其测量温度范围为 -55+125,在-10+85范围内,精度为0.5。其内部有A/D、D/A转换装置,用户可以设置温度的上下限,并具可以直接与单片机进行通讯。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。考虑题目测温范围要求以及测量数据的准确性要求选择方案三。2.3.2显示部分方案一:使用液晶显示屏显示转换结果。液晶显示屏(OCMJ2*8C)具有轻薄短小,平面显示以及影像稳定不闪烁等优势,能显示汉字及各

13、种符号,可以绘制曲线和简单的图像,分辨率高,抗干扰能力强和显示形式灵活等优点。方案二:使用传统的数码显示管。数码管(LED)受外界环境影响小,显示明亮,编程简单,占用资源较少。但是LED数码管显示单一,只能显示数字与字母,无法显示文字与曲线。根据以上的讨论,我们采用方案一。2.3.3主控芯片的选择本系统初步设计为一主板加两分板的结构。主板主要负责接收分板数据及显示任务,分板主要负责温度数据的采集及发送任务。在综合考虑对芯片的熟悉程度及功能的实现程度上。决定在主板上采用AT89C51芯片,AT89C51片内含4k bytes的可反复擦鞋的只读程序存储器(PEROM)和128 bytes的随机存取

14、数据存储器(RAM), 32个IO 口线完全能够满足对数据的处理要求。分板仅需满足数据采集及发送任务,主控芯片的外接设备对I/O端口的数目要求较少,可以选择16端口的AT89C2051芯片。虽然市面上有着功能更为强大的单片机芯片,但都价格不菲。而本设计本着简单实用,精简节约的原则,我们选择了AT89C51和AT89C2051芯片。2.3.4远程传输模块的选择方案一:无线发射接收模块无线发射模块省却了布线的步骤,使得整个系统看上去更加简洁。但整个系统的功耗较大,而且无线传输数据易受环境影响,不能保证数据存储的稳定性。方案二:有线通信收发器ADM489是用于RS-485与RS-422通信的低功耗收

15、发器。具有限摆率驱动器,可以减小EMI(电磁干扰),并降低由不恰当的终端匹配电缆引起的反射,实现最高250kbps 的无差错数据传输。驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态,防止过度的功率损耗。根据以上讨论我们选择有线通信收发器ADM489。2.4方案选定1. 温度传感器 DS18B20;2. 显示部分 LCD液晶显示器;3. 主控芯片 主板AT89C51,分板AT89C2051;4. 远程传输 ADM489。第三章 多路远程温度测量系统的硬件设计3.1总体设计为完成多路远程温度测量系统的基本功能,我们采用了一主板加两分板的结构设计。主板与分板之间通过通信线缆连接

16、,有各自独立的供电模块主板以AT89C51为主控芯片,主要负责接收来自分板的数据,并将其显示在LCD液晶显示器上。主要模块有:单片机最小系统模块,液晶显示模块,通信收发模块,电源模块。为增加系统的抗干扰性及复位的可靠性,特意增加了一个以X25045为核心的单片机复位模块。两个分板以AT89C2051为主控芯片,负责温度的采集及输出任务。主要模块有:单片机最小系统模块,温度采集模块,通信收发模块,电源模块。 图3-1 整体电路框图3.2 主板部分电路设计 3.2.1 AT89C51单片机的性能及应用AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含4k bytes

17、的可反复擦鞋的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),期间采用ATMEL公司的高密度、非易失性存储技术生产。可灵活应用与各种控制领域。3.2.2显示模块设计本次设计选用的液晶显示器是金鹏电子有限公司生产的B系列(改进型)中文液晶显示模块B系列(改进型)中文液晶显示模块内含GB 2312 15*15点阵国标一、二级简体汉字和8*8点阵及8*16点阵ASCII字符,用户输入GB2312区位码或ASCII 码即可实现文本显示。3.2.3串行通信按总线传送信号的形式可分为二大类型:串行总线和并行总线。如RS-232C为串行总线,IEEE-488并行总线。 介于单

18、片机端口数目的限制,我们采用了串行通信的方式。ADM489的典型应用电路见图3-2。图3-2用了2个RS485网络,需要4条线,具有全双工通信的功能。(b)图3-2 ADM489典型应用电路3.2.4电源模块由于本机整机功耗较小,所需电压较低(仅为5V),我们直接采用了外接稳压直流电源或电池的设计。只是在输入端加了一些滤波电容,除去杂波干扰,提高系统的抗干扰特性。3.3分板电路设计3.3.1 AT89C2051单片机的性能及应用AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含2k bytes的可反复擦鞋的只读程序存储器(PEROM)和128 bytes的随机存

19、取数据存储器(RAM)。器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼 容标准 MCS-5l 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大。 3.3.2 DS18B20芯片简介及接口设计 DS18B20是美国Dallas半导体公司的产品。它采用1-Wire总线技术,具有节省IO资源,结构简单、成本低廉,便于总线扩展和维护等特点。DS18B20采用1-Wire总线技术,将地址线、数据线、控制线合为1根信号线,这就使得DS18B20与单片机的接口设计变得十分简单,只需将温度传感器的DQ端口与单片机的任意一个I/O数据口相连即可。由于单总线为开漏所以需要外接

20、一个4.7K的上拉电阻。其余分板电路模块(如通信模块,电源模块,单片机最小系统模块)在主板中已做过介绍,在此不再赘述。第四章 多路远程温度采集系统的软件设计4.1 软件设计总论软件设计(Programming)是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。由于程序是软件的本体,软件的质量主要通过程序的质量来体现,在软件研究中,程序设计的工作非常重要,内容涉及到有关的基本概念、工具、方法以及方法学等。软件设计通常分为问题建摸,算法设计,编写代码和编译调试四个阶段。4.1.1软件设计的一般方法软件设计一般根据系统中功能模块进行分割,首先应确定主程序框图,然后划分软件功能模块。程序设

21、计中应实现模块化,子程序化。所谓模块化就是把一个完整的程序分解成完整的程序分解成若干个功能上相对独立的较小程序块,各小程序进行单独设计和调试,最后将各程序模块连接起来进行总调试。这种方法思路清楚,软件故障容易排除,便于移植及修改。当软件各功能模块分别调试完毕后,即可进行主程序调试。主程序调试主要是排除各个功能模块之间连接中可能出现的问题,如各个功能使用的RAM区域有否重叠现象,寄存器有否发生冲突,堆栈区域有否溢出等等。4.1.2 程序流程图设计 程序设计工作往往比较复杂,为了能把复杂的工作条理化、直观化,通常实用的方法是流程图法。程序流程图是人们对解决问题的方法、思路或算法的一种描述。 流程图

22、的优点:1.采用简单规范的符号,画法简单;2.结构清晰,逻辑性强;3.便于描述,容易理解。尤其是对于大型软件的设计,流程图会对设计过程产生事半功倍的效果4.2汇编语言的产生及特点在计算机内部,所有的数、字符都是用二进制代码来表示的,指令也是用二进制代码来表示。这种用二进制代码来表示的指令系统统称为机器语言系统。而机器语言对人来说,很难识别和记忆,编程序时容易出错,这给程序的编写和阅读带来很大的困难,于是出现了汇编语言。汇编语言就是用英文字符作为助记符,用助记符来代表指令的操作码和操作数,用标号和符号代表地址或数据。助记符一般都是操作说明的英文字符缩写,它便于识别和记忆。因此用汇编语言编写和修改

23、程序比用机器语言方便的多。后来虽然又出现了更为容易被人掌握的高级语言。但汇编语言以其节省内存空间,执行速度快,能准确计算执行时间,便于实时控制的特点一直长盛不衰,没有被抛弃。本次软件设计采用的就是汇编语言。 4.3 总体及各分模块程序设计4.3.1 主板主程序设计主板工作过程为:在进行系统初始化后主机向两分板发送选择地址,等待分板响应,若分板未连接或无响应,则继续向外发送选择地址。有响应,将接收到的数据存储到内存单元,调用显示程序显示温度。周而复始,完成工作。 图4-1 主板主程序流图4.3.2分板主程序设计分板工作过程:采集温度数据到内存单元,接收主机发送到的选择地址与自身地址进行比较。若相

24、同,向主板发送数据;不同继续等待接收选择地址。图4-2 分板主程序流图 4.3.3串行通信程序设计本设计为多路系统设计,必然要考虑信道的利用问题。但在本系统设计中我们采用了主从式的网络设计。在主从式网络中,信道由主机进行控制,不存在竞争信道的问题。MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:SM0SM1SM2

25、RENTB8RB8TIRI下面我们对各控制位功能介绍如下: 1. SM0、SM1:串行口工作方式控制位。SM0,SM1工作方式0 0 方式0 0 1 方式11 0 方式21 1 方式32. SM2:多机通信控制位。多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。工作于方式0时,SM2必须为0。3.REN:允许接收位。RE

26、N用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。4.TB8:发送接收数据位8。在方式2和方式3中,TB8是要发送的即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。5.RB8:接收数据位8。在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。6.TI:发送中断标志位。可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。 7.RI:接收中断标志位。可寻址标志位。接收完第8位数据后

27、,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。电源管理寄存器PCON PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下SMOD在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。串行口的初始化主要就是对这两个位进行设置。 单片机通过对DE和/RE的置位或复位控制接收状态或发送状态。图4-3 主板串行口程序流图 图4-4 分板串行口程序流图 4.3.4温度采集程序设计单片机控制18B20流程图图4-5 单片机控制18B2

28、0流程图 DS18B20 的测量范围从-55 - +125,测量精度为0.5。温度测量结果分别放到0,1号存储器中.存储器0的高四位为符号位。当温度为正时,此四位为零。存储器0的低四位和存储器1的高四位为温度值的整数部分,存储器1的低四位为小数部分的二进制码。如表1温度二进制输出十六进制输出1250000 0111 1101 000007D0H 25.06250000 0001 1001 00010191H0.5 0008H0 0000H表 1:温度测量结果与二进制、十六进制的关系控制器对18B20操作流程:1. 复位:首先必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18

29、B20单总线至少480uS的低电平信号。当18B20接到此复位信号后则会在1560uS后回发一个芯片的存在脉冲。2, 存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在1560uS后接收存在脉冲,存在脉冲为一个60240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。DS18B20复位初始化程序INIT_1820:SETB P3.5 NOP CLR P3.5 ;主机发出延时537微秒的复位低脉冲 MOV R1,#3 TSR1: MOV

30、R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB P3.5;然后拉高数据线 NOP NOP NOP MOV R0,#25H TSR2: JNB P3.5,TSR3;等待DS18B20回应 DJNZ R0,TSR2 LJMP TSR4 ; 延时 TSR3: SETB P1.7 ; 置标志位,表示DS1820存在 CLR P1.7;检查到DS18B20就点亮P1.7LED LJMP TSR5 TSR4: CLR P1.7; 清标志位,表示DS1820不存在 LJMP TSR7TSR5: MOV R0,#117TSR6: DJNZ R0,TSR6 ; 时序要求延时一段时间TSR

31、7: SETB P3.5 RET3, 控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。 本次设计只是挂接单个18B20直接跳过ROM。4, 控

32、制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。5, 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。如执行数据读写指令则需要严格遵循18B20的读写时序来操作。

33、若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS温度转换时间。紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可)。写命令到DS18B20WRITE: MOV R3,#8 WR1: SETB P1.7 ;开始写 总线释放 MOV R4,#8 RRC A ;把写的位值环移给A CLR P1.7 WR2: DJNZ R4,WR2 MOV P1.7,C ; ;向DS18B20总线写得一个BIT MOV R4,#30 WR3: DJNZ

34、 R4,WR3; 写下一个BIT DJNZ R3,WR1 SETB P1.7 RET读数据子程序READ: MOV R6,#8 RE1: CLR P1.7 MOV R4,#4 NOP SETB P1.7 RE2: DJNZ R4,RE2 MOV C,P1.7 ;从DS18B20总线读得一个BIT RRC A ;把读得的位值环移给A MOV R5,#30 RE3: DJNZ R5,RE3;读下一个BIT DJNZ R6,RE1 SETB P1.7 RET温度计算子程序 MOV A,48H ;取出小数部分ANL A,#0FH MOV B,#10 MUL AB ;A/16 CLR C RRC A C

35、LR C RRC A CLR C RRC A CLR C RRC A ;取TEMP_L的低四位X10/16得小数后一位数. ;A/16 END MOV 4AH,A MOV A,48H ANL A,#0F0H ;取出TEMP_HI的高四位 SWAP A MOV 4DH,A MOV A,49H ANL A,#07H ;取出TEMP_H的低三位 SWAP A ORL A,4DH ;重新组合温度数据 MOV 4EH,A CLR C SUBB A,#100 JC LESS100 ;若100转至LESS100 MOV A,4EH MOV B,#10 DIV AB ; MOV 4BH,B ; 得温度个位BC

36、D MOV 4CH,A ; 得温度十位BCD MOV LO_DAT,4AH;移至温度寄存器。 MOV ME_DAT,4BH MOV HI_DAT,4CH MOV BI_DAT,#1H RETLESS100: MOV A,4EH MOV B,#10 DIV AB MOV 4BH,B MOV 4CH,A MOV LO_DAT,4AH MOV ME_DAT,4BH MOV HI_DAT,4CH MOV BI_DAT,#0H RET温度传感器程序主程序M_TEMP: NOP LCALL INI ;温度传感器初始化 MOV A,#0CCH;跳过ROM LCALL WRITE ;调写子程序 MOV A,#

37、44H ;开始温度转换 LCALL WRITE ;调写子程序 LCALL DELAY_TEMP ;延时1.0s LCALL INI ;准备读温度前先复位 MOV A,#0CCH ;跳过ROM LCALL WRITE ;调写子程序; MOV A,#0BEH;读取暂存器和CRC字节 LCALL WRITE ;调温度写子程序;READ HI TO 49H ;将高字节数据存入49H LCALL READ MOV 48H,A ;READ LO TO 48H ; 将低字节数据存入48H LCALL READ MOV 49H,A4.3.5 LCD显示设计显示流程如下图所示:图4-6显示模块流程图BUSY 高

38、电平(BUSY =1) 表示OCMJ 忙于内部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示OCMJ 空闲,等待接收用户命令。发送命令到OCMJ可在BUSY =0 后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平REQ 信号(REQ =1)通知OCMJ 请求处理当前数据线上的命令或数据。OCMJ 模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数据,同时将应答线BUSY 变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其他工作,也可不断地查询应答线BUSY 是

39、否为低(BUSY =0?),如果BUSY =0,表明模块对用户的写操作已经执行完毕。可以再送下一个数据。如向模块发出一个完整的显示汉字的命令,包括坐标及汉字代码在内共需5 个字节,模块在接收到最后一个字节后才开始执行整个命令的内部操作,因此,最后一个字节的应答BUSY 高电平(BUSY =1)持续时间较长。通过命令调用OCMJ 系列液晶显示器的各种功能。1.显示国标汉字命令格式: F0 XX YY QQ WW该命令为5字节命令(最大执行时间为1.2 毫秒,Ts2=1.2mS),其中XX:为以汉字为单位的屏幕行坐标值,取值范围00H 到07H、02H 到09H、00H 到0BH、00H 到09H

40、、00H 到09H、00H 到0EHYY:为以汉字为单位的屏幕列坐标值,取值范围00H 到01H、00H到03H、00H到03H、00 到04H、00H到07H、00H 到07HQQ WW:坐标位置上要显示的GB 2312 汉字区码、位码2.显示8X8 ASCII字符命令格式:F1 XX YY AS该命令为4字节命令(最大执行时间为0.8 毫秒,Ts2=0.8mS),其中XX:为以ASCII码为单位的屏幕行坐标值,取值范围00H 到0FH、04H 到13H、00H到17H、00H 到13H、00H 到13H、00H 到1DHYY:为以ASCII码为单位的屏幕列坐标值,取值范围00H 到1FH、

41、00H 到3FH、00H 到3FH、00H到4FH、00H 到7FH、00H到7FHAS:坐标位置上要显示的ASCII 字符码3清屏命令格式:F4该命令为单字节命令(最大执行时间为11 毫秒,Ts2=11mS),其功能为将屏幕清空。4. 初始化程序ORG 000H ;程序首址LJMP 100H ;跳过中断区ORG 100HMOV SP,#60H ;设堆栈CLR REQ ;REQ=0SETB BUSY ;BUSY=15.写模块子程序(双线应答方式)-该程序使用REQ及BUSY 两条控制线的握手方式对模块进行写操作。SUB1: JB BUSY,SUB1 ;确信模块空闲(BUSY=0)MOV P1,

42、A ;向总线送数NOP ;等待数据总线稳定SETB REQ ;置模块REQ 端为高电平(REQ=1),向模块发请求命令HE3: JNB BUSY,HE3 ;等待模块响应(BUSY =1)CLR REQ ;撤消REQ请求信号,数据输入结束RET ;返回4.4软件抗干扰技术在软件设计时采用如下措施可以有效提高系统的抗干扰能力。增加系统信息管理模块。与硬件相配合,对系统信息进行保护。其中包括防止信息被破坏,出故障时保护信息,故障排除之后恢复信息等。提高软件自身的可靠性。通常要编制一个可靠运行的应用软件,应考虑采用以下几项措施。程序设计时,将程序分成若干个具有独立功能的子程序模块。各个程序模块可以单独使用,也可与其他程序模块共同使用。各程序模块之间可通过固定的通信区和一些指定的单片进行信息传递。每个程序模块都可单独进行调整和修改,不会影响其他程序模块。采用可测试性设计。软件抗干扰以其设计灵活、节省硬件资源、降低成本等优势越来越得到广泛采用。软件抗干扰技术主要有 “软件陷阱技术”和“软件看门狗技术。4.4.1软件陷阱技术由于系统干扰可能破坏程序指针一旦失控程序就会“乱飞”,可能进入非程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论