打印
[ZLG-MCU]

需要一份lpc952的头文件!

[复制链接]
2639|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wtt1314|  楼主 | 2007-12-7 14:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
wtt1314|  楼主 | 2007-12-7 15:45 | 只看该作者

我写了一个,不知道能用不能用,呵呵

                          //*******************************************************************************************

/*--------------------------------------------------------------------------
REG952.H
Header file for Philips 89LPC952

--------------------------------------------------------------------------*/

#ifndef __REG952_H__
#define __REG952_H__

/* Include memory mapped SFRs */
/* Analog Digital Converter 0*/
#define ADC0HBND (*((unsigned char volatile xdata*)0xFFEF))
#define ADC0LBND (*((unsigned char volatile xdata*)0xFFEE))
#define AD0DAT0R (*((unsigned char volatile xdata*)0xFFFE))
#define AD0DAT0L (*((unsigned char volatile xdata*)0xFFFF))
#define AD0DAT1R (*((unsigned char volatile xdata*)0xFFFC))
#define AD0DAT1L (*((unsigned char volatile xdata*)0xFFFD))
#define AD0DAT2R (*((unsigned char volatile xdata*)0xFFFA))
#define AD0DAT2L (*((unsigned char volatile xdata*)0xFFFB))
#define AD0DAT3R (*((unsigned char volatile xdata*)0xFFF8))
#define AD0DAT3L (*((unsigned char volatile xdata*)0xFFF9))
#define AD0DAT4R (*((unsigned char volatile xdata*)0xFFF6))
#define AD0DAT4L (*((unsigned char volatile xdata*)0xFFF7))
#define AD0DAT5R (*((unsigned char volatile xdata*)0xFFF4))
#define AD0DAT5L (*((unsigned char volatile xdata*)0xFFF5))
#define AD0DAT6R (*((unsigned char volatile xdata*)0xFFF2))
#define AD0DAT6L (*((unsigned char volatile xdata*)0xFFF3))
#define AD0DAT7R (*((unsigned char volatile xdata*)0xFFF0))
#define AD0DAT7L (*((unsigned char volatile xdata*)0xFFF1))
#define BNDSTA0  (*((unsigned char volatile xdata*)0xFFED))

#define BRGCON_1 (*((unsigned char volatile xdata*)0xFFB3))
#define BRG0_1   (*((unsigned char volatile xdata*)0xFFB4))
#define BRG1_1   (*((unsigned char volatile xdata*)0xFFB5))
#define P4M1     (*((unsigned char volatile xdata*)0xFFB8))
#define P4M2     (*((unsigned char volatile xdata*)0xFFB9))
#define P5M1     (*((unsigned char volatile xdata*)0xFFBA))
#define P5M2     (*((unsigned char volatile xdata*)0xFFBB))
#define S1ADDR   (*((unsigned char volatile xdata*)0xFFB2))
#define S1ADEN   (*((unsigned char volatile xdata*)0xFFB1))
#define S1BUF    (*((unsigned char volatile xdata*)0xFFB0))


/*  BYTE Registers  */
sfr ACC  = 0xE0;
sfr AD0CON = 0x97;
sfr AD0INS = 0xA3;
sfr ADMODA = 0xC0;
sfr ADMODB = 0xA1;
sfr AUXR1  = 0xA2;

sfr B    = 0xF0;
sfr BRGR0_0  = 0xBE;
sfr BRGR1_0  = 0xBF;
sfr BRGCON_0 = 0xBD;

sfr CMP1   = 0xAC;
sfr CMP2   = 0xAD;

sfr DIVM   = 0x95;
sfr DPH    = 0x83;
sfr DPL    = 0x82;
sfr FADRH  = 0xE7;
sfr FMADRL = 0xE6;
sfr FMCON  = 0xE4;
sfr FMDATA = 0xE5;

