具有RS485通信功能的8路温度检测仪软件设计毕业设计论文1.doc

上传人:laozhun 文档编号:4135925 上传时间:2023-04-07 格式:DOC 页数:54 大小:1.16MB
返回 下载 相关 举报
具有RS485通信功能的8路温度检测仪软件设计毕业设计论文1.doc_第1页
第1页 / 共54页
具有RS485通信功能的8路温度检测仪软件设计毕业设计论文1.doc_第2页
第2页 / 共54页
具有RS485通信功能的8路温度检测仪软件设计毕业设计论文1.doc_第3页
第3页 / 共54页
具有RS485通信功能的8路温度检测仪软件设计毕业设计论文1.doc_第4页
第4页 / 共54页
具有RS485通信功能的8路温度检测仪软件设计毕业设计论文1.doc_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《具有RS485通信功能的8路温度检测仪软件设计毕业设计论文1.doc》由会员分享,可在线阅读,更多相关《具有RS485通信功能的8路温度检测仪软件设计毕业设计论文1.doc(54页珍藏版)》请在三一办公上搜索。

1、具有RS-485通信功能的8路温度检测仪软件设计摘 要温度是工业生产和自动控制中最常见的工艺参数之一,生产过程需要对温度进行检测和控制 。为了满足对温度采集和测量要求,实现对各个支路温度的检测,本系统就是采用了AT89S52为主控的8路温度检测的系统。该系统可以实现多个点的温度检测和数值显示并且具有RS-485通信功能。该系统包括的模块主要有温度的采集,单片机的控制,AD转换,温度值的显示,RS-485通信。它主要使用的是热敏电阻Pt100温度传感器实现温度检测,并通过AD转换对采集到的数值进行转换,随后将温度显示在液晶屏上,并对温度设置上下阈值来实现温度报警功能。论文首先简单介绍了该系统的基

2、本原理及整体结构,接着分硬件、软件两部分对整个系统进行阐述,其中软件部分详细描述。最后是系统的调试与分析,对系统的功能进行了验证。关键词:AT89S52, RS-485, AD转换, PT100温度传感器ABSTRACTTemperature is one of the most common parameters in industrial production and automatic control of technological, there is the need of the detection and control in the productive process. In

3、 order to meet the requirement of temperature acquisition and measurement to detect eight-channels temperature, so we will design a simply temperature detection system which focus on the AT89S52.This system can detect the temperature, display the values of number with RS-485 communication function.

4、This system includes the collection of temperature, the control of the single chip microcomputer, AD conversion, display the temperature value and RS-485 communication. It detect temperature and transfer the temperature which is mainly use a PT100 temperature sensor. Then display the temperature on

5、the Liquid Crystal Display. And set up the top and the bottom temperature value. If the temperature doesnt reach the range of the top and bottom ,the system will give an alarm. This paper first introduces the basic principle and the massive structure of the system. Then it is divided into two parts

6、to the whole system hard ware and software are described, the software part will give a detail description. Finally there is a need to debug and analyze the system to testify the system.KEY WORDS:AT89S52, RS-485 communication, AD conversion, Pt100 temperature sensor 目 录 前 言1第1章 绪论31.1基本原理31.1.1传感器部分

7、31.1.2 主控制部分41.1.3 AD转换模块41.1.3.1 ADC0809简介41.1.3.2 ADC0809原理51.1.4 485通信模块61.2系统方案61.2.1系统的整体结构61.2.2 软件介绍71.3 章节安排8第2章 硬件设计92.1 总体设计92.2 系统主要器件的介绍102.2.1 单片机AT89S52102.2.2 A/D转换芯片112.2.3 温度传感器122.2.4 显示LCD 1602122.2.5 MAX485芯片122.3 总体电路图13第3章 软件设计153.1 主程序的设计153.2 AD转换子程序设计173.3 LCD温度显示程序设计193.4 报

8、警子程序设计223.5 按键设置程序设计223.6 RS-485通信模块程序设计24第4章 调试与仿真264.1 软件仿真264.1.1 建立程序文件264.1.2 加载目标代码文件294.1.3 进行调试与仿真294.2 硬件调试314.3 产生的问题与分析33第5章 结论与展望345.1 结论345.2 展望34参考文献35附录 系统程序38前 言在人类的生产生活之中,温度扮演着极其重要的角色,温度对工业的发展有着及其重要的影响,因此传感器也有着飞速的发展,来适应这种对温度的检测要求。基于此,本设计就是一个对温度的循环检测系统,以满足生产生活对温度检测的需要。随着时代的进步和发展,单片机技

