×
单片机 > 单片机程序设计 > 详情

单片机技术在数据采集及监测过程中的应用

发布时间:2020-06-23 发布时间:
|
0 引言
    软件方面,指令周期短,同时还具有乘除法指令,多种形式的位操作类指令,逻辑运算类指令也独具特色。通过信号调制电路,将输出电流、电压及电位信号转换成0到5V的标准信号,再通过串行A/D转换芯片ADC0834转换成数字信号供存储,以显示和打印。硬件抗干扰方面用到MAX707,对电源起到监控作用,在上电和掉电时自动复位。实时时钟方面用到DS12887新型时钟芯片,断电情况下运行十年以上不丢失数据,计秒、分、时、天、星期、日、月、年,并有闰年补偿功能,可以用二进制数码或BCD码表示时间日历和警报。软件结构设计中采用模块化程序设计,包含数字滤波,软件看门狗等软件抗干扰子程序,为恒电位仪增添了外围的智能系统,方便用户分析、处理数据,了解仪器的工作情况,从而进行有效的处理。
    主要功能介绍:
    (1)信号的数据采集。输出电压为0~100V,电流为0~100A,电位为-2~0V,输出(显示、打印)保留一位小数。
    (2)人机对话功能。通过键盘对时间进行更正设定,选择显示参数及相应的功能。
    (3)打印输出。
    (4)报警功能。当系统出现故障时,如输出开路、过流等故障,蜂鸣器输出报警,以提醒用户排除故障。

1 硬件设计
    以8031单片机为核心,8031单片机有一个8位的CPU,一个128字节的RAM,21个特殊功能寄存器,4个8位并行I/O口,1个全双工异步串行端口,2个16位定时器/计数器,5个具有优先级别的中断源。在8031外接一片程序存储器就可以构成一个有完整功能的微机应用电路。

[page]

2 软件设计
2.1 主程序
    功能:进入程序先进行初始化,对数据地址单元进行分配,设定键盘工作方式,存储更新时间,接着调用数据采集模块,再根据按下的键转相应的子程序。每秒采集一次数据,每两小时存储一次数据,并判断存储数据个数是否到,到后则更新存储区地址,即重新从数据存储区首地址开始存储数据,数据存储容量为8k。


2.2 键盘功能程序
    功能:通过按键引起8031中断,转相应的功能子程序以实现相应的功能。这些功能有时间设定,分别可以对年、月、日、时、分进行设定,但不能对秒设定,电压、电流、电位的显示切换,即时打印、复位等。

[page]

2.3 数据采集子程序
    0834的功能和特点:8位串行逐次逼近模数转换器,占用I/O口线少,通过信号线引入的干扰也少;易于和微处理器连接;满比例尺工作或用5V基准电压;地址逻辑多路器选通的4输入通道;单5V供电,输入范围0~5V;输入和输出与TTL和CMOS兼容;在Fclock=250kHZ(时钟频率)时,转换时间为32微秒;总非调整误差1LSB。
    工作时序及过程:
    置CS(非)为低,使所有逻辑电路使能,转换器初始化。CS(非)在整个转换过程必须一直保持为低。接着从处理器接收一个时钟,在每个时钟的上跳变化时,DI端的数据移入多路器地址移位寄存器。第一位为逻辑高,表示启始位。紧接的3到4位是配置位。在连续的每个时钟的上跳变化时,启始位和配置位移入移位寄存器。当启始位移入多路器寄存器的开始位置后,输入通道选通,转换开始。SAR状态输出(SARS)变为高表示转换过程正在进行中。DI端在转换过程中与多路器的移位寄存器之间是关断的。


    一个时钟的时间间隔被自动插入,以使选定的多路通道稳定。DO脱离高阻状态,提供一个时钟的时间间隔的低电平,使多路器稳定。SAR比较器把从电阻梯级网络输出的逐次信号和输入模拟信号进行比较。比较器的输出指出模拟输入大于还是小于电阻梯级网络的输出。在转换过程中,转换数据同时从DO端输出,以最高位(MSB)开头。经8个时钟后,转换完成,SARS变为低。TLC0834在输入以最高位(MSB)开头的数据流后,又以最低位(LSB)开头重输出一遍前面的数据流,当CS(非)变为高,内部所有寄存器清零。此时,输出电路变为高阻状态。如果希望开始另一轮转换,CS(非)必须做一个从高到低的跳变,后面紧跟地址数据。此外,DI和DO可以连在一起,通过一根线连到处理器的一个双向I/O口,因为DI端只在多路器寻址时被检测,而此时DO端为高阻状态。
2.3.1 数据采集模块
    由于8031无专门的供串行A/D转换的时序接口,故用8031的P1.0口模拟TLC0834进行A/D转换所需的时序。DI为数据输入口,DO为数据输出口,SARS为输出口。
2.3.2 数字滤波子程序
    数值滤波子程序采用“去掉一个最高分,去掉一个最低分”的方法,其具体做法为:连续采样几次,将其求累加和,同时找出其中的最大值和最小值,再从累加和里减去最大值和最小值,求剩下数据的平均值,即得有效采样值。该程序为每个数据连续采集6次,最终结果送A,这样就可以消除干扰的影响,提高所采集数据的真实性,防止干扰所引起的偶然性误差。
2.3.3 数据转换子程序
    功能:由于所采集的信号都是转换成0~5V的标准信号,以满足A/D转换要求,所以在显示和打印时,应经过乘以相应的系数转换成实际值。同时由于计算机所用的码制大多为二进制或十六进制也应将之转换成符合人们习惯的十进制数供显示和打印。
    入口:被转换数据放在A中,出口:转换结果,十位放R6中,个位放R5中,小数位放R4中。
    二进制转换成十进制子程序:
    由于计算机的数据代码通常为二进制或十六进制,不符合人们的习惯,通过该子程序功能可转换成符合人们习惯的十进制数供显示和打印。入口一R2R3,出口一R0R1R2R3R4R5(6位BCD码)
2.3.4 实时时钟芯片DS12887功能程序
    带RAM的实时时钟DS12887是DALLAS公司最成功的产品,其主要特点:断电情况下运行十年以上不丢失数据,计秒、分、时、天、星期、日、月、年,并有闰年补偿功能,可以用二进制数码或BCD码表示时间日历和警报。
    内部RAM及寄存器功能。DS12887内部具有128个非易失性RAM,即当外部电压低于3V时,外部Vcc被关闭,内部锂电池被接通继续为实时时钟供电,并保护内部RAM存储器中的数据。

[page]

2.3.5 8279显示功能子程序
    8279是一种通用的可编程的键盘/显示器接口器件,可对64个开关矩阵组成的键盘进行自动扫描,接收键盘的输入信息,并在有键输入时向单片机请求中断。能够对8位或16位LED自动扫描,使显示器缓冲区的内容在LED上显示出来。
    8279通过对键盘进行直接管理,简化单片机系统的软件设计,提高单片机的工作效率和可靠性。

3 打印程序
    通过键设定可进行按月或即时打印,方便用户详细分析数据,了解工作情况及数据状况。



4 结论
    单片机具有功能齐全、种类多、便于选择使用的特点。通过对放大电路、8031单片机、数据采集、串行A/D转换、程序存储器、数据存储器的扩展、外围芯片DS12887、可编程键盘8279的详细研究与实践,开发者可根据不同的用途和要求,设计出性价比较高的单片机控制装置。可广泛应用于低成本的自动控制采集系统的开发及应用。

关键字:8031单片机  数据采集  AD转换 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32 USB HID 键盘