51单片机中断详解(中)
来源:互联网 发布:各类数据出售 编辑:程序博客网 时间:2024/05/22 04:53
一.外部中断相关寄存器
1.定时器/计数器控制寄存器控制寄存器(TCON)
IT0:外部中断0触发方式控制位
当IT0=0时,为电平触发方式(低电平有效)
当IT0=1时,为边沿触发方式(下降沿有效)
IT1:外部中断1触发方式控制位
当IT1=0时,为电平触发方式(低电平有效)
当IT1=1时,为边沿触发方式(下降沿有效)
2.中断允许控制寄存器(IE)
EX0:外部中断0允许位;
EX1:外部中断1允许位;
EA :CPU中断允许(总允许)位。
二.外部中断的处理过程
1、设置中断触发方式,即IT0=1或0,IT1=1或0
2、开对应的外部中断,即EX0=1或EX1=1;
3、开总中断,即EA=1;
4、等待外部设备产生中断请求,即通过P3.2,P.3.3口连接外部设备产生中断
5、中断响应,执行中断服务函数
三.程序编写
要求:通过两位按键连接外部中断0和1,设定外部中断0为下降沿触发方式,外部中断1为低电平触发方式,按键产生中断使数字加减,用一位共阳极数码管来显示数值。
目的:感受外部中断对程序的影响,体会低电平触发和下降沿触发的区别。
#include<reg51.h>#define uint unsigned int #define uchar unsigned char uchar code dat[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uint num;void main(){ EA=1; //开总中断 IT0=1; //下降沿触发 IT1=0; //低电平触发 EX0=1; //外部中断0允许 EX1=1; //外部中断1允许 while(1) { P0=dat[num%10]; }}void plus() interrupt 0 //外部中断0{ EX0=0; num++; EX0=1;}void minus() interrupt 2 //外部中断1{ EX1=0; num--; EX1=1;}
2 0
- 51单片机中断详解(中)
- 51单片机中断详解(上)
- 51单片机中断详解(下)
- 单片机中断程序详解(转)
- 51单片机STC89C52 定时器(中断方式)
- 51单片机STC89C52 串口接收(中断)
- 51单片机中断实验(一)
- 51单片机(四)——中断
- 51单片机——中断(1)
- 51单片机的中断系统(一)
- 51单片机的中断系统(二)
- 51单片机的中断系统(三)
- 51单片机的中断系统(四)
- 51单片机的中断系统(五)
- 51单片机的中断系统(六)
- 51单片机中断系统(定时器、计数器)
- 51单片机中断问题
- 51单片机中断
- Apache Curator入门实战
- 【网络】WebService到底是什么?
- swift变量、常量
- RedHat6.5 puppet配置(一)-准备工作
- Android-上传图片(二)_HttpClient
- 51单片机中断详解(中)
- 【Tech-so】So文件静态分析Step by Step(二) --------读懂IDA Pro
- 详解SQL Server数据修复命令DBCC的使用
- MPI学习-规约函数MPI_Allreduce
- 坐在马桶上看算法:快速排序
- HDU2017字符串统计
- 程序员必备的600个英语词汇(2)
- Spring使用JdbcTemplate实现对数据库操作 (内部类定义RowMapper)
- Qt之界面实现技巧