单片机原理与应用以及C51编程技术——硬件体系结构梳理(下)

简介: 单片机原理与应用以及C51编程技术——硬件体系结构梳理(下)

2.3 外部数据存储器


当单片机需要外加RAM存储器时(扩展系统),必须使用专用的MOVX指令,此时单片机的端口功能就要发生相应的改变:

① P0、P2作为外部RAM的地址和数据总线;

② 使用MOVX指令进行读写操作。

③ MOVX指令在执行时,会自动地产生/RD或/WR信号对 外部RAM实现控制。


指令通过P0、P2输出DPTR中的16位地址信号。这里使用了16位的寄存器DPTR,其寻址范围为64KB。

此时: P0口做低8位地址总线和数据的“复用”总线;

P2口做高8位地址总线。


2.4 小结


MCS-51单片机的存储器的配置

片内4K的程序存储器ROM;

片内256B的数据存储器RAM;

片外可以扩展64K的ROM和RAM.


1.程序存储器

当引脚EA=1时, CPU从片内ROM的0000H单元运行程序;

若引脚EA=0时, CPU从片外ROM的0000H单元运行程序。

当引脚EA=1,且PC值大于0FFFH时, CPU会自动从内部ROM转到片外ROM的1000H单元运行程序。


无论是片内还是片外, ROM有六个单元是有特定意义的:


1.0000H单元:上电,复位后的启动地址;

2.0003H单元:外部中断INT0的入口地址;

3.000BH单元:定时器T0的中断入口地址;

4.0013H单元:外部中断INT1的入口地址;

5.001BH单元:定时器T1的中断入口地址;

6.0023H单元:串行口中断的入口地址。


2.内部数据存储器RAM

低128B: 1,工作寄存器区;2,位寻址区;3,便笺区;

高128B: 做特殊功能寄存器SFR用。

注意:


1.SFR不同于一般的数据RAM,它不是用于存储数据,而是用来控制和 表征单片机内部几个逻辑部件的特征,状态等重要信息。

2.在使用RAM时,要注意字节地址和位地址的概念.

3.访问内部RAM的指令为 MOV 指令。


3.外部数据存储器


1.在硬件具备的条件下,MCS-51单片机可以使用64KB的外部数据存储器.如果要访问外部数据存储器RAM时,只能使用间址的寻址方式.

2.间址寄存器有R0,R1或DPTR.前者寻址范围为256KB(00H-FFH);后者为64KB(0000H-FFFFH).使用的指令是 MOVX。


三、单片机的引脚功能


3.1 51单片机的外形和逻辑符号


0a2653c851af460fa595bd959398a8f1.png


3.2 51单片机的引脚定义


3.2.1 主电源引脚


主电源引脚:Vcc(+5V— 40脚)和 Vss (GND 20脚);


0eacb84100b54626af849e6b562bf92a.png


3.2.2 外接晶体引脚


外接晶体引脚:XTAL1(19脚)、XTAL2(18脚)

两脚之间接入一个晶体震荡器,单片机就以此晶体的频率开始工作(其频率范围为:0~24MHz)。

频率越高,单片机的工作速度就越快,但单片机的功耗就要增加,其产生的高次谐波也会对系统内部的模拟电路(如ADC)产生严重的干扰。


2d65d23f6d4748949b924e4057485923.png


3.2.3 控制与电源复用引脚


RST / V pd(9脚)

RST / V pd(9脚):复位信号输入,高电平有效。


复位操作可以确保CPU从程序的开始端运行程序;

微处理器在“上电”时必须对其施行“复位”操作,以避免电源从0V至5V时电源的过度性造成系统“混乱”。而MCS-51单片机不具备“上电复位”功能。因此,必须通过外部对此引脚施加一个(大于两个时钟周期的)高电平使单片机复位。


0a2653c851af460fa595bd959398a8f1.png0eacb84100b54626af849e6b562bf92a.png


在复位状态下:

1.程序指针PC=0000H;

2.堆栈指针SP=07H;

3.SFR的内容全变为“0”;

4.P0~P3四个端口输出“全1”(FFH);

5.RAM内容不变。

【思考题】PC=0000H 意味着什么?

意味着程序从头开始执行

Vpd 功能:当单片机掉电时,此引脚可以接入备用电源向单片机内部的RAM供电,防止RAM中的数据丢失。


ALE/PROG(30脚)

以系统时钟 fosc 的1/6的频率,周期性输出方波脉冲。


1.系统扩展时,作为外部存储器低八位地址的锁存信号;

