近来,在整理我的书本的时候,找到了一本《51单片机应用从零开始》,这本书使用的是汇编,不知为何就从第一章看到了最后一章,感觉这本书很不错。
今天看完了最后一章,觉得收获很大,虽然没有写一个程序。
以前写过51的程序,但是很多关键的地方不明所以。但是看了这本书之后,豁然开朗。
AT89s51
128*8-bit RAM
4KB flash(ROM)
首先51内存在着 ROM 和 RAM,rom又称为程序存储器,ram又称为数据存储器(事实上是临时数据存储器(像是内存))。这个非常重要,非常重要!!!
程序下载:ROM
程序运行产生的临时数据:RAM
ROM 中也可以放置数据,但是是固化在程序中的,是不能够在运行时改变的。
RAM(128B:00H--7FH):
00H--07H:工作寄存器区(第0组)
08H--0FH:
10H--17H:
18H--1FH:工作寄存器区(第3组)
20H--2FH:位寻址区
30H--7FH:开放区
80H--0FFH:特殊功能寄存器SFR(并不一定全部都有)
痛痛快快提供我们使用的 RAM 只有位寻址区(20H--2FH)+ 开放区(30H--7FH)。
所以你应该明白:你在程序中不能够向ROM中写数据,只能够向RAM中写数据。而且只能是一部分的RAM