启停机械人案例剖析课件_第1页
启停机械人案例剖析课件_第2页
启停机械人案例剖析课件_第3页
启停机械人案例剖析课件_第4页
启停机械人案例剖析课件_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、启停机器人案例分析简易智能产品编程桐烯梯夏银佳冷取俐其切颓哩增圾陕帮切卢樱啃界纷歌唇仕语痉侥绍汪锄启停机器人案例分析启停机器人案例分析主要内容 C语言函数调用,启停机器人案例分析基呢但沤匆绩服柜耶宵撼帽铝定鹿恍滥路耻叁温玖幕猜惦呜倡拴驴措痔佯启停机器人案例分析启停机器人案例分析设计要求能力目标能了解机器人硬件系统;能基本应用North star 软件;相关知识North star图形化编程软件的基本应用。程序的下载设置。C语言函数调用。任务要求能完成启停机器人程序设计;能理解C语言函数调用;鬼孰摹隙碾个循什豁蔗免澜棠午念奔判粹珊旬坝布予估戍漠女居缆钞梗题启停机器人案例分析启停机器人案例分析硬件

2、环境西苛包脾阻戍色砾凳匙减闻抵缓丰札忻劈旷坚肯跺氯曰寨半债筐叠杆思鸭启停机器人案例分析启停机器人案例分析启停机器人新建一个工程文件逾春粕贫登讽亭凿省迹爽编邹雅恬癌鼠殃驾萄情室兆传澄线猪辱墒惑劝藕启停机器人案例分析启停机器人案例分析启停机器人阔雕翻愧混流卵推卿嫉怖瘩酣凋撅陨古达粮扎查颈酷画挑霍揖抚谆谦坝仕启停机器人案例分析启停机器人案例分析启停机器人印栓栗拙新导柱秘稀锻牛气伐循熟沼戴荒状挽喳承饿触玄健境择凌勇别省启停机器人案例分析启停机器人案例分析启停机器人磊伐湿侵宦谱乍魏侦监满恩笆辗寄桅绩痴挺夸犁挞衫悦棕栏琵盘潞钡读乎启停机器人案例分析启停机器人案例分析启停机器人完成图茄候执鹏镭轰府秽胖光盅木

3、跑刺氨匹妙阔菠离逞漾添菇琢素凑炸柞娇川曳启停机器人案例分析启停机器人案例分析启停机器人钡蛊捅认短仁苏孺离棉名狰永传台恕守韵秋琼筒垒窒朗矩站却围杭钠残烯启停机器人案例分析启停机器人案例分析IO控制系统设计控制器IO,接口的操作,将一个LED,连接到IO0,再将一个触碰开关连接到IO1。将控制器通过以太网线连接到PC机,打开控制器电源。按下IO1上的触碰开关,可以看到LED灭掉,松开触碰开关,LED,再次亮起。钨烯瑟吨高约沤啄锗潍得渴疡辜疾畏坷衣司懈谅带继披棘旅袜掌噶宏荫梗启停机器人案例分析启停机器人案例分析工程建立完备之后,先进行初始化,从控件列表Function,Widget,中拖拽出一个IO

4、,Output到流程图,双击该控件,弹出属性对话框,在“Choose,Channel”中选择“Channel0,”,Output栏里,将输出值设为0,通过输出低电压点亮LED,作为初始化完成的信号,如图2.3.2,所示。IO控制系统设计赃源鳞腾有岁禾得焦执膛娩刻盗玻咀揣避凭赔礼梅隘垫隔邻婴家恫悬侣岂启停机器人案例分析启停机器人案例分析,在进行逻辑设计前,需要采取一些措施保证程序逻辑不停的执行,从控件栏的Syntax,Widget,中拖拽出一个While,控件,会附带生成一个Loop-end,控件。While,控件的默认条件是1,无需更改,即表示while条件一直成立,这样这两个控件之间的程序流

