版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、控制类工程实训基本软件的认知实验报告学院:自动化学院班级:学号:姓名:目录 TOC o 1-5 h z 第一部分认识MATLAB及编程3第二部分 单片机开发与仿真软件Keil C51的使用16 HYPERLINK l bookmark391 o Current Document 第三部分LabWindows/CVI基础与入门27第四部分心得体会34第一部分认识MATLAB及编程1. MATLAB的概况MATLAB是矩阵实验室(Matrix Laboratory )之意。除具备卓越的数值计算能力 外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单
2、位是矩阵,它的指令表达式与数学,工程中常用的形式十分 相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多。时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科, 多种工作平台的功能强大大大型软件。在国外,MATLAB已经经受了多年考验。在欧 美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理, 时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生, 硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。在国内, 特别是工程界,MA
3、TLAB 一定会盛行起来。可以说,无论你从事工程方面的哪个学科, 都能在MATLAB里找到合适的功能。时间版本19851.019862.0 (含控制系统工具箱)19883.919934.0 (含 Simulink1.0)19944.2(含 simulink2.0)19964.319995.320006.0 (含 Simulink4.0)20016.1 (含 Simulink4.1)不详6.2120036.5MATLAB的发展进程2. MATLAB的启动与运行工作空间窗口当前目录窗口命令历史窗口命令窗口在命令窗口可直接输入运算程序进行运算。例1输入一个矩阵a,求它的转置al。a=1 2 3;4
4、5 6;7 8 9 a=1 2 3;4 5 6;7 8 9 a = TOC o 1-5 h z 789 a1=a al =475869有关工作空间的一些命令操作命令说明Clc翻过一页命令窗,光标回到屏幕左上角Clear从工作空间清除所有变量Clf清除图形窗口内容Clear all从工作空间清除所有变量和函数Delete 从磁盘中删除指定文件Who列出当前工作空间中的变量Whos列出当前工作空间中的变量及信息Which 查找指定文件的路径What列出当前目录下的m文件和mat文件Demo例子演示窗口Help文件名查询所列命令的帮助信息more命令窗分布输出Save neame保存工作空间变量到文
5、件neame.matSave neame x y保存工作空间变量x、y到文件neame.matLoad neame装载neame文件中的所有变量到工作空间Load neame x y装载neame文件中的变量x、y到工作空间Diary neame.mDiary off保存工作空间一段文本到文件neame.mType neame.m在工作空间查看neame.m文件内容3 .数据格式单击FilePreferences打开参数设置对话框,其中数据格式选项说明如下:数据格式解释例 a=1/3Short短格式0.3333Long长格式0.33333333333333Hex十六进制3fd555555555
6、5555Bank金融格式0.33Plus+格式+Short E短指数格式3.3333e-001Long E长指数格式3.333333333333333e-001Short G短紧缩格式0.33333Long G长紧缩格式0.333333333333333Rational有理格式1/3Loose稀疏格式0.3333数据格式也可在命令窗口直接用命令设置。格式为:format。如format rational注释与标点百分号后的所有文字为注释,不参与运算。例2 syms x y%定义符号变量x,y多条命令可以放在同一行,用逗号或分号隔开,逗号表示要显示该语句运行结 果,分号表示不显示运行结果。例 3
7、x=2,3;y=4,5;z1=x+y,z2=x*y x=2;x=2,3;y=4,5;z1=x+y,z2=x*yz1 = TOC o 1-5 h z 68z2 =8101215一条语句也可以写在多行,用三个点表示该语句未完,续在下一行。例 4 f=3*xA6+4*xA5-8*xA4+.7*xA3+8*xA2-3*x+35 x=1;f=3*xA6+4*xA5-8*xA4+.7*xA3+8*xA2-3*x+35f =46注意:变量名不能被两行分割,注释语句不能续行。编程及运行方法编程一般在M文件编辑器的窗口中进行,编辑后保存为*.m文件。运行整个程序 可在工作空间键入保存的文件名,回车即可运行。如要
8、运行部分程序段,可在编辑器 中将要运行的程序段选定,按F9键,回到工作空间可看到运行结果。修改程序时打开 已有的m文件进行修改即可。例5: adddemo.m里有如下程序段 a=3;b=4;c=a+bc =7条件语句(1)单条件语句格式1:ifend格式2:ifelseend例5当从键盘输入自变量x的值,由如下分段函数给出y的值。 X 3, X 0y = i5X2, X x=input(x=)%屏幕提示x=,由键盘输入值赋给xif x(2)多条件语句格式:ifelseifend例6 Adddemo.m程序段如下: a=3;b=4;c=a+b;if c0c=-1elseif c循环语句(1) f
9、or-end 循环格式:for循环变量=初值:步长:终值循环体语句组end例7编程生成一个6阶矩阵,使其主对角线上元素皆为1,与主对角线相邻元素皆为2,其余元素皆为0。程序如下: n=6;for i=1:nfor j=1:nif i=ja(i,j)=1;%判断行标列标是否相等%给a矩阵第i行第j列的元素赋值1elseif abs(i-j)=1 a(i,j)=2;elsea(i,j)=0;endendendaa =%判断i-j的绝对值是否为1120000212000021200002120000212000021(2) while-end 循环 格式:while逻辑表达式循环体语句组end例8求
10、自然数前n项和,项数n由键盘输入。程序如下: n=input(n=)sum=0;k=1;%给和与循环变量赋初值while k一些常用函数列表序号命令说明1Break终止for循环或while循环2Error显示错误信息并终止程序执行3End结束 for,while, if 或 switch 结构4Sign符号函数5CaseSwitch结构的替代标识符6Switch依据条件值执行不同语句7While无限次执行语句8 .关系与逻辑运算8For按指定次数执行语句(1)关系运算在关系运算与逻辑运算中,非零数为真,零值为假。在输出时对于真值输出为1, 假值为0。关系运算表:关系操作符对应函数说明=Eq(
11、a,b)等于=Ne(a,b)不等于Gt(a,b)大于=Ge(a,b)大于等于例9对向量a、b进行操作 a=3 4 5 6 7 8;b=2 4 6 7 9 5;c=eq(a,b)d=ne(a,b)e=lt(a,b) a=3 4 5 6 7 8;b=2 4 6 7 9 5;c=eq(a,b)d=ne(a,b)e=lt(a,b)c =010000d =101111e =001110例10a=4;b=2 3 4 5 6;c=eq(a,b)d=abe=a a=4;b=2 3 4 5 6;c=eq(a,b)d=abe=a注释:所比较的两个量可以是大小相同的数组或矩阵,运算后返回同样大小的数组或矩 阵。也可
12、以一个是数组,一个是标量,运算后返回运行结果与数组或矩阵的大小相同。 两个不同大小的数组或矩阵不能进行比较。用关系运算符或用对应的函数其效果相同。(2)逻辑运算逻辑运算表逻辑操作 符对应函数说明&and(a,b)逻辑与|or(a,b)逻辑或not(a,b)逻辑非xor(a,b)逻辑异或any(a,b)A中某列有元素非零时此列返回1all(a)A中某列所有元素非零时此列返回1例 11 a=1 2 0;0 4 0b=3 2 0;0 0 0c=and(a,b)e=albd=aw=xor(a,b)h=any(a)k=all(a) a=1 2 0;0 4 0 ; b=3 2 0;0 0 0b =3200
13、00 a=1 2 0;0 4 0a =120040 c=and(a,b)c =110000 e=a|be =110010 w=xor(a,b) w =000010 h=any(a)h =110 k=all(a)k =01013实例演示例12画曲线 y=sinx, xe (0, 2兀) x=0:0.1:2*pi;%0.1 为步长取点y=sin(x);plot(x,y)-0.8-0.6-0.4-0.21000.20.40.60.8syms tezplOt(x = sin(3 t) cos(t), y = sin(3 t) sin(t)画出参数方程x=sin3 cost, y=sin3t sint在
14、0,兀上的图形。%定义符合变量t,时n(3*t)*cos(t),sin(3*t)*sin(t),0,pi)/-0.4-0.6元函数注:ezoi(图形。x,y,a,b)表示在给定区间at a=ones(10);%生成10阶元素为1的方阵a1=tril(a);%取a的下三角元素构成矩阵a1for i=3:10for j=2:i-1a1(i,j)=a1(i-1,j-1)+a1(i-1,j);endendfor i=1:10disp(a1(i,1:i);%显示第i行第1到i列的元素end1111211331146411510105116152015611721353521711828567056288
15、1193684126126843691例15求如k +四k 2 +Z1 k k=1k=1k=1 k=1:100;%生成从1到100,步长为1的向量kx1=kx2=k(1:50).*k(1:50)x3=1./k(1:10)y=sum(x1)+sum(x2)+sum(x3)x1 =Columns 1 through 1912345678910111213141516171819Columns 20 through 3820212223242526272829303132333435363738Columns 39 through 5739404142434445464748495051525354
16、555657Columns 58 through 7658596061626364656667686970717273747576Columns 77 through 9577787980818283848586878889909192939495Columns 96 through 10096979899100 x2 =Columns 1 through 9149162536496481Columns 10 through 18100121144169196225256289324Columns 19 through 27361400441484529576625676729Columns
17、28 through 3678484190096110241089115612251296Columns 37 through 45136914441521160016811764184919362025Columns 46 through 5021162209230424012500 x3 =1.00000.50000.33330.25000.20000.16670.14290.12500.11110.1000例16输入任意2个以上的数构成向量a,并将a中的元素按从小到大的顺序排列 a=input(enter the vector a:);%输入向量&,输入向量一定要加方括号sort(a)e
18、nter the vector a:1 2 0;0 4 0ans =02014014思考题(1)编程实现如下图形(其中行数为奇数)。1000111011111111101110001程序:n=5;for i=1:nfor j=1:nif j=(1+i)&j=(n-i)a(i,j)=0;elseif j=n-i+2a(i,j)=0;else a(i,j)=1;endendenda(2)将下列数据保留四位有效数字,取舍规则为:如果最后两位数字大于50,则向 前加1,若小于50,则舍去;如果等于50,则看倒数第三位的数字,如果是奇数,则 加1,否则直接舍去。试编写程序实现上述功能。如:3.14159
19、 2.71729 4.51050 3.21551 6.37750,其处理后的结果应为:3.1422.7174.5103.2156.378程序:for i=1:5j=a(i);if rem(100000*j,100)50a(i)=ceil(1000*j)/1000;elseif rem(fix(1000*j),2)=0a(i)=fix(1000*j)/1000;else a(i)=fix(1000*j+1)/1000;endenda结果:a =3.14202.71704.51103.21606.3780第二部分单片机开发与仿真软件Keil C51的使用一、Keil C51操作入门1.1 Keil
20、 C51 简介Keil C51是德国知名软件公司Keil (现已并入ARM公司)开发的基于8051内核 的微控制器软件开发平台,是目前开发8051内核单片机的主流工具。Keil 51支持汇 编语言、C语言等各种开发语言。其中,uVision2集成开发环境包含项目管理、源代码 编辑和强大的程序调试环境。uVision2调试器是一个强大的全特性调试器,允许用户 在PC机上完全模拟目标程序、指令集和片内外围功能。实验所用的是Keil C51 V7.09评估版。1.2 Keil C51 的启动双击桌面上的“ Keil uVision2 ”图标,启动Keil C51程序,启动界面如图1所示。图1 Kei
21、l C51的启动界面1.3 建立第1个Keil C51程序Keil C51是一个功能很强大的软件,但是使用起来并不复杂。现在就通过建立一 个简单的LED (发光二极管)闪烁发光的实例来初步掌握KeilC51的基本用法。硬件电 路参见图2,单片机I/O输出低电平可点亮LED。VCC L D1图2 LED闪烁发光电路 新建工程。执行Keil C51软件的菜单“Project I New Project.”,弹出一个名为“CreateNew Project”的对话框。先选择一个合适的文件夹准备来存放工程文件,比如 “E:ProjectLedFlash”,其中“LedFlash”是新建的文件夹。建议:
22、今后每新建一个工 程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,以方便管理,并养成 良好的习惯。最后,为工程取名为“LedFlash”,并保存。参见图3。,、其兼容产品,并在8051的基础上扩展了许多增强功能。在这里可以选择Philips的 第1个器件“80/87C51”,该器件与Intel的8051完全兼容。参见图4。(N)”,但是,如果用到了某些增强功能需要初始化配置时,则可以选择“是(Y)”。在这里,我们选择“否(N)”,即不添加启动代码。图5选择是否要添加启动代码至此,一个空的Keil C51工程建立完毕。执行菜单“File I New.”,出现一个名为“Text n”(其中n
23、表示序号)的文档。接着执行菜单“File I Save”,弹出一个名为“Save As”的对话框。将文件名改为“main.c”,然后保存,参见图6。注意:扩展名“.c”不可省略。添加源程序文件到工程中。现在,一个空的源程序文件main.c”已经建立,但是 这个文件与刚才新建的工程之间并没有什么内在联系。我们需要把它添加到工程中 去。单击Keil C51软件左边项目工作窗口“Target 1 ”上的“ + ”,将其展开。然后右 击“Source Group 1”文件夹,会弹出如图7所示的选择菜单。单击其中的“Add Files to Group Source Group 1”项,将弹出如图8所示
24、的对话框。先选择文件类型为C Source file (*.c)”,这时,对话框内将出现刚才保存过的 “main.c”。单击文件“main.c”,再按一次Add”按钮(请不要多次点击“Add”按钮),最后按“Close”按钮。这时,源程序文件“main.c ”已经出现在项目工作窗口的“SourceGroup 1 ”文件夹内,可以单击左边的“ + ”展开后查看。鼠云 Rebuild target|:X| Build target Include Depenaenci程序清单:LED闪烁发光程序main.c*个*个*程序名称:LED闪烁发光硬件接法:P1.1控制LED,低电平点亮运行效果:LED亮
25、200ms,灭800ms,反复循环个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个/#include /包含8051的SFR寄存器定义头文件 sbit LED = P1;/定义I/O 接口个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个函数:Delay()功能:延时0.01s2.56s参数:t0时,延时(t*0.01)st=0时,延时2.56s说明:定时10ms的定时器初值=6
26、5536-0.01/(1/(f/12),其中f为晶振频率个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个/void Delay(unsigned char t)doTH0 = 0 xDC;/设置定时器初值(定时10ms)TL0 = 0 x00;TR0 = 1;/启动定时器while ( !TF0 );/等待定时器溢出TR0 = 0;/停止定时器TF0=0;/清除溢出标志 while ( -t != 0 );/循环t 次/主函数 void main()TMOD &= 0 xF0;/T0设
27、置在方式1,即16位定时器(不影响T1的模式)TMOD |= 0 x01;for (;)LED = 0;/点亮 LEDDelay(20);/延时200msLED = 1;/熄灭 LEDDelay(80);/延时800ms =P1A1;/V包8051的SFR奇存益定义头交忤/V定S:i/o 接口#includesbit LED古古古古*古古古古古为古古古古古*古古玄古为古古古古点玄古玄古古为为古古古古古古古古古由玄古古古古古古为古古古古古由古古古古古古玄言;1函数功能参数Delay()楚时 0.0132.563t0 时,楚时(t*0.01)st=0 时,楚时2.56s定时切mm的定时器初f =
28、65536-0.01/(l/(f/12),其中f为晶振频率)说明:void Delay(unsigned char t)do设置定时蕤初值定时IDmm)THO = OxDC;TLO = 0 x00;0 = 1;启动定时器while ( !TF0 ) ; /7等待定时蕤溢出TRO = 0;/7停止定时器TF0=0; /清除溢出标志 while ( -t ! = 0 ) ;/7循环七次 单击Keil C51工具栏的“京”图标,弹出名为“Options for Target Target 15 ”的话框。单击“Output”标签页,选中“Create HEX File”项,然后“确定”。参见图9。(
29、7oid main ()单击工具栏的按钮“囹”编译当前源程序。编译结果会显示在输出窗口内。如 果是“0 Error(s), 0 Warning(s).”就表示程序没有问题了(至少是在语法上不存在 问题了)。如果存在错误或警告,则仔细检查程序是否与程序清单一致。修改 后,再编译,直到通过为止。编译后的结果会生成Intel HEX格式的程序文件“LedFlash.hex”。该文件可以被 专门的芯片烧写工具载入并最终烧录到具体的芯片中。芯片安装到自己的电路 板上,通电,就可以运行里面的程序了。还有一类叫做“ISP” (In System Programming)的下载方法,也能够把程序文件烧录到芯片
30、内,但是采用的是 串行在线方式,芯片不必从电路板上取下。ISP方式编程速度较慢但操作要方 便些。Philips的多款8051内核单片机都能很好的支持ISP下载功能,比如 P89V51RB2、P89V51RD2 等等。1.4新建A51汇编工程Keil C51软件也支持A51汇编编程。建立A51工程的操作步骤与建立C51工程基 本相同,但有两个要点请注意:新建的源程序文件名要以” .A51”或“.ASM”作为后缀。 A51源程序添加到工程中时,文件类型要选择,Asm Source file(*.s*; *.src; *.a*)”。其它操作 步骤都跟建立C51工程相同。二、在Keil C51下调试程
31、序Keil C51的调试功能非常强大,现在仍然以LED闪 烁发光程序为例,来具体了解如何进行仿真操作。2.1进入仿真状态如果程序编译通过,就可以仿真了。在仿真之前,有一项参数最好配置一下, 仍然按“丞”图标进入编译环境设置,在Target选项找到“Xtal (MHz)”项,填入 11.0592。最后点击“确定”。进入仿真状态很简单,直接点击工具栏红色的“ ” 图标。2.2认识各个仿真窗口=lroject WorkspaceXRegi ster-MiOkLIUrlOkOUr2OkOLIi-3OkOUi-4OkOUi-5OkOLIi-6OkOUrTOkOU-SysaOkOLIbOkOLIspOkL
32、ITzp_m::OkLITFC $c:.OkOLI+ dptrOx.states389sec0._ p zwLIkLILIP0 .10 .0 .rs0 .00 .:c0 .0 .#include /7包8051的SFR寄存器定义头文件sbit LED = P1A1;定义WCi 接口/古古古主古主主古古吉古击古古古古古古古古主古古由金古古古击古主主古古言古古*舌古吉吉主吉古古为古古吉古主古古古志*古古古击志古古古古吉函数:Delay ()功能:建时0.0132.563参数:t0时,延时(t*0.01)st=0 时,延时2.56s说明:定时Smm的定时器初(: = 65536-0.01/(l/(f
33、/12),其中f为晶振频率 void Delay (i.msichar t.)do=OxDC;=0 x00;启动定时矗设管定时器初值(定时ITH0TL0TRO = 1;while ( !TF0 ) ; 等待定时糖襁出TRO = 0;/7牌止定时器TF0=0; /洁除襁出标志 while ( -t ! = 0 ) ;/7循环t 次/V主函数 void main()19中TMCiD &= OxFO;/T0设宣在万式L 即M位定时糖不影响口 的模式) TM0D |= 0 x01;LED = 0; 点亮 LEDfor (;)图10 Keil C51源程序窗口源程序窗口Keil C51调试界面的中间是源
34、程序窗口,参见图10。黄色箭头“弓”所指为当前 即将执行但还没有执行的代码。以深灰色标记的程序行是可以执行的代码(当然,在 调试过程中未必一定要去执行)。以浅灰色标记的程序行不可作为代码来执行,它们 是注释、空行、标号或ROM数据表。以绿色标记的程序行表示曾经执行过的代码。寄存器窗口Fiegi st erValue-RegsrO0 x00rl0 x00r20 x00r30 x00r40 x00r50 x00r60 x00i-7OkI 4-Sysa0 x00b0 x00-p0 x09sp_m ax0 x09PC $C:OxO31Cauxi-10 x00 dp tr0 x0003states399
35、sec0.00043294,二 p EW0 x00P010ov图11 Kg) C51寄存器窗口、角 c、0Keil C51调试界面的左边是寄存器窗口,参见图11。8051的工作寄存器(R0 R7)和系统寄存器(a、b、sp、dptr、PC、psw)都列出来了。Value栏显示的是寄 存器的当前数值。如果在调试过程中某个寄存器的值有变化,则会用蓝色的背景标记。 单击psw寄存器左边的“ + ”,展开后还可以看到其每一位的情况。汇编窗口单击工具栏的“性”图标,源程序窗口会自动切换成汇编窗口 参见图12。在汇编 窗口里,我们可以看到每条指令的存储地址和编码等信息。再次单击“座”,回到源 程序窗口。存
36、储器窗口单击工具栏的“回”图标,将显示出存储器窗口,参见图13。8051单片机的存储 器分为多个不同的逻辑空间。如果要观察代码存储器的内容,就在地址栏“Address:” 内输入“心地址”,例如:C:0080H。同理,观察内部数据存储器输入“【:地址”,观察 外部数据存储器输入“X:地址”。拖动存储器窗口右边的滚动条可观察其它存储单元。 存储器窗口有“Memory #1Memory #4 ”共4个观察子窗,可以用来分别观察代码存 储器、内部数据存储器和外部数据存储器。存储器的内容是可以修改的。用鼠标右击 打算要修改的存储单元,选择“Modify Memory at. ”项,弹出修改对话框,可以
37、随意 修改存储单元的内容。23: voidma i n()*I24: 25: TMOD &= 0 xF0; /TO设置在方式1,即16位定时器(不影响T1的模式) C:0 x08005389F0ANLTMOD(Ox89),#B(0 xF0)26:TMOD |= 0 x01;C:0 x0803438901ORLTMOD(Ox89),#0 x0127: for (;)28: 29: LED = ;点亮LEDC:0 x0806C291CLRLED(0 x90.1)30 : Delay (20) ;/V延时200msC:0 x08087F14MOVR7,#0 xl4C:OxOBOA120816 LCA
38、LLDelay(C:0816)31: LED = 1;熄灭LEDC:0 x080DD291SETBLED(0 x90.1)32 : Delay (80) ;/延时800msC:0 x080F7F50MOVR7,#0 x50C:0 x0811120816LCALLDelay(C:0816)33: C:0 x081480F0SJMPC:08069: void Delay(unsigned char t)io: 11:do12:13:TH0 = OxDC;设置定时器初值(定时10ms)C:0 x0816758CDCMOVTHO(OxBC),#0 xDCc n捋 睥Jn0图i2?KeiiC5i汇编窗口
39、C: 0 x0819E4CLRAC:0 x081AF58AMOVTL0(0 x8A),A-I i _ 工1 Li _ _ r-in_L dCLXaddress: C:0080HC:0 x0080C:0 x0095C:0 x00AAC:0 x00BFC:0 x00D4C:0 x00E9C:0 x00FEC:0 x0113C:0 x0128C:0 x013DC:0 x0152C:0 x0167C:0 x017CC:0 x0191C:0 x01A6C:0 x01BBC:0 x01D0C:0 x01E500000000000000000000000000000000000000000000000000
40、0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000o O o OOOOOOOOOOOOOC51000000 00 00 00 00 00 00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
41、00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ococococococococococococococococococt14图14 Keil C51变量观察和堆栈窗口5、变量观察和堆栈窗口3i1r.=21trr| % LocaM K Watch 祥1 人 Wafch 祥2 人 Call Stack /单击工具栏的“源”图标,将显示变量观察和堆栈窗口(Watch & Call StackWindow),参见图 14。在Locals标签页,会自动显示局部变
42、量的名称和数值。在C语言程序的函数中, 每一对花括号”内定义变量都是局部变量,能够自动显示。在“Watch ”标签页内,先用鼠标点击一次“type F2 to edit”,再按功能键“F2”, 输入所要观察的局部或全局变量的名称,回车后就能显示出当前数值。在“Call Stack ”标签页内,可以实时地观察到堆栈的使用情况。2.3程序的运行控制Keil C51能够实现程序单步和全速运行,具体由工具栏上的按钮来实现:复位按钮.:单击此图标,能够使程序复位,程序将从地址C:0000H处执行。COxOOOO020828LJ14PC:0828C0 x000300NOPC0 x000400NOPC0 x
43、000500NOPC0 x000600NOPC0 x000700NOPC0 x000800NOPC0 x0009 0NOPxOOOA 0NOPOxOOOB00NOPOxOOOC00NOPOxOOOD00NOPOxOOOE00NOPOxOOOF n _ _ n n -i n00n nNOPl.T.-. li全速运行匚上 单击此图标,能够使程序全速运行。停止运行希:该图标原来是灰色(不可操作),在进入全速运行状态后会变 成红色。如果要停下来,则可以按此图标。单步进入酉:按此图标可以实现程序的单步执行。在遇到函数调用时,会跟踪 进入函数体。单步跳过:单步执行,遇到函数时视作1条指令来执行,不会跟踪进
44、入。单步跳出:在调试C语言程序时,如果希望从某个函数中提前返回,则可以 按此图标。执行到光标明:用鼠标单击某条可执行的代码(深灰色标记的程序行)。然 后按此图标,则程序开始全速执行,当遇到光标所在的行时,会自动停下来。 如果单击不可执行的程序行(有浅灰色标记),试图让程序执行到该行,是不 允许的,“明”图标也会立即变成灰色,不让操作。设置/清除断点电:Keil C51支持断点设置功能。单击需要设置断点的行,再 单击此图标,我们会看到该行被一个红色的小方块标记。当程序全速运行时遇 到断点,便会自动停下来。Keil C51允许在同一个程序里设置多个断点。清除 某个断点的方法是,将光标停在该行上,再
45、按一次“书”图标。另外一种设置/ 清除断点的快捷方法是,用鼠标在目标程序行的空白处双击,不妨试一试。清除所有断点弗?:如果设置了多个断点,想一并清除,则可以按此图标。Keil C51的一大特色是在仿真调试时支持对外围设备的访问。单击菜单Peripherals”,会弹出外围设备菜单。在Peripherals菜单里列出了标准8051 的外围设备(相对于CPU内核而言):中断、I/O端口、串行口和定时器等。现在执行菜单Peripherals I I/O-Ports I Port 1”,弹出P1端口的界面。在位07中, 用表示高电平,无表示低电平。执行菜单“Peripherals | Timer |
46、Timer 0”,弹出定时 器T0的界面。参见图15。弹出的外围设备菜单是可以操作的,不妨试试。第三部分LabWindows/CVI基础与入门LabWindows/CVI是National Instruments公司推出的一套面向测控领域的软件 开发平台。它以ANSIC为核心,将功能强大,使用灵活的C语言平台与数据采集, 分析和表达的测控专业工具有机地接和起来。它的集成化开发平台,交互式编程方法, 丰富的控件和库函数大大增强了 C语言的功能,为熟悉C语言的开发人员建立检测系 统,自动测量环境,数据采集系统,过程监控系统等提供了一个理想的软件开发环境。实验目的通过产生一个简单的正弦波发生器来初步
47、认识LabWindows/CVI编程环境、过程、 操作步骤以及项目工程文件的基本构成。实验内容简单的用户图形界面(*.uir)的创建。能使用函数面板完成函数的插入,构建源代码程序。生成项目工程文件。实验步骤1.0-Acquire0.51.实验目标0.0建立如下的正弦波发生器。当我们按下Acq 波形并画在图形显示区中:当按下 退出该程序。按扭I计算机会Clear 按扭后则清除正弦波形:当按下 Quit自动产生一个正弦按扭后.运行 CVI-1.0-开始 程序National Instrument CVICVI IDE400511或:直接从桌面起动CVI的快捷方式,双击桌面National Inst
48、rument CVI图标。当LabWindows/CVI打开后你就会见到一个空的项目(Project)窗。.创建用户界面如it从 Project 窗中选择:FileNewUser Interface(*.uir).创建一个妾口文件Demo Fanel-|n|x|(*.uir),CVI会自动弹出一个窗口,此窗口中的灰色区域即是所要排放虚拟器件的面 板(Panel)。(1)创建控件元素因本程序共需三个按扭、一个用于图形显示的Graph控件。下面就将这几个控件 添加到面板上。添加命令按钮:Create Command ButtonSquare Command Button (此系统里需 要添加3个)
49、。添加图形控件:Create GraphGraph添加好用户界面所需的控件元素后的界面如下图所示。Untitled PanelUnti tied Control(2)修改控件属性修改jpanel的属性。 在 Untitled Panel中双击一下,便会弹出Panel的Edit Panel窗,对对如下属性进行修改:修改Panel顶端所显示的名字:将Panel Title项中的Untitled_Panel Panel.将 Auto-Center Vertically(when loaded)项与 Auto-Center Horizontally (whenloaded)项前的矩形框选中。当选中后,
50、程序运行时,面板会自动居中修改Graph的属性。在Untitled Control的蓝色区域中双击一下,便会弹出Graph的一个 鬼快Graph窗将 Label 项中的 Untitled Control 改为 ShowWave.,修改 Graph 的标签名:修改Command按扭的属性。255075改为DomeA.A.心Qui ale Edi t. Wi itdawPfJ 厂 一|K|Ac q.ui r mIJ-B ack1. ou.t K*3h-匚 dhi 丸 IT inACQUIREEal专 学 L J11CM.口 d:| Tni t. i旦i.EEdAut C S.1 Zinc刍 Gro
51、w OnlyCS- al门日mLg if;.T T-n: t1TL:1Hd SHcx- -L cut. 底TT J x乂TH,Acquire 按扭:Constant Name改为ACQUIRE, Constant Name是程序中用来标识该控件元素 的常量,在后面的编程中会用到;Callback Function 改为 AcquireCallback, Callback Function (回调函数)是程序 中用来响应界面中的Windows消息,即当该按扭被点击之后,程序会调用 AcquireCallback函数来作为对按扭被按下这一消息的响应;Label项改为_Acquire,通过这种方法可
52、以修改按扭名字,Acquire中A字母前 有下画线,是指可以通过Alt + A即可达到按下该按扭的效果(即热键)。B. Clear 按扭:与以上步骤相同,双击左下方的 OK按扭,弹出Command的一个Edit Command 窗。将其 Constant Name 改为 CLEAR;将 Callback Function 项改为 ClearCallback;. 将 Label 项改为_Clear。Cijn+r ol Sett mgsCcin+r ol Mode :Tti 忐eLIni ti ally Di mm e dC Initially HidderLHu.C.窗。.Short cut K
53、eyModi tier Key:3ITcmeKey:HNo Shortcut KeyQuit按扭:与以上步骤相同,双击右方的OK按扭:做将其 Constant Name 改为 QUIT;将 Callback “Function;项改为 QuitCallback ;将 Label 顼改:_Quit:。:;:v,弹Lab e 1 Ap pe ar :=ltl c eLabel :_tlearCommand 的一个 EditCmmandLab el Style.Const an! H:=mie :QUITCallback Furiction:Qui tC:HbackCuntrul SettingsC
54、untrul Mode:i.Zenc /j J| Ini ti ally Di mme dr Initially HiddenSijiii-ce Code CoriiLecti onShortcut KeyQui ck Edi t Window制后A0|_gtModiier Key:Key:NoneNu Shurtcut KeyLab el Appe:=Lf:=LTLC(3)保存U|R 文件FileSaye;保存 UIR 文件, 至此,已经完成了用户界面 就是我们刚才上图看到的那样.。.下面将进行程序编.制工作,. 数,只需添加一些所需代码即可Auto Sizing:.uirGr uw Uri
55、ly的设计,当程序运行时所显示的界面成许多的代码以及缺省消息的处理函%-QKC:Frogram FilesMTati onal InstrumentsVMeaEurementStud THistory:保存在(I): utility仁匡廿囹,cvibuild, launchexesamplel. uir|文件名:Thr eading launchexe physdemo4.进入程序代码窗口让图形用户界面窗口为当前响应状态,从用户图形界面窗口中选择: CodeGenerateAll Code用鼠标点击Select Quituserinterface Callback中的QuitCallk项,确保
56、其前面出现一 个小钩。注释:a.当你想让你的程序的主函数为Win Main而不是Main时你可以选择Generate WinMian() instead of Main()项前的矩形框。b . Select panels to load and display at startup项是指你选择那一个Panel作为最初装入并 显示的Panel,当你创建多个Panel时你就需要选择一个Panel作为最初显 示的面板。由于本程序 只有一个Panel所以该Panel就被缺省的作为最初显示的面板而不再需要你去选择。c . Select Quituserinterface Callback项是指你选择那一
57、个函数作为退出程序的终止函数。本 程序是让QuitCallback作为退出函数的。点击OK按扭,便会弹出源代码(Code)窗。该程序代码共有4个函数:一个主函数, 三个回调函数。main()函数:是程序的入口,它的功能是初始化程序,装载用户界面面板,并显示。AcquireCallback()函数:当Acquire按扭被点击之后,该函数就是响应该消息的函数。ClearCallback( )函数:当Clear按扭被点击之后,该函数就是响应该消息的函 数。QuitCallback()函数:当Quit按扭被点击之后,该函数就是响应该消息的函数。main()与QuitCallback()函数中的代码是计
58、算机自动生成的,而计算机只生成 AcquireCallback()与ClearCallback()函数的框架,其内部的用来响应并处理消息的 代码是需要你自己添加上去的。添加程序代码 添加AcquireCallback()函数的程序代码。AcquireCallback()函数完成以下功能:从高级分析库(Advanced Ananysis.)中 产生一个正弦波,放在Wave数组中,并在Graph控件上显示出来。产生步骤如下。A.产生正弦波信号将鼠标放在AcquireCallback()函数Event_Commit:下面的空白行上后(鼠标所放 位置,就是函数插入的位置。LabWindows/CVI程
59、序中所需的库函数都是使用函数面板, 填写参数然后插入到函数所需要的位置。)。在菜单栏里选择:LibraryAdvanced Analysis.,在弹出的对话框中选择:Signal GenerationSine Pattern,便会弹出如下图所示的一个函数面板。 AdviELTLced ArL:=ilysi e Library 一 Sine p:+ + ernFile Code View Instniment Ubraiy Tools Window Options Help,41例剧囹M钏够恺启1111 11a iNumber of ElementsAmplitudePhase (Degrees
60、)512Nujriber of CycleE按上图所示,请在Number of Elements项中填上512;把Number of Cycles项改为;Sine Pattern项中填上用来装正弦信号的数组W个数组变量,故我门需要声明该变量:选择CodeDeclare Variable会弹出一个对话框:在Number of Elements项中填上512,并选中最下面的矩形框, 点击OK按扭完成。返回到函数面板后,选择CodeInsert Function Call完成函数的插入。这时Code 窗3;ave。由于Wave是日.将正弦波信号在Graph上显示出来中的AcquireCailbbgk
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年年度护士工作总结(2篇)
- 高中物理2027届高三教案-电磁感应新情境与多磁场区域探究
- 2026年哈尔滨投资集团有限责任公司人员招聘考试参考题库及详细答案解析
- 2025四川省安全生产月知识培训考试试题及答案
- 八年级物理教学设计:速度的测量实验探究与作业精讲
- 2026年中国商用飞机有限责任公司人员招聘笔试备考题库及详细答案解析
- 2026年大化集团有限责任公司人员招聘考试备考试题及详细答案解析
- 小学五年级班队课教学设计:居家习惯养成与成长致敬主题班会
- 2026初级会计考试试题及答案
- 2026国家电网-电气专业(官方)-多选题参考试题库历年考点答案详解
- 四上2-3《呼吸的变化》教学课件
- 2025年信息安全工程师考试真题及答案解析
- 2026年企业合规师初级题库及答案
- 2026年武汉市中考语文试卷(含答案)
- 司法辅助人员笔试完整题型、分值及真题答案
- 陕西科技大学教师专业技术职务评审工作实施办法(试行)
- 肿瘤患者输血支持(医学课件)
- 2026中国土地用途管制制度创新与实施效果评估报告
- 农商行催收培训
- (必看!)ISO9001-2026质量管理体系内审和管审及全套记录文件(可编辑!)
- SEMI S2 半导体制造设备安全指南培训课件
评论
0/150
提交评论