2.可为系统提供一个频率为 fosc/6 的方波信号;

3.EPROM型单片机编程时编程输入脉冲(第二功能)。

0a2653c851af460fa595bd959398a8f1.png

/PSEN(29脚)

/PSEN(29脚):外部程序程序存储器的选通输出信号。


当单片机使用外部程序存储器时,此脚在一个机器周期内产生两次负脉冲,作为外部程序存储器ROM的选通信号;

访问外部数据存储器 RAM 时,此信号无效。

0a2653c851af460fa595bd959398a8f1.png

/EA / Vdd (31脚)

/EA / Vdd (31脚):程序存储器的选择控制端

CPU 执行片内ROM还是外部ROM中的程序,由硬件设计者通过对EA引脚的设置来决定:

/EA=“1” 时:单片机使用内部的程序存储器ROM;

/EA=“0” 时:单片机使用外部的程序存储器ROM。

【注意】:如果EA=1既使用单片机内部的程序存储器时,如果程序计数器PC的值超过0FFFH时,单片机将自动转向外部程序存储器1000H开始的单元。

对于EPROM型的单片机,此脚还是用于写程序时,加入21伏的编程电压。

0a2653c851af460fa595bd959398a8f1.png


四、单片机的I/O口


4.1 P0


P0.0 - P0.7: P0端口线(39-32脚)

输出能力最强的端口,可带动8个TTL负载;


具有两种工作方式:

①普通的I/O方式;

②系统扩展时的总线方式。

当处于I/O方式时:端口内部输出电路呈“开路结构”,所以当驱动MOS负载时,应接一个10K左右的上拉电阻,否则无法输出高电平。

当处于扩展方式时:P0口成为外部存储器提供低八位地址和数据的“复用总线” (此时不能作为通用的I/O端口)。


0a2653c851af460fa595bd959398a8f1.png0eacb84100b54626af849e6b562bf92a.png


4.2 P1


P1.0 - P1.7: P1端口线(1 – 8脚):


负载能力4个TTL负载。

MCS-51单片机中唯一“功能单一”的I/O端口。在系统设计中只能设计为“通用的I/O端口”;

2d65d23f6d4748949b924e4057485923.png


4.3 P2


P2.0 – P2.7: P2端口线(21 – 28脚):


同P0端口类似:具有两种工作方式:

①普通的I/O方式;

②系统扩展时的总线方式(高八位地址总线)。

0a2653c851af460fa595bd959398a8f1.png


4.4 P3


P3.0 – P3.7 P3端口线 (10 – 17脚):


P3口的引脚具有两种用途:

①做通用的I/O端口,负载能力为4个TTL ;

②引脚具有第二功能。

0a2653c851af460fa595bd959398a8f1.png


4.4.1 小结


【注意】: 在系统设计中,P3端口原则上不作I/O端口,而是尽量保留其第二功能;


如:串行通信中所使用的发送TXD、接收RXD以及外部中断的两个输入信号INT0、INT1等。


  **这种方法利于系统设计中最大限度的调用MCS-51单片机的内部硬件资源,以简化外部电路的设计。**


4.5 片外总线结构


0a2653c851af460fa595bd959398a8f1.png


4.5.1 地址总线(AB)


地址总线的宽度是16位,因此可以寻址的范围是64 KB。采用分时复用技术,可以对外部64 KB的数据存储器或程序存储器直接寻址。它由P0口提供16位地址总线的低8位(A0~A7),由P2口提供地址总线的高8位(A8~A15)。


4.5.2 数据总线(DB)


数据总线的宽度是8位,它由P0口提供。


4.5.3 控制总线(CB)


控制总线由P3口的第二功能(RXD、TXD、INT0、INT1、T0、T1、RD、WR)和4根独立的控制线(RST、EA、ALE、PSEN)组成。


4.6 小结


1.MCS-51单片机的四个端口其功能在芯片设计中各不相同,所以其内部结构和特点也不一样;

2.P0~P3四个端口都可以作为普通的具有双向传输功能的I/O端口;

3.当系统硬件设计中如果采用外部存储器(ROM或RAM)扩展方式时,P0、P2端口变为系统总线。在此时P0、P2不能再做I/O端口。

4.P3口在系统设计上,尽可能的保留其第二功能,以可充分利用单片机的内部系统资源。

5.对程序存储器ROM的使用选择取决于引脚EA的设定:EA=1使用片内4K的ROM;EA=0时使用外部ROM。

