数据采集与智能仪器大作业Word文件下载.docx
- 文档编号:19185358
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:24
- 大小:1.31MB
数据采集与智能仪器大作业Word文件下载.docx
《数据采集与智能仪器大作业Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据采集与智能仪器大作业Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
正确设计硬件电路图(10分);
正确描述工作过程(5分);
第3章人机接口
键盘;
LED、LCD、触摸屏
1设计8031单片机与液晶显示模块LCM-512-01A的接口电路,画出接口电路图并编写上下滚动显示XXGCXY(6个大写英文字母)的控制程序(包含程序流程图)。
正确画出程序流程图(5分);
完成仿真调试(10分)
第4章数据通信
RS232C、RS485串行总线,USB通用串行总线,PTR2000无线数据传输
1设计PC机与MCS-51单片机的RS232C数据通信接口电路(单片机端含8位LED显示),编写从PC机键盘输入数字,在单片机的6位LED上左右滚动显示的通信与显示程序。
正确编写单片机通信程序(5分);
在开发系统上运行,实现基本功能(10分);
制作实物,实现基本功能,效果良好(5分)。
FPGA/CPLD芯片都是特殊的ASIC芯片,他们除了ASIC的特点之外,还有以下优点:
(1)随着VLSI工艺的不断提高,FPGA/CPLD的规模也越来越大,所能实现的功能越来越强可以实现系统集成;
(2)FPGA/CPLD的资金投入小,研制开发费用低;
(3)FPGA/CPLD可反复的编程、擦除、使用或者在外围电路不动的情况下用不同的EPROM就可实现不同的功能;
(4)FPGA/CPLD芯片电路的实际周期短;
(5)FPGA/CPLD软件易学易用,可以使设计人员更能集中精力进行电路设计。
FPGA/CPLD适合于正向设计,对知识产权保护有利。
1硬件电路图
2程序框图
3程序
数组合并测试程序
#include<
iostream>
usingnamespacestd;
intmain()
{
inti,j;
floatk;
floatC[72];
floatA[8]={1,1.5,2,2.7,3.3,5.1,6.8,10};
floatB[8]={1,1.5,2,2.7,3.3,5.1,6.8,10};
for(i=0;
i<
8;
i++)
{
for(j=0;
j<
j++)
C[i*8+j+1]=A[i]*B[j]/(A[i]+B[j]);
}
cout<
<
C[64]<
endl;
{C[i+65]=A[i];
}
C[72]<
72;
{
72-i;
if(C[j]>
C[j+1])
k=C[j];
C[j]=C[j+1];
C[j+1]=k;
for(i=1;
=72;
C[i]<
"
"
;
system("
pause"
);
数组排序测试源程序
inti,b,c,d,e;
floata;
intgeti(floatc[36],floata)
{
if(a<
=c[35])
c[i]<
a;
{}
returni-1;
elsereturn35;
}
intgetjk(intc[36],intb)
returnc[b];
floatB[36]={0.5,0.6,0.6667,0.7297,0.75,0.7674,0.8361,0.8571,0.8718,0.9091,0.9643,1,1.0313,
1.1489,1.1591,1.2289,1.2453,1.3044,1.35,1.4366,1.485,1.5455,1.65,1.6667,1.7654,1.9326,2.0036,
2.126,2.2218,2.4812,2.55,2.9143,3.3775,3.4,4.0476,5};
intC[36]={77,76,75,74,66,73,72,65,71,70,64,55,63,54,62,61,53,60,
44,52,43,51,33,50,42,41,32,40,31,30,22,21,20,11,10,0};
cin>
>
b=geti(B,a);
c=getjk(C,b);
d=c/10;
e=c%10;
b<
endl<
c<
d<
e<
实验主程序
#include"
SMC162.h"
TLC549.h"
sbitP1_5=P1^5;
unsignedchari,beishu,cod,p1,p2;
unsignedcharvolmax=0;
floatAp,f;
chardisplay[3],screen[3];
voiddelay(unsignedchardly)
unsignedcharj;
for(j=dly;
j>
0;
j--);
chargeti(floatc[36],floata)
voidvppfun(unsignedcharvol)
if(vol>
volmax)
volmax=vol;
FloatcodeAmp[36]={0.5,0.6,0.6667,0.7297,0.75,0.7674,0.8361,0.8571,0.8718,0.9091,0.9643,1,1.0313,1.1489,1.1591,1.2289,1.2453,1.3044,1.35,1.4366,1.485,1.5455,1.65,1.6667,1.7654,1.9326,2.0036,2.126,2.2218,2.4812,2.55,2.9143,3.3775,3.4,4.0476,5};
UnsignedcharCD[36]={77,76,75,74,66,73,72,65,71,70,64,55,63,54,62,61,53,60,44,52,43,51,33,50,42,41,32,40,31,30,22,21,20,11,10,0};
unsignedcharvolget;
intvoltcal;
chardisplay[4],screen[4];
LcdInit();
display[1]=-2;
PutStr(0,0,"
Pleasewait!
while
(1)
volget=TLC549_GetAD();
//AD数据获取
vppfun(volget);
//峰值获取
if(P1_5==0)
{
delay(30);
Ap=127.0/(volmax-128);
//放大倍数获取
beishu=geti(Amp,Ap);
//通过如已知倍数比较获取合适倍数
cod=CD[beishu];
//将倍数与引脚关系相对应
f=Amp[beishu];
p1=cod/10;
//获取P1引脚数值,CD4051选通
p2=cod%10;
//获取P2引脚数值,CD4051选通
P1=p1;
P2=p2;
voltcal=f*100;
display[0]=voltcal/100;
display[2]=(voltcal%100)/10;
display[3]=voltcal%10;
for(i=0;
4;
{
screen[i]=display[i]+48;
PutStr(0,0,"
TheAmpiis:
PutChar(i+6,1,screen[i]);
}
}
4仿真结果
图1波形显示情况
图2最小放大倍数检测
图3最大放大倍数检测
正确描述工作过程(5分)
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的读、写指针的稳定。
1.接口电路图
2.程序流程图
3.程序
reg52.h>
typedefunsignedcharuint8;
typedefunsignedintuint16;
sbitRS=P2^0;
sbitRW=P2^1;
sbitEN=P2^5;
sbitBUSY=P0^7;
unsignedcharcodeword1[]={"
XXGCXY"
};
unsignedcharcodeword2[]={"
voiddelay()
{uint16i,j;
200;
j++);
voidwait()
P0=0xff;
do
RS=0;
RW=1;
EN=0;
EN=1;
while(BUSY==1);
voidw_dat(uint8dat)
wait();
P0=dat;
RS=1;
RW=0;
voidw_cmd(uint8cmd)
P0=cmd;
voidInit_LCD1602()
w_cmd(0x38);
w_cmd(0x0f);
w_cmd(0x06);
w_cmd(0x01);
voidw_string(uint8addr_start,uint8*p)
w_cmd(addr_start);
while(*p!
='
\0'
)
w_dat(*p++);
p="
WHLGDX"
delay();
main()
Init_LCD1602();
while
(1)
w_string(0x80,word1);
w_string(0xc0,word2);
4.结果
1.接口电路图
图1
如上图所示,51单片机通过MAX232与232接口相连接。
其中,MAX232用来实现TTL电平与RS232电平的转化。
这是我第一次做这个232接口实验,通过查阅资料,了解到了VirtualSerialPortDriver和UartAssist,前者即创建虚拟串口的软件,后者是串口调试助手。
这两个软件可以说是模拟串口实验的利器。
本次试验中我就运用到了它们。
如图2,打开VirtualSerialPortDriver,我已经匹配了三组串口,它们两两相连(COM1与COM2,COM3与COM4,COM5与COM6),本实验中,只要用到一组即可(不放就用COM3与COM4这组)。
在VirtualSerialPortDriver软件中设置好后,我们打开计算机的设备管理器,可以看到这几个虚拟串口,如图3所示。
图2
图3
现在串口已经设计好了,COM3与COM4相连,然后设置电路图(如图1)中COMPIM的属性,具体参数如图4所示。
选择串口COM3,然后数据位设置为8为,波特率设置为9600bps。
这样一来,51单片机与COMPIM(即COM3)相连,COM3与COM4相连,假设COM4是PC的接口,那么这样一来就实现了51单片机与PC机的串口连接,有了配套的软件就可以进行二者的通信了。
图4
3.流程图
4.程序
(1)下位机51单片机程序
reg51.h>
intrins.h>
#defineuintunsignedint
#defineucharunsignedchar
ucharcodetab[]={0xc0,0xcf,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x990,
0x88,0x83,0xc6,0xa1,0x06,
0x8e,0xff};
uchari,aa;
uintflag;
sbitP3_6=P3^6;
voiddelay(uintn)
uinti,j;
n;
for(j=0;
110;
voiddisplay(ucharn)
P2=_crol_(P2,1);
P0=tab[n];
delay(100);
voidmain()
{aa=0;
P2=0xfe;
TMOD=0X20;
SM0=0;
SM1=1;
REN=1;
TR1=1;
EA=1;
ES=1;
TH1=0XFd;
TL1=0XFd;
P3_6=1;
if(flag==1)
{
//发送接受到的数据
ES=0;
//关闭串口中断
flag=0;
SBUF='
a'
while(!
TI);
TI=0;
ES=1;
display(aa);
voidser()interrupt4
RI=0;
a=SBUF;
b=a;
flag=1;
(2)上位机C#实现程序
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceWindowsFormsApplication1
publicpartialclassForm1:
Form
publicForm1()
InitializeComponent();
privatevoidbutton1_Click(objectsender,EventArgse)
try
serialPort1.PortName=comboBox1.Text;
serialPort1.Open();
serialPort1.Write("
q"
System.Threading.Thread.Sleep(200);
//1秒
if(serialPort1.ReadExisting()=="
a"
pictureBox1.Image=global:
:
WindowsFormsApplication1.Properties.Resources.Connect_Y;
button1.Enabled=false;
button2.Enabled=true;
button3.Enabled=true;
catch
MessageBox.Show("
连接错误"
privatevoidbutton2_Click(objectsender,EventArgse)
pictureBox1.Image=global:
WindowsFormsApplication1.Properties.Resources.Connect_N;
button1.Enabled=true;
button2.Enabled=false;
button3.Enabled=false;
serialPort1.Close();
privatevoidbutton3_Click(objectsender,EventArgse)
if(serialPort1.IsOpen==true)
stringx=textBox1.Text;
serialPort1.Write(x);
else
请先进行连接"
MessageBoxButtons.OK,MessageBoxIcon.Warning);
5实验过程记录
首先,仿真实验的情况下,我不放就直接用串口助手软件UartAssist,如图5所示,选择串口4(COM4),数据位设置为8为,波特率设置为9600bps。
停止位设为1位。
然后点击“打开”。
COM4相当于PC机的串口,我们借助串口助手从COM4发送数据,而51COM3与COM4相连,单片机与COMPIM(即COM3)相连,所以单片机将接受到所发数据。
接收到以后,再通过8位数码管进行显示。
图5
如图6至图9所示,我从COM4端口发送数据“22”,单片机接收到以后,通过数码管进行循环显示。
图6
图7
图8
图9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 采集 智能 仪器 作业