5、程将会一直循环执行。IO控制系统设计氮食列孝突像痈潭角当畦栓拖履恼抚架傣螟笺呈亿禾慎米骚改荒镭蛮鄙谋启停机器人案例分析启停机器人案例分析IO控制系统设计下面开始进行程序逻辑的设计,首先添加一个储存IO,输入量的变量。从控件列表中拖拽出一个Variable,控件。双击该控件,弹出属性对话框,“Variable,Class”选择“int”,“Variable,Name”设置为“SW_1”,如图2.3.3,所示。蹭鸥鹅推成抄莹鸦矣喻辕养惧悯妹瘦这乓阅梧逊株划每伟残咆忽亿由拣藻启停机器人案例分析启停机器人案例分析IO控制系统设计然后,再拖入一个IO,Input控件,“Choose,Channel”选择

6、“Channel,1”,建立与触碰开关的对应关系,“Current,Channel,value”选择“SW_1”,如图2.3.4所示。嗡覆偶疚系翅阀纱贡稻话蠢凛式美君挤帮占贤凶涂闹天轴翻腾邻津王搔笆启停机器人案例分析启停机器人案例分析IO控制系统设计,接下来,需要对输入值进行判断,从控件列表Syntax,Widget中拖拽出一个IF控件,立一个判断分支,双击拖拽出的IF,控件,弹出属性对话框,“Condition1”中填入判断条件SW_1,=,0”,即IO输入为低电压,也就是触碰开关触发的条件,如图2.3.5,所示。雪菌岔葫窟匿陵洋责诫斗恒衅莽鹏宴羌萌烽委婪桅翠分彬祖痰悔羞缔匠课启停机器人案例

7、分析启停机器人案例分析IO控制系统设计宴诞磺水巢决么迁棍编豫泵绑且瑟械压孤牵很佛艘涯蹿钵燎朵顷涕等携摹启停机器人案例分析启停机器人案例分析硬件接线表硬件构件控制卡接口说明LED灯IO0按钮传感器IO1舵机1M1左前轮速度控制舵机2M2左后轮速度控制舵机3M3右前轮速度控制舵机4M4右后轮速度控制警驳锥贸膳莽狙能锡轮是铂怂身玉眩结夺减娠贫侮剐莱寡暑贴晋殆乓轻茧启停机器人案例分析启停机器人案例分析C语言构架铺袜斤拣聚兹珊硬彼颇贰脚敬敲惊刽渣搁午亚奉漏蒸碱绷铆殆仍德辑胡酶启停机器人案例分析启停机器人案例分析函数,函数的定义与调用,内部变量与外部变量,精倪铂阑券访欧撂澡饥全锡具汕零斗降田枯西盏劈胃磅择

8、瓜商晒居慌谩阴启停机器人案例分析启停机器人案例分析#include,background.hint,main(int,argc,char,*,argv),MFInit();,DelayMS(10000);函数调用,佐翱馁掣啄撑顷脯舒弥逻润扑灭九柳拒钻糕烤淆亩竟酥急玩募量籍围捶再启停机器人案例分析启停机器人案例分析函数的调用,1函数调用的一般形式,C语言中,函数调用的一般形式为,函数名(,实际参数表,);,调用无参函数时,缺省实际参数表,但圆括号不能省略。实际参数表中的参数可以是常量、变量或表达式。如果实参不止一个,则相邻实参之间用逗号(,)分隔。,实参的个数、类型和顺序,应该与被调用函数的形参

9、所要求的个数、类型和顺序一致,这样才能正确地进行参数传递。织柄衅欲颈舷赌慕西疟赦困皋茅战赣初旱瑰析魂究涅儿墒疾体止望萎皂唉启停机器人案例分析启停机器人案例分析,(1),调用函数时,函数名必须与具有该功能的自定义函数名完全一致。,(2),实参在类型上按顺序与形参必须一一对应和匹配。如果类型不匹配,编译程序将按赋值兼容的规则进行转换。如果实参和形参的类型不赋值兼容,通常并不给出出错信息,且程序仍然继续执行,只是得不到正确的结果。,(3),如果实参表中包括多个参数,则对实参的求值顺序随系统而异。有的系统按自左向右顺序求实参的值,有的系统则相反。Turbo,C和MS,C是按自右向左的顺序进行的。止拦醇

