找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

走进单片机世界(四)

[复制链接]
187196467 发表于 2011-11-21 22:25:45 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
存储器的工作原理存储器介绍
在计算机中存储器用来存放数据.存储器中有大量的存储单元,每个存储单元都可以有0和1两种状态,即存储器是以0和1的组合来表示数据,而不是放入如同十进制1、2、3、4这样形式的数据.

图1-1存储器单元示意图
1d5d7a93.jpg
图1-1是一个有4个单元的存储器示意图.该存储器一共有4个存储单元,每一个存储单元内有8个小单元格(对应一个字节8个位).有D0~D7共8根引线进入存储器的内部,经过一组开关.这组开关由一个称之为控制器的部件控制,而控制器则有一些引脚被送到存储器芯片的外部,可以由CPU对它进行控制.示意图的右侧还有一个称之为译码器的部分,它有两根引线通到集成电路的外部.译码器的另一侧有4根引线,分别通到每一个存储单元.


图1-2 1个存储单元的示意图


为说明问题,把其中的一个单元画成一个独立的图,见图1-2所示.如果黑色的单元代表1,白色的单元代表0,则该存储单元的状态是01001010,即4AH.从下图可以看出,这个存储器一共有4个存储单元,每个存储单元的8根线是并联的.在对存储单元读写时,会将待写入的0、1送入并联着的所有4个存储单元中.换言之,一个存储器不管有多少个存储单元,都只能放同一个数,这显然不是我们所希望的,因此,要在结构上稍作变化.图1-3是带有控制线的存储单元示意图,在每个单元上有个控制线.CPU准备把数据放进哪个单元,就送一个信号到这个单元的控制线.这个控制线就把开关合上,这样该存储单元中的数据就可以与外界交换了,而其它单元控制线没有导通信号,开关打开着,不会受到影响.这样,只要控制不同的单元的控制线,就可以向各单元写入不同的数据或从各单元中读取不同的数据.这个控制线应当由一个系统中的主机(CPU)进行控制,因为CPU是整个计算机系统的大脑,只有它才能确定什么时候该把什么数据放在某一单元中,什么时候该从哪一个单元中获取数据.为了使数据的存储不发生混淆,要给每个存储单元一个惟一的固定编号,这个编号就称为存储单元的地址.


图1-3 带有控制线的存储单元示意图
92350dbd.jpg


为了控制各个单元而把每个单元的控制线都引到集成电路的外面是不可行的.上述存储器仅有4个存储单元,而实际的存储器,其存储单元数很多.比如,27C512存储器芯片只有65536个单元,需要65536根控制线,不可能将每根控制线都引到集成电路的外边来.因此,在存储器内部带有译码器,译码器的输出端即通向各存储单元的控制线,译码器的输入端通过集成电路外部引脚接入,被称之为地址线.由于65536根控制线在任一时刻只有1根起作用,即65536根线有65536种状态,而每一根地址线都可以有0和1两种状态,N根线就有2n种状态,因此,只需要16根引线就能确定27C512的每一个地址单元.

存储器容量单位
存储器常以字节(B)为单位存储信息,比字节大的单位有千字节(KB)、兆字节(MB)、吉字节(GB),它们之间的换算关系是:
1KB=1024B
1MB=1024KB
1GB=1024MB

半导体存储器的分类
半导体存储器可以分为只读存储器,随机存取存储器和现场改写的非易失存储器3大类.

1. 只读存储器
只读存储器又称为ROM,其中的内容在操作运行过程中只能被CPU读出,而不能写入或更新。它类似于印好的书,对其里面的内容只能读,而不可以随意更改。只读存储器的特点是断电后存储器中的数据不会丢失。这类存储器适用于存放各种固定的系统程序、应用程序和表格等等,所以又称ROM为程序存储器。
只读存储器又可分为以下几类:
(1) 掩膜ROM:由器件生产厂家在设计集成电路时一次性固化,此后偏不能被改变。这种ROM成本低廉,适用于大批量生产。
(2) PROM:称之为可编程存储器。购买来的PROM是空白的,由使用者通过特定的方法将自已所需的信息写入其中。但只能写一次,以后再也不能改变,如果写错了,这块芯片就报废了。
(3) 紫外线可擦写的PROM(EPPROM):这类芯片的上面有一块透明的石英玻璃,透过玻璃可以看到芯片。经过一定的紫外线的照射后能将其中的内容擦除后重写。紫外线就像消字灵,可以把写在纸上的字消掉,然后再重写。
(4) 电可擦写的PROM(EEPROM):这类芯片的功能与EPROM类似,写进去的内容可以擦掉重写,而且不需要紫外线照射,只需要用电学方法就可以擦除,所以它的使用要比EPROM方偏一些,而且寿命也要长。EEPROM芯片虽然能用电的方法擦除其内容,但它仍然是一种ROM,具有ROM的典型特征,断电后芯片的内容不会消失。
不管是EPROM还是EEPROM,其可擦除的次数都是有限的。

