资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,ppt课件完整,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,ppt课件完整,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,ppt课件完整,*,第二章,C51,知识,C,语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用,C,语言进行程序设计已经成为软件开发的一个主流。用,C,语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进、扩充和移植。而针对,8051,的,C,语言日趋成熟,成为了专业化的实用高级语言。,1,ppt课件完整,第二章 C51知识C语言是一种编译型程序设计语言,它兼顾了,C,语言作为一种非常方便的语言而得到广泛的支持,很多硬件开发都用,C,语言编程,如:各种单片机、,DSP,、,ARM,等,.,C,语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。,C,提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。,C-51,的特点,2,ppt课件完整,C语言作为一种非常方便的语言而得到广泛的支持,很多硬件开发都,C-51,与,ASM-51,相比,有如下优点:,1.,对单片机的指令系统不要求了解,仅要求对,8051,的存贮器结构有初步了解;,2.,寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;,3.,程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;,4.,提供的库包含许多标准子程序,具有较强的数据处理能力;,5.,由于具有方便的模块化编程技术,使已编好程序可容易地移植;,3,ppt课件完整,C-51与ASM-51相比,有如下优点:3ppt课件完整,例子认识,C,程序,#include,sbit A5=P10 x04;,int main(void),/,用户代码,void delay_1s(),;,return 0;,void delay_1s(),/,代码,一、主程序(程序入口),int main(void),/,用户代码,return 0;,注:,1,、,C,程序模块都是以“,”开头“,”结尾,程序为,函数,主函数、子函数,2,、每一行必须有结束号“;”,3,、养成注释程序的习惯,“,/,”注释该行,“,/*-,段落,-*/,”注解一段,二、头文件(编程预处理),#include,注:定义一些通用引脚及函数,三、自定义函数(子函数),常用、重复引用的功能集成,可用任何文本编辑软件编写,最后保存扩展名为,.C,的程序源文件,4,ppt课件完整,例子认识C程序#include 一、主程,其值可以改变的量称为,变量,。,一个变量应该有一个名字,在内存中占据,一定的存储单元。变量,应该先定义后使用,。,要区分,变量名和变量值,是两个不同的概念。,a=3,变量,3,存储值,存储单元,地址,a,注:变量名,a,代表地址,编译系统自动分配,用户不可见,0 x40,5,ppt课件完整,其值可以改变的量称为变量。a=3,一、,C,51,的变量类型,1,、基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(signed)int,16,-3276832767,(signed)short,16,-3276832767,(signed)long,32,-21474836482147483647,16,unsigned int,065535,32,04294967295,unsigned long int,unsigned short int,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsigned char,8,0255,6,ppt课件完整,一、C51的变量类型1、基本数据类型类型符号关键字数的表示,2,、变量类型的定义,格式:变量类型,+,变量名,例如:,int a,b;/,定义,a,b,为整型变更,long sheng1,sheng2;/,长整型,Float c,d;/,浮点(有小数),Double e,f;/,双精度,char a ;/,有符号字符型,Unsigned char b;,无符号字符型,注:变量类型为规定的类型;变量的名称自由起,但通常要通俗,并要遵守如下规则,c,语言变量命名:,数字、字母、下划线,都可以为变量命名。,做为变量名的开头不能为数字,如,3a_,是错的,而,a_3,或,_a3,是正确,变量名不能为关键字,像,ifelseprintf,等等都不能,7,ppt课件完整,2、变量类型的定义格式:变量类型 +变量名例,标准,C,表,1,8,ppt课件完整,标准C表18ppt课件完整,标准,C,表,2,9,ppt课件完整,标准C表29ppt课件完整,C51,扩展,10,ppt课件完整,C51扩展10ppt课件完整,3,、,C,51,的数据类型扩充定义,sfr:,特殊功能寄存器声明,sfr16:sfr,的16位数据声明,sbit:,特殊功能位声明,bit,:,位变量声明,11,ppt课件完整,3、C51的数据类型扩充定义sfr:特殊功能寄存器声明11,1,sfr,特殊功能寄存器。这也是,C 51,编译器的一种扩充数据类型,利用它可以访问,8051,单片机的所有内部特殊功能寄存器。,sfr,型数据占用一个内存单元,其取值范围,0,255,。,2,sfr16 16,位特殊功能寄存器。它占用两个内存单元,取值范围是,0,65535,。,3,sbit,可寻址位。这也是,C51,编译器的一种扩充数据类型,利用它可以访,8051,单片机内部,RAM,中的可寻址位或特殊功能寄存器中的可寻址位。,4.bit,位标量。这是,C 51,编译器的一种扩充数据类型,利用它可定义一个位标量,但,不能定义位指针,也不能定义位数组,。,12,ppt课件完整,1sfr 特殊功能寄存器。这也是C 51编译器的一种扩充,例:,sfr SCON=0X98;,sfr16 T2=0 xCC;,sbit OV=PSW2,13,ppt课件完整,例:sfr SCON=0X98;13ppt课件完整,4,、数据类型修饰词,1,)、,data:,固定指前面,0 x00-0 x7f,的,128,个,RAM,,可以用,acc,直接读写的,速度最快,生成的代码也最小,2,)、,code,定义的数据要放在,ROM,(程序存储区)里面,写入后就不能再更改,对应的还有,data,是存入,RAM,的意思。,例如:,char data,a,;/a,变量存在上述,RAM,中,int data,disp,;/disp,变量存在上述,RAM,中,例如:,uchar code yima=,/,把数码管位数据(因为不变)写入,ROM,0 xeb,0 x88,0 xb3,0 xba,0 xd8,0 x7a,0 x7b,0 xa8,0 xfb,0 xfa;,14,ppt课件完整,4、数据类型修饰词1)、data:固定指前面0 x00-0 x7,4,、数据类型修饰词,3,)、,15,ppt课件完整,4、数据类型修饰词3)、15ppt课件完整,4,、数据类型修饰词,4,)、,16,ppt课件完整,4、数据类型修饰词4)、16ppt课件完整,5,、变量的赋值,int a,b;/,定义,a,b,为整型变量,long sheng1,sheng2;/,长整型,float c,d;/,浮点(有小数),double e,f;/,双精度,char g ;/,有符号字符型,Unsigned char h;,无符号字符型,定义,赋值,a,12,;,a=,0 x,ff;a=,0 x,00;,b=0;b=,0,8;b=,0,3;,C=0.214;c=-0.36 ;,d=12e3;,e=12e-12;,g=10;,G=A;,h=200;,注:,A,为字符常量,为该字符的,ASCII,代码,17,ppt课件完整,5、变量的赋值 int a,b;/定义a,b为整型变,附,18,ppt课件完整,附18ppt课件完整,C-51,的包含的头文件,通常有,:,reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h,常用有,:,reg51.h reg52.h,(定义特殊功能寄存器和位寄存器);,math.h,(定义常用数学运算);,19,ppt课件完整,C-51的包含的头文件通常有:reg51.h reg52.h,二、,C-51,的运算符,1,、算术运算符,+-*/,%,(加 减 乘 除 求余),说明:,20,ppt课件完整,二、C-51的运算符说明:20ppt课件完整,+,:自加运算符 自减运算符,21,ppt课件完整,+:自加运算符 自减运算符21ppt课件完,2.,逻辑运算,将,两个布尔量,进行运算,结果为只有,0,或,1,的布尔量,22,ppt课件完整,2.逻辑运算将两个布尔量进行运算,结果为只有0或1的布尔量2,3.,关系运算,运算结果只有,0,或,1,的布尔量,23,ppt课件完整,3.关系运算运算结果只有0或1的布尔量23ppt课件完整,4.,位运算,位操作,,结果还是一个数,,注意与逻辑运算的区别,1,),24,ppt课件完整,4.位运算位操作,结果还是一个数,注意与逻辑运算的区别1)2,2,),.,3,),.,4,)、,25,ppt课件完整,2).3).4)、25ppt课件完整,5,)、,26,ppt课件完整,5)、26ppt课件完整,27,ppt课件完整,27ppt课件完整,二、,C-51,流程控制,与标准,C,语言基本相同:,if,选择语言,switch/case,多分支选择语言,while,循环语言,for,循环语言,do-while,循环语言,28,ppt课件完整,二、C-51流程控制 与标准C语言基本相同:28ppt课,1,、,if,条件选择语句,1,)、单分支语句,int a,b,max;,max=a;,if(maxb),max=a;,else,max=b;,30,ppt课件完整,2)、双分支语句main()30ppt课件完整,3,)、多分支语句,依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个,if,语句之外继续执行程序。如果所有的表达式均为假,则执行语句,n+1,。然后继续执行后续程序。,31,ppt课件完整,3)、多分支语句依次判断表达式的值,当出现某个值为真时,则执,int a=10;,If(a0&a=2&a-5&a=8&a0),delay1s();,P0=P0;,i-;,main(),int i,sum=0;,i=1;,while(i=100),sum=sum+i;,i+;,printf(%dn,sum);,36,ppt课件完整,例子:While(1)int i=100;main()36p,4,、,for,语句,格式,for(,表达式,1,;表达式,2,;表达式,3),语句,作用:,循环,执行一段代码,它的执行过程如下:,1),先求解表达式,1,。,2),求解表达式,2,,若其值为真(非,0,),则执行,for,语句中指定的内嵌语句,然后执行下面第,3,)步;若其值为假(,0,),则结束循环,转到第,5,)步。,3),求解表达式,3,。,4),转回上面第,2,)步继续执行。,5),循环结束,执行,for,语句下面的一个语句,37,ppt课件完整,4、for语句格式作用:循环执行一段代码它的执行过程如下:3,Sum=0;,for(i=1;i0;i-),/,空语句,想想这段代码有什么用,38,ppt课件完整,Sum=0;例子:int i;38ppt课件完整,附:,for,循环的嵌套,main(),int i,j,k;,for(i=0;i2;i+),fo
展开阅读全文