久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

stc12c5a.h頭文件下載-支持keil

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2014年04月10日   【字體:

stc12c5a.h頭文件的下載地址是: http://www.zg4o1577.cn/f/stc12c5a.rar
可以嵌入到keil工程里面去,與工程文件放在同一個目錄即可.
這里有一個使用實例:http://www.zg4o1577.cn/mcu/3281.html
下面是頭文件的內(nèi)容預(yù)覽:

/*------------------------------------------------*/
/* --- 宏晶科技 STCMCU ---------------------------*/
/* --- Mobile: (86)13922805190 -------------------*/
/* --- Fax: 86-755-82944243 ----------------------*/
/* --- Tel: 86-755-82948412 ----------------------*/
/* 適用于: STC12C5AxxX   STC12LE5AxxX ------------*/
/* ------- STC12C5AxxCPP STC12LE5AxxCPP ----------*/
/* ------- STC12C5AxxAD  STC12LE5AxxAD  ----------*/
/* ------- STC12C5AxxS2  STC12LE5AxxS2  ----------*/
/* ------- IAP12C5Axx    IAP12LE5Axx    ----------*/
/* ------- IAP12C5AxxCPP IAP12LE5AxxCPP ----------*/
/* ------- IAP12C5AxxAD  IAP12LE5AxxAD  ----------*/
/* ------- IAP12C5AxxS2  IAP12LE5AxxS2  ----------*/
/*------------------------------------------------*/

#ifndef __STC12C5A_H__
#define __STC12C5A_H__

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  PSW        =   0xd0;       //程序狀態(tài)字            Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                CY      AC      F0      RS1     RS0     OV      F1      P
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

sbit CY         =   PSW^7;      //進(jìn)位標(biāo)志
sbit AC         =   PSW^6;      //輔助進(jìn)位標(biāo)志
sbit F0         =   PSW^5;      //用戶標(biāo)志
sbit RS1        =   PSW^4;      //寄存器組選擇位1
sbit RS0        =   PSW^3;      //寄存器組選擇位0
sbit OV         =   PSW^2;      //溢出標(biāo)志
sbit P          =   PSW^0;      //ACC的偶校驗位

/////////////////////////////////

sfr  ACC        =   0xe0;       //累加器                Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

sbit ACC7       =   ACC^7;      //累加器第7位
sbit ACC6       =   ACC^6;      //累加器第6位
sbit ACC5       =   ACC^5;      //累加器第5位
sbit ACC4       =   ACC^4;      //累加器第4位
sbit ACC3       =   ACC^3;      //累加器第3位
sbit ACC2       =   ACC^2;      //累加器第2位
sbit ACC1       =   ACC^1;      //累加器第1位
sbit ACC0       =   ACC^0;      //累加器第0位

/////////////////////////////////

sfr  B          =   0xf0;       //B寄存器               Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  SP         =   0x81;       //堆棧指針              Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0111      0       0       0       0       0       1       1       1

/////////////////////////////////

sfr  DPL        =   0x82;       //數(shù)據(jù)指針低字節(jié)        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  DPH        =   0x83;       //數(shù)據(jù)指針高字節(jié)        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  PCON       =   0x87;       //電源控制寄存器        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                SMOD    SMOD0   LVDF    POF     GF1     GF0     PD      IDL
                                //初始值=0011,0000      0       0       1       1       0       0       0       0

#define SMOD        0x80        //串口波特率倍速位,置1可使波特率快1倍
#define SMOD0       0x40        //FE/SM0選擇位,0:SCON.7為SM0 1:SCON.7為FE
#define LVDF        0x20        //低壓檢測中斷請求位,由硬件置1,需由軟件清0
#define POF         0x10        //上電復(fù)位標(biāo)志位,上電時由硬件置1,需由軟件清0
#define GF1         0x08        //通用標(biāo)志位1
#define GF0         0x04        //通用標(biāo)志位0
#define PD          0x02        //掉電控制位,寫1可以使MCU進(jìn)入PowerDown模式
#define IDL         0x01        //空閑控制位,寫1可以使MCU進(jìn)入Idle模式

/////////////////////////////////

sfr  WAKE_CLKO  =   0x8f;       //掉電喚醒/時鐘輸出控制 Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述          PCAWAKEUP RXDPINIE T1PINIE T0PINIE LVD_WAKEUP BRTCLKO T1VLKO  T0CLKO
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

#define PCAWAKEUP   0x80        //允許PCA的上升沿/下降沿中斷喚醒掉電MCU
#define RXD_PIN_IE  0x40        //允許RXD(P3.0)下降沿置位RI中斷時喚醒掉電MCU(必須打開相應(yīng)中斷)
#define T1_PIN_IE   0x20        //允許T1(P3.5)下降沿置位T1中斷時喚醒掉電MCU(必須打開相應(yīng)中斷)
#define T0_PIN_IE   0x10        //允許T0(P3.4)下降沿置位T0中斷時喚醒掉電MCU(必須打開相應(yīng)中斷)
#define LVD_WAKEUP  0x08        //允許LVD(P4.6)的低壓檢測中斷喚醒掉電MCU(必須打開相應(yīng)中斷)
#define BRTCLKOEN   0x04        //打開P1.0腳的BRT時鐘溢出脈沖,輸出的時鐘頻率為1/2倍的BRT溢出率
#define T1CLKOEN    0x02        //打開P3.5腳的定時器1時鐘溢出脈沖,輸出的時鐘頻率為1/2倍的T1溢出率
#define T0CLKOEN    0x01        //打開P3.4腳的定時器0時鐘溢出脈沖,輸出的時鐘頻率為1/2倍的T0溢出率

