標(biāo)題: 單片機(jī)中斷代碼程序 [打印本頁]

作者: fengxiao323    時(shí)間: 2023-6-16 12:42
標(biāo)題: 單片機(jī)中斷代碼程序
#include <stc15.h>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int
        sbit LED1=P0^6;
  sbit LED2=P0^7;
  sbit beepIO=P3^7;

void Delay50us();
void Delay50ms();
void Delay500ms();
void INT0_Init();
void INT2_Init();
void main()
{
P0M0&=0X3F;P0M1&=0X3F;
        P3M0&=0X7F;P3M1&=0X7F;
        beepIO=1;
        INT0_Init();
        INT2_Init();
        EA=1;//使能總中斷
        while(1)
        {
        beepIO=~beepIO;
        Delay50us();
        }
}
void INT0_Init()
{
  IE0=0;
        IT0=0;
        EX0=1;
        PX0=1;
        EA=1;
}

void INT2_Init()
{
  INT_CLKO |=0X10;//使能INT2中斷允許位
}

void INT0_ISR()  interrupt 0
{
        uchar i;
        for(i=0;i<16;i++)
        {
        LED1=~LED1;
        Delay500ms();
        }        
}

void INT2_ISR()  interrupt 10
{
        uchar i;
        for(i=0;i<16;i++)
        {
        LED2=~LED2;
        Delay500ms();
        }
}

void Delay500ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 22;
        j = 3;
        k = 227;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

void Delay50ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 3;
        j = 26;
        k = 223;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

void Delay50us()                //@11.0592MHz
{
        unsigned char i;

        _nop_();
        _nop_();
        _nop_();
        i = 135;
        while (--i);
}







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1