|
- STC89全系列AT89C52以上系列的頭文件共用,帶詳細(xì)的中文說明,內(nèi)部資源一覽無余
- /*-------------------------------------------------------------------------
- 89X5X_H
- Header file for 89CXX controller
- Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc^
- All rights reserved^
- --------------------------------------------------------------------------*/
- #ifndef __89x5X_H__
- #define __89x5X_H__
- // 8051 core
- sfr ACC = 0xE0;//累加器A (可位尋址)
- sfr B = 0xF0;//寄存器B (可位尋址)
- sfr DPL = 0x82;//數(shù)據(jù)指針低位 (不可位尋址)
- sfr DPH = 0x83;//數(shù)據(jù)指針高位 (不可位尋址)
- sfr SP = 0x81;//堆棧指針 (不可位尋址)
- sfr SBUF = 0x99;//串行數(shù)據(jù)緩沖器 (不可位尋址)
- sfr TL0 = 0x8A;//T0低字節(jié) (不可位尋址)
- sfr TL1 = 0x8B;//T1低字節(jié) (不可位尋址)
- sfr TH0 = 0x8C;//T0高字節(jié) (不可位尋址)
- sfr TH1 = 0x8D;//T1高字節(jié) (不可位尋址)
- sfr PSW = 0xD0;//狀態(tài) (標(biāo)志) 寄存器 (可位尋址)
- /************************************************************************
- BIT7 CY (進(jìn)位標(biāo)志位)
- BIT6 AC ( 輔助進(jìn)位標(biāo)志位,當(dāng)進(jìn)行加、減運(yùn)算時(shí)當(dāng)有低4位向高4位進(jìn)位或
- 借位時(shí),AC置位,否則被清零。AC輔助進(jìn)位位也常用于十進(jìn)制調(diào)整)
- BTT5 F0 (用戶標(biāo)志位0,供用戶設(shè)置的標(biāo)志位)
- BIT4~BIT3 RS1~RS0 (寄存器組選擇位)
- BIT2 OV (溢出標(biāo)志位)
- BIT1 F1 (用戶標(biāo)志位1,供用戶設(shè)置的標(biāo)志位)
- BIT0 P (奇偶校驗(yàn)位)
- *************************************************************************/
- sfr SCON = 0x98;//串口 (控制及標(biāo)志) 寄存器 (可位尋址)
- /************************************************************************
- BIT7~BIT6 SM1~SM0 (串口的工作方式選擇:00B 為同步8位工作方式0
- 01B 為定波特綠
- 10B 為
- 11B 為)
- BTT5 SM2 (多機(jī)通信控制位,僅在工作方式2和3有效)
- BIT4 REN (允許接收控制位)
- BIT3 TB8 (發(fā)送數(shù)據(jù)位8,多機(jī)通信中,0代表當(dāng)前發(fā)送內(nèi)容是數(shù)據(jù),1代表地址)
- BIT2 RB8 (接收數(shù)據(jù)位8,存放接收到的第9位數(shù)據(jù))
- BIT1 TI (發(fā)送中斷標(biāo)志位,1有效,需軟件清0)
- BIT0 RI (發(fā)送中斷標(biāo)志位,1有效,需軟件清0)
- *************************************************************************/
- sfr IE = 0xA8;//中斷使能 (控制) 寄存器 (可位尋址)
- /************************************************************************
- BIT7 EA (全局中斷使能控制位,1有效)
- BIT6 ---
- BIT5 ET2 (定時(shí)器2中斷使能控制位,1有效)
- BIT4 ES (串口中斷使能控制位,1有效)
- BIT3 ET1 (定時(shí)計(jì)數(shù)器1中斷使能控制位,1有效)
- BIT2 EX1 (外部中斷1中斷使能控制位,1有效)
- BIT1 ET0 (定時(shí)計(jì)數(shù)器0中斷使能控制位,1有效)
- BIT0 EX0 (外部中斷0中斷使能控制位,1有效)
- *************************************************************************/
- sfr IP = 0xB8;//中斷優(yōu)先級 (控制) 寄存器 (可位尋址)
- /************************************************************************
- BIT7 ---
- BIT6 ---
- BIT5 PT2 (為1時(shí)T2中斷設(shè)置為高優(yōu)先級)
- BIT4 PS (為1時(shí)串口中斷設(shè)置為高優(yōu)先級)
- BIT3 PT1 (為1時(shí)T1中斷設(shè)置為高優(yōu)先級)
- BIT2 PX1 (為1時(shí)外部中斷1設(shè)置為高優(yōu)先級)
- BIT1 PT0 (為1時(shí)T0中斷設(shè)置為高優(yōu)先級)
- BIT0 PX0 (為1時(shí)外部中斷0設(shè)置為高優(yōu)先級)
- *************************************************************************/
- sfr TCON = 0x88;//T1,T0及INT1,INT0 (控制及標(biāo)志) 寄存器 (可位尋址)
- /************************************************************************
- BIT7 TF1 (定時(shí)計(jì)數(shù)器1中斷標(biāo)志位,1有效,硬件自動(dòng)清0)
- BIT6 TR1 (定時(shí)計(jì)數(shù)器1啟動(dòng)控制位,1有效)
- BIT5 TF0 (定時(shí)計(jì)數(shù)器0中斷標(biāo)志位,1有效,硬件自動(dòng)清0)
- BIT4 TR0 (定時(shí)計(jì)數(shù)器0啟動(dòng)控制位,1有效)
- BIT3 IE1 (外部中斷1中斷標(biāo)志位,1有效,硬件自動(dòng)清0)
- BIT2 IT1 (外部中斷1引起中斷的方式: 0為低電平觸發(fā),1為下降沿觸發(fā))
- BIT1 IE0 (外部中斷0中斷標(biāo)志位,1有效,硬件自動(dòng)清0)
- BIT0 IT0 (外部中斷0引起中斷的方式: 0為低電平觸發(fā),1為下降沿觸發(fā))
- *************************************************************************/
- sfr TMOD = 0x89;//T1,T0 (控制及標(biāo)志) 寄存器 (不可位尋址)
- /************************************************************************
- BIT7 GATE1 (T1啟動(dòng)是否與"/INT1"引腳相關(guān))
- BIT6 C/T1 (0時(shí)T1為定時(shí),1時(shí)TI為計(jì)數(shù))
- BIT5~BIT4 T1M1~T1M0 (T1的工作模式)
- BIT3 GATE1 (T0啟動(dòng)是否與"/INT0"引腳相關(guān))
- BIT2 C/T1 (0時(shí)T0為定時(shí),1時(shí)T0為計(jì)數(shù))
- BIT1~BIT0 T0M1~T0M0 (T0的工作模式)
- *************************************************************************/
- sfr PCON = 0x87;//電源 (控制) 寄存器 (不可位尋址)
- /************************************************************************
- BIT7 SMOD (為串行口波特率倍率控制位,用于串行通信)
- //=====以下僅STC89系列和AT89S5X系列有效
- BIT6 SMOD0
- BIT5 ---
- BIT4 POF (上電復(fù)位標(biāo)志位: 1則表明該復(fù)位為上電復(fù)位,可由軟件清0
- 0則表明該復(fù)位為外部手動(dòng)復(fù)位或看門狗復(fù)位)
- BIT3~BIT2 GF1~GF0 (通用標(biāo)志位,描述中斷是來自正常運(yùn)行還是來自空
- 閑方式,用戶可通過指令設(shè)定它們的狀態(tài))
- BIT1 PD (為1時(shí),進(jìn)入掉電模式,外部時(shí)鐘停振,CPU,定時(shí)器,
- 串口全部停止工作,僅由外部中斷喚醒)
- BIT0 IDL (為1時(shí),進(jìn)入空閑模式,CPU不工作,可欲任何一個(gè)中斷喚醒)
- *************************************************************************/
- // Ports
- sfr P0 = 0x80;//端口0(可位尋址)
- sfr P1 = 0x90;//端口1(可位尋址)
- sfr P2 = 0xA0;//端口2(可位尋址)
- sfr P3 = 0xB0;//端口3(可位尋址)
- // Timer2
- sfr T2CON = 0xC8;//定時(shí)器2的 (控制標(biāo)志) 寄存器 (可位尋址)
- /************************************************************************
- BIT7 TF2 (定時(shí)計(jì)數(shù)器2中斷標(biāo)志位,1有效,必須由軟件清0,
- 當(dāng)該定時(shí)器作為波特率時(shí)不置該標(biāo)志位)
- BIT6 EXF2 (定時(shí)計(jì)數(shù)器2外部中斷標(biāo)志位,1有效,必須軟件清0,
- 當(dāng)EXEN2為1且T2EX引腳負(fù)跳變產(chǎn)生捕獲或重裝時(shí)引
- 起該中斷標(biāo)志位置1,在遞增/遞減模式即T2MOD中的
- DCEN = 1時(shí)及,EXF2為1不會(huì)引起中斷)
- BIT5 RCLK (為1時(shí)定時(shí)計(jì)數(shù)器2溢出脈沖作為串口接收波特率)
- BIT4 TCLK (為1時(shí)定時(shí)計(jì)數(shù)器2溢出脈沖作為串口發(fā)送波特率)
- BIT3 EXEN2 (定時(shí)計(jì)數(shù)器2外部中斷使能控制位,
- 當(dāng)該位為1且RCLK和TCLK同時(shí)為0時(shí)有效)
- BIT2 TR2 (定時(shí)計(jì)數(shù)器2啟動(dòng)控制位,1有效)
- BIT1 C/T2 (定時(shí)計(jì)數(shù)器2工作方式選擇控制位: 0時(shí)為內(nèi)部定時(shí)器
- 1時(shí)為外部事件計(jì)數(shù)器)
- BIT0 CP/RL2 (捕獲還是重裝選擇控制位:僅RCLK和TCLK同時(shí)為0時(shí)有效,
- 為0時(shí)且EXEN2=0,定時(shí)計(jì)數(shù)器2的溢出和T2EX引腳的負(fù)跳變
- 都能使TH2和TL2重裝;為1時(shí)且EXEN2=1,T2EX引腳負(fù)跳變產(chǎn)生
- 捕獲,TH2和TL2清0)
- *************************************************************************/
- sfr T2MOD = 0xC9;//定時(shí)計(jì)數(shù)器2模式控制寄存器 (不可位尋址)
- /************************************************************************
- BIT7 --- 0
- BIT6 --- 0
- BIT5 --- 0
- BIT4 --- 0
- BIT3 --- 0
- BIT2 --- 0
- BIT1 T2OE (定時(shí)計(jì)數(shù)器2中斷T2輸出使能控制位,1有效)
- BIT0 PX0 (向下計(jì)數(shù)使能位,為1時(shí)定時(shí)計(jì)數(shù)器2倒計(jì)數(shù))
- *************************************************************************/
- sfr RCAP2H = 0xCB;//定時(shí)計(jì)數(shù)器2再裝入緩沖區(qū)高字節(jié) (不可位尋址)
- sfr RCAP2L = 0xCA;//定時(shí)計(jì)數(shù)器2再裝入緩沖區(qū)低字節(jié) (不可位尋址)
- sfr TH2 = 0xCD;//定時(shí)計(jì)數(shù)器2高字節(jié) (不可位尋址)
- sfr TL2 = 0xCC;//定時(shí)計(jì)數(shù)器2低字節(jié) (不可位尋址)
- // BIT Registers
- // Port0
- sbit P0_7 = P0^7;
- sbit P0_6 = P0^6;
- sbit P0_5 = P0^5;
- sbit P0_4 = P0^4;
- sbit P0_3 = P0^3;
- sbit P0_2 = P0^2;
- sbit P0_1 = P0^1;
- sbit P0_0 = P0^0;
- // Port1
- sbit P1_7 = P1^7;
- sbit P1_6 = P1^6;
- sbit P1_5 = P1^5;
- sbit P1_4 = P1^4;
- sbit P1_3 = P1^3;
- sbit P1_2 = P1^2;
- sbit T2_EX = P1^1;
- sbit T2 = P1^0;
- // Port2
- sbit P2_7 = P2^7;
- sbit P2_6 = P2^6;
- sbit P2_5 = P2^5;
- sbit P2_4 = P2^4;
- sbit P2_3 = P2^3;
- sbit P2_2 = P2^2;
- sbit P2_1 = P2^1;
- sbit P2_0 = P2^0;
- // Port3
- sbit RD = P3^7;
- sbit WR = P3^6;
- sbit T1 = P3^5;
- sbit T0 = P3^4;
- sbit INT1 = P3^3;
- sbit INT0 = P3^2;
- sbit TXD = P3^1;
- sbit RXD = P3^0;
- // PSW
- sbit CY = PSW^7;
- sbit AC = PSW^6;
- sbit F0 = PSW^5;
- sbit RS1 = PSW^4;
- sbit RS0 = PSW^3;
- sbit OV = PSW^2;
- sbit F1 = PSW^1;
- sbit P = PSW^0;
- // SCON
- sbit SM0 = SCON^7;
- sbit SM1 = SCON^6;
- sbit SM2 = SCON^5;
- sbit REN = SCON^4;
- sbit TB8 = SCON^3;
- sbit RB8 = SCON^2;
- sbit TI = SCON^1;
- sbit RI = SCON^0;
- // IE
- sbit EA = IE^7;
- sbit ET2 = IE^5;
- sbit ES = IE^4;
- sbit ET1 = IE^3;
- sbit EX1 = IE^2;
- sbit ET0 = IE^1;
- sbit EX0 = IE^0;
- // IP
- sbit PT2 = IP^5;
- sbit PS = IP^4;
- sbit PT1 = IP^3;
- sbit PX1 = IP^2;
- sbit PT0 = IP^1;
- sbit PX0 = IP^0;
- // TCON
- sbit TF1 = TCON^7;
- sbit TR1 = TCON^6;
- sbit TF0 = TCON^5;
- sbit TR0 = TCON^4;
- sbit IE1 = TCON^3;
- sbit IT1 = TCON^2;
- sbit IE0 = TCON^1;
- sbit IT0 = TCON^0;
- // T2CON
- sbit TF2 = T2CON^7;
- sbit EXF2 = T2CON^6;
- sbit RCLK = T2CON^5;
- sbit TCLK = T2CON^4;
- sbit EXEN2 = T2CON^3;
- sbit TR2 = T2CON^2;
- sbit C_T2 = T2CON^1;
- sbit CP_RL2 = T2CON^0;
- //以下僅STC89C5X系列有效
- sfr AUXR = 0x8E;//擴(kuò)展RAM管理及禁止ALE輸出控制寄存器 (不可位尋址)
- /************************************************************************
- BIT7 --- 0
- BIT6 --- 0
- BIT5 --- 0
- BIT4 --- 0
- BIT3 --- 0
- BIT2 --- 0
- BIT1 EXTRAM (為0時(shí)允許使用內(nèi)部擴(kuò)展的RAM,為1時(shí)使用同普通 51 MCU)
- BIT0 ALEOFF (為0時(shí)允許ALE一直輸出固定的頻率信號,
- 為1時(shí)僅在對外存儲(chǔ)器有操作時(shí)輸出ALE控制信號)
- *************************************************************************/
- sfr AUXR1 = 0xA2;//雙數(shù)據(jù)指針控制寄存器 (不可位尋址)
- /************************************************************************
- BIT7 --- 0
- BIT6 --- 0
- BIT5 --- 0
- BIT4 --- 0
- BIT3 GF2 (通用功能用戶自定義位)
- BIT2 --- 0
- BIT1 --- 0
- BIT0 DPS (為0時(shí)使用DPTR0,為1時(shí)使用DPTR1)
- *************************************************************************/
- sfr IPH = 0xB7;//中斷優(yōu)先級控制寄存器高位(同IP配合組成4個(gè)中斷優(yōu)先級,不可位尋址)
- /************************************************************************
- BIT7 PX3H (外部中斷3中斷設(shè)置優(yōu)先級高位)
- BIT6 PX2H (外部中斷2中斷設(shè)置優(yōu)先級高位)
- BIT5 PT2H (定時(shí)計(jì)數(shù)器2中斷設(shè)置優(yōu)先級高位)
- BIT4 PSH (串口中斷設(shè)置優(yōu)先級高位)
- BIT3 PT1H (定時(shí)計(jì)數(shù)器1中斷設(shè)置優(yōu)先級高位)
- BIT2 PX1H (外部中斷1中斷設(shè)置優(yōu)先級高位)
- BIT1 PT0H (定時(shí)計(jì)數(shù)器0中斷設(shè)置優(yōu)先級高位)
- BIT0 PX0H (外部中斷0中斷設(shè)置優(yōu)先級高位)
-
- 中斷 代號 優(yōu)先級0 優(yōu)先級1 優(yōu)先級2 優(yōu)先級3 說明
- INTn PXnH,PXn 0,0 0,1 1,0 1,1 第n個(gè)外部中斷
- Timer PTnH,PTn 0,0 0,1 1,0 1,1 第n個(gè)定時(shí)器中斷
- USART PSH,PS 0,0 0,1 1,0 1,1 串口中斷
- *************************************************************************/
- sfr XICON = 0xC0;//擴(kuò)展外部中斷控制及標(biāo)志寄存器 (可位尋址)
- /************************************************************************
- BIT7 PX3 (外部中斷3優(yōu)先級設(shè)置低位)
- BIT6 EX3 (外部中斷3中斷使能控制位,1有效)
- BIT5 IE3 (外部中斷3中斷標(biāo)志位,1有效)
- BIT4 IT3 (外部中斷3引起中斷的方式: 0為低電平觸發(fā),1為下降沿觸發(fā))
- BIT3 PX2 (外部中斷2優(yōu)先級設(shè)置低位)
- BIT2 EX2 (外部中斷2中斷使能控制位,1有效)
- BIT1 IE2 (外部中斷2中斷標(biāo)志位,1有效)
- BIT0 IT2 (外部中斷2引起中斷的方式: 0為低電平觸發(fā),1為下降沿觸發(fā))
- *************************************************************************/
- sfr WDT_CONTR = 0xE1;//看門狗定時(shí)器控制寄存器 (不可位尋址)
- /************************************************************************
- BIT7 ---
- BIT6 ---
- BIT5 EN_WDT (看門狗啟動(dòng)控制位,1有效)
- BIT4 CLR_WDT (看門狗清零控制位,設(shè)置為1看門狗將重新計(jì)數(shù),該位硬件自動(dòng)清0)
- BIT3 IDLE_WDT (看門狗工作方式選擇位: 1時(shí)看門狗在"空閑模式"下計(jì)數(shù)
- 0時(shí)看門狗在"空閑模式"下不計(jì)數(shù))
- BIT2~BIT0 PS2~PS0 (看門狗定時(shí)器分頻模式:
- 0時(shí)為2分頻,1時(shí)為4分頻,2時(shí)為8分頻,3時(shí)為16分頻
- 4時(shí)為32分頻,5時(shí)為64分頻,6時(shí)為128分頻,7時(shí)為256分頻)
- //PS:看門狗的溢出時(shí)間公式 WDT_T(S) = (N*分頻值*32768)/晶振頻率(Hz) (其中當(dāng)在12 Clock 模式
- N = 12, 在6 Clock 模式
- N = 6)
- *************************************************************************/
- sfr ISP_DATA = 0xE2;//=ISP/IAP操作時(shí)使用的數(shù)據(jù)寄存器 (不可位尋址)
- sfr ISP_ADDRH = 0xE3;//=ISP/IAP操作時(shí)使用的地址寄存器高字節(jié) (不可位尋址)
- sfr ISP_ADDRL = 0xE4;//=ISP/IAP操作時(shí)使用的地址寄存器低字節(jié) (不可位尋址)
- sfr ISP_CMD = 0xE5;//=ISP/IAP操作時(shí)命令模式寄存器,需設(shè)置后ISP/IAP操作才有效 (不可位尋址)
- /************************************************************************
- BIT7 ---
- BIT6 ---
- BIT5 ---
- BIT4 ---
- BIT3 ---
- BIT2~BIT0 B2~B0 (為0時(shí) 待機(jī)模式,無ISP操作
- 為1時(shí) 對用戶程序Flash區(qū)或數(shù)據(jù)Flash區(qū)讀
- 為2時(shí) 對用戶程序Flash區(qū)或數(shù)據(jù)Flash區(qū)編程
- 為3時(shí) 對用戶程序Flash區(qū)或數(shù)據(jù)Flash區(qū)擦除)
- *************************************************************************/
- sfr ISP_TRIG = 0xE6;//=ISP/IAP操作時(shí)的命令觸發(fā)寄存器 (不可位尋址)
- /************************************************************************
- 在ISPEN(ISP_CONTR.7) = 1時(shí),對ISP_TRIG先寫入0x46,再寫入0xB9,ISP/IAP命令才能生效
- *************************************************************************/
- sfr ISP_CONTR = 0xE7;//=ISP/IAP控制寄存器 (不可位尋址)
- /************************************************************************
- BIT7 ISPEN (ISP/IAP功能允許位,1有效)
- BIT6 SWBS (軟件選擇從用戶主程序區(qū)啟動(dòng)(0),還是從ISP程序區(qū)啟動(dòng)(1))
- BIT5 SWRST (為0時(shí)不操作,為1時(shí)產(chǎn)生軟件復(fù)位,硬件自動(dòng)清0)
- BIT4 ---
- BIT3 ---
- BIT2~BIT0 WT2~WT0 (ISP/IAP操作等待的時(shí)間,晶振頻率越大,設(shè)置值越小)
- *************************************************************************/
- sfr P4 = 0xE8;//=P4口 (可位尋址)
- /************************************************************************
- BIT7 ---
- BIT6 ---
- BIT5 ---
- BIT4 ---
- BIT3 P4.3 INT2 (外部中斷2輸入端口)
- BIT2 P4.2 INT3 (外部中斷3輸入端口)
- BIT1 P4.1 (普通I/O口)
- BIT0 P4.0 (普通I/O口)
- *************************************************************************/
- // XICON
- sbit PX3 = XICON^7;
- sbit EX3 = XICON^6;
- sbit IE3 = XICON^5;
- sbit IT3 = XICON^4;
- sbit PX2 = XICON^3;
- sbit EX2 = XICON^2;
- sbit IE2 = XICON^1;
- sbit IT2 = XICON^0;
- // P4
- sbit P4_3 = P4^3;
- sbit P4_2 = P4^2;
- sbit P4_1 = P4^1;
- sbit P4_0 = P4^0;
- sbit INT3 = P4^2;
- sbit INT2 = P4^3;
- //以下僅STC89LE5X系列有效
- sfr P1_ADC_EN = 0x97;//=P1作為AD轉(zhuǎn)換輸入口使能控制寄存器 (不可位尋址)
- /************************************************************************
- BIT7 ADC_P17 (P1.7作為AD輸入口使能控制位)
- BIT6 ADC_P16 (P1.6作為AD輸入口使能控制位)
- BIT5 ADC_P15 (P1.5作為AD輸入口使能控制位)
- BIT4 ADC_P14 (P1.4作為AD輸入口使能控制位)
- BIT3 ADC_P13 (P1.3作為AD輸入口使能控制位)
- BIT2 ADC_P12 (P1.2作為AD輸入口使能控制位)
- BIT1 ADC_P11 (P1.1作為AD輸入口使能控制位)
- BIT0 ADC_P10 (P1.0作為AD輸入口使能控制位)
- *************************************************************************/
- sfr ADC_CONTR = 0xC5;//8位AD轉(zhuǎn)換控制及標(biāo)志寄存器 (不可位尋址)
- /************************************************************************
- BIT7 ---
- BIT6 ---
- BIT5 ---
- BIT4 ADC_FLAG (模數(shù)轉(zhuǎn)換啟動(dòng)控制位,設(shè)置為1開始轉(zhuǎn)換)
- BIT3 ADC_START (模數(shù)轉(zhuǎn)換結(jié)束標(biāo)志位,轉(zhuǎn)換完成后,該位置1)
- BIT2~BIT0 CHS2~CHS0 (選擇P2哪個(gè)端口輸入進(jìn)行AD轉(zhuǎn)換)
- *************************************************************************/
- sfr ADC_DATA = 0xC6;//8位AD轉(zhuǎn)換結(jié)果寄存器 (不可位尋址)
- #endif
復(fù)制代碼
|
|