/////////////////////////////////

sfr  CLK_DIV    =   0x97;       //時鐘分頻寄存器        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       -       -       -       CLKS2   CLKS1   CLKS0
                                //初始值=xxxx,x000      x       x       x       x       x       0       0       0

#define FOSCD1      0x00        //系統(tǒng)時鐘為Fosc
#define FOSCD2      0x01        //系統(tǒng)時鐘為Fosc/2
#define FOSCD4      0x02        //系統(tǒng)時鐘為Fosc/4
#define FOSCD8      0x03        //系統(tǒng)時鐘為Fosc/8
#define FOSCD16     0x04        //系統(tǒng)時鐘為Fosc/16
#define FOSCD32     0x05        //系統(tǒng)時鐘為Fosc/32
#define FOSCD64     0x06        //系統(tǒng)時鐘為Fosc/64
#define FOSCD128    0x07        //系統(tǒng)時鐘為Fosc/128

/////////////////////////////////

sfr  BUS_SPEED  =   0xa1;       //數(shù)據(jù)總線速度控制器    Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       ALES1   ALES0   -       RWS2    RWS1    RWS0
                                //初始值=xx10,x011      x       x       1       0       x       0       1       1

#define ALES1       0x20        //P0地址建立時間和保持時間到ALE信號的下降沿的時鐘數(shù)
#define ALES0       0x10        //ALES1/ALES0=0/0:1個時鐘 0/1:2個時鐘 1/0:3個時鐘 1/1:4個時鐘

#define RWS2        0x04        //MOVX指令的時鐘數(shù)
#define RWS1        0x02        //RWS2/RWS1/RWS0=000:1個時鐘 001:2個時鐘 010:3個時鐘 011:4個時鐘
#define RWS0        0x01        //               100:5個時鐘 101:6個時鐘 110:7個時鐘 111:8個時鐘

/////////////////////////////////

sfr  WDT_CONTR  =   0xc1;       //看門狗定時器控制器    Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述             WDT_FLAG   -       EN_WDT  CLR_WDT IDL_WDT PS2     PS1     PS0
                                //初始值=0x00,0000      0       x       0       0       0       0       0       0

#define WDT_FLAG    0x80        //看門狗復(fù)位標(biāo)志,當(dāng)看門狗溢出產(chǎn)生復(fù)位后,硬件自動置1,需要由軟件清0
#define EN_WDT      0x20        //軟件使能看門狗,打開后不能用軟件的方式關(guān)閉
#define CLR_WDT     0x10        //清看門狗定時器
#define IDLE_WDT    0x08        //IDLE模式下,看門狗定時器是否繼續(xù)計時

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  AUXR       =   0x8e;       //輔助寄存器            Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                T0x12   T1x12   UM0x6   BRTR    S2SMOD  BRTx12  EXTRAM  S1BRS
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

#define T0x12       0x80        //定時器0時鐘控制,0:Fosc/12(傳統(tǒng)的12分頻) 1:Fosc/1(1T模式,不分頻,即12倍于傳統(tǒng)速度)
#define T1x12       0x40        //定時器1時鐘控制,0:Fosc/12(傳統(tǒng)的12分頻) 1:Fosc/1(1T模式,不分頻,即12倍于傳統(tǒng)速度)
#define UR0x6       0x20        //串口模式0的時鐘控制,0:Fosc/12(傳統(tǒng)的12分頻) 1:Fosc/2(2分頻,,即6倍于傳統(tǒng)速度)
#define BRTR        0x10        //獨(dú)立波特率發(fā)生器啟動控制位,1:啟動獨(dú)立波特率發(fā)生器 0:停止獨(dú)立波特率發(fā)生器
#define S2SMOD      0x08        //串口2波特率倍速位,置1可使串口2的波特率快1倍
#define BRTx12      0x04        //獨(dú)立波特率發(fā)生器時鐘控制,0:Fosc/12(傳統(tǒng)的12分頻) 1:Fosc/1(1T模式,不分頻,即12倍于傳統(tǒng)速度)
#define EXTRAM      0x02        //內(nèi)部擴(kuò)展RAM禁能位,0:內(nèi)部擴(kuò)展RAM有效 1:禁用內(nèi)部擴(kuò)展RAM
#define S1BRS       0x01        //串口1的波特率發(fā)生器選擇位,0:定時器1 1:獨(dú)立波特率發(fā)生器(注意串口2只能夠使用獨(dú)立波特率發(fā)生器)

/////////////////////////////////

sfr  AUXR1      =   0xa2;       //輔助寄存器1           Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       PCA_P4  SPI_P4  S2_P4   GF2     ADRJ    -       DPS
                                //初始值=x000,00x0      x       0       0       0       0       0       x       0

#define PCA_P4      0x40        //將PCA口映射到P4口,0:ECI(P1.2)CEX0(P1.3)CEX1(P1.4) 1:ECI(P4.1)CEX0(P4.2)CEX1(P4.3)
#define SPI_P4      0x20        //將SPI口映射到P4口,0:SCLK(P1.7)MISO(P1.6)MOSI(P1.5)SS(P1.4) 1:SCLK(P4.3)MISO(P4.2)MOSI(P4.1)SS(P4.0)
#define S2_P4       0x10        //將串口2映射到P4口,0:RXD2(P1.2)TXD2(P1.3) 1:RXD2(P4.2)TXD2(P4.3)
#define GF2         0x08        //通用標(biāo)志位2
#define ADRJ        0x04        //ADC結(jié)果調(diào)整,0:{ADC_RES[9876,5432],ADC_RESL[----,--10]} 1:{ADC_RES[----,--98],ADC_RESL[7654,3210]}
#define DPS         0x01        //DPTR0/DPTR1選擇位,0:DPTR0 1:DPTR1

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  P0         =   0x80;       //I/O端口0              Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                P0.7    P0.6    P0.5    P0.4    P0.3    P0.2    P0.1    P0.0
                                //初始值=1111,1111      1       1       1       1       1       1       1       1

