80C51单片机的复位标志位的实现
80c51

ACC B
指令寄存器IR 指令译码器ID DPH
缓冲器 DPL ROM 4K字节
暂存器1
暂存器2
PC增量器 PSW ALU 振荡器 定时与控制 程序计数器PC 地址寄存器AR
XTAL2 VSS XTAL1 EA RST ALE PSEN
11
2.4.1 80C51的内部结构 一、80C51的微处理器(CPU) (1)运算器 累加器ACC ; 寄存器B ; 程序状态字寄存器PSW 。 (2)控制器 程序计数器PC ; 指令寄存器IR ; 定时与控制逻辑。
(3)在功能上,该系列单片机有基 本型和增强型两大类 基本型: 8051/8751/8031 80C51/87C51/80C31 增强型: 8052/8752/8032 80C52/87C52/80C32
1
(4)在片内程序存储器的配置上, 该系列单片机有三种形式,即掩膜ROM、 EPROM 和 ROMLess( 无 片 内 程 序 存 储 器)。如: ﹡80C51有4K字节的掩膜ROM; ﹡87C51有4K字节的EPROM ; ﹡80C31在芯片内无程序存储器。
23
2.5.1 80C51的程序存储器配置
PSEN 0000H EA=1 内部 0FFFH 1000H 外部 FFFFH FFFFH EA=0 外部
复位入口 INT0中断入口 T0中断入口 INT1中断入口 T1中断入口 串口中断入口
0000H 0003H 000BH 0013H 001BH 0023H ROM
80H
间接寻址 直接寻址 访问 访问 FFH
FFFFH RD WR
25
一、工作寄存器区
低端32个字节分成4个工作寄存器组,每组8个单 元。当前工作寄存器组的机制便于快速现场保护。
80C51单片机引脚功能图解

80C51单片机引脚功能图解80C51属于51单片机系列,改进了8048的缺点并增加了一些新的运算技术。
其性能能够满意产品对于系统数据采集以准时间精度的需求。
本文将为大家介绍80C51单片机的引脚基础功能,感爱好的伴侣快来看一看吧。
MCS-51是标准的40引脚双列直插式集成电路芯片,引脚排列请参见图1。
图1P0.0 ~P0.7:P0口8位双向口线。
P1.0 ~P1.7:P1口8位双向口线。
P2.0 ~P2.7:P2口8位双向口线。
P3.0 ~P3.7:P3口8位双向口线。
ALE:地址锁存掌握信号。
在系统扩展时,ALE用于掌握把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。
此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲使用。
PSEN:外部程序存储器读选通信号。
在读外部ROM时,PSEN有效(低电平),以实现外部ROM单元的读操作。
EA:访问程序存储掌握信号。
当信号为低电平常,对ROM的读操作限定在外部程序存储器;当信号为高电平常,对ROM的读操作是从内部程序存储器开头,并可延至外部程序存储器。
RST:复位信号。
当输入的复位信号连续两个机器周期以上的高电平常即为有效,用以完成单片机的复位初始化操作。
XTAL1和XTAL2:外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
VSS:地线。
VCC:+5 V电源。
以上是MCS-51单片机芯片40条引脚的定义及简洁功能说明,读者可以对比实训电路找到相应引脚,在电路中查看每个引脚的连接使用。
P3口线的其次功能。
P3的8条口线都定义有其次功能。
第2章《单片机原理与C51基础》赵丽清(课后习题及答案)

