- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 浙教版九年级上册科学 第1章 物质及其变化 单元测试卷(含解析).pdf VIP
- 互文成语探析.docx VIP
- 三体系内审检查表.pdf
- 2025年信息安全工程师职业资格考试试题及答案.docx VIP
- 2025年安徽省高中学业水平合格考数学试卷试题(含答案).docx VIP
- 2025山东济南市工程咨询院招聘10人笔试模拟试题及答案解析.docx VIP
- 2025年安徽省普通高中学业水平合格性考试地理(含详解答案) .pdf VIP
- 2025山东济南市工程咨询院招聘6人笔试模拟试题及答案解析.docx VIP
- 2025年广告传媒行业新兴媒体在汽车行业的品牌推广策略分析.docx
- 医疗设备保修合同范本10篇.docx VIP
文档评论(0)