控制软件认识Word格式文档下载.docx
- 文档编号:19627591
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:141
- 大小:99.14KB
控制软件认识Word格式文档下载.docx
《控制软件认识Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《控制软件认识Word格式文档下载.docx(141页珍藏版)》请在冰豆网上搜索。
a1=a'
a1=
147
258
369
有关工作空间的一些命令操作
命令说明
Clc翻过一页命令窗,光标回到屏幕左上角
Clear从工作空间清除所有变量
Clf清除图形窗口内容
Clearall从工作空间清除所有变量和函数
Delete<
文件名>
从磁盘中删除指定文件
Who列出当前工作空间中的变量
Whos列出当前工作空间中的变量及信息
Which<
查找指定文件的路径
What列出当前目录下的m文件和mat文件
Demo例子演示窗口
Help<
查询所列命令的帮助信息
more命令窗分布输出
Saveneame保存工作空间变量到文件neame.mat
Saveneamexy保存工作空间变量x、y到文件neame.mat
Loadneame装载neame文件中的所有变量到工作空间
Loadneamexy装载neame文件中的变量x、y到工作空间
Diaryneame.m
Diaryoff
保存工作空间一段文本到文件neame.m
Typeneame.m在工作空间查看neame.m文件内容
3.数据格式
单击File—Preferences—打开参数设置对话框,其中数据格式选项说明如下:
数据格式解释例a=1/3
Short短格式0.3333
Long长格式
0.33333333333333
Hex十六进制
3fd5555555555555
Bank金融格式0.33
Plus+格式+
ShortE短指数格式3.3333e-001
LongE长指数格式
3.333333333333333e-001
ShortG短紧缩格式0.33333
LongG长紧缩格式
0.333333333333333
Rational有理格式1/3
Loose稀疏格式0.3333
数据格式也可在命令窗口直接用命令设置。
格式为:
format<
数据格式名>
。
如
formatrational
4.注释与标点
(1)百分号后的所有文字为注释,不参与运算。
例2symsxy%定义符号变量x,y
(2)多条命令可以放在同一行,用逗号或分号隔开,逗号表示要显示该语句运
行结果,分号表示不显示运行结果。
例3x=[2,3];
y=[4,5];
z1=x+y,z2=x'
*y
z1=
68
z2=
810
1215
(3)一条语句也可以写在多行,用三个点表示该语句未完,续在下一行。
例4f=3*x^6+4*x^5-8*x^4+...
7*x^3+8*x^2-3*x+35
注意:
变量名不能被两行分割,注释语句不能续行。
5.编程及运行方法
编程一般在M文件编辑器的窗口中进行,编辑后保存为*.m文件。
运行整
个程序可在工作空间键入保存的文件名,回车即可运行。
如要运行部分程序段,
可在编辑器中将要运行的程序段选定,按F9键,回到工作空间可看到运行结果。
修改程序时打开已有的m文件进行修改即可。
例5:
adddemo.m里有如下程序段
a=3;
b=4;
c=a+b
6.条件语句
(1)单条件语句
格式1:
if
end
格式2:
else
例5当从键盘输入自变量x的值,由如下分段函数给出y的值。
..
...
≤
<
=
5,0
0
2
3
xx
y
程序如下:
x=input('
x='
)%屏幕提示x=,由键盘输入值赋给x
ifx<
y=x^3
y=5*x^2
(2)多条件语句
格式:
elseif
……
例6Adddemo.m程序段如下:
c=a+b;
ifc<
c=-1
elseifc<
10
c=0
elsec=1
7.循环语句
(1)for-end循环
for循环变量=初值:
步长:
终值
循环体语句组
例7编程生成一个6阶矩阵,使其主对角线上元素皆为1,与主对角线相邻元
素皆为2,其余元素皆为0。
程序如下:
n=6;
fori=1:
n
forj=1:
ifi==j%判断行标列标是否相等
a(i,j)=1;
%给a矩阵第i行第j列的元素赋值1
elseifabs(i-j)==1%判断i-j的绝对值是否为1
a(i,j)=2;
a(i,j)=0;
a
(2)while-end循环
while逻辑表达式
例8求自然数前n项和,项数n由键盘输入。
n=input('
n='
)
sum=0;
k=1;
%给和与循环变量赋初值
whilek<
=n
sum=sum+k;
k=k+1;
sum%输出最后的结果
一些常用函数列表
序号命令说明
1Break终止for循环或while循环
2Error显示错误信息并终止程序执行
3End结束for,while,if或switch结构
4Sign符号函数
5CaseSwitch结构的替代标识符
6Switch依据条件值执行不同语句
7While无限次执行语句
8For按指定次数执行语句
8.关系与逻辑运算
(1)关系运算
在关系运算与逻辑运算中,非零数为真,零值为假。
在输出时对于真值输出
为1,假值为0。
关系运算表:
关系操作符对应函数说明
==Eq(a,b)等于
~=Ne(a,b)不等于
Lt(a,b)小于
Gt(a,b)大于
=Le(a,b)小于等于
=Ge(a,b)大于等于
例9对向量a、b进行操作
a=[345678];
b=[246795];
c=eq(a,b)
d=ne(a,b)
e=lt(a,b)
运行结果:
c=010000
d=101111
e=001110
例10a=4;
b=[23456];
d=a>
b
e=a<
=b
c=
00100
d=
11000
e=
00111
注释:
所比较的两个量可以是大小相同的数组或矩阵,运算后返回同样大小的数组
或矩阵。
也可以一个是数组,一个是标量,运算后返回运行结果与数组或矩阵的
大小相同。
两个不同大小的数组或矩阵不能进行比较。
用关系运算符或用对应的
函数其效果相同。
(2)逻辑运算
逻辑运算表
逻辑操作
符
对应函数说明
&
and(a,b)逻辑与
|or(a,b)逻辑或
~not(a,b)逻辑非
xor(a,b)逻辑异或
any(a,b)A中某列有元素非零时此列返回1
all(a)A中某列所有元素非零时此列返回1
例11a=[120;
040]b=[320;
000]
c=and(a,b)
110
000
e=a|b
010
d=~a
001
101
w=xor(a,b)
w=
h=any(a)
h=
k=all(a)
k=
13实例演示
例12画曲线y=sinx,x∈(0,2π)
x=0:
0.1:
2*pi;
%0.1为步长取点
y=sin(x);
plot(x,y)
例13画出参数方程x=sin3cost,y=sin3tsint在[0,π]上的图形。
symst%定义符合变量t
ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),[0,pi])
注:
ezplot(x,y,[a,b])表示在给定区间a<
t<
b上绘制由参数x=x(t),y=y(t)确定的一元
函数图形。
例14编写程序,生成杨辉三角(打印前10行)
a=ones(10);
%生成10阶元素为1的方阵
a1=tril(a);
%取a的下三角元素构成矩阵a1
fori=3:
forj=2:
i-1
a1(i,j)=a1(i-1,j-1)+a1(i-1,j);
disp(a1(i,1:
i));
%显示第i行第1到i列的元素
例15求ΣΣΣ
===
++
1
50
100
kkkk
kk
k=1:
100;
%生成从1到100,步长为1的向量k
x1=k
x2=k(1:
50).*k(1:
50)
x3=1./k(1:
10)
y=sum(x1)+sum(x2)+sum(x3)
例16输入任意2个以上的数构成向量a,并将a中的元素按从小到大的顺序排
列
a=input('
enterthevectora:
'
);
%输入向量a,输入向量一定要加方括
号
sort(a)
第二部分单片机开发与仿真软件KeilC51的使用
一、KeilC51操作入门
1.1KeilC51简介
KeilC51是德国知名软件公司Keil(现已并入ARM公司)开发的基于8051内核的微
控制器软件开发平台,是目前开发8051内核单片机的主流工具。
Keil51支持汇编语言、C
语言等各种开发语言。
其中,uVision2集成开发环境包含项目管理、源代码编辑和强大的
程序调试环境。
uVision2调试器是一个强大的全特性调试器,允许用户在PC机上完全模拟
目标程序、指令集和片内外围功能。
实验所用的是KeilC51V7.09评估版。
1.2KeilC51的启动
双击桌面上的“KeiluVision2”图标,启动KeilC51程序,启动界面如图1所示。
图1KeilC51的启动界面
1.3建立第1个KeilC51程序
KeilC51是一个功能很强大的软件,但是使用起来并不复杂。
现在就通过
建立一个简单的LED(发光二极管)闪烁发光的实例来初步掌握KeilC51的基本
用法。
硬件电路参见图2,单片机I/O输出低电平可点亮LED。
图2LED闪烁发光电路
●新建工程。
执行KeilC51软件的菜单“Project|NewProject…”,弹出一个名为
“CreateNewProject”的对话框。
先选择一个合适的文件夹准备来存放工程文
件,比如“E:
\Project\LedFlash”,其中“LedFlash”是新建的文件夹。
建议:
今后
每新建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,
以方便管理,并养成良好的习惯。
最后,为工程取名为“LedFlash”,并保存。
参见图3。
图3新建KeilC51工程
●选择CPU。
紧接着,KeilC51提示选择CPU器件。
8051内核单片机最早是
由鼎鼎大名的Intel公司发明的,后来其他厂商如Philips、Atmel、Winbond
等先后推出其兼容产品,并在8051的基础上扩展了许多增强功能。
在这里
可以选择Philips的第1个器件“80/87C51”,该器件与Intel的8051完全兼
容。
参见图4。
图4选择CPU
●接下来弹出一个如图5所示的对话框。
该对话框提示是否要把标准8051的
启动代码添加到工程中去。
KeilC51既支持C语言编程也支持汇编语言编程。
如果打算用汇编语言写程序,则应当选择“否(N)”。
如果打算用C语言写程序,
一般也选择“否(N)”,但是,如果用到了某些增强功能需要初始化配置时,则
可以选择“是(Y)”。
在这里,我们选择“否(N)”,即不添加启动代码。
图5选择是否要添加启动代码
至此,一个空的KeilC51工程建立完毕。
●执行菜单“File|New…”,出现一个名为“Textn”(其中n表示序号)的文档。
●接着执行菜单“File|Save”,弹出一个名为“SaveAs”的对话框。
将文件名改为
“main.c”,然后保存,参见图6。
扩展名“.c”不可省略。
图6保存新建的源程序文件
●添加源程序文件到工程中。
现在,一个空的源程序文件“main.c”已经建立,
但是这个文件与刚才新建的工程之间并没有什么内在联系。
我们需要把它添
加到工程中去。
单击KeilC51软件左边项目工作窗口“Target1”上的“+”,将
其展开。
然后右击“SourceGroup1”文件夹,会弹出如图7所示的选择菜单。
单击其中的“AddFilestoGroup'
SourceGroup1'
”项,将弹出如图8所示的对
话框。
●先选择文件类型为“CSourcefile(*.c)”,这时,对话框内将出现刚才保存
过的“main.c”。
单击文件“main.c”,再按一次“Add”按钮(请不要多次点击“Add”
按钮),最后按“Close”按钮。
这时,源程序文件“main.c”已经出现在项目工
作窗口的“SourceGroup1”文件夹内,可以单击左边的“+”展开后查看。
图7准备添加源程序文件到工程中
图8向工程中添加源程序文件
●现在开始输入源程序。
先最大化“main.c”源程序窗口,然后请按以下程序
清单输入程序代码。
程序清单:
LED闪烁发光程序main.c
/******************************************************************************
**
程序名称:
LED闪烁发光
硬件接法:
P1.1控制LED,低电平点亮
运行效果:
LED亮200ms,灭800ms,反复循环
*******************************************************************************
/
#include<
reg51.h>
//包含8051的SFR寄存器定义头文件
sbitLED=P1^1;
//定义I/O接口
*
函数:
Delay()
功能:
延时0.01s~2.56s
参数:
t>
0时,延时(t*0.01)s
t=0时,延时2.56s
说明:
定时10ms的定时器初值=65536-0.01/(1/(f/12)),其中f为晶振频率
voidDelay(unsignedchart)
{
do
TH0=0xDC;
//设置定时器初值(定时10ms)
TL0=0x00;
TR0=1;
//启动定时器
while(!
TF0);
//等待定时器溢出
TR0=0;
//停止定时器
TF0=0;
//清除溢出标志
}while(--t!
=0);
//循环t次
}
//主函数voidmain()
TMOD&
=0xF0;
//T0设置在方式1,即16位定时器(不影响T1的模式)
TMOD|=0x01;
for(;
;
LED=0;
//点亮LED
Delay(20);
//延时200ms
LED=1;
//熄灭LED
Delay(80);
//延时800ms
●单击KeilC51工具栏的“”图标,弹出名为“OptionsforTarget‘Target
1’”的对话框。
单击“Output”标签页,选中“CreateHEXFile”项,然后“确定”。
参
见图9。
图9编译环境设置
●单击工具栏的按钮“”编译当前源程序。
编译结果会显示在输出窗口
内。
如果是“0Error(s),0Warning(s).”就表示程序没有问题了(至少是在语
法上不存在问题了)。
如果存在错误或警告,则仔细检查程序是否与程序
清单一致。
修改后,再编译,直到通过为止。
●编译后的结果会生成IntelHEX格式的程序文件“LedFlash.hex”。
该文件
可以被专门的芯片烧写工具载入并最终烧录到具体的芯片中。
芯片安装到
自己的电路板上,通电,就可以运行里面的程序了。
还有一类叫做“ISP”
(InSystemProgramming)的下载方法,也能够把程序文件烧录到芯片
内,但是采用的是串行在线方式,芯片不必从电路板上取下。
ISP方式编
程速度较慢但操作要方便些。
Philips的多款8051内核单片机都能很好的
支持ISP下载功能,比如P89V51RB2、P89V51RD2等等。
1.4新建A51汇编工程
KeilC51软件也支持A51汇编编程。
建立A51工程的操作步骤与建立C51工
程基本相同,但有两个要点请注意:
●新建的源程序文件名要以”.A51”或“.ASM”作为后缀。
●A51源程序添加到工程中时,文件类型要选择“AsmSourcefile(*.s*;
*.src;
*.a*)”。
其它操作步骤都跟建立C51工程相同。
二、在KeilC51下调试程序
KeilC51的调试功能非常强大,现在仍然以LED闪烁发光程序为例,来具
体了解如何进行仿真操作。
2.1进入仿真状态
如果程序编译通过,就可以仿真了。
在仿真之前,有一项参数最好配
置一下,仍然按“”图标进入编译环境设置,找到“Xtal(MHz)”项,填入
11.0592。
最后点击“确定”。
进入仿真状态很简单,直接点击工具栏红色的
“”图标。
2.2认识各个仿真窗口
图10KeilC51源程序窗口
1.源程序窗口
KeilC51调试界面的中间是源程序窗口,参见图10。
黄色箭头“”所指为当前即将
执行但还没有执行的代码。
以深灰色标记的程序行是可以执行的代码(当然,在调试过程中
未必一定要去执行)。
以浅灰色标记的程序行不可作为代码来执行,它们是注释、空行、标
号或ROM数据表。
以绿色标记的程序行表示曾经执行过的代码。
2.寄存器窗口
图11KeilC51寄存器窗口
KeilC51调试界面的左边是寄存器窗口,参见图11。
8051的工作寄存器
(R0~R7)和系统寄存器(a、b、sp、dptr、PC、psw)都列出来了。
Value栏
显示的是寄存器的当前数值。
如果在调试过程中某个寄存器的值有变化,则会
用蓝色的背景标记。
单击psw寄存器左边的“+”,展开后还可以看到其每一位
的情况。
3.汇编窗口
单击工具栏的“”图标,源程序窗口会自动切换成汇编窗口,参见图12。
在汇编窗口
里,我们可以看到每条指令的存储地址和编码等信息。
再次单击“”,回到源程序窗口。
4.存储器窗口
单击工具栏的“”图标,将显示出存储器窗口,参见图13。
8051单片机的
存储器分为多个不同的逻辑空间。
如果要观察代码存储器的内容,就在地址栏
“Address:
”内输入“C:
地址”,例如:
C:
0080H。
同理,观察内部数据存储器输
入“I:
地址”,观察外部数据存储器输入“X:
地址”。
拖动存储器窗口右边的滚动条
可观察其它存储单元。
存储器窗口有“Memory#1~Memory#4”共4个观察子
窗,可以用来分别观察代码存储器、内部数据存储器和外部数据存储器。
存储
器的内容是可以修改的。
用鼠标右击打算要修改的存储单元,选择“Modify
Memoryat…”项,弹出修改对话框,可以随意修改存储单元的内容。
图12KeilC51汇编窗口
图13KeilC51存储器窗口
图14KeilC51变量观察和堆栈窗口
5、变量观察和堆栈窗口
单击工具栏的“”图标,将显示变量观察和堆栈窗口(Watch&
CallStack
Window),参见图14。
在Locals标签页,会自动显示局部变量的名称和数值。
在C语言程序的函
数中,每一对花括号“{}”内定义变量都是局部变量,能够自动显示。
在“Watch”标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制 软件 认识