定时器,串行口以及中断系统,
中断系统的基本概念:CPU正在处理某任务的过程中,由于计算机内外原因,发生的某一事件请求CPU及时处理于是CPU暂停当前的工作,自动转去处理所发生的事情。处理玩事件之后,再返回原来被终止的断点处继续工作,这样的过程称为中断。
相关概念:
中断系统:实现中断功能的硬件系统和软件系统统称为中断系统
中断源:产生中断请求源称为中断源
中断请求:中断源向 CPU发出中断的处理请求,称为中断请求,或者中断申请。
中断响应过程:CPU终止当前的事物,处理中断事件,称为中断响应过程
中断服务:对事件的整个处理过程,称为中断服务
中断返回:中断处理完毕,再返回到原来中止的地方,称为中断返回。
中断的一般功能:
实现中断以及返回:硬件自动完成,把断点处PC值压入堆栈保存,称为保护断点。 保护现场,恢复现场“RETI”。
实现优先权排队:计算机按照中断源级别高低逐次相应的过程称为优先权排队。
实现中断的嵌套
实现中断的撤除
调用中断服务程序与调用子程序的区别: 1事先安排和随机发生 2软件调用和硬件自动完成
MCS—51中断系统结构:
有5个中断源分别为:
2个外部中断请求:外部中断0,外部中断1,分别由P3.2,P3.3引脚引入,低电平有效,脉冲下降沿有效可选。
2个片内定时器/计数器溢出中断请求:定时器/计数器0 溢出中断(T0),定时器/计数器1 溢出中断(T1),分别在T0,T1溢出时发出中断申请。
串行终端(TXD/RXD):一次串行发送/接收完成后,发出中断申请。
与中断源有关的特殊功能寄存器有4个,分别为中断源寄存器(TCON,SCON),中断允许控制IE,中断优先级控制IP。
1 中断允许控制 所有中断,以及某一个中断源开放和屏蔽室由中断允许寄存器IE控制(A8H位地址A8H~AFH)
AFH
|
|
|
ACH
|
ABH
|
AAH
| A9H |
A8H
|
EA(IE.7)
|
|
|
ES(IE.4)
|
ET1(IE.3)
|
EX1(IE.2)
|
ET0(IE.1)
|
EX0(IE.0)
|
ET0, ET1: 定时/计数器0,1允许位。为1时,允许定时/计数器0,1中断。
ES:串行口中断允许位。位1时,允许串行口中断。
EA:总中断,为1时,开放中断。
2中断优先级的控制,有两个中断优先级,可以实现二级中断服务嵌套。由中断优先级IP规定。(B8H)
|
|
|
BCH
|
BBH
|
BAH
|
B9H
|
B8H
|
|
|
|
PS(IP.4)
|
PT1(IP.3)
|
PX1(IP.2)
|
PT0(IP.1)
|
PX0(IP.0)
|
TCON
8FH
|
8DH
|
8BH
|
8AH
|
89H
|
88H
| ||
TF1
|
|
TF0
|
|
IE1
|
IT1
|
IE0
|
IT0
|
外部中断1的中断请求标志(IE1,IE0)。如果检测到外部中断引脚P3.3上有效的中断请求,由硬件将IE1,IE0置1.如果CPU响应中断请求,硬件将IE1,IE0清零。
外部中断中断触发方式(IT1,IT0) 为1时,延边触发方式。为0时,电平触发方式。
SCON
|
|
|
|
|
|
99H
|
98H
|
|
|
|
|
|
|
TI
|
RI
|
中断处理过程: 中断申请,中断响应,中断处理,中断返回。
中断请求:中断源向CPU发出请求中断的信号。可以为电平信号,也可以为脉冲信号。
中断响应:CPU对中断源请求的回答。 条件:中断源发出中断申请,中断总的允许为EA=1,申请中断源允许位为1.
中断入口地址和终端输入引脚是一一对应。
中断源
|
中断矢量地址
|
外部中断0(INT0)
| 0003H |
定时器T0中断
|
000BH
|
外部中断1(INT1)
|
0013H
|
定时器T1中断
|
001BH
|
串行口中断 |
0023H
|
中断请求的撤除:定时器0或者1溢出中断,响应中断之后,请求自动撤除。
边沿激活的外部中断,CPU响应之后,硬件自动清除有关的中断请求。
串行口中断,CPU相应之后,靠软件清除标志。
中断系统程序包含中断控制程序,中断服务程序。
1中断初始化程序(中断控制程序):TCON,SCON,IE,IP
需要完成以下操作: 1开中断 2某一中断请求 3中断的优先级别 4外部中断请求,要设定触发方式
方式:用位操作完成,用赋值指令完成
定时器0由专用寄存器TH0,TL0组成。 定时器1由专用寄存器TH1,TL1组成。
定时计数器工作在计数器方式时,外部输入信号的频率不超过晶振频率的1/24。 12MHZ时 脉冲的周期大于2微秒。
定时/计数器的工作方式寄存器和控制寄存器:TMOD,TCON(之前有)
TMOD 字节地址89H 只能对它进行字节寻址
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
GATE
|
C/T
|
M1
|
M0
|
GATE
|
C/T
|
M1
|
M0
|
C/T 定时器还是计数器。1计数器,0定时器。
M1,M0定时/计数器工作方式选择位。对应关系如下
M1
|
M0
|
工作方式
|
功能说明
|
0
| 0 | 方式0 |
13位计数器
|
0
|
1
|
方式1
|
16位计数器
|
1
|
0
|
方式2
|
自动重装8位计数器
|
1
|
1
| 方式3 |
定时器T0分成两个8位计数器,T1停止工作
|
系统复位时,寄存器TMOD的所有位被清零。
TCON(剩下的两位)
|
8EH
|
|
8CH
|
|
|
|
|
|
TR1
|
|
TR1
|
|
|
|
|
定时计数器的四种工作方式:
初始化步骤: 1对工作方式TMOD赋值 2定时器计数器TH,TL赋值 3开放定时器中断 对IE赋值允许中断 4使TCON寄存器TR置位或者加到引脚外部信号电平启动。
方式0的用法:方式零工作下,计数器由13位由THX8位做高8位,TLX的低5位作为低5位组成。
定时时间=(2^13-定时器初值)X机器周期
方式1的用法:方式零工作下,计数器由16位由THX8位做高8位,TLX的低8位作为低5位组成。
定时时间=(2^16-定时器初值)X机器周期
方法2的用法:TLX作为计数器进行计数 THX作为预置数 (2^8-定时器初值)X机器周期
方式3的用法:工作方式3只能用于定时器T0,TO在工作方式3时,TH0,TL0可以被拆成两个独立的8位计数器。
tl0可以做定时器,也可以做计数器。它占用T0的所有控制位:GATE,C/T,TR0,INT0,TF0除了它的位数8之外,功能与操作方式0或者1完全相同。TH0只能作为定时器,占用了T1的控制位TR1和TF1而且TH0的启动和关闭受TR1的控制。
定时计数器T1没有工作模式3,无法产生中断。定时计数器1一般用作串行口波特率发生器其计数溢出之间传送给串行口控制数据的传输。如果停止它运行,只要把它设置成工作方式3即可。 PPT 99页的练习题
单片机片内串行口:
串行通信的基本知识:完成叫算计外部设备或计算机与计算机之间的信息交换。
串行通信是将数据字节分成一位一位的形式在一条传输线上逐个传送。
同步通信和异步通信:异步通信发送和接收使用各自的钟控数据的发送和接收过程。使双方收发协调,要求发送字节和接受字节的时钟频率尽可能一致。以字符构成帧为单位进行传输,字符间隙任意。字符之间是异步的,但是字符内的各位是同步的。
约定字符格式规定:起始位(0),数据位(5,7,8位),校验位(可选),停止位(1)
波特率对传送速率的规定:波特率是衡量传送速率的指标,他要求发送站与接收站以相同的数据传送速率工作。单位(位/秒)
同步通信:建立发送方式中接受和接收方时钟直接控制,是双方达到完全同步。字符之间不留缝隙,既保持位同步关系,也保持字符同步关系。
单工通信和双工通信 串并转化与设备同步
串并转化:发端并—>格式转化,添加标示位和校验位,一帧结束,设置结束标志,申请中断。
接收端—>检查错误,去掉标志位,保存有效数据,设置结束标志,申请中断。
设备同步:双方统一的编码方式,使用相同的传输速率。
校验方法:奇偶校验,代码和校验,CRC校验
单片机串行口的结构以及工作原理
存在独立的串行数据缓冲区SBUF 2个SFR SCON PCON
发送 :MOV SBUF, A 启动发送过程通过TxD(P3.1)引脚发送数据完成后TI置1
接收 :MOV A,SUBF RI置0允许接收REN=1时,启动接收过程,接收完毕后,使接收中断RI置1。
SCON(98H)
9FH
|
9EH
|
9DH
|
9CH
|
9BH
|
9AH
|
99H
|
98H
|
SM0
|
SM1
|
SM2
|
REN
|
TB8
|
RB8
|
TI
|
RI
|
RI:接收中断标志 硬件TI置1,向CPU发出硬件申请。必须软件清零,取消此中断。
TI:发送中断标志 同上。
RB8:接收数据第9位 SM2=0时,作为停止位。
TB8:发送数据第9位 可以用作数据的奇偶校验位,在多机通讯中,作为地址帧/数据帧的标志位。
REN:接受允许1为允许 软件置1启动串行口接收数据
SM2:多机通讯1为允许 方式2 3可以利用收到的RB8控制是否激活RI。RB8为0时,数据帧,不激活RI,收到的信息丢弃。RB8为1时,表示地址帧,进入SBUF激活RI。SM2为0时,无论RB8 0还是1激活RI。方式0时,SM2必须为0,方式1时,SM2=1则只有接收到有效停止位时RI置1.
SM1 SM0:工作方式控制
SM0 SM1
|
工作方式
|
说明
|
波特率
|
0 0
|
方式0
|
同步移位寄存器
|
f/12
|
0 1
|
方式1
|
10位异步收发
| 定时器控制 |
1 0
|
方式2
|
11位异步收发
|
f/32 f/64
|
1 1
|
方式3
|
11位异步收发
| 定时器控制 |
串行口的4种工作方式:
方式0:以8位数据为一帧,不设起始位和停止位,先发送最低位。每送出去8位TI自动置1,再次发送需要软件清零TI
方式1:以10位为一帧传送,1起始位8个数据位,1停止位。
方式1:以10位为一帧传送,1起始位8个数据位,1停止位。
方式2,3:以11位为一帧传输,1起始位8数据位1第九位1停止位。 附加第九位有软件置1,0。发送时TB8接收时RB8。
PPT156例题。
方式0波特率f/12
方式2波特率fX2^(SMOD)/64 波特率求初值不会
方式1,3波特率 溢出率X2^(SMOD)/32