怎样做触屏版手机网站,如何做网络营销推广南宁,品牌查询网站,利津网页设计目录
一.单片机的逻辑结构
1.单片机的基本结构
2.引脚
3.中断系统
4.时钟电路
5.时序
6.典型指令的取指、执行时序
7.80C51中定时器/计数器
二.单片机的复位
三.程序的执行方式
1.单步执行方式
2.低功耗操作方式
3.EPROM编程和校验方式 首先补充一个知识点#x…目录
一.单片机的逻辑结构
1.单片机的基本结构
2.引脚
3.中断系统
4.时钟电路
5.时序
6.典型指令的取指、执行时序
7.80C51中定时器/计数器
二.单片机的复位
三.程序的执行方式
1.单步执行方式
2.低功耗操作方式
3.EPROM编程和校验方式 首先补充一个知识点 MCS-51:MCS-51从广义上讲是指所有的51系列单片机,从狭义上讲是指Intel公司生产的51系列,一般称为标准51系列.主要产品为8031/8051/8052/8751/8752,包含NMOS型和CMOS型。 8051与80C51的区别 80C51单片机是在8051的基础上发展起来的也就是说在单片机的发展过程中是先有8051然后才有80C51的。8051单片机与80C51单片机从外形看是完全一样的其指令系统、引脚信号、总线等完全一致完全兼容也就是说在8051下开发的软件完全可以在80C51上应用反过来在89C51下开发的软件也可以在8051上应用。这两种单片机是完全可移植的。 8051与80C51单片机的主要差别就在于芯片的制造工艺上。80C51的制造工艺是在8051基础上进行了改进。 8051系列单片机采用的是HMOS工艺高速度、高密度 80C51系列单片机采用的是CHMOS工艺高速度、高密度、低功耗 也就是说80C51单片机是一种低功耗单片机。 一.单片机的逻辑结构
1.单片机的基本结构 RAM内部数据存储器
用于存放可读/写数据芯片上由256个RAM单元。RAM分为低128个单元和高128个单元。低128个单元区称为内部 RAM可以被用户使用;
RAM 低128单元区可以分为三部分: 寄存器区、位寻址区、用户RAM区内部RAM的前32个单元为寄存器共分为4组。每组有8个寄存器在组中按照 R7~R0编号。 高128个单元区为专用寄存器 (SFR)区不能被用户使用。所以常说的内部RAM区指的是低128单元。 常用的专用寄存器
①累加器Acc(8位) 需要ALU处理的数据和计算结果多数要经过A累加器相当于十字路口的警察。累加器在算术运算中存放操作数和运算结果。
②寄存器B(8位)
与A累加器配合执行乘、除运算也可用作通用寄存器 乘法时:B为乘数并存放乘积的高八位; 除法时:B为除数并存放余数。
③程序计数器PC(16位) PC的内容为将要执行的指令地址。
PC不在上述RAM存储器内是唯一不可寻址的专用寄存器用户不可对其进行读、写在执行转移、调用、返回的指令时能自动改变其内容以改变程序的执行顺序。复位时:PC 0000H程序从此单元开始执行访问范围:0000H~FFFH即64K。
④程序状态字PSW(8位) 存放ALU运算过程的标志状态用来存放程序状态信息而且某些指令的执行结果会自动影响到PSW的有关标志位有些标志位可用指令来设置。
程序状态字寄存器的结构 ⑤堆栈指针SP(8位)
堆栈是一种数据结构,专门存放向上生长堆栈的栈顶位置对堆栈共有两种操作:进栈和出栈遵循“后进先出”的原则。
堆栈主要用于子程序调用及返回和中断处理断点的保护及返回系统复位时SP07H。实际应用中应该将堆栈指针SP设置为30H之后也就是用户RAM区中以免占用寄存器区与位寻址区。
ROM内部程序存储器
51单片机所支持的最大程序存储器空间为64KB其地址指针就是16位程序计数器PC 芯片中共有4KB 的ROM用于存放程序和原始数据。对于4KB程序存储器的单片机8051或8751。若EA接Vcc5V当程序计数器PC的值是0000H~0FFFHCPU则从内部程序存储器取指令当PC值大于0FFFH时则从外部存储器取指令。如果EA接Vss地则内部的程序存储器被忽略CPU总是从外部程序存储器中取指令。
以下为6个特殊的单元区域
0000H~ 0002H 系统的启动单元单片机复位后(PC)0000H程序从0000H单开始取指令。0003H-0004H 外部中断0中断地址区 000BH-0012H 定时/计数器0中断地址区。 0013H-001AH 外部中断1中断地址区 001BH-0022H 定时/计数器1中断地址区 0023H-002AH 串行中断地址区 2.引脚
1主电源引脚 Vcc:接SV电源 Vss:接电源地。
2时钟电路引脚 XTAL1:接外部晶体的一端。在单片机内部它是反相放大器的输入端该放大器成了片内振荡器。在采用外部时钟电路时对于HMOS单片机此引脚必须接地对CHMOS单片机此引脚作为驱动端。XTAL2:接外部晶体的另一端。在单片机内部它是反相放大器的输出端。若采用外部时钟电路时对于HMOS单片机该引脚输入外部时钟脉冲:对于CHMOS单片机此引脚应悬空。3
3控制信号引脚RST/VPD:复位/备用电源输入端。单片机上电后只要在该引脚上输入24个振荡周期(2个机器周期)宽度以上的高电平就会使单片机复位。RST/VPD具有复用功能可接上5V备用电源。当Vcc下掉到低于规定的电平而VPD在其规定的电压范围内时VPD就向片内RAM提供备用电源以保持片内RAM中的信息不丢失。
4ALE(Address Latch Enable):低8位地址锁存使能输出端。当CPU访问外部存储器时ALE可向低8位地址锁存器输出锁存控制信号;当不访问外部存储器时ALE端仍以时钟振荡频率的1/6固定地输出正脉冲。因此它可用作外部定时或其他需要但要注意的是:每当访问外部数据存储器时会丢失一个脉冲。ALE端可驱动8个LSTTL负载。
5(Program Store Enable):外部程序存储器读选通信号。
CPU在访问外部程序存储器期间每个机器周期信号两次有效。当访问外部数据存储器时则不会出现信号。端可以驱动8个LSTTL负载。
6(Enable Address):外部程序存储器地址允许使能端。
当输入高电平时CPU从片内程序存储器开始执行程序当程序计数器PC 的值超过内部程序存储器的最高地址(对于 8051为OFFFH)时将自动转向片外程序存储器取指令并执行。
当输入低电平时CPU 仅访问片外程序存储器。对于 8031 来说由于片内无程序存储器所以EA 端必须接低电平。
780C51共有40个引脚其中I/O口为
P0.0~P0.7:P0口8位准双向复用I/O端口
P1.0~P1.7:P1口是一个内部带上拉电阻的8位准双向I/O端口
P2.0~P2.7:P2口是一个内部带上拉电阻的8位准双向复用I/O端口
P3.0~P3.7:P3口是一个内部带上拉电阻的8位多功能双向复用I/O端口 其中P3含有第二功能第二功能如下
P3口线的第二功能都是单片机重要的控制信号。因此在使用时总是按需要优先选用他的第二功能剩下不用的才作为I/O口使用。P3口能驱动4个LSTIL负载。 3.中断系统
1.中断的概念
CPU识别中断申请的依据
CPU在每个机器周期的S5P2期间会自动查询各个中断申请标志位若查到某标志位被置位将启动中断机制。 中断源产生中断的请求源
中断请求中断源向CPU提出的处理请求
中断响应CPU检测到中断请求后进入中断服务
中断服务CPU 根据中断请求进行的相应处理
中断返回退出中断服务返回主程序( RETI)
中断响应过程CPU对事件的整个处理过程
中断系统能够实现中断处理功能的部件 2.中断源:
中断系统如下所示
80C51提供了5个中断源2个中断优先级控制可实现2个中断服务嵌套可通过程序设置中断的允许和屏蔽设置中断的优先级。 ●5个中断源
外部中断源中断标志为IE0和IE1
外部中断0 由INT0(P3.2)端口线引入低电平或下降沿引起。
外部中断1 由INT1(P3.3)端口线引入低电平或下降沿引起。
内部中断源中断标志为TF0TF1和TI/RI
定时/计数器T0中断由T0回零溢出引起。
定时/计数器T1中断由T1回零溢出引起。
串行口中断完成一帧字符发送/接收引起。
●4个中断控制寄存器
①中断标志及中断控制寄存器TCON地址88H TF0/TF1定时器/计数器中断申请标志位由硬件自动置位 0定时器/计数器未溢出 1定时器/计数器溢出T0/T1由全1变成全0
由硬件自动置位中断响应后由硬件自动清零
IT0/IT1外部中断请求的触发方式控制位可由用户通过软件设置 0电平触发。在INT0/INT1端申请中断的信号低电平有效。 1跳沿触发。在INT0/INT1端申请中断的信号负跳变有效。
IE0/IE1外部中断申请标志位 0没有外部中断申请 1有外部中断申请。
由硬件自动置位跳沿触发方式时中断响应后由硬件自动清0电平触发方式时中断响应后需软件清0。即
跳沿触发方式 硬件自动置位硬件自动清0
电平触发方式
硬件自动置位软件清0 ②串行控制寄存器SCON地址:98H TI/RI串行口中断申请标志位TI是发送完一个字节产生的中断RI是接收完一个字节产生的中断。 0没有串行口中断申请 1有串行口中断申请。
由硬件自动置位必须由用户在中断服务程序中用软件清0。 ③中断允许控制寄存器IE地址A8H EX0/EX1/ET1/ET0/ES位分别是INT0/INT1,T0/T1串行口的中断允许控制位。 0禁止中断 1允许中断。
EA总CPU中断允许控制位总开关 0禁止全部中断 1允许中断。
改变IE的内容可由位操作指令来实现即:SETB bit ; CLR bit。
也可用字节操作指令实现即
MOV IE,#data; MOV IE,A
ORL IE,#data; ANL IE,#data
例1若允许片内2个定时器/计数器中断禁止其它中断源的中断请求,写设置IE的相应程序段不允许外部中断0外部中断1以及串行中断 ④中断优先级控制寄存器IP地址0B8H
80C51有两个中断优先级即高优先级和低优先级每个中断源都可设置为高或 低中断优先级可以实现两级中断嵌套。
80C51内部中断系统对同级中断优先权的规定称为自然优先级(也称为系统缺省优先级)。如下表所示
80C51单片机的中断优先级采用了自然优先级和人工设置高、低优先级的策略中断处于同一级别时就由自然优先级确定。开机时每个中断都处于低优先级通过软件设置寄存器IP来设定各 中断的优先级。 IP寄存器的结构 PX0/PX1:INT0/INT1优先控制位 0属于低优先级 1属于高优先级。
PT0/PT1:T0/T1 中断优先级控制位 0属于低优先级 1属于高优先级
PS串行口中断优先级控制位 0属于低优先级 1属于高优先级
若中断子程序二大于中断子程序一那么就要先执行中断子程序二再执行中断子程序一 中断优先级结构
80C51的中断系统有两个不可寻址的优先级激活触发器
●高优先级激活触发器置1指示某高优先级的中断正在执行所有后来的中断均被阻止。
●低优先级激活触发器置1指示某低优先级的中断正在执行所有同级中断都被阻止但不阻断优先级的中断请求。
●用RETI指令可以清0对应的优先级激活触发器。 例2设置IP寄存器的初始值使2个外中断请求为高优先级其它中断请求为低优先级。 ●中断响应的条件
一个中断请求被响应需满足以下必要条件
1.IE寄存器中的中断总允许位EA1
2.该中断源的中断允许位1即该中断没有被屏蔽
3.该中断源发出中断请求即该中断源对应的中断请求标志为“1”
4.无同级或更高级中断正在被服务 ●中断响应应被封锁
1.CPU正在处理同级的或更高优先级的中断 2.所查询的机器周期不是所当前正在执行指令的最后一个机器周期。只有在当前指令执行完毕后才能进行中断响应 3.正在执行的指令是RETI或是访问IE或IP的指令。需要再去执行完一条指令才能响应新的中断请求。 ●中断响应的主要过程 : 首先由硬件自动生成一条长调用指令
LCALL addr16
接着就由CPU执行该指令该指令将PC的内容压入堆栈以保护断点再将中断入口地址装入PC。 ●中断响应的最短响应时间3个机器周期
1.中断请求标志位查询占1个机器周期 2.硬件子程序调用指令LCALL转到相应的中断服务程序入口需2个机器周期 ●中断响应的最长响应时间8个机器周期
1.发生在CPU进行中断标志查询时刚好是开始执行RETI或是访问IE或IP的指令查询最长需2个机器周期且把当前指令执行完再继续执行一条指令后才能响应中断
2.接着再执行一条指令按最长指令( 乘法指令MUL和除法指令DIV)来算也只有4个机器周期。
3.加上硬件子程序调用指令LCALL的执行需要2个机器周期。
如果正在处理同级或高级中断外部中断响应最长时间取决于正在执行的中断服务程序的处理时间所以响应时间就无法计算了。 4.时钟电路
MCS-51单片机芯片内部有一个高增益反相放大器用于构成时钟振荡电路XTAL1为该放大器的输入端、XTAL2为该放大器的输出端但要形成时钟还需附加其他电路。
1.内部时钟方式
内部方式的时钟电路如图所示利用51内部的高增益反相放大器在和引脚上外接定时元件内部振荡电路便产生自激振荡。定时元件一般采用石英晶体和电容组成的并联谐振回路。晶体可以在 1.2~12MHz之间任选晶振频率越高单片机运行速度就越快。电容可以在5~30pF之间选择电容C和C的大小可起频率微调的作用电容大小要和晶体的容性负载阻抗相匹配。否则不易起振。 2.外部时钟方式
外部时钟方式常用于多机系统以便各个单片机能够同步工作。对外部振荡信号无特殊要求但需保证脉冲宽度不小于20ns且频率应低于单片机所支持的最高频率。 对于8051单片机外部脉冲由引入内部电路接地具体电路如图所示。 对于80C51单片机外部脉冲由引入悬空具体电路如图所示 5.时序
单片机的工作过程就是不断地执行指令的过程。CPU每执行一条指令都要经过取指(取操作码)、取操作数和执行等几个过程。详细地它们又可分为若干个基本的微操作这些微操作必须在统一的时钟脉冲控制下严格按时间节拍一拍一拍地进行而这个脉冲就是由CPU的定时控制器提供的。CPU 执行一条指令的各个微操作所对应时间顺序称为 CPU 时序。为了直观地展现 CPU的时序把执行一条指令时相应信号线上有关信息的变化按时间序列以特定的波形表示出来这就是时序图。
由于指令的字节数不同执行的操作也不同因而执行不同的指令所需要的时间差别较大。为了便于说明人们按指令的执行过程定义了几种时序定时单位即振荡周期(节拍)、时钟周期、机器周期和指令周期。
1.振荡周期
为单片机提供时钟信号的振荡源的周期也称节拍用P表示。如果为内部时钟方式振荡周期即为石英晶体的振荡周期。 2.时钟周期
时钟周期又称为状态周期(用S表示)是由振荡周期经2分频后获得的所以时钟周期是振荡周期的2倍。时钟周期被分为P1拍节和P2拍节。在每个时钟周期的前半周期内P1 信号有效这时通常完成算术逻辑操作;而在后半周期内P2 信号有效完成内部寄存器之间的传送操作。 3.机器周期
MCS-51采用定时控制方式因此它有固定的机器周期。MCS-51单片机的一个机器周期由6个状态(12个振荡脉冲)组成包含 12个拍节依次表示为SIP1、SIP2、……、S6P1、S6P2每个拍节持续一个振荡周期每个状态持续两个振荡周期。 4.指令周期
CPU执行一条指令所需要的时间称为指令周期。一个指令周期一般由若千个机器周期组成。不同的指令所需要的机器周期数不同通常一个指令周期含有 1~4 个机器周期。通常称包含1个机器周期的指令为单周期指令包含两个机器周期的指令为双周期指令。 举例 6.典型指令的取指、执行时序
51单片机的指令系统尽管有 111 指令但从指令字节数和执行周期两个方面总可以将指令分成单字节单周期、单字节双周期、单字节 4 周期、双字节单周期、双字节双周期、双字节3周期和3字节2周期指等类别。以下为几种51单片机的典型指令的取指和执行时序。
1单字节单周期指令
如图a所示为单字节单周期指令的时序以“INC A”指令为例由于是单字节,因此只需进行一次读指操作。当第二个 ALE 有效时由于 CPU 封锁住程序计数器 PC使其不能加 1所以读出的还是原指令本次操作属于无效操作在 S6P2 结束时完成指令的整个操作。
2双字节单周期指令
如图b所示为双字节单周期指令的时序以“ADD A#data”指令为例对应于ALE 信号两次操作都是有效的。第一次 ALE 信号有效期间读的是指令操作码第二次 ALE有效期间读的是指令操作数在S6P2 结束时完成指令的整个操作。
3单字节双周期指令
如图c所示为单字节双周期指令的时序以“INC DPTR”指令为例在两个机器周期内进行4 次读操作码的操作。由于是单字节指令所以后3 次读操作无效在第二机器周期的S6P2结束时完成指令的整个操作。
4访问外部RAM的单字节双周期指令
如图d所示为访问外部RAM 的指令时序。以“MOVX ARi”为例它是一条单字节双周期指令第一机器周期时与其他指令一样在 S1P2 期间取指令操作码S4P2期间的读操作无效。第二机器周期时与一般单字节双周期指令不同该周期进行外部 RAM 访问此时与ALE信号无关因此不产生取指操作。 7.80C51中定时器/计数器
定时器/计数器的结构如下: 定时器/计数器的内部结构如下 /:当n0表示T0相关的计数器当n1表示T1相关的计数器TL表示低位TH表示高位合起来可以组成16位计数器。 TR0/TR1:表示T0/T1的运行控制位与其它条件一起控制定时器启动或停止。
TF0/TF1T0/T1溢出标志位 :当T0/T1计满溢出时由硬件置1向CPU申请中断。 GATE与其他条件一起控制定时器的启动与停止。
C/T方式选择位C/T1为计数方式C/T0为定时方式。
M1/M0:表示4种状态 模式0M0,M10,0
TL0使用的是低5位TH0使用的是高8位TL0/TH0计的是内部机器周期和外部计数脉冲计完后溢出TCON对应的标志位置1并向CPU提出终端申请。
最大计数值2^138192
最大定时时间2^13*T机器周期 计数方式 模式1(M0,M11,0)
16位计数器计数溢出后使响应的TCON置位并向CPU发出中断申请。
最大计数值2^1665536
最大定时时间2^16*T机器周期 计数方式 方式2M0,M10,1
当TL0中断计数满时一是向CPU发出中断申请二是向TH0中高八位的值装入到TL0中TL0是8位计数器TH0是用来存放初值的方式2特别适用于脉冲信号发生器。
最大计数值2^8256
最大定时时间2^8*T机器周期 计数方式 方式3M0,M111
仅有T0有此模式对于T1的方式3则停止工作。TL0为是8位计数器可以计内部机器周期也可以是外部计数脉冲TL0计数溢出时TF置1并向CPU提出中断申请TH0只作为定时器。 上面C/T0为定时模式现在来介绍计数模式C/T1
(1)对外部脉冲信号计数是通过引脚T0(P3.4)和T1(P3.5)实现的
(2)CPU在每个机器周期对引脚T0(P3.4)和T1(P3.5)的输入电平进行来样的。若前一个机器周期采样值为高下一个机器周期采样值为低则计数器加1。
(3)由于检测一个由1至0的跳变需要两个机器周期而一个机器周期是外部晶振的12分频所以最高计数频率为振荡频率的二十四分之一
(4)虽然对输入信号的占空比无特殊要求但为了确保某个电平在变化之前至少被采样一次要求电平保持时间至少是一个完整的机器周期。
门控作用 当GATE0时
仅由TR0控制与门的开启 与门输出1时控制开关接通计数开始。
当GATE1时
情况如图所示当TR01时与门的输出状态取决于INT0若INT01与门置1才会进入计数阶段。 这种方式用来测量INT0引脚上正脉冲的宽度。 ET0 1;启动TF0中断功能
ET0 0;停用TFO中断功能
ET1 1;启动TF1中断功能
ET1 0:停用TF1中断功能 PT0 1;TF0为高优先级 PT1 1;TF1为高优先级 二.单片机的复位
复位是单片机的初始化操作使CPU和各个部件处在一个确定的初始状态并从这个状态由用户程序开始引导工作。
复位方式
冷启动当系统初始加电的时候--上电复位
热启动当程序运行死机的时候--按钮复位
单片机复位的条件
51单片机有一个复位引脚RST引脚内有一个拉低电路。当振荡器起振后只要该引脚上出现2个机器周期24个振荡周期以上的高电平时即可确保使器件复位。复位完成后如果RST端继续保持高电平51单片机一直处于复位状态只有RST恢复低电平后单片机才能进入其他工作状态。
单片机复位后不会影响内部RAM中的数据仅将PC指向0000HSP指向07H保证单片机复位信号撤除后CPU 能从起始地址 000H 开始执行程序。当单片机由于外界干扰等原因造成程序跑飞或进入死循环称为死机)时可用复位信号重新启动程序。
复位操作还对单片机的个别引脚有影响使 P0~P3置位输入方式,使ALE1使1。
复位操作后部分专用寄存器 (SFR)及引脚的初始化状态如下表 复位电路
80C51基本复位电路有两种:
1上电自动复位电路
对于HMOS(High-speed Metal Oxide Semiconductor高速金属氧化物半导体)型单片机只要在 RST复位端接一个电容至 Vcc和一个电阻至Vss(地)就能实现上电自动复位(对于CHMOS器件中只要接一个电容至 Vcc)如图所示。在加电瞬间电容通过电阻充电就在 RST端出现一定宽度的高电平只要高电平时间足够长就可以使 MCS-S有效复位。RST端在加电时应保持的高电平时间包括 Vcc的上升时间和振荡器起振的时间。
Vcc上升时间约为10ms振荡器起振时间和频率有关。10MHz时约为1ms1MHz时约10ms所以一般为了可靠地复位RST 在上电时应保持20ms 以上的高电平。图中RC时间常数越大上电时 RST端保持高电平的时间越长。当振荡频率为 12MHz 时典型值为C10uFR8.2 若复位电路失效加电后CPU从一个随机的状态开始工作系统就不能正常运转。
2按键手动复位
按键手动复位有电平方式和脉冲方式两种。
按键电平复位是通过使复位端经电阻与Vcc接通而实现的其电路如图b所示。
按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的其电路如图c所示。 3系统复位
在单片机的应用系统中除单片机本身需复位以外外部扩展的IO接口电路等也需要复位因此需要一个系统的同步复位信号。即单片机复位后CPU开始工作时外部的电路一定要准备好以保证CPU有效地对外部电路进行初始化编程。如上所述MCS-51的复位端RST是一个施密特触发器高电平有效而I/O接口电路的复位端一般为TTL电平输入通常也是高电平有效但这两种复位输入端复位有效的电平不完全相同。若将单片机的复位端和I/O接口电路复位端简单相连将使CPU和I/O接口的复位不同步CPU对I/O初始化编程无效使系统不能正常工作。解决的办法就是通过延时一段时间以后再对外部电路进行初始化编程。有效的系统复位电路(上电自动复位和按键手动复位)如图所示。 图中a为将复位电路产生的复位信号经施密特电路(74LS14)整形后作为系统复位信号加到单片机和外部I/O接口电路的复位端;图中b为将单片机的复位信号和I/O接口的复位信号分别由各自的复位电路产生分别调节RC参数使CPU 和外部电路同步复位。 三.程序的执行方式
程序执行方式是单片机的基本工作方式。所执行的程序可以在内部ROM、外部ROM或者同时放在内外 ROM中。若程序放在外部 ROM 中(如对8031)则应使EA0否则可令EA1。由于复位之后PC0000H所以程序的执行总是从地址0000H开始的。但真正的程序一般不一定从0000H 开始存放此时需要在0000H 单元存放一条指令使程序跳转到真正的程序入口处。
1.单步执行方式
在单片机应用系统的开发调试阶段有时需要观察每条指令执行后的结果此时就需要用到单步执行方式。 单步执行方式是使程序的执行处于外加脉冲(通常用一个按健产生的控制下一条指令一条指令地执行即按一次键执行一条指令。 单步执行方式可以利用MCS-51 的外部中断来实现。MCS-51中断系统规定:从中断服务程序返回以后至少要执行一条指令后才能重新响应新的中断请求。据此如果将外加脉冲从INT0引脚输入平时保证INT0为低电平并通过初始化设定外部中断0为高优先级和低电平触发方式就能保证单片机平时处于中断响应状态。在中断服务子程序中配合使用下面的指令就能实现按压一次按键只执行一条指令的单步操作。 2.低功耗操作方式
CHMOS型的80C51单片机有两种低功耗操作方式待机操作方式和掉电操作方式。在待机方式时CPU 停止工作而 RAM、定时器、串行口和中断系统继续工作。在掉电方式时仅给片内 RAM供电片内所有其他的电路均不工作。HMOS的 8051单片机只有一种低功耗方式:掉电操作方式。
(1) HMOS型单片机的掉电操作方式 正常操作时,80S1的内部RAM由Vcc供电当RST/端的电压超过Vcc时内部RAM将改由 RST/端的电源供电。若 RST/ 端接有备用电源则当Vcc掉电时此备用电源就可保护内部RAM的数据不丢失。 在用户系统中可以利用这一特点。一旦发现主电源故障(掉电)或人为地迫使电源掉电就通过向CPU发出中断请求。在主电源掉到低于下限工作电压之前中断服务程序把一些必须保存的信息转存到RAM中并把备用电源接至RST/引脚主电源恢复正常后引脚仍要维持一段时间在完成复位操作后电源才能撤掉。
(2) CHMOS型单片机的低功耗方式 80C51单片机用软件来选择低功耗由电源控制寄存器PCON 中的有关位控制PCON寄存器格式如下: •IDL:待机方式位。 当IDL1时激活待机工作方式
•PD:掉电方式位。 当PD1时激活掉电工作方式。
•GF1、GFO:通用标志位。
•SMOD:串行波特率倍增位。
(1)待机方式
执行一条置位IDL的指令后80C51就进入待机方式。这时提供给CPU的时钟信号被切断但时钟信号仍提供给 RAM、定时器、中断逻辑和串行口。同时CPU的工作状态在待机期间被保起来也就是堆指针 SP、程序计数器 PC、程序状态字 PSW、累加器ACC及通用寄存器的内容。在待机方式下Vcc仍为5V但消耗电流由正常工作方式的24mA降为3.7mA。 PCON中的标志位GF0和GF1可以用作软件标志若置IDL1的同时也置GF0/GF11则待机方式中激活的中断服务程序查询到此标志便可以确定服务的性质。 可以有两条途径退出待机方式恢复到正常方式 •一种途径是有任一种中断被激活此时 IDL位将被硬件清除随之待机状态被结束。系统退出待机方式进入正常工作方式。 •退出待机方式的另一种方法是靠硬件复位复位后PCON中各位均被清“0”
(2)掉电方式 CHMOS型单片机的掉电方式与 HMOS型不同备用电源由 Vcc输入而不像HMOS那样由RST/输入。 执行一条置位PD的指令后80C51就进入掉电工作方式。掉电后片内振荡器停止工作时钟冻结一切工作都停止只有片内 RAM 的内容被保持SFR 内容也被破坏。掉电方式下Vcc可以降到2V耗电仅50uA。 退出掉电方式恢复正常工作方式的惟一途径是硬件复位。应在 Vcc恢复到正常值后再进行复位复位时间需10ms以保证振荡器再启动并达到稳定实际上复位本身只需25个振荡周期(2~4us)。但在进入掉电方式前Vcc不能掉下来因此要有掉电检测电路。 3.EPROM编程和校验方式
对于内部集成有EPROM的8751单片机可以进入编程或校验方式
(1)内部EPROM编程
编程时时钟频率应在4~6MHz的范围内有关引脚的接法和用法如下:
P2.0~P2.3为EPROM单元高位地址输入P1口为低8位地址P0口为编程数据输入P2.4~P26以及应保持为低电平; P2.7和RST应为高电平RST的高电平可为2.5V其余的都以TTL的高低电平为准;/VPP端另加12.5V的编程脉冲此电压要求稳定不能大于12.5V否则会破坏EPROM;在/VPP出现正脉冲期间ALE/端上加50ms的负脉冲完成一次写。
8751的EPROM编程一般要用专门的单片机编程器(如ALL-11等)来完成入。
(2)EPROM程序校验
在程序的加密位尚未设置的状态下无论在写入的当时或写入之后均可将片内程序存储器的内容读出进行校验。在读出时除P2.7脚保持为TTL低电平之外其它引脚与EPROM的连接方式相同。要读出的程序存储器单元地址由 P1口和2口的P2.0~2.3 送入P2口的其它引脚及保持低电平ALE、和RST接高电平校验的单元内容由P0口送出在校验操作时需在 P0 的各位外部加上拉电阻 10。
(3)程序存储器的加密位
8751内部有一个加密位。一旦此加密位被编程后就可禁止用任何外部手段对片内程序存储器进行读写。将加密位写入以建立保险的过程与正常写入的过程相似但加密编程时P2.6脚要保持TTL 高电平。而P0口、P1口和P2的P2.0~P2.3的状态随意。加上编程脉冲后就可使加密位写入。EPROM 加密后内部程序存储器便不能再被写入和读出校验而且也不能执行外部程序存储器的程序。只有EPROM全部擦除时加密位才能被一起擦除以便再次写入。