- #include<xxxx.h> //头文件未知,需要改
- #define uchar unsigned char
- #define uint unsigned int
- sbit BEEP = P3^7; //STC单片机P3内部有上拉电阻
- sbit guang = P1^0; //STC单片机P1内部有上拉电阻
- sbit jidianqi = P0^0; //STC单片机P0内部无上拉电阻,需要外部加
- uint c=0;
- //
- void exint0() interrupt 0
- {
- EX0 = 0; // 关闭中断,防止误动作
- c=0;
- jidianqi = 0;
- EX0 = 1; // 打开中断
- }
- //
- void exint1() interrupt 2
- {
- EX1 = 0; // 关闭中断,防止误动作
- c++;
- if(c==3) c=0; // c值超出范围值清0,也可以设置其它值,例如c=1,看需求,不用就删除此行吧
- delay1ms(200);
- EX1 = 1; // 打开中断
- }
- //
- void main()
- {
- IT0 = 1;
- EX0 = 1;
- IT1 = 1;
- EX1 = 1;
- EA = 1;
- BEEP = 1;
- jidianqi = 0; // 如果是继电器,应该用PNP管驱动继电器,触发信号低电平,
- // 如果jidianqi = 0;是继电器关闭,最好改一改电路,防止STC类单片机启动复位IO高电平误动作
- delay1ms(200); // 稍微延个时,稳定一下
-
- while(1)
- {
- switch(c)
- {
- case 1: jidianqi=1; break;
- case 2: jidianqi=1; P0=0; break;
- default: break; // 如果c不在范围值之内,执行,可添加其它功能
- }
- }
- }
复制代码
|