导航:首页 > 操作系统 > 基于单片机的多路数据采集系统的设计

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

发布时间:2025-08-12 06:28:58

单片机如何进行数据采集

对于液压设备中的8个待测参数选用相应的传感器来来检测,试验时选取应变式传感器作为测试现场的工具。这些选用的检测元件输出都是标准的4-20mA微弱的电流信号,电流信号又经过由LM324组成的放大转换电路转换成0-5V的电压信号输入到C8051F020的模拟输入端,如图2所示,经内部集成的A/D转换器转换成相应的数字量。C8051F020将8路采样值作为液压设备现场的状况存入相应的内存单元。

3.2 LCD显示

为了使数据采集系统小巧美观,同时又获得较高的性价比,选用德彼克公司生产的DMF-50174蓝屏液晶显示器,该显示器是320×240点阵式液晶,图形和文本都可以显示。显示驱动控制芯片采用EPSON 公司的一种高性能LCD 控制器SED1335。硬件电路采用间接接法,如图3所示。用单片机的P5.0~P5.7口作为SED1335的DB0~DB7数据总线的输入通道。P4.5作为SED1335的片选信号, 配合地址信号A0实现SED1335 通过数据总线接收来自单片机的指令和数据。当A 0= 0, P4.6(WR)=0,P4.7(RD)= 1时, 实现指令的写入和从SED1335 中读取数据。当A 0= 1, P4.6(WR)= 0, P4.7(RD)=1时, 则是显示数据的写入,该功能通过软件实现。

3.3 数据通讯

单片机C8051F020的TX0、RX0及P0.2通过MAX485与上位机相连,进行串行通信,如图3所示。P0.2控制MAX485的状态或发送,用软件控制。RX0为单片机的串行输入端,接收上位机通过MAX485向单片机发送的数据。TX0为单片机的串行输出端,通过MAX485发送给上位机。

4 系统软件设计

4.1 软件设计总体上由两部分组成:一部分为单片机C8051F020

主程序设计,一部分为LCD液晶显示程序设计。由于用C语言编程可以降低程序的复杂度,提高程序的可读性和可修改性,所以本软件采用C51进行编程,keil μVision2编译器进行编译。

Ⅱ 单片机多路数据采集如何选通,是选择多通道的模拟开关还是多路复用器

AD输入的信号不能用模拟开关,更不能用多路复用器。模拟开关一般都有几百Ω的导通电阻,多路复用器是数字逻辑,就不用说了。
AD输入信号不得不在外部切换的话,唯一的方法就是用继电器。

--电子设计网dzsj

Ⅲ 基于51单片机的数据采集器ADC0808(含Keil程序和Proteus文件)

系统概述

本系统采用的模块包括AT89C51单片机、LCD1602显示屏以及ADCO808数据转换器。

本系统以AT89C51单片机为主控单元,通过电位器模拟采集信息,利用ADCO808数据转换器将模拟电压值转换为数字电压信号,并在LCD1602显示屏上显示。该数据采集器广泛应用于模拟信号传感器的数据转换,具有广泛的应用前景。

仿真概述

1. 利用LCD1602显示屏展示采集到的数据。

2. 通过电位器模拟采集信号的模拟量,并利用ADCO808数据转换器进行信号转换。

程序设计

使用Keil 51进行程序设计,当打开Proteus时,程序处于默认烧录状态。若未进行烧录,需将程序导入AT89C51单片机中即可运行系统(程序文件为hex后缀)。

Ⅳ 跪求大专单片机的毕业论文

智能化多路串行数据采集/传输模块的设计
广州市光机电工程研究中心 行联合
广州市方统生物科技有限公司 关 强
引言

随着电子技术的不断发展,目前对各种物理量的检测和控制都可得以实现。微机检测控制系统不仅运用到航天航空、机器人技术、纺织机械、食品加工等工业过程控制,而且已经成为日常各种家用电器当中的主要组成部分。其中,A/D(模拟数字转换)设备起着十分重要的作用。这样,一个系统中就会需要更多的A/D设备。一般是用扩展一块或多块A/D采集卡的方法去实现。当模拟量较少或是温度、压力等缓变信号场合,采用总线型A/D卡并不是最合适、最经济的方案。这里介绍一种以AT89C2051单片机为核心,采用TLC2543L 12位串行A/D转换器构成的采样模块,该模块的采样数据由单片机串口经电平转换后送到上位机(PC机)的串口COM1或COM2,形成一种串行数据采集串行数据传输的方式。

