51单片机中断号对应的中断类型

中断源 默认中断级别 外部中断0 INT0 最高interrupt 0 定时器0中断 T0 1interrupt 1 外部中断1 INT1 2interrupt 2 定时器1中断 T1 3interrupt 3 串口中断 TX/RX 4interrupt 4

与中断系统相关的特殊寄存器:

中断寄存器就是用于存贮中断状态的,包含是否启用中断或者是否发生中断。

1)中断允许控制寄存器(IE)------------------ 控制各中断的开放和屏蔽

2)中断优先级控制寄存器(IP)----------------设置各中断的优先级

3)定时器/计数器控制寄存器(TCON)------定时器和外部中断的控制

4)串行口控制寄存器(SCON)----------------串行中断的控制

中断类型分为三类:

1)T0、T1是2个定时器/计数器中断,由片内定时器提供;

2)INT0、INT1是2个外部中断,由引脚P3.2和P3.2提供;

3)RX、TX为串行口中断所用,由片内串口提供。

串口初始化

void uart_init(void)

{

T2CON=0x30; //用定时器2做串口0的波特率发生器

RCAP2H=(65536-22118400/baud_rate/32)/256;

RCAP2L=(65536-22118400/baud_rate/32)%256;

SCON=0x50; //串口0工作在模式3 M0=1 SM1=1 在11位异步收发模式 接收允许

TR2=1; //开启定时器2

ES=0; //关闭串口中断

EA=1; //打开总中断

}

void UART0(void) interrupt 4

{

...

}

11.0592M晶振下 baut=f/{32*[65536-(RCAP2H,RCAP2L)]}

fee0--1200 ff70--2400 ffb8--4800 ffdc---9600 ffee--19200 fff7--38400 fffa--57600 fffd--115200

22.1184M晶振下

fdc0--1200 fee0--2400 ff70--4800 ffb8---9600 ffdc---19200 ffee--38400 fff4--57600 fffa--115200

定时器初始化

void Timer_init(void) //定时器0定时10ms

{

TMOD|=0x01; //T0定时 16位 TR0控制

TH0=0xb8;

TL0=0x00;

TR0=1; //开启定时器

ET0=1; //T0中断开

EA=1; //打开总中断

}

void time_0(void) interrupt 1

{

TL0=0x00;

TH0=0xb8;

}

定时器计算方法:

22118400M/12=1843200 每秒1843200次

10ms=0.01s = 18432次

65536-18432= 47104 = B800


浙江省杭州市西湖区留下街道
口袋妖怪日月臭臭泥阿罗拉形态解析详解