智能仪器大作业

更新时间:2024-01-27 21:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程名称:数据采集与智能仪器姓 名:学 号:班 级:

《数据采集与智能仪器》课程考核(大作业)

武汉理工大学信息学院

参考书 赵茂泰 《智能仪器原理及应用》(第三版) 电子工业出版社 程德福 《智能仪器》(第二版)机械工业出版社

第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章 概述 考试题(10分)

1 智能仪器设计时采用CPLD/FPGA有哪些优点?

答:FPGA/CPLD芯片都是特殊的ASIC芯片,他们除了ASIC的特点之外,还有以下优点:(1)随着VLSI工艺的不断提高,FPGA/CPLD的规模也越来越大,所能实现的功能越来越强可以实现系统集成;(2)FPGA/CPLD的资金投入小,研制开发费用低;(3)FPGA/CPLD可反复的编程、擦除、使用或者在外围电路不动的情况下用不同的EPROM就可实现不同的功能;(4)FPGA/CPLD芯片电路的实际周期短;(5)FPGA/CPLD软件易学易用,可以使设计人员更能集中精力进行电路设计。FPGA/CPLD适合于正向设计,对知识产权保护有利。

第2章 数据采集技术 考试题(30分)

1、设计一个MCS-51单片机控制的程控增益放大器的接口电路。已知输入信号小于10mv,要求当输入信号小于1mv时,增益为1000,而输入信号每增加1mv时,其增益自动减少一倍,直到100mv为止。(15分)

评分标准:正确设计硬件电路图(5分);正确编写控制程序(5分);完成仿真调试,实现基本功能(5分);

1.设计原理及简介

程控放大器利用选通开关,控制放大器的反馈电阻阻值,实现改变放大倍数的原理工作。这里采用两片8选1模拟开关器件CD4051作为放大器反馈电阻选择开关,通过两两电阻并联得到32种放大倍数。下面有程序将电阻组合一一列出并与芯片引脚相对应

然后是单片机P0口控制液晶显示器的输出

采用TLC549作为A/D转换芯片,在仿真图左上方。这里通过A/D转换将模拟输入量转换成数字量串行输出,通过P2.5输入。 2.硬件电路图

3.程序框图

4.程序

#include \#include \

#define uchar unsigned char #define uint unsigned int

sbit cs = P3 ^ 5;

sbit intr = P3 ^ 4; sbit wr = P3 ^ 6; sbit rd = P3 ^ 7; sbit a1 = P1 ^ 0; sbit a2 = P1 ^ 1; sbit a3 = P1 ^ 2; sbit a4 = P1 ^ 3;

sbit a5 = P1 ^ 4; sbit a6 = P1 ^ 5;

uchar d[4];

/******************************* **********

延时

******************************** *********/

void delayms(uchar n) {

uchar i, j;

for (i = 0; i < n; i++) for (j = 0; j < 110; j++); }

/******************************* **********

AD转换

******************************** *********/

uchar adctrans() {

cs = 0; wr = 1; _nop_(); wr = 0; _nop_(); wr = 1; delayms(1);

// 读取转换后的值 P2 = 0xff; rd = 1; _nop_(); rd = 0; _nop_(); d[0] = P2; _nop_(); rd = 1; _nop_(); wr = 1; _nop_(); wr = 0; _nop_(); wr = 1; delayms(1);

// 读取转换后的值 P2 = 0xff; rd = 1; _nop_(); rd = 0; _nop_(); d[1] = P2; rd = 1; wr = 1; _nop_(); wr = 0; _nop_(); wr = 1; delayms(1);

// 读取转换后的值 P2 = 0xff; rd = 1; _nop_(); rd = 0; _nop_(); d[2] = P2; rd = 1; while (1) {

if (d[0]d[2]) return d[1]; d[0] = d[1]; d[1] = d[2]; wr = 1; _nop_(); wr = 0; _nop_(); wr = 1; delayms(1);

// 读取转换后的值 P2 = 0xff; rd = 1; _nop_(); rd = 0; _nop_(); d[2] = P2; rd = 1;

} }

/******************************* **********

主函数

******************************** *********/ void main() {

uchar a; a4 = 0; a5 = 0; a6 = 0;

a = adctrans();

while (1) {

wr = 1; _nop_(); wr = 0; _nop_(); wr = 1;

delayms(1);

// 读取转换后的值 P2 = 0xff; rd = 1; _nop_(); rd = 0; _nop_(); d[3] = P2; _nop_(); rd = 1;

if (d[3]>a) a = d[3];

if (a <= 25) {

a1 = 0; a2 = 0; a3 = 0; }

else if (a <= 51) {

a1 = 1; a2 = 0; a3 = 0; }

else if (a <= 76) {

a1 = 0; a2 = 1; a3 = 0; }

else if (a <= 102) {

a1 = 1; a2 = 1; a3 = 0; }

else if (a <= 127) {

a1 = 0; a2 = 0; a3 = 1; }

else if (a <= 153) {

a1 = 1; a2 = 0; a3 = 1; }

else if (a <= 178) {

a1 = 1; a2 = 0; a3 = 1; a4 = 1; }

else if (a <= 204) {

a1 = 1; a2 = 0; a3 = 1; a4 = 0; a5 = 1; }

else if (a <= 229) {

a1 = 1; a2 = 0; a3 = 1; a4 = 1; a5 = 1; }

else if (a <= 255) {

a1 = 1; 5.仿真结果

}

}

}

