请教51单片机的一个问题,关于内存分配的,能留个邮箱么
发布网友
发布时间:2023-08-11 20:10
我来回答
共4个回答
热心网友
时间:2024-12-13 00:00
这个reg51.h里定义了呀!
为什么可以使用P0 TMOD SCON这些特殊功能寄存器呢?就是reg51.h这些头文件已经定义过了的原因。
至于怎么知道TF1的位地址是0x8F.其实很简单。这些特殊功能寄存器是离散的分布在片内RAM的高八位地址里的。大部分都可以位寻址,有的不行。比如TMOD、PCON、SP、SBUF 就不行。
可以位寻址的寄存器的地址有个特点:末位为0或8.这样它的位地址就好确定了。
第0位的位地址的数值和字节地址是一样的,其余依次加一。
所以:TF1 在寄存器TCON里是第7位。TCON的字节地址是88H。
位地址就是88H+07H=8FH。
以下是TCON里各个位的位地址分布:
sbit TF1 = 0x8F;
sbit TR1 = 0x8E;
sbit TF0 = 0x8D;
sbit TR0 = 0x8C;
sbit IE1 = 0x8B;
sbit IT1 = 0x8A;
sbit IE0 = 0x89;
sbit IT0 = 0x88;
阁下搜索一下reg51.h看一下,一切都明白了。
热心网友
时间:2024-12-13 00:01
51的RAM为00-7FH,80-FFH为特殊功能寄存器
其中20H-2FH可位寻址,在这16B中有128个位,分别又叫00H-7FH的位地址。00H的位地址等于20H.0 01H=20H.1 7FH=2FH.7,主要通过不同的指令的寻址方式来区分不同的地址,就是51的RAM为128B,52的RAM为256B,52的高128B跟特殊功能寄存器是重叠的,就是通过指令来区分的。定义TMOD时是字节89H,而定义TCON的第二位时是位寻址。
热心网友
时间:2024-12-13 00:01
用C51编程不需要你去关心内存分配问题,由编译器自动分配,如果是汇编是要考虑的
热心网友
时间:2024-12-13 00:02
有点冷清呢,我们私下聊,你把分给我就好。
在书里都有的,只是你没看到位而已。