新唐M051中断唤醒(睡眠)演示程序

发布者:HeavenlyJoy444最新更新时间:2014-12-12 来源: 51hei关键字:新唐M051中断唤醒  演示程序 手机看文章 扫描二维码
随时随地手机看文章
给大家发一个测试成功的新唐M051单片机中断唤醒(睡眠)的演示程序:
 
#include "SmartM_M0.h"
#define __KEYISR    EINT1_IRQHandler
#define DEBUGMSG       printf
/****************************************
*函数名称:KeyIntInit
*输    入:无
*输    出:无
*功    能:按键中断初始化
******************************************/
VOID KeyIntInit(VOID)
{
 P3_MFP = (P3_MFP & (~P33_EINT1_MCLK)) | EINT1;  //P3.2引脚设置为外部中断
  
 DBNCECON &= ~ICLK_ON;
 DBNCECON &= DBCLK_HCLK;
 DBNCECON |= SMP_256CK;        //设置防反弹采样周期选择
             
 P3_DBEN |= DBEN3;         //使能P3.2防反弹功能
  
 P3_IMD &= IMD3_EDG;    
 P3_IEN |= IF_EN3;         //设置外部中断1为下降沿触发
 NVIC_ISER |= EXT_INT1;
}
/****************************************
*函数名称:McuSleepDeep
*输    入:无
*输    出:无
*功    能:MCU进入睡眠模式
******************************************/
VOID McuSleepDeep(VOID)
{
 Delayms(20); 
 PROTECT_REG
 (
  /* 进入睡眠模式 */
  SCR |= SLEEPDEEP;
  /* 禁止掉电模式下唤醒的中断中断使能 */
  PWRCON &= ~PD_WU_IE;
  PWRCON &= ~PD_WAIT_CPU;
  PWRCON |= PWR_DOWN_EN;  
 ) 
 Delayms(20);
}
/****************************************
*函数名称:main
*输    入:无
*输    出:无
*功    能:函数主体
******************************************/
INT32 main(VOID)
{                   
  PROTECT_REG           //ISP下载时保护FLASH存储器
  (
   PWRCON |= XTL12M_EN;        //默认时钟源为外部晶振
   while((CLKSTATUS & XTL12M_STB) == 0);     //等待12MHz时钟稳定 
   CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; //设置外部晶振为系统时钟 
   P2_PMD = 0x5555;
  )
  KeyIntInit();         //按键中断初始化
  while(1)
  {
   P2_DOUT = 0x00;
   Delayms(500);
   P2_DOUT = 0xFF;
   Delayms(500);     
    McuSleepDeep();       //MCU进入睡眠模式     
  }
}
/****************************************
*函数名称:__KEYISR
*输    入:无
*输    出:无
*功    能:按键中断服务函数
******************************************/
VOID __KEYISR(VOID)
{
     Delayms(100);
  P3_ISRC = P3_ISRC;  //写1清空
}
 
关键字:新唐M051中断唤醒  演示程序 引用地址:新唐M051中断唤醒(睡眠)演示程序

上一篇:新唐M051定时器3 周期模式测试程序
下一篇:新唐M051 ISP(LDROM、FMC,相当于8位机EEPROM操作)程序

推荐阅读最新更新时间:2024-03-16 13:48

51单片机综合学习系统演示程序 - 红外遥控器键
简介:51单片机综合学习系统演示程序 - 红外遥控器键 /*********************************************************************/ #include reg52.h #include intrins.h sbitIRIN = P3 ^ 2; //红外接收器数据线 sbit BEEP = P3 ^ 7; //蜂鸣器驱动线 sbit RELAY = P1 ^ 3; //继电器驱动线 unsigned char IRCOM = { 0x00, 0x00, 0x00, 0x00, 0x10, 0x10 }; unsigned char code ta
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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