- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c51学习手册
C51编程学习 作者:刘园珍
PAGE \* MERGEFORMAT 12
一:数据类型·运算符·表达式
C51支持的数据类型
数据类型名称长度值域
基本类型bit1 bit0,1Unsigned char,char1 byte0~255,-128~127Unsigned int,int2byte0~65525,-32768~32767Unsigned long,long4 byte0~4294967295Float4 byte6位数字Double8 byte10位数字
构造类型数组结构体共用体枚举指针类型2~3byte存储空间,最大64KB空类型常量和变量
常量:#define CONST 10
变量:bit b_start //位变量
Char c_start//字符变量
其他略。
C51存储器·寄存器定义
定义:分为片内数据存储器·片外数据存储器·片内程序存储器·片外程序存储器。
1.31 C51的数据存储类型
关键字存储器对应关系data直接寻址片外数据存储器(128byte)bdat片内位寻址存储空间(16byte)idata间接寻址片内数据存储空间,可以访问RAM全部内容pdata分页寻址片外数据存储器(256byte)Xdata片外数据存储器(64KB)Code代码存储器(64KB)例子:char data c_Var; //无符号char型变量,定义到内部存储空间低128byte
1.32 寄存器
Sfr SBUF=0x99; //定义串行数据寄存器
Sfr16 T2=0xcc; //定义T2计时器数据存储器
Sbit D0=P2^1;定义位变量
Sbit CY=0xd7;使用绝对地址定义
使用sbit定义变量空间
Bdata unsigned char uc_shield_byte;
Sbit b_x= uc_shield_byte^1; //定义首位
Sbit b_y= uc_shield_byte^2;
Sbit b_z=uc_shield_byte^3;
逻辑运算
与: 或: || 非: !
位逻辑运算
位与:
位或: |
位异或: ^
位取反: ~
移位运算
左移位:,个位左移,补0;
右移位:,高位右移,补0;
二:C51控制流
顺序结构
选择结构
If……else语句
If语句
Switch语句
Switch(判断条件)
{
Case 常量表达式1:{语句块1}break;
……
Default:{语句n+1}break;
}
If和switch嵌套
循环结构
While语句
Do while语句
Do{
代码块;
}while(条件);
For语句
三:函数
无参数函数定义
Void 函数名(void)//无参数,无返回值函数定义
{
}
Int 函数名(char a,char b)//带参数,带返回值函数定义
{
}
局部变量和全局变量
静态局部变量和动态局部变量
Static int a;静态(static不可省略)
Auto int a;动态(auto可省略)
内部函数和外部函数
(1)内部函数:static unsigned char Fun(int a);
内部函数只能被该源文件中的其他函数调用
(2)外部函数:extern unsigned char Fun(int a);
外部函数可以被其他源文件调用的函数
四:数组和指针
数组:
一维数组:
类型 数组名【size】;
二维数组
类型 数组名【size A】【size B】;
字符数组
Char ch1【】={‘j’,’a’,’c’,’k’,’x’,’u’};以字符形式赋值
Char ch1[]={“jackxu”}; 以字符串形式赋值
指针
指针和指针变量
类型 *变量名
Int *ptr1;float *ptr2;char *ptr3;
指针的引用
Int a=10;
Int *p=a;
X=a ;直接访问方式
X=*p;间接访问方式
数组和指针
Int a[]={1,2,3,4,5,6,7,8,9,10},*ip;
Ip=a; //*ip代表a[0],*(ip+i)代表a[i];
二维数组与指针同上;
字符串和指针
不能用指针变量来修改字符串常量;
数组,指针和函数的关系
数组可作为函数的参数:int sum(int a[],int num);
指针作为函数参数:int su
文档评论(0)