第4讲单片机C51基础及编程分解.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51编程语言简介 C51语言的基本语法 C51语言的函数 C51程序设计实例 在单片机应用开发中,软件编程占有非常重要的地位。要求编程人员在短时间内编写出执行效率高、运行可靠的程序代码。同时,由于实际系统的日趋复杂,对程序的可读性、升级与维护以及模块化的要求越来越高,以方便多个工程师协同开发。 C51语言是近年来在国内外的51单片机开发中,普遍使用的一种程序设计语言。C51能直接对单片机硬件进行操作,既有高级语言的特点,又有汇编语言的特点,因此在单片机应用的程序设计中,得到非常广泛的使用。 C51语言在标准C基础上针对51单片机硬件特点进行扩展,是用于51单片机编程的C语言。 C51语言与标准C语言一些差别如下: (1)头文件不同。 (2)库函数不同。标准C中不适合于嵌入式控制器系统的库函数,被排除在C51语言之外,如字符屏幕和图形函数。 (3)数据类型不同。在C51在标准C的基础上又扩展了4种类型。 (4)数据存储类型不同。51单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区。内部数据存储区可分为3个不同的C51存储类型:data、idata和bdata。外部数据存储区分为2个不同的C51存储类型:xdata和pdata。C51语言提供的code存储类型用来访问程序存储区。 4.1 C51编程语言简介 (5)标准C语言没有处理单片机中断的定义,而C51语言中有专门的中断函数。(6)C51语言与标准C的输入/输出处理不一样。C51中输入/输出是通过8051单片机的串口来完成的,输入/输出指令执行前必须对串行口初始化。 (7)程序结构的差异。由于8051单片机的硬件资源有限,它的编译系统不允许太多的程序嵌套。其次,标准C语言所具备的递归特性不被C51语言支持。 从数据运算操作、程序控制语句以及函数的使用上来说,C51与标准C几乎没有什么明显差别。如果程序设计者具备了有关标准C语言的编程基础,只要注意C51与标准C不同之处,并熟悉51单片机的硬件结构,就能较快掌握C51编程。 * 4.2.1 数据类型 * 4.2 C51语言的基本语法 表4-2 Keil C51支持的数据类型 C51的扩展数据类型 (1)位变量bit (2)特殊功能寄存器sfr。特殊功能寄存器分布在片内数据存储区的地址单元80H~FFH之间,“sfr” 数据类型占用一个内存单元。利用它可以访问AT89S51单片机内部的所有特殊功能寄存器。 (3)特殊功能寄存器sfr16。“sfr16”数据类型占两个内存单元。它用于操作占两个字节的特殊功能寄存器。 (4)特殊功能位 sbit。sbit—片内特殊功能寄存器的可寻址位。 * 4.2.2 数据存储类型 一、存储器种类 在讨论C51数据类型时,须同时提及它的存储类型,以及它与51单片机存储器结构的关系,因为C51定义的任何数据类型必须以一定的方式,定位在51单片机的某一存储区中,否则没有任何实际意义。 51单片机有片内、片外数据存储区,还有程序存储区。 内部数据存储区可分为3个不同的数据存储类型:data、idata和bdata。 访问片外数据存储区比访问片内数据存储区慢,因为访问片外数据存储区要通过对数据指针加载地址来间接寻址访问。C51提供两种不同的数据存储类型xdata和pdata来访问片外数据存储区。 程序存储区只能读不能写,可能在8051单片机内部或者外部,或外部和内部都有,由8051单片机硬件决定,C51提供了code存储类型来访问程序存储区。 * * 表4-3 C51语言存储类型与51单片机存储空间的对应关系 下面对表4-3各种存储区作以说明。 (1)DATA区。寻址是最快的,应把常使用的变量放在该区,但该区存储空间有限,DATA区除了包含程序变量外,还包含了堆栈和寄存器组。DATA区声明中的存储类型标识符为data,通常指片内RAM128字节的内部数据存储的变量,可直接寻址。 声明举例: unsigned char data a=0; unsigned int data b[8]; char data c[20]; 标准变量和用户自声明变量都可存储在DATA区中,只要不超过DATA区的范围即可,由于C51用默认的寄存器组来传递参数,这样DATA区至少失去8字节空间。 * (2)BDATA区。DATA中的位寻址区,在该区中声明变量就可进行位寻址。BDATA区声明中的存储类型标识符为bdata,指的是片内RAM可位寻址的16字节存储区(字节地址为20H~2FH)中的128个位。下面是在BDATA区中声明的位变量和使用位变量的例子: unsigned char bdata a; unsigned int bdata b; sbit c=

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档