微型机系统接口MCS-51单片机(全版).ppt

  1. 1、本文档共363页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;4.1 MCS?51与C语言; 用C语言编写单片机程序与标准的C语言程序的不同在于: 库函数不同。 数据类型有一定区别,C51增加了几种MCS?51系列单片机特有的数据类型。 变量的存储模式不同,C51的存储模式与MCS?51系列单片机的存储器紧密相关的 。 输入/输出处理不同,C51的输入/输出是串行口来完成的。 在函数使用方面也有一定的区别。C51中有专门的中断服务函数。;4.2 C51数据类型与存储方式;表4?1 Franklin C51编译器的数据类型;二、C51数据变量的存储方式 ;eg:整型数据的值为0x1234,在内存中的存放方式。;; 为了增强程序的可读性,C51允许使用别名形式来定义,其方法是在源程序开头位置使用#define或typedef语句定义数据类型的别名形式。具体格式为:;4.3 C51数据的存储类型与存储关系 ; 带存储类型的变量定义的一般格式为: 数据类型 存储类型 变量名; eg: char data var1; //字符变量Var1定义为data存储类型 bit bdata flags; //位变量flags定义为bdata存储类型 float idata x; //浮点变量x定义为idata存储类型 unsigned int pdata var2; //无符号整形变量var2为pada存储类型 unsigned char xdata vector[10][4]; //无符号字符数组变量为xdata存储类型 定义data char x与定义char data x是等价的,但应尽量使用后一种方法。;二、C51存储模式 ;4.4 特殊功能寄存器(SFR)及其C51定义方法; SFR的sfr-name被定义后,就可以像普通变量一样用赋值语句进行赋值从而改变对应的SFR的值。 SFR中地址为8的倍数的寄存器具有位寻址能力,在Franklin C51中规定了支持SFR位操作的定义,当然在也是与标准C语言不兼容的,使用“sbit”来定义SFR的位寻址单元。定义SFR的位寻址单元的语法格式有三种:;4.5 MCS?51并行接口及C51定义方法; 当然也可把对外部I/O口的定义放在一个头文件中,然后在程序中通过#include语句调用,一旦在头文件或程序中通过使用#define语句对片外I/O口进行了定义,在程序中就可以自由使用变量名(如:PORTA)来访问这些外部I/O口了。;4.6 位变量及其C51定义方法;3、对位变量的限制 位变量不能说明为指针和数组。例如: bit *ptr; //用位变量定义指针,错误 bit b-array[ ]; //用位变量定义数组,错误 在定义位变量时,允许定义存储类型,位变量都被放入MCS?51系列单片机片内RAM中,存储类型限制为data或idata,如果将其定义成其它类型都将在编译时出错。; 对用这种方式定义的位变量既可位寻址又可字节寻址。 eg: bary36 = 1; //位寻址,给bary[3]元素的第6位赋值为1 bary[3] = ?a?; //字节寻址,给bary[3]元素赋值为字符a 可独立寻址访问的对象位的位置操作符(“^”)后的取值依赖于位变量的数据类型,对于char/unsigned char型为0~7,对int/unsigned int型为0~15,对long/unsigned long型为0~31。 ; Franklin C51编译器支持的基本数据类型有:位型(bit)、无符号字符(unsigned char)、有符号字符(signed char)、无符号整型(unsigned int)、有符号整型(signed int)、无符号长整型(unsigned long)、有符号长整型(signed long)、浮点(float)、双精度浮点(double),另外C51还提供了一些扩展的数据类型,它们是由C51支持的基本数据类型按一定

文档评论(0)

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

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

1亿VIP精品文档

相关文档