sbit P07        =   P0^7;       //I/O口P0.7
sbit P06        =   P0^6;       //I/O口P0.6
sbit P05        =   P0^5;       //I/O口P0.5
sbit P04        =   P0^4;       //I/O口P0.4
sbit P03        =   P0^3;       //I/O口P0.3
sbit P02        =   P0^2;       //I/O口P0.2
sbit P01        =   P0^1;       //I/O口P0.1
sbit P00        =   P0^0;       //I/O口P0.0

/////////////////////////////////

sfr  P1         =   0x90;       //I/O端口0              Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                P1.7    P1.6    P1.5    P1.4    P1.3    P1.2    P1.1    P1.0
                                //初始值=1111,1111      1       1       1       1       1       1       1       1

sbit P17        =   P1^7;       //I/O口P1.7
sbit P16        =   P1^6;       //I/O口P1.6
sbit P15        =   P1^5;       //I/O口P1.5
sbit P14        =   P1^4;       //I/O口P1.4
sbit P13        =   P1^3;       //I/O口P1.3
sbit P12        =   P1^2;       //I/O口P1.2
sbit P11        =   P1^1;       //I/O口P1.1
sbit P10        =   P1^0;       //I/O口P1.0

sbit ADCIN7     =   P1^7;       //ADC通道7的模擬信號輸入腳
sbit ADCIN6     =   P1^6;       //ADC通道6的模擬信號輸入腳
sbit ADCIN5     =   P1^5;       //ADC通道5的模擬信號輸入腳
sbit ADCIN4     =   P1^4;       //ADC通道4的模擬信號輸入腳
sbit ADCIN3     =   P1^3;       //ADC通道3的模擬信號輸入腳
sbit ADCIN2     =   P1^2;       //ADC通道2的模擬信號輸入腳
sbit ADCIN1     =   P1^1;       //ADC通道1的模擬信號輸入腳
sbit ADCIN0     =   P1^0;       //ADC通道0的模擬信號輸入腳

sbit SPISCLK    =   P1^7;       //SPI總線的時鐘腳
sbit SPIMISO    =   P1^6;       //SPI總線的主出從入腳
sbit SPIMOSI    =   P1^5;       //SPI總線的主入從出腳
sbit SPISS      =   P1^4;       //SPI總線的從機(jī)選擇腳

sbit CEX1       =   P1^4;       //比較/捕獲/PWM1外部引腳
sbit CEX0       =   P1^3;       //比較/捕獲/PWM0外部引腳
sbit ECI        =   P1^2;       //比較/捕獲/PWM模塊的外部時鐘輸入腳(最大值為Fosc/2)

sbit TXD2       =   P1^3;       //串口2數(shù)據(jù)輸出腳
sbit RXD2       =   P1^2;       //串口2數(shù)據(jù)輸入腳

sbit BRTCLKO    =   P1^0;       //BRT時鐘溢出脈沖輸出腳

/////////////////////////////////

sfr  P2         =   0xa0;       //I/O端口2              Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                P2.7    P2.6    P2.5    P2.4    P2.3    P2.2    P2.1    P2.0
                                //初始值=1111,1111      1       1       1       1       1       1       1       1

sbit P27        =   P2^7;       //I/O口P2.7
sbit P26        =   P2^6;       //I/O口P2.6
sbit P25        =   P2^5;       //I/O口P2.5
sbit P24        =   P2^4;       //I/O口P2.4
sbit P23        =   P2^3;       //I/O口P2.3
sbit P22        =   P2^2;       //I/O口P2.2
sbit P21        =   P2^1;       //I/O口P2.1
sbit P20        =   P2^0;       //I/O口P2.0

/////////////////////////////////

sfr  P3         =   0xb0;       //I/O端口3              Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                P3.7    P3.6    P3.5    P3.4    P3.3    P3.2    P3.1    P3.0
                                //初始值=1111,1111      1       1       1       1       1       1       1       1

sbit P37        =   P3^7;       //I/O口P3.7
sbit P36        =   P3^6;       //I/O口P3.6
sbit P35        =   P3^5;       //I/O口P3.5
sbit P34        =   P3^4;       //I/O口P3.4
sbit P33        =   P3^3;       //I/O口P3.3
sbit P32        =   P3^2;       //I/O口P3.2
sbit P31        =   P3^1;       //I/O口P3.1
sbit P30        =   P3^0;       //I/O口P3.0

sbit RXD        =   P3^0;       //串口1的數(shù)據(jù)接收口
sbit TXD        =   P3^1;       //串口1的數(shù)據(jù)發(fā)送口
sbit INT0       =   P3^2;       //外部中斷0的信號輸入口
sbit INT1       =   P3^3;       //外部中斷1的信號輸出口
sbit T0         =   P3^4;       //定時器0的外部信號輸入口
sbit T1         =   P3^5;       //定時器1的外部信號輸入口
sbit WR         =   P3^6;       //外部數(shù)據(jù)存儲器的寫信號
sbit RD         =   P3^7;       //外部數(shù)據(jù)存儲器的讀信號

