AT89C52中断系统寄存器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)