中断唤醒的代码案例及分析

发布者:dst2015最新更新时间:2023-03-24 来源: zhihu关键字:中断唤醒  8051系列  单片机 手机看文章 扫描二维码
随时随地手机看文章

生活上有很多东西都搭载着单片机而进行工作的,而且有相当一部分的设备、仪器、产品都是靠蓄电池来提供电源的,往往这些靠蓄电池供电的设备、仪器、产品都能够用上一大段时间。例如我们经常接触到的遥控器,假若MCU一直不停地运行,不出一段时间,电池的能量会很快耗光。当然在8051系列单片机搭载的系统中,不光有单片机需要耗电,同时还有其他外围部件耗电的,因此,我们在适当的时候关闭设备的运行同时将8051系列单片机的运行模式进入空闲模式或者掉电模式,以节省不必要的能源,达到低功耗的目的。


平时8051系列单片机正常工作的电流为4毫安~7毫安;当8051系列单片机进入掉电模式下,它的工作电流小于1微安。由此可见,低功耗设备的功耗控制很有必要在适当的时候将8051系列单片机运行在掉电模式。


【例子】要求MCU默认进入掉电模式,通过按键中断来唤醒MCU,闪烁LED灯一段时间,然后MCU重新进入掉电模式。


中断唤醒代码:




 1 #include "stc.h" 

 2 

 3  #define LED_PORT     P2  //定义LED控制端口为P2口

 4 

 5  /********************************************

 6 *函数名称:Delay

 7 *输    入:无

 8 *输    出:无

 9 *说    明:延时一段时间

10 ********************************************/

11  void Delay(void)          

12 {

13     unsigned char i,j;   

14 

15  for(i=0;i<130;i++)     

16  for(j=0;j<255;j++);

17 }

18  /********************************************

19 *函数名称:PCONToPD

20 *输    入:无

21 *输    出:无

22 *说    明:设置MCU模式为掉电模式

23 ********************************************/

24  void PCONToPD(void)

25 {

26       PCON=0x02;

27 }

28  /********************************************

29 *函数名称:EXTInit

30 *输    入:无

31 *输    出:无

32 *说    明:外部中断初始化

33 ********************************************/

34  void EXTInit(void)

35 {

36      EX1=1;        //允许外部中断1中断

37       IT1=0;        //低电平触发

38       EA=1;         //允许所有中断

39  }

40 /********************************************

41 *函数名称:main

42 *输    入:无

43 *输    出:无

44 *说    明:函数

45 ********************************************/

46 void main(void)            

47 {

48    unsigned char i;

49  

50    EXTInit();             //外部中断初始化

51  

52  while(1)

53    {

54  for(i=0;i<20;i++)      //循环闪烁LED灯

55       {

56          LED_PORT=~LED_PORT;

57          Delay();       

58       }

59 

60        PCONToPD();//进入掉电模式

61    }    

62 }

63 /********************************************

64 *函数名称:EXT1IRQ

65 *输    入:无

66 *输    出:无

67 *说    明:外部中断1中断服务函数 

68 ********************************************/

69 void EXT1IRQ(void)interrupt 2

70 {

71  //空操作,用于中断唤醒MCU

72 }

73 



代码分析


PCONToPD函数主要将当前单片机正常工作模式转变为掉电模式,节省能耗。


在main函数中,进入while(1)死循环之前首先要对外部中断进行初始化,当进入while(1)后第


一步首先进行LED闪烁操作,第二步就是将单片机正常工作模式转变为掉电模式,那么这时LED灯保持当前状态,直到单片机的工作方式为正常方式才会发生变化,即通过中断来唤醒单片机,从掉电模式转变为正常工作模式。


外部中断1中断服务函数EXT1IRQ中是空操作,其实这个函数是可有可无的,为什么这样说呢?因为当外部中断1被触发时,单片机的内部机制会将其唤醒,从掉电模式转变为正常工作模式。所以外部中断1中断服务函数属于软件处理部分,在进入该函数之前,单片机模式已经变更了。


关键字:中断唤醒  8051系列  单片机 引用地址:中断唤醒的代码案例及分析

上一篇:单片机成长之路(51基础篇)51单片机寄存器功能一览表
下一篇:51单片机 HC05蓝牙模块学习

推荐阅读最新更新时间:2024-11-17 05:50

单片机电话单机测试仪的研制
    摘要: 介绍一种新型的单片机电话电机测试仪的工作原理、实现电路、程序设计和功能。给出了串行数据流在单片机内存中的存储格式及快速处理方法。     关键词: 单片机 串行数据 A/D 测试仪 随着我国电讯业的迅速发展,电话单机需求量激增,为此研制了一种能快速、准确测试电话单机主要性能并对其故障定位的测试仪器。测试仪的特点为:信号方式、接口形式符合有关用户交换机的国家标准;操作方法上符合人们的操作习惯;功能较全、测试速度快、定位准确。 单片机电话测试仪的主要功能为: ·环阻测量:测量用户摘机状态环路接通电阻Ron和挂机状态的漏电流Ioff; ·脉冲拔号测量:包括测量脉冲串的个数、速率、断续比、
