单片机学习小组
直播中

fejlkel

8年用户 1073经验值
擅长:制造/封装
私信 关注

怎样去实现51单片机的中断程序呢

怎样去实现51单片机的中断程序呢?求大神解答

回帖(1)

赵娜

2022-1-18 13:41:32
实验四_中断

代码

**#include"reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;
***it led=P0^0;      //位定义
***it key=P3^2;      //位定义


void delay(u16 i)    //延时函数
{
        while(i--);
}




void int0_init()  //串口配置
{
        EA=1;           //中断总允许位
        EX0=1;          //外部中断允许位
        IT0=1;         //中断触发方式 下降沿触发
}




void main()
{
        int0_init();
        led=0;
        while(1);
}


void int0() interrupt 0
{
                if(key==0)
                {
                        delay(1000);    //消抖
                        if(key==0)
                        {
                                led=~led;  
                           }
                }
}


仿真图



元器件名:

AT89C51 (AT89C52也可以)
res (电阻)
power (电源5V)
button (按键)
ground (接地)
备注

此为外部中断方式0
如果用外部中断1 需要将中断初始化函数中EX0改为EX1;IT0改为IT1;
中断服务函数intrrupt 0改为interrupt 2(因为intrrupt 1是定时器0)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分