实验2EX2_1注释+调试
实验报告书

实验一 understanding IDE and Simple Cprogramming实验目的:1、熟悉C语言编程环境创天中文版VC++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行2、熟悉常用的基本命令和功能键;3、熟悉常用的功能菜单命令;4、掌握C语言的书写格式和C语言的结构,能够编写简单的C程序。
5、理解程序调试的思想,能找出并改正C语言的语法错误。
实验内容:1.在磁盘上新建一个文件夹,用于存放C程序,如E:\...2.在屏幕上显示短语“hello world!”。
思考:如何在屏幕上显示你自己的学号、姓名和班级?3.在屏幕上显示如下图形。
(1)* * * ** * ** **(2)AA AA(3) HHHHHHHd d d d dHHc c c c cHHHHHHH4.调试有错误的程序,并在屏幕上显示一下三行信息。
程序显示:****************Welcom****************#include 《stdio.h》Int main(){Printf(“************”);Printf(welcom!\n”)Printf(“*************\n);}实验二数据类型与表达式实验目的:1.了解C语言中数据类型的意义;2.理解常用运算符的意义;3掌握C语言表达式的运行规则;4.熟悉常用的功能菜单命令;5掌握输入输出函数的使用;6.能够编程实现简单的数据处理;7.掌握简单的C语言的查错方法;8.编写实验报告。
实验内容5.实验教材实验2中1,2,3题,工程文件名分别命名为:ex2_1,ex2_2,ex2_3.6.输入某位同学的数学,英语,计算机成绩,求该生三门课的总分和平均成绩。
工程文件命名为ex2_4;7.输入一个三位数n,例如n=152,输出个位,十位,佰位数字。
工程文件命名为ex2_5;8.(选作)实验教材实验2种,实验内容扩展部分1,2题,工程文件命名为ex2_6,ex2_7;9.(选作)改正下列程序中的错误,计算某个数的平方y, 并分别以“y=x*x”和“x*x=y”的形式输出x和y的值。
圆二色谱仪数据解析 -回复

圆二色谱仪数据解析-回复圆二色谱仪数据解析是一种分析光学性质的方法,通过测量物质在不同波长下对圆偏光和线偏光的旋光性质来研究其结构和构象。
本文将通过一步一步的解析来详细介绍圆二色谱仪数据解析的过程。
第一步:数据采集在进行圆二色谱仪数据解析之前,首先需要采集实验数据。
圆二色谱仪通过发送两个不同偏振方向的光束通过被测物质,并检测其通过与吸收的光的旋光角度差异。
因此,实验过程中首先需要准备好待测的物质样品,并确定合适的测量波长范围。
然后,将样品放置在样品室中,并进行测量。
第二步:数据分析在数据采集完成后,接下来需要进行数据的分析。
圆二色谱仪所得到的数据通常以角度或圆二色度(CD)为单位。
圆二色度表示物质对圆偏光的旋转强度,是圆二色谱仪最常用的参数之一。
通过计算圆二色度的变化,可以推断出物质的结构和构象。
第三步:谱图绘制将数据转化为直观的图形是理解圆二色谱仪数据解析的重要步骤之一。
从圆二色度-波长曲线可以观察到各个波长下物质的圆二色度变化情况。
一般情况下,圆二色度的变化趋势与物质的结构有关。
例如,正螺旋肽结构在UV光区域表现出负圆二色度,而beta折叠结构则表现出正圆二色度。
第四步:寻峰定量分析通过寻找圆二色谱图中的峰值位置,可以进一步定量分析样品中的物质浓度或不同构型之间的比例。
峰值位置的偏移量可以被用来确定特定化合物之间的相对构象变化。
例如,分析蛋白质的次级结构时,可以通过圆二色度峰值的位置和形状来推断蛋白质的α螺旋、β折叠或无规卷曲结构的比例。
第五步:定性分析圆二色谱仪数据解析最重要的应用之一是定性分析。
通过比较待测物质与已知物质的圆二色谱图,可以推断待测物质的结构和构象。
这种方法在生物化学和药物研发中具有广泛应用。
例如,在研究药物与蛋白质的相互作用时,可以通过分析圆二色谱图来确定药物与蛋白质之间的结合方式。
总结:圆二色谱仪数据解析是一种重要的光学分析方法,通过测量物质在不同波长下对圆偏光和线偏光的旋光性质,来研究物质的结构和构象。
2顺序结构