sbit T0CLKO     =   P3^4;       //定時器0的時鐘溢出脈沖輸出腳
sbit T1CLKO     =   P3^5;       //定時器1的時鐘溢出脈沖輸出腳

/////////////////////////////////

sfr  P4         =   0xc0;       //I/O端口4              Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                P4.7    P4.6    P4.5    P4.4    P4.3    P4.2    P4.1    P4.0
                                //初始值=1111,1111      1       1       1       1       1       1       1       1

sbit P47        =   P4^7;       //I/O口P4.7
sbit P46        =   P4^6;       //I/O口P4.6
sbit P45        =   P4^5;       //I/O口P4.5
sbit P44        =   P4^4;       //I/O口P4.4
sbit P43        =   P4^3;       //I/O口P4.3
sbit P42        =   P4^2;       //I/O口P4.2
sbit P41        =   P4^1;       //I/O口P4.1
sbit P40        =   P4^0;       //I/O口P4.0

sbit RST        =   P4^7;       //復(fù)位腳,可通過編程器設(shè)置
sbit EX_LVD     =   P4^6;       //外部低壓檢測引腳

sbit P4SPISCLK  =   P4^3;       //SPI總線的時鐘腳
sbit P4SPIMISO  =   P4^2;       //SPI總線的主出從入腳
sbit P4SPIMOSI  =   P4^1;       //SPI總線的主入從出腳
sbit P4SPISS    =   P4^0;       //SPI總線的從機(jī)選擇腳

sbit P4CEX1     =   P4^3;       //比較/捕獲/PWM1外部引腳
sbit P4CEX0     =   P4^2;       //比較/捕獲/PWM0外部引腳
sbit P4ECI      =   P4^1;       //比較/捕獲/PWM模塊的外部時鐘輸入腳(最大值為Fosc/2)

sbit P4TXD2     =   P4^3;       //串口2數(shù)據(jù)輸出腳
sbit P4RXD2     =   P4^2;       //串口2數(shù)據(jù)輸入腳

/////////////////////////////////

sfr  P5         =   0xc8;       //I/O端口5              Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       -       -       P5.3    P5.2    P5.1    P5.0
                                //初始值=xxxx,1111      x       x       x       x       1       1       1       1

sbit P53        =   P5^3;       //I/O口P5.3
sbit P52        =   P5^2;       //I/O口P5.2
sbit P51        =   P5^1;       //I/O口P5.1
sbit P50        =   P5^0;       //I/O口P5.0

/////////////////////////////////

sfr  P1M1       =   0x91;       //I/O口1模式控制器1     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初/始值=0000,0000     0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  P1M0       =   0x92;       //I/O口1模式控制器0     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  P0M1       =   0x93;       //I/O口0模式控制器1     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  P0M0       =   0x94;       //I/O口0模式控制器0     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  P2M1       =   0x95;       //I/O口2模式控制器1     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  P2M0       =   0x96;       //I/O口2模式控制器0     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  P3M1       =   0xb1;       //I/O口3模式控制器1     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初/始值=0000,0000     0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  P3M0       =   0xb2;       //I/O口3模式控制器0     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  P4M1       =   0xb3;       //I/O口4模式控制器1     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  P4M0       =   0xb4;       //I/O口4模式控制器0     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  P5M1       =   0xc9;       //I/O口5模式控制器1     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=xxxx,0000      x       x       x       x       0       0       0       0

/////////////////////////////////

sfr  P5M0       =   0xca;       //I/O口5模式控制器0     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=xxxx,0000      x       x       x       x       0       0       0       0

/////////////////////////////////

// PxM1 PxM0
//  0    0     準(zhǔn)雙向口
//  0    1     強(qiáng)推挽輸出
//  1    0     高阻輸入態(tài)
//  1    1     開漏輸出

/////////////////////////////////

sfr  P1ASF      =   0x9d;       //P1口模擬功能控制位    Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                P17ASF  P16ASF  P15ASF  P14ASF  P13ASF  P12ASF  P11ASF  P10ASF
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

#define P17ASF      0x80        //P1.7口為ADC輸入腳
#define P16ASF      0x40        //P1.7口為ADC輸入腳
#define P15ASF      0x20        //P1.7口為ADC輸入腳
#define P14ASF      0x10        //P1.7口為ADC輸入腳
#define P13ASF      0x08        //P1.7口為ADC輸入腳
#define P12ASF      0x04        //P1.7口為ADC輸入腳
#define P11ASF      0x02        //P1.7口為ADC輸入腳
#define P10ASF      0x01        //P1.7口為ADC輸入腳

/////////////////////////////////

sfr  P4SW       =   0xbb;       //P4口的功能開關(guān)        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -    LVD_P4.6 ALE_P4.5 NA_P4.4  -       -       -       -
                                //初始值=x000,xxxx      x       0       0       0       x       x       x       x

#define P46EN       0x40        //傳統(tǒng)的EA腳 0:為LVD的信號引入腳 1:為P4.6
#define P45EN       0x20        //傳統(tǒng)的ALE腳 0:仍為ALE 1:為P4.5
#define P44EN       0x10        //傳統(tǒng)的PSEN腳 0:無任何功能 1:為P4.4

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  IE         =   0xa8;       //中斷使能寄存器        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                EA      ELVD    EADC    ES      ET1     EX1     ET0     EX0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