主要元件功能介绍
AT89C2051单片机
AT89C2051是ATMEL公司推出的一种性能价格比极高的 8位单片机,其指令系统与MCS-51系列完全兼容。引脚排列如图1所示。

TLC2543L串行A/D转换器
TLC2543L 采用SPI串行接口总线,SPI串行接口总线由Motorola公司提出,它是一种三线同步接口,分别为同步信号、输入信号和输出信号。另外芯片还有一根片选线,单片机通过片选线选通TLC2543L。其中,CLK为同步时钟脉冲,CS为片选线,DIN为单片机的数据输出和TLC2543L的数据输入线,DOUT为单片机的数据输入线和TLC2543L的数据输出线。图2为TLC2543L时序图。TLC2543L 是全双工的,即数据的发送和接收可同时进行。如果只是对TLC2543L写数据,单片机可以丢弃同时读入的数据;反之,如果只读数据,可以在命令字节后,写入任意数据。数据传送以字节为单位,并采用高位在前的格式。

模块采用TI公司的TLC2543L 12位串行A/D转换器,使用开关电容逐次逼近法完成A/D转换过程。串行输入结构,能够大大节省51系列单片机I/O资源,且价格适中。其特点有:
(1) 11个模拟输入通道;
(2) 转换时间10 s;
(3) 12位分辨率A/D转换器;
(4) 3路内置自测试方式;
(5) 采样率为66kbps;
(6) 线性误差+1LSB(max)
(7) 有转换结束(EOC)输出;
(8) 具有单、双极性输出;
(9) 可编程的MSB或LSB前导;
(10)可编程的输出数据长度。 TLC2543L的引脚排列如图3所示。图3中AIN0~AIN10为模拟输入端; 为片选端;DIN 为串行数据输入端;DOUT为A/D转换结果的三态串行输出端;EOC为转换结束端;CLK为I/O时钟;REF+为正基准电压端;REF-为负基准电压端;VCC为电源;GND为地。

电平转换器MAX232C
MAX232C为RS-232收发器,简单易用,单+5V电源供电,仅需外接几个电容即可完成从TTL电平到RS-232电平的转换,引脚排列如图4所示。

硬件设计
硬件电路如图5所示。

单片机AT89C2051是整个系统的核心,TLC2543L对输入的模拟信号进行采集,转换结果由单片机通过P3.5(9脚)接收,AD芯片的通道选择和方式数据通过P3.4(8脚)输入到其内部的一个8位地址和控制寄存器,单片机采集的数据通过串口(3、2脚)经MAX232C转换成RS232电平向上位机传输。

