C语言编程“十市联赛”一等奖_第1页
C语言编程“十市联赛”一等奖_第2页
C语言编程“十市联赛”一等奖_第3页
C语言编程“十市联赛”一等奖_第4页
C语言编程“十市联赛”一等奖_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

C语言编程C语言是目前国际上广泛流行的一种高级语言,它兼顾了汇编语言的特点。C语言有功能丰富的库函数,运算速度快、编译效率高、可移植性好,而且可以直接实现对硬件的控制。对于简易机器人的程序开发,除了图形化编程外,一般还常用C语言和汇编语言两种编程方式。ROYAC是针对简易机器人的一种专用C语言开发环境。ROYAC语言较为简单、比标准C(ANSIC)语言更易于掌握,可以说是标准C语言的一个子集。本节将以ROYAC为例,介绍C语言编程的开发环境、基本语法和程序结构,至于汇编语言的编程,读者可以参考AVR单片机的有关书籍,本课程不做介绍。一、ROYAC开发环境图2.30是ROYAC的开发环境主界面,它由以下几部分组成:菜单栏、工具栏、代码编辑区、编译信息区、控制函数库区。菜单栏:包含了各种操作项,有文件、编辑、视图、开发环境程序、窗口、帮助,操作方法与Windows应用程序相同。C语言程序必须经过编译,变成单片机理解的机器语言才能运行。ROYAC也不例外,在此特别强调一下“程序”下拉菜单中程序的“编译并链接”和“下载程序”。如图2.31所示,单击“程序”下拉菜单中的“编译并链接”,ROYAC开发软件将自动检查程序是否正确,并把程序转换成机器语言,待看到编译信息区出现“0个错误”字样,表明程序的编译被通过,可以向机器人控制板下载这个程序了。单击“程序”下拉菜单中“设置串口通道”(图2.31),出现如图2.32所示的“选择串口”对话框,默认串口是串口1.设置好串口通道后单击“程序”下拉菜单中的“下载程序”,出现如图2.33所示的“下载提示”对话框。如果硬件连线无问题时,程序就会自动地下载,如图2.34所示。小资料C语言的历史C语言是在20世纪70年代初问世的,1978年由美国的贝尔实验室正式推出。同时由B.W.Kernig1an和D.M.Ritchi合著了著名的《THECPROGRAMMINGLANGUAGE》一书通常简称为《K&R》。但是,在《K&R》中并没有定义一个完整的标准C语言,后来美国国家标准协会(AmericanNationalStandardsInstitute)在《K&R》基础上制定了一个C语言标准,于1983年发表,通常称之为ANSIC。早期的C语言主要是用于UNX系统(一种计算机操作系统)。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了20世纪80年代,C语言开始进入其他操作系统并很快在各类大、中、小型计算机和微型计算机上得到了广泛的应用,成为当代最优秀的程序设计语言之一。目前最流行的C语官有以下几种:MicrosoftO、Borlandturboc和AT&TC。这些C语言版本不仅包含了ANSIC的标准,而且还各自做了一些扩充,使之更加方便、完美。二、C语言的基本语法

尽管ROYAC语言较标准C语言简单,但基本语法和程序结构大部分是一样的。下面结合ROYAC程序来说明这种语言的基本语法,如函数、数据类型、运算符与表达式、编译预处理等概念。三、C语言的程序结构C语言是一种结构化程序编程语言。这种结构化体现在程序由若干模块(函数)组成,每个模块包含若干个基本结构,而每个基本结构中有若干条语句。C语言有3种基本结构:顺序结构、选择结构和循环结构。这3种结构的概念与ROYA图形化语言是一样的。下面将结合实例介绍如何用ROYAC来编写程序。1.顺序结构程序清单2.1就是一个典型的顺序结构程序,程序予从main()函数处开始执行,按顺序执行到末尾Forward()处,然后程序停止。2.循环结构C语言提供了3种循环语句:for语句、while语句和do-while语句,它们可完成相同的功能(1)for语句:程序清单2.5的任务是让简易机器人不停地走个四边形路径,如图2.35所示。如何在编程中实现这个重复动作,就涉及C语言的循环结构。程序清单2.5的main(void)主函数中,for(;)语句就是循环语句。该循环体内调用了两个库函数:Forward(50,5000)函数表示机器人前进(车轮以50%的全速,持续时间为5000ms),TurnLeft(50,1000)函数表示机器人左转弯(车轮以50%的全速,持续时间为1000ms)。程序循环地执行这两个语句,机器人就不停地沿个四边形路径运动。for语句的一般形式为:其中,表达式1代表循环的初始条件;表达式2代表循环的终止条件;表达式3代表从初始条件到终止条件的步长增量,注意,这个增量可以为正数,也可以为负数for语句的执行过程如下:

程序清单2.5中的for语句实际上是一个无限循环,因为未给出循环条件表达式2,即程序无须判断循环条件,故循环将无休止地执行下去。从这个例子可以知道,循环条件中的各表达式可有可无,但两个分号“;”不可缺少。(2)while语句:whie语句的一般形式为:while语句的特点是先判断表达式,若表达式的值非0,程序执行循环体,否则不执行循环。如果把程序清单2.5所示的程序用while语句来表达,仅仅用while语句代替for语句即可,如程序清单2.7。在程序清单2.7中,因为while后面表达式的值非0,所以程序一直运行循环体内的语句。(3)do-while语句do-while语句的一般形式为:该语句的特点是:先执行一次循环体内的语句,然后判断表达式。若表达式的值非0,则返回循环体重新执行该语句,如此反复,直到表达式的值为0。3.选择结构为了演示选择结构的执行过程,在简易机器人上连接一个接触传感器,让机器人控制电路板上的两个LED按照程序清单2.8点亮和熄灭。程序启动后,机器人控制器循环地检测接触传感器的输入值,且传感器接通(按下),LED便改变状态,程序如程序清单2.8所示。程序中SwitchO(0)是一个由ROYAO软件提供的库函数,它读入接触传感器(通道0)的状态值,并将其存放到变量vl中。选择语句if(vl==0)的含义是:如果vl的值等于0(接触传感器未被按下),程序执行ⅱ后面的SwitchO(8,1)函数,该函数表示对通道8输出开关量1,即点亮第1个LED;如果v1的值等于1(接触传感器被按下),程序执行第2个ⅱ后面的SwitchO(8,0)函数,即第1个LED灭。if语句是C语言中常用的一种选择语句,它有两种形式。程序清单2.8中的语句是最基本的一种,其格式为:图2.36是它的语句流程,若表达式内容为真,则执行if后面的语句,否则,绕过该语句执行下一条程序。第二种语句格式为:如图2.37所示,

温馨提示

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

评论

0/150

提交评论