sfr I2ADR  = 0xDB;
sfr I2CON  = 0xD8;
sfr I2DAT  = 0xDA;
sfr I2SCLH = 0xDD;
sfr I2SCLL = 0xDC;
sfr I2STAT = 0xD9;

sfr IEN0   = 0xA8;
sfr IEN1   = 0xE8;
sfr IEN2   = 0xD5;
sfr IP0    = 0xB8;
sfr IP0H   = 0xB7;
sfr IP1    = 0xF8;
sfr IP1H   = 0xF7;
sfr IP2    = 0xD6;
sfr IP2H   = 0xD7;

sfr KBCON  = 0x94;
sfr KBMASK = 0x86;
sfr KBPATN = 0x93;

sfr P0   = 0x80;
sfr P1   = 0x90;
sfr P2   = 0xA0;
sfr P3   = 0xB0;
sfr P4   = 0xB3;
sfr P5   = 0xB4;


sfr P0M1   = 0x84;
sfr P0M2   = 0x85;
sfr P1M1   = 0x91;
sfr P1M2   = 0x92;
sfr P2M1   = 0xA4;
sfr P2M2   = 0xA5;
sfr P3M1   = 0xB1;
sfr P3M2   = 0xB2;
sfr PCON   = 0x87;
sfr PCONA  = 0xB5;
sfr PSW    = 0xD0;
sfr PT0AD  = 0xF6;

sfr RSTSRC = 0xDF;
sfr RTCCON = 0xD1;
sfr RTCH   = 0xD2;
sfr RTCL   = 0xD3;

sfr S0ADDR  = 0xA9;
sfr S0ADEN  = 0xB9;
sfr S0BUF   = 0x99;
sfr S0CON   = 0x98;
sfr S0STAT  = 0xBA;
sfr SP      = 0x81;
sfr SPCTL   = 0xE2;
sfr SPSTAT  = 0xE1;
sfr SPDAT   = 0xE3;
sfr S1CON   = 0xB6;
sfr S1STAT  = 0xD4;

sfr TAMOD  = 0x8F;
sfr TCON   = 0x88;
sfr TH0    = 0x8C;
sfr TH1    = 0x8D;
sfr TL0    = 0x8A;
sfr TL1    = 0x8B;
sfr TMOD   = 0x89;
sfr TRIM   = 0x96;

sfr WDCON  = 0xA7;
sfr WDL    = 0xC1;
sfr WFEED1 = 0xC2;
sfr WFEED2 = 0xC3;


/*  BIT Registers  */
/*  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;

/*  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;

/*  IEN0   */
sbit EA   = IEN0^7;
sbit EWDRT = IEN0^6;
sbit EBO   = IEN0^5;
sbit ES   = IEN0^4; // alternatively "ESR"
sbit ESR  = IEN0^4;
sbit ET1  = IEN0^3;
sbit EX1  = IEN0^2;
sbit ET0  = IEN0^1;
sbit EX0  = IEN0^0;

/*  IEN1   */
sbit EAD  = IEN1^7; // alternatively "EIEE" 
sbit EIEE = IEN1^7;
sbit EST  = IEN1^6;
sbit ECCU = IEN1^4;
sbit ESPI = IEN1^3;
sbit EC   = IEN1^2;
sbit EKBI = IEN1^1;
sbit EI2C = IEN1^0;

/*  IP0   */ 
sbit PWDRT = IP0^6;
sbit PB0   = IP0^5;
sbit PS    = IP0^4; // alternatively "PSR"
sbit PSR   = IP0^4;
sbit PT1   = IP0^3;
sbit PX1   = IP0^2;
sbit PT0   = IP0^1;
sbit PX0   = IP0^0;

/*  IP1   */
sbit PAD  = IP1^7; // alternatively "PIEE" 
sbit PIEE = IP1^7;
sbit PST  = IP1^6;
sbit PCCU = IP1^4;
sbit PSPI = IP1^3;
sbit PC_  = IP1^2;
sbit PKBI = IP1^1;
sbit PI2C = IP1^0;