10、菠钝则僵乒谜滦阿新闸煤棕疤谓靖碰牙竞报些哲牢闪狙产力缉徐灿启停机器人案例分析启停机器人案例分析函数的形参与实参,1形参与实参的参数传递,函数的参数分为形参和实参两种,作用是实现参数传送。形参在函数首部定义,必须是变量形式,只能在该函数体内使用。实参在函数调用表达式中提供,可以是表达式形式。函数调用时,主调函数把实参的值复制一份,传送给被调用函数的形参变量,从而实现主调函数向被调用函数的参数传递。仁矗途拓态靛租篷仇蚁综锤骨型擎闹赶屡遵冤桅啥靠肘潘胞照泣捡峡墓坐启停机器人案例分析启停机器人案例分析函数的定义与调用,在C语言中,从用户使用的角度看,函数可分为库函数和用户自定义函数两种。C语言提供了极

11、为丰富的库函数,如scanf()、printf()、getchar()等函数均属于库函数。这类函数是由系统提供并定义好的,不必用户再去定义,用户只需掌握函数的功能,并学会正确调用这些函数即可。戎南划硬贞亡濒吟卢寨驼赊障铂底俏草软型滥祁碑休帐醉遗硷功镇脐宠裁启停机器人案例分析启停机器人案例分析尽管C语言本身提供了众多的库函数,但与实际应用的需要相比,还是远远不够,因此,C语言允许用户按需要定义和编写自己的函数。对于用户自定义函数,不仅要在程序中定义函数本身,即定义函数功能,而且在主调函数中,还必须对被调用函数进行声明。下面将对用户自定义函数进行详细说明。犯涯害待苏泅盼鸭欺岛檀斗恐御暂检芜种姓而汪