sbit EA         =   IE^7;       //總中斷開關(guān)
sbit ELVD       =   IE^6;       //LVD中斷使能位
sbit EADC       =   IE^5;       //ADC中斷使能位
sbit ES         =   IE^4;       //串口中斷使能位
sbit ET1        =   IE^3;       //定時器1中斷使能位
sbit EX1        =   IE^2;       //外部中斷1中斷使能位
sbit ET0        =   IE^1;       //定時器0中斷使能位
sbit EX0        =   IE^0;       //外部中斷0中斷使能位

/////////////////////////////////

sfr  IE2        =   0xaf;       //中斷使能寄存器2       Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       -       -       -       -       ESPI    ES2
                                //初始值=xxxx,xx00      x       x       x       x       x       x       0       0

#define ESPI        0x02        //SPI中斷使能位
#define ES2         0x01        //串口2中斷使能位

/////////////////////////////////

#define X0_INTNO    0           //外部中斷0中斷號,入口地址為0003H
#define T0_INTNO    1           //定時器0中斷號,入口地址為000BH
#define X1_INTNO    2           //外部中斷1中斷號,入口地址為0013H
#define T1_INTNO    3           //定時器1中斷號,入口地址為001BH
#define UART_INTNO  4           //串口中斷號,入口地址為0023H
#define ADC_INTNO   5           //ADC中斷號,入口地址為002BH
#define LVD_INTNO   6           //LVD中斷號,入口地址為0033H
#define UART2_INTNO 8           //串口2中斷號,入口地址為0043H
#define SPI_INTNO   9           //SPI中斷號,入口地址為004BH

/////////////////////////////////

sfr  IP2        =   0xb5;       //中斷優(yōu)先級寄存器2     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       -       -       -       -       PSPI    PS2
                                //初始值=xxxx,xx00      x       x       x       x       x       x       0       0

#define PSPI        0x02        //SPI中斷優(yōu)先級控制低位
#define PS2         0x01        //串口2中斷優(yōu)先級控制低位

/////////////////////////////////

sfr  IP2H       =   0xb6;       //中斷優(yōu)先級寄存器2高位 Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       -       -       -       -       PSPIH   PS2H
                                //初始值=xxxx,xx00      x       x       x       x       x       x       0       0

#define PSPIH       0x02        //SPI中斷優(yōu)先級控制高位
#define PS2H        0x01        //串口2中斷優(yōu)先級控制高位

/////////////////////////////////

sfr  IPH        =   0xb7;       //中斷優(yōu)先級寄存器高位  Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                PPCAH   PLVDH   PADCH   PSH     PT1H    PX1H    PT0H    PX0H
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

#define PPCAH       0x80        //PCA中斷優(yōu)先級控制高位
#define PLVDH       0x40        //LVD中斷優(yōu)先級控制高位
#define PADCH       0x20        //ADC中斷優(yōu)先級控制高位
#define PSH         0x10        //串口中斷優(yōu)先級控制高位
#define PT1H        0x08        //定時器1中斷優(yōu)先級控制高位
#define PX1H        0x04        //外部中斷1中斷優(yōu)先級控制高位
#define PT0H        0x02        //定時器0中斷優(yōu)先級控制高位
#define PX0H        0x01        //外部中斷0中斷優(yōu)先級控制高位

/////////////////////////////////

sfr  IP         =   0xb8;       //中斷優(yōu)先級寄存器      Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                PPCA    PLVD    PADC    PS      PT1     PX1     PT0     PX0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

sbit PPCA       =   IP^7;       //PCA中斷優(yōu)先級控制低位
sbit PLVD       =   IP^6;       //LVD中斷優(yōu)先級控制低位
sbit PADC       =   IP^5;       //ADC中斷優(yōu)先級控制低位
sbit PS         =   IP^4;       //串口中斷優(yōu)先級控制低位
sbit PT1        =   IP^3;       //定時器1中斷優(yōu)先級控制低位
sbit PX1        =   IP^2;       //外部中斷1中斷優(yōu)先級控制低位
sbit PT0        =   IP^1;       //定時器0中斷優(yōu)先級控制低位
sbit PX0        =   IP^0;       //外部中斷0中斷優(yōu)先級控制低位

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  TCON       =   0x88;       //定時器0/1控制寄存器   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                TF1     TR1     TF0     TR0     IE1     IT1     IE0     IT0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

sbit TF1        = TCON^7;       //定時器1溢出標(biāo)志,由硬件置1,可由軟件清0或者在中斷處理程序完成后由硬件自動清0
sbit TR1        = TCON^6;       //定時器1的啟動控制位,1:啟動定時器 0:停止定時器
sbit TF0        = TCON^5;       //定時器0溢出標(biāo)志,由硬件置1,可由軟件清0或者在中斷處理程序完成后由硬件自動清0
sbit TR0        = TCON^4;       //定時器0的啟動控制位,1:啟動定時器 0:停止定時器
sbit IE1        = TCON^3;       //外部中斷1的中斷請求位,由硬件置1,可由軟件清0或者在中斷處理程序完成后由硬件自動清0
sbit IT1        = TCON^2;       //外部中斷1的觸發(fā)類型,0:低電平觸發(fā)外部中斷 1:下降沿觸發(fā)外部中斷
sbit IE0        = TCON^1;       //外部中斷0的中斷請求位,由硬件置1,可由軟件清0或者在中斷處理程序完成后由硬件自動清0
sbit IT0        = TCON^0;       //外部中斷0的觸發(fā)類型,0:低電平觸發(fā)外部中斷 1:下降沿觸發(fā)外部中斷

/////////////////////////////////