/*  S0CON  */
sbit SM0_0  = S0CON^7; // alternatively "FE"
sbit FE_0   = S0CON^7;
sbit SM1_0  = S0CON^6;
sbit SM2_0  = S0CON^5;
sbit REN_0  = S0CON^4;
sbit TB8_0  = S0CON^3;
sbit RB8_0  = S0CON^2;
sbit TI_0   = S0CON^1;
sbit RI_0   = S0CON^0;

/*  S1CON  */
sbit SM0_1  = S1CON^7; // alternatively "FE"
sbit FE_1   = S1CON^7;
sbit SM1_1  = S1CON^6;
sbit SM2_1  = S1CON^5;
sbit REN_1  = S1CON^4;
sbit TB8_1  = S1CON^3;
sbit RB8_1  = S1CON^2;
sbit TI_1   = S1CON^1;
sbit RI_1   = S1CON^0;

/*  I2CON  */
sbit I2EN  = I2CON^6;
sbit STA   = I2CON^5;
sbit STO   = I2CON^4;
sbit SI    = I2CON^3;
sbit AA    = I2CON^2;
sbit CRSEL = I2CON^0;

/*  P0  */
sbit KB7 = P0^7; // alternatively "T1"
sbit T1 = P0^7;
sbit KB6 = P0^6; // alternatively "CMP1"
//sbit CMP1 = P0^6;
sbit KB5 = P0^5;
sbit KB4 = P0^4;
sbit KB3 = P0^3;
sbit KB2 = P0^2;
sbit KB1 = P0^1;
sbit KB0 = P0^0; // alternatively "CMP2"
//sbit CMP2 = P0^0;


/*  P3  */
sbit XTAL1= P3^1;
sbit XTAL2= P3^0;

/* TCR20 */
sbit PLLEN = TCR20^7;
sbit HLTRN = TCR20^6;
sbit HLTEN = TCR20^5;
sbit ALTCD = TCR20^4;
sbit ALTAB = TCR20^3;
sbit TDIR2 = TCR20^2;
sbit TMOD21= TCR20^1;
sbit TMOD20= TCR20^0;

/* ADMODA */
sbit BNDI0  = ADMODA^7;
sbit BURST0 = ADMODA^6;
sbit SCC0   = ADMODA^5;
sbit SCAN0  = ADMODA^4;
#endif

使用特权

评论回复
板凳
LPC900| | 2007-12-7 16:52 | 只看该作者

楼主是勤快人,能自己写

对照数据手册,写出这样一个头文件没有任何难度,但寄存器太多,需要有足够的耐心。

使用特权

评论回复
地板
liujigan| | 2007-12-7 18:36 | 只看该作者

keil 里不是有现成的吗?我一直在用它

使用特权

评论回复
5
wtt1314|  楼主 | 2007-12-8 11:19 | 只看该作者

更正

楼上的,不知道用的是那个版本的??
我装了两个一个是uvision27.5版本的,另外一个是uvision3,3.0版本的,只能在uvision3里面用,但是没有头文件。
我写的那个头文件是有问题的,每考虑周全,串口uart1是不能进行位操作的,只能进行字节操作,头文件更正如下
                          //*******************************************************************************************

/*--------------------------------------------------------------------------
REG952.H
Header file for Philips 89LPC952

--------------------------------------------------------------------------*/

#ifndef __REG952_H__
#define __REG952_H__

