在这里我所讲到的单片机内部资源,和传统单片机书籍中讲单片机内部结构不同。我这里讲到的内部资源,是指作为单片机用户,单片机提供给我们可使用的东西。总结起来,主要是三大资源:
Flash:程序存储空间,早期单片机是 OTPROM。
RAM:数据存储空间。
SFR:特殊功能寄存器。
1) Flash
在早期的单片机中,主要是用 OTPROM(One Time Programmable Read-Only Memory,即一次可编程只读存储器)来存储单片机的程序,程序只能写入一次,如果发现错了,没办法,只能换一片,重新写入了。随着技术的发展,Flash 以其可重复擦写且容量大成本低的优点成为现在绝大多数单片机的程序存储器。对于单片机来说 Flash 最大的意义是断电后数据不丢失,这个概念类似于我们电脑的硬盘,我们保存了电影、文档、音乐等文件,把电源关掉后,下次重新开电脑,所有的文件都还照样存在。
2) RAM
RAM 是单片机的数据存储空间,用来存储程序运行过程中产生的和需要的数据,跟电脑的内存是相似的概念,其实最典型的比喻是我们的计算器,我们用计算器计算个加减法,一些中间的数据都会保存在 RAM 里边,关电后数据丢失,所以我们每次打开计算器,都是从归零开始计算。但是它的优点,第一是读写速度非常快,第二是理论上是可无限次写入的,即寿命无限,不管程序怎么运行怎么读写它都不会坏。
3) SFR
第三个资源是 SFR,特殊功能寄存器。这个概念大家可能刚开始理解不了,但是一定要记住。单片机有很多很多功能,每个功能都会对应一个或多个 SFR,我们就是通过对 SFR 的读写来实现单片机的多种多样的功能的。
讲到这里,我们来了解一下 51 单片机。通常我们一说到 51 单片机,指的都是兼容 Intel MCS-51 体系架构的一系列单片机,而 51 是它的一个通俗的简称。全球有众多的半导体厂商推出了无数款这一系列的单片机,比如 Atmel 的 AT89C52,NXP(Philips)的 P89V51,宏晶科技的 STC89C52......具体型号千差万别,但他们的基本原理和操作都是一样的,程序开发环境也是一样的。这里我们要分清楚 51 这个统称和具体的单片机型号之间的关系。
单片机内部资源的三个主要部分我们清楚了,那么我们选择 STC89C52 这款单片机来进行学习。STC89C52 是宏晶科技出品的一款 51 内核的单片机,具有标准的 51 体系结构,全部的 51 标准功能,程序下载方式简单,方便学习,我们就用它来学习单片机。它的资源情况:
Flash 程序空间是 8K 字节(1K=1024,1 字节= 8 位);
RAM 数据空间是 512 字节;
SFR我们后边会逐一提到并且应用。