APP下载

基于C8051F330D单片机的多路数据采集系统设计

2010-07-12杨瑞帆郭晓鹏崔顺

电子测试 2010年4期
关键词:寄存器端口单片机

杨瑞帆,郭晓鹏,崔顺

(西安石油大学机械工程学院 西安 710065)

0 引言

数据采集是获取信息的重要途径。通常一个数据采集系统把现场传感器采集到的模拟信号转变为数字信号,并完成数据处理、传输、显示、存储等操作。传统数据采集系统要使用大量的外围芯片,这需要主处理器控制、链接好各模块以保证各通道的畅通,不但需要较多的片选信号,而且模块测试所占用的I/O端口资源也较多,这样不但使系统设计体积较为庞大,而且开发成本高、设计效率也低。本文设计了一个基于C8051F330D单片机的多路数据采集系统,C8051F330D单片机除了具有标准的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设功能部件,将其运用到数据采集系统去实现对多个物理量的分时采集,可以较好地解决传统数据采集系统的不足。

1 采集系统结构及工作原理

采集系统构成如图1所示。传感器的作用是把电量或非电的物理量转变成模拟电量(电压、电流或频率等)。传感器输出的信号较弱,本设计系统中选用C8051F330D单片机内部自带的传感器,其分辨率约为2.34毫伏,需要将采集到的信号加以放大,这样在保证测量精度的同时也满足A/D转换器的量程在0~2.4V。传感器和电路中的器件常会产生噪声,这种噪声可以用滤波器来衰减掉,以提高模拟输入信号的信噪比。多路模拟开关用于选择采集哪路信号,相连的是模拟通道的转换部分,它包括采样/保持和A/D转换电路。采样/保持电路的作用是快速拾取模拟多路开关输出的子样脉冲,并保持幅值恒定,以提高A/D转换器的转换精度。采样/保持器输出的信号送至A/D模数转换器转换后,将测量数据送单片机进行分析处理,单片机执行相应控制操作,将测量结果存于存储器中[1-3]。

图1 采集系统构成图

2 系统的硬件设计

如图2所示,本系统以采集外部两路信号温度、压力为例,选用C8051F330D单片机通用I/O中的P0.4、P0.5端口分别输入两路模拟信号并转化为相应的电压值,P0.0作为电压基准端口。采集到的模拟数据经单片机内部A/D转换和内核处理后变为段码,送到段码驱动器驱动LED实现显示[4-6]。

需要注意的是:C8051F330D单片机模拟输入端口的工作电压都在3.3V左右;同时单片机的数据、时钟两输出端口被配置为漏极开路方式,都需要上拉电阻到5V电源,以保证输出的正常。译码器也需要接到5V电源上。

图2 采集系统硬件原理框图

根据硬件原理框图设计出的采集系统电路主要由电源部分、控制部分、显示部分、按键部分组成,各部分紧密连接,形成一套完善的测压、测温系统。

2.1 电源电路设计

图3 电源电路

C8051F330D的工作电压范围在2.7V~3.6V之间。作为供电装置,LM1117可以将输入的5V电压转化为3.3V电压输出,满足C8051F330D的工作电压要求。需要注意的是:电路的外接电源选5V,这样在经过LM1117转换后的3.3V电压适用于C8051F330D,同时5V电压满足显示电路中的74LS164移位寄存器以及单片机输出上拉的要求。

2.2 主控制芯片

控制任务由C8051F330D[7-8]单片机完成,采用串行通信接口SPI通信,C8051F330使用Silicon Labs的专利CIP-51微控制器内核,除了具有标准的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设功能部件,可以使用标准803x/805x的汇编器和编译器进行软件开发。设计中使用C8051F330D的内部ADC模块完成数据采集、量化、编码,使用内核模块完成数字信息的处理。

2.3 显示电路

