No 5C51程序设计.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
No5C51程序设计整理ppt

第五讲 C51程序设计 汇编程序、C程序与C51 汇编程序: 考虑存储器结构 正确使用片内外RAM、特殊功能寄存器 正确处理接口芯片收发数据 C程序: 不需要具体组织和分配存储器资源 结构模块化,思路与思维相同 但要与单片机结构相关联,否则不能正确映射 C51: 自动完成存储单元分配(内定义) 可编制常见接口芯片通用驱动函数 可采用模块化设计应用程序 加快开发速度 本章内容: [1] C51程序开发概述 [2] C51数据类型 [3] C51运算符和表达式 [4] C51构造数据类型简介 [5] C51函数 [6] 预处理命令、库函数 [7] 汇编语言与C语言混合编程 [8] 模块化程序设计 [9] 51单片机C程序开发过程 C51程序开发概述 用C语言编写单片机应用程序与编写标准的C语言程序的不同之处就在于 根据单片机存储结构及内部资源定义相应的C语言中的数据类型和变量 其它的语法规定、程序结构及程序设计方法都与标准的C语言程序设计相同。 C51数据类型 1. C51的标识符与关键字 C51的标识符的意义及用途与标准C相同。 关键字是C51已定义的具有固定名称和特定含义的特殊标识符,又称保留字,源程序中用户自己命名的标识符不能和关键字相同。 P62 表4-1 C51 扩展关键字:P62 表4-2 2.数据类型 C51常用的基本数据类型和标准C相同。 需注意在C51编译器中int和short相同, float和double相同 故有数据类型:char、int、long、float、指针 C51扩展的数据类型有bit、sbit、sfr、sfr16 尽量使用char和bit,容易被直接识别接受 尽量使用占用空间较少的数据类型 ?char 字符类型:长度是一个字节 无符号字符类型unsigned char 有符号字符类型signed char 默认值为signed char类型 ?int 整型:长度为两个字节 无符号整型数unsigned int 有符号int整型数signed int 默认值为signed int类型 ?long 长整型:长度为四个字节 无符号长整型unsigned long 有符号长整型signed long 默认值为signed long类型 ?bit 位变量 内部存储区域:可位寻址区——20H~2FH 它的值是一个二进制位,不是0就是1。 可定义一个位变量,但不能定义位指针,也不能定义位数组。 只能声明最多128个位变量 它的声明与别的C数据类型的声明相似 例如: static bit done_flag=0; //位变量 bit testfunc( //位函数 bit flag1, bit flag2 ) //位参数 { ……….; return(0); //位返回值 } C51编译器对bit变量的声明及使用有如下限制: 1)禁止中断的函数(#pragma disable)和使用一个明确的寄存器组(using n)声明的函数不能返回一个位值。 2)一个位不能被声明为一个指针 例如: bit*ptr; //无效的 3)不能声明一个bit类型的数组 例如:bit ware[5]; //无效的 ?sfr 特殊功能寄存器 sfr占用一个内存单元,值域为0~255。 利用它可以访问51单片机内部的所有特殊功能寄存器 ?sfr16 16位特殊功能寄存器 sfr16占用两个内存单元,值域为0~65535。 sfr16和sfr一样用于操作特殊功能寄存器,所不同的是它用于操作占两个字节的寄存器,如定时器T0和T1。 ?sbit 可寻址位 sbit,利用它可以访问芯片内部的RAM中的可寻址位或特殊功能寄存器中的可寻址位 当用sbit访问内部数据存储区的可位寻址区,则必须要有用bdata存储类型声明的变量并且是全局的,即必须有如下变量声明: int bdata ibase; //可位寻址的整型变量 char bdata array[4];//可位寻址的字符型数组 变量ibase和bary是可位寻址的,因此这些变量的每个位是可以直接访问和修改的,故可以用sbit关键字声明新的变量,来访问它们的各个位,例如: sbit Ary07=array[0]^7;//数组元素array[0]的第7位 上面的例子只是声明并不分配位空间。 例子中“^”符号后的表达式指定位的位置,此表达式必须是常数,其范围由声明的基变量决定 3.数据的存储器类型 C51变量定义中的存储器类型部分指定了该变量的存储区域,存储器类型可以由关键字直接声明指定。

文档评论(0)

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

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

1亿VIP精品文档

相关文档