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

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值