04MCS51单片机C语言程序设计与中断系统PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
环体,再判断循环条件,条件不 满足时,就退出循环结构。
语句A
条件P 不成立
成立
Page 7
吉林大学通信工程学院
2020/11/6
break语句和continue语句 1、break语句 break语句可以用在循环语句和switch语句中。在循环语 句中用来结束内部循环;在switch语句中用来跳出switch 语句。 2、continue语句 continue语句的作用是结束本次循环,忽略continue后 面的语句,进行下一次循环判定。
例如: int a[ ]={1, 2, 3, 4, 5} ;
int a[5]={1, 2, 3, 4, 5} ;
int a [10][10]={0}
Page 10
吉林大学通信工程学院
2020/11/6
二、指针 指针就是变量的地址。与此对应,在C语言中使用一
类专门的变量——指针变量来存放变量的地址。也就是 说,指针变量是存放地址数据的变量。 1)定义一个指针变量
Page 16
吉林大学通信工程学院
2020/11/6
3.6 模块化程序设计
一、基本思想: 将一个大的程序按功能分割成一些小模块。
特点: ①.各模块相对独立、功能单一、结构清晰、接口
简单;
②.控制了程序设计的复杂性; ③.提高元件的可靠性; ④.缩短开发周期、可多人合作开发; ⑤.避免程序开发的重复劳动; ⑥.易于查错、维护和功能扩充。 开发方法:自上向下,逐步分解,分而治之
Page 2
吉林大学通信工程学院
2020/11/6
第三章 单片机C语言程序设计
3.1 3.2 3.3 3.4 3.5 3.6
C语言与MCS-51单片机 C51的数据类型与运算 C51流程控制语句 C51构造数据类型 C51函数 模块化程序设计
Page 3
吉林大学通信工程学院
2020/11/6
3.3 C51流程控制语句
--以MCS-51单片机为例讲解
课程安排
第一章 第二章 第三章 第四章 第五章 第六章 第七章
MCS-51单片机概述 MCS-51单片机的硬件结构 单片机C语言程序设计 MCS-51单片机的中断系统 MCS-51单片机的定时器/计数器 MCS-51单片机的串行通信 MCS-51单片机的外围器件及扩展
Page 17
吉林大学通信工程学院
2020/11/6
二、C51程序结构
源程序文件1
C程序
源程序文件2 …
Page 8
吉林大学通信工程学院
2020/11/6
3.4 C51构造数据类型
数组 1、一维数组和二维数组 2、字符数组
指针 结构 共用体 枚举
Page 9
吉林大学通信工程学院
2020/11/6
一、数组 将一组排列有序的、个数有限的变量作为一个整体
,用一个统一的名字来表示,则这些有序变量的全体称 为数组;或者说,数组是用一个名字代表顺序排列的一 组数,顺序号就是下标变量的值。
3种基本结构组成:顺序结构、选择结构、循环
结构。
1、顺序结构
顺序结构是最基本、最
简单的结构,在这种结构中,
A
程序由低地址到高地址依次
执行,如图给出顺序结构流
B
程图,程序先执行A操作,
然后再执行B操作。
Page 4
吉林大学通信工程学院
2020/11/6
2、选择结构
选择结构可使程序根据不同的情况,选择执行不同的 分支,在选择结构中,程序先都对一个条件进行判断。 当条件成立,即条件语句为“真”时,执行一个分支, 当条件不成立时,即条件语句为“假”时,执行另一个 分支。
Page 12
吉林大学通信工程学院
2020/11/6
3.5 C51函数
函数定义的一般格式如下: 函数类型 函数名(形式参数表) [reentrant][interrupt m][using n] 形式参数说明 { 局部变量定义 函数体 }
前面部件称为函数的首部,后面称为函数的尾部。
Page 13
吉林大学通信工程学院
成立
条件P
不成立
语句A
语句B
Page 5
吉林大学通信工程学院
2020/11/6
3、循环结构 程序中的语句按先后顺序逐条执行。
1)当(while)型循环 该循环的特点是:当
条件满足时,就执行循环 体,否则就退出循环结构。
不成立
条件P 成立
语句A
Page 6
吉林大学通信工程学院
2020/11/6
2) 直到(do while)型循环 该循环的特点是:先执行循
如何定义一个指针变量
百度文库形式:基类型 *指针变量名
例如:float *pointer_3;
char *pointer_4;
Page 11
吉林大学通信工程学院
2020/11/6
2)指针变量的引用 指针变量中只能存放地址(指针)。
3)指针变量作为函数参数 函数的参数可以是整型、实型、字符型等数据,还可
以是指针类型的。它的作用是将一个变量的地址传送到 另一个函数中。
2020/11/6
关于重入函数,注意以下几点:
(1)用reentrant修饰的重入函数被调用时,实参表内 不允许使用bit类型的参数。函数体内也不允许存在任 何关于位变量的操作,更不能返回bit类型的值。
(2)编译时,系统为重入函数在内部或外部存储器中建 立一个模拟堆栈区,称为重入栈。重入函数的局部变 量及参数被放在重入栈中,使重入函数可以实现递归 调用。
Page 15
吉林大学通信工程学院
2020/11/6
对于using n修饰符的使用,注意以下几点:
(1)加入using n后,C51在编译时自动的在函数的开
始处和结束处加入以下指令。
{
PUSH PSW
;标志寄存器入栈
MOV PSW,#与寄存器组号相关的常量
……
POP PSW ;标志寄存器出栈
}
(2)using n修饰符不能用于有返回值的函数,因为 C51函数的返回值是放在寄存器中的。如寄存器组改变 了,返回值就会出错。
(3)在参数的传递上,实际参数可以传递给间接调用的 重入函数。无重入属性的间接调用函数不能包含调用 参数,但是可以使用定义的全局变量来进行参数传递 。
Page 14
吉林大学通信工程学院
2020/11/6
在interrupt修饰符中,m的取值为0-31,对应的中断 情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 其它值预留。
语句A
条件P 不成立
成立
Page 7
吉林大学通信工程学院
2020/11/6
break语句和continue语句 1、break语句 break语句可以用在循环语句和switch语句中。在循环语 句中用来结束内部循环;在switch语句中用来跳出switch 语句。 2、continue语句 continue语句的作用是结束本次循环,忽略continue后 面的语句,进行下一次循环判定。
例如: int a[ ]={1, 2, 3, 4, 5} ;
int a[5]={1, 2, 3, 4, 5} ;
int a [10][10]={0}
Page 10
吉林大学通信工程学院
2020/11/6
二、指针 指针就是变量的地址。与此对应,在C语言中使用一
类专门的变量——指针变量来存放变量的地址。也就是 说,指针变量是存放地址数据的变量。 1)定义一个指针变量
Page 16
吉林大学通信工程学院
2020/11/6
3.6 模块化程序设计
一、基本思想: 将一个大的程序按功能分割成一些小模块。
特点: ①.各模块相对独立、功能单一、结构清晰、接口
简单;
②.控制了程序设计的复杂性; ③.提高元件的可靠性; ④.缩短开发周期、可多人合作开发; ⑤.避免程序开发的重复劳动; ⑥.易于查错、维护和功能扩充。 开发方法:自上向下,逐步分解,分而治之
Page 2
吉林大学通信工程学院
2020/11/6
第三章 单片机C语言程序设计
3.1 3.2 3.3 3.4 3.5 3.6
C语言与MCS-51单片机 C51的数据类型与运算 C51流程控制语句 C51构造数据类型 C51函数 模块化程序设计
Page 3
吉林大学通信工程学院
2020/11/6
3.3 C51流程控制语句
--以MCS-51单片机为例讲解
课程安排
第一章 第二章 第三章 第四章 第五章 第六章 第七章
MCS-51单片机概述 MCS-51单片机的硬件结构 单片机C语言程序设计 MCS-51单片机的中断系统 MCS-51单片机的定时器/计数器 MCS-51单片机的串行通信 MCS-51单片机的外围器件及扩展
Page 17
吉林大学通信工程学院
2020/11/6
二、C51程序结构
源程序文件1
C程序
源程序文件2 …
Page 8
吉林大学通信工程学院
2020/11/6
3.4 C51构造数据类型
数组 1、一维数组和二维数组 2、字符数组
指针 结构 共用体 枚举
Page 9
吉林大学通信工程学院
2020/11/6
一、数组 将一组排列有序的、个数有限的变量作为一个整体
,用一个统一的名字来表示,则这些有序变量的全体称 为数组;或者说,数组是用一个名字代表顺序排列的一 组数,顺序号就是下标变量的值。
3种基本结构组成:顺序结构、选择结构、循环
结构。
1、顺序结构
顺序结构是最基本、最
简单的结构,在这种结构中,
A
程序由低地址到高地址依次
执行,如图给出顺序结构流
B
程图,程序先执行A操作,
然后再执行B操作。
Page 4
吉林大学通信工程学院
2020/11/6
2、选择结构
选择结构可使程序根据不同的情况,选择执行不同的 分支,在选择结构中,程序先都对一个条件进行判断。 当条件成立,即条件语句为“真”时,执行一个分支, 当条件不成立时,即条件语句为“假”时,执行另一个 分支。
Page 12
吉林大学通信工程学院
2020/11/6
3.5 C51函数
函数定义的一般格式如下: 函数类型 函数名(形式参数表) [reentrant][interrupt m][using n] 形式参数说明 { 局部变量定义 函数体 }
前面部件称为函数的首部,后面称为函数的尾部。
Page 13
吉林大学通信工程学院
成立
条件P
不成立
语句A
语句B
Page 5
吉林大学通信工程学院
2020/11/6
3、循环结构 程序中的语句按先后顺序逐条执行。
1)当(while)型循环 该循环的特点是:当
条件满足时,就执行循环 体,否则就退出循环结构。
不成立
条件P 成立
语句A
Page 6
吉林大学通信工程学院
2020/11/6
2) 直到(do while)型循环 该循环的特点是:先执行循
如何定义一个指针变量
百度文库形式:基类型 *指针变量名
例如:float *pointer_3;
char *pointer_4;
Page 11
吉林大学通信工程学院
2020/11/6
2)指针变量的引用 指针变量中只能存放地址(指针)。
3)指针变量作为函数参数 函数的参数可以是整型、实型、字符型等数据,还可
以是指针类型的。它的作用是将一个变量的地址传送到 另一个函数中。
2020/11/6
关于重入函数,注意以下几点:
(1)用reentrant修饰的重入函数被调用时,实参表内 不允许使用bit类型的参数。函数体内也不允许存在任 何关于位变量的操作,更不能返回bit类型的值。
(2)编译时,系统为重入函数在内部或外部存储器中建 立一个模拟堆栈区,称为重入栈。重入函数的局部变 量及参数被放在重入栈中,使重入函数可以实现递归 调用。
Page 15
吉林大学通信工程学院
2020/11/6
对于using n修饰符的使用,注意以下几点:
(1)加入using n后,C51在编译时自动的在函数的开
始处和结束处加入以下指令。
{
PUSH PSW
;标志寄存器入栈
MOV PSW,#与寄存器组号相关的常量
……
POP PSW ;标志寄存器出栈
}
(2)using n修饰符不能用于有返回值的函数,因为 C51函数的返回值是放在寄存器中的。如寄存器组改变 了,返回值就会出错。
(3)在参数的传递上,实际参数可以传递给间接调用的 重入函数。无重入属性的间接调用函数不能包含调用 参数,但是可以使用定义的全局变量来进行参数传递 。
Page 14
吉林大学通信工程学院
2020/11/6
在interrupt修饰符中,m的取值为0-31,对应的中断 情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 其它值预留。