A. 单片机如何复位
单片机复位就两种方式,一个是硬件复位,一个是软件复位。
硬件复位就是靠外部的硬件强行把复位管教置为低电平,例如上电的时候,还有按键。
上电之所以要复位是因为在接通电源的一瞬间,给单片机的电压是不稳定的,电压不稳定就会导致程序跑飞,从而出现意想不到的情况。而常用的阻容复位(就是一个电阻和电容串联,电阻接VCC,电容接地,复位管教接中间的那种。),当上电的时候,电源经电阻向电容充电,电容看作短路,所以复位管教为低电平,使得单片机在这段时间内不停的复位。当电源稳定后,电容已经充电完成,相当于开路,复位管教为高电平,单片机正常运行程序。
软件复位就是利用单片机内部的看门狗来防止程序跑飞,看门狗就是个定时器,每个机器周期,它就加一,当它记满时,就会让单片机复位。所以要要定时重装看门狗。正常情况下,不能让他溢出。这叫喂狗。当单片机受到外界的干扰,使得程序跑飞,跑出while(1)大循环的时候,由于无法执行喂狗的动作,单片机就会复位,从而不会出现单片机死机的情况。
B. 单片机的三种复位方式
一、高电平复位
复位电路的工作原理 在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2us就可以实现,那这个过程是如何实现的呢?在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。
(1)、上电复位
电容的的大小是10uf,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。也就是说在电脑启动的0.1S内,电容两端的电压时在0~3.5V增加。这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。
(2) 按键复位
在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。
总结: 1、复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。 2、按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。
二、低电平复位
在使用STM32芯片时,常用的复位方式为按键复位,且为低电平复位。其原理与上述高电平复位相反,分析也挺简单,这里不在赘述,只给出按键复位原理
单片机的复位引脚RST(全称RESET)出现2个机器周期以上的复位电平时,单片机就执行复位操作。如果RST持续为复位电平,单片机就处于循环复位状态。当单片机处于正常电平时就正常转入执行程序。
当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST为低电平,之后随着时间推移电源通过电阻对电容充电,充满电时RST为高电平。正常工作为高电平,低电平复位。即上电低电平,然后转向高电平。当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST为低电平。正常工作为低电平,高电平复位。
C. 80c51单片机的RST引脚有什么作用有哪几种复位方式复位后的状态是什么
1、RST:引导内部复位程序或电路。可以看到SFR的复位值,同时等待时钟电路稳定工作,提高抗干扰能力,提供一种有效的重启方式,目的就是单片机重生。
2、复位方式:要求RST保持高电平一段时间,通常上电RC电路或专用电源监控芯片做到。
3、状态:是运行状态,于是CPU从0000H地址开始干活。
51单片机是高电平复位的,如果RST引脚维持2个机器周期时间长的高电平,那么内部寄存器将会被置为合适的数值,使得系统顺序启动,正常工作时,RST 脚保持低电平。
(3)写出单片机的复位状态扩展阅读:
RST引脚是复位端,高电平有效。在该引脚输入至少连续两个机器周期以上的高电平,单片机复位。RST引脚内部有一个斯密特ST触发器以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。
使用时,一般在此引脚与VSS引脚之间接一一个约8.2k2的下拉电阻,与VCC引脚之间接一个约10UF的电解电容,即可保证上电自动复位。复位也是使单片机退出低功耗工作方式而进入正常状态一种操作。
D. 单片机的复位方式包括
2、上电复位
AT89C51的上电复位电路如图2所示,只要在RST复位输入引脚上接一电容至VCC端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1?F。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着VCC对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。
为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,VCC的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。
在图2的复位电路中,当VCC掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。 单片机与上点复位电路如图1-2所示。
3、积分型上电复位
常用的上电或开关复位电路如图3所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。 积分电路如图1-3所示
4、参数设置
根据实际操作的经验,下面给出这种复位电路的电容、电阻参考值。C=1uF,R1=1k,R2=10k
5、proteus中仿真的现象
很多玩proteus的在仿真中都发现复位电路没法用,出现的问题确实和仿真器本身有关系,按键复位电路用的比较多,但是仿真却出现问题了。我弄来弄去发现一个有趣的问题:在4参数设置中说了参考典型值,但仿真中就有问题了见下面几幅图对比下可以看出问题。完全按照图1-1 按键复位电路仿真。结果如图1-4 按键复位电路仿真1所示。
E. 单片机复位是什么意思有什么作用
单片机复位是单片机上的复位电路的复位操作,作用是使电路恢复到起始状态。
单片机复位电路主要有四种类型:微分型复位电路;积分型复位电路;比较器型复位电路;看门狗型复位电路。
为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V±5%,即4.75~5.25V。
由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才会撤除,微机电路开始正常工作。
(5)写出单片机的复位状态扩展阅读:
复位方式:
1、手动按钮复位
手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
2、上电复位
对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1uF。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。
3、积分型上电复位
常用的上电或开关复位电路如图3所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
F. 使AT89C51单片机复位有几种方法复位后的状态如何
通常就是一种方法,在复位管脚(RST)加高电平信号。复位后程序计数器回零。
1、一般数据手册上对寄存器的描述都会有给出默认值或直接描述上电或复位后的值,默认值就是复位后的寄存器的值。
2、是从STC89C51RC单片机的Data Sheet中截图的,Value after Power-on or Reset就是单片机上电或复位后的状态,x表示不确定,可能是1,可能是0。
(6)写出单片机的复位状态扩展阅读:
AT89C51 提供以下标准功能:4k字节Flash闪速存储器,256字节片内数据存储器(00H -7FH为片内RAM,80H-FFH为特殊功能寄存器SFR),32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
G. 单片机复位电路(高低电平复位分别)
当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST为低电平,之后随着时间推移电源通过电阻对电容充电,充满电时RST为高电平。正常工作为高电平,低电平复位。
当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST为低电平。正常工作为低电平,高电平复位。
单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。当单片机处于低电平时就扫描程序存储器执行程序。
(7)写出单片机的复位状态扩展阅读
基本结构
1、运算器
运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。
2、ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。例如,两个数6和7相加,在相加之前,操作数6放在累加器中,7放在数据寄存器中,当执行加法指令时,ALU即把两个数相加并把结果13存入累加器,取代累加器原来的内容6。
3、运算器有两个功能:
(1)执行各种算术运算。
(2)执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
(3)运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。
4、控制器
控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。其主要功能有:
(1) 从内存中取出一条指令,并指出下一条指令在内存中的位置。
(2) 对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。
(3) 指挥并控制CPU、内存和输入输出设备之间数据流动的方向。
5、主要寄存器
(1)累加器A
累加器A是微处理器中使用最频繁的寄存器。在算术和逻辑运算时它有双功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。
(2)数据寄存器DR
数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。
(3)程序计数器PC
PC用于确定下一条指令的地址,以保证程序能够连续地执行下去,因此通常又被称为指令地址计数器。在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首地址)送入PC,使它总是指向下一条要执行指令的地址。
(4)地址寄存器AR
地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。由于内存与CPU之间存在着速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为止。
硬件特性
芯片
1、主流单片机包括CPU、4KB容量的RAM、128 KB容量的ROM、 2个16位定时/计数器、4个8位并行口、全双工串口行口、ADC/DAC、SPI、I2C、ISP、IAP。
2、系统结构简单,使用方便,实现模块化。
3、单片机可靠性高,可工作到10^6 ~10^7小时无故障。
4、处理功能强,速度快。
5、低电压,低功耗,便于生产便携式产品。
6、控制功能强。
7、环境适应能力强。
H. 单片机复位引脚状态
从AT89S52芯片官方资料提供说明四种端口的复位值全为高电平,如果芯片无问题就要看外围电路的逻辑情况,是否干扰了,你不会只有一块单片机吧,试试其他的用替换法,P2口是数据和地址复用,内部有输出缓冲器驱动4个TTL,你要看是否被锁存器锁住了,一旦锁住不管你怎么变它的电平都是那样,检查你的电路,单片机的第30引脚(E/PROG)的情况,该引脚为高电平时锁存低8位地址的输出脉冲,反正你要注意P0和P2口都是数据地址复用
I. 单片机复位是什么概念
1 单片机的工作状态及其状态迁移 单片机的各种活动,可以描述成多个不同的工作状态或工作模式。
①把单片机经历的所有生存状态归纳和描绘成5个状态——1个非工作状态(即无电状态)和4个工作状态。
②只有复位状态是一个暂态,其他均为稳态;并且每次单片机进入正常运行状态时,都要经历一次复位状态。
③只有在正常运行状态(这里记作NORMAL)下,单片机才按照程序存储器中同化的用户程序按部就班地一步一步执行,从而完成开发者设计的各项任务。
④停机状态(或PD模式)和待机状态(或IDL模式),主要是为节能降耗而规划的节电状态(或称“睡眠状态”)。
⑤从无电状态离开的唯一条件就是上电,并且唯一能够到达的是一个暂态——复位状态。
⑥复位状态以外的4个状态都有迁移到复位状态的途径,只是导致迁移的条件不尽相同。
⑦无电状态之外的4个工作状态,都可能因为随时断电而导致单片机进入“无电状态”。
⑧从另外3个工作状态迁移到复位状态,基本都是依靠外部引脚RST上的复位信号。原始复位源比较单
一,这是因为传统80C5l的复位逻辑相对简单。如果想增加“电源欠压复位”和“看门狗复位”等其他复位源,则需要片外扩充独立电路来实现。
⑨标准80C51没有设计“软件复位”功能,如果需要该功能,可以通过用户程序自行实现。不同的是,软件复位不会令CPU经历一次复位状态。
2 复位源、复位操作和复位状态
像数字电路中的时序逻辑电路器件需要具备复位功能一样,各种类型的单片机也都需要具备复位功能(RESET)。复位功能按其英文原意是重新设置的意思,也就是从头开始执行程序,或者重新从头执行程序(Restart)的意思。复位是单片机的一项重要操作内容,其目标是确保单片机运行过程有一个良好的开端,确保单片机运行过程中有一个良好的状态。
需要强调的是:关于“复位”一词,它既包含复位活动的意思,又包含复位状态的意思。或者说,复位既是一个动态的概念(指复位活动、复位操作、复位处理或复位过程等),又是一个静态的概念(指复位状态或复位模式等)。
2.1 常规复位源和扩充复位源
从现今的技术高度来看,标准80C5l单片机的复位功能设计得不够完善,不仅没有设置复位标志位寄存器,而且复位源的种类也很少。
所谓“复位源”,就是导致或者引起单片机内部复位的源泉。对于当前市场上出现的种类比较齐全的单片机,其典型复位源大致可以归纳为以下6种:上电复位、人工复位、电源欠压复位、看门狗复位、非法地址复位和软件复位。这些复位源的特点是:
①上电复位这一种复位源是必不可少的。因为每次给单片机加电时,其电源电压的稳定,以及时钟振荡器的起振和振幅稳定,都需要一定的延迟时间。
②只有上电复位和人工复位这两种复位源,是讲解80C51单片机的教科书、技术文章和文献资料中比较常见的。
③对于电源欠压复位、看门狗复位和非法地址复位3种复位源,标准80C5l是不具备的,不过可以额外扩充,可由单片机用户根据实际需要通过附加一些软件或硬件的手段来实现。
④虽然电源欠压复位、看门狗复位、非法地址复位3种复位源可以额外扩充,但是都必须借助于复位引脚RST来实施复位操作或复位锁定。
⑤标准80C51本来不具备软件复位功能,但是可以通过纯软件方式以及虚拟手段,来实现或者部分实现其他单片机的软件复位。这种方法扩充的软件复位是一种比较特殊的复位源,一是不通过RST引脚实现复位,二是复位操作的内容与众不同。软件复位作为一种新技术,目前有越来越多的新型单片机配备了该功能。例如Phililps公司的P87LPC700和P89LPC900系列、TI-BB公司的MSC1200系列、SunPlus公司的SPMC65系列等,内部都设计了专门用于实现软件复位的控制寄存器或者控制位。
2.2 复位操作的具体内容
单片机复位功能的实现过程实质上就是在单片机内部进行一系列的复位操作。在复位期间,单片机内部的复位操作究竟完成了哪些内容,是程序设计人员应该搞清的问题,因为单片机复位操作完成之后的内部状态,就是运行用户程序和进行软件处理的背景、基础和起点。
对80C51单片机来说,只有软件复位的具体内容和影响范围,是可以由用户自由定制的;而凡是直接作用于复位引脚RST上的复位源(如上电复位等),所实现的复位操作的具体内容和影响范围都应该是一样的。现在归纳如下:
①程序计数器PC返同到原始状态0000H;
②所有特殊功能寄存器SFR全部还原为复位值(可以查阅技术手册);
③所有通用并行端口(PO、Pl、P2和P3)的引脚全部被设置为输入状态;
④清除各级中断优先级的激活触发器,以便受理各级中断请求(在标准80C5l中只设置了2个中断优先级别,而在有些新型兼容产品中设置了4个级别)。
2.3 复位状态的具体表现
单片机一旦进入复位状态并且停留在复位状态下(即外接引脚RST被锁定在有效的高电平上),就会表现出如下一些具体特征:
◇CPU不再执行程序而保持静止(冻结)状态;
◇各种片内外围模块(定时器、串行口、总线接口、中断系统等)均停止工作;
◇各个并口(P0~P3)的所有口线均对外呈现高阻状态;
◇各SFR的内容均恢复到复位值(即返回到知情范围);
◇内部RAM内容维持记忆,只要电源电压不低于最低维持电压(一般为2 V)就能够保持原有内容;
◇内部时钟源振荡器仍然会维持振荡,只要电源电压还在lV(甚至略低于1 V),振荡器就能够维持工作;
◇各种片外电路(如扩展存储器、扩展I/O端口或锁存器等)都应该维持原有内容和状态。
J. 单片机秒表复位程序如何写
秒表就是一个计时的工具,为了保证精确度,一般显示秒后面两位,就是10ms位,在单片机定时器中,赋初值1ms,变量不停的累加上去, 累加到10的时候,秒表加1,就是10ms了,
复位就是对秒表的数据进行清零重置,这时就需要一个按键来进行人机交互功能了,这时候就要考虑有几个按键了,一般的秒表设计的时候有两个按键,一个进行启动停止,一个进行清零;
1.启动和停止,启动停止的按键,就是按一下让标志位取反一次,
bit flag =0;
if(Key ==0)
{
delay(); //延时10ms;这个程序比较常见,就不写出来了
if(key == 0)
{
flag = !flag; //消抖后检测到按键还是按下状态,就把标志位取反;
while(!Key); //等待松手
}
}
同时在定时器中断里, 根据标志位对 及时变量进行累加
if(flag)
{
t++;
if(t >= 10)
{
t = 0;
ms++;
}
}
就这样 标志位就表示的秒表启动停止的,
2 。 复位,复位顾名思义就是 返回到初始状态,就是0 ; 一般复位是在秒表停止的状态对秒表进行清零;
先在主程序里检测按键
bit clc = 0;
if(key1 == 0)
{
delay(); // 延时10ms
if(Key1 == 0)
{
clc = 1;
while(!Key1); //等待松手
}
}
然后在定时器中断里进行对变量的数值进行清零
if(!flag ) //在停止状态
{
if(clc)
{
ms = 0;
clc = 0;
}
}
到此 秒表的启动停止 和复位就完成了 ,