思考题:【2-1】80C51单片机由哪几部分组成,试说明ROM和RAM的功能分别是什么?【2-2】在程序运行中,PC的值是。
()A)当前正在执行指令的前一条指令的地址B)当前正在执行指令的地址C)当前正在执行指令的下一条指令的首地址D)控制器中指令寄存器的地址【2-3】判断下列说法是否正确。
(1)PC可以存放一个16位二进制数,因此其寻址范围为0000H~7FFFH。
()(2)单片机系统复位时PC的内容为0000H,因此CPU从程序存储器0000H地址单元取指令,开始执行程序。
()(3)PC可以看成是程序计时器()(4)PC可以看成是程序存储器的地址指针。
()【2-4】试计算当振荡频率为12 MHz和6 MHz时,一个机器周期的长度?试辨析振荡周期、状态周期、机器周期、指令周期之间的关系。
【2-5】单片机的ROM必须具有掉电存储功能,这句话是否正确?【2-6】单片机对RAM的根本要求是快,但掉电可丢失数据,这个表述正确吗?【2-7】试说出80C51的两种时钟电路模式,如果是只有一个单片机工作常使用的是哪一种?如果是两个以上的单片机工作使用哪一种?【2-8】80C51单片机的EA信号有何功能?在使用8031时,EA信号引脚应如何处理?现在使用的80C51系列单片机内部一般均含有ROM,其EA引脚应该怎么接?【2-9】80C51系列单片机的三总线结构包括哪三种?其中作地址总线指的是?作数据总线指的是?属于控制总线的有?P0口的分时复用功能需要依靠锁存器的锁存功能,试举1种常用的低功耗锁存器并将其与单片机正确连接?【2-10】片内RAM低128单元一般划分为哪三个主要部分?对应的字节地址空间是?内部RAM中,可作为工作寄存器区的单元地址为()H~()H。
【2-11】80C51单片机任何一个时间4组通用工作寄存器中只能有一组工作,具体哪一组工作由什么来决定?如何设置才能选用0组通用寄存器?【2-12】80C51单片机具有很强的位(布尔)处理功能,内部RAM中共有多少单元可以位寻址,试写出其字节范围和位地址范围?【2-13】位地址00H与字节地址00H在内存中的位置有什么区别?片内字节地址为2AH单元最低位的位地址是();片内字节地址为88H单元的最低位的位地址为()。
单片机复习题

一、填空题1.80C51单片机为位单片机2.80C51内部数据存储器的地址范围是,位地址空间的字节地址范围是,对应的位地址范围是,外部数据存储器的最大可扩展容量是。
3.80C51单片机指令系统的寻址方式有、_______、_ ___、_ __ __、。
4.如果(A)=34H,(R7)=0ABH,执行XCH A, R7;结果(A)= ,(R7)= 。
5.当单片机复位时PSW=H,这时当前的工作寄存器区是区,R4所对应的存储单元地址为H。
6.若A中的内容为67H,那么,P标志位为。
7.串行口方式3发送的第9位数据要事先写入寄存器的位。
8.串行口的方式0的波特率为。
9.在内部RAM中可位寻址区中,位地址为40H的位,该位所在字节的字节地址为。
10.如果(A)=58H,(R1)= 49H,(49H)= 79H,执行指令XCH A, @R1后;结果(A)= ,(49H)= 。
11.当单片机复位时PSW=H,SP= ,P0~P3口均为电平。
12.当80C51执行MOVC A,@A+PC指令时,伴随着控制信号有效。
13.80C51内部提供个可编程的位定时/计数器,定时器有种工作方式。
14.80C51的口为双功能口;15.由80C51组成的单片机系统在工作时,引脚应该接;16.ROM芯片2764的容量是,若其首地址为0000H,则其末地址。
17.80C51的中断源有,,,,,有个中断优先级。
18.80C51唯一的一条16位数据传送指令为。
19.LJMP的跳转范围是,AJMP的跳转范围是,SJMP的跳转范围是。
20.若A中的内容为68H,那么P标志位为。
21.如果(A)=45H,(R1)=20H,(20H)=12H,执行XCHD A, @ R1;结果(A)=。
,(20H)=。
22.80C51的异步通信口为(单工/半双工/全双工),若传送速率为每秒120帧,每帧10位,则波特率为。
23.当MCS-51执行MOVX A,@R1指令时,伴随着控制信号有效。
80C51单片机上电复位和复位延时的时序分析

