MCS接口技术----定时/计数,中断

2024-01-01 06:56:19

目录

一.中断系统相关寄存器

1.51单片机中断系统的总体结构:

2.中断源的中断级别(由高到低):

3.与中断有关的四个寄存器:

(1)TCON---定时控制寄存器

(2)IE---中断允许控制寄存器

(3)IP---中断优先级控制寄存器

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

二.定时/计数相关寄存器

1.TMOD---控制寄存器

2.TCON----定时器控制寄存器(支持位寻址)

三.并行接口

四.串行接口

1.串行通信的分类

3.串行通信标准

(1)RS-232C接口

(2)RS-232与RS-423接口,RS-422和RS-485接口对比

4.MCS-51串口控制

(1)数据缓冲器

(2)电源控制寄存器PCON

(3)SCON串行口控制寄存器


一.中断系统相关寄存器

1.51单片机中断系统的总体结构:

2.中断源的中断级别(由高到低):

INT0---外部中断0,中断入口地址:0003H,P3.2提供,有电平和脉冲两种方式

T0---定时器/计数器0中断,中断入口地址:000BH,由T0定时溢出提供

INT1---外部中断1,中断入口地址:0013H,P3.3提供,有电平和脉冲两种方式

T1---定时器/计数器1中断,中断入口地址:001BH,由T1定时溢出提供

TX/RX---串行口中断,中断入口地址:0023H,由串行口提供,串行通信接收和发送都可产生中断

3.与中断有关的四个寄存器:

(1)TCON---定时控制寄存器

TCON寄存器是一个8位的特殊功能寄存器,用于控制定时器/计数器和外部中断。

TCON即以下这部分:

TCON的结构(8FH-88H):

TF1? :TF1=1表示T1有中断产生。(Timer Flag,定时器标志位

TR1? :TR1=1表示T1开始运行。(单片机中T0引脚,需要高低电平的驱动)

TF0? :TF0=1表示T0有中断产生。

TR0? :TR0=1表示T0开始运行。(单片机中T1引脚,需要高低电平的驱动)

IE1?? :IE1=1表示INT1有中断产生。

IT1?? :IT1=1表示INT1为下降沿触发,IT1=0表示INT1为低电平触发。

IE0?? :IE0=1表示INT0有中断产生。

IT0?? :IT0=1表示INT0为下降沿(负跳变)触发,IT0=0表示INT0为低电平触发。

针对外部中断(IE/IT):

IE0/IE1:外部中断请求标志位

当INT0(INT1)引脚出现有效的请求信号,此位由单片机自动置1,

CPU开始响应,处理中断,而当入中断程序后由单片机自动置0.

IT0/IT1:外部中断触发方式控制位????????? //选择有效信号

IT0/IT1=1:脉冲触发方式,下降沿有效。

IT0/IT1=0:电平触发方式,低电平有效。

(2)IE---中断允许控制寄存器

IE寄存器是一个用于控制各种中断的使能和禁止的特殊功能寄存器,包含了一系列位,每个位对应一个特定的中断源,通过设置这些位,可以控制相应中断的触发。

注:支持位寻址

IE寄存器即这一部分:

IE寄存器的结构(AFH-A8H):

EA????:整体中断允许位;EA=1允许中断。

ES????:串行中断允许位;ES=1允许中断。

ET1???:T1中断允许位;ET1=1允许中断。

EX1???:INT1中断允许位;EX1=1允许中断。

ET0???:T0中断允许位;ET0=1允许中断。

EX0???:INT0中断允许位;EX0=1允许中断。

注:D6,D5为无关位

(3)IP---中断优先级控制寄存器

IP寄存器用于控制中断的优先级,支持位寻址,而在默认情况下,中断优先级由高到低为:X0 > T0 > X1 > T1 > S

X0表示外部中断源0的优先级位,T0表示定时器0中断的优先级位,X1表示外部中断源1的优先级位,T1表示定时器1中断的优先级位,而S则表示串行通信中断的优先级位

即中断系统的这一部分:

IP寄存器的结构(B8H-BFH):

PS——串行口中断优先级控制位。

PS=1,串行口中断定义为高优先级中断。

PS=0,串行口中断定义为低优先级中断。

PT1——定时器/计数器1中断优先级控制位。

PT1=1,定时器/计数器1中断定义为高优先级中断。

PT1=0,定时器/计数器1中断定义为低优先级中断。

PX1——外部中断1中断优先级控制位。

PX1=1,外部中断1定义为高优先级中断。

PX1=0,外部中断1定义为低优先级中断。

PT0——定时器/计数器0中断优先级控制位。

PT0=1,定时器/计数器0中断定义为高优先级中断。

PT0=0,定时器/计数器0中断定义为低优先级中断。

PX0——外部中断0中断优先级控制位。

PX0=1,外部中断0定义为高优先级中断。

PX0=0,外部中断0定义为低优先级中断。

注:D7,D6,D5为无关位。

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

SCON寄存器的结构(98H~9FH):

?

1.SM0、SM1:串行口工作方式控制位

?

2.SM2:多机通信控制位

多机通信工作于方式2和方式3,故SM2位主要用于方式2和方式3。

①在接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入sbuf,且置位RI发出中断申请,否则会将接受到的数据放弃。

②当SM2=0时,就不管第9位数据是0还是1,都得将数据送入sbuf,并发出中断申请。即此时RI是否置位由SM2和RB8共同决定。

工作于方式0时,SM2必须为0。

3.REN:允许接收位

REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。

4.TB8:发送接收数据位8

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

5.RB8:接收数据位8

在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。

6.TI:发送中断标志位

可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件置0。

7.RI:接收中断标志位

可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。

注:在串口中断处理时,TIRI都需要软件置0,硬件置位后不可能自动清0,此外,在进行缓冲区操作时,需要ES=0,以防止中断出现。

二.定时/计数相关寄存器

定时/计数器的逻辑结构:

??

1.TMOD---控制寄存器

TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。

??

D0~D3为T0定时/计数器的设置,D4~D7为T1定时/计数器的设置?。

GATE:为门控位:

GATE=0时,只要在编写程序时,使TCON中的TRO或TR1为1,就可以启动定时器/计数器工作。

GATE=1时,不仅要在编写程序时,使TCON中的TRO或TR1为1,且需要外部引脚也为高电平,才能?工作。

C/T?:定时/计数模式切换,C/T=0时为定时模式,C/T=1时为计数模式。

M1,M0:用来选择定时计/计数器的工作方式,一般使用都是采用16位的计时计数器。

??

想要详细了解工作方式:http://t.csdnimg.cn/904wt

2.TCON----定时器控制寄存器(支持位寻址)

??

TR1:1启动T1,0停止T1

TR0:1启动T0,0停止T0

其余6位:与中断有关

三.并行接口

MCS-51单片机有4个8位并行接口,如果想深入学习可以看:

http://t.csdnimg.cn/seBQm

四.串行接口

1.串行通信的分类

(1)同步通信

?

(2)异步通信

?

2.串行通信的制式

?

3.串行通信标准

(1)RS-232C接口

?

PC常用的RS-232C接口信号定义(9针)

?

PC常用的RS-232C接口信号定义(25针)

?

(2)RS-232与RS-423接口,RS-422和RS-485接口对比

4.MCS-51串口控制

MCS-51串口结构

MCS-51提供一个全双工串口,可以转换为标准的RS-232串口。

(1)数据缓冲器

发送SBUF和接收SBUF共用一个地址99H。???????? ??????

?发送SBUF存放待发送的8位数据,写入SBUF将同时启动发送。??????

????????? 发送指令:?????? MOV????? ? SBUF,A

?接收SBUF存放已接收成功的8位数据,供CPU读取。

????????? 读取串行口接收数据指令:MOV? A,SBUF

(2)电源控制寄存器PCON

电源管理寄存器在特殊功能寄存器中,字节地址为 87H,不能位寻址,PCON用来管理单片机的电源部分,包括上电复位检测、掉电模式、空闲模式等。单片机复位时 PCON 全部被清0。

(3)SCON串行口控制寄存器

在中断控制节已经介绍:

D7、D6:SM0、SM1,工作方式,有四种。

D5:SM2,1多机通信,0双机

D4:REN,1允许接收

D3:TB8,发送的第9位数据

D2:RB8,接收的第9位数据

D1:TI,发送中断标志

D0:RI,接收中断标志

具体介绍四种工作方式:

方式0( SM0 SM1 :0 0):

串行口的工作方式0为移位寄存器I/O方式,可外接移位寄存器,一扩展I/O口,也可外接同步I/O设备。

发送操作:当执行一条“MOV SBUF,A”指令时,启动发送操作,由TXD输出移位脉冲,由RXD串行SBUF中的数据。发送完8位数据后自动置TI=1.请求中断。要继续发送时,TI必须有指令清零。

接收操作:REN是串行口接收允许控制位。REN=0时禁止接收;REN=1时允许接收。当软件将REN置“1”时,即开始从RXD端口以fosc/12波特率输入数据,当接收到8位数据时,将中断标志RI置“1”。再次接收数据之前,必须用软件将RI清0。

方式1( SM0 SM1 :0 1):

串行口为10位通用异步接口。发送或接收一帧数据信息为10位,包括1位起始位“0”、8位数据位、1位停止位“1”。

发送数据:数据从TXD端口输出,当数据写入发送缓冲器SBUF时,就启动发送器发送。发送完一帧数据后,置中断标志TI=1,申请中断,通知CPU可以发送下一个数据了。

接收数据:首先使REN=1(允许接收数据),串行口从RXD接收数据,当采样到1至0跳变时,确认是起始位“0”,就开始接收一帧数据,当接收完一帧数据时,置中断标志RI=1,申请中断,通知CPU从SBUF取走接收到的数据 。

方式2 ( SM0 SM1 :1 0) :

串行口为11位异步通信接口。发送或接收一帧信息包括1位起始位“0”、8位数据位、1位可编程位、1位停止位“1”。

发送数据:发送前,先根据通信协议由软件设置TB8为“奇偶校验位”或“数据标识位”,然后将要发送的数据写入SBUF,即能启动发送器。发送过程是由执行任何一条以SBUF为目的寄存器的指令而启动的,把8位数据装入SBUF,同时还把TB8装到发送移位寄存器的第9位上,然后从TXD(P3.1)端口输出一帧数据。

接收数据:先置REN=1,使串行口为允许接收状态,同时还要将RI清“0”。然后再根据SM2的状态和所接收到的RB8的状态决定此串行口在信息到来后是否置RI=1,并申请中断,通知CPU接收数据。当SM2=0时,不管RB8为“0”还是为“1”,都置RI=1,此串行口将接收发送来的信息。当SM2=1时,且RB8=1,表示在多机通信情况下,接收的信息为“地址帧”, 此时置RI=1,串行口将接收发来的地址。当SM2=1时,且RB8=0,表示在多机通信情况下,接收的信息为“数据帧”, 但不是发给本从机的,此时RI不置为“1”,因而SBUF中接收的数据帧将丢失。

(4)方式3 ( SM0 SM1 :1 1) :

方式3为波特率可变的11位异步通信方式,除了波特率有所区别之外,其余方式都与方式2相同。

文章来源:https://blog.csdn.net/weixin_69884785/article/details/135316478
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。