MCS-51單片機控制字詳解
寄存器地址D0H,位尋址D7H~D0H。
位地址 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
位符號 | CY | AC | F0 | RS1 | RS0 | OV | - | P |
CY——進(jìn)位標記
AC——半進(jìn)位標記
F0——用戶(hù)設定標記
RS1、RS0——4個(gè)工作寄存器區的選擇位。
VO——溢出標記
P——奇偶校驗標記
PCON:電源控制器及波特率選擇寄存器
字節地址=87H,不可位尋址
SMOD | - | - | POF | GF1 | GF0 | PD | IDL |
SMOD——波特率倍增位
GF1、GF0——用戶(hù)通用標記
PD——掉電方式控制位,PD=1時(shí)進(jìn)入掉電模式
IDL——空閑方式控制位,IDL=1時(shí)進(jìn)入空閑方式
在A(yíng)T89S51中PCON.4是電源斷電標記位POF,上電是為1
SCON:串行口控制寄存器
寄存器地址98H,位尋址9FH~98H。
位地址 | 9F | 9E | 9D | 9C | 9B | 9A | 99 | 98 |
位符號 | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
SM0、SM1:串行口工作方式選擇位
SM2:多機通信控制位
REN:允許/禁止串行口接收的控制位
TB8:在方式2和方式3中,是被發(fā)送的第9位數據,可根據需要由軟件置1或清零,也可以作為奇偶校驗位,在方式1中是停止位。
RB8:在方式2和方式3中,是被接收的第9位數據(來(lái)自第TB8位);在方式1中,RB8收到的是停止位,在方式0中不用。
TI——串行口發(fā)送中斷請求標志位
當發(fā)送完一幀串行數據后,由硬件置1;在轉向中斷服務(wù)程序后,用軟件清0。
RI——串行口接收中斷請求標志位
當接收完一幀串行數據后,由硬件置1;在轉向中斷服務(wù)程序后,用軟件清0。
TMOD:工作方式控制寄存器
寄存器地址89H,不可位尋址。
位序 | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
位符號 | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |
GATE——門(mén)控位
當=0時(shí),以TR0(或TR1)狀態(tài)決定定時(shí)器/計數器的啟動(dòng)或禁止
當=1時(shí),以TR0與INT0(或TR1與INT1)狀態(tài)決定定時(shí)器/計數器的啟動(dòng)或禁止
C/T=0 定時(shí)/計數工作方式選擇位 0為定時(shí)器 1為計數器。
M1M0——工作方式選擇位
M1M0=00 方式0:是13位計數結構的工作方式,其計數器由TH全部8位和TL的低5位構成。
M1M0=01 方式1:是16位計數結構的工作方式,計數器由TH全部8位和TL全部8位構成。
M1M0=10 方式2:自動(dòng)裝入8位計數器。
M1M0=11 方式3:定時(shí)器/計數器0被拆成兩個(gè)獨立的8位計數器TL0和TH0。其中TL0既可以計數使用,又可以定時(shí)使用,定時(shí)器/計數器0的各控制位和引腳信號全歸它使用。
T2MOD:工作方式控制寄存器
寄存器地址0C9H,不可位尋址
- | - | - | - | - | - | T2OE | DCEN |
T2OE:定時(shí)器2輸出允許位,當=1時(shí),P1.0/T2引腳輸出連續脈沖信號
DCEN:當=1時(shí),T2配置成向上向下計數器
P3口的代替功能
寄存器地址B0H,位尋址B7H~B0H。
引腳 | P3.0 | P3.1 | P3.2 | P3.3 | P3.4 | P3.5 | P3.6 | P3.7 |
代替功能 | RXD | TXD | /INT0 | /INT1 | T0 | T1 | /WR | /RD |
TCON:定時(shí)器控制寄存器
寄存器地址88H,位尋址8FH~88H。
位地址 | 8F | 8E | 8D | 8C | 8B | 8A | 89 | 88 |
位符號 | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
TF0(TF1)——計數溢出標志位,當計數器計數溢出時(shí),該位置1。
TR0(TR1)——定時(shí)器運行控制位
當TR0(TR1)=0停止定時(shí)器/計數器工作
當TR0(TR1)=1啟動(dòng)定時(shí)器/計數器工作
IE0(IE1)——外中斷請求標志位
當CPU采樣到P3.2(P3.3)出現有效中斷請求時(shí),此位由硬件置1。在中斷響應完成后轉向中斷服務(wù)時(shí),再由硬件自動(dòng)清0。
IT0(IT1)——外中斷請求信號方式控制位
當IT0(IT1)=1 脈沖方式(后沿負跳有效)
當IT0(IT1)=0 電平方式(低電平有效)此位由軟件置1或清0。
TF0(TF1)——計數溢出標志位
當計數器產(chǎn)生計數溢出時(shí),此位由硬件置1。當轉向中斷服務(wù)時(shí),再有硬件自動(dòng)清0。計數溢出的標志位的使用有兩種情況:采用中斷方式時(shí),作中斷請求標志位來(lái)使用;采用查詢(xún)方式時(shí),作查詢(xún)狀態(tài)位來(lái)使用。
T2CON:定時(shí)器控制寄存器
寄存器地址0C8H,位尋址0C8H~0CFH。
位地址 | CF | CE | CD | CC | CB | CA | C9 | C8 |
位符號 | TF2 | EXF2 | RCLK | TCLK | EXEN2 | TR2 | C/T2 | CP/RL2 |
TF2:T2溢出標記
當T2溢出時(shí)TF2=1,TD2只能用軟件清除
當RCLK=1或TCLK=1時(shí),TF2將不置位
EXF2:T2外部標記
當EXEN2=1時(shí),T2EX/P1.1引腳上的負跳變引起T2的捕捉/重裝操作,此時(shí)EXF2=1。在T2中斷允許時(shí),EXF2=1將引起中斷,EXF2只能用軟件清除。在T2的向上、向下計數模式下(DCEN=1)EXF2的置位將不引起中斷。
RCLK:接收時(shí)鐘允許
當RCLK=1時(shí),T2的溢出脈沖可用作串行口的接收時(shí)鐘信號,適于串行口模式1、3當RCLK=0時(shí),T1的溢出脈沖用作串行口接收時(shí)鐘信號
TCLK:發(fā)送時(shí)鐘允許
EXEN2:T2外部事件(引起捕捉/重裝的外部信號)允許
當EXEN2=1時(shí),如果T2沒(méi)有作串行時(shí)鐘輸出(即RCLK+TCLK=0),則在T2EX/P1.1引腳跳變將引起T2的捕捉/重裝操作;
當EXEN2=0時(shí),在T2EX引腳的負跳變將不起作用
TR2:T2的啟動(dòng)/停止控制
C/T2:計數定時(shí)
CP/RL2:捕捉/重裝選擇
當CP/RL2=1且EXEN2=1時(shí),T2EX/P1.1引腳的負跳變將引起捕捉操作
當CP/RL2=0且EXEN2=1時(shí),T2EX/P1.1引腳的負跳變將引起重裝操作
當CP/RL2=0且EXEN2=0時(shí),T2的溢出將引起T2的自動(dòng)重裝操作
當RCLK+TCLK=1時(shí),CP/RL2控制位不起作用,T2被強制工作于重裝方式。重裝方式發(fā)生于T2溢出時(shí),常用來(lái)作波特率發(fā)生器。
IE:中斷允許控制寄存器
寄存器地址A8H,位尋址AFH~A8H。
位地址 | AF | AE | AD | AC | AB | AA | A9 | A8 |
位符號 | EA | / | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
EA:中斷允許總控制位
當EA=0時(shí),中斷總禁止。
當EA=1時(shí),中斷總允許后中斷的禁止與允許由各中斷源的中斷允許控制位進(jìn)行設置。
EX0( EX1):外部中斷允許控制位
當EX0( EX1)=0 禁止外中斷
當EX0( EX1)=1 允許外中斷
ET0(EX1):定時(shí)/計數中斷允許控制位
當ET0(ET1)=0禁止定時(shí)(或計數)中斷
當ET0(ET1)=1允許定時(shí)(或計數)中斷
ET2:定時(shí)器2中斷允許控制位,在A(yíng)T89S52、AT89C52中
ES:串行中斷允許控制位
當ES=0禁止串行中斷
當ES=1允許串行中斷
IP:中斷優(yōu)先級控制寄存器
寄存器地址B8H,位尋址BFH~B8H。
位地址 | BF | BE | BD | BC | BB | BA | B9 | B8 |
位符號 | / | / | PT2 | PS | PT1 | PX1 | PT0 | PX0 |
PX0——外部中斷0優(yōu)先級設定位
PT0——定時(shí)中斷0優(yōu)先級設定位
PX1——外部中斷1優(yōu)先級設定位
PT1——定時(shí)中斷1優(yōu)先級設定位
PS——串口中斷優(yōu)先級設定位
PT2——定時(shí)器2優(yōu)先級設定位
AUXR:輔助寄存器
字節地址=8EH,不可位尋址
- | - | - | WDIDLE | DISRTO | - | - | DISALE |
WDIDLE:WTD在空閑模式下的禁止/允許位
當WDIDLE=0時(shí),WDT在空閑模式下繼續計數
當WDIDLE=1時(shí),WDT在空閑模式下暫停計數
DISRTO:禁止/允許WDT溢出時(shí)的復位輸出
當DISRTO=0時(shí),WDT定時(shí)器溢出時(shí),在RST引腳輸出一個(gè)高電平脈沖
當DISRT0=1時(shí),RST引腳為輸入腳
DISALE :ALE禁止/允許位
當DISALE=0時(shí),ALE有效,發(fā)出恒定頻率脈沖
當DISALE=1時(shí),ALE僅在CPU執行MOVC和MOVX類(lèi)指令時(shí)有效,不訪(fǎng)問(wèn)外寄存器時(shí),ALE不輸出脈沖信號
AUXR1:輔助寄存器1
字節地址=A2H,不可位尋址
- | - | - | - | - | - | - | DPS |
DPS:數據指針寄存器選擇位
當DPS=0時(shí),選擇數據指針寄存器DPRT0
當DPS=1時(shí),選擇數據指針寄存器DPRT
評論