MCS-51单片机C语言程序设计.ppt
《MCS-51单片机C语言程序设计.ppt》由会员分享,可在线阅读,更多相关《MCS-51单片机C语言程序设计.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、以以MCS-51MCS-51单片机为例讲解单片机为例讲解通信工程学院自动化系通信工程学院自动化系主讲人:张志成主讲人:张志成2023/1/28吉林大学通信工程学院Page 2课程安排!第一章第一章 MCS-51 MCS-51单片机概述单片机概述!第二章第二章 MCS-51 MCS-51单片机的硬件结构单片机的硬件结构!第三章第三章 单片机单片机C C语言程序设计语言程序设计!第四章第四章 MCS-51 MCS-51单片机的中断系统单片机的中断系统!第五章第五章 MCS-51 MCS-51单片机的定时器单片机的定时器/计数器计数器!第六章第六章 MCS-51 MCS-51单片机的串行通信单片机的
2、串行通信!第七章第七章 MCS-51 MCS-51单片机的外围器件及扩展单片机的外围器件及扩展2023/1/28吉林大学通信工程学院Page 3第三章 单片机C语言程序设计!3.1 C3.1 C语言与语言与MCS-51MCS-51单片机单片机!3.2 C513.2 C51的数据类型与运算的数据类型与运算!3.3 C513.3 C51流程控制语句流程控制语句!3.4 C513.4 C51构造数据类型构造数据类型!3.5 C513.5 C51函数函数!3.6 3.6 模块化程序设计模块化程序设计2023/1/28吉林大学通信工程学院Page 43.1 C语言与MCS-51单片机一、一、MCS-51
3、MCS-51的编程语言的编程语言!四种语言支持四种语言支持MCS-51MCS-51单片机:单片机:BASICBASIC、PL/MPL/M、汇编语言、汇编语言和和C C语言。语言。!汇编语言:汇编语言:用汇编程序设计用汇编程序设计MCS51MCS51系列单片机应用程序时,必系列单片机应用程序时,必须要考虑其存储器结构,尤其必须考虑其片内数据存储须要考虑其存储器结构,尤其必须考虑其片内数据存储器与特殊功能寄存器正确、合理的使用以及按实际地址器与特殊功能寄存器正确、合理的使用以及按实际地址处理端口数据。处理端口数据。!C C语言:语言:C C语言是一种源于编写语言是一种源于编写UNIXUNIX操作系
4、统的语言,是一种操作系统的语言,是一种结构化语言,可产生紧凑代码。结构化语言,可产生紧凑代码。2023/1/28吉林大学通信工程学院Page 5与汇编语言相比,与汇编语言相比,C C语言有如下优点:语言有如下优点:!对单片机指令系统不要求了解,仅要求对对单片机指令系统不要求了解,仅要求对80518051存储器结存储器结构有初步了解;构有初步了解;!寄存器的分配,不同存储器的寻址及数据类型等细节可寄存器的分配,不同存储器的寻址及数据类型等细节可由编译器管理;由编译器管理;!程序有规范的结构,分为不同的函数,使程序结构化;程序有规范的结构,分为不同的函数,使程序结构化;!更符合人们的思考习惯;改善
5、了程序的可读性;更符合人们的思考习惯;改善了程序的可读性;!编程及程序调试时间显著缩短,从而提高效率;编程及程序调试时间显著缩短,从而提高效率;!提供的库包含许多标准子程序,具有较强数据处理能力;提供的库包含许多标准子程序,具有较强数据处理能力;!很好的结构性和模块化更容易阅读和维护,而且由于有很好的结构性和模块化更容易阅读和维护,而且由于有更好的可移植性很多处理器支持更好的可移植性很多处理器支持C C编译器。编译器。2023/1/28吉林大学通信工程学院Page 6二、二、C51C51编译器编译器 用用C C语言编写的应用程序必须经单片机的语言编写的应用程序必须经单片机的C C语言语言编译器
6、编译器(简称简称C51)C51),转换生成单片机可执行的代码程,转换生成单片机可执行的代码程序。支持序。支持MCS51MCS51系列单片机的系列单片机的C C语言编译器有很多语言编译器有很多种。如:种。如:American Automation American Automation IAR IAR Avocet Avocet Dunfield Shareware Dunfield Shareware Bso/Tasking Bso/Tasking KEIL/Franklin KEIL/Franklin2023/1/28吉林大学通信工程学院Page 7三、三、C51C51程序结构程序结构!C5
7、1C51源程序大体上是一个函数定义的集合,集合中源程序大体上是一个函数定义的集合,集合中仅有一个名为仅有一个名为mainmain的主函数。主函数是程序的入口,的主函数。主函数是程序的入口,主函数中所有语句执行完毕,则程序执行完成。主函数中所有语句执行完毕,则程序执行完成。2023/1/28吉林大学通信工程学院Page 8!函数定义由类型,函数名,参数表和函数体组成。函数定义由类型,函数名,参数表和函数体组成。格式如下:格式如下:类型类型 函数名(参数表)函数名(参数表)参数说明;参数说明;数据说明部分;数据说明部分;执行语句部分;执行语句部分;2023/1/28吉林大学通信工程学院Page 9
8、!C51C51程序结构说明:程序结构说明:1 1)C C语言是由函数构成的。语言是由函数构成的。一个一个C C源程序至少包含一个函数,也可以包含一个源程序至少包含一个函数,也可以包含一个mainmain函数和若干其他函数。函数是函数和若干其他函数。函数是C C程序的基本单位。程序的基本单位。2)2)函数分为函数分为2 2大类:大类:一类是库函数,一类是用户自定义函数。库函数是一类是库函数,一类是用户自定义函数。库函数是C51C51在库文件中已定义的函数,其函数说明在其头文件中。在库文件中已定义的函数,其函数说明在其头文件中。用户函数是用户自己定义,自己调用的一类函数。用户函数是用户自己定义,自
9、己调用的一类函数。2023/1/28吉林大学通信工程学院Page 10 3)3)函数由函数由2 2部分组成:部分组成:函数说明部分:它包括函数名,函数类型,函数属函数说明部分:它包括函数名,函数类型,函数属性,函数参数名和形式参数类型。一个函数名后面必须性,函数参数名和形式参数类型。一个函数名后面必须跟一个(),函数参数可以没有。跟一个(),函数参数可以没有。函数体部分函数体部分:函数说明部分下面的大括号内的内容。函数说明部分下面的大括号内的内容。函数体一般包括:变量定义和执行部分(由若干语句组函数体一般包括:变量定义和执行部分(由若干语句组成)成)2023/1/28吉林大学通信工程学院Pag
10、e 11 4)4)一个一个C51C51程序总是从程序总是从main main 函数开始执行的,而不函数开始执行的,而不论论mainmain函数在整个程序中的位置如何。函数在整个程序中的位置如何。5)5)每个语句和数据定义的最后必须有一个分号。每个语句和数据定义的最后必须有一个分号。6)C 6)C语言本身没有输入语言本身没有输入/输出语句,输入和输出操作输出语句,输入和输出操作是有库函数是有库函数scanfscanf和和printfprintf等函数来完成的。等函数来完成的。7)7)可以用可以用/*/*/对对C C程序中的任何部分作注释。程序中的任何部分作注释。2023/1/28吉林大学通信工程
11、学院Page 12!C51C51程序开发过程程序开发过程 C51 C51源程序是一个源程序是一个ASCIIASCII文件,可以用任何标准的文件,可以用任何标准的ASCIIASCII文件编辑器来编写,如:写字板,记事本等。文件编辑器来编写,如:写字板,记事本等。C51 C51程序机构与一般程序机构与一般C C语言没有什么差别,程序的书语言没有什么差别,程序的书写格式自由度高,灵活性强,有较大的任意性。写格式自由度高,灵活性强,有较大的任意性。2023/1/28吉林大学通信工程学院Page 13 要点如下:要点如下:1 1)一般情况下,每个语句占用一行。)一般情况下,每个语句占用一行。2 2)不同
12、结构层次的语句,从不同的起始位置开始,)不同结构层次的语句,从不同的起始位置开始,即在同一结构层次中的语句,缩进同样的字数。即在同一结构层次中的语句,缩进同样的字数。3 3)表示结构层次的大括号通常写在该结构语句第一)表示结构层次的大括号通常写在该结构语句第一字母的下方,与机构化语句对齐,并占用一行。字母的下方,与机构化语句对齐,并占用一行。2023/1/28吉林大学通信工程学院Page 14系统库系统库C51源程序源程序C51编译器编译器EPROM编程器编程器链接链接列表文件列表文件浮动目标码模块浮动目标码模块绝对定位目标码文件绝对定位目标码文件用户库用户库硬件仿真器硬件仿真器映像文件映像文
13、件2023/1/28吉林大学通信工程学院Page 15!C51C51与标准与标准C C语言的区别语言的区别 C51 C51的语法规定、程序结构及程序设计方法都与标准的语法规定、程序结构及程序设计方法都与标准的的C C语言程序设计相同,但语言程序设计相同,但C51C51程序与标准的程序与标准的C C程序在以程序在以下几个方面不一样:下几个方面不一样:(1 1)C51C51中定义的库函数和标准中定义的库函数和标准C C语言定义的库函数语言定义的库函数不同。标准的不同。标准的C C语言定义的库函数是按通用微型计算机语言定义的库函数是按通用微型计算机来定义的,而来定义的,而C51C51中的库函数是按中
14、的库函数是按MCS-51MCS-51单片机相应情单片机相应情况来定义的;况来定义的;(2 2)C51C51中的数据类型与标准中的数据类型与标准C C的数据类型也有一定的数据类型也有一定的区别,在的区别,在C51C51中还增加了几种针对中还增加了几种针对MCS-51MCS-51单片机特有单片机特有的数据类型;的数据类型;2023/1/28吉林大学通信工程学院Page 16 (3 3)C51C51变量的存储模式与标准变量的存储模式与标准C C中变量的存储模式中变量的存储模式不一样,不一样,C51C51中变量的存储模式是与中变量的存储模式是与MCS-51MCS-51单片机的存储单片机的存储器紧密相关
15、;器紧密相关;(4 4)C51C51与标准与标准C C的输入输出处理不一样,的输入输出处理不一样,C51C51中的中的输入输出是通过输入输出是通过MCS-51MCS-51串行口来完成的,输入输出指令串行口来完成的,输入输出指令执行前必须要对串行口进行初始化;执行前必须要对串行口进行初始化;(5 5)C51C51与标准与标准C C在函数使用方面也有一定的区别,在函数使用方面也有一定的区别,C51C51中有专门的中断函数。中有专门的中断函数。2023/1/28吉林大学通信工程学院Page 173.2 C51的数据类型与运算一、数据与数据类型一、数据与数据类型!数据:具有一定各式的数字或数值叫做数据
16、。数据时数据:具有一定各式的数字或数值叫做数据。数据时计算机操作的对象。计算机操作的对象。!数据类型:数据的不同各式叫做数据类型。数据类型:数据的不同各式叫做数据类型。!数据结构:数据按一定的数据类型进行的排列、组合数据结构:数据按一定的数据类型进行的排列、组合及架构称为数据结构。及架构称为数据结构。2023/1/28吉林大学通信工程学院Page 18!C51C51数据类型分类数据类型分类数据类型数据类型 基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型位型位型(bit)字符型字符型(char)整型整型(int)长整型长整型(long)浮点型浮点型(float)双精度浮点型双精度浮
17、点型(double)数组类型数组类型(array)结构体类型结构体类型(struct)共用体共用体(union)枚举枚举(enum)2023/1/28吉林大学通信工程学院Page 19!KEIL C51KEIL C51的数据类型的数据类型数据类型长度(bit)长度(byte)值域bit110,1unsigned char810255signed char81128127unsigned int 162065535signed int 1623276832767unsigned long32404294967295signed long 32421474836482147483647float
18、3241.176E383.40E+38(6位数字位数字)double6481.176E383.40E+38(10位数字位数字)一般指针一般指针243存储空间存储空间0655352023/1/28吉林大学通信工程学院Page 20二、常量与变量二、常量与变量!常量:在程序运行的过程中,其值不能改变的量称常量:在程序运行的过程中,其值不能改变的量称为常量。为常量。!变量:在程序运行的过程中,其值可以改变的量称变量:在程序运行的过程中,其值可以改变的量称为变量。一个变量主要由两部分构成为变量。一个变量主要由两部分构成一个是变一个是变量名,一个是变量值。每个变量都有一个变量名,量名,一个是变量值。每个
19、变量都有一个变量名,在内存中占据一定的存储单元(地址),并在该内在内存中占据一定的存储单元(地址),并在该内存单元中存放该变量的值。存单元中存放该变量的值。2023/1/28吉林大学通信工程学院Page 21!C51C51数据在数据在MCS-51MCS-51中的存储方式中的存储方式(1 1)位变量()位变量(bitbit):变量的类型是位,位变量的值可):变量的类型是位,位变量的值可以是以是1 1(truetrue)或)或0 0(falsefalse)。与)。与MCS-51MCS-51硬件特性操作硬件特性操作有关的可以定义成位变量必须定位在有关的可以定义成位变量必须定位在MCS-51MCS-5
20、1单片机片单片机片内内RAMRAM的位寻址空间中。的位寻址空间中。(2 2)字符变量()字符变量(charchar):):字符变量的长度为字符变量的长度为1 byte1 byte即即8 8位。这很合适位。这很合适MCS-51MCS-51单单片机,因为片机,因为MCS-51MCS-51单片机每次可处理单片机每次可处理8 8位数据。对于无位数据。对于无符号变量符号变量(unsigned char)(unsigned char)的值域范围是的值域范围是0 0255255。对于有符号字符变量对于有符号字符变量(signed char)(signed char),最具有重要意,最具有重要意义的位是最高位
21、上的符号标志位义的位是最高位上的符号标志位(msb)(msb)。此位为。此位为1 1代表代表“负负”,为,为0 0代表代表“正正”。有符号字符变量和无符号字。有符号字符变量和无符号字符变量在表示符变量在表示01270127的数值时,其含义是一样的,都是的数值时,其含义是一样的,都是0 00 x7F0 x7F。负数一般用补码表示。负数一般用补码表示。2023/1/28吉林大学通信工程学院Page 22(3 3)整型变量)整型变量(int)(int):整型变量的长度为:整型变量的长度为1616位。位。MCS-MCS-5151系列单片机将系列单片机将intint型变量的高位字节数存放在低地址型变量的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 单片机 语言程序设计
限制150内