MCS51单片机的SFR特殊功能寄存器Word下载.docx
- 文档编号:22980590
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:15
- 大小:211.87KB
MCS51单片机的SFR特殊功能寄存器Word下载.docx
《MCS51单片机的SFR特殊功能寄存器Word下载.docx》由会员分享,可在线阅读,更多相关《MCS51单片机的SFR特殊功能寄存器Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
有进、借位,CY=1;
无进、借位,CY=0
例:
78H+97H(01111000+10010111)
AC:
辅助进、借位(高半字节与低半字节间的进、借位)。
57H+3AH(01010111+00111010)
下面我们逐一介绍各位的用途
F0:
用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。
RS1、RS0:
工作寄存器组选择位。
这个我们已知了。
0V:
溢出标志位。
运算结果按补码运算理解。
有溢出,OV=1;
无溢出,OV=0。
什么是溢出我们后面的章节会讲到。
P:
奇偶校验位:
它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。
若为奇数,则P=1,否则为0。
运算结果有奇数个1,P=1;
运算结果有偶数个1,P=0。
某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。
5、P0、P1、P2、P3------这个我们已经知道,是四个并行输入/输出口的寄存器。
它里面的容对应着管脚的输出。
IE:
中断允许控制寄存器
寄存器地址A8H,位寻址AFH~A8H。
位地址
AF
AE
AD
AC
AB
AA
A9
A8
位符号
EA
/
ET2
ES
ET1
EX1
ET0
EX0
EA:
中断允许总控制位
当EA=0时,中断总禁止。
当EA=1时,中断总允许后中断的禁止与允许由各中断源的中断允许控制位进行设置。
EX0(EX1):
外部中断允许控制位
当EX0(EX1)=0禁止外中断
当EX0(EX1)=1允许外中断
ET0(EX1):
定时/计数中断允许控制位
当ET0(ET1)=0禁止定时(或计数)中断
当ET0(ET1)=1允许定时(或计数)中断
ET2:
定时器2中断允许控制位,在AT89S52、AT89C52中
ES:
串行中断允许控制位
当ES=0禁止串行中断
当ES=1允许串行中断
IP:
中断优先级控制寄存器
寄存器地址B8H,位寻址BFH~B8H。
BF
BE
BD
BC
BB
BA
B9
B8
PT2
PS
PT1
PX1
PT0
PX0
PX0——外部中断0优先级设定位
PT0——定时中断0优先级设定位
PX1——外部中断1优先级设定位
PT1——定时中断1优先级设定位
PS——串口中断优先级设定位
PT2——定时器2优先级设定位
。
定时/计数器
(1)定时器方式寄存器:
TMOD
(2)定时器控制寄存器:
TCON
(3)计数寄存器:
TH0、TL0;
TH1、TL1。
可用于设定计数初值。
8052/8032增设专用寄存器
(1)定时器2控制寄存器T2CON;
控制、设置工作方式。
(2)计数寄存器:
TH2、TL2
(3)定时器2捕获/重装载寄存器:
RCAP2H、RCAP2L
存放自动重装载到TH2、TL2的数据
TCON:
定时器控制寄存器
寄存器地址88H,位寻址8FH~88H。
8F
8E
8D
8C
8B
8A
89
88
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该位置1。
TR0(TR1)——定时器运行控制位
当TR0(TR1)=0停止定时器/计数器工作
当TR0(TR1)=1启动定时器/计数器工作
IE0(IE1)——外中断请求标志位
当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。
在中断响应完成后转向中断服务时,再由硬件自动清0。
IT0(IT1)——外中断请求信号方式控制位
当IT0(IT1)=1脉冲方式(后沿负跳有效)
当IT0(IT1)=0电平方式(低电平有效)此位由软件置1或清0。
TF0(TF1)——计数溢出标志位
当计数器产生计数溢出时,此位由硬件置1。
当转向中断服务时,再有硬件自动清0。
计数溢出的标志位的使用有两种情况:
采用中断方式时,作中断请求标志位来使用;
采用查询方式时,作查询状态位来使用。
TMOD:
工作方式控制寄存器
寄存器地址89H,不可位寻址。
位序
B7
B6
B5
B4
B3
B2
B1
B0
GATE
C/T
M1
M0
GATE——门控位
当=0时,以运行TR0(或TR1)启动或禁止定时器、计数器
当=1时,以TR0*/INT0(或TR1*/INT1)启动或禁止定时器、计数器
GATE=0以TR0(TR1)启动定时器
GATE=1以INT0(INT1)启动定时器
C/T=0定时/计数工作方式选择位
M1M0——工作方式选择位
T2CON:
寄存器地址0C8H,位寻址0C8H~0CFH。
CF
CE
CD
CC
CB
CA
C9
C8
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
CP/RL2
TF2:
T2溢出标记
当T2溢出时TF2=1,TD2只能用软件清除
当RCLK=1或TCLK=1时,TF2将不置位
EXF2:
T2外部标记
当EXEN2=1时,T2EX/P1.1引脚上的负跳变引起T2的捕捉/重装操作,此时EXF2=1。
在T2中断允许时,EXF2=1将引起中断,EXF2只能用软件清除。
在T2的向上、向下计数模式下(DCEN=1)EXF2的置位将不引起中断。
RCLK:
接收时钟允许
当RCLK=1时,T2的溢出脉冲可用作串行口的接收时钟信号,适于串行口模式1、3当RCLK=0时,T1的溢出脉冲用作串行口接收时钟信号
TCLK:
发送时钟允许
EXEN2:
T2外部事件(引起捕捉/重装的外部信号)允许
当EXEN2=1时,如果T2没有作串行时钟输出(即RCLK+TCLK=0),则在T2EX/P1.1引脚跳变将引起T2的捕捉/重装操作;
当EXEN2=0时,在T2EX引脚的负跳变将不起作用
TR2:
T2的启动/停止控制
C/T2:
计数定时
CP/RL2:
捕捉/重装选择
当CP/RL2=1且EXEN2=1时,T2EX/P1.1引脚的负跳变将引起捕捉操作
当CP/RL2=0且EXEN2=1时,T2EX/P1.1引脚的负跳变将引起重装操作
当CP/RL2=0且EXEN2=0时,T2的溢出将引起T2的自动重装操作
当RCLK+TCLK=1时,CP/RL2控制位不起作用,T2被强制工作于重装方式。
重装方式发生于T2溢出时,常用来作波特率发生器。
T2MOD:
寄存器地址0C9H,不可位寻址
-
T2OE
DCEN
T2OE:
定时器2输出允许位,当=1时,P1.0/T2引脚输出连续脉冲信号
DCEN:
当=1时,T2配置成向上向下计数器
SCON:
串行口控制寄存器
寄存器地址98H,位寻址9FH~98H。
9F
9E
9D
9C
9B
9A
99
98
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SM0、SM1:
串行口工作方式选择位
两个选择位对应于四种状态,所以串行口能以四种方式工作,(UART---异步通讯口)见表2-9。
SM2:
多机通信控制位
Ø
Mode0时,SM2=0;
Mode1时,若SM2=1,且收到有效的停止位,则RI=1(产生RI中断),否则RI=0;
Mode2或Mode3时,若SM2=1,且收到第九位为1,则RI=1(产生RI中断),若第九位为0,则RI=0;
REN:
允许/禁止串行口接收的控制位
REN=1时,允许接收,REN=0时,禁止接收
TB8:
在方式2和方式3中,是被发送的第9位数据,可根据需要由软件置1或清零,也可以作为奇偶校验位,在方式1中是停止位。
RB8:
在方式2和方式3中,是被接收的第9位数据(来自第TB8位);
在方式1中,RB8收到的是停止位,在方式0中不用。
TI——串行口发送中断请求标志位
当发送完一帧串行数据后,由硬件置1;
在转向中断服务程序后,用软件清0。
RI——串行口接收中断请求标志位
当接收完一帧串行数据后,由硬件置1;
PCON:
电源控制器及波特率选择寄存器
字节地址=87H,不可位寻址
SMOD
-
POF
GF1
GF0
PD
IDL
SMOD——波特率倍增位
GF1、GF0——用户通用标记
PD——掉电方式控制位,PD=1时进入掉电模式
IDL——空闲方式控制位,IDL=1时进入空闲方式
在AT89S51中PCON.4是电源断电标记位POF,上电是为1
中断编号
中断源
中断向量
--
上电复位
0000H
外部中断INT0
0003H
1
定时器0溢出
000BH
2
外部中断INT1
0013H
3
定时器1溢出
001BH
4
串行口中断
0023H
5
定时器2溢出
002BH
在C51单片机编程中,头文件INTRINS.H的函数使用起来,就会让你像在用
编时一样简便.
部函数描述
_crol_字符循环左移
_cror_字符循环右移
_irol_整数循环左移
_iror_整数循环右移
_lrol_长整数循环左移
_lror_长整数循环右移
_nop_空操作8051NOP指令
_testbit_测试并清零位8051JBC指令
函数名:
_crol_,_irol_,_lrol_
原型:
unsignedchar_crol_(unsignedcharval,unsignedcharn);
unsignedint_irol_(unsignedintval,unsignedcharn);
unsignedint_lrol_(unsignedintval,unsignedcharn);
举例:
_crol_,_cror_:
将char型变量循环向左(右)移动指定位数后返回
_testbit_:
相当于JBCbitvar测试该位变量并跳转同时清除。
_chkfloat_:
测试并返回源点数状态。
就是汇编中的子函数。
如国二进制数为01010101那么_crol_
(1)左移1位后将高位补低位。
结果10101010。
功能:
_crol_,_irol_,_lrol_以位形式将val左移n位,该函数与8051“RLA”指令相关,上面几个函数不同于参数类型。
#include<
intrins.h>
main()
{
unsignedinty;
C-51程序设计37
y=0x00ff;
y=_irol_(y,4);
}
_cror_,_iror_,_lror_
unsignedchar_cror_(unsignedcharval,unsignedcharn);
unsignedint_iror_(unsignedintval,unsignedcharn);
unsignedint_lror_(unsignedintval,unsignedcharn);
_cror_,_iror_,_lror_以位形式将val右移n位,该函数与8051“RRA”指令相关,上面几个函数不同于参数类型。
y=0x0ff00;
y=_iror_(y,4);
_nop_
void_nop_(void);
_nop_产生一个NOP指令,该函数可用作C程序的时间比较。
C51编译器在_nop_函数工作期间不产生函数调用,即在程序中直接执行了NOP指令。
P()=1;
_nop_();
P()=0;
_testbit_
bit_testbit_(bitx);
_testbit_产生一个JBC指令,该函数测试一个位,当置位时返回1,否则返回0。
如果该位置为1,则将该位复位为0。
8051的JBC指令即用作此目的。
_testbit_只能用于可直接寻址的位;
在表达式中使用是不允许的。
在C51单片机编程中,头文件INTRINS.H的函数使用起来,就会让你像在用汇编时一样简便.
_nop_空操作8051NOP指令
_testbit_测试并清零位8051JBC指令
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 单片机 SFR 特殊 功能 寄存器