6.一个微处理器在上电时,必须进行“复位”操作,而MCS-51单片机不具备“上电复位”功能,所以必须外加一个上电复位电路,其复位时间大于2个机器周期即可;

7.单片机的工作频率 fosc 取决于外接晶体的振荡频率。如何选择晶体的振荡频率不单纯考虑系统的工作速度,还要考虑到系统的功耗、工作的稳定向和可靠性,而这些都与外接晶体的振荡频率有着直接的关系;


五、单片机内部看门狗定时器


看门狗定时器(WDT)简介

 WDT是为了解决CPU运行时可能进入混乱或死循环而设置的,AT89S51的WDT由一个14bit计数器和看门狗复位SFR(WDTRST)构成。

 **外部复位时,WDT默认为关闭状态,要打开WDT,用户必须顺序将01EH和0E1H写到WDTRST寄存器(SFR地址为0A6H)中。**

 当启动WDT后,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT。

 WDT溢出将使RST引脚输出**高电平的复位脉冲**,复位脉冲持续时间**98个时钟周期**


六、单片机复位工作方式


6.1 介绍


复位:将单片机系统置成特定初始状态的操作,复位后程序从头(0000H单元)开始执行程序。

系统刚接通电源或重新启动时均进入复位状态。

当系统处于正常工作状态时,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以实现可靠复位,如图2-17所示,其中TCY为机器周期,等于12个时钟周期。各寄存器和程序计数器PC的状态见表2-11所示。


0a2653c851af460fa595bd959398a8f1.png


6.2 两种上电复位电路


6.2.1 上电复位电路


0eacb84100b54626af849e6b562bf92a.png

上电复位电路:当接通电源的瞬间,RST端与VCC同电位,随着电容上的电压逐渐上升,RST端的电压逐渐下降,于是在RST端便形成了一个正脉冲,只要该正脉冲的宽度持续两个机器周期的高电平,就可实现系统自动复位。



6.2.2 上电复位及按钮复位


2d65d23f6d4748949b924e4057485923.png

上电复位和按钮复位:(也称为手动复位)的组合,当人工按下P按钮后就可实现系统复位。单片机复位后,各寄存器和程序计数器PC的状态见表2-11所示。


6.3 复位的初始状态


0a2653c851af460fa595bd959398a8f1.png


七、单片机低功耗方式


7.1 介绍


AT89系列单片机提供了两种省电工作方式:空闲方式和掉电方式。其目的是尽可能地降低系统的功耗。

在空闲工作方式中(IDL=1),振荡器继续工作,时钟脉冲输出到中断系统、串行口以及定时器模块,但却不提供给CPU。在掉电方式中(PD=1),振荡器停止工作。

两种工作方式都是由SFR中的电源控制寄存器PCON的控制位来定义的,PCON寄存器的控制格式如图2-19所示。

0eacb84100b54626af849e6b562bf92a.png

SMOD:串行口波特率倍率控制位。

GF0,GF1:通用标志位。

PD:掉电方式控制位。PD=1,进入掉电工作方式。

IDL:空闲方式控制位。IDL=1,进入空闲工作方式。

PCON寄存器的复位值为0XXX000,PCON.4~PCON.6为保留位,用户不要对它们进行写操作。


7.2 空闲工作方式


