首页 51单片机数据类型

51单片机数据类型

举报
开通vip

51单片机数据类型从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率。在51系列中data,idata,xdata,pdata的区别:1、data:固定指前面0x00-0x7f的128个RAM可以用acc直接读写的,速度最快,生成的代码也最小。2、idata:...

51单片机数据类型
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率。在51系列中data,idata,xdata,pdata的区别:1、data:固定指前面0x00-0x7f的128个RAM可以用acc直接读写的,速度最快,生成的代码也最小。2、idata:固定指前面0x00-0xff的256个RAM其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:moxACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好)3、xdata:外部扩展RAM一般指外部0x0000-0xffff空间,用DPTR访问。4、pdata:外部扩展RAM的低256个字节,地址岀现在A0-A7的上时读写,用movxACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG建议少用。但也有他的优点,具体用法属于中级问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,这里不提。当然现在有些51单片本身内部就有扩展的RAM区域,故在允许使用内部扩展RAM的时候使用xdata和pdata并不影响P2和P0口。单片机C语言unsignedcharcodetable[]code是什么作用?code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVX好像是),因为C语言中没 办法 鲁班奖评选办法下载鲁班奖评选办法下载鲁班奖评选办法下载企业年金办法下载企业年金办法下载 详细描述存入的是ROM还是RAM寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data是存入RAM的意思。程序可以简单的分为code(程序)区,和data(数据)区,code区在运行的时候是不可以更改的,data区放全局变量和临时变量,是要不断的改变的,cpu从code区读取指令,对data区的数据进行运算处理,因此code区存储在什么介质上并不重要,象以前的计算机程序存储在卡片上,code区也可以放在rom里面,也可以放在ram里面,也可以放在flash里面(但是运行速度要慢很多,主要读flash比读ram要费时间),因此一般的做法是要将程序放到flash里面,然后load到ram里面运行的;DATA区就没有什么选择了,肯定要放在RAM里面,放到rom里面改动不了。bdata如何使用它呢?若程序需要8个或者更多的bit变量,如果你想一次性给8个变量赋值的话就不方便了,(举个 例子 48个音标大全附带例子子程序调用编程序例子方差分析的例子空间拓扑关系例子方差不存在的例子 说说它的方便之处,想更深入的了解请在应用中自己琢磨)又不可以定义bit数组,只有一个方法charbdataMODE;sbitMODE_7=MODEA7;sbitMODE_6=MODEA6;sbitMODE_5=MODEA5;sbitMODE_4=MODEA4;sbitMODE_3=MODEA3;sbitMODE_2=MODEA2;sbitMODE_1=MODEA1;sbitMODE_0=MODEA0;8个bit变量MODE_n就定义好了这是定义语句,Keilc的特殊数据类型。记住一定要是sbit不能bitMODE_0=MODEA0;赋值语句要是这么些C语言就视为异或运算空间名称地址范围说明:1、DATA):OOH〜7FH片内RAM直接寻址区。2、BDATA):20H~2FH片内RAM位寻址区。3、IDATAI:OOH~FFH片内RAM间接寻址区。4、XDATAC:0000H〜FFFFH64KB常规片夕卜RAM数据区。5、HDATAX:0000H〜FFFFFFH16MB扩展片夕卜RAM数据区。6、CODC:0000H〜FFFFH64K常规片内外ROM弋码区。7、HCONST(ECODC)0000H〜FFFFFFH16MB扩展片外ROM常数区(对Dallas390可用作代码区)。8、BANKO〜BANK3B1O:OOOOH〜FFFFH::B31:OOOOH〜FFFFH分组弋码区,最大可扩展32X64KBROM。8051单片机的存储器结构MCS-51单片机在物理结构上有四个存储空间:1、片内程序存储器2、片外程序存储器3、片内数据存储器4、片外数据存储器但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:1、片内外统一编址的64K的程序存储器地址空间(MOVC)2、256B的片内数据存储器的地址空间(MOV)3、以及64K片外数据存储器的地址空间(MOVX)程序内存ROM寻址范围:0000H~FFFFH容量64KBEA=1,寻址内部ROM;EA=0,寻址外部ROM地址长度:16位作用:存放程序及程序运行时所需的常数。七个具有特殊含义的单元是:0000H――系统复位,PC指向此处;0003H——外部中断0入口000BH――T0溢出中断入口0013H――外中断1入口001BH――T1溢出中断入口0023H――串口中断入口002BH――T2溢出中断入口内部数据存储器RAM物理上分为两大区:OOH~7FH即128B内RAM和SFR区作用:作数据缓冲器用。下图是8O51单片机存储器的空间结构图内默村粧存補番外記鞍据存储冠图1MCS-51V\的内存结衲程序存储器一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 等信息。对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。强制CPU从外部程序存储器读取程序。对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM勺容量时,才会转向外部的程序存储器读取程序。当=1时,程序从片内ROM^始执行,当PC值超过片内ROM容量时会自动转向外部ROM空间。当=0时,程序从外部存储器开始执行,例如前面提到的片内无ROM勺8031单片机,在实际应用中就要把8031的引脚接为低电平。8051片内有4kB的程序存储单元,其地址为0000H—0FFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注意:其中一组特殊是0000H—0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序,如果程序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。另一组特殊单元是0003H—002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:0003H—OOOAH外部中断0中断地址区。OOOBH-0012H定时/计数器0中断地址区。0013H—001AH外部中断1中断地址区。001BH—0022H定时/计数器1中断地址区。0023H—002AH串行中断地址区。可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。从上面可以看岀,每个中断服务程序只有8个字节单元,用8个字节来存放一个中断服务程序显然是不可能的。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,我们是在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行,这样中断响应后,CPU卖到这条转移指令,便转向其他地方去继续执行中断服务程序。下图是ROM的地址分配图:0032H?0033»OO2AH/OO2RI・-・OyiAH/QOIBfL——0012H/0013(1——•_T岂电世出唾_IIHT1盗出51靳夕卜抽中團1Ib'Tl了。融百眄撕OQOAH/DOOBF————外部中新1IMO■■HS▼!^MILJ叽unROM分布图从上图中大家可以看到,0000H-0002H,只有三个存储单元,3个存储单元在我们的程序存放时是存放不了实际意义的程序的,通常我们在实际编写程序时是在这里安排一条ORG指令,通过ORG旨令跳转到从0033H开始的用户ROM区域,再来安排我们的程序语言。从0033开始的用户ROM区域用户可以通过ORG旨令任意安排,但在应用中应注意,不要超过了实际的存储空间,不然程序就会找不到。数据存储器数据存储器也称为随机存取数据存储器。数据存储器分为内部数据存储和外部数据存储。MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别),片外最多可扩展64KB的RAM构成两个地址空间,访问片内RAM用“MOV指令,访问片外RAM用“MOV”指令。它们是用于存放执行的中间结果和过程数据的。MCS-51的数据存储器均可读写,部分单元还可以位寻址。MCS-51单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即:数据存储器空间(低128单元);特殊功能寄存器空间(高128单元);这两个空间是相连的,从用户角度而言,低128单元才是真正的数据存储器。下面我们就来详细的与大家讲解一下:低128单元:片内数据存储器为8位地址,所以最大可寻址的范围为256个单元地址,对片外数据存储器采用间接寻址方式,RO、R1和DPTR都可以做为间接寻址寄存器,RO、R1是8位的寄存器,即R0、R1的寻址范围最大为256个单元,而DPTR是16位地址指针,寻址范围就可达到64KB。也就是说在寻址片外数据存储器时,寻址范围超过了256B,就不能用RO、R1做为间接寻址寄存器,而必须用DPTR寄存器做为间接寻址寄存器。FFH特霖攻能寄存晋区8CH(SFE)7FH数轄援冲区工作单元30H2FH位寻址区20H1FH3区呕OOH呕全部可位寻址均沙宇节ise位讷通用寄存器EO—R7也可件RAN使用>RO.R1茹可徂寻址圈1从上图中我们可以看到,8051单片机片内RAM共有256个单元(OOH-FFH),这256个单元共分为两部分。其一是地址从00H—7FH单元(共128个字节)为用户数据RAM从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFF)单元。从图1中可清楚地看岀它们的结构分布。1、通用寄存器区(00H-1FH)在OOH—1FH共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以RO-R7来命名,我们常称这些寄存器为通用寄存器。这四块中的寄存器都称为RO-R7,那么在程序中怎么区分和使用它们呢?聪明的INTEL工程师们又安排了一个寄存器一一程序状态字寄存器(PSW来管理它们,CPU只要定义这个寄存的PSW的D3和D4位(RSO和RS1),即可选中这四组通用寄存器。对应的编码关系如下表所示。惹程序中并不需要用4组,那么其余的可用做一般的数据缓冲器,CPU在复位后,选中第0组工作寄存器。组RSIRSQRQR2R3R5R6IT000OOH01H02H03H0+H05H06Ht>7H101OSHD9HOAHOBHOCHODHOEHt>FH10LOH11H12HIjH14H1戈H16H17Ha11liM1AH1EHICH1DHLEH1FH2、位寻址区(20H-2FH)片内RAM的20H—2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有16个字节,128个位,位地址为00H—7FH。位地址分配如下表所示:RAIW&寻址区Jh址医单元地址MSB位地址LSE7FHTEH7DH7CH7BHT0H7SH2EH77H7CH75H74H73H72HT1H70H2DE0FH画SDH15CH6BEI6AU55MfiEH2CK6TH6€H65H64H03H62HaiHfiOH2EH5FHj5EHSDH5CH5BH6AH59H5胡57H翊55H54E53H52HSIH50H4FH4EHqDH4GH4BH4fiH4SH4SH47H4CH45H44H43H42H40H27H3FH3EH3DH3CH3BH3ARMH33H26E37H3曲35H34E^3H32H31H30H25H12FH2EH2DH2CH2BH2AH29H28H24H27H2CH25H"24H23H22H21H20H23K1FH1EH1DH1CM1BH1AH1GH1SH22H17H1CH15H14H13H12H11H10H21HOFHOEHODHOCHODHDAH趣08H2OHOTHOCHQ5H04H03H02HQ1HOOHCPU能直接寻址这些位,执行例如置“1”、清“0”、求“反”、转移,传送和逻辑等操作。我们常称MCS-51具有布尔处理功能,布尔处理的存储空间指的就是这些为寻址区。3、用户RAME(30H-7FH)在片内RAM氐128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下的80个单元就是供用户使用的一般RAM区了,地址单元为30H-7FH。对这部份区域的使用不作任何规定和限制,但应说明的是,堆栈一般开辟在这个区域。高128单元:(80H-FFH)前面提到,在片内的RAM中,高128位是专用寄存器区,因这节比较重要,所以我们单独的安排一节课跟大家介绍。下节课我们就重点介绍51单片机片内RAM的高128位,即专用寄存器区。片外数据存储器在这里我们就先在介绍,在后面关于数据存储器扩展的章节中我们再详细介绍。
本文档为【51单片机数据类型】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥17.0 已有0 人下载
最新资料
资料动态
专题动态
is_997338
暂无简介~
格式:doc
大小:47KB
软件:Word
页数:8
分类:
上传时间:2019-09-18
浏览量:6