显示电路如图4所示。它包括74LS164移位寄存器和LED数码显示管两部分。74LS164移位寄存器接收从C8051F330D内核转换出的4字节段码,当单片机发出传输结束的信号后,4个移位寄存器将送出的4个字节串行数据,转化为8位并行数据分别送往各自连接的LED数码管,采用静态显示的方式,驱动4位LED实现显示。

图4 显示电路

2.4 按键电路设计

按键电路如图5所示。

图5 按键电路

按下开关S1时单片机复位;按下开关S2时采集片内温度传感器的值;按下S3时,采集单片机的P0.5端口到GND之间的电压值;按下S4 时,采集与P0.4端口到GND之间的电压值。编写程序时,可以先进行复位,然后判断哪路开关按下,在第一路开关没按下时就跳到下一路开关处再进行判断,这样一直循环下去,直到判断有开关按下后,便对这个开关对应的一路开始模拟数据的采集。

3 系统软件设计

针对C8051F330单片机的软件开发,用汇编语言开发实现。编译工具选择keil 编译器。主程序流程框图如图6所示,主要分3大模块:程序初始化、采集转换和显示。根据选用的器件及C8051F330D单片机配置先完成程序的初始化,其主要内容是对数据采集中所涉及的寄存器的使能;第二大模块是对模拟数据的采集、转换、处理,当判断P1.1、P1.2、P1.3中的一个按下时,便进入这一过程;第三模块是数据的显示,由于两路电压显示原理相似,所以可以调用同一显示程序。调用显示程序,又可以完成温度的显示。

图6 数据采集系统程序流程图

4 实验结果及分析

实验中分别采集了两端口的温度、压力两物理量,由此转化的模拟值(电压)数据表1和表2所示。

表1 采集电路端口1的实验结果

表2 采集电路端口2的实验结果

由表1、表2可以看出,实验所得相对误差最小为0.27%,最大为-1.60%,准确度较高。分析原因,一方面是由于C8051F330片内ADC转换精度高,另一方面是由于编程中用到浮点数运算程序,大大降低了计算上的误差。

5 结束语

本文设计了一个基于C8051F330D单片机的多路数据采集系统。选用C8051F330D单片机是由于它具备集成度高、作稳定可靠、成本低廉、通用性强等特点。该数据采集模块采用多路参数采集方式,外接各种传感器后可应用于多种工况中的数据采集,如对油田油井压力、温度采集,对抽油机的运行、电机的运转状态监测等等,可为故障诊断提供可靠、全面的参数依据,从而保证各系统稳定、可靠的运行。

[1]肖忠祥.数据采集原理[M].西安:西北工业大学出版社,2001:1-20.

[2]李海真,孙运强,许鸿鹰.高精度多路温度采集模块硬件电路设计[J].电子测试,2008 (12) :58-64.

[3]曹俊琴,冯家鹏.基于单片机的多通道温度精确采集系统设计[J].机械工程与自动化, 2008 (2):17-18.

[4]潘琢金译.C8051F330/1混合信号ISP FLASH微控制器[M].北京:新华龙电子有公司, 2003 :1-130.

[5]张迎新, 雷 文, 姚静波.C8051F系列SOC单片机原理及应用[M].北京:国防工业出版社, 2005 :80-200.

[6]莫力.Protel电路设计[M].北京:国防工业出版社,2005 :5-60.

[7]潘峥嵘, 郭凯, 张岩, 陈晓宇.基于C8051F单片机抽油机数据采集模块的研究与实现[J].计算机工程与设计, 2009 ,30(20) :4596-4598.

[8]李华伟.基于C8051F 的气象数据采集系统[J].兵工自动化,2009 ,28(7) :75-76.

猜你喜欢

寄存器端口单片机
一种端口故障的解决方案
Lite寄存器模型的设计与实现
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
端口阻塞与优先级
分簇结构向量寄存器分配策略研究*
初识电脑端口
生成树协议实例探讨
Microchip推出两个全新PIC单片机系列