C语言编程基础.pptx

上传人:莉*** 文档编号:73646105 上传时间:2023-02-21 格式:PPTX 页数:77 大小:517.57KB
返回 下载 相关 举报
C语言编程基础.pptx_第1页
第1页 / 共77页
C语言编程基础.pptx_第2页
第2页 / 共77页
点击查看更多>>
资源描述

《C语言编程基础.pptx》由会员分享,可在线阅读,更多相关《C语言编程基础.pptx(77页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1 1)机器语言)机器语言定义:处理器能直接执行的二进制代码定义:处理器能直接执行的二进制代码特点:效率高、但不易于使用特点:效率高、但不易于使用10110110 00000000 10110101 00000000ADD AADD A,#19#193.1 3.1 编程语言编程语言Keil C51Keil C51简介简介1、编程语言、编程语言2 2)汇编语言)汇编语言 定义:以助记符的形式表示机器语言定义:以助记符的形式表示机器语言 特点:速度快、体积小、但依赖于硬件体系特点:速度快、体积小、但依赖于硬件体系第1页/共77页3)高级语言)高级语言独立于机器、面向过程的、接近于人的自然语言。独立

2、于机器、面向过程的、接近于人的自然语言。语言:语言:FORTRAN、C语言语言特点:与硬件无关、易于交流和使用、运行效率低特点:与硬件无关、易于交流和使用、运行效率低X=X+1;X=X+1;编译器链接器X=X+1;程序员1001001010110010高级语言程序机器码单片机如何执行程序指令?单片机如何执行程序指令?第2页/共77页Keil C51Keil C51语言是在标准语言是在标准C C的基础上,针对的基础上,针对5151单片机的硬件特点进行单片机的硬件特点进行扩展,并向扩展,并向5151单片机上移植的高效、简洁的实用高级语言。单片机上移植的高效、简洁的实用高级语言。与汇编语言相比的特点

3、:与汇编语言相比的特点:(1)可读性好)可读性好。(2)可模块化开发。)可模块化开发。(3)可移植性好。)可移植性好。(4)生成的代码效率较低。)生成的代码效率较低。2 2、Keil C51Keil C51语言简介语言简介对于对于5151单片机,目前广泛使用的是单片机,目前广泛使用的是Keil C51Keil C51语言,简称语言,简称C51C51语言。语言。第3页/共77页3 3、C51C51与标准与标准C C的区别的区别(1 1)库函数的不同。库函数的不同。例如库函数例如库函数printfprintf和和scanfscanf,在标准,在标准C C中,这中,这两个函数通常用于屏幕打印和接收字

4、符,而在两个函数通常用于屏幕打印和接收字符,而在Keil C51Keil C51中,主要用中,主要用于串行口数据的收发。于串行口数据的收发。(3 3)C51C51的变量存储模式与标准的变量存储模式与标准C C中的变量存储模式不一样。中的变量存储模式不一样。标准标准C C是在通用计算机中只有一个程序和数据统一寻址的内存空间。是在通用计算机中只有一个程序和数据统一寻址的内存空间。5151单片机存储区可分为内部数据存储区、外部数据存储区以及程序单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区。存储区。(4 4)标准标准C C语言没有处理单片机中断的方法。语言没有处理单片机中断的方法。C

5、51C51中有专门处理中断的中断函数。中有专门处理中断的中断函数。(2 2)数据类型有一定的区别。数据类型有一定的区别。在标准在标准C C的基础上又扩展了的基础上又扩展了4 4种类型。种类型。第4页/共77页(5 5)头文件的不同。头文件的不同。5151头文件把单片机内部的硬件资源如定时器、中断、头文件把单片机内部的硬件资源如定时器、中断、I/OI/O等所相等所相应的功能寄存器写入头文件内。应的功能寄存器写入头文件内。(6 6)程序结构的差异。程序结构的差异。由于由于5151单片机硬件资源有限,编译系统不允许太多的程序嵌套。单片机硬件资源有限,编译系统不允许太多的程序嵌套。其次,其次,C51C