2. 随机存取存储器
随机存取存储器又称为RAM,其中的内容可以在工作时随机读出和写入,即允许CPU对其进行读、写操作。由于随机存取存储器的内容可以随时改写,所以它适用于存放一些变量、运算的中间结果、现场采集的数据等等。RAM中的内容在断电后消失。
RAM可以分为静态和动态两种。单片机一般使用静态RAM,容量比较小,但使用起来比较方便。

3. 可现场改写的非易失存储器
随着半导体存储技术的发展。这种新的可现场改写信息的非易失存储器逐渐被广泛采用,且发展速度很快。主要有快擦写flash存储器,新型非易失静态存储器NVSRAM和铁电存储器FRAM。这些存储器的共同特点是:从原理上看,它们属于ROM型存储器,但是从功能上看,它们又可以随时改写信息,因而作用又相当于RAM。因此,ROM、RAM的定义划分以逐渐失去意义。由于这一类存储器技术发展非常迅速,存储器的性能也在不断发生变化,难以全面,客观的介绍各种存储器,因此,这里仅对单片机领域中关广泛应用的快擦写存储器flash作一个简单介绍。
FLASH存储器是在EPROM和E2PROM的基础上产生的一种非易失存储器。其集成度高,制造成本低,既具有SRAM的读写灵活性和较快的访问速度,又具有ROM在断电后不丢失信息的特点,所以发展迅速。FLASH存储器的擦写次数是有限的,一般在万次以上,多者可达100万次以上。目前,有很多单片机内部带有FLASH存储器,FLASH存储器也被用于构成固态盘,以替代传统的磁盘。



CPU的时序


1. 机器周期
在计算机中,为了便于管理,常把一条制令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等。每一项工作都为一个基本操作。完成一个基本操作所需的时间称之为一个机器周期。这是一个时间基准,好像人们用秒作为生活中的时间基准一样。由于80C51单片机工作时晶振频率不一定相同,所以直接用秒做时间基准不如用机器周期方便。

2. 振荡周期
80C51单片机的晶体振荡器周期,等于振荡器频率的倒数。习惯的说法是,接在80C51单片机晶振上的标称频率的倒数是该单片机的振荡周期。
80C51单片机的1个机器周期有12个振荡周期组成。设一个单片机工作于12MHZ,它的时钟周期是1/12us。它的1个机器周期是12×(1/12),即1us。
80C51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,而有一些完成的比较慢,要2个机器周期,还有两条指令要4个机器周期才能完成。为了计算机指令执行时间的长短,引入一个新的概念:指令周期。

3. 执行一条指令的时间,用机器周期数来表示。
每一条指令需用的机器周期数永远是固定的,而且每一条指令所需的机器周期数可以通过表格查到。这些数据大部分不需要记忆,但有一些需要记住,如DJNZ是一条双周期指令,执行该指令需要2个机器周期。




单片机的复位电路


在给单片机通电时,其内部电路处于不确定的工作状态。为了使单片机工作时内部电路有一个确定的工作状态,单片机在工作之前要有一个复位过程。对于80C51单片机而言,通常在其RST引脚上保持10MS以上的高电平就能使单片机完全复位。为了达到这个要求,可以用很多种方法。
图1-4是80C51单片机的复位电路


这种复位电路的工作原理是:通电时,电容E1两端相当于短路,RST引脚上为高电平,然后电源通过电阻R1对电容E1充电,RST端电压慢慢下降,降到一定电压值以下,即为低电平,单片机开始正常工作。
复位操作的主要功能是把PC初始化为0000H,使单片机程序存储器从0000H单元开始执行程序。此外,复位操作使P0~P3这些引脚变为高电平,还会对内部的一些单元产生影响,表1-5是复位后有关寄存器的内容。
单片机的复位电路非常重要,它影响到单片机是否能够可靠地工作。


表1-5 复位后的内部寄存器状态

寄存器
内容
寄存器
内容
PC
0000H
TMOD
00H
ACC
00H
TCON
00H
B
00H
TH0
00H
PSW
00H
TL0
00H
SP
07H
TH1
00H
DPTR
0000H
TL1
00H
P0~P3
0FFH
SCON
00H
IP
(××××00000B)
SBUF
不确定
IE
(0××00000B)
PCON
(0×××××××B)
咱_配角而已 发表于 2012-3-9 16:01:51 | 显示全部楼层
很好很强大  不错的文档
咱_配角而已 发表于 2012-3-9 16:05:07 | 显示全部楼层
很好很强打 不错的文档啊
lou小小 发表于 2012-4-14 18:50:18 | 显示全部楼层
恩 嘿嘿 有理解了些东西
cainiaowjs 发表于 2012-4-24 20:55:59 | 显示全部楼层
很好很强大,  不错的文档!!!{:soso_e113:}

yajunsc 发表于 2012-5-7 23:43:05 | 显示全部楼层
{:e179:}{:e179:}很好啊,很厉害{:e177:}
ahljj 发表于 2012-9-1 19:07:41 | 显示全部楼层
{:e179:}{:e179:}
ahljj 发表于 2012-10-4 08:30:50 | 显示全部楼层
{:e179:}{:e179:}
zhao1688 发表于 2020-11-14 09:18:44 | 显示全部楼层
感谢分享,学习了。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-23 01:51 , Processed in 0.053596 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表