基于单片机的多功能参数检测系统设计与实现

上传人:l**** 文档编号:66073920 上传时间:2022-03-26 格式:DOC 页数:51 大小:498KB
收藏 版权申诉 举报 下载
基于单片机的多功能参数检测系统设计与实现_第1页
第1页 / 共51页
基于单片机的多功能参数检测系统设计与实现_第2页
第2页 / 共51页
基于单片机的多功能参数检测系统设计与实现_第3页
第3页 / 共51页
资源描述:

《基于单片机的多功能参数检测系统设计与实现》由会员分享,可在线阅读,更多相关《基于单片机的多功能参数检测系统设计与实现(51页珍藏版)》请在装配图网上搜索。

1、46 / 51摘 要本文论述了一种基于单片机的多功能参数检测系统的设计与实现过程。系统采用了单片机STC89C52为主控芯片,设计了电流电压转换电路,能够将现场的温度、压力、流量、液位等物理量所对应的4-20mA电流信号转换成1-5V的直流电压信号,并提供给A/D转换电路。根据系统测量的模拟量较多的特点,使用ADC0809作为A/D转换芯片。使用LCD1602作为显示器件,能够实时显示采集的温度、压力、流量、液位等物理量。同时,系统还设计了参数设置与报警提示等功能电路。论文共分三部分介绍了基于单片机的多功能参数检测系统设计过程。第一部分,主要介绍了系统的方案设计,明确了系统的功能要求,给出了系

2、统方案框图,并对部分元器件的选择、软硬件开发环境进行了介绍;第二部分,主要介绍了硬件电路的设计过程,包括主要器件的介绍、与单片机接口电路设计思路叙述;第三部分,对软件部分的设计思路做了介绍,并分别数据采集、显示、按键处理等各功能部分设计过程进行了叙述。关键词:单片机;电流电压转换;A/D转换;LCD1602;声光报警AbstractThis paper discusses a kind of multi-functional parameter detection system based on single chip microcomputer.This design use the sin

3、gle chip microcomputer as the controller STC89C52 chip,using current voltage conversion circuit can change the scene of the physical quantities,such as temperature,pressure,flow,level of 4-20 mA current signal into 1-5 V voltage signal,and provide for A/D conversion circuit.According to the characte

4、ristics of the measurement system that there are much more analog quantities,ADC0809 is used as A/D conversion chip,using LCD1602 as a display device,can collect real-time display of temperature,pressure,flow and liquid level.At the same time,the system also designed the circuit for parameter settin

5、g and sound and light alarming function.This paper is divided into three part introduces multi-functional parameter detection system based on single chip microcomputer.The first part,mainly introduced the system design,the functional requirements of system,the system block diagram is given,and the s

6、election of some components,hardware and software development environments are introduced;The second part,mainly introduces the design process of hardware circuit,including the main device,single chip microcomputer interface circuit design ideas of narrative;The third part,the design idea of the sof

7、tware part is presented,and various functions such as data acquisition,display and buttons processing are discusses.Key words:Single chip microcomputer; Current voltage conversion; A/D conversion; LCD1602;Sound and light alarm目 录绪 论11 方案设计21.1 总体框架的设计21.2 单片机开发环境的选择31.2.1 电路图绘制软件31.2.2 Keil_C软件42 硬件

8、电路设计62.1 传感器的选型62.2 单片机最小系统设计62.2.1 单片机的选型62.2.2 时钟电路与复位电路82.2.3 单片机使用注意事项102.3 电流电压转换电路设计112.4 模拟量采集电路设计132.4.1 ADC0809概述132.4.2 ADC0809与单片机接口电路152.5 显示电路设计162.5.1 LCD1602引脚结构162.5.2 LCD1602主要技术参数与特性162.5.3 LCD1602与单片机的接口电路172.6 按键接口电路设计172.7 报警电路设计182.8 串行口功能设计192.8.1 RS-232串行接口192.8.2 MAX232简介203

9、 软件部分设计223.1 主程序工作流程223.2 A/D转换子程序233.3 数字滤波与标度变换程序设计243.4 显示程序设计253.5 按键处理程序设计273.6 报警程序设计28结 论29致 30参考文献31附录A 硬件原理图32附录B 程序代码33附录C 实物图46绪 论随着计算机技术的发展,数据采集系统的应用也日益广泛1。数据采集是工业控制系统中至关重要的一个环节,在生产过程中,往往需要随时检测各个环节的温度、液位、流量与压力等参数。同时,还要对某个检测点的任意参数进行随机查询,将所得到的检测结果提取出来以便进行比较做出决策,调整控制方案。此外,在科研过程中,运用数据采集系统可获得

10、大量的动态信息,也是获取科学数据的重要手段之一。数据采集系统直接影响控制系统的决策。数据采集系统,从某种意义上来说,是用计算机控制的多路数据自动检测或循环检测的、能够对数据实行存储、处理、分析计算以与从检测的数据中提取有用的信息,并能够供显示、记录、打印功能的系统2。在过去的几十年里,随着信息领域技术的发展,数据采集方面的技术也取得了很大的进步,采集数据的信息化是目前社会的发展主流方向。许多领域都用到了数据采集,在地质勘探、科学实验、工业生产过程、日常生活等领域已得到应用。 单片机系统在开发过程中,程序设计语言的选择尤为重要。C51提供高效的代码,结构化的编程和丰富的操作符,多被采用。它是一种

