单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap05

上传人:E**** 文档编号:89355872 上传时间:2019-05-23 格式:PPT 页数:88 大小:699.50KB
返回 下载 相关 举报
单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap05_第1页
第1页 / 共88页
单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap05_第2页
第2页 / 共88页
单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap05_第3页
第3页 / 共88页
单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap05_第4页
第4页 / 共88页
单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap05_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap05》由会员分享,可在线阅读,更多相关《单片机原理与C51程序设计基础教程 教学课件 ppt 作者 978-7-302-23075-5 chap05(88页珍藏版)》请在金锄头文库上搜索。

1、重点内容: C程序基本概念 基本的程序设计结构 C51构造数据类型 Keil C51常用库函数 Keil C51的预处理器 本章小结,第5章 C51程序设计基础及实例剖析,一、C程序基本概念,C语言程序是由一个个函数构成的。在构成C语言程序的若干函数中,必有一个是主函数main ( )。所有函数在定义时都是相互独立的,一个函数中不能再定义其他函数,即函数不能嵌套定义,但可以互相调用。函数调用的一般规则是:主函数可以调用其他普通函数;普通函数之间也可以互相调用,但普通函数不能调用主函数。一个C程序的执行从main( )函数开始,调用其他函数后返回到主函数main( )中,最后在主函数main(

2、)中结束整个C程序的运行 C语言主函数形式如下: main() /函数体 ,1、主函数,一、C程序基本概念,标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、数组等等。标识符由字符串,数字和下划线等组成,注意的是第一个字符必须是字母或下划线,且区分大小写。有些编译系统专用的标识符是以下划线开头,所以一般不要以下划线开头命名标识符。关键字则是编程语言保留的特殊标识符,它们具有固定名称和含义,在程序编写中不允许标识符与关键字相同。参见教材表5-1和5-2所列出的所有关键字。,2、标识符和关键字,一、C程序基本概念,(1) bit位标量:利用它可定义一个位标量,但不

