?? stc12c5a.h
字號:
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; //中斷優先級寄存器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中斷優先級控制低位
#define PS2 0x01 //串口2中斷優先級控制低位
/////////////////////////////////
sfr IP2H = 0xb6; //中斷優先級寄存器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中斷優先級控制高位
#define PS2H 0x01 //串口2中斷優先級控制高位
/////////////////////////////////
sfr IPH = 0xb7; //中斷優先級寄存器高位 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中斷優先級控制高位
#define PLVDH 0x40 //LVD中斷優先級控制高位
#define PADCH 0x20 //ADC中斷優先級控制高位
#define PSH 0x10 //串口中斷優先級控制高位
#define PT1H 0x08 //定時器1中斷優先級控制高位
#define PX1H 0x04 //外部中斷1中斷優先級控制高位
#define PT0H 0x02 //定時器0中斷優先級控制高位
#define PX0H 0x01 //外部中斷0中斷優先級控制高位
/////////////////////////////////
sfr IP = 0xb8; //中斷優先級寄存器 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中斷優先級控制低位
sbit PLVD = IP^6; //LVD中斷優先級控制低位
sbit PADC = IP^5; //ADC中斷優先級控制低位
sbit PS = IP^4; //串口中斷優先級控制低位
sbit PT1 = IP^3; //定時器1中斷優先級控制低位
sbit PX1 = IP^2; //外部中斷1中斷優先級控制低位
sbit PT0 = IP^1; //定時器0中斷優先級控制低位
sbit PX0 = IP^0; //外部中斷0中斷優先級控制低位
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
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溢出標志,由硬件置1,可由軟件清0或者在中斷處理程序完成后由硬件自動清0
sbit TR1 = TCON^6; //定時器1的啟動控制位,1:啟動定時器 0:停止定時器
sbit TF0 = TCON^5; //定時器0溢出標志,由硬件置1,可由軟件清0或者在中斷處理程序完成后由硬件自動清0
sbit TR0 = TCON^4; //定時器0的啟動控制位,1:啟動定時器 0:停止定時器
sbit IE1 = TCON^3; //外部中斷1的中斷請求位,由硬件置1,可由軟件清0或者在中斷處理程序完成后由硬件自動清0
sbit IT1 = TCON^2; //外部中斷1的觸發類型,0:低電平觸發外部中斷 1:下降沿觸發外部中斷
sbit IE0 = TCON^1; //外部中斷0的中斷請求位,由硬件置1,可由軟件清0或者在中斷處理程序完成后由硬件自動清0
sbit IT0 = TCON^0; //外部中斷0的觸發類型,0:低電平觸發外部中斷 1:下降沿觸發外部中斷
/////////////////////////////////
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 //定時器/計數器選擇位,0:定時器(時鐘源為內部時鐘) 1:計數器(時鐘源為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 //定時器/計數器選擇位,0:定時器(時鐘源為內部時鐘) 1:計數器(時鐘源為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為兩組獨立8位定時器
/////////////////////////////////
sfr TL0 = 0x8a; //定時器0的低8位計數值 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr TL1 = 0x8b; //定時器1的低8位計數值 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr TH0 = 0x8c; //定時器0的高8位計數值 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr TH1 = 0x8d; //定時器1的高8位計數值 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; //幀錯誤檢測位,當串口模塊在接收數據時沒有檢測到正確的停止位時,FE被硬件置1,需要由軟件來清0(當SMOD0為1時,FE有效)
sbit SM0 = SCON^7; //串口模式設置位
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; //發送的第9位數據
sbit RB8 = SCON^2; //接收的第9位數據
sbit TI = SCON^1; //發送完成中斷標志
sbit RI = SCON^0; //接收完成中斷標志
/////////////////////////////////
sfr SBUF = 0x99; //串口接收/發送數據 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模式設置位
#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 //發送的第9位數據
#define S2RB8 0x04 //接收的第9位數據
#define S2TI 0x02 //發送完成中斷標志
#define S2RI 0x01 //接收完成中斷標志
/////////////////////////////////
sfr S2BUF = 0x9b; //串口2接收/發送數據 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=xxxx,xxxx x x x x x x x x
/////////////////////////////////
sfr SADDR = 0xa9; //串口設備從地址寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr SADEN = 0xb9; //串口設備從地址屏蔽位 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr BRT = 0x9c; //獨立波特率發生器重載值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 //每次轉換需要420個時鐘周期
#define ADC_SPEEDL 0x20 //每次轉換需要280個時鐘周期
#define ADC_SPEEDH 0x40 //每次轉換需要140個時鐘周期
#define ADC_SPEEDHH 0x60 //每次轉換需要70個時鐘周期
#define ADC_FLAG 0x10 //ADC轉換完成標志
#define ADC_START 0x08 //ADC開始轉換控制位
#define ADC_CHS2 0x04 //ADC通道選擇位2
#define ADC_CHS1 0x02 //ADC通道選擇位1
#define ADC_CHS0 0x01 //ADC通道選擇位0
/////////////////////////////////
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -