单片机程 MCS-51系列) 8.P0口(39-32):双向I/0口 9.P1口(1-8):准双向通用I/0口 10.P2口(21-28):准双向I/0口。 11.P3口(10-17):多用途口 Ⅰ/0就是英文IN/oUT的缩写,这些引脚的功能想必大家也都明白了,(就是输入/输出的意思), 这32个I/0口就是留给我们作连接外围电路用的,那么它们之间有些什么不同呢?这个问题稍微有点 复杂,我们将在以后的课程中专门来学习。现在我们先来往下看 单片机的电路连接和开发过程 看附图,这就是我们做实验用的电路图,想必大家都能看得懂吧。接下来就让我们通过一个实验 来看看单片机是如何工作的?我们的实验是让一个LED灯亮起来,亮哪一个?这就随便你了,比如我们 就让LED1亮起来吧,仔细看一下电路图,LED1接在什么地方呢?接在单片机的P1.0的引脚(也就是1 脚)上,那么按照该电路图的连接方法,当1脚为高电平时,LED是不亮的;只有当1脚为低电平时, LEDI才会亮起来,怎样才能让1脚由高电平变为低电平呢?我们让人做事,就必须对她说一声,也就 是发布命令,想让单片机工作,也得发布命令,不过在计算机中那叫指令,我们要让1脚变为低电平的 指令是CLRP1.0(让1脚变为高电平的指令是 SETB P1.0),这就是我们通常所说的源代码,(这是我 们开发产品的第一步—源代码编辑);怎么做呢?我们首先得打开实验软件,屏幕出现一个浏览器的软 件窗口,点击左边的扩展实验,选中实验16-自动温度控制器,再点击工具栏里的调试按钮,弹出 个记事本对话框,写入CLRP1.0:(分号必须在英文状态下输入),输入完毕后选择文件→保存即可; 那么单片机能读懂这条指令吗?当然不能,接下来我们还有一件事情要做,就是把这句指令翻译成单片 机能读懂的东西,单片机能读懂什么呢?它其实只懂一样一就是数字,因此,我们就把CLRP1.0翻译 成C2H,9OH,至于为什么要翻译成这样,这当然是 INTEL公司规定好的,我们就不需要去研究它了。这 个过程我们叫作编译,(这是我们开发产品的第二步),那么指令是怎么编译过来的呢?这就得靠专业的 软件了,我们做实验使用的软件就有此功能,只要点击工具栏上的编译钮,稍等片刻即出现一个编 译信息窗口,如果编译通过就会有编译完成,结果如下:0个警告,0个错误的编译信息,如果编译错 误则会出现编译错误的信息,并提示错误的行号:编译完了之后通常要进行程序仿真(这是第三步), 当然我们的实验程序很简单是不需要仿真的:接下来怎么才能把编译通过的指令写入单片机中呢?这通 常需要借助于一种硬件工具,叫编程器(也叫烧录器),不过我们的实验板采用的是具有串行下载功能 的单片机,所以您只要直接点击快捷工具栏上的下载按钮,程序就进入了实验板(这是第四步一编程) 自此就完成了单片机开发的全过程 全部工作结束后,我们看到了什么?接P1.0(1脚)的LED1亮了起来;改变源代码,变成 SETB P1.0; 进行编译,下载,看看结果是不是LED1不亮了。怎么样,不难吧!!! 最后让我们来思考一个问题,当我们用编程器把编译后的指令写入单片机时,单片机就开始执行 这条指令,那么这条指令就一定在单片机内部的某个地方,它究竟在哪里呢?单片机的内部结构又是怎 么样的呢?这将是我们第三课要讨论的内容一单片机的内部结构(一)……半导体存储器 三.本课总结 本课主要讲述了单片机开发的整个过程,这个过程包括第一步一编辑源代码,第二步一编译源代 码,第三步—一程序仿真,第四步一芯片烧写(亦称编程),希望大家记住这四步,这是非常关键的:单 片机的硬件原理其实并不复杂,本来嘛,单片机的设计就是为了通用和灵活,所以开发单片机最重要的 就是软件的编写,以后我会慢慢地教大家学习更多的软件知识。 四.第2课习题 89C51的电源电压是多少伏? 2.熟练掌握编译软件的使用方法 单片机之友QQ:280919249
单片机教程 (MCS-51 系列) 9 8. P0 口(39-32):双向 I/O 口。 9. P1 口(1-8):准双向通用 I/0 口。 10. P2 口(21-28):准双向 I/0 口。 11. P3 口(10-17):多用途口。 I/O 就是英文 IN/OUT 的缩写,这些引脚的功能想必大家也都明白了,(就是输入/输出的意思), 这 32 个 I/O 口就是留给我们作连接外围电路用的,那么它们之间有些什么不同呢?这个问题稍微有点 复杂,我们将在以后的课程中专门来学习。现在我们先来往下看: 二.单片机的电路连接和开发过程 看附图,这就是我们做实验用的电路图,想必大家都能看得懂吧。接下来就让我们通过一个实验 来看看单片机是如何工作的?我们的实验是让一个 LED 灯亮起来,亮哪一个?这就随便你了,比如我们 就让 LED1 亮起来吧,仔细看一下电路图,LED1 接在什么地方呢?接在单片机的 P1.0 的引脚(也就是 1 脚)上,那么按照该电路图的连接方法,当 1 脚为高电平时,LED1 是不亮的;只有当 1 脚为低电平时, LED1 才会亮起来,怎样才能让 1 脚由高电平变为低电平呢?我们让人做事,就必须对她说一声,也就 是发布命令,想让单片机工作,也得发布命令,不过在计算机中那叫指令,我们要让 1 脚变为低电平的 指令是 CLR P1.0(让 1 脚变为高电平的指令是 SETB P1.0),这就是我们通常所说的源代码,(这是我 们开发产品的第一步—源代码编辑);怎么做呢?我们首先得打开实验软件,屏幕出现一个浏览器的软 件窗口,点击左边的扩展实验,选中实验 16—自动温度控制器,再点击工具栏里的调试按钮,弹出一 个记事本对话框,写入 CLR P1.0;(☺分号必须在英文状态下输入),输入完毕后选择文件→保存即可; 那么单片机能读懂这条指令吗?当然不能,接下来我们还有一件事情要做,就是把这句指令翻译成单片 机能读懂的东西,单片机能读懂什么呢?它其实只懂一样--就是数字,因此,我们就把 CLR P1.0 翻译 成 C2H,90H,至于为什么要翻译成这样,这当然是 INTEL 公司规定好的,我们就不需要去研究它了。这 个过程我们叫作编译,(这是我们开发产品的第二步),那么指令是怎么编译过来的呢?这就得靠专业的 软件了,我们做实验使用的软件就有此功能,只要点击工具栏上的编译按钮,稍等片刻即出现一个编 译信息窗口,如果编译通过就会有编译完成,结果如下:0 个警告,0 个错误的编译信息,如果编译错 误则会出现编译错误的信息,并提示错误的行号;编译完了之后通常要进行程序仿真(这是第三步), 当然我们的实验程序很简单是不需要仿真的;接下来怎么才能把编译通过的指令写入单片机中呢?这通 常需要借助于一种硬件工具,叫编程器(也叫烧录器),不过我们的实验板采用的是具有串行下载功能 的单片机,所以您只要直接点击快捷工具栏上的下载按钮,程序就进入了实验板(这是第四步—编程)。 自此就完成了单片机开发的全过程。 全部工作结束后,我们看到了什么?接 P1.0(1 脚)的 LED1 亮了起来;改变源代码,变成 SETB P1.0; 进行编译,下载,看看结果是不是 LED1 不亮了。怎么样,不难吧!!! 最后让我们来思考一个问题,当我们用编程器把编译后的指令写入单片机时,单片机就开始执行 这条指令,那么这条指令就一定在单片机内部的某个地方,它究竟在哪里呢?单片机的内部结构又是怎 么样的呢?这将是我们第三课要讨论的内容—单片机的内部结构(一)……半导体存储器。 三.本课总结 本课主要讲述了单片机开发的整个过程,这个过程包括第一步—编辑源代码,第二步—编译源代 码,第三步—程序仿真,第四步—芯片烧写(亦称编程),希望大家记住这四步,这是非常关键的;单 片机的硬件原理其实并不复杂,本来嘛,单片机的设计就是为了通用和灵活,所以开发单片机最重要的 就是软件的编写,以后我会慢慢地教大家学习更多的软件知识。 四.第 2 课习题 1. 89C51 的电源电压是多少伏? 2. 熟练掌握编译软件的使用方法。 单片机之友 QQ:280919249
单片机程 MCS-51系列) 第三课单片机的内部结构(一) 单片机的内部究竟有哪些部分组成的,它们都有些什么作用呢?让我们看下面的图 P0驱动器 P2驱动器 P0销存器 P2锁存器 程序地址 寄存器 寄存器 皆存器 暂存器2 吸冲器 ALU运算中心 PC增1 中箭,辛行口 和定时器 P1锁存器 P3锁存器 P1驱动器 P3驱动器 L-O P1.0-P1.7 P3.0-P3.7 这就是单片机的内部方框图,让我们先来了解其中的ROM存储器 半导体存储器ROM 1.几个基本概念 上一课我们讲到了把编译后的指令下载到单片机后这条指令一定在单片机内的某个地方,那么它 究竟在哪里呢?原来它就放在一个叫程序存储器的地方,英文名称ROM(全称为 Read Only memory), 叫只读存储器。它是一个什么东西呢?在讨论这个问题之前,让我们先来看几个物理现象 (1)数和物理现象的关系 不知大家是否还记得,在学习数字电路时我们曾用一盏灯的亮和灭来表示电平的高和低,即用“1” 来表示高电平,用“0”来表示低电平,如果现在有两盏灯那它会有几种状态呢?请看下面的表 00 0 两盏灯的组合就是四种状态:00,01,10,11。如此看来灯的亮和灭这种物理现象同数字确实有 着某种联系,如果我们把它们按一定的规律排列好,那么电平的高或低就可以用数字来表示了,换句话 说:不同的数字可以代表不同数量灯的电平高或低。比如:0000,0001,0010,0011,0100,0101,0110, 0111,1000,1001,1010,1011,1100,1101,1110,1111这十六种组合就可以代表四盏灯的状态 能理解吗? (2)位及字节的含义 单片机之友QQ:280919249
单片机教程 (MCS-51 系列) 10 第三课 单片机的内部结构(一) 单片机的内部究竟有哪些部分组成的,它们都有些什么作用呢?让我们看下面的图: 这就是单片机的内部方框图,让我们先来了解其中的 ROM 存储器: 一.半导体存储器 ROM 1.几个基本概念 上一课我们讲到了把编译后的指令下载到单片机后这条指令一定在单片机内的某个地方,那么它 究竟在哪里呢?原来它就放在一个叫程序存储器的地方,英文名称 ROM(全称为 Read Only Memory), 叫只读存储器。它是一个什么东西呢?在讨论这个问题之前,让我们先来看几个物理现象: (1)数和物理现象的关系 不知大家是否还记得,在学习数字电路时我们曾用一盏灯的亮和灭来表示电平的高和低,即用“1” 来表示高电平,用“0”来表示低电平,如果现在有两盏灯那它会有几种状态呢?请看下面的表: ¤ ¤ 0 0 0 1 1 0 1 1 两盏灯的组合就是四种状态:00,01,10,11。如此看来灯的亮和灭这种物理现象同数字确实有 着某种联系,如果我们把它们按一定的规律排列好,那么电平的高或低就可以用数字来表示了,换句话 说:不同的数字可以代表不同数量灯的电平高或低。比如:0000,0001,0010,0011,0100,0101,0110, 0111,1000,1001,1010,1011,1100,1101,1110,1111 这十六种组合就可以代表四盏灯的状态, 能理解吗? (2)位及字节的含义 单片机之友 QQ:280919249
单片机程 MCS-51系列) 在单片机中,一盏灯(实际上是一根线)我们称它为一位,它有两种状态(“0”或“1”),分别 对应电平的高或低,它是单片机最基本的数量单位,用BI来表示。8盏灯(八根线)有256种状态 这8盏灯(也就是8位)我们把它称为一个字节,用BYTE表示。至于为什么要怎么规定,这就不需要 你我操心了,我们只要记住就可以了。那么单片机是如何来储存这些数字所代表的字节的状态的呢?接 着往下看 2.半导体存储器的工作原理 (1)存储器的内部构造 看下面的图,这就是半导体存储器的结构简图:(图中有4个字节) 1个盒子就是1位 控制番 1个就是1个字节 读控製片选写控朝 (2)存储器的工作原理 存储器就是用来存放数据的地方,它其实是利用电平的高或低来存放数据的,也就是说,它实际 上存放的是电平的高或低的状态,而不是我们所习惯上认为的“1234”这样的数字。那它是如何工作的 呢?看上面的图,这就是存储器的内部结构示意图,一个存储器就象一个小抽屉,一个小抽屉里有8 个小盒子,每个小盒子用来存放1位“电荷”,电荷通过与它相连的电线传进来或释放掉,至于电荷在 小盒子里是怎样存放的,这就不用我们操心了,您可以把电线想象成水管,小盒子里的电荷就象是水, 那就好理解了,存储器中的1个小抽屉我们把它称之为1个“单元”,相当于1个字节,而1个小盒子 就相当于1位 有了这么一个构造,我们就可以开始存放数据了,比如我们要放进一个数据“0001010”,我们 只要把第2号、第4号和第5号小盒子里存满电荷,而其它小盒子里的电荷给放掉就行了。可是问题又 出来了,一个存储器有好多相同的单元,线是并联着的(看D7-D0),在放入电荷的时候,会将电荷放 入所有的字节单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多 少个字节单元,都只能放同一个数,这当然不是我们所希望的。因此,我们要在结构上稍作变化,看上 面的图,在每个单元上有根线与译码器相连,我想要把数据放进哪个单元,就通过译码器给哪个单元发 单片机之友QQ:280919249
单片机教程 (MCS-51 系列) 11 在单片机中,一盏灯(实际上是一根线)我们称它为一位,它有两种状态(“0”或“1”),分别 对应电平的高或低,它是单片机最基本的数量单位,用 BIT 来表示。8 盏灯(八根线)有 256 种状态, 这 8 盏灯(也就是 8 位)我们把它称为一个字节,用 BYTE 表示。至于为什么要怎么规定,这就不需要 你我操心了,我们只要记住就可以了。那么单片机是如何来储存这些数字所代表的字节的状态的呢?接 着往下看: 2.半导体存储器的工作原理 (1)存储器的内部构造 看下面的图,这就是半导体存储器的结构简图:(图中有 4 个字节) (2)存储器的工作原理 存储器就是用来存放数据的地方,它其实是利用电平的高或低来存放数据的,也就是说,它实际 上存放的是电平的高或低的状态,而不是我们所习惯上认为的“1234”这样的数字。那它是如何工作的 呢?看上面的图,这就是存储器的内部结构示意图,一个存储器就象一个小抽屉,一个小抽屉里有 8 个小盒子,每个小盒子用来存放 1 位“电荷”,电荷通过与它相连的电线传进来或释放掉,至于电荷在 小盒子里是怎样存放的,这就不用我们操心了,您可以把电线想象成水管,小盒子里的电荷就象是水, 那就好理解了,存储器中的 1 个小抽屉我们把它称之为 1 个“单元”,相当于 1 个字节,而 1 个小盒子 就相当于 1 位。 有了这么一个构造,我们就可以开始存放数据了,比如我们要放进一个数据“00011010”,我们 只要把第 2 号、第 4 号和第 5 号小盒子里存满电荷,而其它小盒子里的电荷给放掉就行了。可是问题又 出来了,一个存储器有好多相同的单元,线是并联着的(看 D7-D0),在放入电荷的时候,会将电荷放 入所有的字节单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多 少个字节单元,都只能放同一个数,这当然不是我们所希望的。因此,我们要在结构上稍作变化,看上 面的图,在每个单元上有根线与译码器相连,我想要把数据放进哪个单元,就通过译码器给哪个单元发 单片机之友 QQ:280919249
单片机程 MCS-51系列) 个信号,由译码器的通过这根线把相应的开关打开,这样电荷就可以自由地进出了。那么这样是不是 就能随意地向存储器写入或者读出数据了呢?其实还不能,继续看上面的图,与D7-DO相连的还有一个 控制器,它是用来干什么的呢?这根线叫写入/读出控制线,当我们向存储器写入数据时,必须先把这 个开关切换到写入端;而要读出数据时,就得先把开关切换到读出端;而片选端则是为了区分不同的存 储器设置的。这里没搞明白,没关系,后面还有介绍,先让我们来看看译码器是如何工作的? 3.半导体存储器的译码 简单介绍一下:我们知道,1根线可以代表2种状态:2根线可以代表4种状态;3根线可以代表 8种;256种状态又需要几根线代表?8根线,所以一片6264存储器我们只需要16根线就可以了 4.存储器的选片及总线的概念 至此,译码的问题解决了,让我们再来关注另外一个问题:送入每个字节的8根线又是从什么地 地址总线 信号控制 存储器1 存储器2 存储器8 航据总线 控制总线 方来的呢?它就是从单片机的外部引脚上接过来的,一般这8根线除了接一个存储器之外,还要接其它 的器件,这样问题又出来了,这8根线既然不是存储器和单片机之间专用的,如果总是将某个单元接在 这8根线上,就不行了,比如这个存储器单元中的数值是“FFH”,另一个存储器的单元是“O0H”,那么 这根线到底是处于高电平,还是低电平?岂不是要打架看谁历害了?所以我们必须让它们分离。办法当 然也简单,当外面的线接到集成电路的引脚上来后,不直接接到各单元去,中间再加一组开关就行了 这组开关就是前面提到的控制器(看前面的图),平时我们让开关打开着,如果确实是要向这个存储器 中写入数据,或要从存储器中读出数据,再让开关切换到相应的位置就行了。这组开关由三根引线选择 读控制端、写控制端和片选端,要将数据写入,先由控制器选中该片,然后发出相应的写信号,开关切 换到相应的位置,并将传过来的数据(电荷)写入片中;如果要读信号,先选中该片,然后发出读信号 开关也切换到相应的位置上,数据就被送出去了;另外读和写信号还同时受到译码器的控制,由于片选 端的不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器就不会“误会”而开门,造成冲 突,那么会不会同时选中两个存储器呢?只要是设计好的系统就不会,因为它是由计算机来控制的,如 果真的出现同时选中两个存储器的话,那就是电路出故障了。 如此看来,存储器要想写入或者读出数据还真是不简单,不过好在这些都是由计算机自动完成的 不需要我们去操心。从上面的介绍中我们已经看到,用来传递数据的8根线(51单片机是8根)并不 是专用的,而是很多器件大家共用的,所以我们把它们称之为数据总线(总线英文名为BUS),即公交 车道,谁都可以走;而16根地址线(51单片机共有16根地址线,这些以后会讲解,这里不必死记硬 背)也是连在一起的,我们把它们称之为地址总线,看上面的图 对于本小节的内容,如果您一时还无法理解,没有关系,继续往下看好了,我们在以后的课程中 还会详细的介绍,这里只要您稍微的了解一下就可以了!! 单片机之友QQ:280919249
单片机教程 (MCS-51 系列) 12 一个信号,由译码器的通过这根线把相应的开关打开,这样电荷就可以自由地进出了。那么这样是不是 就能随意地向存储器写入或者读出数据了呢?其实还不能,继续看上面的图,与 D7-D0 相连的还有一个 控制器,它是用来干什么的呢?这根线叫写入/读出控制线,当我们向存储器写入数据时,必须先把这 个开关切换到写入端;而要读出数据时,就得先把开关切换到读出端;而片选端则是为了区分不同的存 储器设置的。这里没搞明白,没关系,后面还有介绍,先让我们来看看译码器是如何工作的? 3.半导体存储器的译码 简单介绍一下:我们知道,1 根线可以代表 2 种状态;2 根线可以代表 4 种状态;3 根线可以代表 8 种;256 种状态又需要几根线代表?8 根线,所以一片 6264 存储器我们只需要 16 根线就可以了。 4.存储器的选片及总线的概念 至此,译码的问题解决了,让我们再来关注另外一个问题:送入每个字节的 8 根线又是从什么地 方来的呢?它就是从单片机的外部引脚上接过来的,一般这 8 根线除了接一个存储器之外,还要接其它 的器件,这样问题又出来了,这 8 根线既然不是存储器和单片机之间专用的,如果总是将某个单元接在 这 8 根线上,就不行了,比如这个存储器单元中的数值是“FFH”,另一个存储器的单元是“00H”,那么 这根线到底是处于高电平,还是低电平?岂不是要打架看谁历害了?所以我们必须让它们分离。办法当 然也简单,当外面的线接到集成电路的引脚上来后,不直接接到各单元去,中间再加一组开关就行了。 这组开关就是前面提到的控制器(看前面的图),平时我们让开关打开着,如果确实是要向这个存储器 中写入数据,或要从存储器中读出数据,再让开关切换到相应的位置就行了。这组开关由三根引线选择: 读控制端、写控制端和片选端,要将数据写入,先由控制器选中该片,然后发出相应的写信号,开关切 换到相应的位置,并将传过来的数据(电荷)写入片中;如果要读信号,先选中该片,然后发出读信号, 开关也切换到相应的位置上,数据就被送出去了;另外读和写信号还同时受到译码器的控制,由于片选 端的不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器就不会“误会”而开门,造成冲 突,那么会不会同时选中两个存储器呢?只要是设计好的系统就不会,因为它是由计算机来控制的,如 果真的出现同时选中两个存储器的话,那就是电路出故障了。 如此看来,存储器要想写入或者读出数据还真是不简单,不过好在这些都是由计算机自动完成的, 不需要我们去操心。从上面的介绍中我们已经看到,用来传递数据的 8 根线(51 单片机是 8 根)并不 是专用的,而是很多器件大家共用的,所以我们把它们称之为数据总线(总线英文名为 BUS),即公交 车道,谁都可以走;而 16 根地址线(51 单片机共有 16 根地址线,这些以后会讲解,这里不必死记硬 背)也是连在一起的,我们把它们称之为地址总线,看上面的图。 对于本小节的内容,如果您一时还无法理解,没有关系,继续往下看好了,我们在以后的课程中 还会详细的介绍,这里只要您稍微的了解一下就可以了!!! 单片机之友 QQ:280919249
单片机程 MCS-51系列) 5.半导体存储器的分类 第一课中我们提到过,89C51是一种带 Flash rom的单片机,什么是 Flash rom?它到底是一种 什么东西呢?ROM我们已经知道,是只读存储器,所谓只读,从字面上理解那就是只可以从里面读出数 据,而不能写进去,它类似于我们的书本,发到我们手里之后,我们只能读里面的内容,不可以随意更 改书本上的内容。ROM就是单片机中用来存放程序的地方,前面我们下载到单片机的指令就放在这个地 方。讲到这里大家也许会感到困惑,既然ROM是只读存储器,那么指令又是如何进入其中的呢?其实所 谓的只读只是针对正常工作情况下而言,也就是在使用这块存储器的时候,而不是指制造这块芯片的时 候,只要让存储器满足一定的条件就能把数据预先写进去,这个道理也很好理解,书本拿到我们手里是 不能改了,但当它还是原材料一白纸的时候,我们完全可以由印刷厂把内容印上去嘛。前面的编程就是 这么回事! Flash rom是一种快速存储式只读存储器,这种程序存储器的特点就是既可以电擦写,而且掉电 后程序还能保存,编程寿命可以达到几千至几万次,所以我们的实验系统是可以反复烧写的,您尽管使 用。目前新型的单片机都采用这种程序存储器;当然,除了这种程序存储器外,还有两种早期的程序存 储器产品,简单介绍一下:PROM, EPROM和 EEPROM,PROM称之为可编程只读存储器,就象我们的练习 本,买来的时候是空白的,可以写东西上去,可一旦写上去,就擦不掉了,所以它只能写一次,要是写 错了,就报废了,习惯上我们把带这种程序存储器的单片机称为OTP型单片机,如果您的产品批量生产 又要求价格比较低的话,带这种程序存储器的单片机是非常合适的; EPROM,称之为紫外线擦除的可编 程只读存储器,它里面的内容写上去之后,如果觉得不满意,可以用一种特殊的方法去掉后重写,就是 用紫外线照射,紫外线就象“消字灵”,可以把字去掉,然后再重写,当然消的次数多了,也就不灵光 了,所以这种芯片可以擦除的次数也是有限的—一几百次吧,电脑上的BI0S芯片采用的就是这种结构 的存储器; EEPROM,前一种存储器的擦写要用紫外线,而这种存储器可以直接用电擦写,比较方便数据 的改写,它有点类似于 FLASH存储器,但比 FLASH存储器速度要慢,现在新型的外部扩展存储器都是都 是这种结构 有关这几种程序存储器的使用和原理,我们将在下册中详细的介绍,这里就不多讲了。总之一句, 不管哪种程序存储器,它们的作用都只有一个—就是用来存放程序(也就是我们为单片机编写的指 令)。 了解了ROM,让我们再来简单讲讲另一种存储器,叫随机存取存储器,也叫内存,英文缩写为RAM ( Random Access Memory),它是一种既可以随时改写,也可以随时读出里面数据的存储器,类似于我 们上课用的黑板,可以随时写东西上去,也可以用黑板擦随时擦掉重写,它也是单片机中重要的组成部 分,单片机中有很多的功能寄存器都与它有关,详细内容后面再讲。 二.本课总结 本课主要讲述了单片机的两种半导体存储器一只读存储器ROM和随机存储器RAM的工作原理,它 们是单片机的重要组成部分,了解它的内部结构对我们学习单片机是很有帮助的。不过如果您一时对本 课的内容还无法搞得很明白,也没有关系,随着学习的深入,我们还会慢慢地讲解相应的基础知识,可 千万不要放弃哟?我在没有学会单片机之前也是如此囫囵吞枣的 三。第3课习题 1.半导体存储器分为几大类? 2.ROM存储器的作用是什么? 3.什么是位?什么是字节? 4.为什么8根线在单片机中会有256种状态?它是如何出来的? 5.89c51的ROM有多少字节的容量? 单片机之友QQ:280919249
单片机教程 (MCS-51 系列) 13 5. 半导体存储器的分类 第一课中我们提到过,89C51 是一种带 Flash ROM 的单片机,什么是 Flash ROM?它到底是一种 什么东西呢?ROM 我们已经知道,是只读存储器,所谓只读,从字面上理解那就是只可以从里面读出数 据,而不能写进去,它类似于我们的书本,发到我们手里之后,我们只能读里面的内容,不可以随意更 改书本上的内容。ROM 就是单片机中用来存放程序的地方,前面我们下载到单片机的指令就放在这个地 方。讲到这里大家也许会感到困惑,既然 ROM 是只读存储器,那么指令又是如何进入其中的呢?其实所 谓的只读只是针对正常工作情况下而言,也就是在使用这块存储器的时候,而不是指制造这块芯片的时 候,只要让存储器满足一定的条件就能把数据预先写进去,这个道理也很好理解,书本拿到我们手里是 不能改了,但当它还是原材料--白纸的时候,我们完全可以由印刷厂把内容印上去嘛。前面的编程就是 这么回事! Flash ROM 是一种快速存储式只读存储器,这种程序存储器的特点就是既可以电擦写,而且掉电 后程序还能保存,编程寿命可以达到几千至几万次,所以我们的实验系统是可以反复烧写的,您尽管使 用。目前新型的单片机都采用这种程序存储器;当然,除了这种程序存储器外,还有两种早期的程序存 储器产品,简单介绍一下:PROM,EPROM 和 EEPROM,PROM 称之为可编程只读存储器,就象我们的练习 本,买来的时候是空白的,可以写东西上去,可一旦写上去,就擦不掉了,所以它只能写一次,要是写 错了,就报废了,习惯上我们把带这种程序存储器的单片机称为 OTP 型单片机,如果您的产品批量生产, 又要求价格比较低的话,带这种程序存储器的单片机是非常合适的;EPROM,称之为紫外线擦除的可编 程只读存储器,它里面的内容写上去之后,如果觉得不满意,可以用一种特殊的方法去掉后重写,就是 用紫外线照射,紫外线就象“消字灵”,可以把字去掉,然后再重写,当然消的次数多了,也就不灵光 了,所以这种芯片可以擦除的次数也是有限的——几百次吧,电脑上的 BIOS 芯片采用的就是这种结构 的存储器;EEPROM,前一种存储器的擦写要用紫外线,而这种存储器可以直接用电擦写,比较方便数据 的改写,它有点类似于 FLASH 存储器,但比 FLASH 存储器速度要慢,现在新型的外部扩展存储器都是都 是这种结构。 有关这几种程序存储器的使用和原理,我们将在下册中详细的介绍,这里就不多讲了。总之一句, 不管哪种程序存储器,它们的作用都只有一个----就是用来存放程序(也就是我们为单片机编写的指 令)。 了解了 ROM,让我们再来简单讲讲另一种存储器,叫随机存取存储器,也叫内存,英文缩写为 RAM (Random Access Memory),它是一种既可以随时改写,也可以随时读出里面数据的存储器,类似于我 们上课用的黑板,可以随时写东西上去,也可以用黑板擦随时擦掉重写,它也是单片机中重要的组成部 分,单片机中有很多的功能寄存器都与它有关,详细内容后面再讲。 二.本课总结 本课主要讲述了单片机的两种半导体存储器—只读存储器 ROM 和随机存储器 RAM 的工作原理,它 们是单片机的重要组成部分,了解它的内部结构对我们学习单片机是很有帮助的。不过如果您一时对本 课的内容还无法搞得很明白,也没有关系,随着学习的深入,我们还会慢慢地讲解相应的基础知识,可 千万不要放弃哟?我在没有学会单片机之前也是如此囫囵吞枣的。 三.第 3 课习题 1. 半导体存储器分为几大类? 2. ROM 存储器的作用是什么? 3. 什么是位?什么是字节? 4. 为什么 8 根线在单片机中会有 256 种状态?它是如何出来的? 5. 89C51 的 ROM 有多少字节的容量? 单片机之友 QQ:280919249