




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机的数据采集系统研讨分析 摘 要:本文以 AT89C51 单片机为核心,设计一个基于 单片机的数据采集系统。系统可以采集 16 路模拟量,精度 为 12 位,16 路开关量和 2 路脉冲量,并将采集到的数据每 隔一分钟通过串口发送到 PC 机。 关键字:AT89C51;数据采集;串口通讯 作者简介:严怀龙,江苏省靖江人,内蒙古乌海市永红 机电成套设备有限责任公司电子工程师。 1 概述 在工业控制系统中,除了控制单元和执行单元外,还 必须有反馈环节。在反馈环节中,最重要的就是对数据的 采集。一般的工业控制中,数据有很多种形式,最常见的 有电流电压的模拟量、以二进制形式输入的开关量以及以 脉冲形式输入的脉冲信号。 本文设计一数据采集系统系统,系统以 AT89C51 单片 机为核心,AT89C51 是一个低电压,高性能 CMOS 8 位单片 机,片内含 4k bytes 的可反复擦写的 Flash 只读程序存储 器和 128 bytes 的随机存取数据存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元。 AT89C51 是一个低功耗高性能单片机,40 个引脚,32 个外 部双向输入/输出端口,同时内含 2 个外中断口,2 个 16 位 可编程定时计数器,1 个全双工串行通信口1,AT89C51 可 以按照常规方法进行编程,也可以在线编程,这给开发带 来方便。 如图所示为设计的系统原理框图。系统选择一个串 行的 A/D 转换芯片,用模拟开关作扩展,两个模拟开关即 可扩展成 16 路的模拟量输入。开关量的采集可以直接用单 片机的 I/O,用两个并口即可完成 16 路的开关量采集。如 图所示,AT89C51 单片机还有两个外部中断接口,即可用来 测量脉冲量的输入,采集其输入频率。单片机可以通过串 口与上位 PC 机进行通讯,把采集到的数据发送到上位机上。 图 1 系统原理图 2 硬件电路设计 系统硬件可以分成四个部分,分别为模拟量采集电路、 开关量采集电路、脉冲量采集电路以及单片机与 PC 的串口 通讯电路。下面分别作简单的介绍。 2.1 模拟量采集电路 模拟量的采集要用到 A/D 转换芯片,而且精度为 12 位, 这里选择 MAX1241 A/D 转换器。MAX1241 是一种低功耗、 低电压的 12 位逐次逼近型 ADC,最大非线性误差小于 1LSB,转换时间 9ms,内置快速采样保持电路。MAX1241 采用三线式串行接口,与单片机的接线简单,如图所示 3。图中两个电容是去藕电容,用以对电源进行滤波。Vi 是采集电压的输入端,Vref 是 A/D 转换器的参考电压。一 般情况下可以接单片机的电源。 图 MAX1241 与单片机的接线图 系统要求对 16 路的模拟量进行采集,因此,只有一个 A/D 转换器就不够的,但如果用多个 A/D 转换器一方面会造 成资源浪费,成本加大,另一方面单片机的 I/O 也不够, 因此这里用两个路模拟开关进行扩展,扩展成 16 路。如 图的原理图所示,系统选用两个 CD4051 模拟开关3, 并用单片机的四个 I/O 口控制两个模拟开关的通道选择端, 在采集过程中,选择不同的通道进行数据采集。 2.2 开关量采集电路 对开关量的采集电路相对比较简单,因为开关量的状 态只有 0 和两种,所以只要用两个单片机的并口就可以 了,这里用的是 P0 口和 P2 口。但是有一点需要说明的是: 由于 AT89C51 单片机的 P0 口内部没有上拉电阻,所以在 电路中必须加入外部上拉电阻,阻值可以是 4.7K10K。而 P2 口内部自带上拉电阻,所以不需外加上拉电阻。采集输 入电路如图系统原理图所示。 2.3 脉冲量采集电路 脉冲量信号是周期变化的信号,AT89C51 单片机有两个 外部中断 INT0 和 INT1 接口,利用这两个外部中断输入接 口,可以对脉冲量信号进行测量,脉冲信号可以直接送到 单片机的外部中断接口,也可以进行适当的整形后再送到 单片机的外部中断接口,如加入带施密特功能的反向器 74LS14。也可以用比较器进行整形,这样使单片机的采集 测量更加可靠,更加精确。 2.4 通讯电路 该系统没有设计数据的显示系统,所以把采集到的数 据发送到上位 PC 机上,与 PC 进行通讯。因为单片机与 PC 机的电平是不一样的,因此两者要进行数据交换,必须采 用相应的电平转换电路。用得最多的就是 RS232 通讯方式, 采用 MAX232 芯片即可完成。简单的电路如图所示。 图 通讯电路 3 软件设计 根据设计要求,按照实现功能的分类,软件部分主要 完成四项任务:系统初始化、数据采集、数据处理、向 PC 机发送数据。在数据处理中,需要进行大量浮点数的乘除 法和正弦、余弦运算,因此数据处理部分采用 C 语言编写, 在 Keil 环境中模块化编程,充分利用 C 语言强大的计算能 力。在数据采集部分中,MAX1241 对时序要求比较严格,采 用汇编语言实现,所有功能模块均为独立的 C 文件或 ASM 文件。而实现 C 语言和汇编语言的混合编程2是软件设计 中的难点和关键之一。在设计中,汇编语言采用单独的文 件,通过寄存器传递函数参数。程序流程图如图所示。 这里给出 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 置“0” CLR CS ;选中 1241,启动转换 SADC END:JNB DOUT,SADC_ END ;检测 A/D 转换结 束 READ_H: SETB SCLK ; CLR SCLK ;产生一个驱动时钟 MOV C,DOUT ;输入一位数据 RLC A ;数据移位至 ACC0 DJNZ CONT_H,READ_H ;高 4 位输入结束判别 MOV DATA_BH,A ;高 4 位数据送寄存器 READ_L: SETB SCLK CLR SCLK ;产生一个驱动时钟 MOV C,DOUT ;输入一位数据 RLC A ;数据移位置 ACC0 DJNZ CONT_L,READ_L ;低 8 位输入结束判别 MOV DATA_BL,A ;低 8 位数据送寄存器 SETB SCLK CLR SCLK ;清 DOUT 输出 SETB CS ;撤消片选 RET 图 4 软件程序流程图 4 结束语 该系统以 AT89C51 单片机为核心,可以对 16 路模拟量、 16 路数字开关量和两路脉冲量进行采集,模拟量采集精度 达到 12 位,在实际应用中,可以对电压信号进行直接采集, 如果要对传感器的标准电流量进行采集时,还需加入采样 电阻,把电流转换成电压后进行采集。对采集的脉冲量的 频率取决于单片机的时钟频率,一般不能高于单片机的运 行时钟,如单片机用 12MHz 的晶振,则采集的脉冲频率
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械技术笔试题及答案
- 学校消防知识培训课件与演练
- 学校消防安全知识培训课件
- 体育训练基地管理面试题库
- 高级数学人才必 备面试题库
- 农业人才选拔新标准村官面试题库解析
- 金融行业管理岗位挂牌名师面试题库
- 学校厨师基础知识培训课件
- 学前教育学说课课件
- 学写游记公开课件
- 保育师项目附件
- 电信装维人员服务规范
- 2025年安徽宣城市宣州区国有资本运营集团招聘笔试参考题库附带答案详解
- 2025年教师招聘考试教育法律法规高分题库及答案(共101题)
- 电厂水处理值班员(第二版)中级工
- DBJ04-T 312-2024 湿陷性黄土场地勘察及地基处理技术标准
- 电子信息科学与技术单选题100道及答案解析
- (一模)2025年广东省高三高考模拟测试 (一) 政治试卷(含官方答案)
- 研学基地的运营模式与管理
- 2020低压交流配网不停电作业技术导则
- 政府采购招标代理服务风险控制措施
评论
0/150
提交评论