AT89C52中断系统寄存器

  • 格式:doc
  • 大小:52.50 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

定时器控制寄存器TCON

TCON:Timer控制寄存器,是管理定时器工作的

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

IT0/IT1:外部中断请求的触发方式选择位:

=0:在INT0/INT1端申请中断的信号低电平触发;

=1:在INT0/INT1端申请中断的信号负跳变触发.

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

=0:没有外部中断申请;

=1:有外部中断申请。

TF0/TF1:定时器0/定时器1溢出中断申请标志位:

=0:定时器未溢出;

=1:定时器溢出申请中断,进中断后自动清零。

TR0/TR1:定时器运行启停控制位:

=0:定时器停止运行;

=1:定时器启动运行。

中断允许寄存器IE

EA —ET2 ES ET1 EX1 ET0 EX0

EX0/EX1/ET1/ET0/ES 位:

分别是INT0/1,Timer0/1,串行口的中断允

许控制位:

=0 时禁止中断;=1 时允许中断。

ET2:T2中断允许控制位(仅52系列有)

=0 时禁止中断;=1 时允许中断。

EA:总的中断允许控制位(总开关):

=0 时禁止全部中断;=1 时允许中断。

中断优先级控制寄存器IP

——PT2 PS PT1 PX1 PT0 PX0

PX0/PX1:INT0/1优先级控制位:

=0 时属低优先级;=1 时属高优先级。

PT0/PT1/PT2:T0/1/2中断优先级控制位:

=0 时属低优先级;=1 时属高优先级。

PS1:串行口中断优先级控制位:

=0 时属低优先级;=1 时属高优先级。

interrupt m 修饰符

interrupt m C51中断函数必须通过它进行修饰。在C51程序设计中,当函数定义时用了interrupt m修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按51系统中断的处理方式自动把它安排在程序存储器中的相应位置。

在该修饰符中,m的取值为0~31,对应的中断情况如下:

0——外部中断0

1——定时/计数器T0

2——外部中断1

3——定时/计数器T1

4——串行口中断

5——定时/计数器T2

定时器方式寄存器TMOD

GATE C / T M1 M0 GATE C / T M1 M0

T1 T0

M1,M0:工作方式定义位( 定义4 种方式):

0 0:13位定时器

0 1:16位定时器

1 0:可自动重装的8位定时器

1 1:T0 分为2个8位Timer;T1 此时不工作

C/T :计数器/定时器选择位

= 1 外部事件计数器。对T0/T1引脚的负脉冲计数;

= 0 片内时钟定时器。对机器周期脉冲计数定时

GATE门控位: Timer可由软件与硬件两者控制

GATE = 0 ——普通用法

Timer的启/停由软件对TRx位写“1”/“0”控制

GATE = 1 ——门控用法

Timer的启/停由软件对TR0/TR1位写“1”/“0”

和在INT0/INT1引脚上出现的信号的高/低共同控制

串行口控制寄存器SCON

SM0 SM1 SM2 REN TB8 RB8 TI RI

SM0,SM1:串行口4种工作方式的选择位

0 0 方式0:8位移位寄存器,波特率固定为fosc/12

0 1 方式1:10位异步收发

1 0 方式2:11位异步收发

1 1 方式3:11位异步收发

SM2:串行口多机通信控制位

RI,TI:串行口收/发数据申请中断标志位

=1 申请中断;=0 不申请中断

RI,TI:串行口收/发数据申请中断标志位

=1 申请中断;=0 不申请中断

RB8:在方式2、3中,是收到的第9位数据。

在多机通信中,用作区别地址帧/数据帧的

标志。(奇偶校验)

TB8:方式2、3中,是要发送的第9位数据。

多机通信中,TB8=0 表示发送的是数据;

TB8=1 表示发送的是地址。(奇偶校验)

REN:串行口接收允许控制位

= 1 表示允许接收;= 0 禁止接收。

电源控制寄存器PCON(特殊功能寄存器PCON不能按位寻址)

SMOD ———GF1 GF0 PD 1DL

SMOD:在串行口工作方式1、2、3 中,是波特率加倍位

=1 时,波特率加倍

=0 时,波特率不加倍

串行口工作方式0

发送:SBUF中的串行数据由RxD逐位移出;

TxD输出移位时钟,频率=fosc1/12;

每送出8位数据TI就自动置1;

需要用软件清零TI。

接收:串行数据由RxD逐位移入SBUF中;

TxD输出移位时钟,频率=fosc1/12;

每接收8位数据RI就自动置1;

需要用软件清零RI。

工作方式1:10位UART(1+8+1位)波特率可变

常用于串行通讯。除发/收8位数据外,还

在D0位前有一个起始位“0”;

在D7位后有一个停止位“1”。

方式1工作时:

发送端自动添加一个起始位和一个停止位;

接收端自动去掉一个起始位和一个停止位。

波特率可变

——用定时器T1作波特率发生器:

公式:波特率=(2SMOD/32)⨯T1的溢出率

波特率=(2SMOD/32)⨯T1的溢出率

溢出率就是晶振频率

2SMOD ⨯ fosc

波特率= 其中:X 是定时器初值

32 ⨯ 12(2n - X)