lvween 发表于 2023-4-20 13:45:08

STC8G1K08怎么用普通IO中断

STC8G1K08怎么用普通IO中断,目前使用P1.5,P1.6,P1.7做按键中断,配置入下,收不到IO中断打印信息
void IO_Int_Init() {

        P_SW2 |= 0x80;// bit EAXFR:0:禁止访问XFR 1:使能访问XFR

        P1IM0 = 0x00; //00:下降沿;01:上升沿 10:低电平 11:高电平
        P1IM1 = 0xe0;
        P1INTE = 0xe0;//使能P1.5 P1.6 P1.7中断
        P1IE |= 0xe0;

        P_SW2 &= ~0x80;
        EA = 1;
}


void common_isr() interrupt 13
{
        unsigned char psw2_st;
        unsigned char intf;
       
        psw2_st = P_SW2;
        P_SW2 |=0x80;
        Uart2SendStr("common_isr\r\n");
        intf = P1INTF;
        if(intf)
        {
                P1INTF=0x00;
                if(intf & 0x20) //P1.5 口中断
                {
                                is_key |=0x01;
                                key1_t =timer_t0;
                                P12=0;
                                Uart2SendStr("key 1 \r\n");
                }
               
                if(intf & 0x40) //P1.6 口中断
                {
                                is_key |=0x02;
                                key2_t =timer_t0;
                                P13=0;
                                Uart2SendStr("key 2 \r\n");
                }
               
                if(intf & 0x80) //P1.7 口中断
                {
                                is_key |=0x04;
                                key3_t =timer_t0;
                                P14=0;
                                Uart2SendStr("key 3 \r\n");
                }
        }

        P_SW2=psw2_st;
}


ISP.ASM代码如下:


                CSEG   AT 0133H;P1口中断入口地址
                JMP    P1INT_ISR      
P1INT_ISR:
                JMP    006BH;借用13号中断入口地址
                END

8051启蒙者 发表于 2023-4-20 14:45:43

您是要所有IO都支持中断吗?STC8G1K08不支持所有IO都支持中断。
以下的STC8H系列实现了所有IO都支持中断:


lvween 发表于 2023-4-23 20:31:08

本帖最后由 lvween 于 2023-4-23 20:32 编辑

STC8G不是都支持IO中断吗?我就是根据这个文档里面写的IO中断例程来写的

神农鼎 发表于 2023-4-23 23:09:52

后续的才会有,现在的STC8G没有,你换 STC8H1K08T-33I-TSSOP20

lvween 发表于 2023-4-24 10:10:45

神农鼎 发表于 2023-4-23 23:09
后续的才会有,现在的STC8G没有,你换 STC8H1K08T-33I-TSSOP20

好的,了解了

rip 发表于 2024-7-19 17:45:29

神农鼎 发表于 2023-4-23 23:09
后续的才会有,现在的STC8G没有,你换 STC8H1K08T-33I-TSSOP20

那 STC8H1K08 支持普通 IO 中断吗?不带 T 的

vb2002 发表于 2024-7-19 17:53:14

rip 发表于 2024-7-19 17:45
那 STC8H1K08 支持普通 IO 中断吗?不带 T 的

上面发了手册里的图片,应该是不支持

32位8051-AI 发表于 2024-7-20 08:47:12

rip 发表于 2024-7-19 17:45
那 STC8H1K08 支持普通 IO 中断吗?不带 T 的

STC8H1K08不支持,目前STC8H系列部分型号支持



页: [1]
查看完整版本: STC8G1K08怎么用普通IO中断