摘 要:本文以AT
关键字:AT89C51;数据采集;串口通讯
作者简介:严怀龙(1972-),江苏省靖江人,内蒙古乌海市永红机电成套设备有限责任公司电子工程师。
1 概述
在工业控制系统中,除了控制单元和执行单元外,还必须有反馈环节。在反馈环节中,最重要的就是对数据的采集。一般的工业控制中,数据有很多种形式,最常见的有电流电压的模拟量、以二进制形式输入的开关量以及以脉冲形式输入的脉冲信号。
本文设计一数据采集系统系统,系统以AT
如图1所示为设计的系统原理框图。系统选择一个串行的A/D转换芯片,用模拟开关作扩展,两个模拟开关即可扩展成16路的模拟量输入。开关量的采集可以直接用单片机的I/O,用两个并口即可完成16路的开关量采集。如图所示,AT
图1 系统原理图
2 硬件电路设计
系统硬件可以分成四个部分,分别为模拟量采集电路、开关量采集电路、脉冲量采集电路以及单片机与PC的串口通讯电路。下面分别作简单的介绍。
2.1 模拟量采集电路
模拟量的采集要用到A/D转换芯片,而且精度为12位,这里选择MAX1241 A/D转换器。MAX1241是一种低功耗、低电压的12位逐次逼近型ADC,最大非线性误差小于1LSB,转换时间9ms,内置快速采样/保持电路。MAX1241采用三线式串行接口,与单片机的接线简单,如图2所示[3]。图中两个电容是去藕电容,用以对电源进行滤波。Vi是采集电压的输入端,Vref是A/D转换器的参考电压。一般情况下可以接单片机的电源。
图2 MAX1241与单片机的接线图
系统要求对16路的模拟量进行采集,因此,只有一个A/D转换器就不够的,但如果用多个A/D转换器一方面会造成资源浪费,成本加大,另一方面单片机的I/O也不够,因此这里用两个8路模拟开关进行扩展,扩展成16路。如图1的原理图所示,系统选用两个CD4051模拟开关[3],并用单片机的四个I/O口控制两个模拟开关的通道选择端,在采集过程中,选择不同的通道进行数据采集。
2.2 开关量采集电路
对开关量的采集电路相对比较简单,因为开关量的状态只有0和1两种,所以只要用两个单片机的并口就可以了,这里用的是P0口和P2口。但是有一点需要说明的是: 由于AT
2.3 脉冲量采集电路
脉冲量信号是周期变化的信号,AT
2.4 通讯电路
该系统没有设计数据的显示系统,所以把采集到的数据发送到上位PC机上,与PC进行通讯。因为单片机与PC机的电平是不一样的,因此两者要进行数据交换,必须采用相应的电平转换电路。用得最多的就是RS232通讯方式,采用MAX232芯片即可完成。简单的电路如图3所示。
图3 通讯电路
3 软件设计
根据设计要求,按照实现功能的分类,软件部分主要完成四项任务:系统初始化、数据采集、数据处理、向PC机发送数据。在数据处理中,需要进行大量浮点数的乘除法和正弦、余弦运算,因此数据处理部分采用C语言编写,在Keil环境中模块化编程,充分利用C语言强大的计算能力。在数据采集部分中,MAX1241对时序要求比较严格,采用汇编语言实现,所有功能模块均为独立的C文件或ASM文件。而实现C语言和汇编语言的混合编程[2]是软件设计中的难点和关键之一。在设计中,汇编语言采用单独的文件,通过寄存器传递函数参数。程序流程图如图4所示。
这里给出MAX1214的控制程序,是用汇编语言编写,控制子程序完成一次A/D转换和输入,输入数据存放于R0,R1寄存器。
;寄存器及端口定义:
CS: BIT P1.0 ;片选信号位
DOUT: BIT P1.2 ;串行数据输入位
SCLK: BIT P1.1 ;驱动时钟位
DATA_BH: EQU R0 ;高字节数据存储单元
DATA_BL: EQU R1 ;低字节数据存储单元
CONT_H: EQU R0 ;高位取数计数器
CONT_L: EQU R1 ;低8位取数计数器
SADC_R: XRL A,A ;清A
MOV CONT_H,#04H ;高8位计数
MOV CONT_L,#08H ;低8位计数
CLR SCLK ;SCLK置“
CLR CS ;选中1241,启动转换
SADC END:JNB DOUT,SADC_ END ;检测A/D转换结束
READ_H: SETB SCLK ;
CLR SCLK ;产生一个驱动时钟
MOV C,DOUT ;输入一位数据
RLC A ;数据移位至ACC.0
DJNZ CONT_H,READ_H ;高 4位输入结束判别
MOV DATA_BH,A ;高 4位数据送寄存器
READ_L: SETB SCLK
CLR SCLK ;产生一个驱动时钟
MOV C,DOUT ;输入一位数据
RLC A ;数据移位置ACC.0
DJNZ CONT_L,READ_L ;低8位输入结束判别
MOV DATA_BL,A ;低8位数据送寄存器
SETB SCLK
CLR SCLK ;清 DOUT输出
SETB CS ;撤消片选
RET
图4 软件程序流程图
4 结束语
该系统以AT
参考文献
[1]孙涵芳.单片机原理及应用(修订版)北.京航空航天大学出版社,1996年.
[2]马忠梅.单片的C语言应用程序设计(第三版).北京航空航天大学出版社,2003年.
[3]于海生.微型计算机控制技术.北京:清华大学出版社,1999年.
相关热词搜索: 单片机 研讨 采集系统 分析 数据