11、编译型程序设计语言,兼顾了多种高级语言的特点,并具备汇编语言的功能。C51有功能丰富的函数库、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对硬件的控制。C51是一种结构化程序设计语言,它支持当前程序设计中广泛采用的自顶向下结构化程序设计技术。此外,C51程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C51进行程序设计已成为软件开发的一个主流3。用C51来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。尽管现在以微机为核心的可编程数据采集与处理采集技术的发展方向得到

12、了迅速的发展,而且组成一个数据采集系统只需要一块数据采集卡,把它插在微机的扩展槽并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响。相较于数据采集板卡成本和功能的限制,单片机具有高性能、低电压、低功耗、低价格等优点,而双单片机又具有精度较高、转换速度快、能够对多点同时进行采集,因此能够开发出能满足实际应用要求的、电路结构简单的、可靠性高的数据采集系统。这就使得以单片机为核心的数据采集系统在许多领域得到了广泛的应用。1 方案设计该部分主要是针对课题的要求与最终要实现的功能进行总体的方案设计,设计出最佳框架和各个模块,以便于硬件选型、电路设计和软件编程。1.1

13、 总体框架的设计该系统以单片机作为主控芯片,现场要测量的温度、压力、流量、液位等物理量均为模拟的非电量信号,因此,需要选用对应的传感变送装置,将上述非电量信号变换为标准电流信号,电流信号抗干扰能力强。单片机只能接收数字信号,又因为要测量的模拟量较多,所以必须有A/D转换器,测量结果需要显示。设置按键对参数的检测方式与报警值进行设置;同时,设置声光报警功能,当采集参数的值超过预设上限值或低于预设下限值时蜂鸣器和报警指示灯发生相应的变化,用于提示。基于单片机的多功能参数检测系统,其主要实现的功能如下: 温度检测:对水温进行检测并转化为标准电流信号,通过电流电压转换电路、A/D转换电路、单片机最终将

14、温度值显示;压力检测:对管道压力进行检测并转化为标准电流信号,通过电流电压转换电路、A/D转换电路、经过单片机处理并显示在显示器上;流量检测:对管道流量进行检测并转化为电流信号,通过电流电压转换电路、A/D转换电路、单片机将管道流量值显示出来;液位检测:可以对水槽液位进行检测并转化为电流信号,通过电流电压转换电路、A/D转换电路、单片机最终将水槽液位值显示;按键功能:可以通过按键选择对温度、压力、流量、液位四个参数进行单独检测还是循环检测,可以对报警上下限进行设置;显示功能:单独或轮流显示与刷新温度、压力、流量、液位四个参数的测量值;报警功能:当实际测量值高于预设上限值或低于预设下限值时,声光

15、报警。根据课题要求与其所需要实现的功能最终设计出总体框架,系统框图如图1.1所示。按键输入声光报警单片机显示AD转换电流电压转换温度检测检测压力检测流量检测液位检测图1.1 系统框图1.2 单片机开发环境的选择1.2.1 电路图绘制软件本设计中电路图的设计使用常用的电路图绘制软件Protel99 SE,该软件功能强大,开发系统具有中文版本,便于使用,其特点介绍如下:Protel99 SE共分5个模块,分别是对于电路原理图的设计、对于PCB开发板的设计(针对信号完整性能分析包含在)、对于原理图混合信号部分的仿真、自动布线器以与PLD设计。以下针对Protel99SE的一些最新功能进行介绍4可以生

16、成多余30种电气连接网络表;拥有较为强大的编辑全局功能;某一级器件从原理图中被选择,该器件在PCB图中也将被选择;可以一起运行PCB和原理图,并允许在打开的PCB图和原理图之间相互搜索元器件、网络、引脚;原理图至PCB图和PCB图到原理图都可对元器件标号进行注释,以实现PCB图和电气原理图设计上的一致性;符合国际标准标题栏输出和GB4728国际标准库即国际化设计要求;简单方便使用的数模混合仿真(兼容SPICE 3f5);对于原理图设计PLD和CUPL语言都支持使用,标准JED下载文件可以被生成;PCB可设计16个电源-地层、32个信号层和16个机加工层; 拥有超强的“规则驱动”设计环境,支持批

17、处理的和在线的设计规则检查; 拥有智能覆铜功能,根据具体情况覆铜可实现自动重铺;提供多种工业中常用的标准电路板作为模版; 拥有放置汉字的功能; 可输入和输出DXF格式文件和DWG格式文件,可以和AUTECAD等软件进行数据之间的交换; 智能封装导航对PGA和BGA封装十分方便; 打印预览功能简便实用,打印结果的控制无需修改PCB文件; 十分独特的3D显示,安装事物后的效果可在压板前看到; 可以轻松实现输出测试点报告、贴片机文件、钻孔文件、材料清单、光绘文件等的CAM处理; 便利的测量工具与反射和串扰仿真的波形显示结果相互结合;拥有解决信号完整性问题的专家导航5。1.2.2 Keil_C软件单片