sfr  TMOD       =   0x89;       //定時器0/1模式寄存器   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                GATE    C/T#    M1      M0      GATE    C/T#    M1      M0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

#define GATE1       0x80        //定時器1啟動控制位,0:TR1為1時啟動定時器1 1:TR1為1且INT1為高電平時才啟動定時器1
#define C_T1        0x40        //定時器/計數(shù)器選擇位,0:定時器(時鐘源為內(nèi)部時鐘) 1:計數(shù)器(時鐘源為T1引腳的外部時鐘)
#define T1_M0       0x00        //定時器1操作模式0:13位定時器
#define T1_M1       0x10        //定時器1操作模式1:16位定時器
#define T1_M2       0x20        //定時器1操作模式2:8位自動重載定時器
#define T1_M3       0x30        //定時器1操作模式3:定時器1停止
#define GATE0       0x08        //定時器1啟動控制位,0:TR0為1時啟動定時器1 1:TR0為1且INT0為高電平時才啟動定時器0
#define C_T0        0x04        //定時器/計數(shù)器選擇位,0:定時器(時鐘源為內(nèi)部時鐘) 1:計數(shù)器(時鐘源為T0引腳的外部時鐘)
#define T0_M0       0x00        //定時器0操作模式0:13位定時器
#define T0_M1       0x01        //定時器0操作模式1:16位定時器
#define T0_M2       0x02        //定時器0操作模式2:8位自動重載定時器
#define T0_M3       0x03        //定時器0操作模式3:TL0和TH0為兩組獨(dú)立8位定時器

/////////////////////////////////

sfr  TL0        = 0x8a;         //定時器0的低8位計數(shù)值  Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  TL1        = 0x8b;         //定時器1的低8位計數(shù)值  Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  TH0        = 0x8c;         //定時器0的高8位計數(shù)值  Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  TH1        = 0x8d;         //定時器1的高8位計數(shù)值  Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  SCON       =   0x98;       //串口控制寄存器        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                SM0/FE  SM1     SM2     REN     TB8     RB8     TI      Ri
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

sbit FE         =   SCON^7;     //幀錯誤檢測位,當(dāng)串口模塊在接收數(shù)據(jù)時沒有檢測到正確的停止位時,FE被硬件置1,需要由軟件來清0(當(dāng)SMOD0為1時,FE有效)
sbit SM0        =   SCON^7;     //串口模式設(shè)置位
sbit SM1        =   SCON^6;     //SM0/SM1=0/0:移位寄存器 0/1:8位可變波特率 1/0:9位固定波特率 1/1:9位可變波特率
sbit SM2        =   SCON^5;     //自動地址識別使能位
sbit REN        =   SCON^4;     //使能串口接收模塊
sbit TB8        =   SCON^3;     //發(fā)送的第9位數(shù)據(jù)
sbit RB8        =   SCON^2;     //接收的第9位數(shù)據(jù)
sbit TI         =   SCON^1;     //發(fā)送完成中斷標(biāo)志
sbit RI         =   SCON^0;     //接收完成中斷標(biāo)志

/////////////////////////////////

sfr  SBUF       =   0x99;       //串口接收/發(fā)送數(shù)據(jù)     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=xxxx,xxxx      x       x       x       x       x       x       x       x

/////////////////////////////////

sfr  S2CON      =   0x9a;       //串口2控制寄存器       Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                SM0/FE  SM1     SM2     REN     TB8     RB8     TI      Ri
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

#define S2SM0       0x80        //串口2模式設(shè)置位
#define S2SM1       0x40        //SM0/SM1=0/0:移位寄存器 0/1:8位可變波特率 1/0:9位固定波特率 1/1:9位可變波特率
#define S2SM2       0x20        //自動地址識別使能位
#define S2REN       0x10        //使能串口2接收模塊
#define S2TB8       0x08        //發(fā)送的第9位數(shù)據(jù)
#define S2RB8       0x04        //接收的第9位數(shù)據(jù)
#define S2TI        0x02        //發(fā)送完成中斷標(biāo)志
#define S2RI        0x01        //接收完成中斷標(biāo)志

/////////////////////////////////

sfr  S2BUF      =   0x9b;       //串口2接收/發(fā)送數(shù)據(jù)    Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=xxxx,xxxx      x       x       x       x       x       x       x       x

/////////////////////////////////

sfr  SADDR      =   0xa9;       //串口設(shè)備從地址寄存器  Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  SADEN      =   0xb9;       //串口設(shè)備從地址屏蔽位  Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  BRT        =   0x9c;       //獨(dú)立波特率發(fā)生器重載值Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  ADC_CONTR  =   0xbc;       //ADC控制寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述            ADC_POWER  SPEED1 SPEED0 ADC_FLAG ADC_START CHS2    CHS1    CHS0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

#define ADC_POWER   0x80        //ADC模塊電源控制位
#define ADC_SPEEDLL 0x00        //每次轉(zhuǎn)換需要420個時鐘周期
#define ADC_SPEEDL  0x20        //每次轉(zhuǎn)換需要280個時鐘周期
#define ADC_SPEEDH  0x40        //每次轉(zhuǎn)換需要140個時鐘周期
#define ADC_SPEEDHH 0x60        //每次轉(zhuǎn)換需要70個時鐘周期
#define ADC_FLAG    0x10        //ADC轉(zhuǎn)換完成標(biāo)志
#define ADC_START   0x08        //ADC開始轉(zhuǎn)換控制位
#define ADC_CHS2    0x04        //ADC通道選擇位2
#define ADC_CHS1    0x02        //ADC通道選擇位1
#define ADC_CHS0    0x01        //ADC通道選擇位0

