89C51單片機(jī)內(nèi)部結(jié)構(gòu)深度解析三
單片機(jī)的工作寄存器:00H~1FH
單片機(jī)在工作時(shí)需要處理大量的數(shù)據(jù),這些數(shù)據(jù)有些要用來運(yùn)算,有些要反復(fù)調(diào)用,有些用來比較檢驗(yàn),這時(shí)單片機(jī)就需要有這些位置暫時(shí)存放這些數(shù)據(jù),以方便后面數(shù)據(jù)的處理,而單片機(jī)提供暫存數(shù)據(jù)的地方就是工作寄存器。工作寄存器有4組,每組都是8個(gè)工作寄存器R0~R7,通過PSW中的RS1、RS0兩位來選擇使用哪一組,如果不選,默認(rèn)是選擇第0組。
RS1RS0組合為00時(shí),選中第0組工作寄存器,R0~R7地址為00H~07H;
RS1RS0組合為01時(shí),選中第1組工作寄存器,R0~R7地址為08H~0FH;
RS1RS0組合為10時(shí),選中第2組工作寄存器,R0~R7地址為10H~17H;
RS1RS0組合為11時(shí),選中第3組工作寄存器,R0~R7地址為18H~1FH。
真正的RAM:20H~7FH
SFR:special function register,特殊功能寄存器的總稱,是單片計(jì)算機(jī)中的一組特殊的臨時(shí)存儲區(qū)域,用于動態(tài)存放計(jì)算機(jī)運(yùn)行過程的一些狀態(tài)信息、并依此做相應(yīng)的控制,總共21個(gè)。
地址 | 高位(MSB) | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0xFF | ||||||||
0xFE | ||||||||
0xFD | ||||||||
0xFC | ||||||||
0xFB | *CCAP1H | |||||||
0xFA | *CCAP0H | |||||||
0xF9 | *CH | |||||||
0xF8 | ||||||||
0xF7 | ||||||||
0xF6 | ||||||||
0xF5 | ||||||||
0xF4 | ||||||||
0xF3 | *PCA_PWM1 | |||||||
0xF2 | *PCA_PWM0 | |||||||
0xF1 | ||||||||
0xF0 | B(通用寄存器B,初值:0000 0000) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
0xEF | ||||||||
0xEE | ||||||||
0xED | ||||||||
0xEC | ||||||||
0xEB | *CCAP1L | |||||||
0xEA | *CCAP0L | |||||||
0xE9 | *CL | |||||||
0xE8 | ||||||||
0xE7 | ||||||||
0xE6 | ||||||||
0xE5 | ||||||||
0xE4 | ||||||||
0xE3 | ||||||||
0xE2 | ||||||||
0xE1 | ||||||||
0xE0 | ACC(累加器,初值:0000 0000) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
0xDF | ||||||||
0xDE | ||||||||
0xDD | ||||||||
0xDC | ||||||||
0xDB | *CCAPM1 | |||||||
0xDA | *CCAPM0 | |||||||
0xD9 | *CMOD | |||||||
0xD8 | *CCON | |||||||
0xD7 | ||||||||
0xD6 | ||||||||
0xD5 | ||||||||
0xD4 | ||||||||
0xD3 | ||||||||
0xD2 | ||||||||
0xD1 | ||||||||
0xD0 | PSW(程序狀態(tài)寄存器,初值:0000 0000) | |||||||
CY | AC | F0 | RS1 | RS0 | OV | F1 | P | |
0xCF | *SPDAT | |||||||
0xCE | *SPCTL | |||||||
0xCD | *SPSTAT | |||||||
0xCC | ||||||||
0xCB | ||||||||
0xCA | *P5M0 | |||||||
0xC9 | *P5M1 | |||||||
0xC8 | *P5 | |||||||
0xC7 | *IAP_CONTR | |||||||
0xC6 | *IAP_TRIG | |||||||
0xC5 | *IAP_CMD | |||||||
0xC4 | *IAP_ADDRL | |||||||
0xC3 | *IAP_ADDRH | |||||||
0xC2 | *IAP_DATA | |||||||
0xC1 | *WDT_CONTR | |||||||
0xC0 | *P4 | |||||||
0xBF | ||||||||
0xBE | *ADC_RESL | |||||||
0xBD | *ADC_RES | |||||||
0xBC | *ADC_CONTR | |||||||
0xBB | *P4SW | |||||||
0xBA | ||||||||
0xB9 | *SADEN | |||||||
0xB8 | IP(中斷優(yōu)先級寄存器,初值:0000 0000) | |||||||
*PPCA | *PLVD | *PADC | PS | PT1 | PX1 | PT0 | PX0 | |
0xB7 | *IPH | |||||||
0xB6 | *IP2H | |||||||
0xB5 | *IP2 | |||||||
0xB4 | *P4M0 | |||||||
0xB3 | *P4M1 | |||||||
0xB2 | *P3M0 | |||||||
0xB1 | *P3M1 | |||||||
0xB0 | P3(I/O接口第3組,初值:1x11 1111) | |||||||
P3.7 | P3.6 | P3.5 | P3.4 | P3.3 | P3.2 | P3.1 | P3.0 | |
0xAF | *IE2 | |||||||
0xAE | ||||||||
0xAD | ||||||||
0xAC | ||||||||
0xAB | ||||||||
0xAA | ||||||||
0xA9 | *SADDR | |||||||
0xA8 | IE(中斷控制寄存器,初值:0000 0000) | |||||||
EA | *ELVD | *EADC | ES | ET1 | EX1 | ET0 | EX0 | |
0xA7 | ||||||||
0xA6 | ||||||||
0xA5 | ||||||||
0xA4 | ||||||||
0xA3 | ||||||||
0xA2 | *AUXR1 | |||||||
0xA1 | *BUS_SPEED | |||||||
0xA0 | P2(I/O接口第2組,初值:1111 1111) | |||||||
P2.7 | P2.6 | P2.5 | P2.4 | P2.3 | P2.2 | P2.1 | P2.0 | |
0x9F | ||||||||
0x9E | ||||||||
*P1ASF | ||||||||
0x9D | ||||||||
*BRT | ||||||||
0x9C | ||||||||
*S2BUF | ||||||||
0x9B | ||||||||
*S2CON | ||||||||
0x9A | ||||||||
0x99 | SBUF(UART串口數(shù)據(jù)寄存器,初值:xxxx xxxx) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
0x98 | SCON(UART串口控制寄存器,初值:0000 0000) | |||||||
SM0 | SM1 | SM2 | REN | TB8 | RB8 | T1 | R1 | |
0x97 | *CLK_DIV | |||||||
0x96 | *P2M0 | |||||||
0x95 | *P2M1 | |||||||
0x94 | *P0M0 | |||||||
0x93 | *P0M1 | |||||||
0x92 | *P1M0 | |||||||
0x91 | *P1M1 | |||||||
0x90 | P1(I/O接口第1組,初值:1111 1111) | |||||||
P1.7 | P1.6 | P1.5 | P1.4 | P1.3 | P1.2 | P1.1 | P1.0 | |
0x8F | *WAKE_CLK0 | |||||||
0x8E | *AUXR | |||||||
0x8D | TH1(T1定時(shí)/計(jì)數(shù)器16位寄存器高8位,初值:0000 0000) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
0x8C | TH0(T0定時(shí)/計(jì)數(shù)器16位寄存器高8位,初值:0000 0000) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
0x8B | TL1(T1定時(shí)/計(jì)數(shù)器16位寄存器低8位,初值:0000 0000) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
0x8A | TL0(T0定時(shí)/計(jì)數(shù)器16位寄存器低8位,初值:0000 0000) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
0x89 | TMOD(定時(shí)/計(jì)數(shù)器方式控制寄存器,初值:0000 0000) | |||||||
GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 | |
0x88 | TCON(定時(shí)/計(jì)數(shù)器控制寄存器,初值:0000 0000) | |||||||
TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 | |
0x87 | PCON(電源控制寄存器,初值:0011 0000) | |||||||
SMOD | SMOD0 | *LVDF | POF | GF1 | GF0 | PD | IDL | |
0x86 | ||||||||
0x85 | ||||||||
0x84 | ||||||||
0x83 | DPH(通用16位指針高8位,初值:0000 0000) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
0x82 | DPL(通用16位指針低8位,初值:0000 0000) | |||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
0x81 | SP(堆棧指針,初值:0000 0111) | |||||||
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | |
0x80 | P0(I/O接口第0組,初值:xxxx 1111) | |||||||
P0.7 | P0.6 | P0.5 | P0.4 | P0.3 | P0.2 | P0.1 | P0.0 |
評論