单片机软件设计
单片机程序主要包括串行数据采集/传输模块的系统信息、通道数、采集周期和通讯协议定义,以及数据采集和传输的标准子程序。
TLC2543L的通道选择和方式数据为8位,其功能为:D7、D6、D5和D4用来选择要求转换的通道,D7D6D5D4=0000时选择0通道,D7D6D5D4=0001时选择1通道,依次类推;D3和D2用来选择输出数据长度,本程序选择输出数据长度为12位,即D3D2=00或D3D2=10;D1,D0选择输入数据的导前位,D1D0=00选择高位导前。
TLC2543L在每次I/O周期读取的数据都是上次转换的结果,当前的转换结果在下一个I/O周期中被串行移出。第一次读数由于内部调整,读取的转换结果可能不准确,应丢弃。
数据采集程序如下:
sbit DATAIN=P1^1;
sbit CLOCK=P1^0;
sbit DATAOUT=P1^2;
sbit CS=P1^3;
bit datain_a_bit0()
{ bit m=0;
DATAOUT=1;
m=DATAOUT;
DATAIN=0;
Nop();
CLOCK=1;
Nop();
CLOCK=0;
Return(m);
}
bit datain_a_bit1()
{ bit m=0;
DATAOUT=1;
m=DATAOUT;
DATAIN=1;
Nop();
CLOCK=1;
Nop();
CLOCK=0;
Return(m);
}
单片机通过编程产生串行时钟,并按时序发送与接收数据位,完成通道方式/通道数据的写入和转换结果的读出,程序如下:
unsigned int Tlc2543L(unsigned char ch)
{unsigned char i,chch=0;<br>unsigned int xdata xxx=0;<br>unsigned int xdata y=0;<br>CS=0;<br>Chch=ch<<4;<br>Y=chch;<br>Y<<=8;<br>I=0;<br>While(I<12)<br>{if((y&0x8000)==0)<br>{if(datain_a_bit0()==0) xxx&=0xfffe;<br>else xxx|=0x0001;<br>if(I!=11) xxx<<=1;<br>}
else
{if(datain_a_bit1()==0) xxx&=0xfffe;<br>else xxx|=0x0001;<br>if(I!=11) xxx<<=1;<br>}
y<<=1;
I+=1;
}
CS=1;
Return(xxx);
}
串行数据传输模块包括串行口初始化子程序和数据传输子程序,各子程序分别如下。其中数据传输采用查询方式,也可以方便地改为中断方式。
Void rs232init()
{TMOD=0x20;<br>TH1=0xfd;<br>TR1=1;<br>SCON=0x50;<br>}
void receandtran()
{unsigned char da;<br>while(!RI)<br>RI=0;<br>Da=SBUF;<br>SBUF==da;<br>While(!TI);<br>TI=0;<br>}
上位机接收数据所用C语言程序包括初始化子程序和接收子程序。各子程序分别如下:
void cominit(void)
{
outportb(0x3fb,0x80);
outportb(0x3f8,0x18); /与单片机波特率一致为9600bps*/
outportb(0x3f9,0x00);
outportb(0x3fb,0x03); /8位数据位,1位停止位,无奇偶校验*/
outportb(0x3fc,0x03); /*Modem控制寄存器设置,使DTR和RTS输出有效*/
outportb(0x3f9,0x00); /*设置中断允许寄存器,禁止一切中断*/
}
void data_rece(void) /*查询方式接收数据子程序*/
{
while(!kbhit())
{
while(!(inportb(0x3fd)&0x01));/*若接收寄存器为空,则等待*/
printf("%x ",inportb(0x3f8)); /*读取结果并显示*/
}
getch();
}

智能化串行采集/传输模块在PCR仪中的应用
在PCR仪的电路设计中,因需要检测的信号很多,包括热盖的温度检测,散热器的温度检测,腔体内部的温度检测,气流的温度检测,光信号的检测等等,为了简化电路,节约成本,减小体积,在选择A/D转换电路时选用了SPI总线的TLC2543,该芯片有多达11路的模拟信号输入端,完全满足PCR仪电路设计的需要,一个芯片既能完成检测多个信号的功能,又能节约单片机的资源,图6是其硬件原理图。

结论
本文所述的智能化串行数据模块,可直接用于任何微机控制和检测系统中以取代原来的模数转换设计。经过实践检验,该模块功耗低、采样精度高、可靠性好、接口简便,有很高的实用价值。该智能模块的软件和硬件成功应用于生命科学仪器“热循环仪”的设计和实践中,使用方便,简单可行,节约成本,能够满足大多数数据采样的应用场合。资料来源:www.lw3721.com

阅读全文

与基于单片机的多路数据采集系统的设计相关的资料

热点内容
打印机打不了pdf文件 浏览:966
家用空调什么压缩机好 浏览:2
云服务器免费社区 浏览:378
图片加密解密c语言 浏览:910
排序算法的面试题 浏览:428
加密的密码转换 浏览:509
解压失败c盘还能用吗 浏览:347
可以封装app的影视网站源码 浏览:607
cn2服务器有什么优化 浏览:174
电脑如何上ftp服务器地址 浏览:39
单片机程序框架图 浏览:277
轻加app减肥效果怎么样 浏览:794
懒懒app怎么注销 浏览:792
密目网计算法规则 浏览:743
安卓711算什么水准 浏览:634
udpsocket编程linux 浏览:767
可以对某个盘加密吗 浏览:987
bds服务器如何弄插件 浏览:658
一核两g云服务器sa2 浏览:236
程序员知识宝库 浏览:178