9、术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术,本文主要介绍了一个基于AT89S52单片机的测温系统,描述了利用温度传感器PT100测温系统的过程,对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,灵敏度高、体积小、功耗低等优点,适合于我们日常生活温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展1。PT100在-50600范围内具有其他任何温度传感器无可比拟的优势,包括高精度、稳定性好、抗干扰能力强等,正是基于此,PT100在各个行业中受到广泛应用。此系统设计了

10、一款基于PT100的多路温度巡检仪,可同时测量8路PT100信号,通过LCD1602 ,同时循环显示8路温度值。其中PT100是铂热电阻,它的阻值跟温度的变化成正比。PT100的阻值与温度变化关系为:当PT100温度为0时它的阻值为100欧姆,在100时它的阻值约为138.5欧姆。它的工业原理:当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的。由于PT100热电阻的温度与阻值变化关系,人们便利用它的这一特性,发明并生产了PT100 热电阻温度传感器。它是集温度湿度采集于一体的智能传感器。温度的采集范围可以在-200+200,湿度采集范围是0%100%2。因

11、此本设计中选择该铂热电阻进行温度的采集,达到精准且范围广的要求。本设计以AT89S52为核心部件,因为它与MCS-51 兼容,4K字节可编程FLASH 存储器,寿命可达1000写/擦循环,数据保留时间长达10年,全静态工作时的频率为0Hz-24MHz,三级程序存储器锁定,1288位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式。基于这些特性,该设计以此单片机为核心部件来处理控制温度的循环显示采集系统。以AT89S52为处理控制核心,利用PT100温度传感器来采集温度,经过AD转换将采集到的数值经过转换后进行温度值的显示,其中RS-4

12、85可以实现串口通信。根据该系统的要求,将要完成如下的任务:1、设计一个8通道的温度巡检仪程序。2、带RS-485传输接口用于传输检测数据。3、循环检测8路-50200的Pt100传感器温度信号。4、可以对每一路信号设置报警上限和下限。5、带显示器件,用于显示:各路测量信号和报警状态。6、带报警继电器触点输出。基于此,在软件的设计上将分为系统的初始化,温度的采集,RS-485通信传输,温度的显示,温度上限以及下限的报警等模块来组成。主要实现8路温度的巡检。 第1章 绪论 本章将会主要对温度显示,RS-485通信原理,PT100温度传感器等及其系统的总设计方案进行一个简单大致的介绍。1.1基本原

13、理 本系统由单片机、温度采集、按键、显示、报警、数据传输等部分组成。其中AT89S52单片机为系统核心,主要完成对温度数据的采集和处理,控制系统的工作,协调串行通信向上位机发送数据信息。本系统能实现对8路温度的检测和显示,可预设各路温度的上、下限值,设置定点和巡回检测方式及报警功能。测温的模拟电路是把当前PT100热电阻传感器的电阻值,经过A/D转换器把模拟电压转为数字信号后传给单片机AT89S52,单片机再根据处理换算把测量得的温度传感器的电阻值转换为温度值,并将数据送出到显示屏上进行显示。1.1.1传感器部分铂电阻的特点是精度高,稳定性好,性能可靠。铂在氧化性气氛中,甚至在高温下的物理、化

14、学性质都非常稳定。因此铂被公认为是目前制造热电阻材料。铂电阻主要为标准电阻温度计使用,也常被用在工业测量中。铂电阻的阻值温度之间的关系 :在0850范围内可用下式表示, (11)在-2000范围内则用下式表示, (12)式中 Rt-温度为t 时的铂电阻的阻值; R0-温度为0 时的铂电阻的阻值; A、B、C 为常数, /; /; /; 对满足上述关系的热电阻,其温度系数约为3.910-3。PT100是铂热电阻,它的阻值跟温度的变化成正比。PT100的阻值与温度变化关系为:当PT100温度为0时它的阻值为100欧姆,在100时它的阻值约为138.5欧姆。当PT100在0摄氏度的时候他的阻值为10