/////////////////////////////////

sfr  ADC_RES    =   0xbd;       //ADC結(jié)果高字節(jié)         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  ADC_RESL   =   0xbe;       //ADC結(jié)果低字節(jié)         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  IAP_DATA   =   0xc2;       //IAP數(shù)據(jù)寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=1111,1111      1       1       1       1       1       1       1       1

/////////////////////////////////

sfr  IAP_ADDRH  =   0xc3;       //IAP地址高位寄存器     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  IAP_ADDRL  =   0xc4;       //IAP地址低位寄存器     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  IAP_CMD    =   0xc5;       //IAP命令寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=xxxx,xx00      x       x       x       x       x       x       0       0

#define IAP_IDLE    0x00        //IAP待機(jī)命令
#define IAP_READ    0x01        //IAP讀字節(jié)數(shù)據(jù)命令
#define IAP_PROGRAM 0x02        //IAP字節(jié)編程命令
#define IAP_ERASE   0x03        //IAP扇區(qū)擦除命令(每扇區(qū)512字節(jié)))

/////////////////////////////////

sfr  IAP_TRIG   =   0xc6;       //IAP命令觸發(fā)寄存器     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=xxxx,xxxx      x       x       x       x       x       x       x       x

#define IAP_TRIG0   0x5a        //IAP功能觸發(fā)命令1
#define IAP_TRIG1   0xa5        //IAP功能觸發(fā)命令2

/////////////////////////////////

sfr  IAP_CONTR  =   0xc7;       //IAP控制寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                IAPEN   SWBS    SWRST   CMD_FAIL -      WT2     WT1     WT0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

#define IAPEN       0x80        //IAP使能開關(guān)
#define SWBS        0x40        //軟啟動選擇,0:從用戶AP啟動 1:從ISP啟動
#define SWRST       0x20        //觸發(fā)軟件復(fù)位
#define CMD_FAIL    0x10        //IAP命令失敗標(biāo)志

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  SPSTAT     =   0xcd;       //SPI狀態(tài)寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                SPIF    WCOL    -       -       -       -       -       -
                                //初始值=11xx,xxxx      1       1       x       x       x       x       x       x

#define SPIF        0x80        //SPI傳輸完成標(biāo)志,當(dāng)SPI中斷使能時會觸發(fā)SPI中斷請求,需要用軟件向此位寫"1"來清0
#define WCOL        0x40        //SPI寫沖突標(biāo)志,需要用軟件向此位寫"1"來清0

/////////////////////////////////

sfr  SPCTL      =   0xce;       //SPI控制寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                SSIG    SPEN    DORD    MSTR    CPOL    CPHA    SPR1    SPR0
                                //初始值=0000,0100      0       0       0       0       0       1       0       0

#define SSIG        0x80        //SS忽略位,1:由MSTR確定主/從 0:由SS腳確定主/從
#define SPEN        0x40        //SPI模塊使能位
#define DORD        0x20        //SPI數(shù)據(jù)順序,1:LSB(先收/發(fā)最低位) 0:MSB(先收/發(fā)最高位)
#define MSTR        0x10        //主/從模式選擇位
#define CPOL        0x08        //SPI時鐘極性
#define CPHA        0x04        //SPI相位選擇
#define SPSPEEDHH   0x00        //最快的速度,CPU_CLK/4
#define SPSPEEDH    0x01        //最快的速度,CPU_CLK/16
#define SPSPEEDL    0x02        //最快的速度,CPU_CLK/64
#define SPSPEEDLL   0x03        //最快的速度,CPU_CLK/128

/////////////////////////////////

sfr  SPDAT      =   0xcf;       //SPI數(shù)據(jù)寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  CCON       =   0xd8;       //PCA控制寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                CF      CR      -       -       -       -       CCF1    CCF0
                                //初始值=00xx,xx00      0       0       x       x       x       x       0       0

sbit CF         =   CCON^7;     //PCA計數(shù)器溢出標(biāo)志,當(dāng)PCA中斷使能時會觸發(fā)PCA中斷請求,需要用軟件清0
sbit CR         =   CCON^6;     //PCA計數(shù)器啟動控制位,寫"1"啟動?xùn)|計數(shù)器
sbit CCF1       =   CCON^1;     //PCA模塊1中斷標(biāo)志,需要用軟件清0
sbit CCF0       =   CCON^0;     //PCA模塊0中斷標(biāo)志,需要用軟件清0

/////////////////////////////////

sfr  CMOD       =   0xd9;       //PCA模式寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                CIDL    -       -       -       CPS2    CPS1    CPS0    ECF
                                //初始值=0xxx,0000      0       x       x       x       0       0       0       0

#define CIDL        0x80        //計時器陣列空閑控制,0:空閑模式下PCA繼續(xù)工作 1:空閑模式下PCA停止工作
#define PCACLK0     0x00        //Fosc/12
#define PCACLK1     0x02        //Fosc/2
#define PCACLK2     0x04        //定時器0的溢出率
#define PCACLK3     0x06        //ECI外部時鐘
#define PCACLK4     0x08        //Fosc/1
#define PCACLK5     0x0a        //Fosc/4
#define PCACLK6     0x0c        //Fosc/6
#define PCACLK7     0x0e        //Fosc/8
#define ECF         0x01        //PCA計數(shù)器溢出中斷允許位

/////////////////////////////////