6、51语言不支持标准语言不支持标准C C的递归特性。的递归特性。4 4、Keil C51Keil C51的开发工具的开发工具Keil Keil Vision3Vision3Keil Keil Vision3Vision3是德国是德国Keil softwareKeil software公司开发的公司开发的C51C51语言开发软件。语言开发软件。这个软件集成了文件编辑处理、编译链接等功能。这个软件集成了文件编辑处理、编译链接等功能。第5页/共77页3.2 C513.2 C51语言程序设计基础语言程序设计基础1 1、数据类型与存储类型、数据类型与存储类型1 1)数数据据类类型型第6页/共77页2)C5

7、1扩展的数据类型(扩展的数据类型(4种扩展的数据类型)种扩展的数据类型)(1 1)位变量)位变量bitbit bit bit的值可以是的值可以是1 1(truetrue),或),或0 0(falsefalse)。)。bit bit 变量名;变量名;格式:格式:例如:例如:bit flag;bit flag;flag=0flag=0;第7页/共77页(2 2)特殊功能寄存器)特殊功能寄存器sfrsfr 地址单元地址单元80H80HFFHFFH之间的片内数据存储区;之间的片内数据存储区;“sfrsfr”数据类型占用一个内存单元;数据类型占用一个内存单元;利用它可以访问利用它可以访问5151单片机内

8、部的所有特殊功能寄存器。单片机内部的所有特殊功能寄存器。sfr P1=0 x90sfr P1=0 x90;/定义了定义了P1P1为片内的为片内的P1P1口寄存器;口寄存器;P1 =0 xffP1 =0 xff;/把把P1P1口的所有输出引脚设置为高电平。口的所有输出引脚设置为高电平。例如:例如:sfr sfr 寄存器变量名寄存器变量名 =字节地址常数;字节地址常数;格式:格式:第8页/共77页sfr SBUF=0 x99sfr SBUF=0 x99;习题:习题:往串行发送数据缓冲寄存器往串行发送数据缓冲寄存器SBUF写入写入80SBUF=80SBUF=80;习题:习题:从从P0口寄存器读取数据

9、,存放到任意一个变量口寄存器读取数据,存放到任意一个变量X。sfr P0=0 x80sfr P0=0 x80;int xint x;x=P0 x=P0;第9页/共77页例如:例如:(3 3)特殊功能寄存器)特殊功能寄存器sfr16sfr16“sfr16sfr16”数据类型占两个内存单元;数据类型占两个内存单元;用于操作占两个字节的特殊功能寄存器。用于操作占两个字节的特殊功能寄存器。sfr16 DPTR=0 x82sfr16 DPTR=0 x82;/定义了片内定义了片内1616位数据指针寄存器位数据指针寄存器DPTRDPTR,/低低8 8位字节地址为位字节地址为82H82H,/高高8 8位字节地

10、址为位字节地址为83H83H。DPTR=0 x1234;DPTR=0 x1234;sfr16 sfr16 寄存器变量名寄存器变量名 =字节地址常数;字节地址常数;格式:格式:字节地址为字节地址为82H、83H存放的数据分别是多少?存放的数据分别是多少?第10页/共77页(4 4)特殊功能位)特殊功能位 sbitsbit 片内特殊功能寄存器的可寻址位。片内特殊功能寄存器的可寻址位。“”前是特殊功能寄存器的名字;前是特殊功能寄存器的名字;“”的后面数字是特殊功能寄存器可寻址位在寄存器中的位置,的后面数字是特殊功能寄存器可寻址位在寄存器中的位置,取值必须是取值必须是0-70-7。sbit sbit

11、位变量名位变量名 =特殊功能寄存器特殊功能寄存器 位位置;位位置;格式:格式:sfr PSW =0 xd0sfr PSW =0 xd0;/定义定义PSWPSW寄存器地址为寄存器地址为0 xd00 xd0sbit FO =PSW 5 sbit FO =PSW 5;/定义定义F0F0位为位为PSW.5PSW.5F0=0;F0=0;例如:例如:第11页/共77页习题:片内习题:片内I/OI/O口口P1P1口的口的P1.0P1.0寻址位置成高电平寻址位置成高电平 sfr sfr P1 =0 x90 P1 =0 x90;sbit P1_0=P10sbit P1_0=P10;P1_0 =1P1_0 =1;