15、0欧姆,它的阻值会随着温度上升而成匀速增长的。 1.1.2 主控制部分设计采用Pt100模拟温度传感器采集数据,单片机通电后,Pt100由于温度变化,引起电阻发生变化,进而桥式测温电路的电压值发生变化,经过差分放大、AD转换后送入单片机,单片机始终等待AD转换值的到来。此方案采用AT89S52型号的八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便,高性能。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,

16、2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。1.1.3 AD转换模块1.1.3.1 ADC0809简介ADC0809是 8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。 ADC0809是CMOS单

17、片型逐次逼近式A/D转换器,内部结构由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。故可实现该系统的8路温度的转换要求。1.1.3.2 ADC0809原理首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。转换数据

18、的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。(1)定时传送方式对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。(2)查询方式A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接

19、着进行数据传送。(3)中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接收。1.1.4 485通信模块 RS485由于传输速率高, 传输距离远, 故本系统采用RS485 标准。但由于微机标准配置通常只提供RS232C串行端口, 因此需要使用RS232C / RS485通信接口进行转接。通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号。RS485采用差分传输方式, 可以有效地提高共模

20、抗干扰能力, 最高传输速率可达1200 Kb /s。RS485的特性包括:(1)RS-485的电气特性:逻辑“1”以两线间的电压差为+(26)V表示;逻辑“0”以两线间的电压差为-(26)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片, 且该电平与TTL电平兼容,可方便与TTL 电路连接。(2)RS-485的数据最高传输速率为10Mbps 。(3)RS-485接口强,即抗噪声干扰性好。(4)RS-485接口的最大传输距离标准值为4000英尺,实际上可达 3000米(理论上的数据,在实际操作中,极限距离仅达1200米左右)。1.2系统方案1.2.1系统的整体结构该设计需要

21、完成对8路温度的检测。通过一些硬件及其配套的软件来实现RS-485通信功能的8路温度检测功能。其经过PT100对温度采集,ADC0809进行AD转换,LCD温度数据的显示,传输等过程。其系统的整体结构框图如下图1所示 。图11 系统原理模块1.2.2 软件介绍(1)Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。

22、运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选。Keil C5的优点如下:a. Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。b.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 (2) Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯

23、一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、AVR、ARM、8086、PIC10/12/16/18/24/30/DsPIC33和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。功能是:1原理布图2PCB自动或人工布线 3SPICE电路仿真。1.2.3 系统测试为了验证系统的可靠性,在系统设计完毕后就需要对各功能模块进行测试。首先在Keil上面对编写的程序进行编译检测错误,根据Proteus的仿真原理图进行软件的仿真。其次进行硬

24、件测试,上电前仔细检查各元器件是否正确焊接在电路板上,硬件测试完毕后,将生成的HEX文件载入到单片机中;最后进行系统总体调试,验证系统功能。1.3 章节安排本论文共分为五章。第1章是绪论,主要阐述了设计中的一些基本原理和系统总体方案设计。第2章是硬件设计,主要介绍简单的原理图,及其硬件功能模块的实现。第3章是软件设计,详细阐述各个模块软件设计,及其各个子程序的流程介绍,实现方式等。第4章是调试与分析,通过测试程序,验证各模块的功能,并对调试过程中产生的问题进行分析与总结。第5章是系统设计的结论与展望,在这一章中,结论对系统的设计结果作了简单的总结,展望则根据系统中存在的不足提出了一些相应的改进

25、的方法。第2章 硬件设计在设计过程中,将系统功能分为硬件和软件两部分来分别实现。本章详细介绍了系统设计的硬件部分在电路实现的过程中的硬件原理图及其选择的主要器件。2.1 总体设计根据系统的功能要求,硬件方面需要完成如下设计:以单片机AT89S52为核心部件,Pt100温度的采集, 基于ADC0809的数模转换,数据通信,控制报警, 按键设计,温度显示等,其整体设计框图如图2-1所示。 图2-1 硬件总体设计框图其中,各个模块的功能如表2-1所示。 表21 各模块功能部件功能测量PT100采集温度值A/D转换 ADC0809对采样的值进行数模转换数据通信 RS-485使得该系统具有通信功能控制报