a2 = 0; a3 = 1; a4 = 0; a5 = 0; a6 = 1;

图1波形显示情况

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即可,其硬件的连接方式基本不变。

在此系统中单片机的作用只是控制何时采样,以及采样完成后对采样数据的处理,在采样过程中,单片机无须任何干预。至于一次采集多少次,可以由硬件决定,也可以有软件控制。在中断中,单片机首先关闭采样脉冲信号(使P1. 1输出为0) ,然后把每一点数据分两次分别从 IDT7206(存低位)和IDT7206(存高位)读出,进行处理。每组数据的数量应该由程序计数判断,当然也可以利用IDT7206的EF标志进行查询判断。在进行第二组数据的采集前,最好将IDT7206先复位,通过在IDT7206的RS引脚输入一个低脉冲,即在8031的P1. 0引脚输出一个低脉冲。这样可以更充分地保证FIFORAM的读、写指针的稳定。

第3章 人机接口

考试题(30分)

1 设计8031单片机与液晶显示模块LCM-512-01A的接口电路,画出接口电路图并编写上下滚动显示XXGCXY(6个大写英文字母)的控制程序(包含程序流程图)。

评分标准:正确设计硬件电路图(10分);正确画出程序流程图(5分);正确编写控制程序(5分);完成仿真调试(10分)

1. 原理及简介

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

在单片机编程中还可以用字符型常亮或变量赋值,如'A?。因为CGROM储存的字符代码与我们PC中的字符代码是基本一致的,因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1=?A?这样的方法。PC在编译时就把'A'先转换为41H代码了。

2. 接口电路图

3. 程序流程图

流程图

4. 程序

#include

#define uchar unsigned char #define uint unsigned int

uchar code table[]=\

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); 5.结果

}

}

第4章数据通信 考试题(30分)

1.设计PC机与MCS-51单片机的RS232C数据通信接口电路(单片机端含8位LED显示),编写从PC机键盘输入数字,在单片机的6位LED上左右滚动显示的通信与显示程序。

评分标准:正确设计硬件电路图(5分);正确画出程序流程图(5分);正确编写单片机通信程序(5分);在开发系统上运行,实现基本功能(10分);制作实物,实现基本功能,效果良好(5分)。

1. 通信接口电路

2.流程图

开始开始系统初始化Y打开串口了吗N得到应答了吗YN打开串口写入待发送数据读取数据发送数据循环显示数据下位机读取数据流程图结束上位机程序流程图

3.程序

(1)下位机51单片机程序

/****************************************************************************** *名称:RS232串口接收程序

*连接方法:使用串口调试助手(Baud 4800、数据位8、停止位1、效验位无) 上位机通过串口给单片机发送信息并显示。 *功能:电脑给单片机发送数据

******************************************************************************/ #include //此文件中定义了51的一些特殊功能寄存器 #include

#define uchar unsigned char #define uint unsigned int

#define SEG_N P2 #define SEG_D P0

uchar a;

uchar code table[]={ 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e};

/***************************************************************************** * 延时子程序

******************************************************************************/ void delay(uchar ms) { uchar i;

while(ms--) //共循环ms*120次 { for(i=0;i<120;i++); } }

/***************************************************************************** * 主程序

******************************************************************************/ main() {

uchar j; SCON=0x50; //REN=1允许串行接受状态,串口工作模式2 TMOD|=0x20; //定时器工作方式2 PCON|=0x80; //波特率提高一倍 //TH1=0xFD; //baud*2 /* reload value 19200、数据位8、停止位1。效验位无(11.0592)

TH1=0xF3; // //baud*2 /* 波特率4800、数据位8、停止位1。效验位无 (12M) TL1=0xF3; TR1=1; //开启定时器1 ES=1; //开串口中断 EA=1; //开总中断 //IE=0x0; P1=0xff; while(1) {

if (RI) //RI接受中断标志 {

RI=0; //清除RI接受中断标志 a=SBUF; //SUBF接受/发送缓冲器 } for(j=0;j<8;j++) { SEG_N=0x80; SEG_N=SEG_N>>j; P0 = table[a & 0x0f]; //接收0-9 delay(200); } } }

3实验结果

本文来源:https://www.bwwdw.com/article/vsnw.html

Top