您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 单片机存储器结构,KeilC数据类型
MCS-51存储器结构及访问方法2Keil软件使用方法•打开Keil软件3Keil软件使用方法•新建工程4Keil软件使用方法•新建工程5Keil软件使用方法•新建工程6Keil软件使用方法•新建工程7Keil软件使用方法•配置工程8Keil软件使用方法•配置工程9Keil软件使用方法•配置工程10Keil软件使用方法•配置工程11Keil软件使用方法•配置工程12Keil软件使用方法•配置工程13Keil软件使用方法•配置工程14Keil软件使用方法•编辑程序15Keil软件使用方法•配置工程课堂练习•用Keil软件建立工程89C52单片机有4个存储空间,分别用来安排6种不同功能的存储器:①内部数据存储器;②特殊功能寄存器;③位地址④内部程序存储器;⑤外部程序存储器;⑥外部数据存储器。地址空间1:0x00~0xffdata,idata地址空间2:0x0000~0xffffcode地址空间3:0x0000~0xffffxdata,pdataMCS-51存储器结构及访问方法地址空间3:0x00~0xffbdata~~~~~~~~~~~~~~~~~~~~~~~~ROM结构内部数据存储器内部数据存储器又称为内部数据RAM,共256字节,地址范围为00H~FFH。前32个单元(00H~1FH)称为寄存器区。其中,每8个寄存器形成一个寄存器组。寄存器0组地址00H~07H寄存器1组地址08H~0FH寄存器2组地址10H~17H寄存器3组地址18H~1FHRAM结构page24R0R1R2R3R4R5R6R7R0R7R0R7R0R7~~~~~~~~~~~~~~~~~~~~~~~~工作寄存器组的选择:通过对特殊功能寄存器PSW中RS1、RS0两位的编程设置,可选择任一寄存器组作为工作寄存器组,方法如下:RS1RS0所选择的寄存器组00选中寄存器0组01选中寄存器1组10选中寄存器2组11选中寄存器3组当某一组被设定成工作寄存器组后,该组中8个寄存器,从低地址到高地址就分别被称为R0~R7,从而可以把它们用作通用寄存器,并可按寄存器寻址方式被访问。一旦工作寄存器组被指定以后,另外三组寄存器则同其它数据RAM一样,只能按字节地址被访问图3-4内部数据存储器中的位地址3.1.2.2特殊功能寄存器89S52中有32个特殊功能寄存器(SFR),起着专用寄存器的作用,用来设置片内电路的运行方式,记录电路的运行状态,并表明有关标志等。此外特殊功能寄存器中,还有把并行I/O端口映射过来的寄存器,对这些寄存器的读写,可实现从相应的I/O端口的输入、输出操作。32个SFR不连续的分布在128个字节的SFR存储空间中,地址空间为80H~FFH,见表3-1。可对12个特殊功能寄存器的某些位作位寻址操作。位地址空间也是80H~FFH,但只有83个有效位地址。表3-1特殊功能寄存器SFR功能简介(page21)A(ACC):累加器B:寄存器P0~P3:映射并行端口P0~P3PSW:程序状态字CYACF0RS1RS0OVXP进、借位位半进位位用户自定义标志位工作寄存器组选择溢出位奇偶标志位P=1:A中1个数为奇数P=0:A中1个数为偶数PSW结构RS1RS0=00选择寄存器0组RS1RS0=01选择寄存器1组RS1RS0=10选择寄存器2组RS1RS0=11选择寄存器3组(2)A(ACC)累加器。自身带有全零标志Z,若A=0则Z=1;若A≠0则Z=0。该标志常用作程序分支转移的判断条件。(3)SP堆栈指针。默认栈顶地址为07H。堆栈操作为先加后压,先弹后减。堆栈区域是向地址增大的方向生成的。(4)DPTR数据指针,分成DPL(低8位)和DPH(高8位)。用来存放16位地址值。(5)P0~P3并行端口P0~P3映射寄存器变量,常量,数据类型•在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。•变量定义#definehund100unsignedinta,b=100;数据类型位数字节数数值范围bit10,1char81-128~+127unsignedchar810~255enum162-32768~+32767short162-32768~+32767unsignedshort1620~65535int162-32768~+32767unsignedint1620~65535long324-2147483648~+2147483647unsignedlong3240~4294967295float324+1.175494E-38~+3.402823E+38sbit10,1sfr810~255sfr161620~65535数据定义举例存储类型及存储区存储区描述data内部RAM(00H~7FH)访问速度最快bdata内部RAM(20H~2FH)可位寻址区idata内部RAM(00H~FFH)必须使用间接寻址访问xdata外部RAM,使用@DPTR间接寻址pdata外部RAM,使用@Ri间接寻址code程序存储区,使用DPTR寻址数据定义举例unsignedchardataDisplayram[6];unsignedcharbdataStatus_byte;bitStatus_flag=0x20;unsignedcharcodeDisplayTab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,};利用Keil软件查看存储器状态的方法x:0x0000课堂练习•用KeilC编写程序定义变量,并查看存储器状态。
本文标题:单片机存储器结构,KeilC数据类型
链接地址:https://www.777doc.com/doc-2594313 .html