实验二实验报告
实验二杨氏弹性模量的测定实验报告
实验二杨氏弹性模量的测定实验报告一、实验目的1、学会用伸长法测量金属丝的杨氏弹性模量。
2、掌握光杠杆测量微小长度变化的原理和方法。
3、学会用逐差法处理实验数据。
二、实验原理杨氏弹性模量是描述固体材料抵抗形变能力的物理量。
假设一根粗细均匀的金属丝,长度为 L,横截面积为 S,受到外力 F 作用时伸长了ΔL。
根据胡克定律,在弹性限度内,应力(F/S)与应变(ΔL/L)成正比,比例系数即为杨氏弹性模量 E,其表达式为:\E =\frac{F \cdot L}{S \cdot \Delta L}\在本实验中,F 由砝码的重力提供,S 可通过测量金属丝的直径 d计算得出(\(S =\frac{\pi d^2}{4}\)),ΔL 是微小长度变化量,难以直接测量,采用光杠杆法进行测量。
光杠杆是一个带有可旋转支脚的平面镜,其前足尖放在固定平台上,后足尖置于待测金属丝的测量端,平面镜与金属丝平行。
当金属丝伸长ΔL 时,光杠杆后足尖随之下降ΔL,带动平面镜转过一个小角度θ。
设从望远镜中看到的标尺刻度的变化为Δn,光杠杆常数(即光杠杆前后足尖的垂直距离)为 b,望远镜到平面镜的距离为 D,则有:\(\tan\theta \approx \theta =\frac{\Delta L}{b}\)\(\tan 2\theta \approx 2\theta =\frac{\Delta n}{D}\)由上述两式可得:\(\Delta L =\frac{b \cdot \Delta n}{2D}\)将其代入杨氏弹性模量的表达式,可得:\E =\frac{8FLD}{\pi d^2 b \Delta n}\三、实验仪器杨氏弹性模量测定仪、光杠杆、望远镜、标尺、砝码、千分尺、游标卡尺等。
四、实验步骤1、调整仪器调节杨氏弹性模量测定仪底座的水平调节螺丝,使立柱铅直。
将光杠杆放在平台上,使平面镜与平台面垂直,前、后足尖位于同一水平面内。
操作系统实验二实验报告
操作系统实验二实验报告一、实验目的本次操作系统实验二的主要目的是深入理解和掌握进程管理的相关概念和技术,包括进程的创建、执行、同步和通信。
通过实际编程和实验操作,提高对操作系统原理的认识,培养解决实际问题的能力。
二、实验环境本次实验使用的操作系统为 Windows 10,编程环境为 Visual Studio 2019。
三、实验内容及步骤(一)进程创建实验1、首先,创建一个新的 C++项目。
2、在项目中,使用 Windows API 函数`CreateProcess`来创建一个新的进程。
3、为新进程指定可执行文件的路径、命令行参数、进程属性等。
4、编写代码来等待新进程的结束,并获取其退出代码。
(二)进程同步实验1、设计一个生产者消费者问题的模型。
2、使用信号量来实现生产者和消费者进程之间的同步。
3、生产者进程不断生成数据并放入共享缓冲区,当缓冲区已满时等待。
4、消费者进程从共享缓冲区中取出数据进行处理,当缓冲区为空时等待。
(三)进程通信实验1、选择使用管道来实现进程之间的通信。
2、创建一个匿名管道,父进程和子进程分别读写管道的两端。
3、父进程向管道写入数据,子进程从管道读取数据并进行处理。
四、实验结果及分析(一)进程创建实验结果成功创建了新的进程,并能够获取到其退出代码。
通过观察进程的创建和执行过程,加深了对进程概念的理解。
(二)进程同步实验结果通过使用信号量,生产者和消费者进程能够正确地进行同步,避免了缓冲区的溢出和数据的丢失。
分析结果表明,信号量机制有效地解决了进程之间的资源竞争和协调问题。
(三)进程通信实验结果通过管道实现了父进程和子进程之间的数据通信。
数据能够准确地在进程之间传递,验证了管道通信的有效性。
五、遇到的问题及解决方法(一)在进程创建实验中,遇到了参数设置不正确导致进程创建失败的问题。
通过仔细查阅文档和调试,最终正确设置了参数,成功创建了进程。
(二)在进程同步实验中,出现了信号量使用不当导致死锁的情况。
实验二实验报告
C语言程序设计报告二数据类型,运算符和简单的输入输出计算机学院软件工程2班王莹0411402011,实验目的(1)掌握C语言数据类型,了解字符型数据和整型数据的内在关系。
(2)掌握对各种数值型数据的正确输入方法。
(3)学会使用C语言的有关算数运算符,移机包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
(4)学会编写和运行简单的应用程序。
(5)进一步熟悉C程序的编辑、编译、连接和运行的过程。
2,实验内容和步骤(1)输入并运行教材第3章第4题给出的程序。
○1运行以上程序,分析为什么会输出这些信息。
因为第6行是将c1,c2按%c的格式输出,97是字符a的AS CⅡ代码,98是字符b的AS CⅡ代码。
第7行是将c1,c2按5d的格式输出,所以输出两个十进制整数。
○2如果将程序第4,5行改为c1=197;c2=198;运行时会输出由于Visual C++6.0字符型数据是作为signed char类型处理,它存字符的有效范围为0~127,超出此范围的处理方法,不痛的系统得到的结果不痛,因而用“%d”格式输出,结果是不可预期的。
用“%d”格式输出时,输出c1=-59,c2=-58.这是按补码形式输出的,内存字节中第1位为1时,作为负数。
59和197之和等于256,58与198之和也等于256.○3如果将程序第3行改为int c1,c2;运行时会输出因为97和98在int类型的有效范围。
(2)输入第3章第5题得程序。
即:用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
运行时分别按一下方式输入数据,观察输出结果,分析原因。
1,a=3,b=7,x=8.5,y=71.82,A,a↙2,a=3 b=7 x=8.5 y=71.82 A a↙3,a=3 b=7 8.5 71.82 A a↙4,a=3 b=7 8.5 71.82Aa↙5,3 7 8.5 71.82Aa↙6,a=3 b=7↙8.571.82↙A↙a↙7,a=3 b=7↙8.571.82↙Aa↙8,a=3 b=7↙8.671.82Aa↙12345678(3)输入以下程序○1编译和运行程序,注意i,j,m,n各变量的值。
实验二_基尔霍夫定律和叠加原理的验证(实验报告答案)
实验二基尔霍夫定律和叠加原理的验证一、实验目的1.验证基尔霍夫定律的正确性,加深对基尔霍夫定律的理解。
2.验证线性电路中叠加原理的正确性及其适用范围,加深对线性电路的叠加性和齐次性的认识和理解。
3.进一步掌握仪器仪表的使用方法。
二、实验原理1.基尔霍夫定律基尔霍夫定律是电路的基本定律。
它包括基尔霍夫电流定律(KCL)和基尔霍夫电压定律(KVL)。
(1)基尔霍夫电流定律(KCL)在电路中,对任一结点,各支路电流的代数和恒等于零,即ΣI=0。
(2)基尔霍夫电压定律(KVL)在电路中,对任一回路,所有支路电压的代数和恒等于零,即ΣU=0。
基尔霍夫定律表达式中的电流和电压都是代数量,运用时,必须预先任意假定电流和电压的参考方向。
当电流和电压的实际方向与参考方向相同时,取值为正;相反时,取值为负。
基尔霍夫定律与各支路元件的性质无关,无论是线性的或非线性的电路,还是含源的或无源的电路,它都是普遍适用的。
2.叠加原理在线性电路中,有多个电源同时作用时,任一支路的电流或电压都是电路中每个独立电源单独作用时在该支路中所产生的电流或电压的代数和。
某独立源单独作用时,其它独立源均需置零。
(电压源用短路代替,电流源用开路代替。
)线性电路的齐次性(又称比例性),是指当激励信号(某独立源的值)增加或减小K倍时,电路的响应(即在电路其它各电阻元件上所产生的电流和电压值)也将增加或减小K倍。
三、实验设备与器件1.直流稳压电源 1 台2.直流数字电压表 1 块3.直流数字毫安表 1 块4.万用表 1 块5.实验电路板 1 块四、实验内容1.基尔霍夫定律实验按图2-1接线。
图2-1 基尔霍夫定律实验接线图(1)实验前,可任意假定三条支路电流的参考方向及三个闭合回路的绕行方向。
图2-1中的电流I1、I2、I3的方向已设定,三个闭合回路的绕行方向可设为ADEFA、BADCB和FBCEF。
(2)分别将两路直流稳压电源接入电路,令U1=6V,U2=12V。
计算机基础实验报告实验一二参考模板
计算机基础实验报告实验一二参考模板一、实验目的计算机基础实验一的目的在于让学生熟悉计算机的基本操作和常用软件的使用,培养学生的动手能力和问题解决能力。
实验二则侧重于加深对计算机系统和网络知识的理解,提高学生的综合应用能力。
二、实验环境实验在学校的计算机实验室进行,每台计算机均安装了 Windows 操作系统,并配备了常用的办公软件、编程工具和网络浏览器等。
实验室还提供了稳定的网络环境,以便进行网络相关的实验操作。
三、实验内容与步骤(一)实验一1、计算机硬件的认识打开计算机主机箱,观察主板、CPU、内存、硬盘、显卡等硬件设备的外观和接口。
了解各硬件设备的主要功能和性能指标。
2、操作系统的安装与设置使用安装光盘或 U 盘启动盘,安装 Windows 操作系统。
进行系统初始化设置,如用户名、密码、日期时间等。
安装驱动程序,确保硬件设备正常工作。
3、常用办公软件的使用打开 Word 软件,进行文档的创建、编辑、排版和保存。
使用 Excel 软件进行表格的制作、数据计算和图表绘制。
利用 PowerPoint 软件创建演示文稿,添加文字、图片、动画等元素。
(二)实验二1、计算机网络基础了解计算机网络的组成、分类和拓扑结构。
学习 IP 地址、子网掩码、网关和 DNS 的概念和设置方法。
通过命令提示符(CMD)窗口,使用 Ping 命令检测网络连通性。
2、网络服务与应用配置 Web 服务器和 FTP 服务器,实现网页的发布和文件的上传下载。
学会使用浏览器访问网页、搜索信息和下载文件。
了解电子邮件的工作原理,注册邮箱并进行邮件的收发。
四、实验结果与分析(一)实验一1、硬件认识方面,学生能够准确识别计算机的主要硬件设备,并对其功能有了初步的了解。
但对于一些较新的硬件技术和性能参数的理解还不够深入。
2、操作系统的安装和设置过程较为顺利,大部分学生能够独立完成。
但在驱动程序的安装过程中,少数学生遇到了兼容性问题,需要通过更新驱动或寻求技术支持解决。
新教科版科学三年级上册《实验二:观察倒扣在地面上的塑料盒中的变化》实验报告
新教科版科学三年级上册《实验二:观察倒扣在地面上的塑料盒中的变化》实验报告
实验二:
观察倒扣在地面上的塑料盒中的变化。
(1)实验材料:
透明的塑料盒。
(2)实验步骤:
将透明的塑料盒倒扣在地面上,放置一段时间,观察盒中的变化。
(3)实验现象:
放置一段时间后,塑料盒內部岀现细小的水珠,放置时间越长水珠越大,当水珠增长到一定大小时会流下或落到地面上。
(4)实验结论:
地面上的水变成水蒸气进人到空气中,进入到空气中的水蒸气可以变成水珠重新落回到地面上。
实验二实验报告
实验二实验报告1. 引言实验二旨在探究某一特定现象或者现象之间的关系,并且通过实验数据和分析来验证或者推论相关理论。
本实验主要目的是研究X现象,并且分析X现象与Y之间的关系。
通过实验结果的观察和数据的统计分析,我们可以深入了解该现象的特点和规律。
2. 实验设计2.1 实验装置本次实验采用了XXXX装置来模拟实验环境,并利用XX测量设备来获取相关数据。
2.2 实验步骤1) 步骤一:准备实验装置,按照实验要求设置相关参数。
2) 步骤二:开启实验装置,记录初始数据。
3) 步骤三:对实验环境进行一定的处理或者改变,观察现象,记录数据。
4) 步骤四:重复步骤三,采集足够的数据。
5) 步骤五:整理数据并进行分析。
3. 实验结果与数据分析通过实验数据的统计和分析,我们得出以下结论:在实验过程中,我们观察到X现象的特征是......通过记录的数据我们可以发现......3.2 结果二对于不同的实验环境参数,我们发现X现象与Y之间存在一定的关联性......通过数据分析,我们可以得出......3.3 结果三进一步的实验数据表明......这与我们之前的推测相符,同时也与X 理论一致......4. 讨论与分析通过实验结果与数据分析,我们可以得出以下结论:4.1 讨论一实验结果验证了X理论,并且揭示了X现象的某些特征......这对于进一步研究和应用X现象具有重要的意义......4.2 讨论二实验中发现的X与Y之间的关联性,给我们提供了一定的启示和思考......进一步探究X与Y之间的机制可以推动相关领域的发展......5. 结论通过实验二的设计与结果分析,我们得出以下结论:实验结果表明X现象在特定条件下具有一定规律性和可重复性,验证了X理论的正确性。
5.2 结论二实验进一步揭示了X与Y之间的关联性,为相关领域的研究和应用提供了参考。
6. 总结本次实验通过设计与实施,详细研究了X现象,并探究了X与Y 之间的关系。
软件测试实验二实验报告
软件测试实验二实验报告一、实验目的本次软件测试实验的主要目的是熟悉并掌握软件测试的基本方法和技术,通过对一个具体软件系统的测试,发现软件中存在的缺陷和问题,提高软件的质量和可靠性。
二、实验环境1、操作系统:Windows 102、测试工具:Jmeter、Selenium、Bugzilla3、开发语言:Java4、数据库:MySQL三、实验内容1、功能测试对软件的登录功能进行测试,包括输入正确和错误的用户名、密码,验证登录是否成功以及相应的提示信息是否准确。
测试软件的注册功能,检查输入的各项信息是否符合要求,如用户名长度、密码强度等。
对软件的搜索功能进行测试,输入不同的关键词,检查搜索结果的准确性和完整性。
2、性能测试使用 Jmeter 工具对软件的并发性能进行测试,模拟多个用户同时登录、搜索等操作,观察系统的响应时间、吞吐量等性能指标。
对软件的数据库操作性能进行测试,包括插入、查询、更新和删除数据,检查数据库的响应时间和资源占用情况。
3、兼容性测试在不同的浏览器(如 Chrome、Firefox、IE 等)上运行软件,检查界面显示和功能是否正常。
在不同的操作系统(如 Windows、Mac OS、Linux 等)上安装和运行软件,验证其兼容性。
4、安全测试对软件的用户认证和授权机制进行测试,检查是否存在未授权访问和越权操作的情况。
测试软件对 SQL 注入、XSS 攻击等常见安全漏洞的防范能力。
四、实验步骤1、功能测试步骤打开软件登录页面,输入正确的用户名和密码,点击登录按钮,观察是否成功登录并跳转到相应页面。
输入错误的用户名或密码,检查提示信息是否清晰准确。
进入注册页面,输入合法和不合法的注册信息,如用户名过短、密码强度不够等,查看系统的校验结果。
在搜索框中输入关键词,点击搜索按钮,对比搜索结果与预期是否一致。
2、性能测试步骤打开 Jmeter 工具,创建测试计划,添加线程组、HTTP 请求等元素。
大学计算机实验二报告
大学计算机实验二报告实验目的本实验旨在通过使用Markdown文本格式,编写一篇关于大学计算机实验二的报告。
通过该实验,我们将学习如何按照步骤思考并编写一篇有条理的文档。
实验步骤步骤一:准备在开始编写报告之前,我们需要做一些准备工作。
首先,我们需要确保我们已经熟悉Markdown文本格式,并且了解如何在文档中使用各种Markdown标记。
其次,我们需要收集关于大学计算机实验二的所有相关信息,包括实验目的、实验步骤、实验结果等。
步骤二:创建报告在准备工作完成后,我们可以开始创建实验报告了。
首先,我们需要使用Markdown语法创建标题,并简要介绍实验的目的。
接下来,我们可以使用Markdown的列表标记来描述实验步骤。
对于每个步骤,我们应该给出清晰明确的说明和操作指南,以便读者能够按照我们的指导完成实验。
步骤三:展示实验结果完成实验后,我们需要将实验结果展示给读者。
在Markdown中,我们可以使用表格、代码块和文本格式化等功能来展示实验结果。
我们可以使用表格来呈现实验数据,使用代码块来展示编写的代码,使用文本格式化功能来强调重要的结果和观察。
步骤四:总结与讨论在展示实验结果之后,我们需要对实验进行总结与讨论。
我们可以使用Markdown的段落和标题标记来组织我们的思路,并给出实验的主要结论和发现。
在讨论部分,我们可以提出一些问题供读者思考,并给出我们自己的解释和观点。
步骤五:撰写实验报告最后,我们可以开始撰写完整的实验报告了。
在撰写报告时,我们应该注意语法和拼写的准确性,并保持文档的结构和逻辑性。
我们可以使用Markdown的引用标记来引用他人的研究结果和引用文献。
此外,我们还可以使用Markdown的链接标记来引用其他相关资源。
结论通过本次实验,我们学习了如何按照步骤思考并编写一篇有条理的文档。
通过使用Markdown文本格式,我们能够清晰地表达实验目的、步骤和结果,并且能够以一种结构化和易读的方式呈现给读者。
汇编实验报告(实验二)
实验二循环与子程序程序设计一、实验目的1)加深对循环结构的理解。
2)掌握循环程序的设计方法。
3)学习子程序的定义和调用方法。
4)掌握子程序、子程序的嵌套、递归子程序和结构。
5)掌握子程序设计、编制及调试。
6)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
二、实验内容3)编制在屏幕上显示九九乘法表的程序。
4)编制在屏幕上显示用*组成的三角形的程序。
6)编写一个递归子程序,计算指数函数Xn的值,其中X,n从键盘输入。
三、程序内容3)data segmentdata endscode segmentassume cs:code;ds:datastart:mov ax,datamov ds,axmov bl,30hmov bh,31hmov cl,blone:add bl,1mov dl,blmov ah,2int 21hmov dl,'*'mov ah,2int 21hmov dl,bhmov ah,2int 21hmov dl,'='mov ah,2int 21hand bl,0fhand bh,0fhmov al,bhimul blmov ah,0hmov ch,0ahidiv chmov dh,ahadd al,30hcmp al,30hjz threetwo:mov dl,almov ah,2hint 21hadd dh,30hmov dl,dhmov ah,2int 21hadd bl,30hadd bh,30hmov dl,20hmov ah,2int 21hcmp bl,bhjl onemov dl,0ahmov ah,2int 21hmov dl,0dhmov ah,2int 21hmov bl,cladd bh,1hcmp bh,3ahjl onejmp exitthree:mov al,20hjmp twoexit:mov ah,4chint 21hcode endsend start4)code segmentassume cs:code,ds:data,ss:stackstart:mov al,1mov bl,1l:add al,30hmov dl,almov ah,02hint 21hpush ax mov dl,'*' mov ah,02h int 21hpop ax push axadd bl,30h mov dl,bl mov ah,02h int 21hpop ax push ax mov dl,'=' mov ah,02h int 21hpop axsub al,30h sub bl,30h push bx push axmul blcall result mov dl,' ' mov ah,02h int 21hpop axpop bxinc alcmp al,bl jbe lmov dl,0ah mov ah,02h int 21hmov dl,0dh mov ah,02h int 21hcmp bl,8ja kmov al,1inc bljmp lk:mov ah,4ch int 21hresult:mov cx,0 aaaa:mov bx,10mov dx,0div bxpush dxinc cxmov dx,0cmp ax,0jne aaaabbbb:pop bxjmp lastcccc:last:cmp bx,39hja aboveadd bl,30hmov dl,blmov ah,02hint 21hloop bbbbretabove:add bx,37hmov dl,blmov ah,02hint 21hloop bbbbcode endsend start四、实验结果3)4)。
实验二碰撞实验报告
实验二碰撞实验报告14 级软件工程班候梅洁 14047021【实验目的】1.掌握气垫导轨的水平调整、光电门及电脑通用计数器的使用。
2.学会使用物理天平。
3.用对心碰撞特例检验动量守恒定律。
4.了解动量守恒定律和动能守恒的条件。
碰撞前后的动量关系为:m 1 u1 =(m1 +m 2)v 2动能变化为:E k =1/2 (m1 +m 2)v 22 -1/2m 1 u 12【实验步骤】用物理天平校验两滑块的(连同挡光物)的质量m 1及 m 2,经测量1.m 1 =136.60g、m 2 =344.02g2.用游标卡尺测出两挡光物的有效遮光宽度,本实验中s 1 = s 2 =5.00cm3.将气垫导轨调水平。
(1)粗调:调节导轨下的三只底脚螺丝,使导轨大致水平(观察导轨上的气泡,若气泡位于最中央,说明已调平)。
(2)静态调平:接通气源,将滑块放在导轨上,这时滑块在导轨上自由运动,调节导轨的单脚底螺丝,使滑块基本静止(不会一直向单一方向运动)(3)动态调平:将两个安装在到导轨上的光电门相距 60cm左右。
在滑块上安放 u 型挡光片,接电脑通用计数器的电源,打开电源开关,将电脑计数器功能置于“ s2”挡。
轻轻推动滑块,分别读出遮光片通过两个光电门的时间t 1和t 2,它们不等,则反复强调单脚螺丝,使它们相差不超过千分之几秒,此时可认为气垫导轨基本水平。
4.完全弹性碰撞适当放置光电门的位置,使它能顺利测出两个滑块碰撞前后的速度,并在可能的情况下,使两个光电门的距离小些。
每次碰撞时,大滑块的速度不要太大,让两个滑块完全碰撞两次,分别记录每次的滑块的速度并结算出:(注意速度方向)动量的变化大小C=(m 1 v1 +m 2 v 2 )/(m 1 u1 +m 2 u 2 )恢复系数 e=(v 2 -v 1 )/(u 1 -u 2 )(v 2 -v 1为两物体碰撞后相互分离的相对速度,u1 -u 2则为碰撞前彼此接近的相对速度)【注意事项】1.严格按照在操作规范使用物理天平;2.严格按照气垫导轨操作规则;3.给滑块速度时速度要平稳,不应使滑块产生摆动;挡光框应与滑块运动方向一致,且其遮光边缘应与滑块运动方向垂直;4.挡光框应与滑块之间应固定牢固,防止碰撞时相对位置改变,影响测量精度。
实验报告实验2 数据类型与表达式
实验报告_实验 2 数据类型与表达式(学生学号__姓名)一、实验目的:1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;3、熟悉字符常量与一般常量的定义、使用;4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。
二、实验内容1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。
回答下列问题:(1)sizeof运算符如何使用?它的操作数可以是类型关键字吗?答:可用sizeof(类型名或数据) 来获取该类型数据所占字节数。
可以。
(2)整数的占用长度与其数值大小有关吗?答:有。
(3)字符串中’\’’、’\n’、’\t’的功能各是什么?答:单引号,换行,水平制表。
(4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字符?答:1个字节;4个字节;结束符‘\0’。
(5)整数的存储形式是什么?答:二进制补码。
2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。
回答下列问题:(1)字符数据在内存中是以什么方式存储的?答: ASCII码。
(2)字符数据与整型数据能相互赋值、运算吗?如何以“整数”方式和“字符”方式输出字符?答:能,整数:”%d”,字符:”%c”。
(3)大小写字母的ASCII有什么关系?(如:’G’与’g’)答:ASCII码相差32。
(4)如何由’A’、’a’分别得到后续的大写字母、小写字母?答:’A+1’,’a+1.’(5)字符间的距离如何计算?由一字符能分别得到ASCII比它小5、大10的两个字符吗?若能,如何得到?答:两个ASCII码绝对值相减,’a’-5,’a’+10.(6)说明“C”与’c’的联系与区别,能否写成”dog”、’boy’?答:”C”字符串,’c’字符,能.3、(基础题)符号常量与常变量(即用const关键字定义)的使用:回答问题:(1)写出用符号常量定义PI的格式;#define PI 3.14(2)写出用“常变量”方式定义PI值的语句。
实验二-决策树实验-实验报告
决策树实验一、实验原理决策树是一个类似于流程图的树结构,其中每个内部结点表示在一个属性上的测试,每个分支代表一个测试输入,而每个树叶结点代表类或类分布。
数的最顶层结点是根结点。
一棵典型的决策树如图1所示。
它表示概念buys_computer,它预测顾客是否可能购买计算机。
内部结点用矩形表示,而树叶结点用椭圆表示。
为了对未知的样本分类,样本的属性值在决策树上测试。
决策树从根到叶结点的一条路径就对应着一条合取规则,因此决策树容易转化成分类规则。
图1ID3算法:■决策树中每一个非叶结点对应着一个非类别属性,树枝代表这个属性的值。
一个叶结点代表从树根到叶结点之间的路径对应的记录所属的类别属性值。
■每一个非叶结点都将与属性中具有最大信息量的非类别属性相关联。
■采用信息增益来选择能够最好地将样本分类的属性。
信息增益基于信息论中熵的概念。
ID3总是选择具有最高信息增益(或最大熵压缩)的属性作为当前结点的测试属性。
该属性使得对结果划分中的样本分类所需的信息量最小,并反映划分的最小随机性或“不纯性”。
二、算法伪代码算法Decision_Tree(data,AttributeName)输入由离散值属性描述的训练样本集data;候选属性集合AttributeName。
输出一棵决策树。
(1)创建节点N;(2)If samples 都在同一类C中then(3)返回N作为叶节点,以类C标记;(4)If attribute_list为空then(5)返回N作为叶节点,以samples 中最普遍的类标记;//多数表决(6)选择attribute_list 中具有最高信息增益的属性test_attribute;(7)以test_attribute 标记节点N;(8)For each test_attribute 的已知值v //划分samples(9)由节点N分出一个对应test_attribute=v的分支;(10令S v为samples中test_attribute=v 的样本集合;//一个划分块(11)If S v为空then(12)加上一个叶节点,以samples中最普遍的类标记;(13)Else 加入一个由Decision_Tree(Sv,attribute_list-test_attribute)返回节点值。
实验二 面向对象编程实验报告
实验二面向对象编程实验报告一、实验目的本次实验旨在深入理解和掌握面向对象编程的基本概念和方法,通过实际编程操作,提高运用面向对象思想解决问题的能力,熟悉面向对象编程的开发流程和技巧,培养良好的编程习惯和代码规范。
二、实验环境本次实验使用的编程环境为具体编程环境名称及版本,操作系统为操作系统名称及版本。
三、实验内容(一)问题描述设计一个简单的学生管理系统,能够实现对学生信息(包括姓名、学号、年龄、成绩等)的录入、查询、修改和删除操作。
(二)类的设计1、设计一个`Student` 类,用于表示学生对象。
该类包含以下属性:`name`(姓名)、`student_id`(学号)、`age`(年龄)、`score`(成绩)。
2、为`Student` 类添加构造函数,用于初始化学生对象的属性。
3、为`Student` 类添加`get` 和`set` 方法,用于获取和设置学生对象的属性值。
(三)功能实现1、录入功能:实现用户输入学生信息,并创建`Student` 对象进行存储。
2、查询功能:根据学号或姓名查询学生信息,并输出查询结果。
3、修改功能:根据学号或姓名找到对应的学生对象,修改其属性值。
4、删除功能:根据学号或姓名删除对应的学生对象。
四、实验步骤(一)类的实现```javapublic class Student {private String name;private String studentId;private int age;private double score;public Student(String name, String studentId, int age, double score) {thisname = name;thisstudentId = studentId;thisage = age;thisscore = score;}public String getName(){return name;}public void setName(String name) {thisname = name;}public String getStudentId(){return studentId;}public void setStudentId(String studentId) {thisstudentId = studentId;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}public double getScore(){return score;}public void setScore(double score) {thisscore = score;}}```(二)主函数实现```javaimport javautilArrayList;import javautilScanner;public class StudentManagementSystem {private ArrayList<Student> students;public StudentManagementSystem(){students = new ArrayList<>();}public static void main(String args) {StudentManagementSystem system = new StudentManagementSystem();Scanner scanner = new Scanner(Systemin);while (true) {Systemoutprintln("1、录入学生信息");Systemoutprintln("2、查询学生信息");Systemoutprintln("3、修改学生信息");Systemoutprintln("4、删除学生信息");Systemoutprintln("5、退出系统");int choice = scannernextInt();switch (choice) {case 1:systemaddStudent(scanner);break;case 2:systemqueryStudent(scanner);break;case 3:systemmodifyStudent(scanner);break;case 4:systemdeleteStudent(scanner);break;case 5:Systemoutprintln("感谢使用,再见!");Systemexit(0);default:Systemoutprintln("输入有误,请重新输入!");}}}//录入学生信息public void addStudent(Scanner scanner) {Systemoutprintln("请输入学生姓名:");String name = scannernext();Systemoutprintln("请输入学生学号:");String studentId = scannernext();Systemoutprintln("请输入学生年龄:");int age = scannernextInt();Systemoutprintln("请输入学生成绩:");double score = scannernextDouble();Student student = new Student(name, studentId, age, score);studentsadd(student);Systemoutprintln("学生信息录入成功!");}//查询学生信息public void queryStudent(Scanner scanner) {Systemoutprintln("请输入查询方式(1、按学号查询 2、按姓名查询):");int queryType = scannernextInt();if (queryType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){Systemoutprintln("姓名:"+ studentgetName());Systemoutprintln("学号:"+ studentgetStudentId());Systemoutprintln("年龄:"+ studentgetAge());Systemoutprintln("成绩:"+ studentgetScore());return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (queryType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){Systemoutprintln("姓名:"+ studentgetName());Systemoutprintln("学号:"+ studentgetStudentId());Systemoutprintln("年龄:"+ studentgetAge());Systemoutprintln("成绩:"+ studentgetScore());return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}//修改学生信息public void modifyStudent(Scanner scanner) {Systemoutprintln("请输入修改方式(1、按学号修改 2、按姓名修改):");int modifyType = scannernextInt();if (modifyType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){Systemoutprintln("请输入新姓名:");String newName = scannernext();Systemoutprintln("请输入新年龄:");int newAge = scannernextInt();Systemoutprintln("请输入新成绩:");double newScore = scannernextDouble();studentsetName(newName);studentsetAge(newAge);studentsetScore(newScore);Systemoutprintln("学生信息修改成功!");return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (modifyType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){Systemoutprintln("请输入新学号:");String newStudentId = scannernext();Systemoutprintln("请输入新年龄:");int newAge = scannernextInt();Systemoutprintln("请输入新成绩:");double newScore = scannernextDouble();studentsetStudentId(newStudentId);studentsetAge(newAge);studentsetScore(newScore);Systemoutprintln("学生信息修改成功!");return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}//删除学生信息public void deleteStudent(Scanner scanner) {Systemoutprintln("请输入删除方式(1、按学号删除 2、按姓名删除):");int deleteType = scannernextInt();if (deleteType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){studentsremove(student);Systemoutprintln("学生信息删除成功!");return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (deleteType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){studentsremove(student);Systemoutprintln("学生信息删除成功!");return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}}```五、实验结果通过对程序的运行和测试,能够成功实现学生信息的录入、查询、修改和删除功能。
实验02(移相器)实验报告
实验二-移相器、相敏检波器及交流电桥实验实验1:移相器实验:一、实验目的了解运算放大器构成的移相电路的原理及工作情况二、实验原理图三、实验器械移相器、音频振荡器、双线(双踪)示波器、主、副电源四、实验数据记录和数据处理实验数据如下:5Khz时,移相范围为15us7Khz时,移相范围为14us9Khz时,移相范围为15us五、实验思考题根据图2-1,分析本移相器的工作原理,并解释所观察到的现象答:任何传输介质对在其中传导的波动都会引入相移。
实验2:相敏检波器实验一、实验目的了解相敏检波器的原理和工作情况二、实验原理图相敏检波电路如图2-2 所示,图中(1)端为输入信号端,(3)为输出端,(2)为交流参考电压输入端,(4)为直流参考电压输入端。
(5)、(6)为两个观察口。
三、实验器械相敏检波器、移相器、音频振荡器、示波器、直流稳压电源、低通滤波器四、实验数据记录和数据处理实验数据如下:实验数据拟合图像如下:五、思考题1、根据相敏检波器原理图2-2,定性分析此相敏检波器电路的工作原理。
答:模拟PSD:使用乘法器,通过与待测信号频率相同的参考信号与待测信号相乘,其结果通过低通滤波器得到与待测信号幅度和相位相关的直流信号。
2、根据实验结果,可以知道相敏检波器的作用是什么?移相器在实验线路中的作用是什么?答:相敏检波器鉴别调制信号相位和选频,移相器对波的相位进行调整实验3:交流全桥的测重实验一、实验目的了解交流供电的四臂应变电桥的原理和工作情况二、实验原理交流全桥侧重原理与直流电桥一样,也是利用箔式应变片的电阻应变效应来完成的。
将R1、R2、R3、R4 四个箔式应变片按它们的受力方向接入组成全桥,从音频振荡器的LV 端给全桥电路一个音频信号,当电桥对应两边的阻抗乘积相等时,电桥达到平衡,输出为零。
交流电桥工作时增大相角差可以提高灵敏度,传感器最好是纯电阻性或纯电抗性的。
交流电桥只有在满足输出电压的实部和虚部均为零的条件下才会平衡。
实验二-实验报告(进程管理)
实验二模拟实现进程管理组长:李和林软件1402一、实验目的1.理解进程的概念,明确进程和程序的区别。
2.理解并发执行的实质。
3.掌握进程的创建,睡眠,撤销等进程控制方法。
二、实验内容用C语言,JAVA语言,C++语言编写程序,模拟实现创建新的进程;查看运行进程,换出某个进程;杀死运行进程。
三、实验准备1.进程的定义进程是程序在一个数据集合上的运行过程,是系统资源分配和调度的一个独立单位。
一个程序在不同的数据集合上运行,乃至一个程序在同样数据集合上的多次运行都是不同的进程。
2.进程的状态通常情况下,一个进程必须具有就绪,执行和阻塞三种基本情况。
1)就绪状态当进程已分配到除处理器外的所有必要资源后,只要再获得处理器就可以立即执行,这时进程的状态就为就绪状态。
在一个系统里,可以有多个进程同时处于就绪状态,通常把这些就绪进程排成一个或多个队列,称为就绪队列。
2)执行状态处于就绪状态的进程一旦获得处理器,就可以运行,进程状态也就处于执行状态,在单处理器系统中,只能有一个进程处于执行状态,在多处理器系统中,则可能有多个进程处于执行状态3)阻塞状态正在执行的进程因为发生某些事件而暂停运行,这种受阻暂停的状态称为阻塞状态,也可称为等待状态。
通常将处于阻塞状态的进程拍成一个队列,称为阻塞队列,在有些系统中,也会按阻塞原因的不同将阻塞状态的进程排成多个队列。
3.进程状态之间的转换4.进程控制块1)进程控制块的作用进程控制块是进程实体的重要组成部分,主要包含下述四个方面的信息:a)进程标示信息b)说明信息c)现场信息d)管理信息5.进程控制块的组织方式1)链接方式2)索引方式6.进程控制原语1)创建原语2)撤销原语3)阻塞原语4)唤醒原语7.程序代码#include<stdio.h>#include<iostream>using namespace std;void clrscr();void create();void run( );void exchange( );//唤出void kill( );void wakeUp( );//唤醒struct process_type{int pid;int priority;//优先次序int size;int state;//状态char info[10];};struct process_type internalMemory[20];int amount=0,hangUp=0,pid,flag=0;//数目,挂起void main( ){int n;int a;n=1;clrscr( );while(n==1){cout<<"\n********************************************";cout<<"\n* 进程演示系统 *";cout<<"\n********************************************";cout<<"\n 1.创建新的进程 2.查看运行进程 ";cout<<"\n 3.换出某个进程 4.杀死运行进程 ";cout<<"\n 5.唤醒某个进程¨ 6.退出系统 ";cout<<"\n*********************************************"<<endl;cout<<"请选择 ";cin>>a;switch(a){case 1:create( );break;case 2:run( );break;case 3:exchange();//换出break;case 4:kill();break;case 5:wakeUp();break;case 6:exit(0);default:n=0;}}}void create(){ //创建进程int i=0;if (amount>=20){cout<<" 内存已满,请先结束或换出进程";}else{for (i=0;i<20;i++){if (internalMemory[i].state==0){break;}}cout<<"请输入新进程的pid: "<<endl;cin>>internalMemory[ i ].pid;cout<<"请输入新进程的优先级: "<<endl;cin>>internalMemory[amount].priority;cout<<"请输入新进程的大小: "<<endl;cin>>internalMemory[amount].size;cout<<"请输入新进程的内容: "<<endl;cin>>internalMemory[amount].info;internalMemory[i].state=1;amount++;}}void clrscr()//清除内存空间{for (int i=0;i<19;i++){internalMemory[i].pid=0;internalMemory[i].priority=0;internalMemory[i].size=0;internalMemory[i].state=0;}amount=0;}void run(){for (int i=0;i<20;i++){if (internalMemory[i].state==1){cout<<"当前内存中的进程:\n"<<endl;cout<<"当前运行的进程: ";cout<<internalMemory[i].pid<<endl;cout<<"当前运行进程的优先级: ";cout<<internalMemory[i].priority<<endl;cout<<"当前运行进程占用的空间大小: ";cout<<internalMemory[i].size;}}}void exchange( ){//唤出优先级最小的进程if (!amount){cout<<"当前没有运行进程\n";return;}cout<<"\n输入换出进程的ID值: ";cin>>pid;for (int i=0;i<20;i++){if (pid==internalMemory[i].pid){if (internalMemory[i].state==1){internalMemory[i].state=2;hangUp++;cout<<"\n已经成功换出进程\n";}else if (internalMemory[i].state==0){cout<<"\n要换出的进程不存在";}else{cout<<"\n要换出的进程已被挂起\n";}flag=1;break;}}if (flag==0){cout<<"\n要换出的进程不存在";}}void kill( ){if (!amount){cout<<"当前没有运行进程\n";return;}cout<<"请输入要杀死的进程: ";cin>>pid;for (int i=0;i<20;i++){if (pid==internalMemory[i].pid){if (internalMemory[i].state==1){internalMemory[i].state=0;amount--;cout<<"此进程被杀死"<<pid;}else if (internalMemory[i].state==0){cout<<"\n要杀死的进程不存在\n";}else{cout<<"\n要杀死的进程已被挂起\n";}flag=1;break;}}if (!flag){cout<<"\n要杀死的进程不存在\n";}}void wakeUp(){if (!amount){cout<<"当前没有运行进程"<<endl;return;}if (!hangUp){cout<<"当前没有挂起进程";return;}cout<<"请输入pid: ";cin>>pid;for (int i=0;i<20;i++){if (pid==internalMemory[i].pid){flag=0;if (internalMemory[i].state==2){internalMemory[i].state=1;hangUp--;cout<<"已经成功唤醒进程\n";}else if (internalMemory[i].state==0){cout<<"\n要换醒的进程不存在\n";}else{cout<<"\n要唤醒的进程已被挂起\n";}break;}}if (flag){cout<<"\n要唤醒的进程已被挂起\n"<<endl;}}8.实现的结果。
实验二碳钢的热处理及硬度测试实验报告
实验二碳钢的热处理及硬度测试实验报告实验二碳钢的热处理及硬度测试实验报告一、实验目的本实验主要探究碳钢的热处理工艺及其硬度变化,通过实际操作,理解并掌握热处理对碳钢硬度的影响,为实际生产过程中提供理论依据和工艺指导。
二、实验原理热处理是一种通过对金属进行加热和冷却来改变其内部显微结构,从而达到改变其物理和机械性能的工艺。
对于碳钢而言,热处理可以改变其硬度、韧性和耐磨性等。
其中,淬火是热处理中的一种重要工艺,通过将金属加热到一定温度,然后快速冷却,达到提高硬度的效果。
硬度是材料抵抗局部变形的能力,是材料力学性能的重要指标之一。
碳钢的硬度测试通常采用洛氏硬度或布氏硬度。
通过硬度测试,我们可以直观地了解热处理对碳钢硬度的影响。
三、实验步骤1.准备材料:选取一块碳钢(如20钢),并准备相应的热处理设备(如电炉、淬火设备等)。
2.样品处理:将碳钢切割成所需尺寸,并用砂纸打磨表面,以去除氧化皮和其他表面缺陷。
3.热处理:将碳钢加热到预设的淬火温度(如800℃),保温一定时间(如30分钟),然后以一定的冷却速度(如油淬或水淬)进行冷却。
4.硬度测试:采用洛氏硬度计或布氏硬度计,对热处理后的碳钢样品进行硬度测试,并记录数据。
四、实验结果及数据分析实验数据如下表所示:1.经过热处理的碳钢硬度明显高于原始碳钢,说明热处理可以提高碳钢的硬度。
2.冷却速度对碳钢的硬度影响较大。
在本实验中,采用油淬的冷却速度较慢,使得碳钢有足够的时间在高温下发生奥氏体转变成马氏体,从而提高硬度。
若采用更快的冷却速度(如水淬),则碳钢的硬度可能会更高。
3.保温时间对碳钢的硬度也有一定影响。
在本实验中,保温30分钟可以使碳钢充分加热并达到奥氏体状态,为后续的马氏体转变提供足够的能量。
若保温时间过短,可能导致碳钢加热不充分,影响硬度的提高。
五、结论本实验通过探究碳钢的热处理工艺及硬度测试,发现热处理可以有效提高碳钢的硬度,且冷却速度和保温时间对硬度也有影响。
实验报告二-模拟交通灯实验
实验报告二-模拟交通灯实验实验目的:本次实验旨在通过模拟交通灯实验,了解交通灯的工作原理、设计及调节方法。
实验原理:交通灯是城市交通管理中不可缺少的部分,广泛应用于道路、路口等地方,用以调整交通流量和保障行人和车辆的交通安全。
基本上,每个交通灯系统都由信号控制器、信号球、绿地检测器组成。
信号控制器是交通灯系统的核心部分,通过控制信号球的点灯和熄灭,向车辆、行人发出指令。
实验器材:1. Arduino控制板;2. LED灯若干;3. 面包板;4. 杜邦线;5. 电阻。
实验步骤:1. 通过面包板将Arduino控制板与电阻、LED灯连接;2. 在Arduino控制板上编写程序,实现交通灯模拟;3. 连接电源,通过Arduino IDE输入程序运行。
实验结果:经过程序处理,LED灯按照交通灯的颜色进行变换,使得其能够模拟实际交通灯的工作状态,达到预期效果。
实验教训:在实验过程中,我们发现LED灯的管脚与面包板接触不良时,会出现程序不能正常运行的情况。
因此,我们在连接器件时要确保接触良好,并注意防静电。
实验思考:本次实验通过模拟交通灯,我们深刻认识到交通灯的工作原理以及对道路交通的重要意义。
合理设置交通灯,不仅能够保障行人和车辆安全,而且还能提高道路的通行效率。
因此,在今后的实践活动中,我们应该更加注重交通灯的科学研究和实际应用。
结语:通过本次实验,我们进一步认识到交通灯对于城市交通管理的重要性,同时也掌握了基本的交通灯原理和设计方法。
相信在今后的学习和研究中,我们将能够更好地提高交通管理的水平和效率。
实验二:描述性分析实验报告
数据分析及优化设计实验指导书(实验报告)实验名称描述性分析实验实验目的1、熟练掌握利用MATLAB软件计算均值、方差、协方差、相关系数、标准差与变异系数、偏度与峰度、中位数、分位数、三均值、四分位极差与极差。
2、熟练掌握jbtest与kstest关于一维数据的正态性检验。
3、掌握统计作图方法。
4、掌握多维数据的数字特征与相关矩阵的处理方法。
实验题答案实验一:1998年到2020年,我国汽车产量相关统计数据如表所示,解决以下问题:1)计算各项指标的平均值、标准差、变异系数、三均值、偏度与峰度;对数据进行读取,并计算各个指标的平均值、标准差、变异系数、三均值、偏度与峰度,代码如下:1.A=xlsread('第二章数据 experiment2_1.xlsx');=["生产产量(万吨)","金属切削机床产量(万台)","汽车产量(万辆)"]3.M=mean(A); %计算各指标(即各列)的均值4.SD=std(A); %计算各指标标准差5.V=SD./abs(M); %计算各指标变异系数6.SM=[0.25,0.5,0.25]*prctile(A,[25;50;75]); %计算各指标(即各列)的三均值7.pd=skewness(A,0); %计算每列数据的偏度8.fd=kurtosis(A,0)-3; %计算每列数据的峰度9.OUT=["数据名称",NAME;"平均值",M;"标准差",SD;"变异系数",V;"三均值",SM;"偏度",pd;"峰度",fd]在编辑器中输入代码,并保存为.m文件,在命令行窗口中输出各个计算结果如下图所示:2)各项指标是否服从正态分布?若服从正态分布,计算概率为1%时的生铁产量、金属切削机床产量及汽车产量;若不服从正态分布,利用Box-Cox 变换将数据进行变换,对变换后的数据进行相应的分析;对各项指标进行JB检验、KS检验和改进KS检验(即Lilliefors检验),并结合QQ图进行分析判断各项对应指标是否服从正态分布,Matlab中代码如下:1.%%-------------------------------绘图-------------------------------%%2.a1=A(:,[1]); %生铁产量(万吨)3.a2=A(:,[2]); %金属切削机床产量(万台)4.a3=A(:,[3]); %汽车产量(万辆)5.subplot(1,3,1),qqplot(a1),title('生铁产量');6.subplot(1,3,2),qqplot(a2),title('金属切削机床产量');7.subplot(1,3,3),qqplot(a3),title('汽车产量');8.h1=jbtest(X); %JB检验9.h2=kstest(X); %KS检验10.h3=lillietest(X); %改进KS检验11.H=[h1;h2;h3];各列指标检验结果如下:可以看出,生铁产量、金属切削机床产量、汽车产量三项指标都满足h1=0,h2=1,h3=0,表示JB检验和Lilliefors检验支持生铁产量、金属切削机床产量、汽车产量三项指标都服从正态分布,KS检验不支持生铁产量、金属切削机床产量、汽车产量三项指标服从正态分布。
实验二独立按键试验实验报告
实验二独立按键试验实验报告
一、实验目的
独立按键试验是为了验证按键与单片机的连接是否正常,并测试按键
功能是否正常,通过实验掌握按键接口的使用和按键的原理。
二、实验原理
在实际应用中,常常需要使用按键来实现硬件的控制。
按键的原理是:当按键关闭时,两个按键引脚之间短接,按键关闭。
当按键打开时,两个
按键引脚之间断开,按键打开。
三、实验仪器
1.单片机开发板
2.按键
3.面包板和杜邦线
4.电源线
四、实验步骤
1.将按键连接到单片机开发板上的按键接口,并接通电源。
2.编写程序,监测按键是否被按下,并通过串口输出按键的状态。
3.烧录程序到单片机,运行程序。
4.进行按键试验。
五、实验结果与分析
按下按键后,通过监测按键引脚的电平变化,可以判断按键是否被按下。
根据不同的按键连接方式,可能需要使用上拉电阻或下拉电阻来连接按键。
六、实验结论
通过独立按键试验,我们验证了按键与单片机的连接是否正确,并测试了按键的功能。
在实际应用中,可以根据需要使用按键来实现硬件的控制。
七、实验心得
通过本次实验,我掌握了按键接口的使用方法和按键的原理。
在实际应用中,按键是一个常用的控制元件,有了这次实验的经验,以后在使用按键时会更加得心应手。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PAM和PCM编译码器系统
一、实验目的
1.观察了解PAM信号形成的过程;验证抽样定理;了解混叠效应形成的原因;
2.验证PCM编译码原理;熟悉PCM抽样时钟、编码数据和输入/输出时钟之间的关系;了
解PCM专用大规模集成电路的工作原理和应用。
二、实验内容和步骤
1.PAM编译码器系统
1.1自然抽样脉冲序列测量
(1)准备工作;
(2)PAM脉冲抽样序列观察;
(3)PAM脉冲抽样序列重建信号观测。
1.2平顶抽样脉冲序列测量
(1)准备工作;
(2)PAM平顶抽样序列观察;
(3)平顶抽样重建信号观测。
1.3信号混叠观测
(1)准备工作
(2)用示波器观测重建信号输出的波形。
2.PCM编译码器系统
2.1PCM串行接口时序观察
(1)输出时钟和帧同步时隙信号的观察;
(2)抽样时钟信号与PCM编码数据测量;
2.2用示波器同时观察抽样时钟信号和编码输出数据信号端口(TP502),观测时以TP504
同步,分析掌握PCM编码输数据和抽样时钟信号(同步沿、脉冲宽度)及输出时钟的对应关系;
2.3PCM译码器输出模拟信号观测,定性观测解码信号与输入信号的关系:质量,电平,
延时。
2.4PCM频率响应测量:调整测试信号频率,定性观察解码恢复出的模拟信号电平,观测
输出信号电平相对变化随输入信号频率变化的相对关系;
2.5PCM动态范围测量:将测试信号频率固定在1000Hz,改变测试信号电平,定性观测解
码恢复出的模拟信号的质量。
三、实验数据处理与分析
1.PAM编译码器系统
(1)观察得到的抽样脉冲序列和正弦波输入信号如下所示:
上图中上方波形为输入的正弦波信号,下方为得到的抽样脉冲序列,可见抽样序列和正弦波信号基本同步。
(2)观测得到的重建信号和正弦波输入信号如下所示:
如上图所示,得到的重建信号也为正弦波,波形并没有失真。
(3)平顶抽样的脉冲序列如下所示:
上图中上方的波形为输入的正弦波信号,下方为PAM平顶抽样序列。
(4)平顶抽样的重建信号波形:
可见正弦波经过平顶抽样,最终重建的信号仍为正弦波。
(5)观察产生混叠时的重建信号的输出波形
在实验时将输入的正弦波频率调至7.5KHz,通过示波器观察得到的输入正弦波波形和输出的重建信号如下所示:
由于实验时采用的抽样频率为8KHz,所以当输入的信号频率为7.5KHz时已经不满足抽样定理的要求了,所以会产生混叠误差,导致了输出的重建波形如上图所示,不再是正弦波了。
从测量结果可以得出如下规律:随着输入正弦波信号的频率逐渐升高,输出重建波形的幅值逐渐降低。
这是由于在实验电路中加入了抗混滤波器,该滤波器随着频率的升高会使处理的信号的衰减逐渐变大,所以如试验结果所示,随着输入信号频率的升高,输出信号的幅值在逐渐变小。
由于实验时采用的抽样频率为8000Hz,所以当输入信号的频率小于4000Hz时满足抽样定理,输出信号的频率与输入信号相同,所以上表结果中输入频率为1000,2500,3000Hz时输出频率与输入频率相同;当输入频率大于4000Hz时就会产生混叠误差,当根据抽样的性质可以知道,当输入频率小于8000Hz时,输出的频率会因为混叠误差变为“8000-输入频率”,而当输入频率大于8000时,输出信号的频率会变为“输出频率-8000”,所以会得到上表中的结果。
2.PCM编译码器系统
(1)输出时钟和帧同步时隙信号的观测结果如下:
上图中上方波形为抽样时钟信号的波形,下方为输出时钟信号的波形。
从波形中可以看出,PCM编码的抽样时钟信号和输出时钟信号的同步沿为上升沿,并且在抽样时钟信号为高电平时有八个输出时钟周期。
(2)PCM编码输出数据与抽样时钟信号的关系,得到结果如下:
上面五张图展示了测量结果中连续的十个PCM编码输出信号,对比可知最后一张图和第一张图中两个波形是相同的,这说明输出信号以八个抽样时钟脉冲为一个周期。
另外从图中可以看出当抽样时钟信号为高电平时,对应了一个输出数据部分,并且从图中可以看出两者的同步沿为上升沿,在抽样时钟信号为高电平时有八个输出脉冲周期(每个周期内为高电平或者低电平)。
(3)PCM译码器输出模拟信号观测,波形如下所示:
上方为输入信号波形,下方为PCM译码器输出的模拟信号波形,通过示波器测量可知输出的信号电平幅值略小于输入信号的幅值,并且相对于输入信号,输出信号具有一定的延时。
(4)PCM频率响应的测量
输入信号为1KHz时,输出波形的电平幅值为1.96V,波形如下所示:
输入信号为3000Hz时,输出的信号的电频幅值为1.92V,波形如下:
输入信号为4200Hz时输出的信号电平幅值变为0.36V,波形如下:
在实验时,连续地调节输入信号的频率,发现在逐渐调高输入信号频率的过程中,输出
信号的电平幅值逐渐减小,但是最初减小幅度较小,当输入信号频率调节到大约3.5Khz时输出信号频率发生突变,减小较快,再增大输入信号频率时,输出信号幅值几乎变为0. (5)PCM动态范围测量
固定输入信号频率为1000Hz,调节输入信号的电平,得到的几个结果如下图所示:输入电压幅值为2.08V时,输入电压和输出电压波形:
输入电压幅值为3.08V时,输入电压和输出电压波形:
输入电压幅值为3.76V时,输入电压和输出电压波形:
输入电压幅值为9.50V时,输入电压和输出电压波形:
从上面的结果可以看出,在随着输入电压幅值增大时,输出电压逐渐出现了畸变,通过实验发现大约在输入电压幅值为3V之后,输出电压会出现畸变。
四、实验总结和收获
1.通过本次实验,对于PAM编码和译码有了深刻的了解,另外还通过实验验证了采样定
理,对于采样定理有了深刻的了解;
2.同样在PCM编码和译码实验中,观察了PCM抽样信号和输出信号的波形,并明白了他
们之间的关系;
3.了解了PCM的频率响应和PCM的动态范围。