单片机原理及应用 教学课件 ppt 作者 佟云峰 第六章 单片机C语言基础

上传人:E**** 文档编号:89471128 上传时间:2019-05-25 格式:PPT 页数:57 大小:447KB
返回 下载 相关 举报
单片机原理及应用 教学课件 ppt 作者 佟云峰 第六章 单片机C语言基础_第1页
第1页 / 共57页
单片机原理及应用 教学课件 ppt 作者 佟云峰 第六章 单片机C语言基础_第2页
第2页 / 共57页
单片机原理及应用 教学课件 ppt 作者 佟云峰 第六章 单片机C语言基础_第3页
第3页 / 共57页
单片机原理及应用 教学课件 ppt 作者 佟云峰 第六章 单片机C语言基础_第4页
第4页 / 共57页
单片机原理及应用 教学课件 ppt 作者 佟云峰 第六章 单片机C语言基础_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《单片机原理及应用 教学课件 ppt 作者 佟云峰 第六章 单片机C语言基础》由会员分享,可在线阅读,更多相关《单片机原理及应用 教学课件 ppt 作者 佟云峰 第六章 单片机C语言基础(57页珍藏版)》请在金锄头文库上搜索。

1、第6章 单片机C语言设计基础,课程结构,6.1 C语言基本概念概述 6.2 uVision2集成开发环境 6.3 KeilC51软件应用实例,6.1 C语言基本概念,C语言在功能、结构、可读性、可维护性等诸多方面上比汇编语言有明显优势,全Windows界面的KielC51提供丰富的库函数及功能强大的集成开发调试工具,是开发单片机系统的最佳工具。,6.1 C语言基本概念,6.1.1 C程序初步 1、C程序从main开始执行:语句格式Void main(void),其中前一个void,表示无返回值;后一个void,表示不传参数。 2、C程序的变量声明:例如int i ; 其中 int 用以声明整数

2、类型 、i是变量名 、 ; 语句结束符号。 3、C 程序的注释: /*-*/ 4、C语言的数据类型:C语言的数据结构是以数据类型决定的,数据类型可分为基本数据类型和复杂数据类型,复杂数据类型由基本数据类型构成。表6-1列出了KielC51编译器所支持的数据类型。 5、C语言的标识符和关键字:标识符是用来表示源程序中某个对象的名字。这些对象可以是函数、变量、常数、数组、数据类型、存储方式、语句等。关键字是一类具有固定名称和特定含义的特殊标识符。C51编译器除了支持ANSI C标准关键字(共32个)外,还根据8051单片机的特点扩展了表6-3所示的关键字。C语言对大小写字母敏感。C51的关键字 见

3、教材P173-P174表6-2和表6-3.,6.1 C语言基本概念,6.1 C语言基本概念,6.1.2 C 语言的运算符 运算符就是完成某种特定运算的符号,由运算符和运算对象可组成具有特点含义的表达式。C语言对数据有很强的表达能力和丰富的运算符,如教材P174表6-4所示。教材P175表6-5给出了运算符在使用过程中的优先级和结合性。 注意:在逻辑运算中,凡是结果为非“0”的数值即为真,等于“0”为假。,6.1 C语言基本概念,例如: a1; b+ +a; 其运算过程是a值加1变为2,然后再将2赋值给b,所以b2,a2。 a1; ba+ +; 其运算过程是a原先的值1,先赋值给b,然后a再加1

4、变为2,所以b1, a2。,6.1 C语言基本概念,6.1.3 C程序的流程控制 1、if 语句 (1)、 if (条件表达式) 动作 如果条件表达式的值为真(非零的数),则执行 内的动作,如果条件表达式的值为假,则略过该动作而继续往下执行。,6.1 C语言基本概念,例如: 01 void IfDemol(void) 02 03 Byte i,j; 04 05 if ( DispiayState10 ) 06 07 for(i=1;i5;i+ +) 08 09 j=5 * DispiayState; 10 P2=DISPLAY TABLE10 j+i ; 11 P1=0x01 i; 12 De

5、layX1ms(3); 13 14 15 ,6.1 C语言基本概念,(2)、 if (条件表达式) 动作 1 else 动作 2 如果条件表达式为真,则执行动作1,略过else的部分,接着往下执行,如果条件表达式为假,则略过if的部分而执行else的动作2, 然后再往下执行。,6.1 C语言基本概念,例如: 01 void IfDemo2 (void) 02 03 if (LedCount26) 04 LedOn( ); 05 else 06 LedOff( ); 07 ,6.1 C语言基本概念,(3)、 if (条件表达式1) if (条件表达式2) if (条件表达式3) 动作 A els

6、e 动作 B else 动作 C else 动作 D 动作 A:是条件表达式1、2、3都成立时才会执行。 动作 B:是条件表达式1、2成立,但条件表达式3不会成立时才会执行。 动作 C:是条件表达式1成立,条件表达式2不会成立时才会执行。 动作 D:是条件表达式1不成立时才会执行。,6.1 C语言基本概念,例如: 01 void IfDemo2 (void) 02 03 if ( Fgpulse=0 ) 04 05 if ( Pl 7 0 ) 06 07 Fgpulse=1; 08 Ledon( ); 09 10 else,11 12 Fgpulse=0; 13 Ledoff( ); 14 1