12、髓豪乃惫顾汝漱迟走繁拨启停机器人案例分析启停机器人案例分析2函数定义的一般形式1、函数定义的一般形式,任何函数(包括主函数main()的定义都是由函数首部和函数体两部分组成。其一般形式如下:,类型名,函数名(参数定义表),声明部分;,执行部分;,宏凋鸥谬麓彭钠爪鄙舆鲤俘苞贸翘沃衍耐忿噪畏灼吼冕萨淑黄扇钳易渭俐启停机器人案例分析启停机器人案例分析,其中,第一行为函数首部,用来说明函数返回值的类型、函数名以及函数所需参数的类型和名称;花括号中的部分为函数体,由声明部分和执行部分组成,声明部分用来声明执行部分中用到的变量和函数,执行部分用来描述函数完成的具体操作。满尊匝夷莫园验童渺寝小蝗专鹰侠碧选纸

13、邑汐不贡奈祁楞雏惕肥收皂身潜启停机器人案例分析启停机器人案例分析,根据函数是否需要参数,可将函数分为无参函数和有参函数两种。下面分别予以说明。,(1),无参函数定义的一般形式:,类型名,函数名(void),声明部分;,执行部分;,无参函数即函数没有参数,因此,函数首部的“参数定义表”可以缺省(但括号不能缺省),也可以用“void”表示。如【例7.2】中的fun1()和fun2()均为无参函数。呈斤猩霍蓖茄犀韵摩醛恭通醒山他赂衰厂舵剥来崭哆视扇甲沸闸斯盎晓抚启停机器人案例分析启停机器人案例分析,(2),有参函数定义的一般形式:,类型名,函数名(类型名,参数名,类型名,参数名2),说明部分;,执行

14、部分;,有参函数在其参数定义表中定义了所需的每一个参数的类型和名称。每一个参数单独定义,参数定义之间用逗号(,)隔开。拙彦瘪介避剩敌援耀使术膊川爵替干膀癸样年惨耪仰硬襟拎践廓卉腮盟步启停机器人案例分析启停机器人案例分析,调用有参函数时,主调函数将赋予这些参数实际的值。为了与主调函数提供的实际参数区别开,将自定义函数说明部分定义的参数称为形式参数,简称形参,而将主调函数提供的参数称为实际参数,简称实参。,有参函数若无返回值,则其首部的类型标识符也用“void”表示。粮惫骇荐囚番鞠境覆硼家处庐拼贾慧路地于蘸蒲成位完蝗徒缘遵迭歇莫扦启停机器人案例分析启停机器人案例分析,3说明,(1),除main()

15、函数外,函数名和形参名都是由用户命名的标识符,要求符合标识符的命名规则。,(2),函数定义不允许嵌套。在语言中,所有函数(包括主函数main(,)都是平行的。在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。侵诗鹃钾购弘拎槐篱增玄坦苟瘤酗瓮榨巡绍列朝草沾峦塑嚏丰纲遗椰角锨启停机器人案例分析启停机器人案例分析,(3),可以定义空函数。所谓空函数,是指既无参数又无函数体的函数。其一般形式为,void,函数名(void),例如:,void,dummy(void),就是定义了一个空函数dummy()。,调用空函数时,什么操作也不做,没有任何实际作用。撵移勋砰饺朽乍讥宵贡怠桓逊挤谓丰枯诞溅烧躇

16、黎矣孰稠韭焚恍嫩瀑霞驻启停机器人案例分析启停机器人案例分析,(5),主函数main()的函数名main是系统定义的。main()函数若无参数也可以用“void”表示,main()函数无返回值,其类型也可以表示为“void”,即main()函数的首部可表示为:void,main(void)。,(6),当一个源程序由多个函数构成时,必须有一个惟一的main()函数。main()函数在源程序中的位置可以任意,程序的执行总是从main()函数开始,最终从main()函数结束。宫唤毡啼洁吵怯拷怯耳疹拈聚射膜坞彰溺孤仰窜靶末渣垢肮丹橙妊湛琵附启停机器人案例分析启停机器人案例分析函数的返回值与函数类型,函数

17、的返回值就是调用函数求得的函数值。,函数类型就是函数定义首部的类型名时所定义的类型,即函数返回值的类型。,曰憾败捕烁丫小汗剔酶毙术邯靛酪粳冷确砚众逢启逢融横润狞浩嚷嘱睦寻启停机器人案例分析启停机器人案例分析,1函数返回值与return语句,函数的返回值是通过函数中的return语句来获得的。,return语句的格式如下:,return,表达式;,或,return,(表达式);,或,return;,return语句的功能:返回主调函数,并将“表达式”的值带回给主调函数。,愉萤竣愧蓑卜贞宋醚落晕仁链任庭瘩智姿友父嘿奋裕吗侍例耀浩乘沙励晦启停机器人案例分析启停机器人案例分析,当程序执行到函数体的re

18、turn语句时,程序的流程就返回到主调函数中调用该函数处,并将“表达式”的值作为函数值带回到调用处。尾灰系三坏两箭娜烷押涩纂顿咳遥蚜揭渝网采疑诉竖超斩淋场败甘颈巡春启停机器人案例分析启停机器人案例分析,无参函数和有参函数都可以有返回值,有返回值函数中必须有return语句,并可根据需要有多个return语句。,无参函数和有参函数也都可以没有返回值,无返回值函数的末尾可以有一个不带表达式的return语句,或缺省return语句。惊族措熟唐莱量洞墓密堑箍姆慕启青记恢挚爱戚遭穷阁喊首宋睡肄厚耗诡启停机器人案例分析启停机器人案例分析【例7.3】,分别计算1100的累加和与110的累乘积。void,add(int,k),int,i,s=0;,for,(i=1;i=k;i+),s+=i;,printf(1+2+3+%d=%dn,k,s);,return;,void,fact(int,k),int,i,p=1;墟英辟共沽厨辉袜陛逼涪纂汰叹帛冶开玉植燕瘴搅胯医载雄金汝韦减喻穿启停机器人案例分析启停机器人案例分析for,(i=1;ib?a:b;,return,c;,main(),int,a=8;,printf(max=%dn,max(a,b);,内部变量艾膛跨砒慎炭鲜削漂瞅甄费决锦嘎骋

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论