18、机的设计不仅需要硬件,同样也需要软件,有两种方法可使汇编语言源程序变成CPU可执行的机器码:一种方法是机器汇编,另一种方法是手工汇编,手工汇编的方法现今已经很少使用。采用汇编软件将源程序变成机器码的方法为机器汇编方法,A51汇编软件为早期使用于MCS-51的编程软件,随着不断发展的单片机开发技术,编程软件已由汇编软件发展为高级语言,目前普遍应用在开发MCS-51系列单片机的汇编软件为Keil编程软件。Keil软件近年来已纷纷得到了各仿真机厂商的全面支持。Keil编程软件不仅拥有连接器、库管理、C语言编译器、宏汇编的开发环境还拥有强大功能的仿真调试器开发环境,集成的开发环境uVision将以上部

19、分组合一起6。Keil编程软件的运行需要Pentium或以上的CPU、16MB或更多RAM、20MB以上硬盘空间的WIN98、NT、WIN2000、WINXP等操作系统。熟练掌握Keil软件的操作对于52系列单片机的使用者来说是十分必要的,如果使用C语言编程,那么Keil软件是我们最应该熟悉的,即使使用汇编语言编程而不使用C语言,其强大的软件仿真调试工具和方便易用的集成环境也将起到事半功倍的效果。Keil集成开发环境是基于MCS-51系列单片机,能够完成从工程建立、编译、目标代码生成、软件模拟和硬件仿真等完整的开发过程,Keil软件的C语言编译工具产生代码的准确性高、效率高且灵活方便,目前很多

20、仿真器的仿真环境都与Keil兼容。Keil集成开发环境的主要功能有以下几点:Keil集成开发环境:它将工程管理、源程序编辑和程序调试和仿真集成在一起,完成项目开发;C51交叉编译器:从C51源代码生成可重定位目标代码;A51编译器:从51系列的汇编源代码生成可重定位的目标代码;BL51连接定位器:组合由A51和C51生成的可重定位的目标代码,形成绝对目标模块;LIB51库管理器:从目标模块生成器可以使用的库文件;OH51目标文件到HEX格式的转换器:从绝对目标模块生成HEX文件;RTX-51实时操作系统:简化了实时应用软件的开发与调试过程;设计的软件部分,使用Keil作为编程开发软件,对52单

21、片机进行C语言的编辑与软件仿真;2 硬件电路设计硬件部分采用传感器件完成对温度、压力、流量、液位四个参数的采集,采用单片机STC89C52作为主控芯片,将采集的数据显示在LCD1602上,其中硬件的设计部分包括:传感器选型、单片机最小系统电路设计、电流电压转换电路设计、模拟量采集电路设计、显示电路设计、按键接口电路设计、报警电路与串行口功能设计,下面将对各个设计部分做详细的介绍。2.1 传感器的选型需测量的温度为水的温度,选择温度传感器的测量围应为0100,且选择传感器要求精度高、转换速度快、简单实用,所以选择Pt100作为温度传感器;需测量的压力测量围为01.4MPa,所选压力传感器BP80

22、1、电源为24VDC、输出为420mA电流信号;需测量的流量测量围为00.6立方米/小时,所选流量传感器采用涡轮式传感器LWGY-15A、精度为0.5%、输出为420mA电流信号;需测量的液位测量围为11000毫米,所选液位传感器型号为BPY800、精度为0.5%、供电电源为24VDC、输出为420mA电流信号。2.2 单片机最小系统设计单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统,本设计最小系统包括:单片机、时钟电路、复位电路。2.2.1 单片机的选型选用的单片机型号是STC89C52。STC89C52引脚如图2.1所示,是一种带8K字节闪烁可擦除可编程的

23、只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory)的低压电、高性能的微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,12时钟/机器周期和6时钟/机器周期可以任意选择。1、主要特性工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机);片上集成512字节RAM;通用I/O口(32个),复位后为:P0/P1/P2/P3是开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻;ISP(在系统可编程)/IAP(在应用可

24、编程),不需要专用编程器,不需要专用仿真器,可通过串口(RXD/P3.0,TXD/3.1)直接下载用户程序,几秒钟即可完成一片,准双向口/弱上拉,P0口是漏极;具有EEPROM功能;具有看门狗功能;共3个16位定时器/计数器,即定时器T0、T1、T2;工作频率围:040MHZ,实际工作频率可达48MHZ;外部中断4路,下降沿中断或低电平触发电路,掉电模式可由外部中断低电平触发中断方式唤醒。此外,STC89C52设计和配置了振荡频率可为0Hz并可通过软件设置节电模式。此模式下,CPU暂时停工作,此时外部中断系统、RAM定时计数器,串行端口可以继续工作,掉电模式使振荡器冻结从而将RAM的数据保存,

25、停止芯片的其它功能直至硬件复位或外中断激活。与此同时STC89C52芯片还具有PLCC、TQFP与PDIP等三种封装模式,可以满足不同产品的需求。2、单片机管脚说明其中包括4个8位并行I/O接口线、6条控制信号线和2条电源线并行口P0(P0.0P0.7):P0口为一个8位漏极开路双向I/O接口,8TTL门电流可被每个引脚吸收。P0口的管脚第一次写入高电平时,被称为高阻态输入。它可以被定义为地址/数据的低八位,应用外部程序数据存储器进行存取时可使用P0口。应用FIASH编程时,P0口可作为原码输入口,在FIASH进行校验时,P0口可作为输出口输出原码,此时P0口外部必须被拉高。连接外部存储器或扩

