外部中断按键控制蜂鸣器

外部中断按键控制蜂鸣器

//主页有该代码实现效果

#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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值