//使用时将单片机 poo口与p32口短接,poo用于出发外部中断
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
//use p00->p32
sbit con=P0^0;
sbit led1=P1^0;
sbit k1=P3^2;
uchar ws=0;
uchar num;
uint flag=1;
uchar temp=1;
uchar k=1;
void delayms(unsigned int xms) ;
//======delay===
void delayms(unsigned int xms) //ms级延时子程序
{
unsigned int x,y;
for(x=xms;x>0;x--)
for(y=130;y>0;y--);
}
//============ key ====================
//===============blink
void blinkk(uchar xx)
{
for (;xx>0;xx--) {
led1=~led1;
delayms(100) ;
led1=~led1;
delayms(100) ;
}
}
//===============out0
void outside_init() //外部中断初始化
{
EA=1; //开总中断
EX0=1; //打开外部中断0
IT0=1; //设置为下降沿触发
}
//================ main============
void main(){
P1=0x00;
outside_init() ;
while(1){
delayms(900) ;
con=0;
delayms(100) ;
con=1;
}
}
//=================================
void IO() interrupt 0 //使用了外部中断0的
{
if(k1==0) //有键按下吗?(k1=0 ?)
{
delayms(10); //延时消抖
if(k1==0) //确实是有键按下,则:
{
blinkk(3);
}
}
}