单片机基础与应用(C语言版)第3章 C51程序设计基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章 C51程序设计基础
教学内容 认识C51语言 C51数据类型 C51运算符 C51程序结构 C51函数 C51数组
认识C语言
C语言程序以函数形式组织程序结构,C程序中的函数与其他语言中 所描述的“子程序”或“过程”的概念是一样的。
C程序
预编译命令 主函数
函数1 … … 函数i
函数定义
C程序基本结构
浮点型常量可分为十进制表示形式和指数表示形式两种,如0.888、 3345.345、125e3、-3.0e-3。 字符型常量是用单引号括起来的单一字符,如‘a’、‘9’等。 字符串型常量是用双引号括起来的一串字符,如“test”、“OK”等。 位类型的值是一个二进制数。如1或0。
变量
变量是一种在程序执行过程中其值能不断变化的量。
+ =、a-*==、b*+=5 等价于 a = a * (b + 5) 、%x=%、=/=3 等价于 x = x%3
算术运算符
+(加法运算) -(减法运算) * (乘法运算符) /(除法运算符) % (求余运算符,或称模运算符)如: ++ (变量自加1) -- (变量自减1)
4 % 2=0
注意
两个整数相除结果为整数,如8/5的结果为1,舍去小数部分。 如果参加运算的两个数中有一个数为实数,则结果是实型。 求余运算要求%两侧都是整型数据。
一个变量由变量名和变量值组成,变量名是存储单元 地址的符号表示,而变量的值就是该单元存放的内容。
变量必须先定义后使用,用标识符作为变量名,并指 出所用的数据类型和存储模式,这样编译系统才能为变 量分配相应的存储空间。
变量
void delay(unsigned char i) //延时函数1 {
unsigned char j,k; for(k=0;k<i;k++)
}
关系运算符
关系运算符
< <= > >=
优先级
高
== != 低
关系表达式
用关系运算符将两个表达式(可以是算术表达 式、关系表达式、赋值表达式或逻辑表达式) 连接起来的式子,称为关系表达式。
关系表达式的值为逻辑值“真”或“假”,以 1代表“真”,以0代表“假”。
例如:
(1)关系表达式“8==4”的值为 值为 。
函数体
认识C语言
一个C语言源程序是由一个或若干个函数组成,每一个函数完成相对独 立的功能。每个C程序都必须有(且仅有)一个主函数main(),程序的执行 总是从主函数开始,调用其他函数后返回主函数main(),不管函数的排列 顺序如何,最后在主函数中结束整个程序。 C语言程序中可以有预处理命令,预处理命令通常放在源程序的最前面。 C语言程序使用“;”作为语句的结束符,一条语句可以多行书写,也 可以一行书写多条语句。
若a=1,b=2,c=3,x=4,y=3,写出下各个表达式的值:
(1)a+b>c&&b==c
for(j=0;j<255;j++); } =================================================
void delay(unsigned int i) {
unsigned int k; for(k=0;k<i;k++) ; }
//延时函数2
C51运算符
1. 赋值运算符 2. 算术运算符和算术表达式 3. 关系运算符和关系表达 4. 逻辑运算符和逻辑表达式
0或1 0~255 0~65535 0或1
常量和变量
常量的值在程序执行期间是不能发生变化的; 变量的值在程序执行期间可以发生变化。
常量
常量的值在程序执行期间是不能发生变化的。
整型常量可以表示为十进制数、十六进制数或八进制数等,例如: 十进制数12,-60等; 十六进制数以0x开头,如0x14、-0x1B等; 八进制数以字母o开头,如o14、o17等。
认识C语言
结构化语言 丰富的数据类型 便于维护管理 与汇编语言相比,C语言的优点如下:
➢不要求编程者详细了解单片机的指令系统,但需了 解单片机的存储器结构; ➢寄存器分配、不同存储器的寻址及数据类型等细节 可由编译器管理; ➢结构清晰,程序可读性强; ➢编译器提供了很多标准库函数,具有较强的数据处 理能力。
自增、自减运算
自增运算符(++)和自减运算符(--): (1)前置运算──++变量、--变量
即先增减、后运算。 (2)后置运算──变量++、变量--
即先运算、后增减。
实战演练:请说明程序运行完后x,y,z,m,n的值分别是多 少? main() { int x=6,y,z,m,n;
y=++x; z=x--; m=y/z; n=y%z;
认识C语言
C51数据类型
数据类型
unsigned char signed char unsigned int signed int
unsigned long signed long float * Bit sfr sfr16 sbit
名称
无符号字符型 有符号字符型
无符号整型 有符号整型 无符号长整型 有符号长整型
,表达式的
(2) 关系表达式“5>0”的值为
值为
。
,表达式的
逻辑运算符及其优先级
逻辑运算符
优先级
! (逻辑非)
&& (逻辑与)
|| (逻辑或)
注意:逻辑运算符与位操作运算符的区别。
逻辑表达式
用逻辑运算符将一个或多个表达式连接起来, 进行逻辑运算的式子。
逻辑量的真判断——非0 逻辑量的假判断——0
分隔符 为分号
赋值运算符
赋值语句的作用是把某个常量或变量或 表达式的值赋值给另一个变量。
符号为‘=’。这里并不是等于的意思, 只是赋值,等于用‘==’表示。
赋值语句左边必须是变量或寄存器,且 必须先定义。
常量不能出现左边。
赋值运算符和赋值表达式
简单43; = 2 等价于 i = i + 2
浮点型 指针型 位类型 特殊功能寄存器 16位特殊功能寄存器 可寻址位
长度
单字节 单字节 双字节 双字节 四字节 四字节 四字节 1~3字节
位 单字节 双字节
位
值域
0~255 -128~+127 0~65535 -32768~+32767 0~4294967295 -2147483648~+2147483647 ±1.175494E-38~±3.402823E+38 对象的地址
教学内容 认识C51语言 C51数据类型 C51运算符 C51程序结构 C51函数 C51数组
认识C语言
C语言程序以函数形式组织程序结构,C程序中的函数与其他语言中 所描述的“子程序”或“过程”的概念是一样的。
C程序
预编译命令 主函数
函数1 … … 函数i
函数定义
C程序基本结构
浮点型常量可分为十进制表示形式和指数表示形式两种,如0.888、 3345.345、125e3、-3.0e-3。 字符型常量是用单引号括起来的单一字符,如‘a’、‘9’等。 字符串型常量是用双引号括起来的一串字符,如“test”、“OK”等。 位类型的值是一个二进制数。如1或0。
变量
变量是一种在程序执行过程中其值能不断变化的量。
+ =、a-*==、b*+=5 等价于 a = a * (b + 5) 、%x=%、=/=3 等价于 x = x%3
算术运算符
+(加法运算) -(减法运算) * (乘法运算符) /(除法运算符) % (求余运算符,或称模运算符)如: ++ (变量自加1) -- (变量自减1)
4 % 2=0
注意
两个整数相除结果为整数,如8/5的结果为1,舍去小数部分。 如果参加运算的两个数中有一个数为实数,则结果是实型。 求余运算要求%两侧都是整型数据。
一个变量由变量名和变量值组成,变量名是存储单元 地址的符号表示,而变量的值就是该单元存放的内容。
变量必须先定义后使用,用标识符作为变量名,并指 出所用的数据类型和存储模式,这样编译系统才能为变 量分配相应的存储空间。
变量
void delay(unsigned char i) //延时函数1 {
unsigned char j,k; for(k=0;k<i;k++)
}
关系运算符
关系运算符
< <= > >=
优先级
高
== != 低
关系表达式
用关系运算符将两个表达式(可以是算术表达 式、关系表达式、赋值表达式或逻辑表达式) 连接起来的式子,称为关系表达式。
关系表达式的值为逻辑值“真”或“假”,以 1代表“真”,以0代表“假”。
例如:
(1)关系表达式“8==4”的值为 值为 。
函数体
认识C语言
一个C语言源程序是由一个或若干个函数组成,每一个函数完成相对独 立的功能。每个C程序都必须有(且仅有)一个主函数main(),程序的执行 总是从主函数开始,调用其他函数后返回主函数main(),不管函数的排列 顺序如何,最后在主函数中结束整个程序。 C语言程序中可以有预处理命令,预处理命令通常放在源程序的最前面。 C语言程序使用“;”作为语句的结束符,一条语句可以多行书写,也 可以一行书写多条语句。
若a=1,b=2,c=3,x=4,y=3,写出下各个表达式的值:
(1)a+b>c&&b==c
for(j=0;j<255;j++); } =================================================
void delay(unsigned int i) {
unsigned int k; for(k=0;k<i;k++) ; }
//延时函数2
C51运算符
1. 赋值运算符 2. 算术运算符和算术表达式 3. 关系运算符和关系表达 4. 逻辑运算符和逻辑表达式
0或1 0~255 0~65535 0或1
常量和变量
常量的值在程序执行期间是不能发生变化的; 变量的值在程序执行期间可以发生变化。
常量
常量的值在程序执行期间是不能发生变化的。
整型常量可以表示为十进制数、十六进制数或八进制数等,例如: 十进制数12,-60等; 十六进制数以0x开头,如0x14、-0x1B等; 八进制数以字母o开头,如o14、o17等。
认识C语言
结构化语言 丰富的数据类型 便于维护管理 与汇编语言相比,C语言的优点如下:
➢不要求编程者详细了解单片机的指令系统,但需了 解单片机的存储器结构; ➢寄存器分配、不同存储器的寻址及数据类型等细节 可由编译器管理; ➢结构清晰,程序可读性强; ➢编译器提供了很多标准库函数,具有较强的数据处 理能力。
自增、自减运算
自增运算符(++)和自减运算符(--): (1)前置运算──++变量、--变量
即先增减、后运算。 (2)后置运算──变量++、变量--
即先运算、后增减。
实战演练:请说明程序运行完后x,y,z,m,n的值分别是多 少? main() { int x=6,y,z,m,n;
y=++x; z=x--; m=y/z; n=y%z;
认识C语言
C51数据类型
数据类型
unsigned char signed char unsigned int signed int
unsigned long signed long float * Bit sfr sfr16 sbit
名称
无符号字符型 有符号字符型
无符号整型 有符号整型 无符号长整型 有符号长整型
,表达式的
(2) 关系表达式“5>0”的值为
值为
。
,表达式的
逻辑运算符及其优先级
逻辑运算符
优先级
! (逻辑非)
&& (逻辑与)
|| (逻辑或)
注意:逻辑运算符与位操作运算符的区别。
逻辑表达式
用逻辑运算符将一个或多个表达式连接起来, 进行逻辑运算的式子。
逻辑量的真判断——非0 逻辑量的假判断——0
分隔符 为分号
赋值运算符
赋值语句的作用是把某个常量或变量或 表达式的值赋值给另一个变量。
符号为‘=’。这里并不是等于的意思, 只是赋值,等于用‘==’表示。
赋值语句左边必须是变量或寄存器,且 必须先定义。
常量不能出现左边。
赋值运算符和赋值表达式
简单43; = 2 等价于 i = i + 2
浮点型 指针型 位类型 特殊功能寄存器 16位特殊功能寄存器 可寻址位
长度
单字节 单字节 双字节 双字节 四字节 四字节 四字节 1~3字节
位 单字节 双字节
位
值域
0~255 -128~+127 0~65535 -32768~+32767 0~4294967295 -2147483648~+2147483647 ±1.175494E-38~±3.402823E+38 对象的地址