欢迎来到天天文库
浏览记录
ID:16277249
大小:328.50 KB
页数:14页
时间:2018-08-08
《单片机接口实验报告 桂电》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于VC与单片机数据采集系统设计接口实验报告题目:基于VC与单片机数据采集系统设计院(系):电子工程学院专业:测试计量技术及仪器学生姓名:陈剑学号:指导老师:李智职称:教授2009年6月30日2基于VC与单片机数据采集系统设计接口实验报告一、实验目的及意义(1)用微控制器实现对温度数据的采集;(2)对采集数据进行控制与显示;(3)将采集数据发送给PC机,学会用VC编写相应界面进行数据处理和显示;二、试验内容及方案论证在实际应用中,经常会遇到一些突发信号,需要对其进行高速采集,这种情况下采用高速的A/D自然成为首选。AD7862是AD
2、公司推出的一个高速,低功耗,双12位的A/D转换,单+5V供电,功率为60mW。它包含两个4us的延时的ADC,两个锁存器,一个内部的+2.5V参考电压和一个高速并行输出端口。有四个模拟输入通道,分为两组,由A0选择。每一组通道有两个输入(VA1&VA2orVB1&VB2),它们能同时的被采样和转化,保存相对的信号信息。它可以接受+10v的输入电压范围(AD7862-10),+2.5(AD7862-3)和0-2.5v(AD7862-2)。对模拟电压输入,具有过电保护功能,相对地,允许输入电压到达+17v,+7v,+7v,而不会造成损
3、害,本实验选用AD7862-10。其具有以下主要特点:1、4通道模拟输入,2路同时转换(内置2个可同时工作的12位集成AD转换器);2、4us转换时间,250ksps采样速率;3、可选模拟量输入±10V(AD7862-10);4、高速12位并行总线输出;5、内部提供+2.5V参考电压或者由外部提供参考电压;;6、单一电源工作。本实验采用的微处理器是STC89C52RC单片机。STC89C52RC单片机使用方便,它与AT89S52单片机具有相同的内核,内部有256Bytes片内RAM、8KFlashROM,支持串口下载,易于在线编程调
4、试,故采用这种单片机来做处理器。由于A/D的输出位数是12位,单片机的寄存器是8位的,所以要分成两次才能读得A/D转换的结果。本设计中,只需将单片机的两个IO口(P2、P0)分别与AD7862的DB0-DB11相连,即可完成数据采集基本硬件设计。本实验采用串口(RS232)将数据发送给PC机,波特率为9600、无校验;用VC++6.0编写相应的界面进行控制与显示。实验电路的结构框图设计如下:2基于VC与单片机数据采集系统设计微处理器STC89C52RCAD7862数据采集串口RS232PC机显示界面模拟信号输入(DC
5、AC)图1数据
6、采集系统结构框图如图,单片机控制AD进行数据采集,将采到的其中一路数据(共8字节)存入事先定义的数据缓冲区(共占8个字节),然后通过RS232串口发送到上位机,由PC进行相关数据处理,最后在界面上显示采集结果。本设计可以同时采集4路数据(AC
7、
8、DC),并可以显示电压幅值与相关应波形。三、硬件设计单片机与PC机通过串口进行通信,软件程序的设计和硬件电路的连接都很简单。对于硬件来说,只需要把单片机的串口发送管脚TXD和接收管脚RXD经过232芯片的电平转换通过DB9与PC机的I/O口直接相连就可以了。单片机串口为TTL电平,PC机串口
9、为232电平,故需要电平转换电路。实验采用MAX232进行电平转换,转换的电路如图2所示:图2:RS232电平与TTL电平转换电路AD7862硬件设计如下。其中R5为0欧姆电阻0欧电阻相当于很窄的电流通路,能够有效地限制环路电流,使噪声得到抑制。电阻在所有频带上都有衰减作用(0欧电阻也有阻抗),这点比磁珠强。2基于VC与单片机数据采集系统设计图3:AD7862硬件设计电路图四.软件设计(1)上位机设计下位机的工作有两个方面,一个是控制AD7862采集VB1模拟通道,得到8字节数据(一个通道占2个字节),并保存到内部RAM单元;另一方
10、面负责与上位机(PC)通信,将保存的数据发送到PC,让上位机做处理。下面是上位机处理数据的核心算法部分代码:voidCMSCommTestDlg::OnComm(){//TODO:AddyourcontrolnotificationhandlercodehereVARIANTvariant_inp;COleSafeArraysafearray_inp;LONGlen,k;intDataConut=0;BYTErxdata[2];//设置BYTE数组用于接受数据CStringstrtemp;if(ctrlComm.GetCommEve
11、nt()==2)//事件值为2表示接受缓冲区内有字符{variant_inp=ctrlComm.GetInput();//读缓冲区safearray_inp=variant_inp;//VARIANT型变量转换为COleSafeArr
此文档下载收益归作者所有