MCS-51 单片机的存储器地址空间,讲起来,要用几页。
简单介绍如下:
MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间。
片内RAM:
地址范围是00H到7FH (52系列延伸到FFH)。
其中00H到1FH,***32字节,分成四个工作寄存器区,每区有寄存器 R0~R7。
对此区域,可以使用 R0~R7 来操作,但是,当前只有一个区是可以这样读写的。
对此区域,也可以使用字节地址,来读写。
20H-2FH,***16字节,是位寻址区,***有128个“位”,位地址:00~7FH。
此区域,也可按照字节寻址,来读写。
30H-7FH,没有什么特色,只进行字节寻址。
80H-FFH,***有128个地址号码,其中离散的分布着21个特殊功能寄存器,必须直接寻址才能读写。
(52系列,在此范围,还有128字节的 RAM,必须间接寻址才能读写)。
对上述空间读写,需用MOV指令。
----
片外RAM:
片外RAM的地址范围是0000H到FFFFH,容量即为64KB。
对片外RAM读写,需用MOVX指令。
----
ROM:
ROM的地址范围是0000H到FFFFH,容量即为64KB。
其中0000~0FFFH,即4K,在片内,其它在片外。
(对于8031,这64K的ROM,都在片外。)
对ROM读出,需用MOVC指令。
---------------------------------------------------------------------------
一位数据的发送过程吧,其余的都和它一样,只不过波特率不一样,传输快慢不一样,一般上下协议一样,就可以了,一般如9600,N,8,1
如图含义:当传输线上,为高到低时(起始位)开始发送数据(由低到高,发八位,一个字节)然后拉高(结束位)发送一字节数据结束,其余的数据发送和这个时续相同.
------------------------------------------------------------------------------
MOV R7,#6 ;将十进制数6赋给R7,07H值为6
MOV R0,#40H ;将十六进制数40h赋给R0,00H值为40H
MOV A,#1 ;将十进制数1赋给累加器A
LOOP: MOV @R0,A ;将累加器A的值赋给R0值指示的地址40H,40H值为1
INC A 累加器A值加1 A=2
INC R0 R0值加1 00H值为41H
DJNZ R7,LOOP ;5 R7值减1,值不为0则跳转到标号LOOP处,为0则向下执行,R7值为5
SJMP $ ;6 跳转到当前指令,就是在本条指令处循环
END ;程序结束
-------------------------------------------------------------------------
我也只回答这几个了!