3、能定义位指针,也不能定义位数组。它的值是一个二进制位,不是 0 就是 1,类似一些高级语言中的 Boolean 类型中的 True 和 False。 (2) sbit可寻址位:利用它能定义内部 RAM 中的可寻址位或特殊功能寄存器中的可寻址位。如: sbit P1_1 = 0x91 /*定义P1_1的为p1.1的引脚 定义了P1_1为P1.1 引脚在片内的位地址,这样在以后的程序语句中就能用 P1_1 来对 P1.1 引脚进行读写操作了。定义P1_1为P1.1 引脚同样可以用下面的语句来完成: sbit P1_1 = 0x90 1; /*定义P1_1的为p1.1的引脚,3、数据的基本类型,一、

4、C程序基本概念,(3) sfr特殊功能寄存器:利用它能定义 8051系列单片机内部的所有特殊功能寄存器,定义方法为: sfr 特殊功能寄存器名= 特殊功能寄存器地址常数 如: sfr P1 = 0x90 /*定义p1的位地址为0x90 定义了P1为P1端口在片内的寄存器,在后面的语句中用以用 P1 = 255(对 P1端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器。 (4) sfr16特殊功能寄存器:sfr16和 sfr 一样用于操作特殊功能寄存器,所不一样的是它用于操作占两个字节的寄存器,如定时器T0和T1。,3、数据的基本类型,一、C程序基本概念,1. 常量 常量可用在不必改变值的

5、场合,如固定的数据表,字库等。常量区分为不同的数据类型,说明如下: (1)整型常量能表示为十进制如123,0,89 等。十六进制则以0x开头如 0x34,0x3B等。长整型就在数字后面加字母L,如 104L,034L,0xF340等。 (2)浮点型常量可分为十进制和指数表示形式 。十进制由数字和小数点组成,如:0.0,.25,5.789,0.13,5.0,300.,267.8230等均为合法的实数,整数或小数部分为0,能省略但必须有小数点。指数形式由十进制数加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为aEn(a为十进制数,n为十进制整数)其值为a*10n,如:2

6、.1E5 (等于2.1*105)。,4、常量和变量,一、C程序基本概念,(3)字符型常量是单引号内的字符,如a,d等,不能显示的控制字符,能 在该字符前面加一个反斜杠“”组成专用转义字符。常用转义字符的含义见表5-4。 (4)字符串型常量由双引号内的字符组成,如“test”,“OK”等。当引号内的没有字符时,为空字符串。在使用特殊字符时同样要使用转义字符如双引号。在C语言中字符串常量是做为字符类型数组来处理的,在存储字符串时系统会在字符串尾部加上“o” 转义字符以作为该字符串的结束符。字符串常量“A”和字符常量A是不一样的,前者在存储时多占用一个字节的字间。 (5)位标量,它的值是一个二进制。

7、,4、常量和变量,一、C程序基本概念,2. 变量 要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储器类型,这样编译系统才能为变量分配相应的存储空间。定义一个变量的格式如下: 存储种类 数据类型 存储器类型 变量名表 在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。存储种类有四种:自动(auto),外部(extern),静态(static)和寄存器(register),缺省类型为自动(auto)。存储器类型的说明就是指定该变量在单片机c语言硬件系统中所使用的存储区域,并在编译时准确的定位。,4、常量和变量,一、C程序基本概念,变量的存储器类型 C51编译器完全支

8、持51系列单片机的硬件结构,可以访问其硬件系统的所有部分,对于每个变量可以准确地赋予其存储器类型,从而可使之能够在单片机系统内准确地定位。表5-5中是C51所能认别的存储器类型。,4、常量和变量,一、C程序基本概念,sfr,sfr16变量的定义 51系列单片机具有多种内部寄存器,其中有一些是特殊功能寄存器,为了能够直接访问这些特殊功能寄存器,C51编译器扩充了关键字sfr和sfr16,利用这种扩充关键字可以在C语言源程序中直接对51单片机的特殊寄存器进行定义,定义方法如下: sfr 特殊功能寄存器名= 特殊功能寄存器地址常数; sfr16 特殊功能寄存器名= 特殊功能寄存器地址常数; 例如,P

9、1口的地址是90H,我们能这样定义AT89S52的P1口: sfr P1 = 0x90; /定义P1扣地址为90H,4、常量和变量,一、C程序基本概念,sfr关键定后面是一个要定义的名字,可任意选取,但要符合标识符的命名规则,名字最好有一定的含义如P1口能用P1为名,这样程序会变的好读好多。等号后面必须是常数,不允许有带运算符的表达式,而且该常数必须在特殊功能寄存器的地址范围之内(80HFFH)。 sfr是定义8位的特殊功能寄存器,而sfr16则是用来定义16位特殊功能寄存器,如AT89S52的T2定时器,能定义为: sfr16 T2 = 0xCC; /*指定Timer2口地址T2L=0xCC

10、,T2H=0xCD 用sfr16定义16位特殊功能寄存器时,等号后面是它的低位地址,高位地址一定要位于物理低位地址之上。注意的是不能用于定时器0和1的定义。,4、常量和变量,一、C程序基本概念,sbit变量的定义 我们能照以下的方法去定义: (1) sbit 位变量名位地址; 这种方法将位的绝对地址赋给位变量。位地址必须位于80HFFH之间。例如: sbit EA = 0x91; /*指定0x91位是EA,即中断允许 (2) Sbit 位变量名特殊功能寄存器名位位置; 当可寻址位位于特殊功能寄存器中时可采用这种方法,“位位置”是一个07之间的常数。先定义一个特殊功能寄存器名,再指定位变量名所在

11、的位置,例如: sfr P1 = 0x90; /*指定P1口地址为0x90 sbit P1_1 = P11; /*指定P1_1为P1口的第2个引脚 (3) sbit 位变量名字节地址位位置;,4、常量和变量,一、C程序基本概念,1. 赋值运算符 对于“=”这个符号我们不会陌生,在 C 中它的功能是给变量赋值,称之为赋值运算符。它的作用就是但数据赋给变量。例如:a=6;是把6赋值给a。由此可见利用赋值运算符将一个变量与一个表达式连接起来的式子为赋值表达式,在表达式后面加“;”便构成了赋值语句。使用“=”的赋值语句格式如下: 变量 = 表达式; 例如: a = 0xFF; /*将常数十六进制数 F

12、F 赋于变量a*/ b = c = 33; /*同时赋值给变量 b,c*/ d = e; /*将变量 e 的值赋于变量d*/ f = a+b; /*将变量 a+b 的值赋于变量 f */,5、运算符与表达式,一、C程序基本概念,2. 算术运算符 单片机c语言中的算术运算符有如下几个,其中只有取正值和取负值运算符是单目运算符,其它则都是双目运算符: + 加或取正值运算符 减或取负值运算符 * 乘运算符 / 除运算符 % 求余运算符 算术表达式的形式: 表达式 1 算术运算符 表达式 2 例如: a+b*(10-a), (x+9)/(y-a) 除法运算符和一般的算术运算规则有所不一样,如是两浮点数

