智能仪器大作业标准答案王扬DOCWord格式文档下载.docx

上传人:b****5 文档编号:21705882 上传时间:2023-01-31 格式:DOCX 页数:20 大小:953.26KB
下载 相关 举报
智能仪器大作业标准答案王扬DOCWord格式文档下载.docx_第1页
第1页 / 共20页
智能仪器大作业标准答案王扬DOCWord格式文档下载.docx_第2页
第2页 / 共20页
智能仪器大作业标准答案王扬DOCWord格式文档下载.docx_第3页
第3页 / 共20页
智能仪器大作业标准答案王扬DOCWord格式文档下载.docx_第4页
第4页 / 共20页
智能仪器大作业标准答案王扬DOCWord格式文档下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

智能仪器大作业标准答案王扬DOCWord格式文档下载.docx

《智能仪器大作业标准答案王扬DOCWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《智能仪器大作业标准答案王扬DOCWord格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。

智能仪器大作业标准答案王扬DOCWord格式文档下载.docx

完成仿真调试(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.通信接口电路

2.上位机

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结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1