发新帖我要提问
12
返回列表
打印

单片机的中断系统

[复制链接]
楼主: elecintop
手机看帖
扫描二维码
随时随地手机跟帖
21
elecintop|  楼主 | 2015-5-18 22:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
SMo,SMl:
串行口工作方式控制位。
00--方式0;01--方式1;
10--方式2;11--方式3。
SM2:
仅用于方式2和方式3的多机通讯控制位
发送机SM2=1(要求程控设置)。
当为方式2或方式3时:
接收机 SM2=1时,若RB8=1,可引起串行接收中断;若RB8=0,不
引起串行接收中断。SM2=0时,若RB8=1,可引起串行接收中断;若
RB8=0,亦可引起串行接收中断。
REN:
串行接收允许位。
0--禁止接收;1--允许接收。
TB8:
在方式2,3中,TB8是发送机要发送的第9位数据。
RB8:
在方式2,3中,RB8是接收机接收到的第9位数据,该数据正好来自发
送机的TB8。
TI:
发送中断标志位。发送前必须用软件清零,发送过程中TI保持零电平,
发送完一帧数据后,由硬件自动置1。如要再发送,必须用软件再清零。
RI:
接收中断标志位。接收前,必须用软件清零,接收过程中RI保持零电
平,接收完一帧数据后,由片内硬件自动置1。如要再接收,必须用软件
再清零。

使用特权

评论回复
22
elecintop|  楼主 | 2015-5-18 22:44 | 只看该作者
电源控制寄存器PCON

PCON的字节地址为87H,无位地址,PCON的格式如图六所示。需指出的是,对80C31单片机而言,PCON还有几位有效控制位。

SMOD:波特率加倍位。在计算串行方式1,2,3的波特率时;0---不加倍;1---加倍。

使用特权

评论回复
23
elecintop|  楼主 | 2015-5-18 22:44 | 只看该作者
串行中断的应用特点:

8031单片机的串行I/O端口是一个中断源,有两个中断标志RI和TI,RI用于接收,TI用于发送。
串行端口无论在何种工作方式下,发送/接收前都必须对TI/RI清零。当一帧数据发送/接收完后,TI/RI自动置1,如要再发送/接收,必须先用软件将其清除。
在串行中断被打开的条件下,对方式0和方式1来说,一帧数据发送/接收完后,除置位TI/RI外,还会引起串行中断请求,并执行串行中侧目务程序。但对方式2和方式3的接收机而言,还要视SM2和RB8的状态,才可确定RI是否被置位以及串行中断的开放:
SM2 RB8 接收机中断标志与中断状态
0 1 激活RI,引起中断
1 0 不激活RI,不引起中断
1 1 激活RI,引起中断
单片机正是利用方式2,3的这一特点,实现多机间的通信。串行端口的常用应用方法见相关章节。

使用特权

评论回复
24
elecintop|  楼主 | 2015-5-18 22:45 | 只看该作者
波特率的确定:

对方式0来说,波特率已固定成fosc/12,随着外部晶振的频率不同,波特率亦不相同。常用的fosc有12MHz和6MHz,所以波特率相应为1000×103和500×103位/s。在此方式下,数据将自动地按固定的波特率发送/接收,完全不用设置。
对方式2而言,波特率的计算式为2SMOD·fosc/64。当SMOD=0时,波特率为fm/64;当SMOD=1时,波特率为fosc/32。在此方式下,程控设置SMOD位的状态后,波特率就确定了,不需要再作其它设置。
对方式1和方式3来说,波特率的计算式为2SMOD/32×T1溢出率,根据SMOD状态位的不同,波特率有Tl/32溢出率和T1/16溢出率两种。由于T1溢出率的设置是方便的,因而波特率的选择将十分灵活。

使用特权

评论回复
25
elecintop|  楼主 | 2015-5-18 22:46 | 只看该作者
前已叙及,定时器Tl有4种工作方式,为了得到其溢出率,而又不必进入中断服务程序,往往使T1设置在工作方式2的运行状态,也就是8位自动加入时间常数的方式。由于在这种方式下,T1的溢出率(次/秒)计算式可表达成:

使用特权

评论回复
26
elecintop|  楼主 | 2015-5-18 22:46 | 只看该作者
下面一段主程序和中断服务程序,是利用串行方式l从数据00H开始连续不断增大地串行发送一片数据的程序例。设单片机晶振的频率为6MHZ,波特率为1200位/秒。

ORG 2000H
;1200位/秒的定时器初值

MOV TL1,#0F3H

MOV TH1,#0F3H
;使SMOD=0

MOV PCON,#00H
;T1方式2

MOV TMOD,#20H

SETB EA

CLR ET1
;关闭T1中断

SETB ES
;开串行中断

SETB TR1
;开T1定时

MOV SCON,#40H
;串行方式1

CLR A

MOV SBUF,A
;串行发送

JNB T1,$
;等待发送完

CLR T1,
;清标志

SJMP $

ORG 0023H
;串行中断入口地址

MOV SBUF,A
;连续发送

JNB T1,$

INC A

CLR T1

RET1
;中断返回

使用特权

评论回复
27
xcydwwq| | 2015-5-19 09:48 | 只看该作者
非常详尽啊!不错

使用特权

评论回复
28
旧影子| | 2015-6-16 15:26 | 只看该作者
这是51的东西,都已经很老了。还是支持下吧。

使用特权

评论回复
29
白丁野老| | 2015-6-17 07:28 | 只看该作者
中断,说白了就是用得着的时候快速来,用不着了赶紧走,具有优先级别。

使用特权

评论回复
30
塞北旅途| | 2015-6-25 11:39 | 只看该作者
51的中断是所有MCU的基础,弄懂这个就所有都好了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则