外部中断按键控制蜂鸣器
//主页有该代码实现效果
#include <REGX52.H>
sbit BUZZER=P1^5;
sbit KEY=P3^2;
void Delay_ms(unsigned int ms) //1ms延时函数
{
unsigned int i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<123;j++);
}
}
void BUZZER_ON(void) //简易蜂鸣器发声函数
{
while(!KEY)
{
unsigned int i;
for(i=0;i<200;i++)
{
BUZZER=1;
Delay_ms(1);
BUZZER=0;
Delay_ms(1);
}
}
}
// 外部中断0服务函数
void INT0_ISR() interrupt 0
{
P2=0x00; //用于测试是否进入中断
BUZZER_ON();
}
void main() {
IT0 = 1; // 设置外部中断0为边沿触发
EX0 = 1; // 使能外部中断0
EA = 1; // 开总中断
BUZZER = 1; // 初始状态:蜂鸣器关闭
// P2=0xFF;
while(1)
{
P2=0xFF;
}
}
//本代码的开发板为普中HC6800-ES V2.0