26、充外设时,作为低8位地址线和高8位数据线。并行口P1(P1.0P1.7):P1口是一个部提供上拉电阻的8位双向I/O接口,4TTL门电流可被P1口缓冲器接收、输出。P1口管脚写入高电平后,被部上拉为高,可作为输入,当P1口被外部下拉为低电平时,P1口将输出电流,这是由于部为上拉状态的原因。当FLASH校验和编程时,P1口可用作低八位地址接收,P1口还具有第二功能,可以通过对单片机进行设置,将P1口作为A/D转换口使用。在编程和校验试接收低8位地址,每一位可以独立的输入/输出。并行口P2(P2.0P2.7):P2口为一个部提供上拉电阻的8位双向I/O接口,4TTL门电流可被P2口缓冲器接收、输出

27、。当P2口被写入高电平时,其部上拉电阻将其管脚拉高,并作为输入。作为输入时,P2口的管脚被外部拉为低电平时,P2口将输出电流,这是由于部为上拉状态的原因。当应用16位地址外部数据存储器或外部程序存储器时,P2口输出地址的高八位。在给出地址1时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口在FLASH编程和校验时接收控制信号和高八位地址信号7。并行口P3(P3.0P3.7):P3口为一个8位准双向I/O接口,另外还兼有中断(P3.2(外部中断0)、P3.3(外部中断1)、定时/计数器(P3.4(定时/计数器0)、P3.5(定时/计数器1)、串行通

28、信(P3.0(串行口输入)、P3.1(串行口输出)、读/写(P3.6(外部数据存储器写信号)、P3.7(外部数据存储器读信号)等控制功能。VCC供电电压;GND接地。图2.1 STC89C52单片机引脚图2.2.2 时钟电路与复位电路1、时钟电路单片机芯片部有一个反向放大器构成的振荡器,XTAL1和XTAL2引脚分别为振荡器的输入端和输出端,时钟可以由部或外部产生。部时钟电路是在XTAL1和XTAL2引脚上接一定时元件,部振荡电路就产生自激振荡,定时元件通常是由石英晶体(晶振)和电容组成谐振电路。晶体振荡频率可在1.2MHz12MHz之间选择,电容C1、C2的取值在5pF30pF之间。外部时钟

29、电路为XTAL1接地,XTAL2接外部振荡器,振荡器频率为不低于12MHz的方波信号。设计采取的是部时钟电路如图2.2所示。图2.2 晶振电路原理图2、复位电路单片机有两种复位方式,上电复位和开关复位,上电复位在上电瞬间RC电路充电,RST引脚上出现正脉冲,只要正脉冲保持100ms以上,就能使单片机有效复位。由于某种干扰,单片机不能正常复位,就需要加开关复位,当开关按下时,单片机复位。3、复位电路的用途单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮部的程序自动从头

30、开始执行。单片机复位电路如图2.3所示。图2.3 复位电路原理图4、复位电路的工作原理在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位,所以可以通过按键的断开和闭合在运行的系统中控制其复位。在电路图中,电阻大小为10k,电容大小为0.1uF。所以根据公式,可计算出电容充电电压为单片机电源电压(5V)的0.7倍,充电到电源电压的0.7倍就是3.5V,所需时间为10K*0.1UF=1S。也就是说在电脑启动的1S,电容两端的电压值在03.5V增加。这个时候10K电阻两端电压值从51.5V减少(串联电路各处电压之和为总电压)。所以在1S,单片机的

31、RST引脚接收的电压值在5V1.5V之间。在5V工作正常的51单片机中低电平信号为小于1.5V的电压信号,高电平信号则为大于1.5V的电压信号。所以在开机1S,单片机系统自动复位(RST引脚接收到的高电平信号时间为1S左右)。在单片机启动1S后,电容C两端的电压持续充电为5V,这时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在1S,从 5V释放到变为了1.5V甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的

32、电压为3.5V,甚至更大,所以RST引脚又接收到高电平,单片机系统自动复位。对于片有ROM/EPROM/E2PROM的单片机,用一片这种芯片构成的最小系统简单、可靠。构成最小系统时,只要将单片机接上时钟电路和复位电路,将EA非接高电平即可。最小系统时,P0、P1、P2、P3都可用作I/O线,但由于集成度限制,片存储器容量有限,因此,最小系统主要用于一些简单的控制系统中。2.2.3 单片机使用注意事项对于31脚(EA/VPP),当接高电平时,单片机在复位后从部ROM的0000H开始执行,当接低电平时,复位后直接从外部ROM的0000H开始执行,这一点是初学者容易忽略的;晶振电路容易在焊接时漏掉电

33、容需要接地,并且使用电容的大小一定要选准,晶振电路部分一定要焊接完全,否则容易使晶振电路出现虚接,影响设计;复位电路部分接口的电阻与电容选择要正确,要保证在电容充满电时,单片机有足够的时间进行复位;单片机的电源部分引脚接对,使用单片机时看单片机的缺口处来找单片机的引脚顺序;单片机在使用中P0口要加上拉电阻,一般为10K,因为P0口的驱动能力较低。2.3 电流电压转换电路设计由于前端设备温度、压力、流量、液位传感器所输出的为标准电流信号,而电流电压转换电路作用是将传感器输出的420mA标准电流信号转换为15V标准电压信号作为A/D转换器的输入。电流电压的转换是通过高精度250欧电阻来实现的,在转

34、换完的电压信号后加一电压跟随器。电压跟随器是用一个三极管构成的共集电路,电压跟随器,顾名思义,就是输入电压与输出电压是一样的8,也就是说,电压跟随器的电压放大倍数恒小于且接近于1,电压跟随器的显著特点是输出阻抗低,而输入阻抗高,这使得它在电路中可以起到阻抗匹配的作用,能够使后一级的放大电路更好地工作。换一种说法,当输入阻抗很高时,就对前级电路相当于开路,当输出阻抗很低时,就相当于对后级电路的一个恒流源,也就是说输出电压不受后级电路阻抗的影响。一个相当于对前级电路开路,后级阻抗不影响输出电压常常被用作中间级,起到“隔离”前后级之间的影响的作用。电压跟随器电路中所选芯片为LCM324,LM324系

35、列器件带有差动输入的四路运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四路放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。LCM324管脚连接如图2.4所示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位一样。 图2.4 LCM324管脚

36、连接图LCM324特点:短路保护输出;真差动输入级;可单电源工作围在3V-32V之间;低偏置电流最大达到100mA;每封装含四个运算放大器;具有部补偿的功能;共模围扩展到负电源;行业标准的引脚排列;输入端具有静电保护功能。设计中LCM324四路运算放大器的连接方式一样,图2.5为其中一路的连接方式。图2.5 电流电压转换电路原理图2.4 模拟量采集电路设计A/D转换器的作用是将电流电压转换电路输出的模拟量信号(15V电压信号)作为输入并将其转换为数字信号作为单片机的输入信号,由于系统涉与到的参数较多且考虑到实用价值,设计中A/D转换器件采用ADC0809。2.4.1 ADC0809概述1、AD

37、C0809部结构与转换原理ADC0809是美国国家半导体公司生产的CMOS工艺8通道模数转换器,它采用逐次逼近式转换原理,部分为两大部分,一部分为模拟量多路转换开关,另一部分是A/D转换器。它的输出可以直接与CPU总线连接。模拟量多路开关包含8路输入开关和3位地址锁存器/译码器。8路模拟量输入信号可接入8路输入开关。ADDA、ADDB与ADDC3位地址由ALE信号输入锁存,经过译码后决定转换哪一路输入的模拟量信号。2、ADC0809引脚结构ADC0809芯片有28条引脚,下面说明各引脚功能。 IN0IN7:8路输入模拟量通道。2-12-8:8位输出数字量通道。ADDA、ADDB、ADDC:3位

38、输入地址线,用于选择IN0IN7 8路模拟输入通道中的某一通道。ALE:地址锁存允许信号,高电平有效。 START:启动转换信号,脉冲上升沿使0809部所有寄存器复位,下降沿开始进行A/D转换,转换过程中START应保持低电平。 EOC:转换结束信号,当为高电平时表示A/D转换结束时,转换期间一直为低电平。OE:输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据,输入高电平时有效。CLK:时钟脉冲输入端,ADC0809部没有时钟电路,所需时钟信号需由外界提供。所用的四分频芯片是74HC4040,将74HC4040的8和11引脚接地、16引脚接电源、10引脚接单片机的时钟信号、7引脚

39、接ADC0809的时钟脉冲输入端即可完成四分频。3、ADC0809工作过程首先输入3位地址,同时使ALE=1,将输入的3位地址存在地址锁存器。该地址经过译码选择8路模拟量输入中的一位并将其送给比较器。为START提供上升沿将逐位逼近寄存器SAR复位。START下降沿启动 A/D转换,之后EOC信号变为低电平,表示A/D转换在进行当中。EOC变为高电平时表示A/D转换完成,并将转换结果存入锁存器,此转换结束信号可用为中断请求信号。当读允许输入端输入高电平时,数据允许输出,A/D转换后的数字量将被输出9。A/D转换后的数字量应立即传送到单片机进行分析。数据传送过程中关键问题在于如何确认转换已完成,

40、只有确认转换已完成ADC0809与单片机之间才能进行数据之间的传送。4、数据传送方式定时传送方式转换时间对于一种A/D转换为一项是已知和固定的技术指标。例如ADC0809的转换时间是128s,相当于6MHz的MCS-51单片机共64个机器周期。依据此已知项可设计一延时子程序,A/D转换开始后便调用这个子程序,延迟程序执行完毕,转换肯定也已经完成,接着便可进行数据之间的传送。查询方式可以用查询方式,测试EOC的状态,即可确认转换是否已完成,并进行数据间的传送。利用查询方式时ADC0809与单片机接口连接比较自由,但控制时序要由程序产生。中断方式中断请求信号为表示转换已完成的信号(EOC),单片机

41、响应中断请求后,执行中断服务程序,读取数据。无论使用上述哪种方式,转换一旦完成,采用指令便可进行数据之间的传送。首先读允许信号有效时即OE信号有效,便把转换后的数据送给单片机。由于采用查询方式时单片机与ADC0809之间的连接方式较为简单,且易于控制所以系统中采用的是查询方式。5、ADC0809的工作时序ADC0809工作时序如图2.6所示,在此时序图中能得出,三位通道的地址在ALE信号为上升沿时锁存,通过多路模拟开关将对应通道模拟量传送到模数转换器。部电路在START信号为上升沿时复位,START信号为下降沿时启动转换,这时EOC信号为低电平状态,逐次逼近需要一定的过程,因此,在这期间,模拟

42、量输入应保持不变,比较器需一次次比较,直至转换结束,此时EOC信号为高电平。如果CPU发出读允许信号即OE为高电平,就可以读出数据。此外ADC0809具有较高的精度和转换速度,受温度的影响也较小。图2.6 ADC0809工作时序图2.4.2 ADC0809与单片机接口电路将四路输入模拟信号转化为数字信号,为数据显示模块提供输入信号。单片机P1.3、P1.4、P1.5输出的三位地址加到通道选择端A、B、C,可作为通道编码。输出数据与P0口连接,START、ALE一起与P3.6相连,CLOCK与74HC4040的时钟输出端口相连,EOC与P3.5相连进行转换结束的判断,OE与P3.7相连作为输出允

43、许控制端,ADC0809接口电路如图2.7所示。图2.7 A/D转换接口电路原理图2.5 显示电路设计测量结果需要显示,显示器件选择LCD1602控制模块。与LED显示器件相比,LCD可显示字符、数据,能够更好的区分显示的参数容,显示容丰富、直观,而且该方式省电。LCD1602字符型液晶显示模块,它是一种专门用来显示字母、数字、符号等点阵式液晶模块。1602LCD是指显示的容为16*2,即可以显示两行,每行16个字符液晶模块。2.5.1 LCD1602引脚结构1、LCD1602引脚结构说明1引脚VSS:电源地。2引脚VCC:5V电源正极。3引脚VL:液晶显示器的对比度调节端,该引脚接地时对比度

44、最高,接正电源时对比度最弱,对比度高时,可使用一个10K的可调电阻调节对比度。4引脚RS:数据/命令选择端,接高电平时为数据寄存器,接低电平时为命令寄存器。5引脚R/W:读/写选择端,低电平时执行写操作,高电平时执行读操作。6引脚E:使能信号端。714引脚D0D7:8位双向数据端。15引脚BLA:背光源的正极。16引脚BLK:背光源的负极。2.5.2 LCD1602主要技术参数与特性1、LCD1602主要的技术参数16*2个字符的显示容量;芯片的工作电压在4.55.5V之间;工作电流为2.0mA(5.0V);最佳的工作电压为5.0V;2.95*4.35(W*H)mm的字符尺寸。2、LCD160

45、2的特性+5V电压,可调的对比度;部含有复位电路; 控制命令的提供,如:显示移位、光标闪烁、字符闪烁、清屏等多种功能 ;数据存储器DDRAM可显示80个字节;字符发生器CGROM建有160个5*7点阵字型;用户可自定义的8个5X7的字符发生器CGRAM;微功耗、体积小、显示容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。2.5.3 LCD1602与单片机的接口电路系统采用LCD1602显示模数转换器采集到的数据,其中D7D0与单片机的P2端口相连作为数据的传送通道,使能端E、RW、RS分别与单片机的P1.0、P1.1、P1.2相连接,此电路图原理简单,电路连接方便,LCD1602接口电路

46、如图2.8所示。图2.8 LCD1602接口电路原理图2.6 按键接口电路设计按键接口电路可选用两种方法分别为行列扫描按键和独立按键1、行列扫描按键行列式按键适用于按键应用数目比较多的设计,行列式按键的优点是节省I/O口资源,使用8个I/O口就可以实现16个按键,分为行扫描口与列扫描口,该方案编程比较复杂,而且必须对I/O口进行实时的扫描。2、使用独立按键由于本设计使用的按键功能较少,需要3个按键,所以本设计使用独立按键,作为按键的输入部分,独立按键硬件电路设计简单、编程方便简单、且速度快,不需要对I/O口做频繁的操作。综上所述,本设计使用按键较少,使用独立式按键作为本设计的按键部分。使用一个

47、独立按键连接单片机的P3.2引脚来选择对四个参数进行单独检测还是循环检测,按键未按下时为循环检测模式,按键按下一下时为温度检测模式,按键按下两下时为压力检测模式,按键按下三下时为流量检测模式,按键按下四次是为液位检测模式。另外采用两个单独按键连接单片机的P3.3、P3.4来控制报警上下限的报警值。按键电路如图2.9所示。图2.9 按键电路原理图2.7 报警电路设计报警电路分为两部分,一部分为声音报警,另一部分为灯光报警,其中声音报警选用蜂鸣器与三极管结合的蜂鸣器电路,由单片机的P1.6口作为控制口,当报警时,由单片机产生一个低电平信号,控制三极管的基极使其导通,驱动蜂鸣器响应。两路灯光报警则是

48、采用LED发光二极管来实现,由单片机的P3.0、P3.1口作为控制口,当报警时,由单片机产生一个低电平信号,控制发光二极管使其导通,报警电路图如图2.10所示。图2.10 报警电路原理图为了使灯更便于单片机驱动,采用低电平驱动,因为单片机的灌电流要远远大于单片机的驱动电流,所以将彩灯的一端接到高电平,另一端加入一个限流电路接到单片机,接入电阻为1K欧姆时驱动电流为5mA,5mA电流使灯点亮。报警时将声光报警相结合就完成了报警部分。 2.8 串行口功能设计通过串行口将可执行文件写入单片机,串行口选用标准RS-232接口,它是电平与TTL电平转换驱动电路。常用的芯片是MAX232。2.8.1 RS

49、-232串行接口目前较为常用的RS232串口有9针D型串口(DB9)和25针D型(DB25),最大通信距离为15m。两台设备的距离较近时,可以采用232电缆线将它们的232串口直接相连;若距离较远,可通过调制解调器相连10。RS232接口采用“单端驱动”通过数据发送端输出驱动电平,并以信号地为参考点;采用“单端接收”通过数据接收端输入接收电平,并以信号地为参考点;采用三线制能实现点对点双向通信,需要3根通信线,主方的数据发送端与从方的数据接收端相连,主方的数据接收端与从方的数据发送端相连,两方的信号地直接相连。RS232使用注意事项:RS232串口不能直接与RS485串口相连,因为它们的电气标

50、准不一样,市面上提供各种串口转换器,必须通过转换器才能连接。另外,不要带电插拔串口,插拔时至少有一端是断电的,否则容易损坏串口。设计中采用的是9针D型RS232串口即DB9。2.8.2 MAX232简介1、MAX232引脚介绍MAX232引脚排列如图2.11所示。第一部分为由7、8、9、10、11、12、13、14引脚所组成的两组数据通道。13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)组成一组数据通道,8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)构成另外一组数据通道。CMOS/TTL数据从11引脚(T1IN)、10引脚(T2I

51、N)输入,转换后的RS-232数据从14脚(T1OUT)、7脚(T2OUT)送到电脑的DB9插头;RS-232数据从13引脚(R1IN)、8引脚(R2IN)输入,转换为CMOS/TTL数据后从12引脚(R1OUT)、9引脚(R2OUT)输出。第二部分由1、2、3、4、5、6引脚和4只电容器件构成的电荷泵电路。此电路的功能是分别产生+12v和-12v电源,用以对RS-232串口电平的供给。第三部分是供电。15脚GND、16脚VCC(+5v)。图2.11 MAX232引脚图2、MAX232主要特点符合所有RS-232技术标准;仅需要一个+5V电源供电;片载电荷泵具有电压极性反转能力;升压,可以产生

52、+10V和-10V电压V+、V-;功耗低,典型供电电流5mA;部集成2个RS-232C驱动器、高集成度,片外最低只需4个电容即可工作。MAX232与单片机接口电路:P3.0(RXD)接MAX232的R2OUT引脚MAX232的R2IN接DB-9的3引脚(TXD)。3、电平转换集成电路MAX232功能可实现89C52单片机与PC机的RS-232之间的电平转换,89C52单片机输入输出电平为TTL电平而PC机配置的是RS-232标准串行口,二者之间的电气规不一致 ,对应关系如表2.1所示。表2.1 电气规对照表数字值10TTL电平+5v0v232电平-3v -15v+3v+15vP3.1(TXD)

53、接MAX232的T2IN引脚,MAX232的T2OUT接DB-9的2引脚(RXD),串行接口电路如图2.12所示。图2.12 串行口电路原理图3 软件部分设计软件部分设计主要针对于软件部分的程序进行分析介绍,对应各个模块首先介绍程序部分设计思路,然后对流程图进行详细的讲解。3.1 主程序工作流程主程序主要完成程序的初始化、按键程序与报警程序的判断,首先进入main函数对定时器0进行初始化设置,设置定时方式1,定时50ms中断一次,累计40次后为2S也就是用来定时2S,2S后通过标志位使标志显示界面变量加1,同时显示相应界面。主程序流程图如图3.1所示。图3.1 主程序流程图(1)图3.1 主程

54、序流程图(2)3.2 A/D转换子程序利用ADC0809转换四路模拟量,首先选择需转换四路模拟量中的一路,然后启动转换,在其转换过程中一直判断其转换是否完成,如果未完成则继续转换,如果已完成转换则发出读允许信号,使其转换完成的数据可供单片机使用,A/D转换程序流程图如图3.2所示。图3.2 A/D转换程序流程图3.3 数字滤波与标度变换程序设计数字滤波技术是指在软件中对采集到的数据进行消除干扰的处理。在软件中进行数字滤波的处理,以消除附加在数据中的各式各样的干扰,使采集到的数据能够真实的反映现场的工艺实际情况。数字滤波最简单和最常用的一种,方法是在某时刻对信号进行连续多次多样,对采样值进行算术

55、平均,作为该时刻的信号值,连续采样的次数视具体情况而定。算术平均值滤波对抑制周期性干扰和随机干扰有良好效果。设计中采用的数字滤波方法为最值算数平均值滤波,它是平均值滤波的改进,它认为最值是一个野值,应该剔除。对余下的值再做平均值滤波。标度变换:测量时,先将外界信号转换成电信号,然后用A/D转换器将模拟量转换为数字量,经一系列变换后得到的数码值它仅仅对应于参数值相对量的大小,故必须把它转换成带有量纲的数值后才通过运算和显示。由于设计中参数值与A/D转换结果成线性关系,标度变换时采用线性变换公式Y=(Ymax-Ymin)(X-Nmin)/(Nmax-Nmin)+Ymin,Y为测量值、Ymax和Ym

56、in为测量值的最大最小值、X为Y经过A/D后的值、Nmax和Nmin分别为Ymax和Ymin经过A/D后的值。在编写程序时Ymax、Ymin、Nmax、Nmin都是已知的。数字滤波与标度变换程序流程图如图3.3所示。图3.3 数字滤波与标度变换程序流程图3.4 显示程序设计LCD1602的控制指令1、基本操作状态与读操作输入:RS=0(低电平)、R/W=1(高电平)、E=1,输出:D0D7的状态字。数据读操作输入:RS=1、R/W=1、E=1,输出:D0D7的数据。指令写入操作输入:RS=0、R/W=0、E=1,无输出。数据写入操作输入:RS=1、R/W=0、E=1,无输出。2、LCD1602

57、的控制指令LCD1602部控制器的控制指令共有11条。其指令集如表3.1所示。表3.1 LCD1602指令集序号指令RSR/WD7D6D5D4D3D2D1D01清屏显示00000000012光标返回000000001*3设置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6设置功能00001DLNF*7设置字符发生存贮器地址0001字符发生存贮器地址8设置数据存贮器地址001显示数据存贮器地址9忙标志位和数据指针01BF计数器地址10数到CGRAM或DDRAM)10要写的数据容11CGRAM(DDRAM)读数11读出的数据容指令1:

58、清屏显示,指令代码0X01,使所有指针和所有的显示清零,使其光标复位。指令2:光标返回,指令代码0X20。显示回车,即数据指针清零,使光标返回到0X00。指令3:设定输入模式。I/D(光标和显示设置)。I/D=1,光标右移(光标加1);I/D=0,光标左移。当S=1,在写一个字符时,整屏显示左移(I/D=1)或右移(I/D=0);当S=0,当写一个字符时,整屏的显示都不移动。指令4:开关控制的显示方式。D是控制整体显示的开与关,D=1时表示显示开;D=0时表示关显示。C是控制光标的开与关,C=1时表示有光标;C=0时表示无光标。B是控制光标是否闪烁,B=1时表示光标为闪烁状态;B=0时表示光标

59、不闪烁。指令5:光标或画面滚动。S/C(滚动对象选择),S/C=1时表示画面滚动;S/C=0时表示光标滚动。R/L(滚动方向选择),R/L=1时表示向右滚动;R/L=0时表示向左滚动。指令6:数据和字符的工作模式。DL=1时表示数据总线宽度为8位,即D7D0有效;DL=0时表示数据总线宽度为4位,即D7D4有效。N(设置显示字符的行数),N=0时表示为一行字符;N=1时表示为两行字符。F(设置字符体的点阵数),F=0时表示为5*7的字符点阵;F=1时表示为5*11的字符点数。一般设置为F=0.指令7、8:设置字符发生器CGRAM与数据存储器DDRAM的地址。指令9:忙标志位和数据指针。BF(忙

60、标志位),BF=1时表示忙,此时LCD模块不能接收命令或数据;BF=0时表示不忙。所以在MCU对LCD进行读写操作前,必须先确认不忙。指令10、11:写数据、读数据。LCD显示程序流程图如图3.4所示。图3.4 Lcd显示程序流程图3.5 按键处理程序设计按键扫描程序为独立按键的扫描程序,主要完成按键的判断,延时去抖动,判断是否有按键按下,然后对对应的按键的功能做详细的介绍,独立式按键扫描程序的流程图如图3.5所示。图3.5 按键程序流程图首先使用if语句判断是否按键按下,如果按下则为低电平,然后进入延时函数,防止抖动,然后再次判断该按键是否按下,如果确实按下则进入对应的按键的功能。按键处理部

61、分用到三个按键,一个(key1)用来控制四个参数的单独显示和循环显示,另两个(key2、key3)用来控制报警上下限值的加1。3.6 报警程序设计报警部分的软件设计思路为当测量值超过报警上限或低于报警下限时产生报警,某个参数报警则在LCD的报警界面中该参数后则显示E(error),如为上限报警则P3.0引脚所接LED亮与蜂鸣器响应,如为下限报警则P3.1引脚所接LED亮与蜂鸣器响应。报警程序流程图如图3.6所示。图3.6 报警程序流程图结 论本课题设计的是基于单片机的多功能参数检测系统。根据预期设计目的与要求,实现了对温度、压力、流量、液位的采集、显示,并能进行手动设置和报警提示,完成了数据采

62、集系统等硬件控制电路和软件的设计等工作,最终达到预期的效果。通过此项设计的分析可得到如下结论:本系统采用体积小、功耗低、功能强的STC89C52单片机,设计一个多功能参数检测系统,最终实现对温度、压力、流量和液位四个参数的实时显示与控制;利用数字滤波程序可使检测到的数据的精度提高;利用去抖程序可使按键程序执行的更加准确;对于线性标度变换,采用标度变换公式时应该灵活使用,不应死套公式;电压信号在经过LCM324后会有损耗,当5V电压通过LCM324时它的输出电压最高能达到4.5V,所以最终的测量结果会出现偏差。致 在论文的写作过程中遇到了很多的困难和障碍,都在同学和老师的帮助下度过了。尤其要感我的论文指导老师寅生老师。他为人随和热情,治学严谨细心。老师从选题、定题到硬件设计以与最后论文的反复修改,老师始终认真负责地给与我深刻而细致的指导。 感这篇论文所涉与到的各位学者。本文引用了多位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。“不积

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!