尽可能在定义变量的同时初始化该变量(就近原则) int width = 0;
编程规范-空格
并列项之间应使用空格 int Function(int x, int y, int z) for(i=0; i<100; i++) 双目运算符前后使用空格 if (year >= 2000) sum = 0; 有时为了程序的紧凑,不必强行执行上述规范 for(i=0; i<100; i++) for(i = 0; i < 100; i++)
编程规范-源程序文件结构
// 版权和版本声明 #include “graphics.h” … // 全局函数的实现体 void Function1(…) { … } // 类成员函数的实现体 void Box::Draw(…) { … }
// 引用头文件
编程规范-文件组织
如果一个软件的头文件数目比较多,通常应将头 文件和定义文件分别保存于不同的目录,以便于 维护。 例如可将头文件保存于include目录,将定义文件 保存于source目录(可以是多级目录)。
– – – – – – printf(“%d\n”,12+73); printf(“%d+%d=%d\n”,x,y,x+y); scanf(“%d%d”,&x,&y); scanf(“%d,%d”,&x,&y); ch=getchar(); putchar(ch);
顺序结构
阅读以下程序,并分析结果 int x=3,y=5; int t=0; if(x<y) t=x; x=y; y=t;
为了防止头文件被重复引用,应当用条件编译 #ifndef/#define/#endif。 #include <filename.h> 格式来引用标准库的头文件(编 译器将从标准库目录开始搜索)。 用 #include “filename.h” 格式来引用非标准库的头 文件(编译器将从用户的工作目录开始搜索)。 头文件中只存放“声明”而不存放“定义”,即函数的实 现部分不放在头文件中。
实验课件_ex2