12、习题:习题:从从P2口的口的P2.7读取数据,存放到任意一个位变量读取数据,存放到任意一个位变量X。sfr sfr P2 =0 xA0 P2 =0 xA0;sbit P2_7=P27sbit P2_7=P27;bit xbit x;x=P2_7x=P2_7;第12页/共77页sbit sbit 位变量名位变量名=位地址常数;位地址常数;sbit CY =0 xD7sbit CY =0 xD7;/*CY/*CY位地址为位地址为0 xD7*/0 xD7*/sbit OV =0 xD2sbit OV =0 xD2;/*OV/*OV位地址为位地址为0 xD2*/0 xD2*/ifif(CY=1CY=1

13、)例如:例如:格式:格式:第13页/共77页习题:片内习题:片内I/OI/O口口P1P1口的口的P1.0P1.0寻址位置成低电平寻址位置成低电平sbit P1_0 =0 x90sbit P1_0 =0 x90;P1_0 =0P1_0 =0;在头文件在头文件AT89X51.hAT89X51.h中定义了常用的特殊功能寄存器和可寻址位。中定义了常用的特殊功能寄存器和可寻址位。#include#include sfr sfr P1 =0 x90 P1 =0 x90;sbit P1_0=0 x90sbit P1_0=0 x90;两者区别?两者区别?6第14页/共77页3 3)数据存储类型)数据存储类型数

14、据存储类型是指数据存放在数据存储类型是指数据存放在5151单片机的哪一个存储器空间。单片机的哪一个存储器空间。第15页/共77页bdatadataidatapdataxdatacode第16页/共77页(1 1)DATADATA区。区。DATADATA区指片内区指片内RAMRAM的低的低128128字节的空间,可直接寻址;字节的空间,可直接寻址;寻址是最快的,应该把经常使用的变量放在寻址是最快的,应该把经常使用的变量放在DATADATA区。区。unsigned char unsigned char datadata system_status=0;system_status=0;unsigne

15、d int unsigned int datadata unit_id8;unit_id8;例如:例如:格式:数据类型【存储类型】变量名;第17页/共77页(2 2)BDATABDATA区。区。BDATABDATA区是内部区是内部RAMRAM可位寻址的可位寻址的1616字节存储区(字节地址为字节存储区(字节地址为20H20H 2FH2FH)中的)中的128128个位。个位。在这个区中声明变量就可进行位寻址。在这个区中声明变量就可进行位寻址。例如:例如:unsigned char bdata status_byte;unsigned int bdata status_word;sbit stat

16、_flag=status_byte4;if(status_word15 )stat_flag=1;第18页/共77页(3 3)IDATAIDATA区。区。IDATAIDATA区是片内区是片内RAMRAM的的0-2560-256字节的存储区,只能间接寻址,字节的存储区,只能间接寻址,速度比直接寻址慢。速度比直接寻址慢。unsigned char idata system_status=0;float idata value;例如:例如:第19页/共77页(4 4)PDATAPDATA区和区和XDATAXDATA区。区。PDATAPDATA区和区和XDATAXDATA区位于片外存储区;区位于片外存

17、储区;PDATAPDATA区指的是外部数据存储区区指的是外部数据存储区0 0256256字节。字节。XDATAXDATA区指的是外部数据区区指的是外部数据区64KB64KB内的任何地址。内的任何地址。unsigned char xdata system_status=0;unsigned int pdata unit_id8;例如:例如:第20页/共77页(5 5)程序存储区)程序存储区CODECODE。CODECODE区是程序存储区,储存的数据是不可改变的。区是程序存储区,储存的数据是不可改变的。unsigned char unsigned char codecode a9 a9=0 x00

18、,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,0 x08;=0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,0 x08;例如:例如:第21页/共77页4 4)数据存储器模式)数据存储器模式C51C51编译器设定的存储器模式:编译器设定的存储器模式:SMALLSMALL、COMPACTCOMPACT和和LARGELARGE三种模式。三种模式。若声明若声明 char var1char var1;在在SMALLSMALL模式下,模式下,var1var1被定位在被定位在datadata存储区;存储区;在在COMPA

