搜档网
当前位置:搜档网 › 51单片机中断总结

51单片机中断总结

89c51共5个中断。1外中断P3.2, 2外中断P3.3, 3内定时器/计数器中断0, 4内定时器/计数器中断1,串行口中断RI/TI.

中断控制有4个特殊寄存器。
1,IE(中断允许寄存器),可位行址,从高到低位:IE.7(EA),IE.6,(--),IE.5(--),IE.4(ES),IE.3(ET1),IE.2(EX1),IE.1(ET0),IE.0(EX0). EA:中断允许开关,EA=1,中断允许必要条件。 ES:串行允许控制位,ES=1,允许串行口中断。 ET1:定时器/计数器充许控制位。EX1外中断1允许控制位。ET0:定时器/计数器中断允许控制位。 EX0:外中断0允许控制位。


2,TCON(定时器/计数器和外中断控制寄存器)TCON可位行址。
TCON.7(TF1),TCON.6(TR1),TCON.5(TF0),TCON.4(TR0),TCON.3(IE1),TCON.2(IT1),TCON.1(IE0),TCON.0(IT0) TF1:T1溢出中断请求标志。当定时器/计数器溢出时,由硬件置1,请求中断。 TF0:T0溢出中断标志。TR1,TR0:定时器/计数器1,0启动控制位, IE1:外中断1中断请求标志。 IT1:外中断1触发方式控制位。IE0:外中断0中断请求标志。IT0:外中断0触发方式控制位。
定时原理:每个机器周期为12个振荡周期,每个机器周期计数器加1,当晶振频率为12MHZ,则机器周期为1us,在此情况下,若计数为100,则定时=100*1us
TMOD(定时器工作方式寄存器) 不可进行位寻址。低4位用于T0,高4位用于T1.虽有位名称,但无位地址,不可进行位操作。高4位TMOD.7(GATE),TMOD.6(C/T),TMOD.5(M1),TMOD.4(M0)用于T1 , 低4位TMOD.3(GATE),TMOD.2(C/T),TMOD.1(M1),TMOD.0(M0)用于T0 .
GATE:门控位。GATE=0时,定时器/计数器只受TCON中的TR0/TR1控制。 GATE=1时, 定时器/计数器同时受TR0/TR1和外部中断输入信号的双重控制。
C/T::计数/定时方式选择位。C/T=1为计数方式,C/T=0,为定时方式。
M1,M0:工作方式控制位。
M1=0,M0=0 工作方式0 13位计数器,N=13,2^13=8192
M1=0,M0=1 工作方式1 16位计数器,N=16,2^16=65536
M1=1,M0=0 工作方式2 两个8位计数器,初值自动装入,N=8,2^8=256
M1=1,M0=1 工作方式3 两个8位计数器,N=8,2^8=256

定时时间=(2^N-初值)*机器周期




3,SCON(串行控制寄存器)SCON可位行址。
SCON.7(SM0),SCON.6(SM1),SCON.5(SM2),SCON.4(REN),SCON.3(TB8),SCON.2(RB8),SCON.1(TI),SCON.0(RI). TI:串行口发送中断请求标志。RI:串行口接收中断请求标志。
SM0,SM1工作方式控制位。 SM2:多机通信控制位。REN=1允许接收。 TB8:方式2和3要发送的第9位数据。RB8:方式2和3要接收的第9位数据。

SM0=0,SM1=0 工作方式0 同步移位寄存器输入/输出,波特率fosc(振荡频率)/12 串行数据通过RXD进出,TXD输出时钟。 以一个12M 的晶振来计算,那么它的波特率可以达到1M

SM0=0,SM1=1 工作方式1 8位UART,波特率可变2^SMOD*溢出率/32 每次数据为10位,一个起始位(0)

,8个数数位和一个停止位。由硬件自动加入起始位和停止位,当接收数据时,停止位存在于SCON的RB8内。

SM0=1,SM1=0 工作方式2 9位UART,波特率可变2^SMOD*fosc/64 一帧数据为11位,一个起始位(0),8个数据位,一个可编程第9位及一个停止位。当SMOD=0时,波特率为晶振频率的1/64

SM0=1,SM1=1 工作方式3 9位UART,波特率可变2^SMOD*溢出率/32 一帧数据为11位,一个起始位(0),8个数据位,一个可编程第9位及一个停止位。

PCON(电源控制寄存器可位行址。其最高位SMOD 是串行口波特率的位增位。当SMOD=1时,波特率加倍。



方式1和方式3的波特率由定时器的溢出率决定。波特率=2^SMOD*溢出率/32 通常情况下,我们使用定时器的工作方式2,即比率发生器,自动重载计数常数。设计初值为COUNT,单片机的机械周期为T,振荡周期为t0,则定时间为:
(256-COUNT)*T=(256-COUNT)*12*t0=(256-COUNT)*12*(1/fosc)=(256-COUNT)*12*/fosc 溢出率为溢出周期的倒数,溢出率=fosc/(256-COUNT)*12.

波特率=2^SMOD*溢出率/32=(fosc/(256-COUNT)*12.)/32=2^SMOD*fosc/12*32(256-COUNT)


SM2:多机通信控制位。
多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第9位数据是0还是1,都会将数据送入SBUF,并发出中断申请。工作于方式0时,SM2必须为0。

TB8:发送接收数据位8。在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。








1364010699

4.IP(中断优先级控制寄存器)可位行址。

相关主题