电子教案---单片机原理及应用——基于Proteus和Keil C(第2版)[林立,张俊亮]第4章.ppt
《电子教案---单片机原理及应用——基于Proteus和Keil C(第2版)[林立,张俊亮]第4章.ppt》由会员分享,可在线阅读,更多相关《电子教案---单片机原理及应用——基于Proteus和Keil C(第2版)[林立,张俊亮]第4章.ppt(123页珍藏版)》请在三一办公上搜索。
1、第4章 单片机的C51语言,4.1 C51的程序结构 4.2 C51的数据结构 4.3 C51与汇编语言的混合编程 4.4 C51仿真开发环境 4.5 C51初步应用编程,第4章单片机的C51语言,51汇编语言能直接操作单片机的系统硬件,指令执行速度快。但其程序可读性差,且编写、移植困难。,第4章单片机的C51语言,C51是为51系列单片机设计的一种C语言,其特点:,C51语言已成为51系列单片机程序开发的主流软件方法。,结构化语言,代码紧凑效率可与汇编语言媲美接近真实语言,程序可读性强易于调试、维护库函数丰富,编程工作量小产品开发周期短机器级控制能力,功能很强适合于嵌入式系统开发与汇编指令无
2、关,易于掌握在单片机基础上上手快,第4章单片机的C51语言,C51与标准C语言对比相同之处:语法规则、程序结构、编程方法差异之处:数据结构(数据类型、存储模式)、中断处理(第5章)、端口扩展(第8章)本章教学思路:在标准C的基础上学习数据结构(数据类型、存储模式)掌握C51软件开发方法(Keil Vision3软件)在C51的基础上学习单片机I/O口应用(入门与进阶),第4章单片机的C51语言,4.1 C51的程序结构 4.2 C51的数据结构 4.3 C51与汇编语言的混合编程 4.4 C51仿真开发环境 4.5 C51初步应用编程,程序由函数组成(一个主函数,或一个主函数和若干自定义函数)
3、;利用预处理命令对变量或函数进行集中定义或说明;函数和变量都需遵循先定义后使用的基本原则;主函数中的所有语句执行完毕,则程序结束。,第4章单片机的C51语言,C51与标准C程序结构完全相同,第4章单片机的C51语言,举例:LED闪烁控制功能,LOOP:CLR P1.0 ACALL DEL50 SETB P1.0 SJMP LOOPDEL50:MOV R7,#200DEL1:MOV R6,#125DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 RET END,第4章单片机的C51语言,预处理命令-,函数说明-,全局变量定义-,主函数-,自定义函数-,局部变量定义-,程序体,程序体-
4、,第4章单片机的C51语言,4.1 C51的程序结构 4.2 C51的数据结构 4.3 C51与汇编语言的混合编程 4.4 C51仿真开发环境 4.5 C51初步应用编程,第4章单片机的C51语言,1.C51的变量,在程序执行过程中,数值可以发生改变的量称为变量。,变量名与存储单元地址相对应,变量值与存储单元的内容相对应。,例如,在哈佛结构的存储空间中如何建立变量概念?,第4章单片机的C51语言,【存储种类】数据类型【存储类型】变量名,(标准C),(标准C),*括号项可以缺省(但需有缺省值),C51变量定义的四要素:,(C51特有),(标准C+C51),第4章单片机的C51语言,【存储种类】数
5、据类型【存储类型】变量名,共有4个说明符:1、auto(自动型)变量的作用范围在定义它的函数体或语句块内。执行结束后,变量所占内存即被释放。2、extern(外部型)在一个源文件中被定义为外部型的变量,在其它源文件中需要通过extern说明方可使用。3、static(静态型)利用static可使变量定义所在的函数或语句块执行结束后,其分配的内存单元继续保留。4、register(寄存器型)将变量对应的储存单元指定为通用寄存器,以提高程序运行速度。,缺省存储种类为auto(自动)型变量,第4章单片机的C51语言,数据的不同格式叫做数据类型,*有符号数类型可以忽略signed标识符,标准C语言的数
6、据类型,【存储种类】数据类型【存储类型】变量名,第4章单片机的C51语言,C51扩充数据类型:bit、sfr或sfr16、sbit,bit 型,关键词bit用于定义一个位变量,语法规则:,bit bit_name=0或1;,例如:bit door=0;/定义一个叫door的位变量且初值为0,与标准C的变量定义相似:int a=5;/定义一个初值为5的整形变量a/语法规则:int int_name=常数;,第4章单片机的C51语言,sfr或sfr16型,关键词sfr或sfr16用于定义SFR字节地址变量,语法规则:sfr 或 sfr16 sfr_name=字节地址常数;,51MCU中有21个SF
7、R,如何定义与这些单元相关的变量?,第4章单片机的C51语言,例如,sfr P0=0 x80;/定义P0口地址80Hsfr PCON=0 x87;/定义PCON地址87H sfr16 DPTR=0 x82;/定义DPTR的低端地址82H,注意:C语言中十六进制整数是数值前加0 x或0X前缀,第4章单片机的C51语言,sbit型,部分SFR具有位地址,如何定义与这些位地址相关的变量?,绝对位地址,相对位地址,字节地址,两种位地址表达形式:相对位地址、绝对位地址,第4章单片机的C51语言,1)将SFR的绝对位地址定义为位变量名sbit bit_name=位地址常数;例如,sbit CY=0 xD7
8、;,3)将SFR的相对位位置定义位变量名 sbit bit_name=sfr_name 位位置;例如,sbit CY=PSW7;,2)将SFR的相对位地址定义为位变量名sbit bit_name=sfr字节地址 位位置;例如,sbit CY=0 xD07;,关键词sbit用于定义SFR位地址变量,三种定义形式:,C51编译器在头文件“REG51.H”中定义了全部sfr/sfr16和sbit变量。,第4章单片机的C51语言,用一条预处理命令#include 把这个头文件包含到C51程序中,无需重新定义即可直接使用它们的名称。,第4章单片机的C51语言,应用举例:,第4章单片机的C51语言,【存储
9、种类】数据类型【存储类型】变量名,51单片机的 3个逻辑存储空间:,片内数据存储器,片外数据存储器和程序存储器。,建立C51存储类型与存储空间的对应关系,第4章单片机的C51语言,C51的存储类型与存储空间对应关系表,编译模式,【存储种类】数据类型【存储类型】变量名,3种编译模式分别对应于3种缺省存储类型:,第4章单片机的C51语言,【存储种类】数据类型【存储类型】变量名,C51编译器可根据当前采取的编译模式自动认定默认的存储类型约定:若无特殊声明,一般均为“SMALL编译模式”,变量名可以由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,变量名长度随编译系统而定。,变量名具有
10、字母大小写的敏感性,如SUM和sum代表不同的变量。强调:头文件中定义的变量都是大写的,若程序采取小写变量则需要重新定义。,第4章单片机的C51语言,【存储种类】数据类型【存储类型】变量名,第4章单片机的C51语言,C51扩展的若干关键字一览表,变量名不得使用标准C语言和C51语言的关键字。,unsigned char data system_status=0;,第4章单片机的C51语言,/定义system_status为无符号字符型自动变量,该变量位于data区中且初值为0。,数据结构定义举例,变量名为system_status,位与片内RAM区,无符号字符型,自动型,初值为零,第4章单片机
11、的C51语言,unsigned char bdata status_byte;,unsigned int code unit_id2=0 x1234,0 x89ab;,static char m,n;,/定义status_byte为无符号字符型自动变量,该变量位于bdata区,/定义unit_id2为无符号整型自动变量,该变量位于code区中,是长度为2的数组,且初值为0 x1234和0 x89ab。,/定义m和n为2个位于data区中的有符号字符型静态变量。,2.C51的指针,第4章单片机的C51语言,标准C语言指针的一般定义形式为:数据类型*指针变量名=这表示p1是一个指向int型变量的指
12、针变量,此时p1的值为int型变量a的地址,而a和p1两个变量都位于C编译器默认的内存区域中。,第4章单片机的C51语言,对于C51来讲,指针定义应包括以下信息:1)指针变量的存储类型(自身位于哪个存储区中)?2)被指向变量的数据类型和存储类型?,C51指针的一般定义形式:数据类型 存储类型1*存储类型2 变量名=&被指向 变量名;,数据类型被指向变量的类型,如int型或char型存储类型1被指向变量所在的存储区,缺省时由地址赋值关系决定存储类型2指针变量所在的存储区,缺省时为编译器默认的存储区,第4章单片机的C51语言,例1若采用SMALL编译模式,试解释下述定义的含义。char xdata
13、 a=A;char*ptr=,解:ptr是一个指向char型变量的指针,它本身位于SMALL编译模式默认的data存储区里,此时它指向位于xdata存储区里的char型变量a的地址。,第4章单片机的C51语言,例2试解释下述定义的含义 char xdata a=A;char*ptr=,解:以char*ptr形式定义的指针变量,既可指向位于xdata存储区的char型变量a的地址,也可指向位于idata存储区的char型变量b的地址(由赋值操作关系决定)。,前两句与例1相同 char xdata a=A;char*ptr=,第4章单片机的C51语言,例3:试解释以下指针定义的含义char xda
14、ta a=A;char xdata*ptr=【解】ptr是位于data存储区且固定指向xdata存储区的char型变量的指针变量,此时ptr的值为变量a的地址(不能像例2那样再将idata存储区的char型变量b的地址赋予ptr)。,第4章单片机的C51语言,例4:试解释以下指针定义的含义char xdata a=A;char xdata*idata ptr=【解】ptr是固定指向xdata存储区的char型变量的指针变量,它自身存放在idata存储区中,此时ptr指向位于xdata存储区中的char型变量a的地址。,第4章单片机的C51语言,4.1 C51的程序结构 4.2 C51的数据结构
15、 4.3 C51与汇编语言的混合编程 4.4 C51仿真开发环境 4.5 C51初步应用编程,第4章单片机的C51语言,C51语言编程可胜任单片机的基本测量与控制任务。对于某些特殊的I/O 接口处理、中断处理、强调程序执行速度等场合,仍希望采用汇编程序。C51 编译器提供了与汇编语言程序的接口规则,可方便地实现C51 与汇0编语言程序的相互调用。本节仅讨论在C51中调用汇编函数和在C51中嵌入汇编代码两种方法。,概要,第4章单片机的C51语言,1.在C51中调用汇编程序,1)程序的寻址,main.c中调用的max函数,如何与汇编文件中的相应代码对应起来;,2)参数传递,main.c中传递给ma
16、x()函数的参数a和b,存放在何处可使汇编程序能够获取到它们的值;,3)返回值传递,汇编语言计算得到的结果,存放在何处可使C语言程序能够获取到。,C51程序中调用汇编语言,需要解决三个问题:,第4章单片机的C51语言,举例:在两个数据中选出较大的数据,并赋值给变量c。其中,要求选数任务采用汇编子程序完成。,1)程序的寻址问题,第4章单片机的C51语言,通过在汇编文件中定义同名的“函数”来实现。,第4章单片机的C51语言,2)参数传递问题,第4章单片机的C51语言,3)返回值传递问题,2.C51中嵌入汇编代码,在C51 函数内嵌入汇编代码,可以有三种不同方法。,方法一 直接在函数体内的每个汇编语
17、句前加“asm”预编译指令,例如:,第4章单片机的C51语言,第4章单片机的C51语言,方法二 把asm 作为关键字,后续汇编用大括号括起来即可,例如:,第4章单片机的C51语言,方法三在C 模块内通过语句“#pragma”嵌入汇编代码,例如:,第4章单片机的C51语言,4.1 C51的程序结构 4.2 C51的数据结构 4.3 C51与汇编语言的混合编程 4.4 C51仿真开发环境 4.5 C51初步应用编程,第4章单片机的C51语言,1.Keil的编译环境 Vision3,Keil是德国Keil Software公司的51单片机开发软件包,包括C编译器、汇编编译器、连接器、库管理及仿真调试
18、器,通过一个windows下的集成开发环境(uVisoin3)组合起来。,第4章单片机的C51语言,Vision3的软件界面包括4大组成部分,即菜单工具栏,工程管理窗口,文件窗口和输出窗口。,第4章单片机的C51语言,Vision3中共有11个下拉菜单。工具栏的位置和数量可以通过设置选定和移动。,第4章单片机的C51语言,工程管理窗口用于管理工程文件目录,它由5个子窗口组成:文件窗口,寄存器窗口,帮助窗口,函数窗口,模版窗口。,工程管理窗口:,第4章单片机的C51语言,输出窗口:输出窗口用于编译过程中的信息交互作用,由3个子窗口组成:编译窗口,命令窗口,搜寻窗口。,第4章单片机的C51语言,信
19、息窗口:观察窗口(Watch&Call Stack Windows)输出窗口(Output Windows)存储器窗口(Memory Window)反汇编窗口(Dissambly Window)串行窗口(Serial Window),第4章单片机的C51语言,建立工程输入源程序工程设置 程序编译运行调试,2、Vision3的基本使用方法,举例:LED闪烁控制功能,第4章单片机的C51语言,(1)建立工程,点击“Project-New Project”菜单,在编缉框中输入一个名字(设为exam1),无需扩展名。,第4章单片机的C51语言,选择目标CPU(Intel系列的80C51BH),第4章单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 林立 张俊亮 电子教案-单片机原理及应用基于Proteus和Keil C第2版林立 张俊亮第4章 电子 教案 单片机 原理 应用 基于 Proteus Keil 林立 张俊亮

链接地址:https://www.31ppt.com/p-2407607.html