单片机与嵌入式系统基础chapter4课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机与嵌入式系统基础chapter4课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 嵌入式 系统 基础 chapter4 课件
- 资源描述:
-
1、4.1 C51特点及程序结构特点及程序结构 4.2 C51的数据类型及运算符的数据类型及运算符4.3 C51程序设计基础程序设计基础教学目的和要求教学目的和要求掌握掌握C51C51程序设计基础,能够利用程序设计基础,能够利用C51C51编写编写基本基本MCS-51MCS-51单片机应用系统程序单片机应用系统程序*C51特特点点及及程程序序结结构构v C51特点特点 语言简洁,使用方便灵活:关键字少语言简洁,使用方便灵活:关键字少 可移植性好:不依赖于机器硬件可移植性好:不依赖于机器硬件 方便操作计算机硬件:可访问机器物理地方便操作计算机硬件:可访问机器物理地址和进行位操作址和进行位操作 生成的
2、目标代码质量高:仅比用汇编语言生成的目标代码质量高:仅比用汇编语言编写的低编写的低101020%20%不能自动检查数组的边界不能自动检查数组的边界 各种运算符的优先级别多:各种运算符的优先级别多:1515个个C51特特点点及及程程序序结结构构v C51程序结构程序结构 includeinclude /预处理命令预处理命令long fun1()long fun1();/函数说明函数说明 main()main()/主函数主函数 /*每个函数都由每个函数都由“函数定义函数定义”和和“函数函数体体”组成,组成,main()main()函数是程序的入口函数是程序的入口 */fun1()fun1()/功能
3、函数功能函数 C51特特点点及及程程序序结结构构v C51程序结构程序结构 includeinclude /预处理命令预处理命令long fun1()long fun1();/函数说明函数说明 main()main()/主函数主函数 /*每个函数都由每个函数都由“函数定义函数定义”和和“函数函数体体”组成,组成,main()main()函数是程序的入口函数是程序的入口 */fun1()fun1()/功能函数功能函数 C51特特点点及及程程序序结结构构v C51关键字关键字 bitbit声明一个位标量或位类型的函数声明一个位标量或位类型的函数sbitsbit声明一个可位寻址变量声明一个可位寻址变
4、量sfrsfr声明一个特殊功能寄存器声明一个特殊功能寄存器sfr16sfr16声明一个声明一个1616位的特殊功能寄存器位的特殊功能寄存器datadata直接寻址的内部数据存储器直接寻址的内部数据存储器bdatabdata可位寻址的内部数据存储器可位寻址的内部数据存储器idataidata间接寻址的内部数据存储器间接寻址的内部数据存储器pdatapdata分页寻址的外部数据存储器分页寻址的外部数据存储器xdataxdata外部数据存储器外部数据存储器codecode程序存储器程序存储器interruptinterrupt定义一个中断函数定义一个中断函数reentrantreentrant定义一
5、个再入函数定义一个再入函数usingusing定义芯片的工作寄存器定义芯片的工作寄存器C51特特点点及及程程序序结结构构v C51关键字关键字*ACCACC累加器累加器内部内部RAMRAM:E0HE0H*B B乘法寄存器乘法寄存器内部内部RAMRAM:F0HF0H*PSWPSW程序状态字程序状态字内部内部RAMRAM:D0HD0HSPSP堆栈指针堆栈指针内部内部RAMRAM:81H81HDPLDPL数据存储器指针低数据存储器指针低8位位内部内部RAMRAM:82H82HDPHDPH数据存储器指针高数据存储器指针高8位位内部内部RAMRAM:83H83H*IEIE中断允许控制器中断允许控制器内部
6、内部RAMRAM:A8HA8H*IPIP中断优先控制器中断优先控制器内部内部RAMRAM:D8HD8H*P0P0端口端口0 0内部内部RAMRAM:80H80H*P1P1端口端口1 1内部内部RAMRAM:90H90H*P2P2端口端口2 2内部内部RAMRAM:A0HA0H*P3P3端口端口3 3内部内部RAMRAM:B0HB0HC51特特点点及及程程序序结结构构v C51关键字关键字 PCONPCON电源控制及波特率选择电源控制及波特率选择内部内部RAMRAM:87H87H*SCONSCON串行口控制器串行口控制器内部内部RAMRAM:98H98HSBUFSBUF串行数据缓冲器串行数据缓冲
7、器内部内部RAMRAM:99H99H*TCONTCON定时器控制定时器控制内部内部RAMRAM:88H88HTMODTMOD定时器方式选择定时器方式选择内部内部RAMRAM:89H89HTL0TL0定时器定时器0 0低低8 8位位内部内部RAMRAM:8AH8AHTL1TL1定时器定时器1 1低低8 8位位内部内部RAMRAM:8BH8BHTH0TH0定时器定时器0 0低低8 8位位内部内部RAMRAM:8CH8CHTH1TH1定时器定时器1 1高高8 8位位内部内部RAMRAM:8DH8DH带带*号的特殊功能寄存器都是可以位寻址的号的特殊功能寄存器都是可以位寻址的寄存器寄存器 C51特特点点
8、及及程程序序结结构构v C51变量定义变量定义 若在程序中使用变量,必须先定义后使用,若在程序中使用变量,必须先定义后使用,需要用标识符作为变量名,并指出所用的数需要用标识符作为变量名,并指出所用的数据类型和存储模式:据类型和存储模式:【存储种类存储种类】数据类型数据类型 【存储器类型存储器类型】变量名表变量名表自动自动(auto(auto,缺省,缺省)、外部、外部(extern)(extern)、静态静态(static)(static)和寄存器和寄存器(register)(register)data(00-7FH,data(00-7FH,直接访问直接访问)bdada(20-2FH,bdada
9、(20-2FH,位位)idata(00-FFHidata(00-FFH,间接访问),间接访问)pdata(00-FFHpdata(00-FFH,外,外RAM)RAM)xdata(0000 xdata(0000FFFFH,FFFFH,外外RAMRAM)codecode(00000000FFFFHFFFFH,外,外ROMROM)sfr P1=0 x90;/sfr P1=0 x90;/声明声明P1P1口,其地址口,其地址90H90Hsfr16 T2=0 xCC;/sfr16 T2=0 xCC;/*声明声明5252定时器定时器2 2,1616位的位的T2T2*/sbit P1.0=P10;/sbit
10、P1.0=P10;/声明声明P1P1口第口第0 0位为位为P1.0P1.0sbit TI=0 x980;/sbit TI=0 x980;/*声明声明98H(SCON)98H(SCON)的第的第0 0位位为为TITI*/注意:注意:sfrsfr、sfr16sfr16、sbitsbit其声明语句只能放函数外。其声明语句只能放函数外。不能定义不能定义bitbit、sbitsbit、sfrsfr、sfr16sfr16型指针和数型指针和数组。组。sbitsbit、sfrsfr、sfr16sfr16通常用在通常用在5151单片机系统自带单片机系统自带的头文件中,具体参见的头文件中,具体参见reg51.hr
11、eg51.h或或reg52.hreg52.h。C51特特点点及及程程序序结结构构v C51绝对地址访问绝对地址访问 1.1.绝对宏绝对宏 使用使用“#include”#include”即可利用其中即可利用其中定义的宏来访问绝对地址,包括:定义的宏来访问绝对地址,包括:CBYTECBYTE、XBYTEXBYTE、PWORDPWORD、DBYTEDBYTE、CWORDCWORD、XWORDXWORD、PBYTEPBYTE、DWORDDWORD,具,具体用法参见体用法参见absacc.habsacc.h。例如:。例如:val=XWORD 0 x4000;/指向片外指向片外RAM的的4000H地址地址
12、val1=CBYTE 0 x0002;/指向指向ROM的的0002h地址地址C51特特点点及及程程序序结结构构v C51绝对地址访问绝对地址访问 2._at_ 2._at_ 关键字关键字 可以使用可以使用 _at_ _at_ 关键字来访问绝对地址。格式关键字来访问绝对地址。格式如下:如下:【存储器类型存储器类型】数据类型数据类型 标识符标识符 _at_ _at_ 地址常数地址常数 例如:例如:xdata char m10 _at_ 0 x1000;/*指定指定m数组从片外数组从片外RAM的的1000H开始开始*/注意:注意:(1)(1)绝对变量不能被初使化;绝对变量不能被初使化;(2)bit(
13、2)bit型函数及变量不能用型函数及变量不能用_at_at_指定。指定。*C51的的数数据据类类型型及及运运算算符符 v C51的数据类型的数据类型 C51C51的数据类型有的数据类型有基本类型基本类型、构造类型构造类型、指针指针类型类型与与空类型空类型。在在C51C51编译器中编译器中int int 和和 short short 相同,相同,float float 和和 double double 相同。相同。C51特特点点及及程程序序结结构构v C51的数据类型的数据类型 1.char 1.char 字符类型字符类型 长度长度1 1个字节,用于定义字符数据变量或常量。个字节,用于定义字符数
14、据变量或常量。分为分为signed charsigned char (默认默认)和和unsigned charunsigned char。signed char signed char 类型用字节中最高位字节表示数据类型用字节中最高位字节表示数据的符号,的符号,“0”0”表示正数,表示正数,“1”1”表示负数,负数表示负数,负数用补码表示,表示的数值范围是用补码表示,表示的数值范围是-128-128+127+127。unsigned char unsigned char 类型用字节中所有的位来表示数类型用字节中所有的位来表示数值,表示的数值范围是值,表示的数值范围是0 0255255。C51特
15、特点点及及程程序序结结构构v C51的数据类型的数据类型 2.int 2.int 整型整型 长度长度2 2个字节,用于存放一个双字节数据。个字节,用于存放一个双字节数据。分为分为signed intsigned int (默认默认)和和unsigned intunsigned int。signed int signed int 类型用字节中最高位字节表示数据类型用字节中最高位字节表示数据的符号,的符号,“0”0”表示正数,表示正数,“1”1”表示负数,负数表示负数,负数用补码表示,表示的数值范围是用补码表示,表示的数值范围是-32768-32768+32767+32767 。unsigned
16、int unsigned int 类型用字节中所有的位来表示数类型用字节中所有的位来表示数值,表示的数值范围是值,表示的数值范围是0 06553565535 。C51特特点点及及程程序序结结构构v C51的数据类型的数据类型 3.long 3.long 长整型长整型 长度长度4 4个字节,用于存放一个四字节数据。个字节,用于存放一个四字节数据。分为分为signed longsigned long (默认默认)和和unsigned longunsigned long。signed long signed long 类型用字节中最高位字节表示数据类型用字节中最高位字节表示数据的符号,的符号,“0”
17、0”表示正数,表示正数,“1”1”表示负数,负数表示负数,负数用补码表示,表示的数值范围是用补码表示,表示的数值范围是-2147483648-2147483648 +2147483647+2147483647 。unsigned int unsigned int 类型用字节中所有的位来表示数类型用字节中所有的位来表示数值,表示的数值范围是值,表示的数值范围是 0 042949672954294967295。C51特特点点及及程程序序结结构构v C51的数据类型的数据类型 4.float 4.float 浮点型浮点型 长度长度4 4个字节,在十进制中具有个字节,在十进制中具有 7 7 位有效数字
18、,位有效数字,是符合是符合 IEEEIEEE754 754 标准的单精度浮点型数据用标准的单精度浮点型数据用于存放一个四字节数据。于存放一个四字节数据。5.bit 5.bit 位标量位标量 利用它可定义一个位标量,但不能定义位指针,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,只也不能定义位数组。它的值是一个二进制位,只能是能是 0 0 或者或者 1 1。C51特特点点及及程程序序结结构构v C51的数据类型的数据类型 6.6.数组类型数组类型 数组是相同数据类型的元素按一定顺序排列的集数组是相同数据类型的元素按一定顺序排列的集合。合。将有限个类型相同的变量
19、用一个名字命名,然后将有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,名字称为数组名,用编号区分他们的变量的集合,名字称为数组名,编号称为下标。编号称为下标。例如:例如:int a5=1,2,3,4,5;int a5=1,2,3,4,5;char s=“Jilin University”;char s=“Jilin University”;C51特特点点及及程程序序结结构构v C51的数据类型的数据类型 7.7.结构体结构体 是一种组合数据类型,将若干个不同类型的变量是一种组合数据类型,将若干个不同类型的变量结合在一起而形成的一种数据集合体。结合在一起而形成的一种数据集合体
20、。组成该集合体的各个变量称为结构元素或成员,组成该集合体的各个变量称为结构元素或成员,整个集合体使用一个单独的结构变量名。整个集合体使用一个单独的结构变量名。8.8.共用体共用体 可以把不同类型的数据组合在一起使用,但它与可以把不同类型的数据组合在一起使用,但它与结构体在内存中存储变量的方式不同,结构体定结构体在内存中存储变量的方式不同,结构体定义的各个变量在内存中占用不同的内存单元,而义的各个变量在内存中占用不同的内存单元,而共用体可使不同的变量分时使用同一内存单元。共用体可使不同的变量分时使用同一内存单元。C51特特点点及及程程序序结结构构v C51的数据类型的数据类型 9.9.枚举枚举
21、声明一组命名常数的集合,当一个变量有几种可声明一组命名常数的集合,当一个变量有几种可能的取值时,可以将它定义为枚举类型。能的取值时,可以将它定义为枚举类型。10.10.指针指针 指针变量中存放的是指向另一个数据的地址。指针变量中存放的是指向另一个数据的地址。指针变量要占据一定的内存单元,在指针变量要占据一定的内存单元,在 C51 C51 中它中它的长度一般为的长度一般为 1 13 3个字节。个字节。指针变量定义的一般形式为:指针变量定义的一般形式为:数据类型说明符数据类型说明符 【存储器类型存储器类型】*指针变量指针变量名名C51特特点点及及程程序序结结构构v C51的运算符的运算符 运算符就
22、是完成某种特定运算的符号。运算符就是完成某种特定运算的符号。由运算符及运算对象所组成的具有特定含由运算符及运算对象所组成的具有特定含义的式子被称为表达式。义的式子被称为表达式。运算符按其在表达式中所起的作用,可分运算符按其在表达式中所起的作用,可分为:为:赋值赋值、算术算术、增量与减量增量与减量、关系关系、逻逻辑辑、位位、复合赋值复合赋值、逗号逗号、条件条件、指指针和地址运算符针和地址运算符、强制类型转换运算强制类型转换运算符和符和sizeofsizeof运算符运算符等。等。C51特特点点及及程程序序结结构构v C51的运算符的运算符 运算符按其在表达式中与运算对象的关系又可分运算符按其在表达
23、式中与运算对象的关系又可分为:为:单目、双目和三目运算符。单目、双目和三目运算符。单目运算符只需要有一个运算对象,双目单目运算符只需要有一个运算对象,双目运算符要求有两个运算对象,三目运算符运算符要求有两个运算对象,三目运算符要求有三个运算对象。要求有三个运算对象。&A=&bA=&b将将b b变量的地址存入变量的地址存入A A寄存器中寄存器中*A A用来取寄存器所指地址内的值用来取寄存器所指地址内的值Max=(ab)?a:b;/Max=(ab)?a:b;/三目运算符,条件运算符三目运算符,条件运算符具体参见表具体参见表4-24-2C51特特点点及及程程序序结结构构v C51的函数的函数 函数定
展开阅读全文