《微控制器原理及应用技术》课件第6章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《微控制器原理及应用技术》课件第6章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微控制器原理及应用技术 控制器 原理 应用技术 课件
- 资源描述:
-
1、第6章 C51语言程序设计基础6.1 C51语言基础语言基础6.2 C51的函数和数组的函数和数组6.3 C51的编程规范的编程规范 6.4 C51的基本运用的基本运用教学提示:本章在汇编语言基础上讲解C51的特点,介绍了C51的数据类型、常量、常用运算符、表达式、基本语句及C51函数和数组。在此基础上,采用C51进行单片机简单功能的应用,力求尽快实现从汇编语言到C51的过渡。教学要求:在单片机上采用C语言开发已成为一种趋势。通过本章的学习,读者可了解C51与普通C语言及汇编语言的不同,并学会利用它进行单片机开发,这是进行后续章节学习重要的一步。在单片机的开发中,以前基本上是使用汇编语言,也有
2、使用BASIC语言进行开发的。从90年代中期以后,使用C语言开发单片机已成为一种流行的趋势。它具有使用方便、编程效率高及仿真调试容易等突出特点。6.1 C51语言基础语言基础C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,能产生高效率的紧凑代码。C语言含有许多本应由汇编语言实现的机器级函数,与汇编语言相比,C语言又有如下优点:不需要了解51单片机的指令系统,仅仅要求对存储器结构有初步了解;程序有规范的结构,可分为不同的函数,使得程序结构化;语言简洁、紧凑,使用方便、灵活。运算符极其丰富;提供的库包含许多标准子程序,具有较强的数据处理能力;编程和程序调试效率高;程序易于模块化,便
3、于移植。C51的版本很多,下面就以德国KeilSoftware公司专门为8051单片机开发的KeilC51编译器为例,对MCS51单片机如何使用C51进行编程做一个简单的介绍。6.1.1 C51程序创建过程1.C51程序的创建过程第一步:创建C51工程文件,如图6.1所示。点击projectnewproject输入工程名myproject,如图6.2所示。保存文件选择器件Atmel,如图6.3所示。AT89C51确定,如图6.4所示。图6.1 创建C51工程文件 图6.2 输入工程名 图6.3 选择器件 图6.4 点击确定 第二步:创建源(.c)文件。点击FilenewFile,如图6.5所示
4、。点击保存输入源文件(.c)myproject.c,如图6.6所示。点击Target1SourceGroup1点击右键AddFilestoGroupSourceGroup1添加(.c),如图6.7所示。第三步:对生成文件进行设置。鼠标放于Target1右击OptionsforTargetTarget1,如图6.8所示。TargetOutputCreateHEXFileHEXFormat:确定,如图6.9所示。图6.5 创建文件 图6.6 输入源文件图6.7 添加 图6.8 OptionsforTargetTarget1图6.9 点击确定 2.C51编程时常用到的头文件absacc.h:包含允许
5、直接访问8051不同存储区的宏定义。ctype.h:字符转换和分类程序。math.h:数学程序。stdlib.h:存储区分配程序。assert.h:文件定义assert宏,可以用来建立程序的测试条件。reg52.h:52的特殊寄存器。intrins.h:包含指示编译器产生嵌入式固有代码的程序的原型。6.1.2 存储空间定义在C51中,变量存储空间有以下两种定义方式:(1)数据类型 存储器类型 变量名(2)存储器类型 数据类型 变量名C51内部只有128B的RAM,因而必须根据需要指定各种变量的存放位置。C51定义的存储器类型与存储空间如表6.1所示。表6.1 C51定义的存储器类型与存储空间6
6、.1.3 C51数据类型C语言数据类型包括:基本类型、构造类型、指针类型和空类型。其中,基本类型包括位(bit)、字符(char)、整型(int)、短整型(short)、长整型(long)、浮点型(float)以及双精度浮点型(double);构造类型包括数组(array)、结构体(struct)、共用体(union)和枚举类型(enum)。对于51单片机编程而言,支持的数据类型是和编译器有关的,比如在C51编译器中整型(int)和短整型(short)相同,浮点型(float)和双精度浮点型(double)相同。表6.2列出了KeilC51编译器所支持的数据类型。表6.2 C51数据类型 6.
7、1.4 C51的常量C语言中的数据有常量与变量之分。在程序运行过程中,值不能改变的量称为常量,而变量是可以在程序运行过程中不断变化的量。C51常量有五种类型:位型常量、整型常量、浮点型常量、字符型常量和字符串型常量。(1)位型常量:位型常量是1位二进制值。(2)整型常量:可以表示为十进制,如17,0,33等。若表示为十六进制,则以0 x开头,如0 x2A,0 x5D等。长整型就在数字后面加字幕L,如:104L,034L等。表6.3 整型常量表(3)浮点型常量:浮点型常量可表示为十进制和指数形式。十进制由数字和小数点组成,如:0.8878,334.5等;指数表示形式为:数字.数字e数字,方括号“
8、”中的内容为可选项,其中内容根据具体情况可有可无,但其余部分必须有,如125e3,7e9,3.0e3等。在C51中浮点型常量默认为float型。对于绝对值小于1的浮点型常量,其小数点前的零可以省略。例如,0.34可以写成.34,0.021E3可以写成.021E3。(4)字符型常量:字符型常量是单引号内的字符,如a,d等,用单个字符表示,用一对单引号括起来,其中单引号只起定界作用,并不表示字符。转义字符用于标示ASCII码字符集中的格式控制字符和特定功能字符。这些字符不能打印,例如:(),(“),()等。常用的转义字符如表6.4所示。(5)字符串型常量:字符串型常量由双引号内的字符组成,如“ER
9、ROR”,“OK”等。当双引号内没有字符时,为空字符串。在C语言中字符串常量是作为字符类型数据来处理的。在存储字符串时,系统会在字符串尾部加上转义字符0,作为该字符串的结束符。表6.4 常用的转义字符 6.1.5 C51常用的运算符运算符表示特定的算术或逻辑操作的符号。C语言中的运算符和表达式数量很多,这在高级语言中是少见的。正是丰富的运算符和表达式使C语言功能十分完善。这也是C语言的主要特点之一。C51语言有算术运算符、逻辑运算符、关系运算符、位运算符、赋值运算符、条件运算符和指针运算符7类运算符。1.算术运算符算术运算符用于各类数值运算,包括加(),减(),乘(),除()、求余或模运算(%
10、),自增(),自减()7种(见表6.5)。用算术运算符和括号将运算对象连接起来的式子称为算术表达式。其中,运算对象包括常量、变量、函数、数组、结构等。表6.5 算术运算符表 2.逻辑运算符逻辑运算符用于逻辑运算,包括逻辑与(&)、逻辑或(|)和逻辑非(!)3种。(1)“!”运算符:进行逻辑非运算。(2)“|”运算符:进行逻辑或运算。(3)“&”运算符:进行逻辑与运算。运算符“&”和“|”符号是双目运算符,要求有两个运算对象,而“!”运算符为单目运算符,只要求有一个运算对象。“!”运算符的优先级高于算术运算符,算术运算符优先级高于关系运算符,关系运算符优先级高于逻辑运算符“&”和“|”,“&”和
11、“|”的优先级高于赋值运算符。用逻辑运算符将关系表达式或逻辑量连接起来的式子成为逻辑表达式,逻辑表达式的结合性为自左向右,其值应是一个逻辑的真或假。逻辑表达式的值和关系表达式的值相同,以1代表真,以0代表假。3.关系运算符关系运算符用于比较运算,包括大于()、小于()、小于等于()、等于()和不等于(!)6种(见表6.6)。前四种优先级相同,后两种优先级相同,前四种的优先级高于后两种,关系运算符的优先级低于算术运算符,但高于赋值运算符。表6.6 关系运算符表 4.位运算符位运算符是用来进行二进制位运算的运算符,包括逻辑位运算符和移位运算符(见表6.7)。逻辑位运算符包括位与(&)、位或(|)、
12、位取反()和位异或();移位运算符包括位左移()。除了位取反()是单目运算符,其它位运算符均为双目运算符。5.赋值运算符赋值运算符用于赋值运算,分为简单赋值()、复合算术赋值(,*,/,%)和复合位运算赋值(&,|,)。表6.7 位运算符表 6.条件运算符条件运算符是一个三目运算符。唯一的三目运算是条件运算,条件运算符是“?:”,条件表达式的形式为:?:其含义为:若的值为“真”,则条件表达式取的值;否则,取的值。7.指针运算符指针运算符用于取内容(*)和取地址(&)两种运算。6.1.6 C51的表达式表达式由操作数和运算符组成。C51主要有算术运算表达式、赋值表达式、逗号表达式、关系表达式和逻
13、辑表达式5种表达式。1.算术运算表达式算术运算表达式是指由算术运算符将操作数连接起来的式子,可以使用括号。例如:(ab)*c2.赋值表达式赋值表达式是指由赋值运算符“”将一个变量和一个常量或表达式连接起来的式子。例如:a23;cab3.逗号表达式逗号表达式是指由逗号运算符“,”和括号将多个表达式连接起来的式子。一般形式为:表达式1,表达式2,表达式n。4.关系表达式关系表达式是指将两个表达式用关系运算符连接起来的式子,关系运算又称比较运算。例如:xy;x!y5.逻辑表达式逻辑表达式是指将两个表达式用逻辑运算符连接起来的式子。逻辑表达式中操作的对象可以是任意类型的数据,其值为逻辑值“真”或“假”
展开阅读全文