26、警 蜂鸣器在温度低于上限或者高于上限时驱动报警按键模块通过按键设置上下限进行确认显示模块采用液晶显示屏对数值进行显示单片机控制整个系统的核心控制处系统性能特点及工作原理: 本系统由单片机、温度采集、按键、显示、报警、数据传输等部分组成。Pt100由于温度变化,引起电阻发生变化,进而桥式测温电路的电压值发生变化,经过差分放大、AD转换后送入单片机,之后通过液晶显示温度数值。 其中AT89S52单片机为系统核心,主要完成对温度数据的采集和处理,控制系统的工作,协调RS485串行通信 。本系统能实现对8路温度的检测和显示,可预设各路温度的上、下限值,设置定点或巡回检测方式及报警功能。2.2 系统主要

27、器件的介绍2.2.1 单片机AT89S52AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。它具有如下的特性:(1)与MCS-51单片机产品兼容;(2)8K字节在系统可编程Flash存储器;(3)1000次擦写周期;(4)全静态操作:0Hz-33MHz;(5)

28、三级加密程序存储器;(6)32个可编程I/O口线;(7)三个16位定时器/计数器;(8)8个中断源;(9)全双工UART串行通道;(10)低功耗空闲和掉电模式;(11)掉电后中断可唤醒;(12)看门狗定时器;(13)双数据指针;(14)掉电标识符。2.2.2 A/D转换芯片ADC0809是8位逐次逼近式A/D 模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0809具有以下的主要特性:(1)8路输入通道,8位A/D转换器,即分辨率为8位;(2)具有转换起停控制端;(3)转换时间为100s(时钟为640kHz时),13

29、0s(时钟为500kHz时);(4)单个+5V电源供电;(5)模拟输入电压范围0+5V,不需零点和满刻度校准;(6)工作温度范围为-40+85摄氏度;(7)低功耗,约15mW。2.2.3 温度传感器PT100是铂热电阻,它的阻值会随着温度的变化而改变。PT后的100即表示它在0时阻值为100欧姆,在100时它的阻值约为138.5欧姆。它的工业原理:当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的但他们之间的关系并不是简单的正比的关系,而更应该趋近于一条抛物线。Pt100由于温度变化,引起电阻发生变化,进而桥式测温电路的电压值发生变化,经过差分放大 。2.2

30、.4 显示LCD 16021602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它的特性有:(1)3.3V或5V工作电压,对比度可调;(2)内含复位电路;(3)提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;(4)有80字节显示数据存储器DDRAM;(5)内建有192个5X7点阵的字型的字符发生器CGROM;(6)8个可由用户自定义的5X7的字符发生器CGRAM。2.2.5 MAX485芯片 MAX485接口芯片是Maxim公司的一种RS485芯片。采用单一电源+5 V工作,额定电流为300 A,采用半双工通讯方式。它完成将TTL电平转

31、换为RS485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。MAX485的驱动器摆率不受限制, 可以实现最高2.5Mbps的传输速率。驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态。接收器输入具有失效保护特性,当输入开路时,可以确保逻辑高电平输出。具有较高的抗干扰性能。 2.3 总体电路图 该设计以AT89S52为核心构造,对总体的功能进行设计。上述对系统的器件进行了介绍,根据系统的总体框图,及其各模块的作用。以系统的性能工作原理为核心,得到的主控电路图如图2-2所示。图2-2 系统总体电路图 其中包括:(1)PT100测温及其放大电路

32、(2)AD 转换连接电路(3)单片机AT89S52的复位电路(4) 单片机AT89S52的时钟电路(5)1602液晶显示电路(6)报警及其按键上下限设置电路 第3章 软件设计在硬件设计的基础上,需要对它进行相应的编写应用程序。本系统的软件设计采用的是C语言进行编程,C是一种很具有结构化的语言。不仅具有丰富的运算符和数据类型,以便于实现各类复杂的数据结构,它还可以直接访问内存地址,进行(bit)位操作,尤其能够胜任开发操作系统的工作。由于C语言实现了对硬件的编程操作,因此C语言既有较高语言的功能,也有低级语言的优势。C语言的维护也比汇编语言维护起来方便快捷,便于模块方式组织程序,方便调试和维护,

33、语言灵活。在C编程的基础上,根据硬件电路原理图,本系统的软件程序主要包括了:主程序,初始化,LCD1602的温度显示,报警函数子程序设计 ,数据的AD转换,485通信设计。3.1 主程序的设计主程序就是监控程序,主程序首先对各个IO口进行初始化,然后用Pt100温度传感器对温度进行检测。我们可以定义温度的最高上限和下限的两个阈值,并确认。之后温度传感器采集到的温度经过AD转换,由单片机处理过, 将采集到的温度值显示在液晶显示屏上。同时,如果采集到的温度超过了阈值范围,都将中断进入报警系统,对采集到的温度产生报警信号;如果采集到的温度在介于阈值范围之间,则正常显示温度,并且循环显示8路温度,直到

34、将8路温度全部显示完毕。根据这种流程思想,就可以确定一个主要的程序流程方向,来实现本系统的主流程图如3-1所示。图3-1 函数主流程图3.2 AD转换子程序设计 该设计采用的是ADC0809,它是一个8路模拟输入的8逐次逼近式ADC 。它内部还有一个8位通道选择开关,其作用就是可以根据地址译码的信号来选择8路模拟输入,8路模拟信号分时共用ADC转换器进行转换。其引脚功能如下:IN0IN7: 8位模拟量输入端ADD A, ADD B, ADD C: 模拟量输入通道地址选择线,其8位编码分别对应IN0IN7,通道选择表如下表3-1所示ALE: 地址锁存端START: ADC转换启动信号,正脉冲有效

35、,该信号要求保持在200ns以上。其上升沿将内部逐次逼近寄存器清0,下降沿启动ADC转换 EOC: 转换结束信号,可作为中断请求信号,或者供CPU查询 CLK: 时钟输入端,要求频率范围在10kHz1.2MHz OE: 允许输入信号 VREF(+),VREF(-): 基准参考电压的正,负值 OUT10UT8:8路数字量输出端 表3-1 通道选择表CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7 ADC0809的信号设置为START=0,START=1, START=0,这样就可以产生一个启动转换的正脉冲,进行AD转换的时候,查询E