/* Include memory mapped SFRs */
/* Analog Digital Converter 0*/
#define ADC0HBND (*((unsigned char volatile xdata*)0xFFEF))
#define ADC0LBND (*((unsigned char volatile xdata*)0xFFEE))
#define AD0DAT0R (*((unsigned char volatile xdata*)0xFFFE))
#define AD0DAT0L (*((unsigned char volatile xdata*)0xFFFF))
#define AD0DAT1R (*((unsigned char volatile xdata*)0xFFFC))
#define AD0DAT1L (*((unsigned char volatile xdata*)0xFFFD))
#define AD0DAT2R (*((unsigned char volatile xdata*)0xFFFA))
#define AD0DAT2L (*((unsigned char volatile xdata*)0xFFFB))
#define AD0DAT3R (*((unsigned char volatile xdata*)0xFFF8))
#define AD0DAT3L (*((unsigned char volatile xdata*)0xFFF9))
#define AD0DAT4R (*((unsigned char volatile xdata*)0xFFF6))
#define AD0DAT4L (*((unsigned char volatile xdata*)0xFFF7))
#define AD0DAT5R (*((unsigned char volatile xdata*)0xFFF4))
#define AD0DAT5L (*((unsigned char volatile xdata*)0xFFF5))
#define AD0DAT6R (*((unsigned char volatile xdata*)0xFFF2))
#define AD0DAT6L (*((unsigned char volatile xdata*)0xFFF3))
#define AD0DAT7R (*((unsigned char volatile xdata*)0xFFF0))
#define AD0DAT7L (*((unsigned char volatile xdata*)0xFFF1))
#define BNDSTA0  (*((unsigned char volatile xdata*)0xFFED))

#define BRGCON_1 (*((unsigned char volatile xdata*)0xFFB3))
#define BRG0_1   (*((unsigned char volatile xdata*)0xFFB4))
#define BRG1_1   (*((unsigned char volatile xdata*)0xFFB5))
#define P4M1     (*((unsigned char volatile xdata*)0xFFB8))
#define P4M2     (*((unsigned char volatile xdata*)0xFFB9))
#define P5M1     (*((unsigned char volatile xdata*)0xFFBA))
#define P5M2     (*((unsigned char volatile xdata*)0xFFBB))
#define S1ADDR   (*((unsigned char volatile xdata*)0xFFB2))
#define S1ADEN   (*((unsigned char volatile xdata*)0xFFB1))
#define S1BUF    (*((unsigned char volatile xdata*)0xFFB0))


/*  BYTE Registers  */
sfr ACC  = 0xE0;
sfr AD0CON = 0x97;
sfr AD0INS = 0xA3;
sfr ADMODA = 0xC0;
sfr ADMODB = 0xA1;
sfr AUXR1  = 0xA2;

sfr B    = 0xF0;
sfr BRGR0_0  = 0xBE;
sfr BRGR1_0  = 0xBF;
sfr BRGCON_0 = 0xBD;

sfr CMP1   = 0xAC;
sfr CMP2   = 0xAD;

sfr DIVM   = 0x95;
sfr DPH    = 0x83;
sfr DPL    = 0x82;
sfr FADRH  = 0xE7;
sfr FMADRL = 0xE6;
sfr FMCON  = 0xE4;
sfr FMDATA = 0xE5;

sfr I2ADR  = 0xDB;
sfr I2CON  = 0xD8;
sfr I2DAT  = 0xDA;
sfr I2SCLH = 0xDD;
sfr I2SCLL = 0xDC;
sfr I2STAT = 0xD9;

sfr IEN0   = 0xA8;
sfr IEN1   = 0xE8;
sfr IEN2   = 0xD5;
sfr IP0    = 0xB8;
sfr IP0H   = 0xB7;
sfr IP1    = 0xF8;
sfr IP1H   = 0xF7;
sfr IP2    = 0xD6;
sfr IP2H   = 0xD7;

sfr KBCON  = 0x94;
sfr KBMASK = 0x86;
sfr KBPATN = 0x93;

sfr P0   = 0x80;
sfr P1   = 0x90;
sfr P2   = 0xA0;
sfr P3   = 0xB0;
sfr P4   = 0xB3;
sfr P5   = 0xB4;


sfr P0M1   = 0x84;
sfr P0M2   = 0x85;
sfr P1M1   = 0x91;
sfr P1M2   = 0x92;
sfr P2M1   = 0xA4;
sfr P2M2   = 0xA5;
sfr P3M1   = 0xB1;
sfr P3M2   = 0xB2;
sfr PCON   = 0x87;
sfr PCONA  = 0xB5;
sfr PSW    = 0xD0;
sfr PT0AD  = 0xF6;