13、相除,其结果为浮点数,如10.0/20.0所得值为 0.5,而两个整数相除时,所得值就是整数,例如7/3,值为2。C 的运算符有优先级和结合性,同样可用用括号“()”来改变优先级。,5、运算符与表达式,一、C程序基本概念,3. 增减量运算符 这两个运算符是 C 语言中特有的一种运算符。在 VB,PASCAL 等都是没有的。作用就是对运算对象作加 1 和减 1 运算。 + 增量运算符 - 减量运算符 要注意的是运算对象在符号前或后,其含义都是不一样的,虽然同是加1或减1。如a+(或 a-)是先使用a的值,再执行 a+1(或 a-1),+a(或-a)是先执行 a+1(或 a-1),再使用a的值。增

14、减量运算符只允许用于变量的运算中,不能用于常数或表达式。,5、运算符与表达式,一、C程序基本概念,4. 关系运算符 单片机C语言中有六种关系运算符: 大于 小于 大于等于 小于等于 等于 ! 不等于 前四个具有相同的优先级,后两个也具有相同的优先级,前四个的优先级要高于后2个的。当两个表达式用关系运算符连接起来时,就是关系表达式。关系表达式通常是用来判别某个条件是否满足,形式如下: 表达式1 关系运算符 表达式2 例如:IJ,I = = J,(I=4) (J=3),J+I J。,5、运算符与表达式,一、C程序基本概念,5. 逻辑运算符 关系运算符所能反映的是两个表达式之间的大小等于关系,那逻辑

15、运算符则是用于求条件式的逻辑值,用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式了。逻辑表达式的一般形式为: 逻辑与:条件式1 & 条件式2 逻辑或:条件式1 | 条件式2 逻辑非: ! 条件式 2,5、运算符与表达式,一、C程序基本概念,逻辑与,是指当条件式 1和条件式2都为真时结果为真(非0值),不然为假(0值)。也就是说运算会先对条件式1进行判断,如果为真(非0值),则继续对条件式2 进行判断,当结果为真时,逻辑运算的结果为真(值为 1),如果结果不为真时,逻辑运算的结果为假(0 值)。如果在判断条件式1时就不为真,就不用再判断条件式2了,而直接给出运算结果为假。 逻辑或,是指只要

16、二个运算条件中有一个为真时,运算结果就为真,只有当条件式都不为真时,逻辑运算结果才为假。 逻辑非则是把逻辑运算结果值取反,也就是说如果两个条件式的运算值为真,进行逻辑 非运算后则结果变为假,条件式运算值为假时最后逻辑结果为真。,5、运算符与表达式,一、C程序基本概念,6. 位运算符 位运算符的作用是按位对变量进行运算,但是并不改变参与运算的变量的值。如果要求按位改变变量的值,则要利用相应的赋值运算。还有就是位运算符是不能用来对浮点型数据进行操作的。单片机c语言中共有6种位运算符,表5-6是它们的逻辑真值表。位运算一般的表达形式如下: 变量 1 位运算符 变量 2 位运算符也有优先级,从高到低依次是:“”(按位取反) “”(右移) “&”(按位与)“”(按位异或) “|”(按位或)。表 5-6是位逻辑运算符

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

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

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