19、CTCOMPACT模式下,模式下,var1var1被定位在被定位在idataidata存储区;存储区;在在LARGELARGE模式下,模式下,var1var1被定位在被定位在xdataxdata存储区中。存储区中。第22页/共77页2 2、C51C51语言的绝对地址访问语言的绝对地址访问C51C51语言提供了两种比较常用的访问绝对地址的方法,语言提供了两种比较常用的访问绝对地址的方法,对片内对片内RAMRAM、片外、片外RAMRAM及及I/OI/O进行访问。进行访问。绝对地址绝对地址第23页/共77页1)绝对宏)绝对宏C51编译器提供了一组宏定义对编译器提供了一组宏定义对code、data、p

20、data和和xdata空间空间进行绝对寻址。这组宏定义放在进行绝对寻址。这组宏定义放在absacc.h头文件中:头文件中:CBYTE 以字节形式对以字节形式对code区寻址;区寻址;CWORD 以字形式对以字形式对code区寻址;区寻址;DBYTE 以字节形式对以字节形式对data区寻址;区寻址;DWORD 以字形式对以字形式对data区寻址;区寻址;XBYTE 以字节形式对以字节形式对xdata区寻址;区寻址;XWORD 以字形式对以字形式对xdata区寻址;区寻址;PBYTE 以字节形式对以字节形式对pdata区寻址;区寻址;PWORD 以字形式对以字形式对pdata区寻址。区寻址。#de

21、fine#define 变量名变量名 绝对宏绝对宏 字节地址字节地址 格式格式绝对宏绝对宏第24页/共77页【例例】片内片内RAMRAM、片外、片外RAMRAM定义的程序如下:定义的程序如下:#include#include#define PORTE XBYTE0 xFFC0#define PORTE XBYTE0 xFFC0/*/*将将PORTEPORTE定义为外部定义为外部I/OI/O,地址为地址为0 xFFC0*/0 xFFC0*/#define NRAM DBYTE0 x40#define NRAM DBYTE0 x40/*/*将将NRAMNRAM定义为片内定义为片内RAMRAM,地址

22、为地址为0 x40*/0 x40*/main()main()PORTE=0 x3D;PORTE=0 x3D;NRAM=0 x01;NRAM=0 x01;/*/*数据数据3DH3DH写入地址写入地址0 xFFC00 xFFC0的外部的外部I/O I/O PORTE*/PORTE*/*/*将数据将数据01H01H写入片内写入片内RAMRAM的的40H40H单元单元*/第25页/共77页习题习题 使用绝对宏使用绝对宏将片将片内内RAM 20HRAM 20H的字节地址单元全部置的字节地址单元全部置1 1。#include#include#define M DBYTE0 x0020#define M D

23、BYTE0 x0020/*/*将将M M定义为外部定义为外部RAMRAM,地址为地址为0 x0020*/0 x0020*/main()main()M=0 xff;M=0 xff;第26页/共77页习题:习题:使用绝对宏读取片外使用绝对宏读取片外RAM F000HRAM F000H字节地址单元的内容。字节地址单元的内容。#include#include#define WRAM XBYTE0 xF000#define WRAM XBYTE0 xF000 main()main()char x char x;x=WRAM;x=WRAM;7第27页/共77页2 2)_at_at_关键字关键字使用关键字使

24、用关键字_at_at_可对指定的存储器空间的绝对地址进行访问。可对指定的存储器空间的绝对地址进行访问。格式:格式:存储类型存储类型 数据类型数据类型 变量名变量名 _at_ _at_ 地址常数;地址常数;地址常数:指定变量的绝对地址,位于存储器空间之内;地址常数:指定变量的绝对地址,位于存储器空间之内;使用使用_at_at_定义的变量必须为全局变量。定义的变量必须为全局变量。第28页/共77页【例例】使用关键字使用关键字_at_at_实现绝对地址的访问。实现绝对地址的访问。data unsigned char y1 _at_ 0 x50;/*data unsigned char y1 _at_

25、 0 x50;/*在在data data 区定义字节变量区定义字节变量 y1y1,地址为,地址为50H*/50H*/xdata unsigned int y2 _at_ 0 x4000;/*xdata unsigned int y2 _at_ 0 x4000;/*在在xdataxdata区定义字变量区定义字变量 y2y2,地址为,地址为4000H*/4000H*/void main(void)void main(void)y1=0 xff;y1=0 xff;y2=0 x1234;y2=0 x1234;while(1);while(1);第29页/共77页习题:使用习题:使用关键字关键字_at_