本科实验报告实验名称:实验 2 运算放大器的研究实验2.1 反相求和电路的研究实验目的:1、掌握mutisim11.0软件的使用,主要包括器件调用、交流分析和瞬态分析的设置;2、学习基于集成运算放大器的加法电路调试、设计和一般测量方法;R1Rf图1反相求和电路一、实验步骤:1、原理图的编辑:在Sources库中的SIGNAL_VOLTAGE_SOURCES中调用交流小信号源AC_VOLTAGE,设置参数为Vin1(峰峰值2mv、1kHz直流偏置为0、AC=2mv)、Vin2(峰峰值2mv、1kHz直流偏置为0、AC=2mv)和接地符;在Analog库中的ANALOG_VIRTUAL中调用OPAMP_3T_VIRTUAL;在Basic库中的RESISTOR调用电阻;将所调用的器件按照图1中的结构进行连线,并且设置相关值;2、分析设置:1、瞬态分析(Transient Analysis):要求观察5个周期的节点Vout的瞬态响应曲线,并记录波形数据(峰峰值);2、频域分析(AC ):要求观察1hz到100MegHz的节点Vout幅频响应曲线,Sweep type为Decade,Number of Points per decade 为10,Verital scale 为Linear;分别保存幅度相位特性曲线,二、实验数据记录:1、记录瞬态分析Vout节点的时域输出响应;2、记录交流分析Vout节点的幅频特性曲线;三、反相求和电路原理的分析与设计:根据基于集成运算放大器的反相求和电路的原理,保持Rf不变,重新设置电阻R1、R2和Rp,使反相求和的比例放大倍数为2.4,即Uout=-2.4(Uin1+Uin2),(提示比例系数=Rf/R1=Rf/R2,Rp=R1//R2//Rf)四、实验数据记录:记录瞬态分析Vout节点的时域输出响应;并验真设计是否正确。
(实验波形记录:验证部分包含1个时域分析和1个频域分析,设计部分包含1个时域分析)实验2.2 反相求和电路的研究实验目的:1、掌握mutisim11.0软件的使用,主要包括器件调用、瞬态分析的设置;2、学习基于集成运算放大器的积分电路调试、设计和一般测量方法;C1图2基本积分电路一、实验步骤:1、原理图的编辑:在Sources库中的SIGNAL_VOLTAGE_SOURCES中调用方波信号源PULSE_VOLTAGE,Vin1(初始值-2v、脉冲值2V,脉冲宽度0.5s,脉冲周期1s,其余参数设置为0)接地符;在Analog库中的ANALOG_VIRTUAL中调用OPAMP_3T_VIRTUAL;在Basic库中的RESISTOR和CAPACITOR分别调用电阻和电容;将所调用的器件按照图2中的结构进行连线,并且设置相关值;2、分析设置:1、瞬态分析(Transient Analysis):要求观察5个周期的节点Vout的瞬态响应曲线,并记录波形数据(峰峰值);3、实验数据记录:记录瞬态分析Vout节点的时域输出响应;(注意:瞬态分析中初始条件设置为0,观察5个周期)4、实用积分电路原理的分析与设计:系统参数要求:积分电压增益为4.8即Rf/Rin=4.8,积分时间常数为1ms,即Rin*C=1ms电容取值为10uFRp=Rin//Rf信号源周期为64ms,占空比为50%,初始电平为-0.5,脉冲电平为0.5Rf图 3 实用积分电路5、实验数据记录:记录瞬态分析Vout节点的时域输出响应;并验真设计是否正确。
Consult-II 2002-2-1

电压时间比例与设定
⎯ 调整波形的宽度与高度比例。 ⎯ 参见基本使用:时间/格设置与电压/格设置。
功能按键显示
• 触摸“>”,“》”,然后将显示功能按键。 ⎯ “BACK”:结束简易示波器。 ⎯ “LIGHT”:打开/关闭尾灯。 ⎯ “COPY”:打印页面。 • 触摸“《”,然后功能按键将不显示。
设置触发点
可设置触发点电压,这样只有输入了所需的信号时才会更新屏 幕。
触发点开始将信号从设定电压处升高或降低。
如何设置触发点的方法如下。 1. 触摸“Set Trigger Point”(设置触发点),将会显示设置
屏幕。 2. 触摸“<<”,“>>”然后设置触发点。
设定值可在–32(V)到+ 32(V)之间更改,更改步长为 1(V)。 标准值为 0(零)。 3. 触摸“Press to Continue”(按下后继续)。
注: • 请勿测量超过±32V 的电压。否则会损坏 CONSULT-II 的电路。 • 如果每格的时间较长而波形周期较短,则可能会使得波形显示不准确。
项目
设置/显示/信息
电压时间比例与设置
功能按键显示
页码 本页 本页 本页
设置/显示信息
⎯ 触摸“Set”,显示页面会切换到设置模式。 ⎯ 触摸“Show Information”,设置会生效。 ⎯ 参见高级使用:触发菜单。
关于 mS/Div 的波形举例 mS/Div 缩短波形
O 原始波形
通按触摸“《”或“》”能
改变一格(∼ ms)的比例。
触摸“Press to Continue”,
然后将显示波形。
mS/Div 延长时的波形
42
单片机实验2ex2

实验二指示灯/开关控制器
一、实验目的
学习汇编语言的编程与调试方法.
二、实验原理
图A.19为指示灯/开关控制器的电路原理图.图中输入电路由外接P1口的只开关组成;输出电路外接在P2口的8只发光二极管组成.此外,还包括时钟电路和复位电路.程序启动后,8只发光二极管先整体闪烁次.然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,反之则相反.
图A.1 电路原理图
三、实验内容
(1)熟悉Proteus软件。
了解软件的结构组成与功能;
(2)学习汇编语言的程序设计方法;
(3)学会在ISIS模块中进行汇编程序录入、编译和调试;
(4)理解单片机程序控制原理,实现指示灯/开关控制器的预期功能。
四、实验步骤
(1)在ISIS中绘制电路原理图,按表将元件添加到编译环境中;
(2)在ISIS中编写汇编语言程序;
(3)利用ISIS的汇编调试功能检查程序的语法和逻辑错误;
(4)观察仿真结果,检查程序与电路的正确性。
五、实验要求
提交的实验报告中应包括电路原理图及实验结果分析。
编程分析:(1)程序开始运行后8只发光二极管先整体闪烁3次。
亮灯:向P2口送入初值0;
灭灯:向P2口送入初值0FFH;
闪烁次数:整体循环3次;
闪烁快慢:软件延迟时间;
(2) 然后根据开关状态控制灯亮和灯灭,即开关闭合相应灯亮,反之则相反。
开关控制灯:将P1口内容送入P2口;
无限持续:整体无条件循环;
汇编程序可参考程序流程图(见图A.20)
图A.3 程序流程图
图A.4 源代码调试窗口
图A.5仿真运行结果。
exp2_mem

实验二数据存储实验一、实验目的1、掌握TMS320C54的程序空间的分配;2、掌握TMS320C54的数据空间的分配;3、熟悉操作TMS320C54数据空间的指令。
二、实验设备计算机,CCS 2.0版软件,DSP仿真器,实验箱。
三、实验原理C54x的存贮空间分为三个部分,分别是程序空间,数据空间和输入输出(I/O)空间。
程序空间的大小为1M字,数据和输入输出空间大小都是64K字。
对于程序空间和数据空间,有些地址段已经被系统内部定义,我们不能使用。
下图描述了VC5402的存贮空间的分配。
存贮空间的配置有两种模式,一种是微处理器方式(MP),另一种是微计算机方式,而这两种方式主要影响程序空间的分配。
如果是微处理器模式,那么程序地址空间FF80~FFFF是外部的,也就是我们可以配置的,这也很好理解,因为所谓微处理器也就是仅把该芯片当成是一个处理器,仅完成任务的处理。
而如果是微计算机模式,那么程序地址空间FF80~FFFF是被系统占用了的,用于存放系统中断向量表,同时F000~FEFF 地址空间也被系统使用,这段地址里面包含了引导程序。
由此可以看出,微计算机方式就是把该DSP看成了独立的一个系统,要自己能够单独工作起来,因此需要引导程序。
数据空间分成了6个部分,如上图所示。
其中00~5F是存贮器映射空间。
这段地址空间的值和DSP内部寄存器的值是一致的,访问这个地址空间就等于访问DSP内部的相对应寄存器。
而这段空间是在DSP的片上RAM内。
60~7F是一个散空间,相当于系统给自己保留了一个空间用于特殊之用。
比如说,在系统引导的时候,引导程序往往把程序执行的入口地址先放到这个空间的某个位置,等引导玩以后,系统再从这个地址里面取出程序的入口地址,然后跳转到相应地址开始执行程序。
80~3FFF是DSP的片上RAM所映射的地址空间,如果我们程序的代码比较小时,可以不用外扩RAM。
4000~EFFF,这段空间是外部寻址空间。
实验二-顺序结构程序设计

实验二顺序结构程序设计2.1实验要求与目的1.掌握程序设计的基本思想2.熟悉及掌握C语言基本数据类型(int,long,float,double)的说明3.掌握C语言程序设计中格式输入和输出函数的灵活应用4.算术表达式在实际问题中应用5.掌握算法:两数的交换、一个整数的拆数6.数学头文件的包含7.格式输入/输出函数scanf/printf的正确使用2.2 实验指导程序设计的学习过程也是算法积累的过程。
算法是在有限步内求解某一问题所使用的基本运算及规定的运算顺序所构成的完整的解题步骤。
也就是说是计算机解题的过程。
程序设计的基本思想:1)分析问题,理解题意、提出问题;2)建立模型,确立算法,寻找解决问题的有效算法或直接公式;4)编写程序,根据C语言程序结构编程;5)调试程序,若结果正确,结束。
否则检查程序,修改程序,重新调试程序,依次类推,直到调试结果正确为止。
初次自已动手编程,先要建立程序设计的基本思想,结构化程序设计的基本思想就是模块化。
即构成C语言程序的基本单位是函数,函数也是C程序中模块化程序程序设计的基础。
我们将程序设计比拟成“搭积木”,每个模块或每个算法都看成是一个形状及功能不同的“积木”,然后根据设计要求取材,搭建成完美的成品。
C语言是有且仅有一个主函数和若干个子函数组成。
从一个简单的程序设计开始学习,即先学习主函数(main)模块框架。
主函数(main)模块的基本框架设计。
#include <stdio.h>int main(){ 所有数据的数据类型定义说明;数据输入;算法或公式;数据输出;}首次编程,先来熟记2个编程时常用提示信息。
1) 每条语句之后必须有分号“;”。
若程序语句的某一条漏写了分号,在编译时会报如下的错误:error C2146: syntax error : missing ';' before identifier 'scanf'含义: C2146错误:语法错误: 标识符 “scanf” 之前缺少“;”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ex2_1
data segment ;segment表示段的开始
s1 db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ;db定义表示字节,还有dw表示字db '0123' ;定义字符串变量s1
s2 db 30 dup(?) ;定义30个字节空间大的字符串变量s2
data ends ;ends表示段的结束
code segment ;segment表示段的开始
assume cs:code ,ds:data ;伪指令,表明我想把code段地址给CS,data段地址给DS start: mov ax,data ;不能直接写成mov ds,data
mov ds,ax ;前面2条指令把data段地址给了DS,通过AX来间接传数据mov si,offset s1 ;寄存器间接寻址方式,offset是取变量地址的意思,一开始si为0 mov di,offset s2 ;通过前面看出有30个字符,所以di一开始地址指向30单元
mov cx,30
next: mov al,[si] ;一开始把第0个单元的数据传给al
mov [di],al ;这2条指令把[si]传给了[di],di指向第30个单元
inc si ;传完一次数据后,si加1
inc di
loop next ;loop循环,每循环一次, CX减1,直至减到0为止。
可见循环30次mov ah,4ch
int 21h ;这2条指令表功能号ah=4ch的Dos中断,结束程序
code ends ;ends表示段的结束
end start
编译方法:
调试方法:
1)第一个r显示寄存器内容,看到CS为13E2 ,IP为0000,所以第一条指令的地址是13E2:0000,MOV AX,13DE的机器代码是B8DE13,占用3个字节,同时也可看到data 段地址就是DS=13CE
2)第二个t执行单条指令,即执行mov ax,data。
此时,IP增加到了0003。
AX变为13DE。
3)T 单步执行mov ds,ax ,可见DS更新为13CE,这就是data的段地址
4)用d ds:0 40 来显示DS寄存器指向的数据段内容,因为变量s1定义了30个字符的字符串,所以看到从第0单元到29单元为对应的ASCII码41….33 ,从第30单元开始都是为0
5)用g执行整个程序
6)再次用d ds:0 40 来显示DS寄存器指向的数据段内容,可以发现从第30单元到59单元也为跟变量s1同样的内容。
因此验证了此程序非常正确,的确把s1变量的内容拷贝
到了s2里面去。