课程的基本要求课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《课程的基本要求课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程 基本要求 课件
- 资源描述:
-
1、课程的基本要求课程的基本要求 通过本课程的学习,应该通过本课程的学习,应该 掌握掌握C51的程序设计语言;的程序设计语言;掌握掌握8051的中断、定时器的中断、定时器/定位器、定位器、串行通信等内部资源的串行通信等内部资源的C编程方法;编程方法;正确理解单片机的正确理解单片机的C语言模块化设计方法;语言模块化设计方法;了解了解8051外部扩展资源的外部扩展资源的C程序设计方法。程序设计方法。单片机的单片机的C语言和程序设计语言和程序设计6.2 C语言与语言与MCS-51单片机单片机6.3 C51运算符、表达式及其规则运算符、表达式及其规则6.4 C51数据与运算数据与运算6.5 C51函数函数
2、6.6 库函数简介库函数简介 6.7 8051内部资源的内部资源的C51编程编程 6.1 概述概述6.1 单片机的单片机的C语言和程序设计语言和程序设计对于对于8051及其兼容单片机,目前有四种语言支持:汇编语及其兼容单片机,目前有四种语言支持:汇编语言、言、BASIC语言、语言、PL/M语言和语言和C语言。语言。C语言是一种编译型程序设计语言,它兼顾了各种高级语言是一种编译型程序设计语言,它兼顾了各种高级语言的特点,并具备汇编语言的功能。语言的特点,并具备汇编语言的功能。与汇编语言相比,与汇编语言相比,C语言有很多的优点:语言有很多的优点:不要求了解单片机的指令系统,仅要求对不要求了解单片机
3、的指令系统,仅要求对8051的存的存储器结构有初步了解;储器结构有初步了解;寄存器分配,不同存储器的寻址及数据类型等细节寄存器分配,不同存储器的寻址及数据类型等细节可由编译器管理;可由编译器管理;程序有规范的结构;程序有规范的结构;函数库提供很多的标准程序。函数库提供很多的标准程序。单片机的单片机的C语言和标准语言和标准C语言的比较语言的比较vC51与标准的与标准的C语言定义的库函数不同语言定义的库函数不同.vC51中的数据类型和标准中的数据类型和标准C的数据类型也有一定的区别的数据类型也有一定的区别.vC51变量与标准变量与标准C中变量的存储模式不一样中变量的存储模式不一样.vC51与标准与
4、标准C的输入的输入/输出处理不一样输出处理不一样.vC51与标准与标准C语言在函数使用方面有一定的区别语言在函数使用方面有一定的区别.学习重点学习重点:学习学习C51程序设计,重点掌握标准程序设计,重点掌握标准C语言和语言和C51的区别的区别.主要内容主要内容:vC51的数据类型和存储类型、的数据类型和存储类型、v基本运算、构造数据类型、基本运算、构造数据类型、v函数以及程序设计中的其他一些问题等内容函数以及程序设计中的其他一些问题等内容.6.2 C语言与语言与MCS-51单片机单片机6.2.1 C语言编译器与程序开发过程语言编译器与程序开发过程6.2.2 C51程序结构程序结构全局变量说明全
5、局变量说明 /*可被本程序的各函数引用可被本程序的各函数引用*/函数函数1说明说明函数函数n说明说明主函数主函数main()局部变量说明局部变量说明 *只能在本函数内引用只能在本函数内引用*执行语句执行语句(包括函数调用语句包括函数调用语句)(形式参数表形式参数表)函数函数1(形式参数说明形式参数说明)局部变量说明局部变量说明 *只能在本函数内引用只能在本函数内引用*执行语句执行语句(包括调用其他函数语句包括调用其他函数语句)(形式参数表形式参数表)函数函数n(形式参数说明形式参数说明)局部变量说明局部变量说明 执行语句执行语句 例例6.1 程序如下:程序如下:#include#include
6、#define CON8279 XBYTE OX6EFF#define uchar unsigned charvoid INIT79();/*8279初始化初始化*/void main()uchar xdata*p;uchar code TAB =0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90 /*0,1,2,3,4,5,6,7,8,9 */INIT79();P=&DAT8279;While(1)while(IE1=0);/*等待键输入等待键输入*/IE1=0;DAT8279=TAB*P;Void INIT79(void)
7、CON8279=0 xDC;CON8279=0 x10;注释部份/*/这部分内容不会被编译,也不被执行 编译预处理程序编译、执行前系统自动进行的特殊处理特点:以#开头 结束处无分号#define CON8279 XBYTE#define CON8279 XBYTE0 x6EFF 0 x6EFF#define#define 宏定义命令宏定义命令CON8279 CON8279 符号常量符号常量 0 x6EFF 0 x6EFF 宏体(可以是一个表达式,如宏体(可以是一个表达式,如3+43+4)v作用:用简单符号代表宏体部份内容作用:用简单符号代表宏体部份内容v意义:直观意义:直观/多次使用多次使用/
8、便于修改便于修改v注意:注意:#define#define 可出现在程序的任一位置(作可出现在程序的任一位置(作用范围:由此行到程序末尾)用范围:由此行到程序末尾)v宏定义不是宏定义不是CC语句,不必在行末加分号,否则会语句,不必在行末加分号,否则会连分号一起置换。连分号一起置换。v#include 标准方式标准方式只按标准方式只按标准方式(系统存放系统存放C库函数头文件所在目录库函数头文件所在目录)查找所要包含的文件查找所要包含的文件 对对CX51,CX51,默认只在默认只在C51includeC51include目录下查找目录下查找v#include “”先在源文件所在目录找指定头文件,先
9、在源文件所在目录找指定头文件,若无再按标准方式找(更保险)若无再按标准方式找(更保险)小小 结结CX51CX51语言程序的基本特点语言程序的基本特点CX51语言是一种函数式语言,其程序基本组成是函数语言是一种函数式语言,其程序基本组成是函数每个每个CX51程序必须有一个、也只能有一个主函数程序必须有一个、也只能有一个主函数main不管主函数在程序中的位置如何,程序执行总是从主函数不管主函数在程序中的位置如何,程序执行总是从主函数开始开始所有变量必须先定义(规定数据类型)后使用所有变量必须先定义(规定数据类型)后使用每个语句必须用分号每个语句必须用分号“;”结束(注意是结束(注意是“每个语句每个
10、语句”而不而不“每行语句每行语句”)编译预处理命令不是语句(行末不能用分号结束)编译预处理命令不是语句(行末不能用分号结束)Cx51语言本身没有输入语言本身没有输入/输出语句,其输入输出语句,其输入/输出功能须通输出功能须通过调用标准函数通过串行口实现过调用标准函数通过串行口实现使用系统提供的标准库函数或其他文件提供的现成函数时,使用系统提供的标准库函数或其他文件提供的现成函数时,必须使用必须使用“文件包含文件包含”。6.3 C51运算符、表达式及其规则运算符、表达式及其规则6.3.1 算术运算符及表达式算术运算符及表达式1.基本的算术运算符基本的算术运算符C51语言的算术运算符一共有语言的算
11、术运算符一共有5种:种:+加法运算符加法运算符 减法运算符减法运算符*乘法运算符乘法运算符/除法运算符除法运算符%模(取余数)运算符模(取余数)运算符例:14%4=0 x022.自增(自增(+),自减()运算符),自减()运算符(1)当)当+j(或(或j)时,是先将变量)时,是先将变量j的值加的值加1 (或减小(或减小1),再取变量值;),再取变量值;(2)当)当j+(或(或j)时,是先取变量值,)时,是先取变量值,再把变量的值加再把变量的值加1(或减(或减1)例如:例如:int i,j,k;i=4;j=+i;/*j 值为值为5,i 值也为值也为5*/i=5;k=i+;/*k值为值为5,i 值
12、为值为6*/3.算术表达式及优先级和结合性算术表达式及优先级和结合性 单目运算符优先级高于双目运算符,双目运算符优先级单目运算符优先级高于双目运算符,双目运算符优先级高于双目赋值运算符。高于双目赋值运算符。6.3.2 关系运算符、关系表达式关系运算符、关系表达式C51语言共有语言共有6种关系运算符:种关系运算符:(小于)(小于)(大于)(大于)=(大于等于)(大于等于)=(等于)(等于)!=(不等于)(不等于)6.3.3 逻辑运算符及表达式逻辑运算符及表达式C51提供三种以逻辑量为操作数的逻辑运算符:提供三种以逻辑量为操作数的逻辑运算符:!逻辑非逻辑非&逻辑与逻辑与|逻辑或逻辑或例如:若例如:
13、若a=3,b=4则则 !a=0 因为因为a=3为非为非0数,即为逻辑数,即为逻辑1;a|b=1 因为因为a、b为非为非0数,是逻辑数,是逻辑1;a&b=1因为因为a、b为非为非0数,是逻辑数,是逻辑1;!a&b=0 因为!因为!a优先于优先于&。6.3.4 位运算符及表达式位运算符及表达式C51语言提供语言提供6种位运算符,种位运算符,所有的位运算符都是针对整型操作数,而不能针对实型数据。所有的位运算符都是针对整型操作数,而不能针对实型数据。&按位与按位与 (例:(例:char a=3,b=6;则:则:a&b=2.)|按位或按位或 按位异或按位异或 按位取反按位取反 右移右移 左移左移635
14、赋值运算符赋值运算符赋值运算符赋值运算符 即是把运算符右侧操作数赋给左侧的操作数即是把运算符右侧操作数赋给左侧的操作数。即变量名即变量名=表达式表达式 当当“=”两侧类型不一致时,系统自动将右边表达式的值转两侧类型不一致时,系统自动将右边表达式的值转换成左侧变量的类型,再赋给该变量,具体规则如下:换成左侧变量的类型,再赋给该变量,具体规则如下:当整型变量当整型变量=实型数据时,实数的小数部分被舍去;实型数据时,实数的小数部分被舍去;当实型变量当实型变量=整型数据时,变量中的数值为浮点形式;整型数据时,变量中的数值为浮点形式;当短字节整型变量当短字节整型变量=长字节整型数据时,长字节整型数据时,
15、则长字节整型数据的低位数据赋给短字节整型变量则长字节整型数据的低位数据赋给短字节整型变量;当长字节整型变量当长字节整型变量=短字节整型数据时,短字节整型数据时,则短字节整型数据赋给长字节整型变量的低位数据,而则短字节整型数据赋给长字节整型变量的低位数据,而长字节整型变量的每一位高位数据被赋给短字节整型数据长字节整型变量的每一位高位数据被赋给短字节整型数据的符号值。的符号值。赋值语句赋值语句作用:使变量获得具体的运算值。作用:使变量获得具体的运算值。q语句形式语句形式 变量名变量名=表达式(常量、变量、函数、算式及其混合)表达式(常量、变量、函数、算式及其混合);lower=0;/*变量变量lo
16、werlower赋初值赋初值*/s=sin(x);/*求求sin(x)sin(x)*/注意:注意:函数函数sin()在头文件在头文件math.h中定义。中定义。所以程序开头处必须加上一行所谓所以程序开头处必须加上一行所谓“文件包含文件包含”:#include q变量赋初值亦可在数据类型定义时进行:变量赋初值亦可在数据类型定义时进行:int lower=0,x;把变量声明语句与赋值结合在一起的语句,术语上称为把变量声明语句与赋值结合在一起的语句,术语上称为 “初始化语句初始化语句”。2.复合赋值运算符复合赋值运算符 凡是有两个运算对象的运算符都可以与赋值运算符凡是有两个运算对象的运算符都可以与赋
17、值运算符“=”一起组成复合运算符。一起组成复合运算符。复合赋值运算符有以下复合赋值运算符有以下10种:种:+=,-=,*=,/=,%=,=,&=,|=,=。例如:例如:a+=b 等价于等价于 a=(a+b)a=4 等价于等价于 a=(a4)64 C51数据与运算数据与运算641 数据类型数据类型数据类型长度长度(bit)长度长度(byte)值域范围值域范围位型位型(bit)10,1字符型字符型(char)Unsigned char(char)Signed char88110255-128127整型整型(int)Unsigned intSigned int(int)161622065535-32
18、76832767长整型长整型(long)Unsigned longSigned long(long)32324404294967295-2147488364821474883647浮点型浮点型(float)Floatdouble326448约约10-381038约约10-30810308一般指针一般指针243存贮空间存贮空间065535 80C51单片机采用哈佛结构,单片机采用哈佛结构,RAM与与ROM分开,分开,SFR与片内与片内RAM统一编址。统一编址。KEIL CX51编译器将变量、常量定义成不同的存储类编译器将变量、常量定义成不同的存储类型型(data,bdata,idata,pdat
19、a,xdata,code)的方法,的方法,将它们定位在不同的存储区中。将它们定位在不同的存储区中。8051的变量的存储类型定义为:的变量的存储类型定义为:存储类别存储类别变量类型变量类型 存储类型存储类型 变量名变量名其中存储种类与存储类型为可选项。其中存储种类与存储类型为可选项。存储类别存储类别主要有四种:自动(主要有四种:自动(auto)(默认的存储种)(默认的存储种类)、外部(类)、外部(extern)、静态()、静态(static)和寄存器)和寄存器(register)。)。存储类型存储类型主要有:主要有:data,bdata,idata,pdata,xdata,code等。等。642
20、 变量及其数据类型变量及其数据类型1变量的说明变量的说明变量的格式如下:变量的格式如下:存储类说明存储类说明 类型说明符类型说明符修饰符修饰符标识符标识符=初值初值其中其中 部分可有可无。部分可有可无。(1)类型说明符)类型说明符 (char,int,long,)(2)标识符)标识符(3)变量初始化)变量初始化(4)存储类说明符)存储类说明符 aauto(自动存储类):堆栈(自动存储类):堆栈(默认存储类)默认存储类)bregister(寄存器存储类):(寄存器存储类):cextern(外部存储器类外部存储器类):dstatic(静态存储类):(静态存储类):(5)修饰符)修饰符 由于由于80
21、51存储空间的多样性,存储空间的多样性,C51提供了修饰存储空间提供了修饰存储空间类型的修饰符,类型的修饰符,用于指明定义的变量应分配在什么存储空间中。用于指明定义的变量应分配在什么存储空间中。C51存储空间类型的修饰符有存储空间类型的修饰符有 data,idata,pdata,xdata,code,bdata,无修饰符时,取决于编译时选用的存储方式无修饰符时,取决于编译时选用的存储方式存储类别存储类别 决定变量的决定变量的“寿命寿命”(何时(何时“生生”,何时,何时“灭灭”)一个完整的变量说明格式如下:一个完整的变量说明格式如下:存储类别存储类别 数据类型数据类型 存储类型存储类型 变量名变
22、量名如如 static int data x,y;static int data x,y;C51程序的存储类别有:程序的存储类别有:register型(寄存器型)型(寄存器型)存取速度快,一般只允许23个,且限于char型和int型,通常用于循环变量。auto型(自动变量型)型(自动变量型)优点同一内存区可被不同变量反复使用。以上两种变量均属于“动态存储型”,即调用函数时才为这些变量分配单元,函数调用结束其值自动消失。static型(静态变量型)型(静态变量型)程序执行开始至结束,始终占用该存储空间 extern型(外部变量型)型(外部变量型)同上,其值可供其他源文件使用以上两种均属于“静态存
23、储”性质,即从变量定义处开始,在整个程序执行期间其值都存在。从变量的存在时间来看,可分为静态存储变量和动态存从变量的存在时间来看,可分为静态存储变量和动态存储变量。储变量。v静态存储变量是指该变量在程序运行期间其存储空间不静态存储变量是指该变量在程序运行期间其存储空间不变,全局变量为静态存储变量;变,全局变量为静态存储变量;v动态存储变量是指该变量的存储空间不确定,在程序运动态存储变量是指该变量的存储空间不确定,在程序运行期间需要动态地为该变量分配存储空间,局部变量为行期间需要动态地为该变量分配存储空间,局部变量为动态变量。动态变量。变量的生存期 静态存储变量:与程序“共存亡”动态存储变量:与
24、函数“共存亡”寄存器变量:同动态变量未说明存储类别时,函数内定义的变量默认为auto型函数外定义的变量默认为extern型。2变量的数据类型变量的数据类型 对于对于Franklin C51编译器编译器,只有只有bit和和Unsigned char两两种数据类型可以直接支持机器指令,种数据类型可以直接支持机器指令,为了提高单片机的数据处理速度,在编制为了提高单片机的数据处理速度,在编制C51程序时一程序时一定要对变量和数据类型进行慎重的选择。定要对变量和数据类型进行慎重的选择。(1)位变量()位变量(bit)bit是是C51特有的数据类型,特有的数据类型,其值为其值为:1(ture)或)或0(f
25、alse)。)。bit类型可用的修饰符有类型可用的修饰符有bdata,data,idata,但最好是但最好是bdata修饰符修饰符例如:例如:bdata bit mark1 data bit mark2 idata bit mark3(2)字符变量()字符变量(char)字符变量的长度为一个字节,字符变量的长度为一个字节,标识符为标识符为char(-128127)或)或 unsigned char(0-255),(3)整型变量()整型变量(int)整型变量(整型变量(int)的长度为二个字节,)的长度为二个字节,标识符为标识符为int,unsigned int,。0 x78 0 x56 。整型
展开阅读全文