片机原理及应用(C51编程).ppt

片机原理及应用(C51编程).ppt

ID:51958483

大小:1.10 MB

页数:33页

时间:2020-03-26

片机原理及应用(C51编程).ppt_第1页
片机原理及应用(C51编程).ppt_第2页
片机原理及应用(C51编程).ppt_第3页
片机原理及应用(C51编程).ppt_第4页
片机原理及应用(C51编程).ppt_第5页
资源描述:

《片机原理及应用(C51编程).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2021/9/51第4章80C51单片机C语言程序设计C51对标准C的扩展4.1C51的指针4.2C51的函数4.3C51与汇编程序的接口4.42021/9/524.1C51对标准C的扩展4.1.1C51的数据类型数据是计算机操作的对象,包含常量和变量。C51扩展了ANSIC,以适应单片机的结构和特点。数据类型就是数据的格式,它决定数据的值域范围、占用存储单元的个数及能参与哪种运算。编写C51程序,先要确定数据类型、储存分区应尽可能采用无符号格式(unsigned)C51中,多字节数据采用“大端对齐”格式数据起始字节置于高地址端2021/9/53数据类型长度(位)

2、取值范围字符型signedchar8-128~127unsignedchar80~255整型signedint16-32768~32767unsignedint160~65535长整型signedlong32-21474883648~21474883647unsignedlong320~4294967295浮点型float32±1.75494E-38~±3.402823E+38位型bit10,1sbit10,1访问SFRsfr80~255sfr16160~65535C51数据类型表2021/9/54bit定义位变量名字,编译器在位寻址区自动分配该位变量;Sbit声

3、明位变量的名字和地址,地址是确定的(SFR区确定位、位寻址区变量的某确定位)。几点说明:unsignedcharbdataibase;sbitmybitf=ibase^0;sbitCY=0xD7;bitflag1=0;含义:赋值含义:声明2021/9/554.1.2C51数据的存储分区存储器类型长度(位)对应单片机存储器bdata1片内RAM位寻址区,共128位。(亦能字节访问)data8直接寻址,共128字节。idata8间接寻址,共256字节。pdata8片外RAM分页间址,共256字节。(MOVX@Ri)xdata16间接寻址,共64k字节。(MOVX@DP

4、TR)code16ROM间接寻址,共64k字节。(MOVCA,@A+DPTR)经常使用的变量应该置于片内RAM中,要用bdata、data、idata来定义不常使用的变量或规模较大的变量应该置于片外RAM中,要用pdata、xdata来定义bitbdataflags;//位变量flags定位在片内位寻址区chardatavar;//字符变量var定位在片内RAM区floatidatax,y;//实型变量x,y定位在片内间址RAM区unsignedcharpdataz;//无符号字符变量z定位在片外分页间址RAM区2021/9/57编译模式默认存储分区特点SMALL

5、data小模式。变量默认在片内RAM。空间小,速度块。COMPACTpdata紧凑模式。变量默认在片外RAM的页(256字节,页号由P2口决定)。LARGExdata大模式。变量默认在片外RAM的64KB范围。空间大,速度慢。编译模式默认的变量存储分区4.1.3C51的编译模式未对变量存储分区定义时,C51编译器采用默认存储分区。例如:charvar;//SMALL模式时,var定位于data存储区//COMPACT模式时,var定位于pdata存储区//LARGE模式时,var定位于xdata存储区2021/9/594.1.4用_at_定义变量绝对地址用关键字“

6、_at_”定义变量存放的首地址idatainty_at_0x30;//idata区域整型变量y的首地址为0x30例如:又如:xdatacharstring[20]_at_0x3000;//xdata中字符型数组string的首地址为0x3000注意,C51编程时不要轻易使用绝对地址定位变量。2021/9/5104.2C51的指针对于一个变量a,利用&a表示变量a的地址。则语句p=&a;表明把a的地址赋给了指针变量p,则“p指向了变量a”。可以用*P表示变量a指针变量的定义char*p;//定义指针变量Pp=30H;//指针变量赋值,30H为片内RAM地址x=*p;

7、//30H单元的内容送给变量x*P指针变量数据变量4.2.1已定义数据存储分区的指针定义时就指定了所指向数据的存储分区。该指针占1个字节(idata*,data*,pdata*)或2个字节(code*,xdata*)示例:chardata*str;//指针str指向的char型数据存于data空间intxdata*num;//指针num指向的int型数据存于xdata空间基于存储器的指针长度比通用指针短,可以节省存储器空间,运行速度快,但它所指对象具有确定的存储器空间,兼容性不好。数据数据分区2021/9/512定义时未指定所指向的数据的存储分区。也称通用指针。4

8、.2.2未

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。