sfr RSTSRC = 0xDF;
sfr RTCCON = 0xD1;
sfr RTCH   = 0xD2;
sfr RTCL   = 0xD3;

sfr S0ADDR  = 0xA9;
sfr S0ADEN  = 0xB9;
sfr S0BUF   = 0x99;
sfr S0CON   = 0x98;
sfr S0STAT  = 0xBA;
sfr SP      = 0x81;
sfr SPCTL   = 0xE2;
sfr SPSTAT  = 0xE1;
sfr SPDAT   = 0xE3;
sfr S1CON   = 0xB6;
sfr S1STAT  = 0xD4;

sfr TAMOD  = 0x8F;
sfr TCON   = 0x88;
sfr TH0    = 0x8C;
sfr TH1    = 0x8D;
sfr TL0    = 0x8A;
sfr TL1    = 0x8B;
sfr TMOD   = 0x89;
sfr TRIM   = 0x96;

sfr WDCON  = 0xA7;
sfr WDL    = 0xC1;
sfr WFEED1 = 0xC2;
sfr WFEED2 = 0xC3;


/*  BIT Registers  */
/*  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;

/*  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;

/*  IEN0   */
sbit EA   = IEN0^7;
sbit EWDRT = IEN0^6;
sbit EBO   = IEN0^5;
sbit ES   = IEN0^4; // alternatively "ESR"
sbit ESR  = IEN0^4;
sbit ET1  = IEN0^3;
sbit EX1  = IEN0^2;
sbit ET0  = IEN0^1;
sbit EX0  = IEN0^0;

/*  IEN1   */
sbit EAD  = IEN1^7; // alternatively "EIEE" 
sbit EIEE = IEN1^7;
sbit EST  = IEN1^6;
sbit ECCU = IEN1^4;
sbit ESPI = IEN1^3;
sbit EC   = IEN1^2;
sbit EKBI = IEN1^1;
sbit EI2C = IEN1^0;

/*  IP0   */ 
sbit PWDRT = IP0^6;
sbit PB0   = IP0^5;
sbit PS    = IP0^4; // alternatively "PSR"
sbit PSR   = IP0^4;
sbit PT1   = IP0^3;
sbit PX1   = IP0^2;
sbit PT0   = IP0^1;
sbit PX0   = IP0^0;

/*  IP1   */
sbit PAD  = IP1^7; // alternatively "PIEE" 
sbit PIEE = IP1^7;
sbit PST  = IP1^6;
sbit PCCU = IP1^4;
sbit PSPI = IP1^3;
sbit PC_  = IP1^2;
sbit PKBI = IP1^1;
sbit PI2C = IP1^0;

/*  S0CON  */
sbit SM0_0  = S0CON^7; // alternatively "FE"
sbit FE_0   = S0CON^7;
sbit SM1_0  = S0CON^6;
sbit SM2_0  = S0CON^5;
sbit REN_0  = S0CON^4;
sbit TB8_0  = S0CON^3;
sbit RB8_0  = S0CON^2;
sbit TI_0   = S0CON^1;
sbit RI_0   = S0CON^0;

/*  I2CON  */
sbit I2EN  = I2CON^6;
sbit STA   = I2CON^5;
sbit STO   = I2CON^4;
sbit SI    = I2CON^3;
sbit AA    = I2CON^2;
sbit CRSEL = I2CON^0;

/*  P0  */
sbit KB7 = P0^7; // alternatively "T1"
sbit T1 = P0^7;
sbit KB6 = P0^6; // alternatively "CMP1"
//sbit CMP1 = P0^6;
sbit KB5 = P0^5;
sbit KB4 = P0^4;
sbit KB3 = P0^3;
sbit KB2 = P0^2;
sbit KB1 = P0^1;
sbit KB0 = P0^0; // alternatively "CMP2"
//sbit CMP2 = P0^0;


