打印

[8/16位单片机] 【4月板卡】PIC16F184x6学习笔记-按键中断

[复制链接]
1843|10
跳转到指定楼层
楼主
本帖最后由 yongruru 于 2019-6-28 16:52 编辑

PIC16F184x6只有一个中断入口,不像AVR有几十个中断向量,所以中断也没有优先级和中断嵌套。当处于中断状态,来了新的中断,新的中断只能等待。当来了多个新的中断,按中断触发的先后依次执行。
PIC16F184x6也只有一个外部中断,它可以映射到任意IO口上。
个人感觉PIC16F184x6的中断和外部中断设计的比较简单,并没有做的很丰富灵活。
下面做一个实例,开机进入休眠,按下SW0按键唤醒。
时钟HFINT0SC 16m。关看门狗,关BOR。




添加EXT_INT外设


触发方式,只有上升沿或者下降沿,没有电平触发。


将外部中断匹配到RC2引脚,也就是板子上的按键


RC2设置上拉


开启中断


生成代码,添加程序
  1. void main(void)
  2. {
  3.     SYSTEM_Initialize();

  4.     VREGPM=1;       //关LDO
  5.     SLEEP();        //进入睡眠
  6.     while (1)
  7.     {
  8.         NOP();
  9.     }
  10. }
复制代码

运行程序,开机进入休眠,电流显示为0,小于1ua。按下按键唤醒MCU,电流为1.8ma



因为只有一个外部中断,可能是作为补充,PIC还有IOC,可以独立的设置某个引脚或某几个引脚,当产生上升沿或下降沿变化时产生中断。同样可以从睡眠中唤醒。
MCC中删除外部中断,设置RC2为输入

设置上拉和IOC为上升沿和下降沿

使能ICOIE

生成代码,运行,同样实现了按下SW2按键唤醒。

个人理解,EXT-INT和ICO在这款芯片上共存没有太大意义,基本上ICO都能实现了。可能EXT-INT稍简单点。大家觉得呢?欢迎交流。




沙发
 楼主 | 2019-6-28 16:45 | 只看该作者
湖北快3PIC16F184x6学习笔记-按键中断.pdf (623.77 KB, 下载次数: 9)

板凳
| 2019-6-28 20:00 | 只看该作者
每个月的板卡都挺好。
地板
 楼主 | 2019-7-2 08:53 | 只看该作者
小灵通2018 发表于 2019-6-28 20:00
每个月的板卡都挺好。

你也快来参加呀
5
| 2019-7-2 09:30 | 只看该作者
感谢分享!学习下
6
| 2019-7-2 09:31 | 只看该作者
感谢分享!学习下
7
| 2019-7-2 10:32 | 只看该作者
支持支持
8
| 2019-7-5 11:08 | 只看该作者
受教了~  
9
 楼主 | 2019-7-5 13:19 | 只看该作者

小卡,还有一篇“定时器中断”,也帮我放到汇总里吧,谢谢
10
| 2019-7-5 14:35 | 只看该作者
IOC和INT中断基本功能差不多。区别在于INT只有一个中断源,只能配上升或下降;IOC是多个源共享一个中断,可以上升,下降或同时。
11
 楼主 | 2019-7-5 15:02 | 只看该作者
lcczg 发表于 2019-7-5 14:35
IOC和INT中断基本功能差不多。区别在于INT只有一个中断源,只能配上升或下降;IOC是多个源共享一个中断,可 ...

对的,IOC可以是一个或多个源
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表
江苏快3 江苏快3 福建快3 北京快3 湖北快3 上海快3 江西快3 河南快3 安徽快3 pk10