一、外部中断简介
STC15W408AS单片机有4个外部中断,它们分别是:外部中断0(INT0)、外部中断1(INT1)、外部中断2(INT2)、外部中断3(INT3)。
外部中断0(INT0)和外部中断1(INT1)触发有两种触发方式,上升沿或下降沿均可触发方式
和仅下降沿触发方式。
TCON寄存器中的IT0/TCON.0和IT1/TCON.2决定了外部中断0和1是上升沿和下降沿均可触发还是仅下降沿触发。如果ITx = 0(x = 0,1),那么系统在INTx(x = 0,1)脚探测到上升沿或下降沿后均可产生外部中断。如果ITx = 1(x = 0,1),那么系统在INTx( x= 0,1)脚探测下降沿后才可产生外部中断。外部中断0(INT0)和外部中断1(INT1)还可以用于将单片机从掉电模式唤醒。
外部中断2(INT2)、外部中断3(INT3)都只能下降沿触发。外部中断2~3的中断请求标志位被隐藏起来了,对用户不可见,故也无需用户清"0"。当相应的中断服务程序被响应后或中断允许位EXn (n=2,3)被清零后,这些中断请求标志位会立即自动地被清0。这些中断请求标志位也可以通过软件禁止相应的中断允许控制位将其清"0"(特殊应用)。外部中断2(INT2)、外部中断3(INT3)也可以用于将单片机从掉电模式唤醒。
由于系统每个时钟对外部中断引脚采样1次,所以为了确保被检测到,输入信号应该至少维持2个时钟。如果外部中断是仅下降沿触发,要求必须在相应的引脚维持高电平至少1个时钟,而且低电平也要持续至少一个时钟,才能确保该下降沿被CPU检测到。同样,如果外部中断是上升沿、下降沿均可触发,则要求必须在相应的引脚维持低电平或高电平至少1个时钟,而且高电平或低电平也要持续至少一个时钟,这样才能确保CPU能够检测到该上升沿或下降沿。
二、中断结构图
这里,我们只需要看最上面的部分就可以。
三、中断寄存器
IE寄存器是中断总控制,IP是中断优先级控制寄存器,TCON的低4位是外部中断0和外部中断1控制位。一般情况下我们只需要操作IE和TCON寄存器即可。
四、实验电路图
实验现象是点按一下按钮,LED闪烁一次,和上面的按键输入实验效果是一样的。
五、实验程序
#include "stc15.h"
void main()
{
P11 = 0; // 初始设置P1.1为低电平 熄灭LED
IT0 = 1; // 设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
EX0 = 1; // 使能INT0中断
EA = 1; // 打开总中断
while (1);
}
//外部中断服务程序
void exint0() interrupt 0 //INT0中断入口
{
P11 = !P11; //将P1.1口取反
}
这里需要说明的是为什么外部中断服务程序是 interrupt 0。这个后面数字和中断优先级有关。从上面的中断结构图中,我们就可以看出外部中断0的优先级是最高的,所以这里是0,其他的在后面使用到再讲。
关键字:STC15W408AS 单片机 外部中断
引用地址:
6.STC15W408AS单片机外部中断
推荐阅读最新更新时间:2024-11-11 11:42
红外线遥控码单片机测试程序
以前在仕创时,总是奇怪 周工为什么可以编出一个能测试任何遥控的遥控码 和用户码的单片机程序!周工还将此程序视为宝贝,每次测试完都将那只已经烧录好的单片机拿回去!!在这几年 本人也接触单片机,尝试写出测试遥控码的程序!!但只是能测试出遥控码 并未能测试出用户码!!!所以当时周工还是相当厉害的!! 下面放出刚刚编录完成的程序,暂时只能测试遥控码!! 下载地址: http://www.51hei.com/f/hw51d.rar 测试遥控码(家里电视机待机按键遥控码): 程序是由C语言编写,单片机使用AT89C52 下面是程序: #include reg51.h #include intrins.h #
[单片机]
学习笔记 从零开始学单片机(4) D/A转化
DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。如图所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。运算放大器输出的模拟量V0为: 由上式可见,输出的模拟量 与输入的数字量 成正比,这就实现了从数字量到模拟量的转换。 一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。下面的图是DAC0832的逻辑框图和引脚排列。 CS:片选信号,低电平有效,与ILE相配合,可以对写信号WR1是否有效起到控制作用
[单片机]
MCU助推居家移动医疗微型化
随着行动装置的快速普及,近几年行动医疗成为热门话题,市场成长迅速,也引发了不少新的商业模式。根据美通社一份市场调查报告指出,行动医疗市场在2018年将达到234.9亿美元的规模,2013至2018年期间复合年增长率达到30.5%。
此外,据BCC Research预测,全球家用医疗设备规模将从2011年190亿美金成长到2016年262亿美金,其中辅助復健设备、监控装置等都会是成长的主要动力,可携式医疗设备也将会有大幅度的成长。经济部技术处科技专家赖建勋表示:「整个医疗趋势正在转变,未来会卖、会赚钱的都是微小化的医疗设备。」
当医疗设备走入家庭,医疗电子也有了不一样的发展趋势。有别于传统医疗设备大型
[医疗电子]
8051单片机特殊功能存储器SFR基础详解
8051单片机共有21个专用寄存器,现把其中部分寄存器简单介绍如下: 程序计数器(PC—Program Counter)。在实训中,我们已经知道PC是一个16位的计数器,它的作用是控制程序的执行顺序。其内容为将要执行指令的地址,寻址范围达64 KB。PC有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读写,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。因地址不在SFR(专用寄存器)之内,一般不计作专用寄存器。 累加器(ACC—Accumulator)。累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。MCS-5
[单片机]
MSP430单片机定时器A结构及其应用范例
1-简介 简介MSP430单片机定时器A结构及其应用范例。 2-定时器模块 在MSP430系列单片机中带有功能强大的定时器资源,这定时器在单片机应用系统中起到重要的作用。利用MSP430(以下称为430)单片机的定时器可以用来实现计时,延时,信号频率测量,信号触发检测,脉冲脉宽信号测量,PWM信号发生。另外通过软件编写可以用作串口的波特率发生器。后面我们将用定时器A作为一个波特率发生器,来编写一个串口例程给初学者参考。以加强初学者对定时器A的理解和应用。 在430的大系列产品中,不同的子系列产品定时器资源有所不同;在F11X,F11X1中是不带定时器B资源的。430的定时器主要分为3部分模块:看门狗定时器,定时器A,定时器
[单片机]
详细分析单片机数字滤波的算法
单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。 在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。 采用数字滤波算法克服随机干扰的误差具有以下优点: l 数字滤波无需其他的硬件成本,只用一个计算过程,可靠性高,不存在阻抗匹配问题
[单片机]
STM8S单片机开发的过程及方法
STM8S单片机开发环境由三大部分组成,包括PC机上的开发软件(集成开发软件、驱动程序等)、调试&编程器ST-LINK、目标单片机电路板。如下图所示: 1、PC机上开发软件 PC机上的软件包括:ST-LINK驱动程序、IAR集成开发环境、STM8S标准函数库、STVP烧录工具。 ST-LINK调试&编程器需要驱动程序 这个驱动程序不需要单独安装,安装STVP时会一起安装。 IAR集成开发环境 IAR集成开发环境是集程序编辑、编译、程序下载、调试等功能为一体的集成开发工具,它可以通过 ST-LINK调试&编程器向目标STM8S单片机下载程序,并进行在线调试(包括设置断点、单步执行、查看内单片机存数据等)。 针对ST
[单片机]
51单片机 使用蜂鸣器播放简单音乐
MCU型号 STC 89C52RC #include reg52.h #define RldTmr(fr) 65536 - (11059200 / 12) / (fr 1) #define FuDian(n) (n 1) / 3 //附点n分音符的换算 typedef unsigned char UCHAR; typedef unsigned int UINT; typedef unsigned long ULONG; sbit BUZZ = P1^6; UINT code noteFreq = { //中音 1-7 和高音 1-7对应的频率列表 523, 587
[单片机]