找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 331|回复: 2
打印 上一主题 下一主题
收起左侧

关于STC8H1K28-36I-SOP28选择任意中断

[复制链接]
跳转到指定楼层
楼主
ID:1156405 发表于 2026-5-29 15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在使用STC8H1K28-36I-SOP28写项目,想要使用P13作为上升沿触发P14作为下降沿触发,但是我怎么调都调不好,直接用手接入3.3V电源在拿走,中断里面的灯没有任何反应,敢问各位大佬这种问题要怎么解决;代码如下:
void EXTI_Init(void)
{
    // 配置 P1.3、P1.4 为输入模
    P1M1 &= ~((1 << 3) | (1 << 4));
    P1M0 &= ~((1 << 3) | (1 << 4));
    P1IM1 &= ~(1 << 3);
    P1IM0 |=  (1 << 3);
    P1IM1 &= ~(1 << 4);
    P1IM0 &= ~(1 << 4);
    P1INTE |= (1 << 3) | (1 << 4);

    P1INTF = (1 << 3) | (1 << 4);
    IE2 |= 0x10


    EA = 1;
}
中断函数如下:
void P1INT_Isr(void) interrupt 13
{
    if(P1INTF & (1 << 3)) // P1.3上升沿
    {
        P1INTF |= (1 << 3);
        LED = !LED1;
    }
    if(P1INTF & (1 << 4)) // P1.4下降沿
    {
        P1INTF |= (1 << 4);
       LED2 = !LED2;
    }
}








分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:1064915 发表于 2026-5-30 08:22 | 只看该作者
P1口上升沿中断
P_SW2 |= 0x80;
P1IM0 = 0xff;
P1IM1 = 0x00; //上升沿中断
P1INTE = 0xff; //使能 P1 口中断
P_SW2 &= ~0x80;
回复

使用道具 举报

板凳
ID:61207 发表于 2026-5-30 10:16 | 只看该作者
void Port1_Isr(void) interrupt 38
{
}

void PortInt_Init(void)
{
        P1INTE = 0x18;                        //使能P1口中断
        P1IM0 = 0x08;                        //设置P1口中断模式 (00:下降沿, 01:上升沿)
        P1IM1 = 0x00;                        //设置P1口中断模式 (10:低电平, 11:高电平)
        P1WKUE = 0x00;                        //设置P1口中断唤醒省电模式
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表