一个单片机串行数据采集传输模块的设计

上传人:豆浆 文档编号:11358699 上传时间:2017-10-13 格式:DOC 页数:6 大小:64KB
返回 下载 相关 举报
一个单片机串行数据采集传输模块的设计_第1页
第1页 / 共6页
一个单片机串行数据采集传输模块的设计_第2页
第2页 / 共6页
一个单片机串行数据采集传输模块的设计_第3页
第3页 / 共6页
一个单片机串行数据采集传输模块的设计_第4页
第4页 / 共6页
一个单片机串行数据采集传输模块的设计_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《一个单片机串行数据采集传输模块的设计》由会员分享,可在线阅读,更多相关《一个单片机串行数据采集传输模块的设计(6页珍藏版)》请在金锄头文库上搜索。

1、电子下载站 本站所有资料版权归原作者所有 严禁用于商业用途 转载请注明来源于:欢迎光临中国最大的电子工程师应用网站网址:一个单片机串行数据采集/传输模块的设计西安第二炮兵工程学院 180 分队(710025)吴勇军 陈祥初 赵军红 刘政波摘要 以 GMS97C2051 单片机为核心,采用 TLC254312 位串行 A/D 转换器,设计了一个串行数据采集/传输模块,给出了硬件原理图和主要源程序。关键词 串行 A/D 转换器 串行数据传输 GMS97C2051 单片机在微机测控系统中,经常要用到 A/D 转换。常用的方法是扩展一块或多块 A/D 采集卡。当模拟量较少或是温度、压力等缓变信号场合,

2、采用总线型 A/D 卡并不是最合适、最经济的方案。这里介绍一种以GNS97C2051 单片机为核心,采用 TLC254312 位串行 A/D 转换器构成的采样模块,该模块的采样数据由单片机串口经电平转换后送到上位机(IBMPC 兼容机)的串口 COM1 或 COM2,形成一种串行数据采集串行数据传输的方式。经实践调试证实:该模块功耗低、采样精度高、可靠性好、接口简便,有一定实用价值。1 主要器件介绍1.1TLC2543 串行 A/D 转换器模块采用 TI 公司的 TLC254312 位串行 A/D 转换器,使用开关电容逐次逼近技术完成 A/D 转换过程。由于是串行输入结构,能够节省 51 系列

3、单片机 I/O 资源,且价格适中。其特点有:(1)12 位分辨率 A/D 转换器;(2)在工作温度范围内 10s 转换时间;(3)11 个模拟输入通道;(4)3 路内置自测试方式;(5)采样率为 66kbps;(6)线性误差+1LSB(max)(7)有转换结束(EOC)输出;(8)具有单、双极性输出;(9)可编程的 MSB 或 LSB 前导;(10)可编程的输出数据长度。电子下载站 本站所有资料版权归原作者所有 严禁用于商业用途 转载请注明来源于:欢迎光临中国最大的电子工程师应用网站网址:TLC2543 的引脚排列如图 1 所示。图 1 中 AIN0AIN10 为模拟输入端;为片选端;DIN

4、为串行数据输入端;DOUT 为 A/D 转换结果的三态串行输出端;EOC 为转换结束端;CLK 为 I/O 时钟;REF+为正基准电压端;REF-为负基准电压端; VCC 为电源;GND 为地。1.2GMS97C2051 单片机GMS97C2051 是武汉力源公司和韩国 LG 公司联合推出的一种性能价格比极高的 8 位单片机,其指令系统与 MCS-51 系列完全兼容。GMS97C2051 与 AT89C2051 兼容(可直接替换) ,但其性能价格比优于AT89C2051。引脚排列如图 2 所示。1.3 电平转换器 MAX3232MAX3232 为 RS-232 收发器,简单易用,单 +5V 电

5、源供电,仅需外接几个电容即可完成从 TTL 电平到 RS-232 电平的转换,引脚排列如图 3 所示。2 硬件设计硬件电路如图 4 所示。单片机 GMS97C2051 是整个系统的核心,TLC2543 对输入的模拟信号进行采集,转换结果由单片机通过 P3.5(9 脚)接收,AD 芯片的通道选择和方式数据通过 P3.4(8 脚)输入到其内部的一个 8 位地址和控制寄存器,单片机采集的数据通过串口(3、2 脚)经 MAX3232 转换成 RS232 电平向上位机传输。图中串行 LCD 显示电路仅用于调试,对采集/传输的数据进行监测。电子下载站 本站所有资料版权归原作者所有 严禁用于商业用途 转载请

6、注明来源于:欢迎光临中国最大的电子工程师应用网站网址:3 单片机软件设计单片机程序主要包括串行数据采集模块“DATA_SAM”和串行数据传输模块“RS232 ”,调试所用到的显示子程序在此略去。TLC2543 的通道选择和方式数据为 8 位,其功能为:D7、D6、D5 和 D4 用来选择要求转换的通道,D7D6D5D4=0000 时选择 0 通道, D7D6D5D4=0001 时选择 1 通道,依次类推;D3 和 D2 用来选择输出数据长度,本程序选择输出数据长度为 12 位,即 D3D2=00 或 D3D2=10;D1 ,D0 选择输入数据的导前位,D1D0=00 选择高位导前。TLC254