sfr  CCAPM0     =   0xda;       //PCA模塊0模式寄存器    Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       ECOM0   CAPP0   CAPN0   MAT0    TOG0    PWM0    ECCF0
                                //初始值=x000,0000      x       0       0       0       0       0       0       0

#define PCA0_ECOM   0x40        //使能比較器0
#define PCA0_CAPP   0x20        //使能PCA模塊0的上升沿捕獲
#define PCA0_CAPN   0x10        //使能PCA模塊0的下降沿捕獲
#define PCA0_MAT    0x08        //匹配使能,當(dāng)PCA的計數(shù)值與模塊0設(shè)定的值相匹配時,置CCON.CCF0
#define PCA0_TOG    0x04        //翻轉(zhuǎn)控制位,當(dāng)PCA的計數(shù)值與模塊0設(shè)定的值相匹配時,翻轉(zhuǎn)CEX0的電平
#define PCA0_PWM    0x02        //脈寬調(diào)制模式,使能CEX0為脈寬調(diào)制輸出口
#define PCA0_ECCF   0x01        //使能CCF0中斷

/////////////////////////////////

sfr  CCAPM1     =   0xdb;       //PCA模塊1模式寄存器    Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       ECOM1   CAPP1   CAPN1   MAT1    TOG1    PWM1    ECCF1
                                //初始值=x000,0000      x       0       0       0       0       0       0       0

#define PCA1_ECOM   0x40        //使能比較器1
#define PCA1_CAPP   0x20        //使能PCA模塊1的上升沿捕獲
#define PCA1_CAPN   0x10        //使能PCA模塊1的下降沿捕獲
#define PCA1_MAT    0x08        //匹配使能,當(dāng)PCA的計數(shù)值與模塊1設(shè)定的值相匹配時,置CCON.CCF1
#define PCA1_TOG    0x04        //翻轉(zhuǎn)控制位,當(dāng)PCA的計數(shù)值與模塊1設(shè)定的值相匹配時,翻轉(zhuǎn)CEX1的電平
#define PCA1_PWM    0x02        //脈寬調(diào)制模式,使能CEX1為脈寬調(diào)制輸出口
#define PCA1_ECCF   0x01        //使能CCF1中斷

/////////////////////////////////

//CCAPM0   -   ECOM CAPP CAPN MAT  TOG  PWM  CCF
// 00H     0    0    0    0    0    0    0    0     無操作,待機(jī)狀態(tài)
// 42H     0    1    0    0    0    0    1    0     8位PWM輸出,無中斷
// 63H     0    1    1    0    0    0    1    1     8位PWM輸出,產(chǎn)生CEX0上升沿中斷
// 53H     0    1    0    1    0    0    1    1     8位PWM輸出,產(chǎn)生CEX0下降沿中斷
// 73H     0    1    1    1    0    0    1    1     8位PWM輸出,產(chǎn)生CEX0跳變中斷
// 20H     0    x    1    0    0    0    0    0     16位捕獲模式,CEX0上升沿觸發(fā)捕獲
// 10H     0    x    0    1    0    0    0    0     16位捕獲模式,CEX0下降沿觸發(fā)捕獲
// 30H     0    x    1    1    0    0    0    0     16位捕獲模式,CEX0跳變觸發(fā)捕獲
// 48H     0    1    0    0    1    0    0    0     16位軟件定時器
// 4CH     0    1    0    0    1    1    0    0     16位高速脈沖輸出

/////////////////////////////////

sfr  CL         =   0xe9;       //PCA計數(shù)器低8位        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CH         =   0xf9;       //PCA計數(shù)器高8位        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP0L     =   0xea;       //PCA模塊0寄存器低8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP1L     =   0xeb;       //PCA模塊1寄存器低8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP0H     =   0xfa;       //PCA模塊0寄存器高8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP1H     =   0xfb;       //PCA模塊1寄存器高8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  PCA_PWM0   =   0xf2;       //PCA0模式PWM輔助寄存器 Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       -       -       -       -       EPC0H   EPC0L
                                //初始值=xxxx,xx00      x       x       x       x       x       x       0       0

/////////////////////////////////

sfr  PCA_PWM1   =   0xf3;       //PCA1模式PWM輔助寄存器 Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       -       -       -       -       EPC1H   EPC1L
                                //初始值=xxxx,xx00      x       x       x       x       x       x       0       0

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#endif

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 亚州激情| 午夜欧美一区二区三区在线播放 | 日日操日日干 | 人人九九精 | 国产99视频精品免视看9 | 一区二区三区免费在线观看 | 女人精96xxx免费网站p | 国产成人精品免费视频 | 欧美精品一区在线 | 久久一区二区三区四区 | 巨大荫蒂视频欧美另类大 | 久久精品亚洲精品国产欧美 | 91就要激情| 久操伊人 | 亚洲视频一 | 国产一区视频在线 | 日韩高清黄色 | 亚洲精品小视频在线观看 | 91精品国产91久久久久久吃药 | 天天综合久久 | 中文视频在线 | 一区二区国产在线 | 亚洲高清视频在线观看 | 免费观看www | 亚洲国产欧美一区二区三区久久 | 欧美综合在线观看 | 国产欧美日韩在线播放 | 91精品国产色综合久久不卡蜜臀 | av看片| 欧美福利在线 | 97中文视频| 欧美国产日韩一区二区三区 | 精品视频一区二区三区 | 91免费看片 | 激情综合五月 | 久久久国产精品 | 成人av在线播放 | 日韩视频区 | 99热国产在线播放 | 久久另类视频 | 国产1区2区3区 |