符号地址功能介绍B F0H B寄存器ACC E0H 累加器PSW D0H 程序状态字IP B8H 中断优先级控制寄存器P3 B0H P3口锁存器IE A8H 中断允许控制寄存器P2 A0H P2口锁存器SBUF 99H 串行口锁存器SCON 98H 串行口控制寄存器P1 90H P1口锁存器TH1 8DH 定时器/计数器1(高8位)TH0 8CH 定时器/计数器1(低8位)TL1 8BH 定时器/计数器0(高8位)TL0 8AH 定时器/计数器0(低8位)TMOD 89H 定时器/计数器方式控制寄存器TCON 88H 定时器/计数器控制寄存器DPTR 82H 83H 83H数据地址指针(高8位)PCSP 81H 堆栈指针P0 80H P0口锁存器PCON 87H 电源控制寄存器、PSW-----程序状态字。
D7D6D5D4D3D2D1D0CY AC F0 RS1 RS0 OV P下面我们逐一介绍各位的用途CY:进位标志。
AC:辅助进、借位(高半字节与低半字节间的进、借位)。
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。
定时/计数器寄存器1.工作方式寄存器TMOD(P134)TMOD 为T0.T1的工作方式寄存器,其各位的格式如下:TMODD7 D6 D 5 D4 D3 D2 D1 D0 GATEC/-TM1M0GATEC/-TM1M0定时器1 定时器0位7 GATE ——T1的门控位。
当GATE=0时,只要控制TR1置1,即可启动定时器T1开始工作;当GATE=1时,除需要将TR1置1外,还要使INT1引脚为高电平,才能启动相应的定时器开始工作。
位6 C/—T ——T1的功能选择位。
当C/—T=0时,T1为定时器方式; 当C/—T=0时,T1为计数器方式;位5和位4 M1和M0——T1的方式选择位。
由这两位的组合可以定义T1的3种工作方式 定时器T1工作方式选择表 如右表:位3 GATE ——T0的门控位。
当GATE=0时,只要控制TR0置1,即可启动定时器T0开始工作;当GATE=1时,除需要将TR0置1外,还要使INT0引脚为高电平,才能启动相应的定时器开始工作。
位2 C/T ——T1的功能选择位。
当C/—T=0时,T0为定时器方式; 当C/—T=0时,T0为计数器方式;位1和位0 M1和M0—T0的方式选择位。
由这两位的组合可以定义T1的3种工作方式 定时器T0工作方式选择表 TMOD 不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半节定义定时器0,高半字节定义定时器1。
复位时,TMOD 所有位均为0,定时器处于停止工作状态。
定时/计数器控制寄存器中断请求标志寄存器TCON(P183)TCON 的作用是控制定时器的启/停,标志定时器的溢出和中断情况。
定时器控制寄存器TCON 各位格式如下:TCON(88H)8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1TR1TF0TR0IE1IT1IE0IT0当有中断源发出请求时,有硬件将相应的中断标志位置 1.在中断请求被响应前,相应中断标志位被锁存在特殊功能寄存器TCON 或SCON 中。
TCON 为定时器T0和T1的控制寄存器,同时也锁住T0和T1的溢出中断标志及外部中断——INT0和—M1 M0 工作方式 功能描述 0 0 方式0 13位计数器 0 1 方式1 16位计数器1 0 方式2 自动再装入8位计数器 11方式3定时器1:停止计数M1 M0 工作方式 功能描述 0 0 方式0 13位计数器 0 1 方式1 16位计数器1 0 方式2 自动再装入8位计数器 11方式3定时器0:分成2个8位计数器—INT0的中断标志等。
TF1(TCON.7) ——T1溢出中断标志。
当T1开始工作,并且计数值产生溢出时,由硬件使TF1=1,在中断工作方式下向CPU请求中断。
此标志一直保持到 CPU响应中断后,才由硬件自动清零;也可用软件查询该标志,并且软件清零。
如果T1不工作,或者在工作但没有产生溢出,则TF1=0.TR1(TCON.6)——定时器1运行控制位。
当TR1=1时,启动定时器1工作;当TR1=0时,关闭定时器1。
TF0(TCON.5) ——T0溢出中断标志。
其操作功能类似于TF1.TR0(TCON.4) ——定时器T0运行控制位。
其功能及操作情况同TR1。
IE1(TC0N.3) ————INT1外部中断1标志当硬件使IE1=1时,表明外部中断1向CPU申请中断;当IE=0时,表明外部中断1没有向CPU申请中断。
IT1(TCON.2) ——外部中断1触发方式控制位当IT1=0时,表明外部中断1设置为电平触发方式;当IT1=1时,表明外部中断1设置为边沿触发方式。
IE0(TCON.1) ————INT0外部中断0标志位。
其操作功能与IE1类似IT0(TCON.0) ——外部中断0触发方式控制位.其操作功能与IT1类似中断允许控制寄存器IE(P182)当EA=0时。
CPU将屏蔽所有的中断申请;而当EA=1时,虽然CPU已经开放中断,但还必须设置相应中断源的控制位,才可确定允许哪个中断源中断。
IE各位的格式如下:IE地址(A8H)AFH ADH ACH ABH AAH A9H A8HEA ——ET2* ES ET1 EX1 ET0 EX0EA(IE.7) ——中断允许控制位。
当EA=0时。
CPU将屏蔽所有的中断申请,称为“关中断”;当EA=1时,CPU开放中断,每个中断源是被允许还是禁止,分别由其各自的允许位决定(IE.6)——未使用ET2(IE.5)——T2中断允许位(仅AT89S52/C52或类似型号单片机有)当ET2=1时,允许T2中断;当ET2=0时,禁止T2中断ES(IE.4)——串行口中断控制位当ES=1时,允许串行口中断;当ES=0时,禁止串行口中断ET1(IE.3)——T1中断允许位当ET1=1时,允许ET1中断;当ET1=0时,禁止ET1中断EX1(IE.2) ——外部中断1控制位当EX1=1时,允许外部中断1中断;当EX1=0时,禁止外部中断1中断ET0(IE.1) ——T0中断控制位当ET0=1时,允许T0中断;当ET0=0时,禁止T0中断EX0(IE.0) ——外部中断0控制位当EX0=1时,允许外部中断0中断;当EX0=0时,禁止外部中断0中断AT89C51单片机复位后,IE中各中断允许位均被清0,即禁止所有中断中断优先级寄存器IP(P184)专用寄存器IP为中断优先级寄存器,用于选择各中断优先级,用户可用软件设定。
其各位名称及作用如下:IP(B8H)BDH BCH BBH BAH B9H B8H————PT2 PS PT1 PX1 PT0 PX0其各位名称及作用如下:PT2(IP.5)——T2中断优先级选择位(仅AT89S52/C52或类似型号单片机有)当PT2=1时,设置定时器T2为高优先级中断;当PT2=0时,设置定时器T2为低优先级中断;PS(IP.4) ——串行口为高优先级选择位。
当PS=1时,设定串行口为高优先级中断;当PS=0时,设定串行口为低优先级中断;PT1(IP.3) ——T1中断优先级选择位。
当PT1=1时,设定定时器T1为高优先级中断;当PT1=0时,设定定时器T1为低优先级中断;PX1(IP.2) ——外部中断1中断优先级选择位当PX1=1时,设定外部中断1为高优先级中断;当PX1=0时,设定外部中断0为低优先极中断;PT0(IP.1) ——T0中断优先级选择位。
当PT0=1时,设定定时器T0为高优先级中断;当PT0=0时,设定定时器T0为低优先级中断;PX0(IP.0) ——外部中断0中断优先级选择位。
当PX0=1时,设定外部中断0为高优先级中断;当PX0=0时,设定外部中断0为低优先级中断;当系统复位后,IP全部清0,将所有中断源设置为低优先级中断。
电源控制寄存器PCON(P66)有一个电源控制位PCON,通过对其中有关位进行设置以选择待机方式和掉电方式。
其各位格式如下: D7 D6 D5 D4 D3 D2 D1 D0SMOD ——————GF` GF0 PD IDL其各位作用如下:SMOD——波特率背增位。
在串行口工作方式1.2。
或3下,SMOD=1使波特率加倍GFI和GF0——通用标志位。
用户使用软件置、复位。
PD——掉电方式位。
若PD=1,则进入掉电工作方式。
IDL——待机方式位。
若IDL=1,则进入待机工作方式如果PD和IDL同事为1,则进入掉电工作方式复位时。
PCON中所有定义位均为0.串行口控制寄存器SCON(P161_162)串行口控制位寄存器SCON用于通信的方式选择、接收和发送控制,并可反映串行口的工作状态。
其各位格式如下:SCON(98H)SM0 SM1 SM2 REN TB8 RB8 TI RISCON.7和SCON.6位 SN0 和 SM1——串行方式选择位。
这两位用于选择串行口的4种工作方式SM0 SM1 工作方式功能波特率0 0 方式0 8位同步移位寄存器Fosc/120 1 方式1 10位UART 可变1 0 方式2 11位UART Fosc/64和fosc/321 1 方式3 11位UART 可变SCON.5位 SM2——多机通信控制位在方式2和方式3中,SM2主要用于多机通信控制。
当串行口方式2或方式3接收时,如果SM2=1,允许多机通信,且接收到第九位RB8为0时,则RI 不置1,不接收主机发来的数据,如果SM2=1且RB8为1,则RI 置1,产生中断请求,将接收到的8位数据送如SBUF 。
当SM2=0时,不论RB8为0还是1,都将收到的数据输入SBUF ,并产生中断。
在方式1中,当处于接收状态时,若SM2=1,则只有接收到有效的停止位时,RI 才置1.在方式0中,SM2应置0SCON.4位 REN ——允许串行接收位REN=1时,允许接收,REN=0时禁止接收,有软件置位或者清零SCON.3 位 TB8——发送数据的第九位(D8)在方式2或方式3中,根据需要由软件置位或复位。
双机通信时,它可约定奇偶校验位,在多机通信中,可以作为区别地址帧或数据帧的标识位。