7、3 在每次 I/O 周期读取的数据都是上次转换的结果,当前的转换结果在下一个 I/O 周期中被串行移出。第一次读数由于内部调整,读取的转换结果可能不准确,应丢弃。数据采集程序如下:DATA_SAM: MOV R0,#30H ;数据缓冲区首地址 30HR0MOV R1,#00000000B ;0 通道方式/ 通道数据 ACALL RD_AD ;第一次读取的转换结果可能不准确,丢弃。 MOV R1,#00010000B ;1 通道方式/ 通道数据 ACALL RD_AD ;送 1 通道方式/通道数据并读第 0 通道转换结果 MOV R0,R2 ;转换结果存放到数据缓冲区 ,下同 INC R0 MO

8、V R0,R3 INC R0 MOV R1,#00100000B ;2 通道方式/ 通道数据 ACALL RD_AD ;送 2 通道方式/通道数据并读第 1 通道转换结果 MOV R0,R2 INC R0 MOV RO,R3 INC R0 ;其它通道操作方式类推 RET 单片机通过编程产生串行时钟,并按时序发送与接收数据位,完成通道方式/通道数据的写入和转换结果的读出,程序如下,供数据采集模块“DATA_SAM” 调用。CLK EQU P3.3 DIN EQU P3.4 DOUT EQU P3.5 电子下载站 本站所有资料版权归原作者所有 严禁用于商业用途 转载请注明来源于:欢迎光临中国最大的

9、电子工程师应用网站网址:CS EQU P3.7 RD_AD: CLR CLK ;清 I/O 时钟 SETB CS ;设置片选为高 CLR CS ;设置片选为低 MOV R4,#08 ;先读高 8 位 MOV A,R1 ;把方式/通道控制字放到 A LOP1: MOV C,DOUT ;读转换结果 RLC A ;A 寄存器左移,移入结果数据位,移出方式/通道控制位 MOV DIN,C ;输出方式/通道位 SETB CLK ;设置 I/O 时钟为高 CLR CLK ;清 I/O 时钟 DJNZ R4,LOP1 ;R4 不为 0,则返回 LOP1 MOV R2,A ;转换结果的高 8 位放到 R2 中

10、 MOV A,#00H ;次籄寄存器 MOV R4,#04 ;再读低 4 位 LOP2: MOV C,DOUT ;读转换结果 RLC A ;A 寄存器左移,移入结果数据位 SETB CLK ;设置 I/O 时钟为高 CLR CLK ;清 I/O 时钟 DJNZ R4,LOP2 ;R4 不为 0,则返回 LOP2 MOV R3,A ;转换结果的低 4 位放到 R3 中 SETB CS ;设置片选为高 RET 串行数据传输模块包括串行口初始化子程序和数据传输子程序,各子程序分别如下。其中数据传输采用查询方式,也可以方便地改为中断方式。INIT_COM: MOV SCON,#50H ;串口方式 1

11、工作,8 位数据位,1 位停止位,无奇偶校验 MOV PCON,#80H ;SMOD=1,波特率增倍 MOV TMOD,#20H ;波特率设置,fOSC=12MHz,波特率=2*2400,N=0F3H MOV TH1,#0F3H MOV TL1,#0F3H SETB TR1 ;启动定时器 T1 RET RS232: MOV R0,#30H ;缓冲区首地址 30HR0 MOV R5,#22 ;发送数据长度R5 ,11*2=22 LOOP: 电子下载站 本站所有资料版权归原作者所有 严禁用于商业用途 转载请注明来源于:欢迎光临中国最大的电子工程师应用网站网址:MOV A,R0 ;取数据A MOV

12、SBUF,A ;数据SBUF WAIT: JBC TI,CONT ;判断发送中断标志,是 1 则转到 CONT,并清 TI SJMP WAIT CONT: INC R0 DJNZ R5,LOOP RET 4 上位机串口接收程序设计上位机接收数据所用 C 语言程序包括初始化子程序和接收子程序。各子程序分别如下:void init_com1(void)/*初始化子程序*/ outportb(0x3fb,0x80);/*线控制寄存器高位置 1,使波特率设置有效*/ outportb(0x3f8,0x18);/*波特率设置,与单片机波特率一致为 4800bps*/ outportb(0x3f9,0x0

13、0); outportb(0x3fb,0x03);/*线控制寄存器设置,8 位数据位,1 位停止位,无奇偶校验*/ outportb(0x3fc,0x03);/*Modem 控制寄存器设置,使 DTR 和 RTS 输出有效*/ outportb(0x3f9,0x00);/*设置中断允许寄存器,禁止一切中断*/ void receive_data(void)/*查询方式接收数据子程序*/ while(!kbhit() while(!(inportb(0x3fd)&0x01);/*若接收寄存器为空,则等待*/ printf(%x ,inportb(0x3f8);/*读取结果并显示*/ getch(

14、); 5 结论本文给出的硬件和软件均经过实践检验,并且已经按照 PC/104 总线制作成数据采集卡,使用很方便,能够满足对数据采样频率要求不是特别高的应用场合。参考文献1TLC2543 模数转换器数据手册及应用笔记.武汉力源电子股份有限公司,19992 一九九九年产品目录(第一期).武汉力源电子股份有限公司,1999电子下载站 本站所有资料版权归原作者所有 严禁用于商业用途 转载请注明来源于:欢迎光临中国最大的电子工程师应用网站网址:3 何立民.MS-51 系列单片机应用系统设计.北京:北京航空航天大学出版社,19994NEW RELEASES DATA BOOK(Volume V ).MAXIM,1996:2-612-72

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号