26、at_读取片内读取片内RAM 60HRAM 60H单元的内容。单元的内容。data unsigned char M _at_ 0 x60;data unsigned char M _at_ 0 x60;void main(void)void main(void)unsigned char y;unsigned char y;y=M y=M;第30页/共77页【例例】使用关键字使用关键字_at_at_将片外将片外RAM 2000HRAM 2000H开始的连续开始的连续2020个字节单元清个字节单元清0 0。void main(void)void main(void)unsigned char i

27、;unsigned char i;for(i=0;i20;i+)for(i=0;i20;i+)bufferi=0 bufferi=0;xdata unsigned char buffer20 _at_ 0 x2000;xdata unsigned char buffer20 _at_ 0 x2000;第31页/共77页data unsigned char buffer8 _at_ 0 x40;data unsigned char buffer8 _at_ 0 x40;void main(void)void main(void)unsigned char j;unsigned char j;fo

28、r(j=0;j8;j+)for(j=0;j y;R=x y;第34页/共77页3 3)逻辑运算符)逻辑运算符逻辑表达式逻辑表达式int x=0;int x=0;int y=1;int y=1;int R;int R;R=x&y;R=x&y;第35页/共77页4)位运算符)位运算符01001000 01001000&11111111 1111111100001000 00001000 2 201001001 01001001|11111111 11111111第36页/共77页01001000 01001000&00110111 0011011101000000 01000000|1111111

29、1 1111111100001000 00001000 y)max=x;if(xy)max=x;比较变量比较变量x x和变量和变量y y,如果,如果xyxy,则把,则把 x x 赋给变量赋给变量maxmax。习题:比较变量习题:比较变量x x和变量和变量y y,如果,如果x x和和y y相等,则把相等,则把0 0赋给变量赋给变量maxmax。if(x=y)max=0;if(x=y)max=0;第42页/共77页格式:格式:if(if(表达式表达式)语句语句1 1;else else 语句语句2 2;第43页/共77页if(xy)max=x;else max=y;比较变量比较变量x x和变量和变

30、量y y,如果如果xyxy,则把则把 x x 赋给变量赋给变量maxmax;否则把否则把 y y 赋给变量赋给变量maxmax。第44页/共77页习题:比较变量习题:比较变量x x和变量和变量y y,把二者最小值赋给变量,把二者最小值赋给变量minmin;if(xy)min=y;else min=x;第45页/共77页习题:如果变量习题:如果变量x x满足关系满足关系10 x2010 x10)&(x10)&(x20))y=1 y=1;else else y=0;y=0;9第46页/共77页void main()void main()sfr P2=0 xA0 sfr P2=0 xA0;sfr P

31、1=0 x90sfr P1=0 x90;sbit P24=P24sbit P24=P24;sbit P10=P10sbit P10=P10;习题:如果读取习题:如果读取P2P2口的口的P2.4P2.4位为位为1 1,则把,则把P1P1口的口的P1.0P1.0置成置成0 0。if(P24=1)if(P24=1)P10=0 P10=0;第47页/共77页if(if(表达式表达式1)1)语句语句1 1;else if(else if(表达式表达式2)2)语句语句2 2;else if(else if(表达式表达式n)n)语句语句n n;else else 语句语句n+1n+1;多分支多分支ifif语

32、句语句0表达式1 表达式2 表达式n语句n+100语句n 语句2 语句1 非0 非0 非0 第48页/共77页当成绩当成绩9090时,时,输出输出verygoodverygood,当当8080成绩成绩9090时,时,输出输出goodgood,当当6060成绩成绩8080时,时,输出输出passpass,当成绩当成绩60=90)printf(if(score=90)printf(“very good);very good);else if(score=80)printf(else if(score=80)printf(“good);good);else if(score=60)printf(el

33、se if(score=60)printf(“pass);pass);else printf(else printf(“fail);fail);第49页/共77页多分支多分支switchswitch语句语句switch (switch (表达式表达式1)1)case case 常量表达式常量表达式1 1:语句语句1 1;break break;case case 常量表达式常量表达式2 2:语句语句2 2;break break;case case 常量表达式常量表达式n n:语句语句n n;break break;defaultdefault:语句语句n+1n+1;格式:格式:第50页/共7

