#include'reg52.h'

typedef unsigned char u8; //定义无符号字符类型u8,占用1个字节 typedef unsigned int u16; //定义无符号整型类型u16,占用2个字节

sbit key=p3^3; //定义按键连接的IO口 sbit led1=p1^0; //定义LED灯连接的IO口

void delay(u16 i) //延时函数,i为延时时间 { while(i--); //循环i次,每次消耗一定时间,从而实现延时 }

void Init1Init() //中断初始化函数 { IT1=1; //设置外部中断1为下降沿触发 EX1=1; //打开外部中断1 EA=1; //打开总中断 }

void main() //主函数 { u8 count=0; //计数器初始化为0 Init1Init(); //初始化中断 while(1) //无限循环 {

} }

void Init1_Routine() interrupt 2 //外部中断1的中断服务函数 { delay(1000); //延时1秒,防止按键抖动 if(key==0) //如果按键被按下 { count++; //计数器自增 if(count==3) //如果按键按下次数满足条件 { led1=~led1; //LED灯反转 count=0; //计数器清零 } } }

单片机按键连续按下3次控制流水灯 - 51单片机编程实例

原文地址: https://www.cveoy.top/t/topic/n6Ay 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录