📄 int1_test1.c
字号:
/***********************************
* 文件:INT1_TEST1.C
* 开发: www.zlgmcu.com
* 日期: 2004.03.01
* 功能:测试P89LPC932 在完全掉电模式下的外部中断唤醒
* 说明: 此程序用DP-932调试通过.
* 将跳线器J27,J28分别接OCA和BEEP;J3接KEY1
* 通过跳线器选择高频晶振6MHz.
**************************************/
#include "reg932.h"
#include "intrins.h"
#define uchar unsigned char
//变量定义
uchar T_Cnt;
sbit KEY1=P0^0;
sbit LEDCON=P2^6;
sbit BEEP=P2^7;
//函数声明
void Delay();
void main()
{
P0M1=P0M2=0; //P0口设置为准双向
P1M1=P1M2=0; //P1口设置为准双向
P2M1=P2M2=0xc0; //P2.6,P2.7开漏输出
IT1=1; //INT1 下降沿触发
EA=1;
while(1)
{ EX1=0; //关中断INT1
T_Cnt=0;
while(KEY1) //等待KEY1按下
{ Delay();
if (T_Cnt++==10) //每秒钟对LED取反一次
{ LEDCON=~LEDCON;
T_Cnt=0;
}
}
while(!KEY1); //等待KEY1释放
IE1=0; //清除中断标志,开中断
EX1=1;
AUXR1|=0x80; //置位CLKLP以降低功耗
PCONA=0xef; //LPC932 功能部件掉电
PCON=0x23; //LPC932完全掉电
}
}
/***************************
* 延时程序
* 延时时间:0.1S
****************************/
void Delay()
{ uchar i,j,k;
for(k=1;k;k--)
{ for(j=200;j;j--)
{ for(i=250;i;i--)
{ _nop_();
_nop_();
_nop_();
_nop_();
}
}
}
}
/***********************************
* 名称:INT1_Serv
* 功能:外部中断1(INT1)中断处理,蜂鸣器"Beep"一声
**************************************/
void INT1_Serv() interrupt 2
{ BEEP=0;
Delay(); //蜂鸣器响0.1S
BEEP=1;
IE1=0; //清除中断标志
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -