具有RS485通信功能的8路温度检测仪软件设计毕业设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
具有RS485通信功能的8路温度检测仪软件设计毕业设计
摘要
温度是工业生产和自动控制中最常见的工艺参数之一,生产过程需要对温度进行检测和控制。
为了满足对温度采集和测量要求,实现对各个支路温度的检测,本系统就是采用了AT89S52为主控的8路温度检测的系统。
该系统可以实现多个点的温度检测和数值显示并且具有RS-485通信功能。
该系统包括的模块主要有温度的采集,单片机的控制,AD转换,温度值的显示,RS-485通信。
它主要使用的是热敏电阻Pt100温度传感器实现温度检测,并通过AD转换对采集到的数值进行转换,随后将温度显示在液晶屏上,并对温度设置上下阈值来实现温度报警功能。
论文首先简单介绍了该系统的基本原理及整体结构,接着分硬件、软件两部分对整个系统进行阐述,其中软件部分详细描述。
最后是系统的调试与分析,对系统的功能进行了验证。
关键词:AT89S52, RS-485,AD转换, PT100温度传感器
ABSTRACT
Temperature 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 order to meet the requirement of temperature acquisition and measurement to detect eight-channel`s 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. 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 the Liquid Crystal Display. And set up the top and the bottom temperature value. If the temperature doesn`t 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 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章绪论 (3)
1.1基本原理 (3)
1.1.1传感器部分 (3)
1.1.2 主控制部分 (4)
1.1.3 AD转换模块 (4)
1.1.3.1 ADC0809简介 (4)
1.1.3.2 ADC0809原理 (5)
1.1.4 485通信模块 (6)
1.2系统方案 (6)
1.2.1系统的整体结构 (6)
1.2.2 软件介绍 (7)
1.3 章节安排 (8)
第2章硬件设计 (9)
2.1 总体设计 (9)
2.2 系统主要器件的介绍 (10)
2.2.1 单片机AT89S52 (10)
2.2.2 A/D转换芯片 (11)
2.2.3 温度传感器 (12)
2.2.4 显示LCD 1602 (12)
2.2.5 MAX485芯片 (12)
2.3 总体电路图 (13)
第3章软件设计 (15)
3.1 主程序的设计 (15)
3.2 AD转换子程序设计 (17)
3.3 LCD温度显示程序设计 (19)
3.4 报警子程序设计 (22)
3.5 按键设置程序设计 (22)
3.6 RS-485通信模块程序设计 (24)
第4章调试与仿真 (26)
4.1 软件仿真 (26)
4.1.1 建立程序文件 (26)
4.1.2 加载目标代码文件 (29)
4.1.3 进行调试与仿真 (29)
4.2 硬件调试 (31)
4.3 产生的问题与分析 (33)
第5章结论与展望 (34)
5.1 结论 (34)
5.2 展望 (34)
参考文献 (35)
附录系统程序 (38)
前言
在人类的生产生活之中,温度扮演着极其重要的角色,温度对工业的发展有着及其重要的影响,因此传感器也有着飞速的发展,来适应这种对温度的检测要求。
基于此,本设计就是一个对温度的循环检测系统,以满足生产生活对温度检测的需要。
随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术,本文主要介绍了一个基于AT89S52单片机的测温系统,描述了利用温度传感器PT100测温系统的过程,对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,灵敏度高、体积小、功耗低等优点,适合于我们日常生活温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展[1]。
PT100在-50~600℃范围内具有其他任何温度传感器无可比拟的优势,包括高精度、稳定性好、抗干扰能力强等,正是基于此,PT100在各个行业中受到广泛应用。
此系统设计了一款基于PT100的多路温度巡检仪,可同时测量8路PT100信号,通过LCD1602 ,同时循环显示8路温度值。
其中PT100是铂热电阻,它的阻值跟温度的变化成正比。
PT100的阻值与温度变化关系为:当PT100温度为0℃时它的阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。
它的工业原理:当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的。
由于PT100热电阻的温度与阻值变化关系,人们便利用它的这一特性,发明并生产了PT100 热电阻温度传感器。
它是集温度湿度采集于一体的智能传感器。
温度的采集范围可以在-200℃~+200℃,湿度采集范围是0%~100%[2]。
因此本设计中选择该铂热电阻进行温度的采集,达到精准且范围广的要求。
本设计以AT89S52为核心部件,因为它与MCS-51 兼容,4K字节可编程FLASH 存储器,寿命可达1000写/擦循环,数据保留时间长达10年,全静态工作时的频率为0Hz-24MHz,三级程序存储器锁定,128×8位内部RAM,32可编程I/O
线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式。
基于这些特性,该设计以此单片机为核心部件来处理控制温度的循环显示采集系统。
以AT89S52为处理控制核心,利用PT100温度传感器来采集温度,经过AD转换将采集到的数值经过转换后进行温度值的显示,其中RS-485可以实现串口通信。
根据该系统的要求,将要完成如下的任务:
1、设计一个8通道的温度巡检仪程序。
2、带RS-485传输接口用于传输检测数据。
3、循环检测8路-50~200℃的Pt100传感器温度信号。
4、可以对每一路信号设置报警上限和下限。
5、带显示器件,用于显示:各路测量信号和报警状态。
6、带报警继电器触点输出。
基于此,在软件的设计上将分为系统的初始化,温度的采集,RS-485通信传输,温度的显示,温度上限以及下限的报警等模块来组成。
主要实现8路温度的巡检。
第1章 绪论
本章将会主要对温度显示,RS-485通信原理,PT100温度传感器等及其系统的总设计方案进行一个简单大致的介绍。
1.1基本原理
本系统由单片机、温度采集、按键、显示、报警、数据传输等部分组成。
其中AT89S52单片机为系统核心,主要完成对温度数据的采集和处理,控制系统的工作,协调串行通信向上位机发送数据信息。
本系统能实现对8路温度的检测和显示,可预设各路温度的上、下限值,设置定点和巡回检测方式及报警功能。
测温的模拟电路是把当前PT100热电阻传感器的电阻值,经过A/D 转换器把模拟电压转为数字信号后传给单片机AT89S52,单片机再根据处理换算把测量得的温度传感器的电阻值转换为温度值,并将数据送出到显示屏上进行显示。
1.1.1传感器部分
铂电阻的特点是精度高,稳定性好,性能可靠。
铂在氧化性气氛中,甚至在高温下的物理、化学性质都非常稳定。
因此铂被公认为是目前制造热电阻材料。
铂电阻主要为标准电阻温度计使用,也常被用在工业测量中。
铂电阻的阻值温度之间的关系 :
在0~850℃范围内可用下式表示,
20(1)t t t R R A B =++ (1—1)
在-200~0℃范围内则用下式表示,
230[1(100)]t t t R R A B C t =+++- (1—
2)
式中 R t ---温度为t ℃ 时的铂电阻的阻值; R 0---温度为0℃ 时的铂电阻的阻值;
A 、
B 、
C 为常数,
-3
A⨯/℃;
=3.9684710
-7
B= 5.84710
-⨯/℃;
-12
-⨯/℃;
C= 4.2210
对满足上述关系的热电阻,其温度系数约为3.9×10-3℃。
PT100是铂热电阻,它的阻值跟温度的变化成正比。
PT100的阻值与温度变化关系为:当PT100温度为0℃时它的阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。
当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的。
1.1.2 主控制部分
设计采用Pt100模拟温度传感器采集数据,单片机通电后,Pt100由于温度变化,引起电阻发生变化,进而桥式测温电路的电压值发生变化,经过差分放大、A/D转换后送入单片机,单片机始终等待A/D转换值的到来。
此方案采用AT89S52型号的八位单片机实现。
单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。
而且体积小,硬件实现简单,安装方便,高性能。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,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单片型逐次逼近式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输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。
数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。
为此可采用下述三种方式。
(1)定时传送方式
对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。
例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。
可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式
A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。
因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。
(3)中断方式
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。
不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接收。
1.1.4 485通信模块
RS485由于传输速率高, 传输距离远, 故本系统采用RS485 标准。
但由于微机标准配置通常只提供RS232C串行端口, 因此需要使用RS232C / RS485通信接口进行转接。
通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号。
RS485采用差分传输方式, 可以有效地提高共模抗干扰能力, 最高传输速率可达1200 Kb /s。
RS485的特性包括:
(1)RS-485的电气特性:逻辑“1”以两线间的电压差为+(2—6)V表示;逻辑“0”以两线间的电压差为-(2—6)V表示。
接口信号电平比RS-232-C 降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接。
(2)RS-485的数据最高传输速率为10Mbps 。
(3)RS-485接口强,即抗噪声干扰性好。
(4)RS-485接口的最大传输距离标准值为4000英尺,实际上可达 3000米(理论上的数据,在实际操作中,极限距离仅达1200米左右)。
1.2系统方案
1.2.1系统的整体结构
该设计需要完成对8路温度的检测。
通过一些硬件及其配套的软件来实现RS-485通信功能的8路温度检测功能。
其经过PT100对温度采集,ADC0809进行AD转换,LCD温度数据的显示,传输等过程。
其系统的整体结构框图如下图1所示。
1.2.2 软件介绍
(1)Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
如果你使用C语言编程,那么Keil几乎就是你的不二之选。
Keil C5的优点如下:
a. Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,
容易理解。
在开发大型软件时更能体现高级语言的优势。
b.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
(2) Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、AVR、ARM、8086、PIC10/12/16/18/24/30/DsPIC33和MSP430等,2010年又增加了Cortex和DSP
系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil 和MPLAB等多种编译器。
功能是:1.原理布图2.PCB自动或人工布线 3.SPICE 电路仿真。
1.2.3 系统测试
为了验证系统的可靠性,在系统设计完毕后就需要对各功能模块进行测试。
首先在Keil上面对编写的程序进行编译检测错误,根据Proteus的仿真原理图进行软件的仿真。
其次进行硬件测试,上电前仔细检查各元器件是否正确焊接在电路板上,硬件测试完毕后,将生成的HEX文件载入到单片机中;最后进行系统总体调试,验证系统功能。
1.3 章节安排
本论文共分为五章。
第1章是绪论,主要阐述了设计中的一些基本原理和系统总体方案设计。
第2章是硬件设计,主要介绍简单的原理图,及其硬件功能模块的实现。
第3章是软件设计,详细阐述各个模块软件设计,及其各个子程序的流程介绍,实现方式等。
第4章是调试与分析,通过测试程序,验证各模块的功能,并对调试过程中产生的问题进行分析与总结。
第5章是系统设计的结论与展望,在这一章中,结论对系统的设计结果作了简单的总结,展望则根据系统中存在的不足提出了一些相应的改进的方法。
第2章硬件设计
在设计过程中,将系统功能分为硬件和软件两部分来分别实现。
本章详细介绍了系统设计的硬件部分在电路实现的过程中的硬件原理图及其选择的主要器件。
2.1 总体设计
根据系统的功能要求,硬件方面需要完成如下设计:以单片机AT89S52为核心部件,Pt100温度的采集, 基于ADC0809的数模转换,数据通信,控制报警,按键设计,温度显示等,其整体设计框图如图2-1所示。
图2-1 硬件总体设计框图
其中,各个模块的功能如表2-1所示。
表2—1 各模块功能
部件功能
测量PT100 采集温度值
A/D转换ADC0809 对采样的值进行数模转换数据通信RS-485 使得该系统具有通信功能
控制报警蜂鸣器在温度低于上限或者高于上限时
驱动报警
按键模块通过按键设置上下限进行确认
显示模块采用液晶显示屏对数值进行显示
单片机控制整个系统的核心控制处
系统性能特点及工作原理:
本系统由单片机、温度采集、按键、显示、报警、数据传输等部分组成。
Pt100由于温度变化,引起电阻发生变化,进而桥式测温电路的电压值发生变化,经过差分放大、A/D转换后送入单片机,之后通过液晶显示温度数值。
其中AT89S52单片机为系统核心,主要完成对温度数据的采集和处理,控制系统的工作,协调RS485串行通信。
本系统能实现对8路温度的检测和显示,可预设各路温度的上、下限值,设置定点或巡回检测方式及报警功能。
2.2 系统主要器件的介绍
2.2.1 单片机AT89S52
AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
它具有如下的特性:
(1)与MCS-51单片机产品兼容;
(2)8K字节在系统可编程Flash存储器;
(3)1000次擦写周期;
(4)全静态操作:0Hz-33MHz;
(5)三级加密程序存储器;
(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)转换时间为100μs(时钟为640kHz时),130μs(时钟为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.4 显示LCD 1602
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它的特性有:
(1)3.3V或5V工作电压,对比度可调;
(2)内含复位电路;
(3)提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;
(4)有80字节显示数据存储器DDRAM;
(5)内建有192个5X7点阵的字型的字符发生器CGROM;
(6)8个可由用户自定义的5X7的字符发生器CGRAM。
2.2.5 MAX485芯片
MAX485接口芯片是Maxim公司的一种RS-485芯片。
采用单一电源+5 V工作,额定电流为300 μA,采用半双工通讯方式。
它完成将TTL电平转换为RS -485电平的功能。
MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。
MAX485的驱动器摆率不受限制, 可以实现最高2.5Mbps的传输速率。
驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态。
接收器输入具有失效保护特性,当输入开路时,可以确保逻辑高电平输出。
具有较高的抗干扰性能。
2.3 总体电路图
该设计以AT89S52为核心构造,对总体的功能进行设计。
上述对系统的器件进行了介绍,根据系统的总体框图,及其各模块的作用。
以系统的性能工作原理为核心,得到的主控电路图如图2-2所示。
IN1
图2-2 系统总体电路图
其中包括:(1)PT100测温及其放大电路
(2)AD 转换连接电路
(3)单片机AT89S52的复位电路
(4)单片机AT89S52的时钟电路
(5)1602液晶显示电路
(6)报警及其按键上下限设置电路
第3章软件设计
在硬件设计的基础上,需要对它进行相应的编写应用程序。
本系统的软件设计采用的是C语言进行编程,C是一种很具有结构化的语言。
不仅具有丰富的运算符和数据类型,以便于实现各类复杂的数据结构,它还可以直接访问内存地址,进行(bit)位操作,尤其能够胜任开发操作系统的工作。
由于C语言实现了对硬件的编程操作,因此C语言既有较高语言的功能,也有低级语言的优势。
C语言的维护也比汇编语言维护起来方便快捷,便于模块方式组织程序,方便调试和维护,语言灵活。
在C编程的基础上,根据硬件电路原理图,本系统的软件程序主要包括了:主程序,初始化,LCD1602的温度显示,报警函数子程序设计,数据的AD转换,485通信设计。
3.1 主程序的设计
主程序就是监控程序,主程序首先对各个IO口进行初始化,然后用Pt100温度传感器对温度进行检测。
我们可以定义温度的最高上限和下限的两个阈值,并确认。
之后温度传感器采集到的温度经过AD转换,由单片机处理过,将采集到的温度值显示在液晶显示屏上。
同时,如果采集到的温度超过了阈值范围,都将中断进入报警系统,对采集到的温度产生报警信号;如果采集到的温度在介于阈值范围之间,则正常显示温度,并且循环显示8路温度,直到将8路温度全部显示完毕。
根据这种流程思想,就可以确定一个主要的程序流程方向,来实现本系统的主流程图如3-1所示。
N
图3-1 函数主流程图
3.2 AD转换子程序设计
该设计采用的是ADC0809,它是一个8路模拟输入的8逐次逼近式ADC 。
它内部还有一个8位通道选择开关,其作用就是可以根据地址译码的信号来选择8路模拟输入,8路模拟信号分时共用ADC转换器进行转换。
其引脚功能如下:
IN0—IN7: 8位模拟量输入端
ADD A, ADD B, ADD C: 模拟量输入通道地址选择线,其8位编码分别对应
IN0—IN7,通道选择表如下表3-1所示
ALE: 地址锁存端
START: ADC转换启动信号,正脉冲有效,该信号要求保持在200ns以上。
其上升沿将内部逐次逼近寄存器清0,下降沿启动ADC转换
EOC: 转换结束信号,可作为中断请求信号,或者供CPU查询
CLK: 时钟输入端,要求频率范围在10kHz—1.2MHz
OE: 允许输入信号
VREF(+),VREF(-): 基准参考电压的正,负值
OUT1—0UT8:8路数字量输出端
表3-1 通道选择表
C B A 选择的通道
00 0 IN0 00 1 IN1
0 1 0 IN2
0 1 1 IN3 10 0 IN4 10 1 IN5
1 1 0 IN6
1 1 1 IN7
ADC0809的信号设置为START=0,START=1, START=0,这样就可以产生一个启动转换的正脉冲,进行AD转换的时候,查询EOC的标志信号来检测A/D转换是否完毕,当EOC是低电平是时候,就指示的是操作正在进行当中,直到转换完成后EOC就再次变成了高电平。
当微处理器收到变成高电平的EOC的时候,便立刻送出OE信号,读取转换结果。
START产生一个启动脉冲,将采集到的温度数值进行A/D转换,EOC为低电平对其进行转换,将转换后的采集的温度值经过OE送出,读取转换后的温度再用显示屏显示出来。
将采集到的信号,经过A/D转换并由单片机系统读取。
ADC0809应用说明
(1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连
(2)初始化时,使ST和OE信号全为低电平
(3)送要转换的哪一通道的地址到A,B,C端口上
(4)在ST端给出一个至少有100ns宽的正脉冲信号
(5)是否转换完毕,我们根据EOC信号来判断
(6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机在该设计中,滤波程序是抑制抗干扰的一种有效的措施,该系统程序中套用了滤波程序,将经过AD转换后的数值进行处理。
对每路温度的采集分5次采集,求出这5个数据中的最大值最小值,MAX—MIN求出差值,求出5个采集点的数学期望,将此进行比较,若差值大于期望值,则会认为采集到的数据点不合要求,舍弃该采集值,重新进行采集。
增加了该滤波程序,可以舍去偶然因素引起的波动和采集不稳定引起的误差,可以抑制信号的干扰成分,消除随机误差,使得温度的采集更加的稳定。
主要的流程图如图3-2所示。
图3-2 A/D转换的流程图
3.3 LCD温度显示程序设计
在温度的显示上,采用LCD1602.可以显示两行字符,每行16个,显示容量为16 2。
通过并行接口,可与单片机的I/O口直接相连。
1602的引脚和功能如下:
V SS:电源地
VDD: 电源正极,接+5V电源
VL: 液晶显示偏压信号
RS: 数据/指令寄存器选择端。
高电平时选择数据寄存器,低电平时选择指令寄存器。
R/W: 读/写选择端。
高电平时为读操作,低电平时为写操作
E(6): 使能信号,下降沿触发
D0-D7: I/O口数据传输线
BLA: 背光源正极
BLK:背光源负极
当RS及R/W的引脚信号为1且E的引脚由1变成了0时,读取数据:当RS 的引脚信号为1时,R/W引脚信号为0,且E的引脚由1变成了0,存入数据。
故可以根据设置RS及R/W的高低电平来控制数据的读取,存入。
它具体的指令操作包括清屏,回车,输入模式控制,显示开关控制,以为控制,显示模式控制如下3-2表所示。
表3-2 指令系统。