当CPU执行完置IDL=1( ORL PCON,#01H,PCON.0=1)的指令后,系统进入了空闲工作方式。

这时,内部时钟不提供给CPU,而只供给中断、串行口、定时器部分。CPU的内部状态维持不变,即包括堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC等其他所有的内容保持不变,端口状态也保持不变。ALE保持逻辑高电平。


有两种方法可以使系统退出空闲工作方式:

1、**任何的中断请求都可以由硬件将PCON.0(IDL)清0而中止空闲工作方式。**当执行完中断服务程序返回时,从置空闲工作方式指令的下一条指令开始继续执行程序。

2、**硬件复位。**RST端的复位信号直接将PCON.0(IDL)清0,从而退出空闲状态,CPU则从进入空闲方式的下一条指令开始重新执行程序。


7.3 掉电工作方式


当CPU执行一条置PCON.1位(PD)为1的指令后,系统进入掉电工作方式。

在这种工作方式下,内部振荡器停止工作。由于没有振荡时钟,因此所有的功能部件都停止工作,但内部RAM区和特殊功能寄存器的内容被保留,而端口的输出状态值都保存在对应的SFR中,ALE和都为低电平。

**退出掉电方式的惟一方法是硬件复位。**复位后将所有的特殊功能寄存器的内容初始化,但不改变内部RAM区的数据。

而在准备退出掉电方式之前,**Vcc必须恢复到正常的工作电压值,并维持一段时间(约10 ms),**使振荡器重新启动并稳定后,方可退出掉电方式。


八、单片机的时序


8.1 介绍


单片机取出指令后要对指令进行译码产生各种操作信号,所谓时序,就是指各种操作信号的时间序列,它表明了指令执行中各种信号之间的相互关系。为达到同步协调工作的目的,各操作信号在时间上有严格的先后次序,这些次序就是CPU的时序。

CPU执行指令的一系列动作都是在时序电路控制下一拍一拍进行的,为了便于对CPU时序进行分析,人们按指令的执行过程规定了几种周期,即时钟周期、状态周期、机器周期和指令周期,也称为时序定时单位。


8.2 基本时序


8.2.1 时钟周期


也称为振荡周期,定义为时钟脉冲频率(fosc)的倒数,是计算机中最基本的、最小的时间单位。

在一个时钟周期内,中央处理器CPU仅完成一个最基本的动作。一个振荡周期也称为一个节拍,用P表示,通常称为P节拍,如图2.20所示。

0a2653c851af460fa595bd959398a8f1.png


8.2.2 状态周期


时钟周期经2分频后成为内部的时钟信号,用作单片机内部各功能部件按序协调工作的控制信号,称为状态周期,用S表示。

**一个状态周期包含两个时钟周期,前半状态周期相应的时钟周期定义为P1,后半周期对应的时钟周期定义为P2。**一般情况下,CPU中的算术逻辑运算在P1有效期间完成,在P2有效期间进行内部寄存器间的信息传送。


8.2.3 机器周期


机器周期:完成一个基本操作所需要的时间称为机器周期。

51单片机有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1~S6,而一个状态包含两个时钟周期,那么一个机器周期就有12个时钟周期,可以表示为S1P1, S1P2, …, S6P1, S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频。


8.2.4 指令周期


指令周期:指CPU执行一条指令所需要的时间,一般由若干个机器周期组成,指令不同,所需要的机器周期数也不同。51系统中,一个指令周期通常含1~4个机器周期。大多数指令是单字节单周期指令,还有一些指令是单字节双周期指令和双字节双周期指令,而乘法指令MUL和除法指令DIV都是单字节四周期指令(参见附录B)。

相关文章
|
1月前
|
传感器 存储 物联网
单片机的原理与应用
单片机是一种将计算机的CPU、存储器、输入输出接口等功能集成在一块芯片上的微型计算机,被广泛应用于各类控制系统和智能设备中。
55 5
|
4月前
|
传感器 存储 程序员
《单片机原理与应用及C51编程技术》期末复习笔记
《单片机原理与应用及C51编程技术》期末复习笔记
|
6月前
|
传感器
51单片机循迹小车原理介绍和代码示例
51单片机循迹小车原理介绍和代码示例
51单片机循迹小车原理介绍和代码示例
|
5月前
|
数据安全/隐私保护
单片机课程设计——基于C51电子密码锁(源代码)
单片机课程设计——基于C51电子密码锁(源代码)
|
5月前
技术心得记录:单片机开发过程中使用结构体简化程序
技术心得记录:单片机开发过程中使用结构体简化程序
30 0
|
6月前
|
存储 移动开发
80C51单片机----数据传送类指令
80C51单片机----数据传送类指令
170 2
|
6月前
|
存储 移动开发 程序员
80C51单片机的七种寻址方式
80C51单片机的七种寻址方式
83 1
|
6月前
|
算法 定位技术 C语言
51单片机实现俄罗斯方块游戏编程
设计了一款基于AT89C51单片机的俄罗斯方块游戏机,使用LCD12864液晶显示,按键控制方块移动与变形。游戏中,7种不同形状的方块随机下落,填满一行得分,满屏则游戏结束。包含电源、单片机最小系统、LCD和按键模块的硬件电路通过Proteus进行了仿真,展示了游戏运行、得分和计时等。代码部分展示了检查碰撞和更新地图的函数。
111 1
【51单片机】利用【时间延迟】的原理规避【按键抖动问题】
【51单片机】利用【时间延迟】的原理规避【按键抖动问题】
|
6月前
|
编译器 C语言 开发者
单片机原理与应用:探索微型计算机世界
单片机原理与应用:探索微型计算机世界
54 1

热门文章

最新文章