机务设备数据采集的课程设计.docx
《机务设备数据采集的课程设计.docx》由会员分享,可在线阅读,更多相关《机务设备数据采集的课程设计.docx(27页珍藏版)》请在冰豆网上搜索。
机务设备数据采集的课程设计
目录
第1章系统总体设计2
2.1硬件总体设计2
2.2软件总体设计4
第2章系统硬件设计5
3.1存储器RAM扩展5
3.2模拟量采集电路设计8
3.1.1温度传感器的选择8
3.1.2信号调理电路设计10
3.1.3多路开关选择10
3.1.4A/D转换电路设计11
3.3开关量采集电路设计13
3.3.174LS241的引脚分布和逻辑结构13
3.3.2开关量采集的硬件连接图13
3.4脉冲量采集电路设计14
3.5RS-232C串行总线数据通信15
3.5.1RS-232C总线标准接口及电气特性15
3.5.2电平转换芯片介绍15
3.6人机通信接口16
3.6.1非编码键盘接口设计17
3.6.2LED显示器设计18
第3章软件设计20
4.1系统主程序20
4.2模拟量采集程序21
4.3开关量采集程序22
4.4键盘扫描子程序23
4.5键盘显示程序25
第五章设计小结27
参考文献28
第1章系统总体设计
数据采集系统的总体设计包括硬件总体设计和软件总体设计两部分。
2.1硬件总体设计
本次课程设计是为了完成数据处理功能模块设计中的数据采集部分。
设备数据采集包括8路开关量的检测、8路模拟量的检测和1路脉冲量的检测。
数据采集系统基于单片机AT89C51进行设计的。
AT89C51单片机参数特点:
与MCS-51兼容;4K字节可编程闪烁存储器;寿命:
1000写/擦循环;数据保留时间:
10年;全静态工作:
0Hz-24MHz;三级程序存储器锁定;128×8位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路;其管脚配置如图2.1所示。
管脚说明:
VCC:
供电电压。
GND:
接地。
图2.1AT89C51的管脚图
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,可用作输入,P1口被外部下拉为低电平时,将输出电流。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,作为输入,作为输入时,P2口的管脚被外部拉低,将输出电流。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,用作输入,作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
根据设计要求,对系统硬件连接概况进行初步设计,对测量数据的采集需要扩展芯片存储器,对输入模拟信号进行A/D转换并调理使之符合信号输入要求,脉冲量采集则需要对信号进行隔离、放大、整流,使信号符合标准的TTL电平输入单片机处理。
由于模拟量和数字量采集均为8路,同时要考虑采用多路选择器进行多路信号采集、并行接口进行数据通信、以及LED显示器。
依据初步规划设计,对于硬件系统作出如图2.2所示的系统总体框图。
图2.2系统总体框图
2.2软件总体设计
选择汇编语言进行软件设计:
针对各功能模块实际实现功能,并运用已有的汇编语言知识进行相应程序编写。
先进行硬件逻辑图的连接,并分配口地址,对具体功能模块进行编程,最后再统一整合。
软件功能模块划分:
根据功能不同,对本次设计系统的软件部分划分为主程序模块、模拟量采集模块、开关量采集模块、脉冲量采集模块、显示器模块等常用子程序模块。
第2章系统硬件设计
3.1存储器RAM扩展
AT89C51单片机的芯片内部集成了计算机的基本功能部件,已具备了很强的功能。
AT89C51单片机内部集成了4KBROM,但片内RAM仅有128B,并行I/O端口,定时器及中断源等内部资源都还是有限的。
同时,为了使单片机能按要求工作,就必须将必要的命令和数据输入到单片机中;单片机运算或处理的结果也要通过一定的方式输出,这就需要配置一定的输入/输出设备。
虽然在单片机内部设置了若干并行I/O接口电路,用来与外围设备连接,但当外围设备较多时,仅有的几个内部I/O接口就不够用。
因此根据实际开发要求,需要对单片机进行外部功能扩展。
在对单片机外部功能进行扩展时,首先是配置外部存储器,包括程序存储器和数据存储器;由于单片机程序存储器空间和数据存储器空间是相互独立的,程序存储器空间扩至64KB,外部数据存储器(包括I/O口)的寻址空间也可以扩至64KB。
本次设计我们将外部RAM扩展为2KB足以。
图3.1为AT89C51与片外存储器的连接图。
图3.1AT89C51存储器扩展图
1)RAM扩展的原理
AT89C51对外部数据存储器的操作指令有如下四条:
①MOVXA,@Ri;((P2)(Ri))Ai=0/1读
②MOVX@Ri,A;(A)(P2)(Ri)i=0/1写
③MOVXA,@DPTR;((DPTR))A读
④MOVX@DPTR,A;(A)(DPTR)写
其中①②指令是以R0或R1作指针对外部数据存储器页面寻址,页号由当前P2口锁存器内容决定,这两条指令适宜于寻址容量较小的外部数据存储器。
③④指令是以16位的DPTR作指针的,可对64K字节的外部数据存储器寻址。
CPU在执行①②指令时,P2口输出P2锁存器的内容,P0口输出R0或R1的内容。
CPU在执行③④指令时,P2口输出DPH内容,P0口输出DPL内容。
CPU在访问外部数据存储器时,在ALE下降为低电平后,P2口输出的地址信息保持不变,而P0口转为浮空,原来的低8位地址信息丢失,因此也需要外部锁存器在ALE下降时把P0口地址信息锁存起来。
AT89C51在访问外部数据存储器时,一个机器周期中ALE只输出一个正脉冲;ALE返回低电平后,读信号
或写信号
有效,而
始终无效(保持高电平),所以AT89C51访外数据存储器时决不会访问外部程序存储器。
下面以6116为例,介绍它的引脚及功能。
如图3.5所示:
·A0~A12:
地址输入线;
·D0~D7:
双向三态数据线;
·
:
片选信号输入线,低电平有效;
·
:
读选通信号输入线,低电平有效;
·
:
写允许信号输入线,低电平有效;
·Vcc:
工作电源,电压为+5V;
·GND:
线路地。
图3.2RAM6116的引脚图
2)常用的地址锁存器
74LS373是一种输出三态门的8D锁存器,
为三态门输出允许控制信号输入端,低电平有效。
ALE为锁存信号输入端,高电平使74LS373接数,电平负跳时将D0~D7状态锁存起来。
74LS373的管脚图如图所示。
将74LS373的
接地、接AT89C51的ALE信号、74LS373的数据输入端D0~D7接AT89C51的P0口、74LS373的数据输出端Q0~Q7接到外部程序存储器低8位地址端。
这样,当ALE高电平时74LS373直通,使P0口输出的低8位地址和P2口输出的高位地址同时到达外部程序存储器的地址线,而当ALE将为低电平时,P0口低8位地址被74LS373锁存持
图3.374LS373的引脚持,使外部程序存储器的低8位地址信息维持不变,P0口读到可靠的信息。
3.2模拟量采集电路设计
计算机数据采集系统一般由传感器、多路模拟开关、采样/保持(S/H)器、模/数(A/D)转换器和单片机系统组成。
如图3.4示。
本次设计选用的A/D转换器自身集成了采样/保持(S/H)器,所以不用再选用采样/保持(S/H)器。
图3.4AT89C51数据(8路模拟量)采集系统的基本组成
3.2.1温度传感器的选择
传感器的作用是把非电量的物理量(如速度、温度、压力等)转变成模拟电量(如电压、电流、电阻或频率)。
本设计涉及到的传感器是与温度和压力相关的,故选择以下两种传感器用于电路中。
1)温度传感器的组成
在工程中无论是简单的还是复杂的测温传感器,就测量系统的功能而言,通常由现场的感温元件和控制室的显示装置两部分组成,如图3.8所示。
简单的温度传感器往往是把温度传感器和显示器组成一体的,对这样一种传感器一般在现场使用。
图3.5温度传感器组成框图
2)常用的测温传感器
常用测温传感器的特点见表3-1所示:
表3-1测温传感器的比较
类型
优点
缺点
热电偶
易于使用、成本极低
极宽温度范围(-200℃~2000℃)
坚固耐用
有多种类型
中等精度(1%~3%)
低灵敏度(40~80μV/℃)
地响应速度(几秒)
高温时老化和漂移
非线性、低稳定性
需要外部参考端
热敏电阻
易于连接、快速响应
低成本、高灵敏度
高输出辐射、小尺寸
易于互换中等稳定性
窄温度范围(高达150℃)
大温度系数(4%/℃)
非线性、固有的自身发热
需要外部电流源
RTD
极高精度
极高稳定性、中等线性
许多种配置
有限的温度范围(高达400℃)、大温度系数、昂贵
需要外部电流源
IC温度传感器
(模拟和数字输出)
极高的线性、低成本
高精度(约1%)、高输出幅度
易于系统集成
小尺寸、高分辨率
低响应速度
有限的温度范围(-55℃~+150℃)、固有的自身发热
需要外部参考源
热电温度记录仪常以热电偶作为测温元件,由上表得知它广泛用来测量-200℃~2000℃范围内的温度;特殊情况下,可测2800℃的高温或4K的低温。
此次设计所测温度范围是0~400℃,故选择K型热电偶作为测温传感器。
输出电压范围为0~16.395mV;经放大器放大300倍,故最终输出电压满足0~5V要求。
K型热电偶是工业生产中最常用的温度传感器,具有结构简单、制造容易、使用方便、耐久性强,稳定性高及K型热电偶的热电势与温度有良好的线性关系所以传感
3.2.2信号调理电路设计
信号调理电路包括隔离、放大电路两部分,光电隔离电路的作用是在电隔离的情况下,以光为煤介传送信号,对输入和输出电路可以进行隔离。
因而能有效地抑制系统噪声,消除接地回路的干扰,有响应速度较快、寿命长、体积小耐冲击等好处,使其在强-弱电接口,特别是在微机系统的前向和后向通道中获得广泛应用。
而放大电路的作用是用来放大和缓冲输入信号。
由于传感器输出的信号较小(如:
常用热电偶的输出变化往往在几毫伏到几十毫伏之间,电阻应变片输出电压的变化只有几十毫伏,人体生物电信号仅是微伏量级),因此需要加以放大以满足大多数A/D转换器的满量程输入5~10V的要求。
此外,某些传感器内阻比较大,输出功率较小,这样放大器还起到阻抗变换器的作用来缓冲输入信号。
其信号调理原理如图3.6所示。
图3.6信号调理电路
3.2.3多路开关选择
在数据采集系统中,往往要对多个物理量进行采集,即所谓多路巡回检测,这可以通过多路模拟开关来实现,这样可以简化设计,降低成本。
多路模拟开关可以分时选通来自多个输入通道中的某一路通道。
因此,在多路模拟开关后的单元电路,如采样/保持电路、模/数转换电路以及处理器电路等,只需要一套即可,这样可以节省成本和体积,但这仅适用于物理量变化比较缓慢、变化周期在数十至数百毫秒之间的情况下。
因为这是可以使用普通的微秒级A/D转换器从容地分时处理这些信号。
但当分时通道较多时,必须注意泄露及逻辑安排等问题,当信号频率较高时,使用多路分路开关后,对A/D的转换速率要求也随之上升。
模拟开关有时也安排在放大器之前,
但当输入的信号电平较低时,需注意选择多路模拟开关的类型;若选用集成电路的模拟多路开关,由于它比干簧或继电器组成的多路模拟开关导通电阻大、泄露电流大,因而有较大的误差产生。
所以要根据具体情况来选择多路模拟开关,选用DG508芯片,图3.7为DG508的外引脚图.图3.7DG508的外引脚图
3.2.4A/D转换电路设计
采样/保持电路输出的信号送至A/D转换器,A/D转换器是模拟输入通道的关键电路。
由于输入信号变化的速度不同,系统对分辨率、精度、转换速率及成本的要求也不同,因此A/D转换器的种类也较多。
早期的采样/保持电路和A/D转换电路需要数据采集系统设计人员自行设计,目前普遍采用单片集成电路,有的单片A/D转换器内部还包括含有采样/保持电路、基准电源和接口电路,这为系统设计提供了较大方便,因此在本次设计中运用了AD1674转换器。
1)AD1674的介绍
AD1674是一种具有采样/保持功能的12位A/D转换器。
采用点和重新分配技术进行逐次逼近实现A/D转换。
可以方便的和8080、Z80、8086、8031等CPU系统连接。
它是ADC574、ADC674、ADC774的代替产品。
ADS774有内部时钟、微处理器接口、电容阵列、三态输出缓冲以及内部量程电阻等电路组成。
模拟输入范围可以是0~10V、0~20V、±5V或±10V。
最大转换时间不超过8.5μs,功耗小于120mW。
性能特点:
(1)具有采样/保持电路;
(2)可与ADC574A、ADC574、ADC674等互换;
(3)具有内部基准、时钟和微机接口;
(4)能够高速捕捉和转换,最大转换时间不超过8.5μs;
(5)采用+5V单电源操作;
(6)整个功耗小于120mW。
2)AD1674的引脚
ADS774的外形采用28脚的DIP封装结构,引脚排列如图3.8所示。
其引脚已说明如下。
1脚:
+5V逻辑电源输入端。
2脚:
12/
,数据输出方式控制。
12/
=1对应12位并行输出;12/
0对应8位双字节输出,其中A0=0时,输出高8
位,A0=1时,输出低4位,并用零补足尾随的的4位。
3脚:
芯片选择端,
=0时,选中;
=1时,未选中。
4脚:
A0,数据输出方式控制。
当A0=0时,启动转换,按完整的12位A/D转换方式工作;当A0=1时,启动转换,按8位A/D转换方式工作。
A0的控制一般要和12/
的信号结合使用。
5脚:
R/
,工作状态控制端。
R/
=0为启动转换命令;R/
=1为数据读出命令。
6脚:
CE,芯片选择端,高电平有效。
图3.8AD1674的引脚图
在正常使用时,只有CE=1且
=0时芯片才能工作。
7脚:
空脚。
8脚:
2.5V参考电压输出。
9脚:
AGND,模拟地。
10脚:
REFI,参考电压输出端;该电压可外接,也可以使用8脚提供的基准。
11脚:
VE,对于仿效方式连接,可接地也可接负电源;对于控制方式连接,可接+5V电源。
12脚:
BIPO,双极性偏置端。
13脚:
10VIN,0~10V模拟电压输入端。
14脚:
20VIN,0~20V模拟电压输入端。
15脚:
DGND,数字地。
16脚~27脚:
DB0~DB11,12位数据输入端。
28脚:
STS,工作状态输出端。
STS=1表示A/D转换正在进行;STS=0表示A/D转换已经完成,可以读出数据。
它可以作为微机的中断请求信号或A/D转换状态查询信号。
3.3开关量采集电路设计
3.3.174LS241的引脚分布和逻辑结构
74LS241是8路3态缓冲驱动,也叫做线驱动或者总线驱动门电路。
主要用于三态门的存贮地址驱动器、时钟驱动器和总线定向接收器和发送器。
它有8个输入端,8个输出端。
74LS241为单向传送.在本次设计中将它用于开关量的采集。
由于74LS241抗干扰性好,常用作总线驱动器和并行输入口。
图3.9给出了它的引脚分布和逻辑结构。
当它的控制端
(
)为低电平时,输出等于输入(直通);当
(
)为高电平时,输出
图3.974LS241引脚图呈高阻态。
3.3.2开关量采集的硬件连接图
图3.1074LS241采集开关量硬件图
3.4脉冲量采集电路设计
数据采集系统的输入信号除了模拟量和开关量外,还有一部分是离散量信号,主要是脉冲量,这一部分介绍脉冲量输入数据采集系统设计中的问题。
脉冲量测量中有两个最基本的参数:
频率和周期。
交流信号频率或周期的测量,是通过放大限幅,整形成脉冲量后再来测量的,由于频率量和周期量相对来说比较容易实现精密测量,信号预处理比较简单,频率信号与计算机接口比较容易,加上可以利用非电参数变化能引起频率变化的原理做成很多调频传感器,用频率量来表征非电参数,所以频率测量法用的越来越多。
特别是各种集成电压/频率变换器投放市场后,型号不断增加,价格不断下降,技术指标不断提高,很多模拟量输入的数据采集系统就可借助于电压/频率变换器和计数器作模数转换器实现高精度测量。
因单片机芯片内已含有计数器,加上可利用软件方便地产生各种必要的控制信号和进行标度变换等数据处理,所
以,单片机实现的脉冲量输入数据采集系统显示出独特的优越性。
3.5RS-232C串行总线数据通信
在实际的测量和控制过程中,经常需要进行信息的传输和交换。
数据传送的方式可分为并行传输和串行传输,相应的通信总线被称为并行总线和串行总线。
串行传输比并行传输所用的导线数少,传输距离比并行传输要远得多。
而且近年来,由于新型串行总线标准如USB、IEEE1394的出现,使串行总线的传输速度有了很大的提高,因此串行总线的应用越来越广。
3.5.1RS-232C总线标准接口及电气特性
RS-232C是美国电子工业协会EIA(ElectronicIndustryAssociation)制定的一种串行物理接口标准。
RS是英文“推荐标准”的缩写,232为标识符,C表示修改次数。
RS-232C标准接口的全称是“使用二进制进行交换的数据终端设备(DTE)和数据通信设备(DCE)之间的接口”。
RS-232C总线标准规定了21个信号和25个引脚,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道。
对于一个双工通信,仅需几条信号线就可实现,包括一条发送线、一条接收线和一条地线。
3.5.2电平转换芯片介绍
RS-232C规定的逻辑电平与一般的微处理器、单片机的逻辑电平是不一致的,其规定如下:
(1)驱动器的输出电平:
逻辑0:
+5~15V;逻辑1:
-5~-15V。
(2)接收器的输入检测电平:
逻辑0>+3V;逻辑1:
<-3V。
可以看出,RS-232C使用的是负逻辑,其逻辑电平与TTL电平显然是不匹配的。
为了实现RS-232C电平与TTL电平的连接,必须进行信号电平转换。
实现RS-232C标准电平与TTL电平间相互转换的接口芯片,目前常用的一种是MAX232。
MAX232的芯片引脚如图3.11所示。
引脚说明如下:
1)C0+、C0-、C1+、C1-是外接电容端。
2)R1IN、R2IN是两路RS-232C电平信号接收输入端。
3)R1OUT、R2OUT是两路转换后的TTL电平接收信号输出端,送80C320的RXD接收端。
4)T1IN、T2IN是两路TTL电平发送输入端,接80C320的TXD发送端。
5)T1OUT、T2OUT是两路转换后的发送RS-232C电平信号输出端,接传输线。
6)V+经电容接电源+5V。
7)V-经电容接地。
图3.11MAX232芯片
通信距离一般不超过15m,传输速率小于20kbit/s。
在要求信号传输快、距离远时,可采用RS-422A、RS-485等其他标准通信。
采用MAX232芯片的双机串行通信接口电路如图3.12所示。
从MAX232芯片中两路发送接收中任选一路连接。
请注意其发送与接收引脚的对应,否则可能对元器件或计算机串口造成永久性损坏。
图3.12单片机和PC通信
3.6人机通信接口
键盘、显示器是智能仪器实现人机交互、信息输出的重要手段。
目前,输入设备大都采用键盘,键盘是有若干个按键组成的开关矩阵,它是最简单的仪器输入设备,通过键盘输入数据或命令实现简单的人机对话。
输出设备比较多的是采用LED或LCD显示器。
3.6.1非编码键盘接口设计
1)非编码式键盘控制方式
应用最多的非编码式键盘结构形式是矩阵式键盘。
识别矩阵式键盘按键的基本方法有两种:
一种是行扫描(row—scanning)法。
另一种是线反转(1ine—reverse)法。
1.行扫描法行扫描法步骤如下:
①各行同时送低电平。
检查是否有键按下。
为了提高识别按键的效率。
CPU同时给各行送出低电平。
然后读回全部列线的状态。
若列线中有低电平存在。
说明有键按下;若列线均为高电平。
说明无键按下。
②消除键抖动。
若有键按下。
则通过软件延时几十毫秒。
再判断是否有键按下。
若某列线仍为低电平。
说明确实有键按下。
③逐行扫描。
求出按下键的键值。
如果确实有键按下。
则对键盘进行逐行扫描。
先使第一行为低电平。
然后读回列线的状态。
若列线状态全为高电平。
说明该行无键按下。
再扫描下一行。
使下一行为低电平。
并读回列线状态。
若某一列(如第一列)为低电平。
说明处于第二行第一列交叉处的键被按下。
行线状态与列线状态的组合确定了闭合键的位置。
称为位置码或特征码。
在矩阵键盘中为了编程方便。
需要求出按键的键值。
键值就是键盘中按键按一定顺序排列的编号。
以4×8矩阵键盘为例。
说明键值求取方法。
设置一行值寄存器及一列值寄存器。
初值均为0。
每扫描完一行后。
若无键按下。
则行值寄存器加08H;若有键按下。
行值寄存器保持原值。
转而求相应的列值。
列值为状态是低电平的列线号。
求列值的具体方法是。
将读人的列线状态带进位右移(或左移)。
每移位一次列值寄存器加1。
直至移入进位位是0为止。
最后将行值和列值相加。
即得对应的十六进制键值。
④等待闭合键释放。
为保证按键每闭合一次。
CPU只做一次处理。