34、7页switchswitch表达式表达式1 1语句语句1 1语句语句2 2语句语句n n语句语句n+1n+1式式1 1式式2 2式式n ndefaultdefaultcasecase 第51页/共77页switch(key)switch(key)case 1case 1:y=1y=1;breakbreak;case 2case 2:y=2;breaky=2;break;case 3case 3:y=4y=4;breakbreak;defaultdefault:;在单片机程序设计中,常用在单片机程序设计中,常用switchswitch语句作为键盘中按键的判别。语句作为键盘中按键的判别。当按下键的

35、键号变量当按下键的键号变量key=1key=1,则变量,则变量y=1y=1;键号变量键号变量key=2key=2,则变量,则变量y=2y=2;键号变量键号变量key=4key=4,则变量,则变量y=3y=3;没有按下键,没有按下键,则变量则变量y y不变。不变。第52页/共77页key=2;key=2;switch(key)switch(key)case 1case 1:y=1y=1;case 2case 2:y=2;y=2;case 3case 3:y=4y=4;defaultdefault:;习题:读程序执行的结果习题:读程序执行的结果 y=y=?第53页/共77页2 2)循环结构控制语句

36、)循环结构控制语句whilewhile(表达式)(表达式)循环体;循环体;格式:格式:表达式循环体假(0)真(非0)先判断表达式,后执行循环体。whilewhile语句语句第54页/共77页main()main()int i=0;int i=0;int r;int r;while while(i3i3)i+i+;y=i;y=i;i+i+执行几次?执行几次?y=y=?r=3r=3习题:读程序执行的结果习题:读程序执行的结果 y=y=?第55页/共77页main()main()int i=3;int i=3;int r;int r;while while(i6i6)i+i+;y=i;y=i;y=y

37、=?习题:读程序执行的结果习题:读程序执行的结果 y=y=?第56页/共77页dodo 循环体;循环体;whilewhile(表达式);(表达式);格式:格式:表达式循环体假(0)真(非0);不可省略!不可省略!切记!切记!先执行循环体,后判断表达式。do-whiledo-while语句语句第57页/共77页main()main()int i=0;int i=0;int y;int y;do do i+i+;while(i3);while(i3);y=i;y=i;i+i+执行几次?执行几次?y=y=?习题:读程序执行的结果习题:读程序执行的结果 y=y=?第58页/共77页main()main

38、()int i=0;int i=0;int y=0;int y=0;do do i+i+;y=y+i;y=y+i;while(y20);while(y20);习题:读程序执行的结果习题:读程序执行的结果 y=y=?第59页/共77页forfor(表达式(表达式1 1;表达式;表达式2 2;表达式;表达式3 3)语句;语句;格式:格式:forfor语句语句第60页/共77页main()main()int i,y;int i,y;y=0;y=0;for(i=1;i4;i+)for(i=1;i4;i+)y=y+i y=y+i;y =y =?习题:读程序执行的结果习题:读程序执行的结果 y=y=?第6

39、1页/共77页main()main()int i,y;int i,y;y=1;y=1;for(i=2;i6;i+)for(i=2;i6;i+)y=y+i y=y+i;y =y =?习题:读程序执行的结果习题:读程序执行的结果 y=y=?第62页/共77页3 3)breakbreak语句和语句和continuecontinue语句语句breakbreak功能:功能:跳出跳出switchswitch结构;结构;在循环语句中在循环语句中,终止并跳出终止并跳出本层本层循环。循环。continuecontinue功能:功能:结束本次循环,跳过本层循环体中尚未执行的语句,结束本次循环,跳过本层循环体中尚未

40、执行的语句,执行循环体的判断。执行循环体的判断。第63页/共77页#define PI 3.1415main()int r;float area;for(r=1;r100)break;printf(r=%d,area=%.2fn,r,area);计算计算r=1r=1到到r=10r=10的圆面积,直到面积大于的圆面积,直到面积大于100100时停止。时停止。运行结果:r=1,area=3.14r=2,area=12.57r=3,area=28.27r=4,area=50.26r=5,area=78.54结束整个for循环第64页/共77页把把100100200200之间不能被之间不能被3 3整除

