51单片机接口实验报告(桂电).docVIP

  • 15
  • 0
  • 约4.82千字
  • 约 14页
  • 2016-01-29 发布于贵州
  • 举报
51单片机接口实验报告(桂电)

接口实验报告 题 目:VC与单片机数据集院 (系): 电子工程学院 专 业: 测试计量技术及仪器 学生姓名: 学 号: 指导老师: 李 智 职 称: 教 授 200 年 月 日 接口实验报告 实验目的及意义用微控制器实现对温度数据的采集; 对采集数据进行控制与显示; 将采集数据发送给PC机,学会用VC编写相应界面进行数据处理和显示; 方案论证AD7862是一个高速,低功耗,双12位的A/D转换,单+5V供电。它包含两个4us的延时的ADC,两个锁存器,一个内部的+2.5V参考电压和一个高速并行输出端口。有四个模拟输入通道,分为两组,由A0选择。每一组通道有两个输入(VA1 VA2 or VB1 VB2),它们能同时的被采样和转化,保存相对的信号信息。它可以接受+10v的输入电压范围(AD7862-10),+2.5(AD7862-3)和0-2.5v(AD7862-2)对模拟电压输入,具有过电保护功能,相对地,允许输入电压到达+17v,+7v,+7v,而不会造成损害4通道模拟输入,2路同时转换(内置2个可同时工作的12位集成AD转换器); 2、4us转换时间,250ksps采样速率; 3、可选模拟量输入±10V(AD7862-10); 4、高速12位并行总线输出; 5、内部提供+2.5V参考电压或者由外部提供参考电压;; 6、单一电源工作。 本实验采用的微处理器是STC89C52RC单片机。STC89C52RC单片机使用方便,它与AT89S52单片机具有相同的内核,内部有256 Bytes片内RAM、8K Flash ROM,支持串口下载,易于在线编程调试,故采用这种单片机来做处理器。由于A/D的输出位数是12位,单片机的寄存器是8位的,所以要分成两次才能读得A/D转换的结果。本设计中,只需将单片机的两个IO口(P2、P0)分别与AD7862的DB0-DB11相连,即可完成数据采集基本硬件设计。 本实验采用串口(RS232)将数据发送给PC机,用VC++ 6.0编写相应的界面进行显示。 图1 数据采集系统结构框图 如图,单片机控制AD进行数据采集,将采到的其中一路数据(共8字节)存入事先定义的数据缓冲区(共占8个字节),然后通过RS232串口发送到上位机,由PC进行相关数据处理,最后在界面上显示采集结果。本设计可以同时采集4路数据(AC||DC),并可以显示电压幅值与相关应波形。 三、硬件设计TTL电平,PC机串口为232电平,故需要电平转换电路。实验采用MAX232进行电平转换,转换的电路如图2所示: 图2:RS232电平与TTL电平转换电路 AD7862硬件设计如下。其中R5为0欧姆电阻0欧电阻相当于很窄的电流通路,能够有效地限制环路电流,使噪声得到抑制。电阻在所有频带上都有衰减作用(0欧电阻也有阻抗),这点比磁珠强。 图3:AD7862硬件设计电路图 四.软件设计VB1模拟通道,得到8字节数据(一个通道占2个字节),并保存到内部RAM单元;另一方面负责与上位机(PC)通信,将保存的数据发送到PC,让上位机做处理。下面是上位机处理数据的核心算法部分代码: void CMSCommTestDlg::OnComm() { // TODO: Add your control notification handler code here VARIANT variant_inp; COleSafeArray safearray_inp; LONG len,k; int DataConut=0; BYTE rxdata[2]; //设置BYTE数组 用于接受数据 CString strtemp; if(ctrlComm.GetCommEvent()==2) //事件值为2表示接受缓冲区内有字符 { variant_inp=ctrlComm.GetInput(); //读缓冲区 safearray_inp=variant_inp; //VARIANT型变量转换为COleSafeArray型 len=safearray_inp.GetOneDimSize();//得到有效数据长度 f

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档