武汉理工大学数据采集与智能仪器大作业《数据采集与智能仪器》课程考核(大作业)武汉理工大学信息学院参考书赵茂泰《智能仪器原理及应用》(第三版)电子工业出版社程德福《智能仪器》(第二版)机械工业出版社第1章概述本章要求掌握的内容:智能仪器分类、基本结构及特点、智能仪器设计的要点考试题(10分)1 智能仪器设计时采用CPLD/FPGA有哪些优点?第2章数据采集技术本章要求掌握的内容:数据采集系统的组成结构、模拟信号调理、A/D转换技术、高速数据采集与传输、D/A转换技术、数据采集系统设计考试题(30分)1 设计一个MCS-51单片机控制的程控增益放大器的接口电路。
已知输入信号小于10mv,要求当输入信号小于1mv时,增益为1000,而输入信号每增加1mv时,其增益自动减少一倍,直到100mv为止。
(15分)评分标准:正确设计硬件电路图(5分);正确编写控制程序(5分);完成仿真调试,实现基本功能(5分);2 运用双口RAM或FIFO存储器对教材中图2-22所示的高速数据采集系统进行改造,画出采集系统电路原理图,简述其工作过程。
(15分)评分标准:正确设计硬件电路图(10分);正确描述工作过程(5分);第3章人机接口本章要求掌握的内容:键盘;LED、LCD、触摸屏考试题(30分)1 设计8031单片机与液晶显示模块LCM-512-01A的接口电路,画出接口电路图并编写上下滚动显示XXGCXY(6个大写英文字母)的控制程序(包含程序流程图)。
评分标准:正确设计硬件电路图(10分);正确画出程序流程图(5分);正确编写控制程序(5分);完成仿真调试(10分)第4章数据通信本章要求掌握的内容:RS232C、RS485串行总线,USB通用串行总线,PTR2000无线数据传输考试题(30分)1 设计PC机与MCS-51单片机的RS232C数据通信接口电路(单片机端含8位LED 显示),编写从PC机键盘输入数字,在单片机的6位LED上左右滚动显示的通信与显示程序。
评分标准:正确设计硬件电路图(5分);正确画出程序流程图(5分);正确编写单片机通信程序(5分);在开发系统上运行,实现基本功能(10分);制作实物,实现基本功能,效果良好(5分)。
第一章概述1 智能仪器设计时采用CPLD/FPGA有哪些优点?FPGA/CPLD芯片都是特殊的ASIC芯片,他们除了ASIC的特点之外,还有以下优点:随着VLSI工艺的不断提高,FPGA/CPLD的规模也越来越大,所能实现的功能越来越强可以实现系统集成;(1)FPGA/CPLD的资金投入小,研制开发费用低;(2)FPGA/CPLD可反复的编程、擦除、使用或者在外围电路不动的情况下用不同的EPROM就可实现不同的功能;(3)FPGA/CPLD芯片电路的实际周期短;(4)FPGA/CPLD软件易学易用,可以使设计人员更能集中精力进行电路设计。
FPGA/CPLD适合于正向设计,对知识产权保护有利。
第二章数据采集技术1 设计一个MCS-51单片机控制的程控增益放大器的接口电路。
已知输入信号小于10mv,要求当输入信号小于1mv时,增益为1000,而输入信号每增加1mv时,其增益自动减少一倍,直到100mv为止。
(15分)评分标准:正确设计硬件电路图(5分);正确编写控制程序(5分);完成仿真调试,实现基本功能(5分);分析要求:当输入信号为<1mv时候,增益为1000;当输入信号为1mv<V<2mv时候,增益为500;当输入信号为2mv<V<3mv时候,增益为250;当输入信号为3mv<V<4mv时候,增益为125;当输入信号为4mv<V<5mv时候,增益为62.5;当输入信号为5mv<V<6mv 时候,增益为31.25;当输入信号6mv<V<7mv时候,增益为15.625;当输入大于7mv时候,输出等于输入即可。
实验硬件电路图:图 1 增益硬件电路图实验程序:#include <reg52.h>#include "LCD1602.c"#include "TLC549.c"bit flag=0;uchar Table[90], times=0;float code Av[10]={1000.000,500.000,250.000,125.000,62.500,31.250,15.625, 12.500,11.100,10.000};unsigned char code C[10]={7,6,5,4,3,2,1,8,16,24};void initT0(){//定时器T0初始化TMOD=0x01;TH0=(65536-222)/256;TL0=(65536-222)%256;ET0=1;TR0=1;EA=1;}void writeLCD_com(uchar com);void writeLCD_data(uchar dat);void write_string(uchar col,uchar line,uchar *table);void LcdInit();uint GetAD();void main() {char k,Ap;char volmax=0;float f;LcdInit();initT0();while(1) {if(flag) {for(k=0;k<90;k++)//排序求峰值{if(Table[k]>volmax)volmax=Table[k];}volmax=volmax*2;if(volmax<100) {write_string(0,2,"Vpp_in=");//在第一行显示"Vpp_in="write_string(0,13,"mV"); //在第一行显示单位"mV"writeLCD_com(0x80+9);writeLCD_data(volmax/100+48);//显示输入信号峰值writeLCD_data(volmax%100/10+48);writeLCD_data('.');writeLCD_data(volmax%10+48);Ap=(int)(volmax/10);P1=C[Ap];f=Av[Ap];write_string(1,2,"Av=");//在第二行显示"Av="writeLCD_com(0xc0+5);writeLCD_data(f/1000+48);writeLCD_data((int)f%1000/100+48);//显示该输入电压对应的增益writeLCD_data((int)f%100/10+48);writeLCD_data((int)f%10+48);writeLCD_data('.');writeLCD_data((int)(f*10+0.5)%10+48);}else{write_string(1,6,"Wrong input!");//当输入电压超过10mv时提示错误P1=0x00;}flag=0;//LCD显示完毕后停止本次工作}}}void T0time() interrupt 1{//定时器T0中断服务程序TH0=(65536-222)/256;TL0=(65536-222)%256;Table[times]=GetAD();//有中断请求则采样times++;if(times==90){TR0=0;//采样完毕TR=0times=0;flag=1;}}仿真结果图:图 2 仿真结果图分析:根据仿真结果,可得知达到了题目要求的增益效果,实验结果成功。
2 运用双口RAM或FIFO存储器对教材中图2-22所示的高速数据采集系统进行改造,画出采集系统电路原理图,简述其工作过程。
(15分)评分标准:正确设计硬件电路图(10分);正确描述工作过程(5分);硬件电路图:图 3 硬件电路图工作过程:IDT7206是IDT公司容量为16K×9的且引脚功能完全兼容的串行FIFO双端口RAM 单向的FIFO双端口存储器。
因为是一个FIFO(先入先出)存储器,所以没有绝对地址的概念,只有读指针和写指针的相对位置。
当相对位置为0时,表明存储器空;为所用的存储器的容量时,表明存储器已满。
AD7677为ADI 公司研制的16位、1MSPS的高速A/ D转换器。
采集系统的原理图如上图所示。
用一片AD7677和两片IDT7206构成了一个16位的、最高采样频率可达1MHz、每组最大采样点数为16K的数据采集系统。
若要增加采集样本长度,只需要换IDT7206即可,其硬件的连接方式基本不变。
在此系统中单片机的作用只是控制何时采样,以及采样完成后对采样数据的处理,在采样过程中,单片机无须任何干预。
至于一次采集多少次,可以由硬件决定,也可以有软件控制。
在中断中,单片机首先关闭采样脉冲信号(使P1. 1输出为0) ,然后把每一点数据分两次分别从IDT7206(存低位)和IDT7206(存高位)读出,进行处理。
每组数据的数量应该由程序计数判断,当然也可以利用IDT7206的EF标志进行查询判断。
在进行第二组数据的采集前,最好将IDT7206先复位,通过在IDT7206的RS引脚输入一个低脉冲,即在8031的P1. 0引脚输出一个低脉冲。
这样可以更充分地保证FIFORAM的读、写指针的稳定。
第三章人机接口1 设计8031单片机与液晶显示模块LCM-512-01A的接口电路,画出接口电路图并编写上下滚动显示XXGCXY(6个大写英文字母)的控制程序(包含程序流程图)。
评分标准:正确设计硬件电路图(10分);正确画出程序流程图(5分);正确编写控制程序(5分);完成仿真调试(10分)硬件电路图:图 4 液晶显示硬件电路图程序流程图:图 5 程序流程图程序代码:#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar code table[]="XXGCXY";sbit RS=P2^0;sbit RW=P2^1;sbit EN=P2^2;uchar num;/****************延时函数*****************/ void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/*****************写数据******************/ void write_data(uchar date){P0=0xff;RS=1;RW=0;P0=date;delay(5);EN=1;delay(5);EN=0;}/******************写命令*******************/void write_com(uchar com){P0=0xff;RS=0;RW=0;P0=com;delay(5);EN=1;delay(5);EN=0;}/*****************初始化函数*******************/void Init_LCD1602(){EN=0;write_com(0x38); //设置16*2显示,5*7点阵,8位数据接口write_com(0x0c);//设置开显示,不显示光标write_com(0x06);//写一个字符后地址指针加一write_com(0x01);//显示清0,数据指针清0}/*******************主函数*******************/void main(){Init_LCD1602();while(1){write_com(0x80);for(num=0;num<6;num++){write_data(table[num]);delay(5);}delay(200);write_com(0x01);write_com(0xc0);for(num=0;num<6;num++){write_data(table[num]);delay(5);}delay(200);write_com(0x01);}}仿真结果图:图 6 仿真运行结果图第四章数据通信1 设计PC机与MCS-51单片机的RS232C数据通信接口电路(单片机端含8位LED显示),编写从PC机键盘输入数字,在单片机的6位LED上左右滚动显示的通信与显示程序。