80C51单片机上电复位和复位延时的时序分析1.上电复位时序分析:当单片机通电时,其内部电路经过一系列的过程,最终实现上电复位。
具体的时序如下:a.当电源供电稳定后,单片机内部开始运行,在此之前,通过电源上的电感元件(电源滤波电感)将电源的浪涌电流限制在一定范围内,避免对器件造成损害。
b.在电源稳定后,单片机内部的复位电路开始工作,将复位引脚(RST)拉低。
复位引脚通常由一个上拉电阻连接到电源电压,当复位引脚被拉低时,单片机内部复位逻辑电路开始工作。
c.单片机内部的复位逻辑电路通过一系列的电路操作,包括对寄存器、内存等的清零操作,实现对整个系统的复位。
同时,系统时钟和各个外设模块(如定时器、串口等)被禁止,确保整个系统进入复位状态。
d.完成复位操作后,复位引脚会逐渐恢复高电平,此时单片机开始退出复位状态,系统可以开始正常运行。
2.复位延时时序分析:在单片机复位后,必须等待一段时间,直到内部电路完全稳定,才能恢复正常运行。
此时间段被称为复位延时。
具体的时序如下:a.当复位引脚恢复高电平时,复位逻辑电路停止工作,但系统内部的各个模块以及外设模块的电路需要一定时间来稳定,此时单片机处于复位延时状态。
b.在复位延时期间,系统时钟和各个外设模块仍然被禁止,保证系统内部不会发生意外的操作。
c.复位延时的具体时间取决于单片机的工作频率,通常在给定的单片机规格书中可以找到相关的参数或公式。
复位延时可以使用一个定时器或延时循环实现,保证系统稳定后再进行正常的操作。
总结:80C51单片机的上电复位和复位延时时序分析是单片机运行的基础,关系到系统的稳定性和可靠性。
通过了解上电复位和复位延时的时序分析,可以更好地理解单片机的工作原理,并合理地设计系统硬件电路和软件逻辑,保证系统的正常运行。
单片机原理及应用习题答案