36、OC的标志信号来检测A/D转换是否完毕,当EOC是低电平是时候,就指示的是操作正在进行当中,直到转换完成后EOC就再次变成了高电平。当微处理器收到变成高电平的EOC的时候,便立刻送出OE信号,读取转换结果。START产生一个启动脉冲,将采集到的温度数值进行A/D转换,EOC为低电平对其进行转换,将转换后的采集的温度值经过OE送出,读取转换后的温度再用显示屏显示出来。将采集到的信号,经过A/D转换并由单片机系统读取。ADC0809应用说明 (1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连(2)初始化时,使ST和OE信号全为低电平(3)送要转换的哪一通道的地址到A,B,C

37、端口上(4)在ST端给出一个至少有100ns宽的正脉冲信号(5)是否转换完毕,我们根据EOC信号来判断(6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机在该设计中,滤波程序是抑制抗干扰的一种有效的措施,该系统程序中套用了滤波程序,将经过AD转换后的数值进行处理。对每路温度的采集分5次采集,求出这5个数据中的最大值最小值,MAXMIN求出差值,求出5个采集点的数学期望,将此进行比较,若差值大于期望值,则会认为采集到的数据点不合要求,舍弃该采集值,重新进行采集。增加了该滤波程序,可以舍去偶然因素引起的波动和采集不稳定引起的误差,可以抑制信号的干扰成分,消除随机误差,使得温度的

38、采集更加的稳定。主要的流程图如图3-2所示。 图3-2 A/D转换的流程图 3.3 LCD温度显示程序设计 在温度的显示上,采用LCD1602.可以显示两行字符,每行16个,显示容量为162。通过并行接口,可与单片机的I/O口直接相连。1602的引脚和功能如下:VSS:电源地VDD: 电源正极,接+5V电源VL: 液晶显示偏压信号RS: 数据/指令寄存器选择端。高电平时选择数据寄存器,低电平时选择指令寄存器。R/W: 读/写选择端。高电平时为读操作,低电平时为写操作E(6): 使能信号,下降沿触发D0-D7: I/O口数据传输线BLA: 背光源正极BLK:背光源负极 当RS及R/W的引脚信号为

39、1且E的引脚由1变成了0时,读取数据:当RS的引脚信号为1时,R/W引脚信号为0,且E的引脚由1变成了0,存入数据。故可以根据设置RS及R/W的高低电平来控制数据的读取,存入。它具体的指令操作包括清屏,回车,输入模式控制,显示开关控制,以为控制,显示模式控制如下3-2表所示。 表3-2 指令系统指令名称控制信号指令代码功能RSR/WD7 D6 D5 D4 D3 D2 D1 D0清屏000 0 0 0 0 0 0 0显示清屏:(1)数据指针清0(2)所有显示清除回车000 0 0 0 0 0 1 0显示回车,数据指针清0输入模式控制000 0 0 0 0 1 N S设置光标,显示画面移动方向显示

40、开关控制000 0 0 0 D/L D C B设置显示,光标,闪烁开关移位控制000 0 0 1 S/C R/L 使光标或显示画面移位显示模式控制000 0 1 D/L N F 设置数据总线位数,点阵方式GGRAM地址设置000 1 ACGDDRAM地址指针设置001 ADD忙状态检查01BF AC读数据11数据从RAM中读取数据写数据10数据对RAM进行写数据数据指针设置0080H+地址码(027H,40H47H)设置数据地址指针 在该系统之中,先对LCD进行初始化设置,将AD转换后的数值向LCD发送,LCD读取数据,然后写入函数,最后将采集到的温度值显示在LCD1602的屏幕上。其流程图如

41、下图3-3所示。 图3-3 LCD显示流程图3.4 报警子程序设计该系统具有设定上下限报警功能,若采集到的温度值超过了设置的上下限温度值,则会驱动蜂鸣器产生报警信号LED也会闪烁报警,而如果在此范围之内,则LED正常发亮,说明温度显示正常。如下3-4所示。 用if语句控制,蜂鸣器在低电平有效,故采集到温度不在范围之内时,将引脚置低电平,P02置0,三极管将会产生一个压差,电路导通后,蜂鸣器就会报警,红色LED也会闪烁。图3-4 报警子程序流程图3.5 按键设置程序设计从电路图中可以看出,该系统中设计了3个按键,分别控制着系统的“通道+”,“通道-”,还有“确认”这三个功能,用来选择显示的通道。

42、通常,按键的闭合与否通常用高电平与低电平来进行检测的。当键闭合时,该键为低电平;当键断开时,该键为高电平。 然而,按键的闭合与断开之间存在着机械弹性,在机械弹性的作用下,按键在闭合断开之间会出现抖动的过程。在抖动期间,检测按键的通/断作用,就很可能导致错误的出现,按键的一次按下或者释放都将被误认为是很多次的操作,因此,在按键的处理之中,应该设置软件上的去抖动方法。在软件中去抖动就是利用延时子程序,再确认按键是否仍然闭合,若仍然闭合,则确认为按键按下,消除了这个抖动的影响,流程图如下图3-5所示。图3-5 按键设置处理程序流程图3.6 RS-485通信模块程序设计上位机和下位机之间的串行通信采用

43、RS -485标准接口, PC端接一个RS232 的转换电路,就实现RS485 总线控制。 MAX485的引脚功能如下:RO: 接收器的输入端DI: 驱动器的输入端RE: 接收使能端DE: 发送使能端A端:接收的差分信号端B端:发送的差分信号端GND: 接地端 在总的系统电路图中可以看出,485与PC之间经过了232的转换,从而实现通信功能,RE与DE是共用了一个引脚,因为485是一个半双工的工作状态,如图3-6所示,可以满足数据传输的需求。当RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态。当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为

44、0,其主要的流程图如图3-7所示。 图3-6 半双工工作方式 图3-7 485通信流程图 第4章 调试与仿真在完成了硬件设计跟软件设计的基础上,就将对产生的程序进行调试,本系统采用的调试是仿真调试,基于Keil和Proteus的联调过程中,对系统进行调试仿真。Keil集成开发环境是众多单片机应用开发优秀软件之一,它集编辑,编译,仿真于一体,支持汇编语言,PLM语言,C语言的程序设计,容易操作。4.1 软件仿真4.1.1 建立程序文件(1)打开Keil uVision4,新建Keil项目,选择AT89C51单片机作为CPU; 建立一个文件夹作为工作文件夹,进入集成开发环境中,选择菜单“ProjectNew uVision Project”,在弹出的“New uVision Project”对话框中,将“保存在”下拉列表中选择自己的工作文件夹,在“文件名”中键入文件名,保存,如图4-1。关闭对话框,将会弹出“Select Device for Target Target 1”对话

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号