41、的数输出整除的数输出 。main()main()int n;int n;for(n=100;n=200;n+)for(n=100;n=200;n+)if(n%3=0)if(n%3=0)continue;continue;printf(printf(“%d ,n);%d ,n);结束本次循环,循环体的剩余语句被忽略,执行表达式3,进入下一循环。第65页/共77页main()int n;for(n=100;n=200;n+)if(n%3=0)break;printf(“%d ,n);习题:读程序执行的结果?习题:读程序执行的结果?第66页/共77页习题:循环检测习题:循环检测P1.0P1.0引脚,

42、只有检测引脚,只有检测P1.0P1.0为低电平时,循环结束。为低电平时,循环结束。sfr P1=0 x90;sbit P10=P10;main()while(1)if(P10=0)break;第67页/共77页5 5、数组、数组数组是用来存储一组相同数据类型的数据结构。数组是用来存储一组相同数据类型的数据结构。一维数组格式:一维数组格式:数据类型数据类型变量名变量名 N;int a 10;int a5=1,2,3,4,5 int a5=1,2,3,4,5;初始化:初始化:char b 10;第68页/共77页求下列数组的和。求下列数组的和。int a5=1,2,3,4,5 int a5=1,2

43、,3,4,5;main()main()int a5=1,2,3,4,5;int a5=1,2,3,4,5;int i,sum;int i,sum;sum=0;sum=0;for(i=0;i5;i+)for(i=0;i5;i+)sum=sum+ai sum=sum+ai;第69页/共77页习题:求数组习题:求数组a5a5中能被中能被2 2整除的数的和。整除的数的和。int a5=10,2,33,54,15 int a5=10,2,33,54,15;main()main()int a5=1,2,3,4,5;int a5=1,2,3,4,5;int i,sum;int i,sum;sum=0;sum

44、=0;for(i=0;i5;i+)for(i=0;i5;i+)if(sumi%2=0)if(sumi%2=0)sum=sum+ai sum=sum+ai;第70页/共77页二维数组格式:二维数组格式:数据类型数据类型变量名变量名 N M;int a32;int a32=1,2,3,4,5,6 ;行数行数列数列数求下列数组的和。求下列数组的和。第71页/共77页main()main()int a32=1,2,3,4,5,6;int a32=1,2,3,4,5,6;int i,j,sum;int i,j,sum;sum=0;sum=0;for(i=0;i3;i+)for(i=0;i3;i+)for

45、(j=0;j2;j+)for(j=0;j2;j+)sum=sum+aij sum=sum+aij;int a32=1,2,3,4,5,6;求下列数组的和。求下列数组的和。第72页/共77页6 6、C51C51语言的中断函数语言的中断函数函数是一个完成某个相关功能的代码段;函数是一个完成某个相关功能的代码段;C51程序只有一个主函数程序只有一个主函数main(),并且从主函数函数开始运行;(),并且从主函数函数开始运行;中断服务函数中断服务函数格式:格式:函数类型函数类型 函数名()函数名()interrupt n using ninterrupt ninterrupt n:表示中断号,:表示中

46、断号,n n的值为的值为0 0 4 4;using nusing n:表示寄存器组号,:表示寄存器组号,n n的值为的值为0 0 3 3;第73页/共77页作业:作业:6 6、编程实现,、编程实现,P1P1口各引脚输出高电平。口各引脚输出高电平。7 7、用两种方法编程实现,、用两种方法编程实现,P2P2口的口的P1.7P1.7位置成高电平。位置成高电平。P67 1,2,3,4P67 1,2,3,48 8、编程实现,如果读取、编程实现,如果读取P0.0P0.0位为位为1 1,则,则P1.0P1.0输出高电平。输出高电平。第74页/共77页main()main()int i=0;int i=0;int y;int y;while while(i6i6)i+i+;y=i;y=i;9 9、读程序执行的结果、读程序执行的结果 y=y=?第75页/共77页main()main()int i,y;int i,y;y=0;y=0;for(i=2;i5;i+)for(i=2;i5;i+)y=y+i y=y+i;1010、读程序执行的结果、读程序执行的结果 y=y=?第76页/共77页谢谢您的观看!第77页/共77页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com