与外中断有关的寄存器:
MCU 控制寄存器- MCUCR MCU 控制寄存器包含中断触发控制位与通用MCU 功能;
7 6 5 4 3 2 1 0
SM2 SE SM1 SM0 ISC11 ISC10 ISC01 ISC00
外中断的四种触发方式:
ISCx1 ISCx0 说明 (x为0,1)
0 0 INTx 为低电平时产生中断请求
0 1 INTx引脚上任意的逻辑电平变化都将引发中断
1 0 INTx的下降沿产生异步中断请求
1 1 INTx的上升沿产生异步中断请求
bit3、bit2,bit1、bit0,分别为中断1,0的设置位;
MCU 控制与状态寄存器-MCUCSR;
7 6 5 4 3 2 1 0
JTD ISC2 – JTRF WDRF BORF EXTRF PORF
Bit6 – ISC2:中断2 触发方式控制位
异步外中断2 由外部引脚INT2 激活,如果SREG 寄存器的I 标志和GICR 寄存器相应的中断屏蔽位置位的话。若ISC2 写0, INT2 的下降沿激活中断。 若ISC2 写1, INT2 的上升沿激活中断。
通用中断控制寄存器- GICR
7 6 5 4 3 2 1 0
INT1 INT0 INT2 – – – IVSEL IVCE
Bit 7 – INT1: 使能外部中断请求1,
Bit 6 – INT0: 使能外部中断请求 0,
Bit 5 – INT2: 使能外部中断请求 0
通用中断标志寄存器- GIFR
7 6 5 4 3 2 1 0
INTF1 INTF0 INTF2 – – – – –
Bit 7 – INTF1: 外部中断标志1;
Bit 6 – INTF0: 外部中断标志0;
Bit 5 – INTF2: 外部中断标志2
注意,当INT2中断禁用进入某些休眠模式时,该引脚的输入缓冲将禁用。这会导致INTF2标志设置信号的逻辑变化.
INT0 INT1 INT2 说 明
上升沿触发 Yes Yes Yes(异步)
下降沿触发 Yes Yes Yes(异步)
任意电平变化触发 Yes Yes ---
低电平触发 Yes Yes --- (无中断标志)
关键字:学习笔记 Atmeg16 外中断
引用地址:
学习笔记--Atmeg16外中断
推荐阅读最新更新时间:2024-03-16 14:33
[汇编学习笔记]MCS-51指令符号说明
符号说明 #da ta:表示指令中的8位立即数(da ta), # 表示后面的数据是立即数。 #da ta16:表示指令中的16位立即数。 direct:表示8位内部数据存储单元的地址。它可以是内部RAM的单元地址0~127,或特殊功能寄存器的地址,如I/O端口、控制寄存器、状态寄存器等(128~255)。 Rn:n=0~7,表示当前选中的寄存器区的8个工作寄存器R0~R7. Ri:i=0或1,表示当前选中的寄存器区中的2个寄存器R0、R1,可作地址指针即间址寄存器。 Addr11:表示11位的目的地址。用于ACALL和AJMP的指令中,目的地址必须存放在与下一条指令第一个字节同一个2KB程序存储地址空间之中。 Addr
[单片机]
8051单片机学习笔记/概要/总结/备忘
*.I/O引脚和I/O端口 P0(P0.7~P0.0) 1.P0是一个漏极开路型准双向I/O口. 2.在访问外存时, 它是数据总线和地址总线的低8位分时复用接口. 3.在EPROM编程时, 它接收指令字节; 在验证程序时, 输出指令字节, 并要求外接上拉电阻. P1(P1.7~P1.0) 1.P1口是带内部上拉电阻的8位双向I/O口, 它是通用I/O口. 2.在EPROM编程和程序验证时, 它接收低8位地址. P2(P2.7~P2.0) 1.P2是带内部上拉电阻的8位双向I/O口. 2.在访问外存时, 它输出8位高地址. 3.在对EPROM编程时和程序验证时, 它接收8位高地址. P3(P3.7~P3.0) 1.P3
[单片机]
STM32CubeMX学习笔记——STM32H743外部中断
STM32CubeMX配置 STM32CubeMX版本:4.27.0 配置流程: Pinout界面选择并开启需要使用外部中断的引脚 Clock Configuration配置时钟树 Configuration界面配置System 生成工程 Pinout配置 该界面用于配置生成硬件中断的引脚 Clock Configuration配置 开启系统时钟 Configuration 左侧主要系统功能的开启,或中间软件层功能的开启(如:RTOS、JPEG解码器,文件系统等) 右侧是系统及外设模块的具体配置 GPIO 配置生成外部中断的引脚与LED引脚 开启EXTI2、3中断线 NVIC 设置中断向
[单片机]
51单片机学习笔记【八】——步进电机
一.步进电机基础 1.定义 步进电机是将电脉冲转化为角位移的执行机构,主要使用永磁性步进电机,本实验使用的步进电机为四线双性步进电机; 步进电机的相数指产生不同极性N,S磁场的激磁线圈对数,常用m表示; 步进电机的拍数指完成一个磁场周期性变化所需脉冲数,以四线二相电机为例: 单向四拍:A/-B-A-B/ 双向四拍:A/B-AB-AB/-A/B/ 单&双八拍:A/-A/B-B-AB-A-AB/-B/-A/B/ 步进角指定子没改变一次通电状态,转子转过的角度,与磁极数,定子相数,通电方式节拍成负相关。计算 360/(m*Z*C) m–定子向数 Z–转子磁极数 C–通电方式 C=1 单或双轮流通电 C=2 单和双轮流通电 2.步进电
[单片机]
MSP430学习笔记2-ADC12
开发版型号:SEED—MSP430F5529A 开发工具 :CCS 5.4v 以下内容是CCS中ADC12操作的一些简单的demo,现整理如下: 有关MSP430F5529芯片ADC12相关资料,可参考《MSP430x5xx and MSP430x6xx Family User's Guide (Rev. M)——Chapter 28 ADC12_A》 1:demo描述 Description: A single sample is made on A0 with reference to AVcc. Software sets ADC12SC to start sample and conver
[单片机]
STM32学习笔记之绪论
学习STM32也有些日子了。作为初学者,从最初的一无所知,到现在略知皮毛之皮毛,感觉着实不容易。 下面把自己的体会以及自认为初学者不易掌握的要点和大家分享一下,有错误的地方,欢迎大家指正。 一、关于学习方法 初学STM32给我的一个感觉就是,概念繁多而且很多都可以继续深究下去, 教程对此又不可能都很详细的论述,但于我来说如鱼鲠喉实在不爽。 因为我喜欢刨根问底,网络资料又实在繁杂,如此又耗费精力,又打击学习积极性。 终于有一天,我转变了心态,如果STM32犹如枝繁叶茂的大树(整个嵌入式体系亦如此),我要做的不是连每一个叶子都明了,而是暂时只要知晓其主干及一些必要的干支即可。其他的枝叶等有时间再去深究,而很多脉络随
[单片机]
STM32 USB学习笔记1
主机环境:Windows 7 SP1 开发环境:MDK5.14 目标板:STM32F103C8T6 开发库:STM32F1Cube库和STM32_USB_Device_Library 之前在STM32论坛里领取过一块STM32开发板,本来以为是带有USB模块接口的,最后发现NUCLEO里是没有把USB模块外接出来的,所以就自个儿掏钱买了一块单板,如下图所示: 单板很简单,单纯是为了学习一下STM32的USB模块,之所以选择这个是因为它便宜,而且ST官方有提供USB模块库方便开发。 USB开发博大精深,比之串口,SPI,I2C来说多了很多东西,一个很简单的例子就是串口,SPI,I2C都可以使用通用IO口来模
[单片机]
STM8L探索套件学习笔记-ADC_DMA(十五)
使用ADC的DMA功能,每次连续转换8个数据,然后平均显示到LCD上。 主要代码如下: void main(void) { /* Enable ADC1 clock */ CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE); /* Enable DMA1 clock */ CLK_PeripheralClockConfig(CLK_Peripheral_DMA1, ENABLE); LCD_GLASS_Init(); /* Initialize and configure ADC1 */ ADC_Init(ADC1, ADC_ConversionMode_
[单片机]