目录
2.3 单片机的存储器配置
1、89C51/S51存储器分类
存储器分为程序存储器ROM和数据存储器RAM
冯·诺依曼结构:也称普林斯顿结构。是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。
程序存储器和数据存储器极有可能存在于片内也有可能存在于片外。
ROM: Read Only Memory
程序存储器的分类
9C51/S51存储器 采用(哈佛结构)
各个存储器的寻址方式
2、程序存储器
1、片内、片外统一编址;
2、地址线16根,空间总共64K;
3、CPU访问片内、片外ROM指令用MOVC。
4、EA = 0, 即EA引脚接低电平时,000—
0FFF在片外。迫使系统全部执行片外程序存储器,
0000H开始存放的程序。
EA = 1,即EA引脚接高电平时, 000—
0FFF在片内。程序从片内程序存储器0000H开始
执行,即访问片内存储器;当PC值超出片内ROM
容量时,会自动转向片外程序存储器空间执行
5、当程序小于4K时,可以只使用片内ROM
6、当程序大于4K时,CPU自动到片外ROM
7、片外ROM的OE连接到PSEN
2.3.1 程序存储器
某些单元被保留用于特定的程序入口地址。由于系统复位后的PC地址为0000H,故系统从0000H单元开始取指,执行程序。从0003H~002DH单元被保留用于6个中断源的中断服务程序的入口地址。
AT89S51单片机片内有4 KB的Flash ROM,其地址为0000H~0FFFH
单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单
元开始执行程序。
实际编程时,一般在0000H单元存放一条跳转指令,而用户设计的程序从
跳转后的地址开始存放。
专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动
转到各自的中断区去执行程序。因此以上地址单元不能用于存放程序的其他
内容,只能存放中断服务程序
通常情况下,每段只有8个地址单元是不能存下完整的中断服务程序的,因而一般也在中断响应的地址区,安放一条无条件转移指令,指向程序存储器的其他真正存放服务程序的空间去执行,这样中断响应后,CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。
数据存储器分类
RAM: Random Access Memory 随机存取存储器
是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。
数据存储器地址空间
数据存储器RAM(读/写存储器)用于存放运算的中间结果、数据暂存和缓冲、标志位等。
1、数据存储器片内、片外分别编址;
2、片内8位地址:空间256字节,地址00-
FF;包括RAM和SFR两部分
3、片外16位地 址 :P0口低8位, P2口高8 位 , 16 根地 址 线 , 地址 0000-FFFF, 共64K
4、CPU访问片内RAM使用MOV指令
5、 CPU访问片外RAM使用MOVX指令
§2.4 时钟电路及89C51/S51 CPU时序
图2-16 89C51/S51的片内振荡器及时钟发生器
1、振荡电路(时钟电路)的组成
内部:89C51/S51芯片内部有一个高增益反相放大器,
用于构成振荡器。反相放大器的输入端为XTAL1,输出
端为XTAL2。
外部:在XTAL1、XTAL2两端跨接石英晶体,及两个电
容,就可以构成稳定的自激振荡器。电容器C1和C2通
常取30 pF左右,可稳定频率并对振荡频率有微调作用。
石英晶体:决定振荡频率,频率范围 :
fOSC=0~24 MHz
振荡频率及振荡周期:
2、节拍与状态周期
节拍:用一个2分频的触发器电路,将振荡器的信号
频率fOSC除以2,得到两相时钟信号P1和P2。( P:
Phase)
时钟信号P1:节拍P1,是前半周信号有效,
时钟信号P2: 节拍P2,后半周信号有效。
机器状态周期:时钟信号的周期称为机器状态周期
S(STATE),是振荡周期的2倍。(时钟周期)
功能:每个时钟周期(以后常称状态S)有两个节拍(相
)P1和P2,CPU就以两相时钟P1和P2为基本节拍,指
挥89C51/S51单片机各个部件协调地工作。
3、机器周期
CPU访问一次存储器:需要12个振荡周期,包括6
个S态:S1,S2,…,S6。
每个状态又包括两拍,称为节拍P1和节拍P2。
机器周期:是指CPU访问存储器一次所需的时间。
例如:取指令、读存储器、写存储器等等。
一个机器周期:包括12个振荡周期:即S1P1,
S1P2,S2P1,···,S6P1,S6P2。
若采用6MHz晶体振荡器,则每个机器周期为多少?
设:晶体振荡器频率 fosc=6MHz,
则:振荡周期=1/fosc=1/6 μs(微秒)
因为:一个机器周期包括12个振荡周期,
所以:一个机器周期=12*(1/6) μs(微秒)
= 2μs(微秒)
问: 如果fosc=12MHz,
一个机器周期为多少?
答案 1μs(微秒)
4、指令周期
指令周期:执行一条指令所需的时间。
每条指令的执行时间不同,由一个或几个
机器周期组成。
指令的机器周期数少则执行速度快。
单片机指令包括:
单周期指令:加法、减法等
双周期指令:比较大小等
四周期指令:乘法、除法
设振荡周期为6MHz,则一个机器周期为 2μs
(微秒)。
单周期指令:指令周期为 2μs(微秒)
双周期指令:指令周期为 4μs(微秒)
四周期指令:指令周期为 8μs(微秒)
如果振荡周期为12MHz,则其指令周
期分别为 1μs、2μs 和4μs。
基本时序定时单位
综上所述,89C51/S51或其他80C51单片机的基本时序定时
单位有如下4个。
•振荡周期: 晶振的振荡周期,为最小的时序单位。
•状态周期(时钟周期): 振荡频率经单片机内的二分频器分
频后提供给片内CPU的时钟周期。因此,一个状态周期包含2
个振荡周期。
•机器周期(MC): 1个机器周期由6个状态周期即12个振荡
周期组成,是计算机执行一种基本操作的时间单位。
•指令周期: 执行一条指令所需的时间。一个指令周期由1~4
个机器周期组成,依据指令不同而不同,见附录A。
单片机外接晶振频率12 MHz,则:
振荡周期=1/fOSC=1/12 MHz=0.083 3 μs
状态周期=2/fOSC=2/12 MHz=0.167 μs
机器周期=12/fOSC=12/12 MHz=1 μs
指令周期=(1~4)机器周期=1~4 μs
则: 振荡脉冲周期(节拍,1/fOSC)
< 状态周期(时钟周期)
< 机器周期和指令周期
2.5 复位操作
怎么让单片机复位?
产生复位时单片机内部做了什么?
§2.5.1复位操作的主要功能
§2.5.2复位信号及其产生
§2.5.3复位电路
§2.5.1 复位电路
1、上电自动复位
◼上电自动复位是在加电瞬间电容通过充电来实现的,其电路如图2-18(a)所示。
◼在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。只要电源VCC的上升时间不超过1 ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。
◼对于CMOS型的89C51/S51,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1 μF。
2. 手动复位
所谓手动复位,是指通过接通一按钮开关,使单片
机进入复位状态。系统上电运行后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电自动复位组合,其电路如图2-18(b)所示。
复位电路虽然简单,但其作用非常重要。一个单片机系统能否正常运行,首先要检查是否能复位
成功。初步检查可用示波器探头监视RST引脚,按下 复 位 键 , 观察 是 否 有 足 够 幅 度 的 波 形 输 出(瞬时的),还可以通过改变复位电路阻容值进行实验。
何为看门狗复位电路?有什么作用?实现的原理?
复位操作的主要功能
89C51/S51 系列 单 片 机 与 其 他 微 处 理 器 一 样,在启 动 时 都 需 要 复 位,使CPU及系 统 各 部 件 处 于确定的初始状态,并从初态开始工作。
89C51/S51系列 单 片 机 的 复 位 信 号 是 从 RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如RST 引脚 上 有 一 个 高电 平 并 维持 2 个机 器 周 期(24个振荡周期),则CPU就可以响应并将系统复位。
复位操作主要功能
1、程序地址指针PC初始化为0000H,使单片机从0000H单元开始执行程序。(当由于程序运行出错或操作错误使系统死锁状态时,为摆脱困境,也需要按复位键重新启动)
2、除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表2-9所列。即在SFR中,除了端口锁存器、堆栈指针SP和串行口的SBUF外,其余的寄存器全部清0,端口锁存器的复位值为0FFH,堆栈指针值为07H,SBUF内为不定值。内部RAM的状态不受复位的影响,在系统上电时,RAM的内容是不定的。
表2-9 各特殊寄存器的复位值
A=00H: 表明累加器已被清0。
PSW=00H: 表明选寄存器0组为工作寄存器组。
SP=07H: 表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操
作的先加后压法则,第一个被压入的数据被写入08H单元中。
P0~P3=FFH: 表明已向各端口线写入1,此时,各端口既可用于输
入,又可用于输出。
IP=×××00000B: 表明各个中断源处于低优先级。
IE=0××00000B: 表明各个中断均被关断。
TMOD=00H: 表明T0,T1均为工作方式0,且运行于定时器状态。
TCON=00H: 表明T0,T1均被关断。
SCON=00H: 表明串行口处于工作方式0,允许发送,不允许接收。
PCON=00H: 表明SMOD=0,波特率不加倍。
值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对熟悉单片
机操作,减短应用程序中的初始化部分是十分必要的。
资料仅供学习使用
如有错误欢迎留言交流
上理考试辅导培训的其他专栏:
关注上理考试辅导培训了解更多