导航:首页 > 操作系统 > 单片机复位程序

单片机复位程序

发布时间:2022-10-23 17:50:59

1. 单片机如何用C程序复位

可以使用下面的程序跳到0000H实现软复位,下面的程序实际上是一个函数指针,指针指向了0000H地址。
((void (code *) (void)) 0x0000) ();

下面的例子将实现软件自复位void reset (void)
{
((void (code *) (void)) 0x0000) ();
}

void main (void)
{
reset ();
}

你可能注意到以上的软复位程序并不能清除8051的中断系统和某些8051的外围设备,当您在中断程序中调用上面的软件复位程序后,中断将再不能触发。因此,以上的软复位程序不能在中断子程序中调用。

下面的小段汇编函数可以在中断程序或主程序中调用,该函数将0x0000压栈,然后通过“RETI”出栈,这将清除中断环境并让程序从0000H重新开始运行。

?PR?RESET SEGMENT CODE
RSEG ?PR?RESET

; C prototype: void reset (void);

PUBLIC reset
reset: POP ACC ; pop return address
POP ACC
CLR A ; push 0 as new
PUSH ACC ; return address to stack
PUSH ACC
RETI ; execute return of interrupt

END

以上程序在选择bank 0寄存器组时工作良好,假如选择的不是bank0寄存器组,那么可能无法获得预料的结果。你应该在以上的程序或启动代码中加上“MOV PSW, #0”来选择bank 0寄存器组。

以上文章由龙啸九天翻译自KEIL FAQ,可能有疏漏,欢迎提出。

2. 单片机复位是什么意思有什么作用

单片机复位是单片机上的复位电路的复位操作,作用是使电路恢复到起始状态。

单片机复位电路主要有四种类型:微分型复位电路;积分型复位电路;比较器型复位电路;看门狗型复位电路。

为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V±5%,即4.75~5.25V。

由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才会撤除,微机电路开始正常工作。

(2)单片机复位程序扩展阅读:

复位方式:

1、手动按钮复位

手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。

2、上电复位

对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1uF。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。

3、积分型上电复位

常用的上电或开关复位电路如图3所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。

3. 8051单片机如何实现复位,复位的作用是什么

单片机复位:RST 引脚输入不少于2个机器周期(24个时钟周期)的高电平。
复位的作用:单片机对相关的寄存器、I/O 端口进行初始化操作,使单片机从同一个状态开始工作。
复位是解决智能化设备故障的首选操作,即看门狗模块的作用。

4. STC89C51 单片机复位

该单片机正常工作时复位端电压应保持低电平状态,复位时给复位端加上一个短暂的高电平即可使单片机程序复位。该复位电路的工作原理是,电源通过电解电容再通过电阻串联到地,电容两段并联一按键开关,正常工作时电容隔断电源电压,单片机复位端相当于通过电阻接地。因电路中无电流,所以复位端电压为0伏。当运行过程中需要复位时,通过拨动按键开关,把电容直接短路,电源电压加在电阻两端,单片机复位端即可过得一个短暂的高电平从而复位。松开按键,复位结束,单片机即可正常跑马。上电时,电解电容充电,串联电路中有电流流过,电阻两端获得一个电压,也可使单片机复位端为高电平而复位。所以复位包括上电复位和手动复位。

5. 使AT89C51单片机复位有几种方法复位后的状态如何

通常就是一种方法,在复位管脚(RST)加高电平信号。复位后程序计数器回零。

1、一般数据手册上对寄存器的描述都会有给出默认值或直接描述上电或复位后的值,默认值就是复位后的寄存器的值。

2、是从STC89C51RC单片机的Data Sheet中截图的,Value after Power-on or Reset就是单片机上电或复位后的状态,x表示不确定,可能是1,可能是0。

(5)单片机复位程序扩展阅读:

AT89C51 提供以下标准功能:4k字节Flash闪速存储器,256字节片内数据存储器(00H -7FH为片内RAM,80H-FFH为特殊功能寄存器SFR),32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

6. 单片机软复位几种方法

如从机收到复位命令(软件命令),程序怎么使机器复位?虽然要使软件始终处于可控状态,最好不要用"复位",因为复位是纯硬件过程,软件是不可控的.但是我们还是要讨论方法,一般流传的方法如下:
1、放狗;
2、((void(code *)(void))0x0000)();
3、用单片机一个引脚控制点一下RSTRST;
4、用单片机一个引脚控制重新加电;
5、用单片机自带的软件复位指令或内狗指令;
6、goto大法;

7. 52单片机复位后从哪里运行

52单片机复位后从主界面运行,对于51单片机来说,程序复位后一定从0x0000开始,一般会在中断入口前写一个无条件跳转,一直跳转到程序开始的位置。

8. 单片机的三种复位方式

一、高电平复位

复位电路的工作原理 在书本上有介绍,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为低电平。正常工作为低电平,高电平复位。

9. 51系列单片机是如何进行复位的

在单片机系统的应用中,我们经常需要用到复位技术来实现抗干扰。有的单片机(如8098)有专门的复位指令,某些增强型MCS-51系列单片机虽然没有复位指令,但片内集成了WATCHDOG电路,可以很容易实现复位。而普及型MCS-51系列单片机(如8031和8032)既无复位指令,又不带硬件WATCHDOS,如果不外接硬件WATCHDOG,就必须采用软件复位技术。所谓软件复位就是用一系列指令来模仿复位操作。在MCS-51系列单片机中,只要用指令使程序从起始地址(0x0000)开始执行,就可以复位单片机。

10. 单片机秒表复位程序如何写

秒表就是一个计时的工具,为了保证精确度,一般显示秒后面两位,就是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;
}
}
到此 秒表的启动停止 和复位就完成了 ,

阅读全文

与单片机复位程序相关的资料

热点内容
redhatphp 浏览:454
android智能家居蓝牙 浏览:646
pt螺纹编程 浏览:451
手机电音app哪个好 浏览:749
checksum命令 浏览:637
java创建xml文件 浏览:170
算命源码国际版 浏览:283
三菱模块化编程 浏览:718
控件读取文件源码 浏览:445
文件夹侧面目录标签怎么制作 浏览:232
做程序员学什么 浏览:320
pdfeditor教程 浏览:880
fortran把文件放入文件夹 浏览:709
程序员1年经验不敢投简历 浏览:481
如何看电脑的源码 浏览:897
找工作app软件哪个好 浏览:96
信息管理网站源码 浏览:439
小说app哪个好免费 浏览:224
域名在线加密 浏览:146
软件编程西安交大 浏览:453