/*  P3  */
sbit XTAL1= P3^1;
sbit XTAL2= P3^0;



/* ADMODA */
sbit BNDI0  = ADMODA^7;
sbit BURST0 = ADMODA^6;
sbit SCC0   = ADMODA^5;
sbit SCAN0  = ADMODA^4;
#endif

使用特权

评论回复
6
wolfmfch| | 2007-12-16 12:24 | 只看该作者

汇编的

;-------------------------------------------------------------------------------
; P89LPC952 Processor Declarations
;
; WRITED  BY   WangJiading      2007.6.10
;-------------------------------------------------------------------------------
$SAVE
$NOLIST
;/* Include memory mapped SFRs */
;/* Analog Digital Converter 0*/
ADC0HBND DATA 0xFFEF    ;ADC0高_边界寄存器,左(MSB)
ADC0LBND DATA 0xFFEE    ;ADC0低_边界寄存器(MSB)
AD0DAT0R DATA 0xFFFE    ;ADC0数据寄存器0,右(MSB)
AD0DAT0L DATA 0xFFFF    ;ADC0数据寄存器0,左(MSB)
AD0DAT1R DATA 0xFFFC    ;ADC0数据寄存器1,右(MSB)
AD0DAT1L DATA 0xFFFD    ;ADC0数据寄存器1,左(MSB)
AD0DAT2R DATA 0xFFFA    ;ADC0数据寄存器2,右(MSB)
AD0DAT2L DATA 0xFFFB    ;ADC0数据寄存器2,左(MSB)
AD0DAT3R DATA 0xFFF8    ;ADC0数据寄存器3,右(MSB)
AD0DAT3L DATA 0xFFF9    ;ADC0数据寄存器3,左(MSB)
AD0DAT4R DATA 0xFFF6    ;ADC0数据寄存器4,右(MSB)
AD0DAT4L DATA 0xFFF7    ;ADC0数据寄存器4,左(MSB)
AD0DAT5R DATA 0xFFF4    ;ADC0数据寄存器5,右(MSB)
AD0DAT5L DATA 0xFFF5    ;ADC0数据寄存器5,左(MSB)
AD0DAT6R DATA 0xFFF2    ;ADC0数据寄存器6,右(MSB)
AD0DAT6L DATA 0xFFF3    ;ADC0数据寄存器6,左(MSB)
AD0DAT7R DATA 0xFFF0    ;ADC0数据寄存器7,右(MSB)
AD0DAT7L DATA 0xFFF1    ;ADC0数据寄存器7,左(MSB)
BNDSTA0  DATA 0xFFED    ;ADC0边界状态寄存器
BRGCON_1 DATA 0xFFB3    ;波特率发生器1控制寄存器
BRG0_1   DATA 0xFFB4    ;波特率发生器1低字节
BRG1_1   DATA 0xFFB5    ;波特率发生器1高字节

;/* Port 4/5 Configuration */
P4M1     DATA 0xFFB8    ;P4输出模式1
P4M2     DATA 0xFFB9    ;P4输出模式2
P5M1     DATA 0xFFBA    ;P5输出模式1
P5M2     DATA 0xFFBB    ;P5输出模式2

;/* Serial 1 Configuration */
S1ADDR   DATA 0xFFB2    ;串口1地址寄存器
S1ADEN   DATA 0xFFB1    ;串口1地址使能寄存器
S1BUF    DATA 0xFFB0    ;串口1数据缓冲器寄存器

;/*  BYTE Registers  */
P0   DATA 0x80;
P1   DATA 0x90;
P2   DATA 0xA0;
P3   DATA 0xB0;
P4   DATA 0xB3;
P5   DATA 0xB4;