[测试测量]
单片机编译错误 error A45: UNDEFINED SYMBOL
问: MOV A,#FFH Power.asm(118): error A45: UNDEFINED SYMBOL (PASS-2) JBC P2.0,CXSM LJMP CIRCLE Power.asm(179): error A51: TARGET OUT OF RANGE NDIV4: DJNZ B,NDIV2 提示错误:Power.asm(285): error A45: UNDEFINED SYMBOL (PASS-2) CLR PSW.5 RET 答: MOV A,#FFH 后面的16进制数字,不能以字母开头。比如说 :B5H应该写成: 0B5H。FFH 0FFH
[单片机]
51单片机学习之路 —— 1.1学习准备
学习准备 :   1 硬件准备 :       一台电脑(不需要很棒的配置,运行程序不卡既可以了)       学习板 (我自己是在淘宝上买了stc89c52的板子,功能不是很强,但用作学习应该是够了)       #这里多说一句,很多学校实验室其实可以提供学习的板子,大家可以向专业老师询问,也能省不少下钱呢。   2 软件 :       驱动 (将自己的板子的驱动装好)       编写软件(主流有keil uVison4 或 keil uVision3 )       烧写软件 (与板子对应的软件 如stc公司的烧写软件)       #补一个 有的时候要画流程图,我用的是ProcessOn 通过它可以在线画流程图挺方便的
[单片机]
51<font color='red'>单片机</font>学习之路 —— 1.1学习准备
单片机方案开发注意事项及如何挑选PIC单片机进行学习
  要对PIC单片机进行编程,你需要了解特定的开发工具的基本构件,例如配置寄存器,总线和存储器类型。理解C编程语言、汇编语言等单片机开发语言等。此外,选择正确的软件开发工具集还可以使升级更加容易和快捷。   许多PIC的基础内存体系结构是哈佛体系结构,该体系结构广泛应用于英特尔8051单片机中。哈佛结构具有一个用于存储程序命令的存储空间,并为运行内存额外分配空间,单独的存储空间(可以是片上闪存,ROM,RAM或外部芯片)通常可以提高程序执行速度。   在对单片机方案开发之前,我们必须明确将要用于设计的PIC单片机。其中,8位PIC是一个不错的选择,因为它们的成本通常低于16位和32位MCU,并具有足够的外设集(例如A/D转
[单片机]
基于单片机的某医用灭菌器控制系统开发
  引言   灭菌器是保护人类生命健康的重要器材,发达国家无论是家用灭菌器还是商用灭菌器都很普及。而灭菌器灭菌是否合格大部分取决于控制系统是否可靠,针对某医疗设备厂灭菌器控制系统不稳定、人机界面不友好等实际问题,作者采用80C196KB单片机为该厂设计灭菌控制系统,消除原有系统的缺陷并相应增加一些功能,相比51系列单片机,96系列片上资源更丰富,设计系统相对容易。    1、灭菌器控制分析   该灭菌器主要进行包裹类、器械类、乳胶类、液体类及其它类五项进行灭菌,其工艺大体相同,不同之处可由程序控制。通过其工作原理(图1)可知,根据里外锅的温度和压力是否达到规定值而进行各种动作控制。   模拟输入量共4个:外锅温度TW,外锅
[医疗电子]
基于<font color='red'>单片机</font>的某医用灭菌器控制系统开发
单片机测控系统的抗干扰技术
一、电源的干扰及其抑制技术 一般情况下,任何电子设备或系统无疑都离不开供电电源,因此首先探讨电源的抗干扰措施具有实际的意义。信号发生器包括 静电测试仪 、浪涌测试仪、脉冲群模拟器等都可作为干扰源模拟测试。 电源干扰的耦合途径和其他干扰源类似,基本上也分为电磁感应耦合、电容耦合、共阻抗耦合和辐射耦合等。 1、电力供电系统的抗干扰 电力供电系统为所有用电设备提供能量来源,如果从源头上切断干扰源意义很大。 在供电系统,比如变电所内的变压器、大电流电缆、电容器、电抗器和电容等的周围存在极强的变更电磁场,会对处于其内部的电子设备产生电磁场干扰;一次设备载流体与二次回路间存在分布电容,会产生电容耦合干扰;供电线路对地绝缘不良,也会产生不稳定的
[单片机]
MCS-51单片机存储器扩展
主要内容: 第八部分 MCS-51单片机存储器扩展(1) 1、 概述 2、 系统总线及总线构造 3、 读写控制、地址空间分配和外部地址锁存器 4、 程序存储器EPROM的扩展 重点:系统总线及总线构造 存储器地址空间分配 外部地址锁存器74LS373 典型的外扩存储器的接口电路 难点:存储器地址空间分配 第8部分 MCS-51单片机扩展存储器的设计 8.1 概述 片内的资源如不满足需要,需外扩存储器和I/O功能部件:系统扩展问题,内容主要有: (1)外部存储器的扩展(外部存储器又分为外部程序存储器和外部数据存储器) (2) I/O接口部件的扩展。 本章介绍MCS – 51单片机如何扩展外部存储器,I/O接口部件
[单片机]
基于AT89C51单片机设计的简易智能机器人
引言 随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成cpu、存储器、定时器/计数器、并行和串行接口、看门狗、前置放大器、a/d转换器、d/a转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能机器人。 1 设计思想与总体方案 1.1 简易智能机器人的设计思想 本机器人能在任意区域内沿引导线行走,自动绕障,在有光源引导的条件下能沿光源行走。同时,能检测埋在地下的金属片,发出声光指示信息,并能实时存储、显示检测到的断点数目以及各断点至起跑线间的距离,最后
[工业控制]
基于AT89C51<font color='red'>单片机</font>设计的简易智能机器人
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved