北京工业大学电子工程设计--二阶实验报告

北京工业大学电子工程设计--二阶实验报告
北京工业大学电子工程设计--二阶实验报告

电子工程设计报告

题目:温度测量系统/闭环温度控制系

统设计

专业:电子科学与技术

小组: 7

姓名:学号:

袁彬

赖力

指导教师:高新

完成日期:目录

一、摘要..................................................... 错误!未定义书签。

二、设计任务与要求.......................................... 错误!未定义书签。

(二)、设计要求.......................................... 错误!未定义书签。

(三)单片机................................................... 错误!未定义书签。

(一)、电路工作原理及主要元件的功能...................... 错误!未定义书签。

(二)、电路的调试........................................ 错误!未定义书签。四数/模(D/A)转换电路........................................ 错误!未定义书签。

(一)、电路工作原理及主要元件功能........................ 错误!未定义书签。

(二)、电路主要参数计算.................................. 错误!未定义书签。

(三)、电路调试........................................... 错误!未定义书签。

五、模/数(A/D)转换电路...................................... 错误!未定义书签。

(一)、ADC0804芯片介绍.................................. 错误!未定义书签。

(二)、电路主要参数计算.................................. 错误!未定义书签。

(三)、电路调试.......................................... 错误!未定义书签。

六、电路显示与键盘控制电路................................... 错误!未定义书签。

(一)、电路工作原理...................................... 错误!未定义书签。

(二).电路调试............................................ 错误!未定义书签。

七、温度测量................................................. 错误!未定义书签。

八、心得体会................................................ 错误!未定义书签。

九、附录..................................................... 错误!未定义书签。

一、摘要

在上学期我们完成了温度控制系统的第一阶段,在这一阶段,我们完成了焊接包括电源板、驱动器和变送器在内的一些工作。也为我们这次的第二阶段做好了准

备。通过上学期的准备,我们对焊接电路已经基本上熟练掌握了,对一些电路的原理和设计也都达到了必要的要求,正是基于此我们目前已经完成了第二阶段的所有内容。下面就主要介绍一下我们第二阶段的工作。

二、设计任务与要求

设计小型温度测量与控制系统 --- 典型电子系统

1.电路设计

⑴核心单元—单片机应用电路

⑵模拟量接口—A/D、D/A 电路

⑶人机交互单元—显示、键盘控制电路

2.程序设计

⑴控制模/数转换进行温度数据采集

⑵控制数/模转换改变控温元件工作状态,进行温度控制。

⑶控制键盘与显示器,进行控制温度设定和测量温度显示。

⑷将温度数据转换为显示温度数值的算法程序。

(5)控制温度精确、平稳变化的的算法程序。

3.系统联调

⑴电路系统联调,配合测试程序实现基本的测温、控温功能。

⑵程序联调,通过电路系统实现精确、平稳的温度控制

4.本学期关注的重点

⑴设计并实现了一个能够精确、稳定控制温度的系统。

⑵知道了一个典型的电子系统应该具备哪些主要功能

⑶知道了一个典型电子系统的设计实现过程和工作方法。

⑷知道如何设计测试方法、创造测试条件,对设计完成的电路模块或电

路系统进行测试,使电路或系统的功能、指标充分展现。

⑸设计组装的电路系统出现故障,能够根据电路或系统的工作原理、自

己掌握的专业知识以及积累的经验,快速确定故障范围和故障原因。

⑹掌握电路的设计方法,通过设计、计算实现电路设计要求。(二)、设计要求

1.温度测量范围:0°C~ +100°C。

2.温度测量误差:不大于±2°C

3.单片机:具有独立电路板结构。

片选信号:4个,

地址信号:4个,

数据总线:AD0~AD7,

I/O口线:P3口,P1口。

4.数/模(D/A)转换电路:具有独立电路板结构。

输入范围:00H ~ 0FFH,

对应输出:-10V~+10V,

误差:1%,响应时间:< 1ms,

电源供电:+5V,±12V。

5.模/数(A/D)转换电路: 独立电路板结构

输入信号范围: 0V~+5V

分辨率: 8bit

精度:1LSB

转换时间:< 1ms

6.显示与键盘控制电路:

4 位7 段数码显示,

前 3 位含小数点独立电路板安装结构

0 ~ 9数字输入键及若干功能设置按键控制

(三)单片机

(一)、电路工作原理及主要元件的功能

1,芯片的介绍和参数

MCS-51系列单片机性能优异,因此单片机芯片采用MCS-51系列中的89C51。

在单片机的40条引脚中有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制或与其它电源复用的引脚,32条输入/输出(I/O)引脚。

下面按其引脚功能分为四部分叙述这40条引脚的功能。

1)主电源引脚VCC和VSS:

VCC——(40脚)接+5V电压;

VSS——(20脚)接地。

2)外接晶体引脚XTAL1和XTAL2:

XTAL1(19脚)接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CMOS单片机,此引脚作为驱动端。

XTAL2(18脚)接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端。采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。

3)控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP:

RST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。

ALE/PROG(30脚):当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。因此,它可用作对外输出的时钟,或用于定时目的。

PSEN(29脚):此脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。

EA/VPP(31脚):当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对851/8751/80C51)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。输入/输出(I/O)引脚P0、P1、P2、P3(共32根):P0口(39脚至32脚):是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。

P1口(1脚至8脚):是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口能驱动(吸收或输出电流)4个LS型的TTL负载。对8052、8032,引脚的第二功能为T2定时/计数器的

P2口(21脚至28脚):是准双向8位I/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。

P3口(10脚至17脚):是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。

2、电路方案的比较、选择和确定

全部地址参与译码,产生的控制信号对应唯一地址。部分地址参与译码,产生的控制信号对应某一地址区域,而不是唯一地址。部分地址参与译码,产生的控制信号对应某一地址区域,而不是唯一地址。

三种电路方案

(1)部分地址译码、带有总线驱动电路,产生的控制信号对应某一地址区域。

图示部分地址译码、带有总线驱动电路

(2)部分地址译码、无总线驱动电路

图示部分地址译码,无总线驱动电路

(3)直接选通、不要低8位地址和驱动电路

因为这个方案的片选信号与地址之间并不是线性关系,所以使用

该方案需要熟练掌握片选信号与地址之间的关系计算。

(4)电路方案的确定

通过比较,我们最后选定相对容易实现的部分地址译码,无总线驱动的方案,因为这样可以简化电路。电路图如下:

单片机的安装结构图如下图所示:

单片机电路

(二)、电路的调试

1.按照电路图将电路板焊接完毕,过程中需要严格检查焊接线路是否正确,避免出现错误。

2.测试时,将电源板放到相应位置。将单片机正确插入,然后将仿真头与单片机电路连接(注意缺口标志要对应)再把仿真器连好。

3.断开译码电路负载,运行测试程序,检查各输出引脚是否有输出,各个输出之间相对位置关系是否正确;以下是单片机测试的程序:

#include ""

#include "“

#include ""

#define CS0 XBYTE[0x0000]

#define CS1 XBYTE[0x2000]

#define CS2 XBYTE[0x4000]

#define CS3 XBYTE[0x6000]

#define CS4 XBYTE[0x8000]