PSW  DATA 0xD0;
ACC  DATA 0xE0;
B    DATA 0xF0;
SP   DATA 0x81;
DPL  DATA 0x82;
DPH  DATA 0x83;
PCON DATA 0x87;
TCON DATA 0x88;
TMOD DATA 0x89;
TL0  DATA 0x8A;
TL1  DATA 0x8B;
TH0  DATA 0x8C;
TH1  DATA 0x8D;
IEN0 DATA 0xA8;
IP0  DATA 0xB8;
S0CON DATA 0x98;
S0BUF DATA 0x99;

AD0CON DATA 0x97;
AD0INS DATA 0xA3;
AD0MODA DATA 0xC0;
AD0MODB DATA 0xA1;

AUXR1  DATA 0xA2;
S0ADDR DATA 0xA9;
S0ADEN DATA 0xB9;
BRGR0_0  DATA 0xBE;
BRGR1_0  DATA 0xBF;
BRGCON_0 DATA 0xBD;
CMP1   DATA 0xAC;
CMP2   DATA 0xAD;

DIVM   DATA 0x95;
FMADRH DATA 0xE7;
FMADRL DATA 0xE6;
FMCON  DATA 0xE4;
FMDATA DATA 0xE5;
I2ADR  DATA 0xDB;
I2CON  DATA 0xD8;
I2DAT  DATA 0xDA;
I2SCLH DATA 0xDD;
I2SCLL DATA 0xDC;
I2STAT DATA 0xD9;
IEN1   DATA 0xE8;
IEN2   DATA 0xD5;
IP1    DATA 0xF8;
IP1H   DATA 0xF7;
IP2    DATA 0xD6;
IP2H   DATA 0xD7;
KBCON  DATA 0x94;
KBMASK DATA 0x86;
KBPATN DATA 0x93;

P0M1   DATA 0x84;
P0M2   DATA 0x85;
P1M1   DATA 0x91;
P1M2   DATA 0x92;
P2M1   DATA 0xA4;
P2M2   DATA 0xA5;
P3M1   DATA 0xB1;
P3M2   DATA 0xB2;
PCONA  DATA 0xB5;
PT0AD  DATA 0xF6;
RSTSRC DATA 0xDF;
RTCCON DATA 0xD1;
RTCH   DATA 0xD2;
RTCL   DATA 0xD3;
S0STAT DATA 0xBA;
SPCTL  DATA 0xE2;
SPSTAT DATA 0xE1;
SPDAT  DATA 0xE3;
S1CON  DATA 0xB6;
S1STAT DATA 0xD4;
TAMOD  DATA 0x8F;

TRIM   DATA 0x96;
WDCON  DATA 0xA7;
WDL    DATA 0xC1;
WFEED1 DATA 0xC2;
WFEED2 DATA 0xC3;
IP0H   DATA 0xB7;

;/*  BIT Registers  */
;/*  PSW   */
CY   BIT PSW.7;
AC   BIT PSW.6;
F0   BIT PSW.5;
RS1  BIT PSW.4;
RS0  BIT PSW.3;
OV   BIT PSW.2;
F1   BIT PSW.1;
P    BIT PSW.0;

;/*  TCON  */
TF1  BIT TCON.7;
TR1  BIT TCON.6;
TF0  BIT TCON.5;
TR0  BIT TCON.4;
IE1  BIT TCON.3;
IT1  BIT TCON.2;
IE0  BIT TCON.1;
IT0  BIT TCON.0;

;/*  IEN0   */
EA   BIT IEN0.7;
EWDRT BIT IEN0.6;
EBO   BIT IEN0.5;
ES   BIT IEN0.4; // alternatively "ESR"
ESR  BIT IEN0.4;
ET1  BIT IEN0.3;
EX1  BIT IEN0.2;
ET0  BIT IEN0.1;
EX0  BIT IEN0.0;

;/*  IEN1   */
EAD  BIT IEN1.7; // alternatively "EIEE" 
EIEE BIT IEN1.7;
EST  BIT IEN1.6;
ECCU BIT IEN1.4;
ESPI BIT IEN1.3;
EC   BIT IEN1.2;
EKBI BIT IEN1.1;
EI2C BIT IEN1.0;

;/*  IP0   */ 
PWDRT BIT IP0.6;
PB0   BIT IP0.5;
PS    BIT IP0.4; // alternatively "PSR"
PSR   BIT IP0.4;
PT1   BIT IP0.3;
PX1   BIT IP0.2;
PT0   BIT IP0.1;
PX0   BIT IP0.0;

;/*  IP1   */
PAD  BIT IP1.7; // alternatively "PIEE" 
PIEE BIT IP1.7;
PST  BIT IP1.6;
PCCU BIT IP1.4;
PSPI BIT IP1.3;
PC_  BIT IP1.2;
PKBI BIT IP1.1;
PI2C BIT IP1.0;

;/*  S0CON  */串口0控制寄存器,地址:98H
SM0_0  BIT S0CON.7;该位的用途由PCON寄存器中的SMOD0决定 // alternatively "FE"
FE_0   BIT S0CON.7;alternatively "FE"
SM1_0  BIT S0CON.6;和SM0_0定义串行口操作模式
SM2_0  BIT S0CON.5;使能模式2和3中的多机通信功能
REN_0  BIT S0CON.4;使能串行接受
TB8_0  BIT S0CON.3;模式2和3中将要发送的第9位数据
RB8_0  BIT S0CON.2;模式2和3中,该位为接受到的第9位数据
TI_0   BIT S0CON.1;发送中断标志0
RI_0   BIT S0CON.0;接收中断标志0

;/*  S1CON各位屏蔽字  */串口1控制寄存器,地址:0B6H
SM0_1_MSK  DATA 0x80;  // alternatively "FE"
FE_1_MSK   DATA 0x80
SM1_1_MSK  DATA 0x40
SM2_1_MSK  DATA 0x20
REN_1_MSK  DATA 0x10
TB8_1_MSK  DATA 0x08
RB8_1_MSK  DATA 0x04
TI_1_MSK   DATA 0x02
RI_1_MSK   DATA 0x01


;/*  I2CON  */I2C控制寄存器,地址:0D8H
I2EN  BIT I2CON.6;I2C接口使能
STA   BIT I2CON.5;起始标志
STO   BIT I2CON.4;停止标志
SI    BIT I2CON.3;I2C中断标志
AA    BIT I2CON.2;发送应答标志
CRSEL BIT I2CON.0;SCL时钟选择

;/*  P0  */
KB7 BIT P0.7; // alternatively "T1"
T1  BIT P0.7;
KB6 BIT P0.6; // alternatively "CMP1";CMP1 DATA P0.6;
KB5 BIT P0.5;
KB4 BIT P0.4;
KB3 BIT P0.3;
KB2 BIT P0.2;
KB1 BIT P0.1;
KB0 BIT P0.0; // alternatively "CMP2"//CMP2 DATA P0.0;

;/*  P1  */
OCC     BIT P1.7;
OCB     BIT P1.6;
RST     BIT P1.5;
INT1    BIT P1.4;
;INT0    BIT P1.3; // alternatively "SDA"
;SDA     BIT P1.3;
;T0      BIT P1.2; // alternatively "SCL"
;SCL     BIT P1.2;
RxD     BIT P1.1;
TxD     BIT P1.0;

;/*  P2  */
ICA     BIT P2.7;
OCA     BIT P2.6;
SPICLK  BIT P2.5;
SS      BIT P2.4;
MISO    BIT P2.3;
MOSI    BIT P2.2;
OCD     BIT P2.1;
ICB     BIT P2.0;

;/*  P3  */
XTAL1 BIT P3.1;
XTAL2 BIT P3.0;

;/* ADMODA */
BNDI0  BIT AD0MODA.7;
BURST0 BIT AD0MODA.6;
SCC0   BIT AD0MODA.5;
SCAN0  BIT AD0MODA.4;

$RESTORE

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

75

帖子

0

粉丝