51单片机(十二)—— 单片机复位
一、复位介绍
复位为单片机提供了一条从已知初始条件启动处理的途径。复位期间,大部分控制和状态寄存器被迫使用初始值,单片机的外围模块被禁止,单片机用于复位的复位源有加电复位、外部RESET管脚复位、看门狗复位等。
我们实验对应的硬件复位电路,如下图所示。
这个图中集成了51单片机和AVR单片机的复位电路,对于51单片机,将J12上的跳线帽跳到左侧,则左侧的电路与单片机的复位引脚相连,正常情况由于R14的下拉作用,单片机的复位引脚为低电平,单片机正常工作,如果按下按键,VCC与单片机复位引脚相连,单片机产生复位。
二、例程测试
1、硬件复位
这个实验我们来测试硬件复位功能,测试代码的主要部分如下所示,完整代码可以从本文资源中下载。
void main (void)
{unsigned char j;for(j=0;j<5;j++) //LED灯闪烁5次{LED1=0; //将P00口赋值0,对外输出低电平,灯点亮。delay(30000); //调用延时函数LED1=1; //将P00口赋值1,对外输出高电平,灯熄灭。delay(30000); //调用延时函数}for(;;);
}
在这个代码中,LED1闪烁5次,然后进入死循环。将代码烧写到单片机中并运行,LED1闪烁5次,按下复位按键,则LED1重新闪烁5次,说明单片机产生了复位,程序重新从头开始运行。
2、软件复位
这个实验的代码如下所示
void main (void)
{unsigned char j;for(j=0;j<5;j++) //LED灯闪烁5次{LED1=0; //将P00口赋值0,对外输出低电平,灯点亮。delay(30000); //调用延时函数LED1=1; //将P00口赋值1,对外输出高电平,灯熄灭。delay(30000); //调用延时函数}delay(60000); //延时delay(60000); //延时delay(60000); //延时ISP_CONTR=0x20; //软件复位for(;;);
}
从代码中可以看到,上电之后LED1闪烁5次,然后延时,之后通过ISP_CONTR=0x20;语句将单片机软件复位。
将代码烧写到单片机中,LED1闪5下之后熄灭。过几秒之后,又闪5下,如此反复。
51单片机(十二)—— 单片机复位相关推荐
- 单片机笔记(1)--单片机概述
目录 一.单片机概述 二.单片机结构原理 三.单片机硬件系统结构 1.运算部件 2.控制部件 四.存储器结构 1.程序存储器 2.数据存储器 1.程序计数器PC 2.累加器A 3.B寄存器 4.程序状 ...
- 51单片机(二十五)—— 独立按键控制LED
在51单片机的前面的文章中,我们主要讲述了单片机IO口的输出功能的应用,如LED控制.数码管控制等.这篇文章我们来讲解如何用单片机的IO口读取按键的状态,并根据按键的状态来控制LED.关于51单片机按 ...
- AS608指纹模块于51单片机的二次开发
AS608指纹模块于51单片机的二次开发 前言提要 一.初识AS608: 二.设计 1.思路 2.上原理图: 3.程序设计中需要注意的几个点: 串口: 总结 前言提要 记得好久之前听老师说:你们有一个 ...
- arduino数码管显示0到9_少儿Python程序第十二讲:单片机控制数码管
本讲继续学习用Python控制单片机,并用单片机连接和控制其它硬件,具体目标是利用开发板控制四位数码管,显示指定的数字.实验效果如图12.1所示: 图12.1 单片机控制四位数码管显示数字 注意:请先 ...
- 51单片机生成二维码
最近搞了个单片机生成二维码,步骤如下 1.下载QRCode生成的驱动源代码,这个驱动是c语言编写的可以移植到各种c语言写的工程上去,下面附上下载链接: https://download.csdn.ne ...
- python编辑七段数码管引脚图_少儿Python程序第十二讲:单片机控制数码管
本讲继续学习用Python控制单片机,并用单片机连接和控制其它硬件,具体目标是利用开发板控制四位数码管,显示指定的数字.实验效果如图12.1所示:图12.1 单片机控制四位数码管显示数字 注意:请先把 ...
- 【连载】物联网全栈教程-从云端到设备(十二)---最简单的单片机上云方法!...
2019独角兽企业重金招聘Python工程师标准>>> 物联网全栈教程-从云端到设备(十二) 一 经过前面的铺垫,你已经学会了在LinkDevelop上新建一个项目,然后通过使用MQ ...
- 从零开始的单片机学习(十二)
十二.直流电机和步进电机 1.直流电机 a.什么是电机 电机就是一种将电能转化为动能和热能的装置. b.常见电机 (1)交流电机 ...
- 51单片机(二)成功点亮LED
❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分:建议先学习51单片机,其是STM32等高级单片机的基础:这样再学习STM32时才能融会贯通. ☀️ 专栏适 ...
最新文章
- 深入理解 RPC 之集群篇
- 解决KeyError: ‘acc‘ 和KeyError: ‘val_acc‘错误
- 软件测试女孩学适合吗
- ext文件系统机制原理剖析
- Google Project Zero挖洞经验整理
- 最新最全产品删除页代码
- Java与正则表达式
- 称对方攀附使用近似商标 “汽车之家”起诉索赔500万
- javascript精雕细琢(二):++、--那点事
- scratch课程案例——猜拳游戏
- 【数模】模糊综合评价模型
- 打印工资条怎么做到每个人都有表头明细_一键批量生成工资条并群发,操作步骤详解...
- NKOI 3539 移棋子游戏[6月月赛题A]
- QPalette类详细使用方法
- 四电极体脂称解决方案——测量原理
- javascript入门及基础语法结构
- 小白必看:三层交换机实现VLAN互通实验(图文并茂)
- 一只青蛙一次可以跳一级或二级台阶,请问跳n级台阶有多少次跳法之斐波那契数列的非递归写法
- root的小米如何升级,小米开发版怎么刷root
- C语言第十一章课后程序设计题