7、5 16 else 17 18 if ( p1 7!=0 ) 19 Fgpulse=0; 20 21 ,6.1 C语言基本概念,(4)、 if (条件表达式1) 动作 A else if (条件表达式2) 动作 B else if (条件表达式3) 动作 C else 动作 D 动作 A:是条件表达式1、成立时才会执行。 动作 B:是条件表达式1不成立,但条件表达式2成立时才会执行。 动作 C:是条件表达式1、2不成立,条件表达式3成立时才会执行。 动作 D:是条件表达式1、2、3都不成立时才会执行。,6.1 C语言基本概念,例如: 01 void IfDemo4(void) 02 03 if

8、 ( LedCount6 ) 04 Ledon( ); 05 else if ( LedCount11 ) 06 Ledoff ( ); 07 else if ( LedCount16 ) 08 Ledon( ); 09 else if ( LedCount68 ) 10 Ledoff ( ); 11 else 12 LedCount0; 13 ,6.1 C语言基本概念,(5)、 switch-case语句 switch (条件表达式) case条件值1: 动作1 Break; case条件值2: 动作2 Break; case条件值3: 动作3 Break; case条件值4: 动作4 Br

9、eak; ,6.1 C语言基本概念,Switch内的条件表达式的结果必须为整数或字符。Switch以条件表达式的值来与各case的条件值对比,如果与某个条件值符合,则执行该case的动作,如果所有的条件值都不符合,则执行default的动作,每一个动作之后一定要写break,否则会有错误。另外case之后的条件值必须是数据常数,不能是变量,而且不可以重复,即条件值必须各不同,如果有数种case所做的动作一样时,也可以写在一起,即上下并列。一般当程序必须作多选1时,可以采用switch语句。 break:是跳出循环的指令,任何由switch、for、while、do-while构成的循环,都可以

10、用break来跳出,必须注意的是break一次只能跳出一层循环,通常都和if连用,当某些条件成立后就跳出循环。 default:当所有case的条件值都不成立时,就执行default所指定的动作,作完后也要使用break指令跳出switch循环。,6.1 C语言基本概念,例如: 01 void SwitchDemo(void) 02 03 switch ( OutputState ) 04 05 case 1 : 06 p1_0=0; 07 p1_1=0; 08 p1_2=0; 09 break; 10 case 2 : 11 p1_0=0; 12 p1_1=0; 13 p1_2=0; 14

11、break; 15 defeak: 16 break; 17 18 ,6.1 C语言基本概念,(6)、While 循环语句 While ( 条件表达式 ) 动作 先测试条件表达式是否成立,当条件表达式为真时,则执行循环内动作,做完后又继续眺回条件表达式作测试,如此反复直到条件表达式为假为止,使用时要避免条件永真,造成死循环。,6.1 C语言基本概念,例如: 01 void WhileDemo(void) 02 03 FgpulseShort=0; 04 FgpuiseLong=0; 05 DutyCount=0; 06 07 while ( p1_00 ) /先测试条件表达式,成立后再执行动作

12、 08 09 DelayXlms(1) 10 if ( p1_00 ) 11 DutyCount +; 12 13 14 if ( ( (0+3)DutyCount) & (DutyCount,(10+3) ) ) 15 FgpulseShort=1; 16 else if ( ( (10+3)DutyCount) & (DutyCount,(20+3) ) ) 17 FgpulseLong=1; 18 ,6.1 C语言基本概念,(7)、 do-while循环语句 do 动作 while (条件表达式); 先执行动作后,再测试条件表达式是否成立。当条件表达式为真,则继续回到前面执行动作,如此反

13、复直到条件表达式为假为止,不论条件表达式的结果为何,至少会做一次动作,使用时要避免条件永真,造成死循环。,6.1 C语言基本概念,例如: 01 void WhileDemo(void) 02 03 Byte i=0,j,k; 04 Byte SoundLong,SoundTone; 05 Word m; 06 07 do /先执行动作后 08 09 SoundLong=MUSIC_SOUNDLONG1i; 10 SoundTone=MUSIC_SOUNDTONE1i; 11 i+ +; 12 13 for(j=0;jSoundLong;j+ +) /sound long,14 15 for(k

14、=0;k12;k+ +) 16 17 for(m=0;mSoundTone*1;m+ +) 18 p1_0=0; 19 for(m=0;mSoundTone*1;m+ +) 20 p1_0=0; 21 22 23 Deiay50us(6); 24 25 while (MUSIC_SOUNDTONE1i!=0x00 );/最后再测试条件表达式是否成立 26 ,6.1 C语言基本概念,(8)、for 循环语句 for (表达式1;表达式2;表达式3;) 动作 表达式1:通常是设定起始值。 表达式2:通常是条件判断式,如果条件为真时,则执行动作,否则终止循环。 表达式3:通常是步长表达式,执行动作完

15、成后,必须再回到这里做运算,然后再到表达式2作判断。,6.1 C语言基本概念,例如: 01 void ForDemo(Byte 0ntime,Byte offtime) 02 03 Byte i; 04 05 for(i=0;i3;i+) 06 07 Ledon( ); 08 DelayX10ms(ontime ); 09 Ledoff( ); 10 DelayX10ms(offtime); 11 12 i+; 13 ,6.1 C语言基本概念,说明: 从i0开始执行,当i3时(即表达式2条件成立),则执行括号内(行号06-11)的动作,否则跳出循环,继续执行。当动作执行完毕后,则执行到行号11,,必须回到表达式3作运算,i加1,

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号