求用C语言编程:单片机P1.0和P1.1分别接两个指示灯

2024-12-25 12:35:52
推荐回答(1个)
回答1:

#include "reg51.h"
sbit D1=P1^0;
sbit D2=P1^1;
void delay(int i){
 while(--i);
}
 //key1控制D1,外部中断0(P3.2)接key1
void int0()interrupt 0
{
 delay(100);//这个加了延时消抖动
 if(IE0){
  D1=!D1;
  while(IE0);//键释放后才结束函数
 } 
}
//外部中断1(P3.3)接key2,这个程序没加延时消抖动,自个体会效果。 
void int1()interrupt 2
{
 D2=!D2;
 while(IE1);
}
//主函数 
void main(void){
 EA=EX0=EX1=1;//开中断,没定义IT0和IT1,所以默认为电平触发中断方式
 while(1);
}