#define CS5 XBYTE[0xA000]

#include ""

void main(void)

{

Init_Device();

while(1)

{ CS0=0; CS1=0; CS2=0; CS3=0; CS4=0; CS5=0; }

}

正确输出波形如图所示:

用示波器观察C1~ C4引脚,应有图示的波形输出。如果没有输出或者彼此关系错乱,都表明电路中存在故障。

四数/模(D/A)转换电路

(一)、电路工作原理及主要元件功能

1、DAC8032芯片介绍

数模转换器是整个控制系统将计算机输出的数字信号转化成模拟信号的重要部件,它的特性直接影响温度转换的精度。其转换的精度主要由数模转换器的位

数和V ref结合电子工程设计的实际要求,结合高性价比的原则我们选择了8位

D/A转换器 DAC0832。

单片集成D/A转换器产品种类繁多,按其内部电路结构一般可分为两类:一类集成芯片内部只集成了转换网络和模拟电子开关;另一类则集成了组成D/A 转换器的所有电路。本实验选用DA0832,各引脚名称及作用如下:

D 7~D

:具有三态特性数字信号输出。

GND:信号地。

CS:低电平有效的片选端。

WR:写信号输入,低电平启动D/A转换。

RD:读信号输入,低电平输出端有效。

V

REF

:参考电平输入,决定量化单位。

2、原理说明

(1)、数模转换电路,可以将数字电量转换成模拟电量。在数模转换中,应根据转换要求,考虑输出电压的分辨率和精度。

(2)、数模转换有多种方法可以实现,在满足要求的情况下,应力求降低成本。可以采用频率/电压变换的方法,也可以采用D/A变换器或其它方法,如采用D/A 变换器,建议使用DAC0832。(00-FF)数字对应于(-10V~+10V)电压。

3.电路的选择

输出方式:与数字量成比例的电流输出/与数字量成比例的电压输出/数字量和参考电压的相乘输出。

我们组选择的电路如图:

本实验要求模数转换电路的输出电压为-10V~+10V电压。因此,在DA的外围电路上,我们连接了一个放大器。放大器的作用是将DAC0832的输出电流转化成电压,通过合理调整两个滑动变阻器的阻值,可以调整输出电压的大小,即使D/A的输出从0~5V变为-10V~10V。

安装结构图

(二)、电路主要参数计算

D/A 转换器用于将数字量转换成模拟量,他的输入粮食数字量D ,输出量为模拟量V O ,要求输出的模拟量与输入的数字量成正比,即: O R V D V =?

其中V R 为基准电压。

1

120

12002222n n n i n n i i D d d d d -----==+++=∑L 其中,1d ,2d ,…,1n d -是输入的数字量代码;n 是输入数字量的位数。

将D 带入O R V D V =?得到:1

02n i O i R i V d V -==∑。该式说明,将输入的每一位数字量转换为与

其相应的模拟量,把各位对应的模拟量相加就可得到该数字两所对应的模拟量。D/A 转换器的模拟输出与数字量输入成正比。

(三)、电路调试

调试方法:断开电路负载,运行测试程序,检查各节点信号是否正确。

1.焊接完毕,而后再次认真查线一遍然后再开始测试。

2.测试时,将电源板,单片机,数模电路正确连接。按正确加电顺序供电,数/模转换电路

如果一切正常可以开始进一步的测试。

3.运行D/A测试程序数/模数据显示窗口将有相应,数据显示,数据为从00—FF顺序递增并不断循环。另外输出管脚会有锯齿波。

测试程序如下:

#include ""

#include ""

#include ""

#define C3 XBYTE[0x4000]

#define TIMER 0x8000

#include ""

void delay(void);

void main(void)

{

unsigned char x;

Init_Device();

while(1)

{ ++x; C3=x; delay(); }

}

void delay(void)

{

int i;

for(i=0;i

}

用示波器测量芯片的7号管脚

输出波形如图:

如果出现上述的波形图,就间接地证明电路板调试成功。

五、模/数(A/D)转换电路

(一)、ADC0804芯片介绍

芯片参数:

工作电压:+5V,即VCC=+5V。

模拟输入电压范围:0~+5V,即0≤Vin≤+5V。

分辨率:8位,即分辨率为1/28=1/256,转换值介于0~255之间。

转换时间:100us(fCK=640KHz时)。

转换误差:±1LSB。

参考电压:,即Vref=。

1.原理说明

模数转换器,是将模拟电信号转变成计算机能识别的数字信号。在模数转换中,

应根据测量精度要求,考虑转换电路的精度和分辨率,并力求降低成本。模数转换有多种方法可以实现,如采用电压/频率变换器,以频率或脉宽来计算温度,也可以采用A/D变换器或其它方法。如采用A/D变换器,应考虑转换器输入阻抗和变送器输出阻抗对信号的衰减可能引起的测试误差,并尽量降低这一误差。板间连接应注意保护。根据课设要求,温度0~100 C

的变化是用电压0~5V表示的,转成数字表示,即0~FFH。

2.电路的选择

常用A / D电路的特点:

积分型:将电压转换成脉宽信号或频率,由定时器/计数器获得数字值。优点:分辨率高;缺点:转换速率极低

逐次比较型:由比较器和DA转换器通过逐次比较逻辑构成,经n次比较而输出数字值。优点:速度较高、功耗低,在<12位分辩率时价格便宜并行比较型:用多个比较器,仅作一次比较而实行转换。优点:转换速率极高;分辩率高时电路规模大、价格也高,只适用于低分辨率高速场合压频转换型:将模拟信号转换成频率,然后用计数器将频率转换成数字量,从理论上讲其分辨率几乎可以无限增加。优点:分辩率高、功耗低、价格低;但是需要外部计数电路共同完成AD转换

(二)、电路主要参数计算

(1)转换精度:

A/D转换器也采用分辨率和转换误差来描述转换精度。

分辨率是指引起输出数字量变动一个二进制码最低有效位(LSB)时,输入模拟量的最小变化量。他反映了A/D转换器对输入模拟量微小变化的分辨能力。在最大输入电压一定时,位数越多,量化单位越小,分辨率越高。

转换误差通常用输出误差的最大值形式给出,常用最低有效位的倍数表示,反映A/D转换器实际输出数字量和理论输出数字量之间的差异。

(2)转换时间:

转换时间是指转换控制信号(v L)到来,到A/D转换器输出端得到稳定的数字量所需要的时间。转换时间与A/D转换器类型有关,並行比较型一般在几十个纳秒,逐次比较型在几十个微秒,双积分型在几十个毫秒数量级。

实际应用中,应根据数据位数、输入信号极性与范围、精度要求和采样频率等几个方面综合考虑A/D转换器的选用。

(3)8位数模转换电路主要技术指标:

分辨率 --- 8位:表示能够分辨的最小电压变化

DATA 为 1 时的 Vi 表示最小电压变化

误差 --- ±1LSB

转换时间 --- 100微秒

(三)、电路调试

调试方法:调整变送器电路在正常工作状态,连接变送器输出至模/数转换电路输入。运行测试程序,改变调试台温度设置值,检查单片机采集到的数据是否正确,如果不正确按照故障诊断预案进行诊断分析,并且排除故障。

改变设置温度,运行A/D测试程序,检查模/数转换结果。在调试台上通过+10按键不断改变温度数值。

模/数转换电

调试程序如图:

#include ""

#include ""

#include ""

#define C2 XBYTE[0x2000]

#define TIMER 0x8000

#include ""

void delay(void);

void main(void)

{

unsigned char x;

Init_Device();

while(1) { C2=x; delay(); x=C2; delay(); }

}

void delay(void)

{

unsigned char i;

for(i=0;i

}

在调试台上通过旋转调温按钮不断改变温度数值

六、电路显示与键盘控制电路

(一)、电路工作原理

1.电路的选择

单片机与LED显示器有两种接口方法。

动态显示电路方案:电路简单,成本低,控制程序复杂,适用于显示位数较多的场合。可使用智能芯片8279完成。

以下为动态显示原理图

静态显示电路方案:使用的元件多,成本相对较高。每位独立控制,程序设计比较简单,适用于显示位数较少的场合。使用74LS273,采用此方案。

键盘接口方法

矩阵键盘电路方案:按键较多时,成本低,控制程序较直读电路复杂,适用于显示位数较多的场合。采用此方案。

原理图如下:

最终我们的电路方案如图所示:

(二).电路调试

键盘/显示电路

(1)显示电路模块调试

按照图进行电源板焊接完毕,而后再次认真查线一遍然后再开始测试。测试时,将电源板,单片机,显示电路正确连接。按正确加电顺序供电,如果一切正常可以开始进一步的测试。运行显示模块测试程序,如果电路工作正常,在4个数码管上应有数字 0-9 滚动显示。否则,说明电路存在故障。显示电路的编程流程如图:

试程序如图:

#include ""

#include ""

#include ""

#include ""

#define ADC XBYTE[0x0000]

#define DP1 XBYTE[0x0001]

#define DP2 XBYTE[0x0002]

#define TIMER 0x8000

unsigned

chartable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

void delay(void);

void display(unsigned char x,unsigned char y);

void main(void)

{

unsigned char x=0,y=0,z=0,num=0;

DP1=DP2=0xff;

Init_Device();

while(1)

{

ADC=x;

delay();

x=ADC;

x=(x*100)/256;

y=x%10;num=2;display(num,y);

z=x/10;num=1;display(num,z);

}

}

void display(unsigned char x,unsigned char y)

{

i f (x==1) DP1=table[y];

e lse DP2=table[y];

}

void delay(void)

{

u nsigned int i;

f or(i=0;i

}

键盘控制模块调试:

运行键盘控制电路的测试程序,如果电路工作正常,在键盘上每按 1 个键,都会通过 2 位数码显示管,显示相应的行编码和列编码。否则,说明电路存在故障。

汇编程序流

调试程序如图:

#include ""

#include ""

#include ""

#define DP1 XBYTE[0x7000]

#define DP2 XBYTE[0x7100]

#define DP3 XBYTE[0x7200]

#define DP4 XBYTE[0x7300]

#define TIMER 0x8000

#include ""

unsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

void display(unsigned char x,unsigned char y)

{

DP3=table[x];

DP4=table[y];

}

void main(void)

{

unsigned char l_val,r_val,r_state,temp,conter,x,c;

int key;

DP1=DP2=DP3=DP4=0xff;

Init_Device();

while(1)

{

key=0x0004;

for(x=1;x<5;x++,key++)

{

c=XBYTE[key];

if(r_state=~c&0x1f)

{

for(conter=1,temp=0x01;conter<6;++conter,temp=temp<<1) if((r_state&temp)!=0)

{

r_val=conter;

l_val=x;

display(l_val,r_val);

}

}

}

}

}

七、温度测量

1.内容与原理

2.实验程序如下:

#include ""

#include ""

#include ""

#define C0 XBYTE[0x0000]

#define C1 XBYTE[0x2000]

#define C2 XBYTE[0x4000]

#define DP1 XBYTE[0x0000]

#define DP2 XBYTE[0x0001]

#define DP3 XBYTE[0x0002]

#define DP4 XBYTE[0x0003]

#define TIMER 0x8000

#include ""

unsigned char table[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; unsigned char keymatrix[4][4]={0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F'};

void display(unsigned char x,unsigned char y)

{

if (x==1) DP1=table[y];

else if(x==2) DP2=table[y];

else if(x==3) DP3=table[y];

else DP4=table[y];

}

void delay(void)

{

int i;

for(i=0;i

}

unsigned char scan()

{

unsigned char col,row,r_state,temp,c;

unsigned int key=0x0004;

for(row=0;row<4;row++,key++)

{

c=XBYTE[key];

if(r_state=~c&0x1f)

{

for(col=0,temp=0x01;col<4;++col,temp=temp<<1)

if((r_state&temp)!=0) return keymatrix[row][col];

}

}

return 100;

}

unsigned char keyboard(unsigned char *dp)

{

unsigned char ch,i,j;

i=1;

do

{

i++;

ch=scan();

if(ch==100) continue;

else if(ch=='A') return 0;

dp[3+i%2]=ch;

display(3+i%2,ch);

for(j=0;j<10;j++) delay();

}while(1);

}

unsigned char OUT(signed char temperature_1,signed char temperature_2)

{

unsigned char output;

signed char dnum;

dnum=temperature_1-temperature_2;

if(dnum>0)

{

if(dnum==1) output=128+20;

else output=250;

}

else if(dnum<0)

{

if(dnum==-1) output=128-20;

else output=5;

}

else output=128;

return output;

}

void main(void)

{

unsigned char num1,num2;

unsigned char dp[4];

unsigned char temperature,input;

DP1=DP2=DP3=DP4=0xff;

Init_Device();

aa:keyboard(dp);试过程:连接电路并运行程序。观察测温系统数字显示,应跟随调试台设置温度变化并与调试台设置温度接近。若测量温度与设置温度相差过大的调试,则需调整变送器。调试台设置低端温度,变送器进行零点校准,调试台设置高端温度,变送器进行满度校准。

以下是我们的实验截图:

八、心得体会

第二阶段我们一共完成了测温系统中的单片机,A/D转换,D/A转换,显示键盘电路一共四块电路板。虽然有了第一阶段的一些经验积累,没有那么手忙脚乱,但是这四块板子的难度相比第一阶段来说是更加的高。第二阶段我们主要面临的问题有以下几点。

第一点就是电路板需要焊接的线数量非常大,非常密集。这就意味着排线的难度大幅增加,同时在焊接过程中很容易出现失误。在单片机这块的焊接中,我们就出现了把芯管脚搞反,结果在插针焊接的时候错了很多,要更改起来特别困难。另外在布线的结构上我们也存在很大的问题,这就让焊接的线变得很多很乱,在测试电路的时候出现问题,查线排除故障进行的非常缓慢。另外在显示键盘电路这块板子上,一开始四个数码管只有两个亮,我们以为是数码管的问题,但更换之后问题依然存在。于是再进行电路检查,查了三四遍线路都认为没有问题这让我们觉得非常奇怪,后来在和其他组同学的电路板对比之后发现少了两根地线没有接,还是我们焊接时候的粗心大意造成的。还有就是有些芯片的GND管脚没有标在管脚图上,也被我们忽略了,这是缺乏经验的缘故。

最让我们组头痛的就是测温系统,将6块板子组合在一起进行测试。在之前我们每块板子单个都通过了测试,可是没有想到进行测温系统测试的时候竟然没有成功。经过推断我们认为问题肯定是出现在单片机上,但是不论是查线还是测试输出波形都查不出问题所在。在我们非常着急头痛走投无路的时候,老师给予了我们巨大的帮助。在老师的测试下,一针见血的指出了A2管脚的线路有问题,经过检查果然如此,修正了电路之后果然就显示了正确的结果。

最后一节课,我们还有幸聆听了来自西门子的电子工程师的讲座,为我们讲述了他的学习经验,让我们收获颇丰。

本学期电子工程设计课程圆满结束,在这学期我们第一次尝试去完成一个功能完善的电子系统。在这个过程中遇到了诸多的困难,但我们都顽强的客服了,我们的动手能力得到了锻炼,让我们明白纸上的电路转换为实际的系统,需要付出百倍的努力和耐心才能实现。也让我们更加敬仰在历史长河中那些为人类做出贡献的电子工程师。

最后感谢高新的耐心教导和帮助。

九、附录

一、参考文献

1.电子工程设计训练任务书(信息控制与通信部分) 北京工业大学出版社

2.模拟电子技术基础(第四版) 童诗白,华成英高等教育出版社

二、插座定义

电子设计实验报告

电子技术课程设计报告

目录 1. 电子琴 (2) (1.1 )设计要求 (2) (1.2 )设计的作用. 目的 (2) (1.3 )设计的具体实现 (3) (1.4)心得体会、存在问题和进一步的改进意见等 (7) (1.5)附录 (8) (1.6 )参考文献 (9) (1.7 )附图 (9) 2. 温度控制电路 (10) 2.1 )设计要求 (10) (2.2 )设计的作用. 目的 (10) (2.3 )设计的具体实现 (10) (2.4)心得体会、存在问题和进一步的改进意见等12 (2.5)附录 (12) (2.6 )参考文献 (13) 3. ...................................................... 信号发生器13 (3.1 )设计要求 (13) (3.2 )设计的作用. 目的 (13) (3.3 )设计的具体实现 (14) (3.4)心得体会、存在问题和进一步的改进意见等 (17) (3.5)附录 (17) (3.6 )参考文献 (17) 4. ...................................................... 音频放大器18 (4.1 )设计要求 (18) (4.2 )设计的作用. 目的 (18) (4.3 )设计的具体实现 (18) 4.4)心得体会、存在问题和进一步的改进意见等 (21) (4.5) .......................................... 附录21

(4.6 )参考文献 (21) 简易电子琴设计报告 一.设计要求本设计是基于学校实验室的环境,根据实验室提供的实验条件来完成设计任务,设计一个简易电子琴。 (1).按下不同琴键即改变RC 值,能发出C 调的八个基本音阶,采用运算放大器构成振荡电路,用集成功放电路输出。 (2).选择电路方案,完成对确定方案电路的设计。计算电路元件参数并记录对应不同音阶时的电路参数值、元件选择、并画出总体电路原理图,阐述基本原理。(3).连接安装调试电路。 (4).写出设计总结报告。 二. 设计的作用、目的 1. 学会用仿真软件对设计的原理图进行仿真。培养创新能力和创新思维,锻炼学生 自学软件的能力,通过查阅手册和文献资料,培养独立分析问题和解决问题的能 力。 2. 培养学生正确的设计思想,理论联系实际的工作作风,严肃认真、实事求是的科 学态度和勇于探索的创新精神。 3. 通过课程设计,使学生在理论计算、结构设计、工程绘图、查阅设计资料、标准 与规范的运用和计算机应用方面的能力得到训练和提高。

程序设计基础实验报告

《程序设计基础》 实验报告 专业班级: 姓名: 学号:

实验一 面向过程的简单程序设计 1.实验目的要求 (1) 使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程, 初步了解C++程序的特点。 (2) 掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运 算符和表达式的使用。 (3) 掌握赋值语句的使用。 (4) 掌握数据的输入输出方法。 2.实验内容 (1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。 <1> d c b a x -++ <2> 11 11+++x x <3> sinX+cosX+tan -1 X <4> e x+y +e x-y <5> log 10(1+21x +) <6> 22b a -+??b a - (其中??a 表示取不大于a 的最大整数)。 <1> #include using namespace std; int main() { float x,a,b,c,d,e; cin>>x>>a>>b>>c>>d; e=x+(a+b)/(c-d); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sqrt(1+1/(x+1/(x+1)));

cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sin(x)+cos(x)+1/tan(x); cout< #include #include using namespace std; int main() { double x,y,z; cin>>x>>y; z=exp(x+y)+exp(x-y); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=log(1+sqrt(1+x*x)); cout< #include #include using namespace std; int main()

北京工业大学实验报告

北京工业大学实验报告

————————————————————————————————作者:————————————————————————————————日期: ?

BEIJINGUNIVERSITYOF TECHNOLOGY 实验报告 课程名称:计算机网络应用 学院:经济与管理学院 专业:管理科学与工程 组 11 号: 14110206 陈浩良报告 人: 14110213 郝楠 14110214 邓刘祥鹤 14110217 苏晗实验日期:2015年11 月30 日报告日期:2015年12月 5 日 学期:2015–2016学年第1学期成绩:评语:

教师签字: 评阅日期: ? 分工情况 实验一直通:苏晗、陈浩良 交叉:郝楠、邓刘翔鹤实验三苏晗、郝楠、陈浩良 实验四苏晗、陈浩良 实验五郝楠、陈浩良 试验六苏晗、郝楠

实验一 实验报告要求: 1.说明直通双绞线和交叉双绞线的使用场合 2.说明直通双绞线和交叉双绞线的构成 3.制作直通双绞线和交叉双绞线过程中遇到的问题和解决方法 1. 交叉线一般用来直接连两台电脑的,也就是网卡--网卡 直通线一般用来连接网络设备(比如路由器,交换机,HUB,ADSL 等)与电脑,或者是网络设备与网络设备(除非特殊说明,一般都支持)之间相联。 2. 直通线的双绞线做法是:两端双绞线都做成:橙白- 橙- 绿白 - 蓝- 蓝白-绿-棕白- 棕 3. 交叉线的做法是,网线的两端一边按橙白- 橙- 绿白- 蓝 -蓝白- 绿- 棕白- 棕做,另一端按绿白- 绿-橙白- 蓝-蓝白- 橙-棕白- 棕做 实验三 实验报告要求: 1.对比OSI模型,简述TCP/IP工作过程 2.描述IP地址、子网掩码的配置方法 3.说明在测试过程中使用了哪些网络命令及命令的意义

网络程序设计实验报告-Winsock编程接口实验

网络程序设计 实验报告 实验名称: Winsock编程接口实验 实验类型:____验证型实验_____ __ 指导教师:______________________ 专业班级:_____________________ 姓名:_______________________ 学号:_____________________ 电子邮件:____________ 实验地点:______ _______ 实验日期2013 年 3 月29 日 实验成绩:__________________________

一、实验目的 ●掌握Winsock的启动和初始化; ●掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用。 二、实验设计 由实验内容可以知道: 1、编写程序能同时实现对多个域名的解析。比如在控制台输入:getip https://www.360docs.net/doc/295572030.html, https://www.360docs.net/doc/295572030.html,,能输出https://www.360docs.net/doc/295572030.html,和https://www.360docs.net/doc/295572030.html,对应的IP地址列表。 2、编写程序获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC 地址。 首先要了解一些基本的知识gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的基本知识gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针。结构的声明与gethostaddr()中一致。 之后要根据内容画出函数流程图

三、实验过程(包含实验结果) 1.在实验过程中调用GetAdaptersInfo()时,出现了undeclared identifier的报错,原因是没有包含其头文件,之后进行一些修改解决了问题. 2.实验结果 3.选择查看本机信息 四、讨论与分析 1.Winsock初始化的作用是什么? 答:使用winsock初始化可加载winsock编程的动态链接库。

大学程序设计基础实验报告 (2)

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

北京工业大学电子工程设计--二阶实验报告

电子工程设计第二阶段报告 小型温度测量与控制系统 专业:通信工程小组: 10组 成员:刘志斌 12024228 高培元 12024215 指导教师:高新 完成日期:2014.12.20

摘要: 第一阶段我们已经完成了电源板和变送器。本学期的第二阶段要求是完成这个系统中单片机,A/D,D/A转换电路和显示与键盘控制电路部分。 温度控制系统总体概述 (一)、总述 电子工程设计训练是一门综合理论知识,实践操作,电子电路系统的设计、实现、调试、故障排查等方面的综合性训练。第一阶段只完成了电源以及变送器部分。本阶段工作量非常大,需要完成单片机,数模,模数转换电路和显示与键盘控制电路部分,并且完成测温系统的测试。 (二)设计任务与要求 一、设计任务 设计、制作并调试单片机,数模,模数转换电路和显示电路共四个模块。二、设计要求 1.单片机:具有独立电路板结构。 片选信号:6个, 地址信号:4个, 数据总线:AD0~AD7, I/O口线:P3口,P1口。 2.数/模(D/A)转换电路:具有独立电路板结构。 输入范围:00H ~ 0FFH, 对应输出:-10V~+10V, 电源供电:+5V,±12V。 3.模/数(A/D)转换电路: 独立电路板结构 输入信号范围:0V~+5V 分辨率:8bit 精度:1LSB 转换时间:< 1ms 4.显示与键盘控制电路: 4 位7 段数码显示, 前 3 位含小数点独立电路板安装结构 0 ~ 9数字输入键及若干功能设置按键控制

(三)单片机应用电路 一、电路设计方案 1.芯片介绍 MCS-51系列单片机有众多性能优异的兼容产品、成熟的开发环境、世界上最大的单片机客户群、高性价比、畅通的供货渠道,是初学者的首选机型。8051是MCS-51系列单片机早期产品之一,内建一次性可编程只读存储器 ( PROM ) ,只需要很少的外围元件即可组成最小系统。所以我们选择8051作为我们的单片机 2.安装结构 3.电路方案的确定 通过比较,我们最后选定相对容易实现的部分地址译码,无总线驱动的方案,因为这样可以简化电路。电路图如下:

2011-年全国大学生电子设计竞赛实验报告

2011 年全国大学生电子设计竞赛实验报告 一、实验目的 1、熟练掌握各种常用实验仪器的使用方法。 2、熟悉LM324运放的典型参数及应用。 3、掌握PDF 资料的查询与阅读方法。 4、掌握电子设计与调试的基本流程及方法。 二、实验内容 设计要求: 使用一片通用四运放芯片LM324组成电路框图见图1,实现下述功能: 1. 使用低频信号源产生100.1sin 2()i U f t V =∏,f 0 =500Hz 的正弦波信号,加至 加法器输入端。 2. 自制三角波产生器产生T=0.5ms (±5%),V p-p =4V 的类似三角波信号1o u ,并加至加法器的另一输入端。 3. 自制加法器,使其输出电压U i2 = 10U i1+U o1。 4. 自制选频滤波器,滤除1o u 频率分量,得到峰峰值等于9V 的正弦信号2o u ,2o u 用示波器观察无明显失真。 5.将1o u 和2o u 送入自制比较器,其输出在1K Ω负载上得到峰峰值为2V 的输出电压3o u 。 方案论证与数值计算: 由于电源只能选用+12V 和+5V 两种单电源,由稳压电源供给,而

LM324N具有宽的单电源或双电源工作电压范围,单电源:3-30V,双电源:1.5V-15V,经过试验我们选择双电源供电,所以进行电源的搭建

三角波发生部分: 方案一: 三角波发生器电路按照由方波经过积分电路得到,需要两个放大器,不满足实验要求。 方案二: 利用RC充放电模拟三角波,通过两个电位器分别来调节周期和峰峰值至实验要求的值。达到合理利用现有资源高效达到要求的目的。因此我们采用方案二。题目要求三角波发生器产生的周期为T=0.5ms,Vpp=4V的类似三角波。我们由公式T=2*R14*C1*ln(1+2*R3/R15)另外运放1端输出电压设为U,则Uo1=(R15/(R15+R1))*U。选取电容为较常见的47nf , 计算得R1=2R14;R14=0-5K,所以取R1为0-10k;得到R15=0-10K; 加法器部分

网络编程实验报告

实验一TCP Socket API程序设计 一、预备知识 1.网络编程基本概念 网络上的计算机间的通讯,实质上是网络中不同主机上的程序之间的通讯。在互联网中使用IP地址来标识不同的主机,在网络协议中使用端口号来标识主机上不同进程,即使用(IP地址,端口号)二元组。 套接字(Socket)用于描述IP地址和端口,是一个通信链的句柄,通信时一个网络程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过与网络接口卡相连的传输介质将这段信息发送到另一台主机的Socket中,以供其他程序使用。 图1-1 TCP通信流程 2.TCP通信流程 TCP程序是面向连接的,程序运行后,服务器一直处于监听状态,客户端与

服务器通信之前必须首先发起连接请求,由服务器接收请求并在双方之间建立连接后才可以互相通信。 二、实验目的 1.了解Winsock API编程原理; 2.掌握TCP Socket程序的编写; 3.了解C/S模式的特点; 4.学会解决实验中遇到的问题。 三、实验任务 使用Winsock API相关类实现TCP Socket通信程序,并能成功运行。 四、实验环境及工具 1. Windows2000/XP/7 2. Visual C++开发平台 3. Visual Studio2010 五、实验内容和步骤 参照《Visual C++网络编程教程》书中81页,TCP Socket API程序设计。 连接: void CChatClientDlg::OnConnect() { WSADATA wsd; //WSADATA结构 WSAStartup(MAKEWORD(2,2),&wsd); //加载协议,使用Winsock 2.2版 m_client = socket(AF_INET,SOCK_STREAM,0); //创建流式套接字 //服务器地址 sockaddr_in serveraddr; UpdateData(); if(ServerIP.IsBlank()) { AfxMessageBox("请指定服务器IP!"); return; } if(sPort.IsEmpty()) { AfxMessageBox("请指定端口!"); return; }

北京工业大学实验报告1

1.有一硅单晶片,厚0.5mm,其一面上每107个硅原子包含两个镓原子,另一个面经处理后含镓的浓度增高。试求在该面上每107个硅原子需包含几个镓原子,才能使浓度梯度为2×10-26原子/m3m硅的晶格常数为0.5407nm。 2.为研究稳态条件下间隙原子在面心立方金属中的扩散情况,在厚0.25mm的金属薄膜的一个端面(面积1000mm2)保持对应温度下的饱和间隙原子,另一端面为间隙原子为零。测得下列数据: 温度(K)薄膜中间隙原子的溶解度 (kg/m3) 间隙原子通过薄膜的速率 (g/s) 122314.40.0025 113619.60.0014 计算在这两个温度下的扩散系数和间隙原子在面心立方金属中扩散的激活能。 3.一块含0.1%C的碳钢在930℃渗碳,渗到0.05cm的地方碳的浓度达到0.45%。在t>0的全部时间,渗碳气氛保持表面成分为1%, 4.根据上图4-2所示实际测定lgD与1/T的关系图,计算单晶体银和多晶体银在低于700℃温度范围的扩散激活能,并说明两者扩散激活能差异的原因。 5.设纯铬和纯铁组成扩散偶,扩散1小时后,Matano平面移动了1.52×10-3cm。已知摩尔分数C Cr=0.478时,dC/dx=126/cm,互扩散系数为1.43×10-9cm2/s,试求Matano面的移动速度和铬、铁的本征扩散系数D Cr,D Fe。(实验测得Matano 面移动距离的平方与扩散时间之比为常数。D Fe=0.56×10-9(cm2/s)) 6.对于体积扩散和晶界扩散,假定Q晶界≈1/2Q体积,试画出其InD相对温度倒数1/T的曲线,并指出约在哪个温度范围内,晶界扩散起主导作用。 7.γ铁在925℃渗碳4h,碳原子跃迁频率为1.7×109/s,若考虑碳原子在γ铁中的八面体间隙跃迁,(a)求碳原子总迁移路程S;(b)求碳原子总迁移的均方根位移; (c)若碳原子在20℃时跃迁频率为Γ=2.1×10-9/s,求碳原子的总迁移路程和根均方位移。 8.假定聚乙烯的聚合度为2000,键角为109.5°,求伸直链的长度为L max与自由旋转链的均方根末端距之比值,并解释某些高分子材料在外力作用下可产生很大变形的原因。(l=0.154nm,h2=nl2) 9.已知聚乙烯的Tg=-68℃,聚甲醛的Tg=-83℃,聚二甲基硅氧烷的Tg=-128℃,试分析高分子链的柔顺性与它们的Tg的一般规律。 10.试分析高分子的分子链柔顺性和分子量对粘流温度的影响。 11.有两种激活能分别为E1=83.7KJ/mol和E2=251KJ/mol的扩散反应。观察在温度从25℃升高到600℃时对这两种扩散的影响,并对结果作出评述。

人竞赛抢答器实验报告

数电实验报告 姓名:侯婉思 专业:通信工程 班级:1111 学号: 指导老师:田丽娜 四人竞赛抢答器实验报告 一.前言 现今,形式多样、功能完备的抢答器已广泛应用于电视台、商业机构、学校、企事业单位及社会团体组织中,它为各种知识竞赛增添了刺激性、娱乐性,在一定程度上丰富了人们的业余生活。 对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。 本文介绍了一种用74系列常用集成电路设计的高分辨率的4路抢答器。该抢答器为全数字集成电路设计,具有分组数多、分辨率高等优点。该抢答器除具有基本的抢答功能外,还具有优先能力,定时及复位功能。主持人通过控制开关使抢答器达到复位的功能。 二.实验目的 1. 学习并掌握抢答器的工作原理及其设计方法 2. 熟悉各个芯片的功能及其各个管脚的接法。 3. 灵活运用学过的知识并将其加以巩固,发散思维,提高学生的动手能力和思维的缜密。 三.设计任务与要求 1、设计任务 设计一台可供4名选手参加比赛的竞赛抢答器。选手抢答时,数码显示选手组号。 2.设计要求: 抢答器的基本功能: 1.设计一个智力抢答器,可同时供四名选手或四个代表队参加比赛,编号为一,二,三,四,各用一个抢答按钮,分别用四个按钮S0——S3表示。 2.给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管清零)。 3.抢答器具有数据锁存和显示的功能,抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,此外,要封锁输入电路,实现优先锁存,禁止其他选手抢答,优先抢答选手的编号一直保持到主持人将系统清零为止。

C语言程序设计基础实验报告6【VIP专享】

实验6 数组 一、实验目的 1、掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组和字符串函数的使用; 3、掌握与数组有关的算法(特别是排序算法)。 二、实验内容和步骤 编程序并上机调试运行。 1、以下给定程序MODI1.C的功能是: 求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9}, i; /************found************/ /************found************/ s = a[0]; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。 例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, min; clrscr();

北京工业大学电子实验报告压控阶梯波发生器(数字类)

北京工业大学 课程设计报告 学院电子信息与控制工程 专业 班级组号 题目1、压控阶梯波发生器 2、基于运放的信号发生器设计姓名 学号 指导老师 成绩 年月日

压控阶梯波发生器(数字类)(一)设计任务 在规定时间内设计并调试一个由电压控制的阶梯波发生器。 (二)设计要求 1、输出阶梯波的频率能被输入直流电压所控制,频率控制范围为600Hz至1000Hz。 2、输出阶梯波的台阶级数为10级,且比例相等。 3、输出阶梯波的电压为1V/级。 4、输入控制电压的范围0.5V至0.6V。 5、电路结构简单,所用元器件尽量少,成本低。 (三)调试要求 利用实验室设备和指定器件进行设计、组装和调试,达到设计要求,写出总结报告。 (四)方案选择 在压频转换部分存在两种方案。 1、Lm358组成压频转换电路; 2、NE555构成压频转换电路。 方案论证 数字电路精确度较高、有较强的稳定性、可靠性和抗干扰能力强,数字系统的特性不易随使用条件变化而变化,尤其使用了大规模的继承芯片,使设备简化,进一步提高了系统的稳定性和可靠性,在计算精度方面,模拟系统是不能和数字系统相比拟的。数字系统有算术运算能力和逻辑运算能力,电路结构简单,便于制造和大规模集成,可进行逻辑推理和逻辑判断;具有高度的规范性,对电路参数要求不严,功能强大。为了得到更精彩的波形采用数模混合方案。 (五)实验元器件和芯片 运算放大器Lm358,TTL电路74LS20、74LS161、74LS175,CMOS缓冲器CD4010,稳压管,二极管1N4148,电位器,电容,电阻。 (六)设计方案 整体设计思路:

压频转换→计数器→权电阻→运放=>阶梯波 利用Lm358组成压频转换电路;使用CD4010缓冲,形成可被数字电路识别的矩形波信号;74LS161与74LS20组合构成十进制计数器;利用74LS175提高负载、整流信号,并组成权电阻网络;最后利用运放放大信号,并输出。仿真电路图:

微弱信号检测装置(实验报告)剖析

2012年TI杯四川省大学生电子设计竞赛 微弱信号检测装置(A题) 【本科组】

微弱信号检测装置(A题) 【本科组】 摘要:本设计是在强噪声背景下已知频率的微弱正弦波信号的幅度值,采用TI公司提供的LaunchPad MSP430G2553作为系统的数据采集芯片,实现微弱信号的检测并显示正弦信号的幅度值的功能。电路分为加法器、纯电阻分压网络、微弱信号检测电路、以及数码管显示电路组成。当所要检测到的微弱信号在强噪音环境下,系统同时接收到函数信号发生器产生的正弦信号模拟微弱信号和PC机音频播放器模拟的强噪声,送到音频放大器INA2134,让两个信号相加。再通过由电位器与固定电阻构成的纯电阻分压网络使其衰减系数可调(100倍以上),将衰减后的微弱信号通过微弱信号检测电路,检测电路能实现高输入阻抗、放大、带通滤波以及小信号峰值检测,检测到的电压峰值模拟信号送到MSP430G2553内部的10位AD 转换处理后在数码管上显示出来。本设计的优点在于超低功耗 关键词:微弱信号MSP430G2553 INA2134 一系统方案设计、比较与论证 根据本设计的要求,要完成微弱正弦信号的检测并显示幅度值,输入阻抗达到1MΩ以上,通频带在500Hz~2KHz。为实现此功能,本设计提出的方案如下图所示。其中图1是系统设计总流程图,图2是微弱信号检测电路子流程图。 图1系统设计总流程图 图2微弱信号检测电路子流程图

1 加法器设计的选择 方案一:采用通用的同相/反相加法器。通用的加法器外接较多的电阻,运算繁琐复杂,并且不一定能达到带宽大于1MHz,所以放弃此种方案。 方案二:采用TI公司的提供的INA2134音频放大器。音频放大器内部集成有电阻,可以直接利用,非常方便,并且带宽能够达到本设计要求,因此采用此方案。 2 纯电阻分压网络的方案论证 方案一:由两个固定阻值的电阻按100:1的比例实现分压,通过仿真效果非常好,理论上可以实现,但是用于实际电路中不能达到预想的衰减系数。分析:电阻的标称值与实际值有一定的误差,因此考虑其他的方案。 方案二:由一个电位器和一个固定的电阻组成的分压网络,通过改变电位器的阻值就可以改变其衰减系数。这样就可以避免衰减系数达不到或者更换元器件的情况,因此采用此方案。 3 微弱信号检测电路的方案论证 方案一:将纯电阻分压网络输出的电压通过反相比例放大电路。放大后的信号通过中心频率为1kHz的带通滤波器滤除噪声。再经过小信号峰值电路,检测出正弦信号的峰值。将输出的电压信号送给单片机进行A/D转换。此方案的电路结构相对简单。但是,输入阻抗不能满足大于等于1MΩ的条件,并且被测信号的频率只能限定在1kHz,不能实现500Hz~2KHz 可变的被测信号的检测。故根据题目的要求不采用此方案。 方案二:检测电路可以由电压跟随器、同相比例放大器、带通滤波电路以及小信号峰值检测电路组成。电压跟随器可以提高输入阻抗,输入电阻可以达到1MΩ以上,满足设计所需;采用同相比例放大器是为了放大在分压网络所衰减的放大倍数;带通滤波器为了选择500Hz~2KHz的微弱信号;最后通过小信号峰值检测电路把正弦信号的幅度值检测出来。这种方案满足本设计的要求切实可行,故采用此方案。 4 峰值数据采集芯片的方案论证 方案一:选用宏晶公司的STC89C52单片机作为。优点在于价格便宜,但是对于本设计而言,必须外接AD才能实现,电路复杂。

北工大matlab作业实验报告

北工大MATLAB实验报告 完成日期:2018.12

目录 实验一用FFT进行谱分析 (3) 一、实验内容 (3) 二、实验过程 (3) 三、实验代码 (4) 四、实验结果及分析 (5) 五、实验心得 (5) 实验二噪声数据的抑制 (6) 一、实验内容 (6) 二、实验过程 (7) 三、实验结果分析 (14) 四、实验心得 (15) 参考文献 (15)

实验一用FFT进行谱分析 一、实验内容 FFT的用途之一是找出隐藏或淹没在噪声时域信号中信号的频率成分。本题要求用FFT 对试验数据进行谱分析,指出数据包含的频率成份。 提示:首先建立试验数据。过程推荐如下:生成一个包含两个频率成分的试验信号,对这个信号加入随机噪声,形成一个加噪信号y。(试验数据参数推荐为:数据采样频率为1000Hz,时间区间从t=0到t=0.25,步长0.001秒,噪声的标准偏差为2,两个频率成分的试验信号可取50Hz和120Hz)。 (1)绘制加噪信号y它的波形。 (2)求出含噪声信号y的离散傅立叶变换(取它的FFT),(FFT试验参数推荐为:256点)。 (3)求出信号的功率谱密度(它是不同频率所含能量的度量),并绘制功率谱图,标记出两个频谱峰值对应的频率分量。 二、实验过程 1.打开matlab软件,根据实验要求,用已知条件求出重要参数: N=256; n=0:N-1; t=n/fs; 2.绘制加入了噪声信号的y图象: y=sin(2*pi*50*t)+sin(2*pi*120*t)+2*randn(size(t)); subplot(2,2,1); plot(y);title('y的波形'); 3.对y求付里叶变换: Y=fft(y,N); 4.绘制Y的幅值图象: fudu=abs(Y); f=n*fs/N; subplot(2,2,2) plot(f,fudu); 5.抽取256点进行绘图:

算法程序设计实验报告

程序设计》课程设计 姓名:王 学号:20100034 班级:软件工程00 班 指导教师:王会青 成绩: 2010年 6 月 实验一.构造可以使n 个城市连接的最小生成树 专业:__软件工程___ 班级:__软件姓名:_王___ 学号:_20100034 完成日期:_2010/6/26 ________ 一、【问题描述】给定一个地区的n 个城市间的距离网,用Prim 算法或Kruskal 算法建立最小生成树,并计算得到的最小生成树的代价。 1 城市间的道路网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道

路,则将相应边的权值设为自己定义的无穷大值。 2 显示出城市间道路网的邻接矩阵。 3 最小生成树中包括的边及其权值,并显示得到的最小生成树的总代价。 4 输入城市数、道路数→输入城市名→输入道路信息→执行Kruskal 算法→执行Prim 算法→输出最小生成树 二、【问题分析】 1. 抽象数据类型结构体数组的定义: #ifnd ef ADJACENCYMATRIXED// 防止该头文件被重复引用 #define ADJACENCYMATRIXED // 而引起的数据重复定义 #define INFINITY 32767 // 最大值∞ #define MAX_VERTEX_NUM 20 // 最大顶点个数 typedef int VRType; // 权值,即边的值 typedef char InfoType; // 附加信息的类型,后面使用时会定义成一个指针 typedef char VertexType[MAX_VERTEX_NUM]; // 顶点类型 typedef enum {DG=1, DN, UDG, UDN} GraphKind; //{ 有向图,有向网,无向图,无向网} typedef struct ArcCell { VRType adj; //VRType 是顶点关系类型。对无权图,用1 或0 表示相邻否;对带权图,则为权值类型。 InfoType*info; // 该弧关系信息的指针

C++程序设计实验报告5

《程序设计基础》 实验报告 学号:2016211990 姓名:王贯东 班级:16-计算机科学与技术-1班

学院:计算机与信息学院 实验五指针 1.实验目的要求 (1)掌握指针的概念,学会定义和使用指针变量。 (2)学会使用数组指针和指向数组的指针变量。 (3)学会使用字符串指针和指向字符串的指针变量。 (4)了解指向指针的指针的概念以及其使用方法。 (5)掌握指针、引用、数组做函数参数的传递机制。 (6)*学会使用指向函数的指针变量。 2.实验设备 Visual C++ 6.0 3.实验内容 (1)阅读下面程序,写出其运行结果。

<1> #include sub ( int x , int y , int *z ) { *z = y – x ; } void main( ) { int a,b,c; sub( 10 , 5 , &a ) ; sub( 7, a, &b ) ; sub( a, b, &c ) ; cout << a <<‘,’<< b <<‘,’<< c << endl ; } 解:输出-5,-12,-7 <2> #include #include void main()

{ int stre ( char[ ] ) ; char str [ 10 ] , *p = str ; gets ( p ) ; cout << stre ( p ) << endl ; } int stre ( char str[ ] ) { int num = 0 ; while( * ( str + num ) != ’\0’ ) num ++ ; return ( num ) ; } 解:题目库函数少了 。该正后,输入1234,输出4 (2)编写程序实现下列问题的求解。 (1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大的顺序输出。 #include using namespace std; int turn (int *p1,int *p2)

北京工业大学微机原理实验报告

微机原理实验报告 —实验二熟悉汇编程序建立 及其调试方法 姓名:刘莹莹 学号:13024104

一、实验目的 1、熟悉汇编语言源程序的框架结构,学会编制汇程序。 2、熟悉汇编语言上机操作的过程,学会汇编程序调试方法。 二、实验内容 1、学习编写汇编语言源程序的方法,了解数据存放格式。 2、阅读给出的程序,找出程序中的错误。 3、通过调试给出的汇编语言源程序,了解并掌握汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。 三、实验预习 1、阅读实验指导第一章的内容,了解汇编语言程序建立、汇编、链接、调试的全过程。 2、下面的汇编语言源程序有错误的,试给程序加注释。通过调试手段找出程序中的错误并修改之。写出程序的功能,画出程序流程图。(1)程序修改前: STACKSG:SEGMENT PARA STACK ‘STACK’ ;不能有冒号DB 256 DUP(?) STACKSG ENDS DATASG: SEGMENT PARA ‘DATA’;不能有冒号BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000 COUNT EQU 20 MAX DW ? DATASG ENDS CODESG: SEGMENT ;不能有冒号ASSUME SS:STACKSG , CS:CODESG ASSUME DS:DATASG ORG 100H BEGIN MOV DS, DATASG ;BEGIN: 应改为MOV AX , DATASG MOV DS, AX LEA SI ,BLOCK

电子设计大赛实验报告

2014年江苏省大学生电子设计竞赛实验报告 无线电能传输装置(F题) 2014年8月15日 摘要:本设计基于磁耦合式谐振荡电路来进行无线电能传输,点亮LED灯。由于输入和输出都是直流电 的形式,因此本系统将分为以下四个部分:第一部分为驱动电路(DC-AC),为使直流分量转化成交流电并通过耦合线圈将电能传输给负载,采用LC谐振的方式让回路中电容和电感构成一个二阶LC谐振电路,驱动MOS管形成交流电。第二部分为发射电路(AC-AC),应用电磁感应原理,在二次线圈中产生感应电流并输给接受电路。第三部分为电能转换电路(AC-DC),输出的感应交流电经整流桥桥式整流后流入升压电路。第四部分为升压电路(DC-DC),对整流之后的直流进行升压,防止整流后的电压无法驱动LED。本设计分模块搭建并对各个部分电路进行原理分析。在调试时,采用分模块调试,根据调试结果修改参数,最终形成一个完整的稳定系统。 关键词: 磁耦合式谐振荡电路LC振荡电路桥式整流DC-DC升压 [Abstract] The design is based on magnetic resonance oscillation circuit coupled to the wireless power transmission, lit LED lights. Since the input and output are in the form of direct current, so the system will be divided into the following four parts: The first part of the drive circuit (DC-AC), is converted into alternating current so that the DC component and the power transmission through the coupling coil to the load, using LC resonant circuit in a manner so that the capacitance and inductance form a second order LC resonant circuit, the AC drive MOS tube formation. The second part is the transmitter circuit (AC-AC), application of the principle of electromagnetic induction,

网络编程实验报告

网络编程技术实验报告 一实验目的: 网络编程技术是计算机科学与技术专业、网络工程专业、软件工程专业的一门专业基础课程。本课程以Java技术为主讲授,Java语言是当前最流行的网络编程语言。本课程是一门实用性和综合运用性都很强的课程,实践教学环节是教学过程中必不可少的重要内容。通过实验,让学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JA V A中的基本方法和技术,能够熟练使用JA V A设计、编写程序,特别是基于TCP/IP的Socket 编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。通过实验,提高学生使用Java语言程序设计开发的能力,提高应用面向对象技术分析和解决实际问题的能力,并在此基础上强化学生的实践意识、提高其分析问题、解决问题的能力以及动手能力和创新能力。 二实验要求 要求学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JAVA中的基本方法和技术,能够熟练使用JAVA设计、编写程序,特别是基于TCP/IP的Socket编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。要注意培养学生良好的编程习惯,自始至终贯彻课程中所介绍的程序设计风格。为保证尽量在统一安排的上机时间内完成程序设计任务,学生应事先做问题分析,并做静态检查。学生应记录实验中所遇到的问题,并写出详细的实验报告。课前准备上机程序,上机认真调试,课后撰写实验报告,实验报告包括实验目的、实验内容、源程序、实验结果及分析。

. 实验一java基本语法 实验目的: 了解Java的数据类型,掌握各种变量的声明方式,理解运算符的优先级,掌握Java基本数据类型、运算符与表达式,掌握顺序结构、选择结构和循环结构语法的程序设计方法。 实验要求: 1、编写一个声明Java不同数据类型变量的程序。 2、编写使用不同选择结构的程序。 3、编写使用不同循环结构结构的程序。 实验内容: 1、编写一个声明Java不同数据类型变量的程序。 public class DataTypes { public static void main(String args[]) { byte b=127; short s=32767; int i=2147483647; long l=9223372036l;//为什么long表示的数比Int还小? char c='c'; float f=1.23F; double d=0.9E-3; boolean bool=true; System.out.println(" b="+b); System.out.println(" s="+s); System.out.println(" i="+i); System.out.println(" l="+l); System.out.println(" c="+c); System.out.println(" f="+f); System.out.println(" d="+d); System.out.println(" bool="+bool); }

相关文档
最新文档