第4章C511学时.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C511 学时
- 资源描述:
-
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第4章 C51程序设计入门,*C51的基本数据类型,*C51数据的存储类型,*,C51的运算符,*数组,*C51的程序的结构,*程序的流程控制,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,C-51简介,C语言特点,:,本身不依赖于机器硬件系统;,基本上不作修改就可互相移植;,提供数学函数、支持浮点运算;,增加程序可读性和可维护性。,MCS-51单片机的C语言要采用C51编译器,目前最常用的是,Keil C51,。,C源程序,C51编译器,L51(或BL51)连接/定位,生成.HEX,目标程序,流程,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,(5)具有方便的模块化编程技术,,使程序很容易移植。,C51优点,(1)对指令系统不必深入了解,,但对存贮器空间结构需深入了解;,(2)寄存器分配、不同存贮器的寻址等细节,可由编译器管理;,(3)程序有规范的结构,可分解成各种子函数,,有利于程序的结构化;,(4)库文件中包含许多标准函数,,具有较强的数据处理能力;,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,类型,符号,关键字,所占位数,数的表示范围,整,型,有,(signed)int,16,-32768,32767,有,(signed)long int,32,-2147483648,2147483647,无,unsigned int,16,0,65535,有,unsigned long int,32,0,4294967295,实,型,有,float,32,3.4e-38,3.4e38,无,double,64,1.7e-308,1.7e308,字符,型,有,char,8,-128,127,无,unsigned char,8,0,255,位型,无,bit,1,0或1,4.1 C51的基本数据类型,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,4.2 C51数据的存储类型,数组型 指针型,名,存储空间位置,位数,范围,说 明,data,直接寻址片内,RAM,8,0,127,片内RAM 00-7FH的128个字节,访问速度最快,bdata,可位寻址片内,RAM,1,0/1,位寻址片内RAM20,2FH,位与字节可混合访问,idata,间接寻址片内,RAM,8,0,255,00-FFH的128个片内RAM,及52子系列的高128字节内部RAM。访问方式:,MOV A,Ri,pdata,片外页,RAM,8,0,255,寻址片外RAM 低256字节,由,MOVX A,Ri,访问,xdata,片外RAM,16,0,65535,片外RAM全部64KB,由,MOVX A,DPTR,访问,code,程序,ROM,16,0,65535,ROM区全部64KB,由,MOVC A,A+DPTR,访问,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,四川省精品课,单片机原理与应用,自增、自减运算符,自增运算符;-自减运算符。,j+表示先取值,后加1。相当于jj1;,J-表示先取值,后减1。相当于jj-1;,复合运算符,a+=b;等价于aa+b,x*=a+b;等价于xx*(a+b),a 等价于aa&b,相当于第1个变量的值等于把等号去掉的运算。,4.4 数组,一维数组的定义,数据类型 数组名常量表达式;,例:,unsitned int a10;,它表示定义一个无符号整形数组名为a,此数组有10个元素。,四川省精品课,单片机原理与应用,说明:,1),数组名后是用方括弧括起来的常量表达式,不能用圆括弧。下面用法不对:int a(10);,2)常量表达式表示元素的个数,即数组长度。,例,在a10中,10表示a数组有10个元素,下标从0开始,a0,a1,a9。,注意不能使用数组元素a10;,3)常量表达式中可以包括常量和符号常量,不能包含变量。也就是说,C51不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。,例:unsigned char i;unsigned char i=10;,ai;,错误,定义,ai;,正确定义,四川省精品课,单片机原理与应用,一维数组的初始化,对数组元素的初始化可以用以下方法实现:,1)在定义数组时对数组元素赋以初值。例:,int a10=0,1,2,3,4,5,6,7,8,9;,2)可以只给一部分元素赋值。,例:,int a10=0,1,2,3,4;,定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0。,四川省精品课,单片机原理与应用,3)如果想使一个数组中全部元素值为0,可以写成,int a10=0,0,0,0,0,0,0,0,0,0;,不能写成,int a10=0*10;,4)对全部数组元素赋初值时,可以不指定数组长度。,例:,int a5=1,2,3,4,5;,可以写成,int a=1,2,3,4,5,四川省精品课,单片机原理与应用,一维数组元素的引用,数组必须先定义,后使用。C51语言规定只能逐个引用数组元素而不能一次引用整个数组。,数组元素的表示形式为:,数组名下标,下标可以是整型常量或整型表达式。例如:,a0=a5+a7-a2*3,四川省精品课,单片机原理与应用,*二维数组的定义,二维数组定义的一般形式为,数据类型 数组名常量表达式常量表达式,例:,float a34,b510;,不能写成,float a3,4,b5,10;,二维数组赋初值:,int key23=1,2,4,2,2,1;,四川省精品课,单片机原理与应用,二维数组元素的引用,形式为:,数组名行下标表达式列下标表达式,1),“行下标表达式”和“列下标表达式”的值,都应在已定义数组大小的范围内。假设有数组x34,则可用的行下标范围为02,列下标范围为03。,2),对基本数据类型的变量所能进行的操作,也都适合于相同数据类型的二维数组元素。,字符数组,用来存放字符量的数组称为字符数组。,字符数组类型说明的形式与前面介绍的数值数组相同。,例如:,char c5=H,E,L,L,O;字符数组,char c6=HELLO;字符,串,数组,*实际上是以上字符的 ASCII码。,*,0为字符串的结束标志,字符串数组会自动加上。,4.7 C51的程序设计,4.7.1 C51程序结构,常用C51的,头文件:,reg51.h,(定义特殊功能寄存器等);,math.h,(数学函数);,ctype.h,(字符函数);,stdio.h,(一般IO函数);,stdlib.h,(标准函数);,absacc.h,(绝对地址访问);,string.h,(串函数),.,func1(),局部变量定义,funcN(),局部变量定义,main(),局部变量定义,包含,函数类型说明,全程变量定义,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,4.7.2 C51流程控制,1.选择语句if,if(,表达式,),语句,;,例:if(p1!=0),c=30;,if(,条件表达式,),语句,1;,else,语句,2;,例:if(a=b),a+;,else,a-;,当 a 等于 b 时,,a=a+1,,否则 a=a-1,if(,表达式,1),语句,1;,else if(,表达式,2),语句,2;,else if(,表达式,3),语句,3;,else if(,表达式,m),语句,m;,else,语句,n;,注:语句中为单一语句,,可以不用花括弧。,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,switch(表达式),case 常量表达式1:语句1;break;,case 常量表达式2:语句2;break;,case 常量表达式3:语句3;break;,case 常量表达式n:语句n;break;,default:语句n+1;,例:,switch(k),case 0:x=1;break;,case 2:c=6;b=5;break;,case 3:x=12;break;,default:break;,2.switch/case语句,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,3.,while,语句,while(,条件表达式真,),语句,;,while(P0!=0),x=P0;,先判断,后循环,例,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,do,语句,;,while(,条件表达式真,);,int sum=0,i;,do,sum=sum+i;,i+;,while(i=10),先循环,后判断,例,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,4.for语句,for(初值设定表达式;循环条件表达式;条件更新表达式),循环语句;,例:,int i,sum=0;,for(i=0;i=10;i+),sum=sum+i;,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,4.8 函数的定义与调用,函数是语句块的一种封装,可以在程序中多次使用。函数与“子程序”或“过程”是同样的事情。函数用来将一个程序的操作元素分成多个基本部分。这样使程序员可以调试某个元素,然后反复使用。,从用户的角度看C语言有两种函数:标准库函数和用户自定义的函数。标准库函数是c编译器提供的,不需要用户进行定义,可以直接调用。,函数的一个主要优点就是可以作为库的扩展。它还可在其它程序中重复使用。这样可以节省时间,便于合作。,自定义函数的一般形式为:,函数类型 函数名(形式参数表),局部变量定义;,函数体语句;,函数类型:,说明了所定义函数返回值的类型。如函数不需要返回值可以写作“void”。,形式参数:,是指调用函数时要传入到函数体内参与运算的变量,它可以有一个、几个或没有,当不需要形式参数时,括号内可以为空或写入“void”。,函数体:,可包含有局部变量的定义和程序语句,如函数要返回运算值则要使用return 语句进行返回。,void delayms(uint x),unsigned char j;,while(x-),for(j=0;j123;j+);,例:延时ms的函数,/*-,功能:毫秒延时函数,参数:当晶振为11.0592MHz时,x为ms数,误差都为16us;,如:x1000为1秒,-*/,void delayms(uint x),uchar j;,while(x-),for(j=0;j123;j+),;,函数调用,函数名(实际参数表),函数名:,指被调用的函数。,实际参数表:,可以为零或多个参数,多个参数时要用逗号隔开,每个参数的类型、位置应与函数定义时所的形式参数一一对应,它的作用就是把参数传到被调用函数中的形式参数,,例:调用“延时ms函数”,delayms(1000);/延时1s,再见,四川省精品课,单片机原理与应用,西华大学,机械工程与,自动化学院,黄惟公,教授编,展开阅读全文

咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
咨信网小贴示:
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


第4章C511学时.ppt
















自信AI助手














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/13204600.html