资源描述
课程名称: 数据采集与智能仪器
:
学号:
专业班级:
《数据采集与智能仪器》课程考核(大作业)
参考书 茂泰 《智能仪器原理及应用》(第三版) 电子工业
程德福 《智能仪器》(第二版)机械工业
第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芯片,他们除了ASCI的特点值外,还有以下优点:
1.随着VLSI工艺的不断提高,FPGA/CPLD的规模也越来越大,所能实现的功能也越来越强。
2.FPGA/CPLD的资金投入小,研制开发费用低。
3.FPGA/CPLD可反复的编程、擦除、使用或者在外围电路不动的情况下用不同的EPROM就可以实现不同的功能。
4.FPGA/CPLD芯片电路的实际周期短。
5.FPGA/CPLD软件易学易用,可以使设计人员能集中精力进行电路设计,FPGA/CPLD适合于正向设计,对知识产权保护有利。
第二章 .数据采集技术
1.设计一个MCS-51单片机控制的程控增益放大器的接口电路。已知输入信号小于10mv,要求当输入信号小于1mv时,增益为1000,而输入信号每增加1mv时,其增益自动减少一倍,直到100mv为止。(15分)
评分标准:正确设计硬件电路图(5分);正确编写控制程序(5分);完成仿真调试,实现基本功能(5分)。
设计与分析:
输入信号大小 放大倍数
0-1mv 1000
1-2mv 500
2-3mv 250
3-4mv 125
4-5mv 62.5
5-6mv 31.25
6-7mv 15.625
7-8mv 7.812
当输入信号大于7mv时,放大倍数为7.875,达到小于100mv,故该程控放大器可设计为8个档,可用8路模拟开关实现。
具体实现过程:
①将小于10mv的信号通过两级放大器放大500倍,输入ad转换器的信号幅度为0-5v。
②通过ad转换,程序选择信号不同峰值,控制8路模拟开关的导通,得到不同的放大倍数。
1.硬件电路图
2.程序
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit cs=P3^5;
sbit wr=P3^6;
sbit rd=P3^7;
sbit A1=P1^0;
sbit B1=P1^1;
sbit C1=P1^2;
uchar ad[4];
void delay(uchar xms)
{ uchar k,j;
for(k=xms;k>0;k--)
for(j=110;j>0;j--);}
uchar AtranD() //AD转换
{ //第一次
cs=0;
wr=1;
_nop_();
wr=0; //wr一段时间0,读取数据;
_nop_();
wr=1;
delay(1);
P0=0xff;// 读取到P1之前全置1;
rd=1;
_nop_();
rd=0;
_nop_();
ad[0]=P0;
_nop_();
rd=1;
_nop_();
//第二次
wr=1;
_nop_();
wr=0;
_nop_();
wr=1;
delay(1);
P0=0xff;
rd=1;
_nop_();
rd=0;
_nop_();
ad[1]=P0;
_nop_();
rd=1;
_nop_();
//第三次
wr=1;
_nop_();
wr=0;
_nop_();
wr=1;
delay(1);
P0=0xff;
rd=1;
_nop_();
rd=0;
_nop_();
ad[2]=P0;
_nop_();
rd=1;
while(1)
{
if(ad[1]>ad[0]&&ad[1]>ad[2])
return ad[1];
//丢弃第一次
ad[0]=ad[1];
ad[1]=ad[2];
wr=1;
_nop_();
wr=0;
_nop_();
wr=1;
delay(1);
P0=0xff;
rd=1;
_nop_();
rd=0;
_nop_();
ad[2]=P0;
_nop_();
rd=1;
}
}
void main()
{ uchar a;
a=AtranD();
while(1)
{ wr=1;
_nop_();
wr=0;
_nop_();
wr=1;
delay(1);
P0=0xff;
rd=1;
_nop_();
rd=0;
_nop_();
ad[3]=P0;
_nop_();
rd=1;
if(ad[3]>a)
a=ad[3];
if(a<=25)
{ C1=0;
B1=0;
A1=0;
}
else
if(a<=51)
{ C1=0;
B1=0;
B1=0;
A1=1;
}
else
if(a<=178)
{ C1=1;
B1=1;
A1=0;
}
else
{ C1=1;
B1=1;
A1=1;
}
}
}
A1=1;
}
else
if(a<=76)
{ C1=0;
B1=1;
A1=0;
}
else
if(a<=102)
{ C1=0;
B1=1;
A1=1;
}
else
if(a<=127)
{ C1=1;
B1=0;
A1=0;
}
else
if(a<=153)
{ C1=1;
3.仿真调试
当输入信号幅度为2.2mv时,模拟开关接通R2,输出信号幅度为520mv,大概放大250倍。
当输入信号幅度为4.5mv时,模拟开关接通R4,输出信号幅度为280mv,大概放大62倍。
2.运用双口RAM或FIFO存储器对教材中图2-22所示的高速数据采集系统进行改造,画出采集系统电路原理图,简述其工作过程。(15分)
评分标准:正确设计硬件电路图(10分);正确描述工作过程(5分)。
1. 原理图
2.工作过程:
IDT7206是IDT公司容量为16K×9的且引脚功能完全兼容的串行FIFO双端口RAM单向的FIFO双端口存储器。因为是一个FIFO(先入先出)存储器,所以没有绝对地址的概念,只有读指针和写指针的相对位置。当相对位置为0时,表明存储器空;为所用的存储器的容量时,表明存储器已满。AD7677为ADI 公司研制的16位、1MSPS的高速A/ D转换器。采集系统的原理图如上图所示。用一片AD7677和两片IDT7206构成了一个16位的、最高采样频率可达1MHz、每组最大采样点数为16K的数据采集系统。若要增加采集样本长度,只需要换IDT7206即可,其硬件的连接方式基本不变。
在此系统中单片机的作用只是控制何时采样,以及采样完成后对采样数据的处理,在采样过程中,单片机无须任何干预。至于一次采集多少次,可以由硬件决定,也可以有软件控制。在中断中,单片机首先关闭采样脉冲信号(使P0.0输出为0),然后把每一点数据分两次分别从IDT7206(存低位)和IDT7206(存高位)读出,进行处理。每组数据的数量应该由程序计数判断,当然也可以利用IDT7206的EF标志进行查询判断。在进行第二组数据的采集前,最好将IDT7206先复位,通过在IDT7206的RS引脚输入一个低脉冲,即在8031的P0.0引脚输出一个低脉冲。这样可以更充分地保证FIFORAM的读、写指针的稳定。
、
第3章 人机接口
本章要求掌握的容:键盘;LED、LCD、触摸屏
考试题(30分)
1 设计8031单片机与液晶显示模块LCM-512-01A的接口电路,画出接口电路图并编写上下滚动显示XXGCXY(6个大写英文字母)的控制程序(包含程序流程图)。
评分标准:正确设计硬件电路图(10分);正确画出程序流程图(5分);正确编写控制程序(5分);完成仿真调试(10分)
设计与分析:初始化LCD后,在上下行延时显示数据即可实现上下滚动的效果。
即 :显示第一行>延时>清屏>显示第二行>延时>循环。
1.硬件电路
2.流程图
3.程序
#include<reg52.h>
typedef unsigned char uint8;
//typedef unsigned int uint16;
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^5;
sbit BUSY=P0^7;
unsigned char code str1[]={"LUOSHUYU"};
void delay()
{ uint8 i,j;
for(i=0;i<255;i++)
for(j=0;j<111;j++);
}
void wait()
{
P0=0xff;
do
{ RS=0;
RW=1;
EN=0;
EN=1;
}
while(BUSY==1);
EN=0;
}
void w_dat(uint8 dat)
{
wait();
EN=0;
RS=1;
P0=dat;
RW=0;
EN=1;
EN=0;
}
void w_cmd(uint8 cmd)
{wait();
EN=0;
RS=0;
P0=cmd;
RW=0;
EN=1;
EN=0;
}
void Init_LCD()
{w_cmd(0x38);
w_cmd(0x0f);
w_cmd(0x06);
w_cmd(0x01);
}
void w_str(uint8 addr_start,uint8 *p)
{
w_cmd(addr_start);
while(*p!='\0')
{
w_dat(*p++);
}
}
main()
{
Init_LCD();
while(1)
{
w_str(0x80,str1);//显示第一行
delay();//延时
w_cmd(0x01);//清屏
w_str(0xc0,str1);//显示第二行
delay();//延时
w_cmd(0x01);
} }
3.仿真调试
第4章数据通信
本章要求掌握的容:RS232C、RS485串行总线,USB通用串行总线,PTR2000无线数据传输
考试题(30分)
1 设计PC机与MCS-51单片机的RS232C数据通信接口电路(单片机端含8位LED显示),编写从PC机键盘输入数字,在单片机的6位LED上左右滚动显示的通信与显示程序。
评分标准:正确设计硬件电路图(5分);正确画出程序流程图(5分);正确编写单片机通信程序(5分);在开发系统上运行,实现基本功能(10分);制作实物,实现基本功能,效果良好(5分)。
设计与分析:
仿真采用虚拟终端发送数据,收到数据后,将文本数据转换为整型数字,通过位选循环显示数字。
1. 硬件电路图
2. 程序流程图
3. 程序
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
u8 flag,i,k;
u8 a='0';
u8 code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x00};
u8 code table2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void Init()
{
SCON=0X50;
TMOD=0X20; //4800波特
PCON=0X80;
TH1=0XF3;
TL1=0XF3;
ES=1;
EA=1;
TR1=1;
}
void delay(u16 xms)
{ u8 j;
for(k=xms;k>0;k--)
for(j=110;j>0;j--);}
void main()
{
Init();
while(1){
for(i=0;i<8;i++){
P2=table2[i];
P0=table1[a-'0'];
delay(255);
delay(255);
} }}
void Usart() interrupt 4
{
a=SBUF;
RI = 0;
SBUF=a;
while(!TI); //等待发送数据完成
TI=0; }
4. 仿真调试
程序刚启动时,数码管滚动显示0;
从虚拟终端输入数字5,数码管滚动显示5;
宁可累死在路上,也不能闲死在家里!宁可去碰壁,也不能面壁。是狼就要练好牙,是羊就要练好腿。什么是奋斗?奋斗就是每天很难,可一年一年却越来越容易。不奋斗就是每天都很容易,可一年一年越来越难。能干的人,不在情绪上计较,只在做事上认真;无能的人!不在做事上认真,只在情绪上计较。拼一个春夏秋冬!赢一个无悔人生!早安!—————献给所有努力的人.
展开阅读全文