思考与练习题11.1单项选择题(1)单片机又称为单片微计算机,最初的英文缩写是( D )A.MCPB.CPUC.DPJD.SCM(2)Intel公司的MCS-51系列单片机是( C )的单片机。
A.1位B.4位C.8位D.16位(3)单片机的特点里没有包括在内的是( C )A.集成度高B.功耗低C.密封性强D.性价比高(4)单片机的发展趋势中没有包括的是( B )A.高性能B.高价格C.低功耗D.高性价比(5)十进制数56的二进制数是( A )A.00111000BB.01011100BC.11000111BD.01010000B(6)十六进制数93的二进制数是( A )A.10010011BB.00100011BC.11000011BD.01110011B(7)二进制数11000011的十六进制数是( B )A. B3HB.C3HC.D3HD.E3H(8)二进制数11001011的十进制无符号数是( B )A. 213B.203C.223D.233(9)二进制数11001011的十进制有符号数是( B )A. 73B.-75C.-93D.75(10)十进制数29的8421BCD压缩码是( A )A.00101001BB.10101001BC.11100001BD.10011100B(11)十进制数-36在8位微机中的反码和补码是( D )A.00100100B、11011100BB.00100100B、11011011BC.10100100B、11011011BD.11011011B、11011100B(12)十进制数+27在8位微机中的反码和补码分别是( C )A.00011011B、11100100BB.11100100B、11100101BC.00011011B、00011011BD.00011011B、11100101B(13)字符9的ASCII码是( D )A.0011001BB.0101001BC.1001001BD.0111001B(14)ASCII码1111111B的对应字符是( C )A. SPACEB.PC.DELD.{(15)或逻辑的表达式是( B )A.A⋅B=FB. A+B=FC. A⊕B=FD.(A⋅B)=F(16)异或逻辑的表达式是( C )A.A⋅B=FB. A+B=FC. A⊕B=FD.(A⋅B)=F(17)二进制数10101010B与00000000B的“与”、“或”和“异或”结果是( B )A.10101010B、10101010B、00000000BB.00000000B、10101010B、10101010BC.00000000B、10101010B、00000000BD.10101010B、00000000B、10101010B (18)二进制数11101110B与01110111B的“与”、“或”和“异或”结果是( D )A.01100110B、10011001B、11111111BB.11111111B、10011001B、01100110BC.01100110B、01110111B、10011001BD.01100110B、11111111B、10011001B(19)下列集成门电路中具有与门功能的是( D )A.74LS32B.74LS06C.74LS10D.74LS08(20)列集成门电路中具有非门功能的是( B )A.74LS32B.74LS06C.74LS10D.74LS08(21)Proteus软件由以下两个设计平台组成( C )A.ISIS和PPTB.ARES和CADC.ISIS和ARESD.ISIS和CAD(22)ISIS模块的主要功能是( A )A.电路原理图设计与仿真 B. 高级布线和编辑C. 图像处理D.C51源程序调试(23)ARES模块的主要功能是( B )A.电路原理图设计与仿真 B. 高级布线和编辑C. 图像处理&D.C51源程序调试(24)家用电器如冰箱、空调、洗衣机中使用的单片机主要是利用了它的( D )A.高速运算 B. 海量存储 C.远程通信 D. 测量控制1.2问答思考题(1)什么是单片机?单片机与通用微机相比有何特点?单片机是在一块半导体硅片上集成了计算机基本功能部件的微型计算机。
第二章80C51的结构和原理习题及答案

第⼆章80C51的结构和原理习题及答案第⼆章80C51的结构和原理习题及答案1、80C514单⽚机在功能上、⼯艺上、程序存储器的配置上有哪些种类?答:80C51单⽚机在功能上有两种⼤类:(1)、基本型;(2)、增强型;80C51单⽚机在⽣产⼯艺上有两种:(1)、HMOS⼯艺(即⾼密度短沟道MOS ⼯艺);(2)、CHMOS⼯艺(即互补⾦属氧化物的HMOS⼯艺);80C51单⽚机在程序存储器的配置上有三种形式:(1)、掩膜ROM;(2)、EPROM;(3)、ROMLess(⽆⽚内程序存储器)。
2、80C51单⽚机存储器的组织采⽤何种结构?存储器地址空间如何划分?各地址空间的地址范围和容量如何?在使⽤上有何特点?答:80C51单⽚机存储器的组织采⽤哈佛结构:存储器在物理上设计成程序存储器和数据存储器两个独⽴的空间。
基本型单⽚机⽚内程序存储器容量为4KB,地址范围是0000H~0FFFH。
增强型单⽚机⽚内程序存储器容量为8KB,地址范围是0000H~0FFFH。
基本型单⽚机⽚内数据存储器均为128字节,地址范围是00H~7FH,⽤于存放运算的中间结果、暂存数据和数据缓冲。
这128字节的低32个单元⽤作⼯作寄存器,在20H~2FH共16个单元是位寻址区,然后是80个单元的他通⽤数据缓冲区。
增强型单⽚机⽚内数据存储器为256字节,地址范围是00H~FFH。
低128字节的配置情况与基本型单⽚机相同,⾼128字节为⼀般RAM,仅能采⽤寄存器间接寻址⽅式访问(⽽与该地址范围重叠的SFR空间采⽤直接寻址⽅式访问)。
3、80C51单⽚机的P0~P3⼝在结构上有何不同?在使⽤上有何特点?答:80C51单⽚机各⼝均由接⼝锁存器、输出驱动器和输⼊缓冲器组成,但是结构存在差异:P0、P1⼝有转换开关MUX,P2、P3⼝没有;P1~P3⼝都有上来电阻,但是P0没有。
4个I/O⼝的使⽤特点:(1)、P0:P0⼝是⼀个多功能的8位⼝,可按字节访问也可以按位访问。
80C51的结构和原理-简答题

1、PC机和单片机都是微型机,两者有什么区别?答:PC机和单片机都是微型机,是微型计算机技术发展的两大分支。
PC机以满足海量高速数值计算为主,兼顾控制功能。
单片机以满足测控对象的测控功能,嵌入式应用为主,兼顾数据处理能力。
2、MCS-51单片机的I/O口有什么特点?解:8051单片机的4个I/O口在结构上是基本相同的,但又各具特点。
这四个端口都是8位双向口,每个端口都包括一个锁存器、一个输出驱动器和输入缓冲器。
在无片外扩展存储器的系统中,这四个端口的每一位都可以作为双向通用I/O端口使用。
在作为一般的通用I/O输入时,都必须先向锁存器写入“1”,使输出驱动场效应管FET截止,以免误读数据。
各自特点如下:(1)P0口为双向8位三态I/O口,它既可作为通用I/O口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口。
作为通用I/O口时,输出数据可以得到锁存,不需外接专用锁存器;输入数据可以得到缓冲,增加了数据输入的可靠性。
每个引脚可驱动8个TTL负载。
(2)P1口为8位准双向I/O口,内部具有上拉电阻,一般作通用I/O口使用,它的每一位都可以分别定义为输入线或输出线,作为输入时,锁存器必须置1。
每个引脚可驱动4个TTL负载。
(3)P2口为8位准双向I/O口,内部具有上拉电阻,可直接连接外部I/O设备。
它与地址总线高8位复用,可驱动4个TTL负载。
一般作为外部扩展时的高8位地址总线使用。
(4)P3口为8位准双向I/O口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4个TTL负载。
作为通用I/O口时,功能与P1口相同,常用第二功能。
作为第二功能使用时,各位的作用见教材P.13表1.2.5所示。
3、MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?解:80C51单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
80C51单片机的复位标志位的实现设置复位标志位便于区分不同原因引发的复位,作为一种新技术被越来越多的新型单片机所采纳。
例如Philips公司的P87LPC700和 P89LPC900系列、Freescale公司(原Motorola半导体部)的MC68HC05系列和MC68HC08系列、Sunplus公司的 SPMC65系列、Microchip公司的PIC系列等,内部都设计了专门用于记录各种复位标志的状态寄存器。
MC68HC08系列有一个复位状态寄存器,负责记录6种复位标志位:上电复位、引脚复位、看门狗复位、非法指令复位、非法地址复位和欠压复位。
SPMC65系列有一个系统控制寄存器,负责记录5种复位标志位:上电复位、外部复位、看门狗复位、非法地址复位和欠压复位。
51兼容的P89LPC900系列有一个复位源寄存器,负责记录6种复位标志位:欠压复位、上电复位、外部复位、看门狗复位、软件复位和UART收到间隔字符复位(主要作为进入ISP监控程序的途径之一)。
就连初学者很常用的 AT89S51/52和P89C52X2,也在其电源控制寄存器PCON中增设了一个上电标志位POF。
1 复位标志位的设置方法传统的80C51单片机没有设计复位标志位的记录功能,这应该说是一种遗憾,那么能否通过一定的技术手段来弥补这个缺憾呢?这里给广大80C51单片机用户提供一种启示和引导。
实现复位标志位的记录肯定需要一定的硬件电路支持,而这种电路的设计不存在固定模式。
应用了一个4输入端“与非”门G1和一个按钮开关SW1,还占用了80C51的5条I/O引脚P1.0~P1.4以及一个外部中断源 INT0,并且预先通过初始化软件设置INT0为唯一的高级中断源,下降沿触发方式有效,开放总中断使能位EA。
平时G1因各输入端都维持在高电平上,因而其输出端也保持高电平。
电路中利用了一个海量电容器C1作为储存能量的器件,扮演着备用电池的角色。
由于二极管D1的存在,在主电源断电期间,C1仅为单片机供电,应该让这时的80C51进入耗能最低的停机状态(PD模式)。
在图1电路的基础上配合必要的用户软件,就可以在7种不同复位源引起复位之后保存6个标志位来记录7种复位标志,以下分别进行讲解。
可以事先在RAM的位寻址区间分配一个字节,例如20H 单元,用于记录6个复位标志位。
假设该寄存器定名为SRFR(System Reset Flag Register),字节地址为20H,8位当中仅利用了6位,bit5~bit0分别记录人工复位、欠压复位、看门狗复位、非法地址复位、软硬件复位和软件复位。
① MRST:人工复位。
当复位按钮SW1被按下时引发INT0中断;在中断服务程序中检测输入引脚P1.4的状态。
如果P1.4=0,则置位MRST,记录下曾经发生了一次人工复位操作。
然后进行一次主动的复位操作,方法是从输出脚P1.0输出一个低电平给MAX813L的输入引脚MR,经 MAX813L延时后从输出端RESET送出高电平复位信号给80C51,令其进行一次硬件复位操作。
② LVR:欠压复位。
当上游电源电压开始跌落并且下降到MAX813L的PFI检测门限以下,输出端PFO送出低电平,引发INT0中断;在中断服务程序中检测输入引脚P1.3的状态。
如果P1.3=0,则置位LVR,记录下曾经发生了一次欠压复位操作;然后进行一次主动的复位操作(方法同上),或者令单片机进入停机状态,以便节省能耗和保持数据,以及等待主电源的恢复。
③ WDR:看门狗复位。
当发生看门狗溢出时,MAX813L的输出端WDO送出低电平,引发INT0中断;在中断服务程序中检测输入引脚P1.2的状态。
如果 P1.2=0,则置位WDR,记录下曾经发生了一次看门狗复位操作;然后进行一次主动的复位操作(方法同上)。
喂狗操作利用了一个I/O引脚P1.1。
④ IAR:非法地址复位。
当发生非法地址时,80C51的输出端PSEN送出低电平瞬时脉冲,也会引发一次INT0中断;在中断服务程序中检测输入引脚 P1.4~P1.2的状态。
如果P1.4~P1.2=111,则置位IAR,表示发生了一次非法地址复位操作;然后进行一次主动的复位操作(方法同上)。
⑤ SHR:软硬件复位。
当发生了软件陷阱的捕捉事件,或者软件看门狗的溢出事件时,可以直接置位SHR,代表发生了一次软硬件复位操作;然后进行一次主动的复位操作(方法同上)。
如果利用T0作软件WDT,则应该同时设置INT0和T0中断源为高级中断。
⑥ SWR:软件复位。
当发生了软件陷阱的捕捉事件,或者软件看门狗的溢出事件时,也可以直接置位SWR,代表发生了一次软件复位操作;然后调用软件复位程序SWRST即可。
软件复位程序的编写方法如下:SWRST:;定义软件复位程序的实际入口地址CLREA;首先关闭中断源总使能位SETBF0;设置一个软件复位标志位MOVP0,#0FFH;设定通用端口P0为高阻输入状态MOVP1,#0FFH;设定通用端口P1为高阻输入状态MOVP2,#0FFH;设定通用端口P2为高阻输入状态MOVP3,#0FFH;设定通用端口P3为高阻输入状态MOVPSW,#00H;设定程序状态字寄存器为原始值;(根据需要还可初始化其他SFR)MOVDPTR,#SWR0;为RETI准备弹出地址,而又不改变;执行顺序PUSHDPL;压栈低字节,在先PUSHDPH;压栈高字节,在后RETI;中断返回指令,清除高级中断激活触;发器SWR0:CLRA;准备复位地址PUSHACC;压栈低字节00HPUSHACC;压栈高字节00HRETI;清除低级中断激活触发器,并跳到;0000H⑦ POR:电源上电复位。
虽然在用户定义的系统复位标志寄存器(SRFR)中,没有直接设置一个POR标志位,但是如果检测以上6个标志位同时为0,则表明此前进行的是一次上电复位。
理由是,经过实验验证(实验所用的单片机型号为SST89C58),在每次初次加电时,包含RAM的20H单元在内的80C51内部 RAM区间(00H~7FH),其内容全部自动清零;在每次RST引脚复位(或者软件复位)时,其内容维持不变。
而各个SFR无论是上电复位还是RST引脚复位时,均被还原为原始值(又称复位值)。
对于那些仅增设了一个复位标志位(技术手册中记作POF)的较新型单片机(如AT89S51/52、AT89S8252、AT89C53、 AT89C55WD、AT89C51RC和P89C51X2/52X2/54X2/58X2等型号),也恰好不再需要这里所设置的POR标志位了。
对于没有配备备用电源的单片机应用系统,还可以考虑利用E2PROM在断电之前的瞬间来转存复位标志位,以便在断电之后也不会彻底消失。
该情况下既可选用外挂E2PROM数据存储器(如8脚串行的24C01、93C46或25C040等)的电路方案,也可选用内部本身带有E2PROM数据存储器的单片机型号,如AT89S8252等。
这样在断电之前的瞬间,利用电源滤波电容C2上的少量残留能量,即可完成对于E2PROM的烧写操作。
2 复位标志位的应用方法一般的初始化程序段落的编写方法很简单,不过它仅适用于那些要求不高、功能也很简单的单片机项目。
这类项目(如一些小家电之类的单片机应用)几乎不存在很强的“过程性”或“不间断性”,对于随时可能发生的复位操作以及重新从头运行的用户程序,不会带来太大的影响或破坏性后果。
而对于“过程性”或“不间断性”要求很强的单片机项目,一旦发生偶然性复位操作,并且重新从头运行用户程序,那么将会带来极大的负面影响或破坏性后果。
例如,单片机控制的面包机,在一次加工面包的过程中,会经历搅拌、加热等工序;假若其间发生意外复位并且重新从头执行程序,则会导致成为废品或者烧焦。
电脑控制的手术机器人,在一次手术过程中如果发生意外复位并且返工,将会带来难以想象的严重后果。
电脑控制的导弹,在对准目标发射之后的飞行过程中,如果发生意外复位并且重新从头执行程序,那么将会产生难以预料的结果。
综上所述,单片机在工作过程中,受到意外干扰而进行复位操作,如果说是不可避免的,那么复位之后从何处或在何种背景下开始运行程序,则是可以人为安排的。
因此,复位标志位的应用方法实质上就是复位处理程序的编写方法。
类似于编写UART串口通信中断服务程序的思路,在进入中断程序之后首先要检测中断标志位,看是一次接收中断(RI=1)还是一次发送中断(SI=1),然后再进入不同程序分支进行针对性服务。
从图2中可以看出,在从复位矢量0000H开始执行用户程序时,首先应该检测复位标志寄存器,判断是电源初始加电还是其他复位源引起的复位或程序计数器PC清零。
①如果是电源初始加电,则进行原始状态的初始化。
这种情况最简单。
②如果属于程序跑飞引起的软件复位、软硬件复位、非法地址复位,或者人工强行复位,则应该依据具体情况尽量恢复数据或修正参数,以便尽最大可能不影响或少影响程序的正常运行(恢复和修正数据的具体算法这里不再深入探讨)。
③如果是欠压复位,则尽量从被打断的程序断点处重新开始执行程序。
具体的实现方法和步骤可以是:复位之前——单片机响应PFO中断请求而进入其服务程序后,保存堆栈指针SP当前值到指定RAM单元,把单片机推入停机状态;复位之后——待电源恢复后,MAX813L得电而从RESET端送出高电平信号,唤醒停机状态下的单片机。
若唤醒后的单片机再检测到是欠压复位,则首先复原先前的SP 值,再利用一条 RET(或RETI)指令弹出停机之前的程序断点到PC,从而可以继续执行前面的任务。