第7章-单片机的C语言程序设计课件.ppt
《第7章-单片机的C语言程序设计课件.ppt》由会员分享,可在线阅读,更多相关《第7章-单片机的C语言程序设计课件.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计教学目的教学目的教学目的教学目的q熟悉熟悉C51的程序结构的程序结构q掌握掌握C51的数据类型、存储类型及函数等概念的数据类型、存储类型及函数等概念q了解了解C51与标准与标准C的不同之处的不同之处q熟悉熟悉C51的开发工具的开发工具Keil C5127.1 7.1 5151的程序结构的程序结构的程序结构的程序结构 qq与汇编语言相比,与汇编语言相比,与汇编语言相比,与汇编语言
2、相比,C51C51在功能、结构性、可读性、在功能、结构性、可读性、在功能、结构性、可读性、在功能、结构性、可读性、可维护性及可移植性上有明显的优势可维护性及可移植性上有明显的优势可维护性及可移植性上有明显的优势可维护性及可移植性上有明显的优势 。qqC51C51程序结构与一般程序结构与一般程序结构与一般程序结构与一般C C语言没有差别。语言没有差别。语言没有差别。语言没有差别。邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计qC51的特点:的特点:q1C51在吸取了汇编语言精华的基础上又有所改进 q2C51继承和发扬
3、了高级语言的长处 q3C51的可移植性好 q4生成的代码质量高,在代码效率方面可以和汇编语言相媲美 5151的程序结构的程序结构的程序结构的程序结构3.15151的程序结构的程序结构 4邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计qC51程序的结构程序的结构q一个C51程序大体上是一个函数定义的集合,在这个集合中仅有一个名为main的函数(主函数)。q函数定义由类型、函数名、参数表和函数体四部分组成。q函数的一般格式如下:类型 函数名(参数表)参数说明;数据说明部分;执行语句部分;5151的程序结构的程序结构的程
4、序结构的程序结构3.15151的程序结构的程序结构 5邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计q编写编写C51 程序时应注意以下几点:程序时应注意以下几点:q1.一个C51程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何。q2C语言程序的书写格式十分自由。一条语句可以写成一行,也可以写成几行,还可以在一行内写多条语句。但每条语句都必须以分号“;”作为结束符。q3C语言对大小字母敏感,C语言编译器编译程序时对同一个字母的大小写作为不同的变量来处理。q4可以用/*/对C程序中的任何部分作
5、注释。程序加上必要的注释,可增加程序的可读性。5151的程序结构的程序结构的程序结构的程序结构3.15151的程序结构的程序结构 67.2 7.2 数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式 qq数据类型数据类型数据类型数据类型qq常量和变量常量和变量常量和变量常量和变量qqC51C51的存储类型及存储模式的存储类型及存储模式的存储类型及存储模式的存储类型及存储模式qq特殊功能寄存器、并行接口及位变量的定义特殊功能寄存器、并行接口及位变量的定义特殊功能寄存器、并行接口及位变量的定义特殊功能寄存器、并行接口及位变量的定义邵阳学
6、院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计q数据类型数据类型 可分为基本数据类型和构造数据类型。构造数据类型由基本数据类型构造而成。qC51的数据类型分类如下所示:数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式3.2 数据类型、存储类型及存储模式数据类型、存储类型及存储模式 8邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计C51C51编译器能识别的数据类型编译器能识别的数据
7、类型数 据 类 型长 度大 小unsigned char1B0255char1B-128+127unsigned int2B065535int2B-32768+32767unsigned long4B04294967295long4B-2147483648+2147483647float4B1.175494E-383.402823E+38*1B3B对象的地址bit位0或1sfr1B0255sfr162B065535sbit位0或19邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计q常量和变量常量和变量 C语言中的数据
8、有常量、变量之分。常量在程序运行的过程中,其值不能改变的量称为常量。C语言支持4种常量:整数常量、浮点数常量、枚举量常量、字符常量。变量在程序执行过程中,其值能不断变化的量。使用一个变量之前必须进行定义,用一个标识符作为变量名并指出它的数据类型和存储类型,以便编译系统为它分配相应的存储单元。数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式3.2 数据类型、存储类型及存储模式数据类型、存储类型及存储模式 10邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计
9、 C51中变量定义的格式如下:中变量定义的格式如下:数据类型数据类型 存储器类型存储器类型 变量名表变量名表 其中,其中,存储器类型存储器类型是可选项。是可选项。例如:例如:char data var;11邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计qC51的存储类型及存储模式的存储类型及存储模式 51系列单片机的存储器采用哈佛结构。即其程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式。以AT89C52为例,其具体结构如图所示。数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存
10、储模式数据类型、存储类型及存储模式3.2 数据类型、存储类型及存储模式数据类型、存储类型及存储模式 12邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计qC51的存储类型及存储模式的存储类型及存储模式 C51在定义变量、常量时,将通过不同的存储类型将它们定位在不同的存储区中。存储类型与AT89C51单片机实际存储空间的对应关系如表所列。数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式3.2 数据类型、存储类型及存储模式数据类型、存储类型及存储模式 13邵
11、阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计存储器类型描 述data直接寻址的片内数据存储器低128B,访问速度最快bdata可位寻址的片内数据存储器(地址20H2FH共16B)允许位和字节混合访问idata间接寻址片内数据存储器256B。允许访问片内全部地址pdata分页寻址片外数据存储器256B,使用指令MOVX Rn访问,需要2个指令周期xdata寻址片外数据存储器64KB,使用指令MOVX DPTR访问code寻址程序存储器区64KB,使用指令MOVC A+DPTR访问14邵阳学院邵阳学院邵阳学院邵阳学院7
12、 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计存储模式存储模式 C51编译器允许采用三种存储模式:小编译模式SMALL、紧凑编译模式COMPACT、大编译模式LARGE。15邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计 例如,如果我们用例如,如果我们用char char bianbian语句定义一个字符型变量,变量名为语句定义一个字符型变量,变量名为bianbian。在使用在使用SMALLSMALL存储模式下,变量存储模式下,变量bianbian被放置在片内被放置在片
13、内RAMRAM存储区,即变量存储区,即变量bianbian被自动定义为被自动定义为DATADATA存储类型;存储类型;在使用在使用COMPACTCOMPACT存储模式下,变量存储模式下,变量bianbian则被放置在片外则被放置在片外RAMRAM存储区的某存储区的某一页,即变量一页,即变量bianbian被自动定义为被自动定义为PDATAPDATA存储类型;存储类型;在使用在使用LARGELARGE存储模式下,变量存储模式下,变量bianbian被放置在片外被放置在片外RAMRAM存储区的存储区的6464KBKB空空间,即变量间,即变量bianbian被自动定义为被自动定义为XDATAXDAT
14、A存储类型。存储类型。16邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计q特殊功能寄存器的定义特殊功能寄存器的定义 AT89C52单片机中除了程序计数器PC和4组通用寄存器组(R0R7)之外,其他所有寄存器均称为特殊功能寄存器(SFR),它们分散在片内RAM区的高128B中,它们只能采用直接寻址方式访问。为了能直接访问这些SFR,C51扩充了类型说明符sfr、sfr16、sbit。利用它们可在C语言源程序中直接对AT89C52单片机的特殊功能寄存器进行定义。定义方法如下:sfr 特殊功能寄存器名=地址常数sfr16
15、特殊功能寄存器名=地址常数例如:sfr P0=0 x80;sfr16 DPTR=0 x82;/即DPTR低8位地址为0 x82,高8位为0 x83 数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式3.2 数据类型、存储类型及存储模式数据类型、存储类型及存储模式 17邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计q并行接口的定义并行接口的定义 AT89C52单片机内部有4个8位并行口,即SFR中的P0-P3。这些内部并行口既可进行字节寻址,也可进行位寻址
16、。数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式3.2 数据类型、存储类型及存储模式数据类型、存储类型及存储模式 sfr P0=0 x80;/*定义单片机P0口,片内SFR,字节地址为080H*/sfr P1=0 x90;/*定义单片机P1口,片内SFR,字节地址为090H*/sfr P2=0 xA0;/*定义单片机P2口,片内SFR,字节地址为0A0H*/sfr P3=0 xB0;/*定义单片机P3口,片内SFR,字节地址为0B0H*/18邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设
17、计语言程序设计语言程序设计语言程序设计q位变量的定义位变量的定义q1.定义位变量的语法如下:bit check_bit;/*将变量check_bit定义为位变量*/q2.函数可包含类型为bit的参数,也可将其作为返回值。q3.可位寻址对象的定义和访问(分两步)例如:bdata char temp;/先把temp 定义为char类型 sbit temp3=temp3;/再把temp3为temp的第3位 数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式数据类型、存储类型及存储模式3.2 数据类型、存储类型及存储模式数据类型、存储类型及存储模式 197.3 7.3
18、 运算符、函数及程序流程控制运算符、函数及程序流程控制运算符、函数及程序流程控制运算符、函数及程序流程控制 qqC51C51的运算符的运算符的运算符的运算符qqC51C51的函数的函数的函数的函数qqC51C51的流程控制语句的流程控制语句的流程控制语句的流程控制语句邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计qC51的运算符的运算符q1.C51的赋值运算符和算术运算符(+、-、*、/、%)q2.C51的关系运算符(、=、=、=、!=)q3.C51逻辑运算符(|、&、!)q4.C51位操作运算符(、|、&、)q5
19、.自增减运算q6.复合运算符(10种)运算符、函数及程序流程控制运算符、函数及程序流程控制运算符、函数及程序流程控制运算符、函数及程序流程控制3.3运算符、函数及程序流程控制运算符、函数及程序流程控制 21邵阳学院邵阳学院邵阳学院邵阳学院7 7 单片机的单片机的单片机的单片机的C C语言程序设计语言程序设计语言程序设计语言程序设计qC51的函数的函数 函数是C语言中的一种基本模块,一个C语言程序就是由若干个模块化的函数所构成的。q 1.函数的分类从用户使用角度划分,函数分为标准库函数和用户自定义函数。用户自定义函数是指用户根据任务自己编写的函数。从函数定义的形式上可划分为三种形式:无参数函数、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 语言程序设计 课件
限制150内