第4章 单片机C51语言简介2015.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 单片机C51语言简介2015

单片机原理与应用;TOPICS;4.1 C51的程序结构;C51语言特点:;C51与标准C的比较:;C51与标准C程序结构完全相同。;举例:LED灯的闪烁控制功能;预处理命令---------;1. C51的变量 ;【存储种类】 数据类型 【存储类型】 变量名;【存储种类】 数据类型 【存储类型】 变量名;【存储种类】 数据类型 【存储类型】 变量名;C51扩充数据类型:bit、sfr或sfr16、sbit ;sfr或sfr16型; 用关键字“sfr16”来定义 “=”后面的地址必须用16位SFR的低字节地址,即16位SFR的低地址作为“sfr16”的定义地址,其高位地址在定义中没有体现。 sfr16 T2 = 0xCC; //T2的低8位为0CCH,高8位为0CDH sfr16 T0 = 0x8A; //错误,不能这样定义定时器/计数器0;例如:sfr P0 = 0x80; //定义P0口地址80H sfr PCON = 0x87; //定义PCON地址87H sfr16 DPTR=0x82; //定义DPTR,低端地址DPL=82H,高端地址DPH=83H;sbit型;sbit有三种定义方法:;C51编译器在头文件“reg51.h”中定义了全部sfr/sfr16和sbit变量。;应用举例:;C51使用#define或typedef语句定义数据类型的别名。;eg: #define uchar unsigned char #define uint unsigned int typedef unsigned int WORD; 这样,在其后的程序就可以用uchar代替unsigned char,用uint或WORD代替unsigned int来定义变量,从而节省书写时间、减少错误和增强可读性。 如: uchar x; //定义变量x为无符号字符型变量 uint y; //定义变量y为无符号整型变量 WORD z; //定义变量z为无符号整型变量;【存储种类】 数据类型 【存储类型】 变量名;C51存储类型与存储空间的对应关系;存储类型;三种编译模式分别对应于三种缺省(默认)存储类型。; 变量名由字母、数字和下划线三种字符组成; 第一个字符必须为字母或下划线; 变量名长度随编译系统而定。 变量名区分字母大小写。;变量名不得使用标准C语言和C51语言的关键字。;unsigned char data system_status = 0; ;unsigned char bdata status_byte; ;2. C51的指针 ;例1 若ptr是指向idata存储区的指针变量,该存储区将以无符号字符形式存放数据。要求ptr本身位于xdata存储区,值是位于idata存储区里的unsigned char型自动变量a(初值为‘A’)的地址。试据此完成相应变量的定义及初始化。;解:若编译器默认的存储类型为data,则指针pi自身被存放在data区内,它是指向 xdata 存储区的无符号字符型变量。;4.3 C51的绝对地址访问;#include absace.h //必须要,不能少 #define uchar unsigned char #define uint unsigned int void main(void) { uchar varl; uint var2; var1=XBYTE[0x0008]; //访问片外RAM的0008H字节单元 var2=XWORD[0x1002]; //访问片外RAM的1002H字单元 ...... while(1); } ;二、通过指针访问;三、使用C51扩展关键字_at_访问;4.4 C51的输入输出;4.4 C51的输入输出;表4?7 C51中的printf( ) 函数的格式字符及功能;转义字符:用来输出特定的不可显示的控制信息和字符。在其前面加反斜杠“\”组成转义字符。;二、输入函数scanf( ) ;#include reg51.h #include stdio.h //一般I/O函数库,必须有 void main(void){ int x, y; SCON = 0x52; //串行口工作于方式1 TMOD = 0x20; //定时器/计数器1选择模式2 TH1 = 0xF3; //设定波特率 TL1 = 0xF3; TR1 = 1; pri

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档