第三课认识KeilC课件_第1页
第三课认识KeilC课件_第2页
第三课认识KeilC课件_第3页
第三课认识KeilC课件_第4页
第三课认识KeilC课件_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

第三课认识KeilC

快速学习路径3-1

基本结构

=>3-2

变量、常量与数据类型

=>3-3

存储器形式与模式

=>3-4

运算符

=>3-5

流程控制

=>3-6

数组与指针

=>3-7

函数与中断子程序

=>3-8

预处理命令

=>3-1基本结构

3-2变量、常数与数据类型在C语言里,常数(constant)与变量(variables)都是为某个数据指定存储器位置,其中常数是在指定存储器位置里,放置固定不变的数据,而变量是在指定存储器位置里的数据是可变的。声明常数或变量的格式如下:3-2-1

数据类型-1通用数据类型

3-2-1

数据类型-28051特有数据类型

3-2-1

数据类型-38051特有数据类型范例

3-2-2

变量名称

可使用大/小写字母、数字或下划线(即_)。第一个字符不可为数字。不可使用保留字。3-2-2

保留字-1ANSIC传统C的保留字3-2-2

保留字-2KeilC保留字3-2-3

变量的适用范围全局变量

局部变量

(自动变量)3-3存储器形式与模式存储器形式3-3存储器形式与模式-1程序存储器

charcodeSEG[3]={0x0a,0x13,0xbf};内部数据存储器

chardatax;//直接寻址

charidatax;//间接寻址

bitbdatax;//可位寻址

外部数据存储器

charxdatax;//外部存储器64kbytes

charpdatax;//外部存储器256bytes3-3存储器形式与模式-2小型模式

(SMALL)…data

精简模式

(COMPACT)…pdata大型模式

(LARGE)…xdata3-4

运算符

-1算术运算符

3-4运算符-2关系运算符

3-4

运算符-3逻辑运算符

3-4

运算符-4布尔运算符

3-4

运算符-5赋值运算符

3-4

运算符-6自增/自减运算符

3-4

运算符-7运算符的优先级

3-5流程控制

for循环指令与

delay函数

=>while前条件循环指令

=>dowhile后条件循环指令

=>if条件选择指令

=>Switch多重选择指令

=>Goto跳转指令=>3-5-1

for循环指令与

delay函数-1

指令格式

for(表达式1;表达式2;表达式3

)

{

指令1;

指令2;

[break;]

:

}范例

for(i=0;i<10;i++)//重复执行下列指令10次

{LED=~LED;//切换LED状态

delay(100);//调用延迟函数

}3-5-1

for循环指令与

delay函数-2若循环体内只有一个指令,则可省略大括号:

for(i=0;i<10;i++)

{SEG=TAB[i];

}

可简化为:

for(i=0;i<10;i++)SEG=TAB[i];

但“;”

不可省略。3-5-1

for循环指令与

delay函数-3若表达式省略,则为无穷循环,例如

for(;;)for(i=0;i<10;i++)是从i=0数到i=9,总共10次循环。for(i=1;i<=10;i++)是从i=1数到i=10,也是10次循环。for(i=10;i>0;i--)是从i=10倒数到i=1,总共10次循环。3-5-1

for循环指令与

delay函数-4for(i=0;i<10;i+=2)是从i=0数到i=9,每次增加2,总共5次循环。for(i=10;i>0;i-=2)是从i=10倒数到i=2,每次减少2,总共5次循环。3-5-1

for循环指令与

delay函数-5嵌套循环:

for(i=0;i<x;i++)

for(j=0;j<10;j++)

{指令1;

指令2;

:

}重复执行10次重复执行x次3-5-1

for循环指令与

delay函数-6Delay函数:

for(i=0;i<x;i++)

for(j=0;j<120;j++);重复执行x次//从0数到119//耗时约1毫秒(ms)总共延迟xms3-5-2while前条件循环指令-1指令格式

while(表达式)

{指令1;

指令2;

:

[break;]

:

}若表达式成立,则执行大括号的指令3-5-2

while前条件循环指令-2范例

while(x>y)

{指令1;

指令2;

:

[break;]

:

}若x>y成立,则执行大括号的指令3-5-2

while前条件循环指令-3范例

while(1)

{指令1;

指令2;

:

[break;]

:

}无穷循环3-5-3dowhile后条件循环指令指令格式

do

{指令1;

指令2;

:

[break;]

:

}

while(表达式)先执行大括号的指令,再判断表达式是否成立,若成立,才继续执行大括号的指令3-5-4if条件选择指令-1指令格式

3-5-4

if条件选择指令-2单一循环体

3-5-4

if条件选择指令-3多重条件判断

3-5-5switch多重选择指令指令格式3-5-6goto跳转指令3-6数组与指针数组(array)是一种将同类型数据集合管理的数据结构,而指针(Pointer)是存放存储器地址的变量,因此,数组与指针可说是数据管理的好搭挡。3-6-1

数组-1数组也是一种变量,将一堆相同数据形态的变量,以一个相同的变量名称来表示。既然是一种变量,使用之前就得声明,其格式如下:

字符串数组范例:

charLCM[9];

这个数组包括LCM[0]~LCM[8]等9个字符

声明数组的时候,也可以给它初始值,如下:

charLCM[9]=“Testing.”;

代表LCM[0]的初始内容为T、LCM[1]的初始内容为e,…LCM[7]的初始内容为.,而程序会自动在字符串的最后面加上“\0”做为结束,故须9个字符。

3-6-1

数组-2若不知道数组的大小,可交给程序处理,如下:

charstring1[]=“WelcometoTaiwan.”;

整型/浮点数数组范例(预设初始值

):

intNum[6]={30,21,1,45,26,37};n维数组的格式

32整型数组范例

intNum[3][2]={{10,11},{12,13},{14,15}};

代表Num[0][0]的初始内容为10、Num[0][1]的初始内容为11、…Num[2][1]的初始内容为15。

3-6-2

指针-1指针是用来存放存储器地址的变量,既然是变量,使用前当然要声明,其格式如下:整型指针范例:

int *ptr;

同类型的变量与指针放在一起声明,如下:

int *ptr1,*ptr2,a,b,c;

3-6-2

指针-2将a变量的地址放入指针,可使用“&”,如下:

ptr1=&a;

也可以而将数组的地址放入指针,如下:

ptr1=&Num[0][0];

Num数组的第一个地址被放入ptr1指针变量。若要将Num[0][0]的内容输出到Port2,如下:

P2=Num[0][0];

也可以采用指针变量的方式,如下:

P2=*ptr1;

3-7函数与中断子程序函数(function)、中断子程序都是属于子程序。函数使用前需要声明,中断子程序不需要声明。中断子程序并不传递参数,也不返回值

。3-7-1

函数

3-7-2

中断子程序

中断子程序的第一行格式:

中断子程序与函数的结构类似。

3-8预处理命令-1定义命令

#define包含命令

#include条件式编译命令

#if、#elif、#else、#endif、

#ifdef、ifndef3-8预处理命令-2定义命令

#include#include是一个预处理命令,其功能是将头文件(*.h)包含到程序里。#include<xxx.h>:以<xxx.h>所包括的头文件,编译程序将从源程序所在文件夹(C:\KEIL\C51\INC)里查找所指定的头文件。#include“xxx.h”:以<xxx.h>所包括的头文件,编译程序将从源程序所在文件夹

温馨提示

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

评论

0/150

提交评论