单片机中断源
一、一般而言,MCS-51单片机有5个中断源,分别是:
1、 外部中断0;
2、 外部中断1;
3、 定时/计数器0中断;
4、 定时/计数器1中断;
5、 串行口发送或接受中断;
1)、用到外部中断时:
EX0 = 1;//中断允许开关
IT0 = 0;//下降沿触发方式
EA = 1;//总开关
2)、用到定时/计数器中断时
ET0 = 1;//启动计数器中断开关
EA = 1;//总开关
/*
定时器的核心在这
*/
TMOD = 0x09;
TH0 = 0x0D8;
TL0 = 0x0F0;
TR0 = 1;//启动定时器
3)、用到串口中断时
EX1 = 1;//外部中断1分开关
IT1 = 1;//触发方式:下降沿
PX1 = 1;//设置为高优先级
//步骤一:波特率配置,由定时器1的益处率决定
TMOD = 0x20;//0010 0000 = 0x20,定时器1设置为工作方式2,8位自动装载的定时器
TH1 = 0xF4;//初值
TL1 = 0xF4;//波特率4800
ET1 = 1;//定时器1允许分开关
TR1 = 1;//启动定时器
//设置串口工作方式
SCON = 0x50;//等同于TMOD,方式一,允许接收 0101 0000
//PCON = 0x00;
//TI = 0;发送中断标志位
//RI = 0;接收中断标志位
ES = 1;//IE寄存器第四位,串口中断允许位
EA = 1;//外部中断总开关
Q:为什么叫外部中断呢???
A;因为引起CPU中断的中断源信号来自单片机的外部。
外部中断0的中断源信号从51单片机的P3.2引脚进入单片机
外部中断1的中断源信号从51单片机的P3.3引脚进入单片机
引起中断的有:1、低电平信号
2、从高电平变化到低电平的下降沿信号
所以这些中断要被响应,就要通过设置一系列的寄存器,那么寄存器就来了,,,,
二、
1、中断允许寄存器IE Time Interrupt
2、定时器控制寄存器TCON 8位寄存器
3、中断优先级寄存器IP(不常用)
4、定时器方式寄存器TMOD
5、串行口控制寄存器SCON
中断允许寄存器IE
(EX中断 、ET定时器/计数器)
位7 | 位6 | 位5 | 位4 | 位3 | 位2 | 位1 | 位0 |
EA | ES | ET1 | EX1 | ET0 | EX0 |
EX0: 中断0中断允许位。1为允许,0否则相反。
EX1: 中断1中断允许位。1为允许,0否则相反。
ET0:定时器/计数器0中断允许位。1为允许,0否则相反。
ET1:定时器/计数器1中断允许位。1为允许,0否则相反。
ES:串口中断允许位
EA:总开关
(如果定时器工作在中断方式下,则当定时器的当前值计满溢出时,就会触发定时器溢出中断)
器控制寄存器TCON(低4位用作外部中断,高4位用作定时)
IT1:外部中断1触发方式。1为低电平,0为下降沿信号。
IE0:外部中断0请求标志位。IE0=1,有中断请求,0则没有。
IE1:外部中断1请求标志位。IE0=1,有中断请求,0则没有。
TR0:定时器/计数器0启动停止。1为启动,0为停止。
TR1:定时器/计数器1启动停止。1为启动,0为停止。
TF0:定时器/计数器标志位。1为溢出,0则没有溢出。
TF1:定时器/计数器标志位。1为溢出,0则没有溢出。
中断优先级寄存器IP(不常用)
PX0:外部中断0
PX1:外部中断1
PT0:定时器/计数器0中断
PT1:定时器/计数器1中断
PS:串口中断
定时器方式寄存器TMOD
位7 位6 位5 位4 位3 位2 位1 位0
GATE C/T M1 M0 GATE C/T M1 M0
T1方式 T0方式
工作方式选择表
M1 M0 方式 说明
0 0 0 13位定时器/计数器,TL存放低5位,TH存放高八位
0 1 1 16位定时器/计数器
1 0 2 初值自动装载的8位定时器/计数器
1 1 3 (不重要)
GATE:门控制位,相当于总开关
C/T:0定时器 1计数器
5、串行口控制寄存器SCON
位7 位6 位5 位4 位3 位2 位1 位0
SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0 SM 1 组合选择位
串行口方式选择
SM0 SM1 方式 说明 波特率
0 0 0 8位全部数据发送 fosc/12
0 1 1 10位数据发送,包括起始位,停止位 可变
1 0 2 11位数据发送,包括起始位,停止位 ,校验位 fosc/64
1 1 3 同方式2
SM2 多机通信使能位
REN:串口数据接收允许位 1允许,0禁止。该位有软件置位或清0
TB8:在方式2和方式3中,这位发送的是第9位,就是校验位。
RB8:在方式2和方式3中,这位发送的是第9位,就是校验位。
TI:发送中断标志位 ,用完时要用软件清0
RI:接受中断标志位,用完时要用软件清0