hotpower 发表于 2005-9-26 12:34:08

LPC213XDEF.H

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

文   件   名:LPC213XDEF.H

创   建   人:ARM菜鸟HotPower@126.com

创 建 日期:2005.7.23   0:38

最近修改日期:2005.7.2310:38

创 建 地 点 : 西安大雁塔村队部

说       明 : 未经过硬件调试

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





#ifndef __LPC213xDEF_H

#define __LPC213xDEF_H



#define BV(val) (1 << val)



#define VICIntSel_Watchdog   0//看门狗中断(WDINT)

#define VICIntSel_SoftInt1   1//保留给软件中断

#define VICIntSel_DbgCommRx2//ARM内核中断

#define VICIntSel_DbgCommTx3//ARM内核中断

#define VICIntSel_Time0      4//定时器0中断

#define VICIntSel_Time1      5//定时器1中断

#define VICIntSel_UART0      6//UART0中断

#define VICIntSel_UART1      7//UART1中断

#define VICIntSel_PWM0       8//PWM0中断

#define VICIntSel_I2C0       9//I2C0中断

#define VICIntSel_SPI0      10//SPI0中断

#define VICIntSel_SSP       11//SSP中断

#define VICIntSel_SPI1      11//SPI1中断

#define VICIntSel_PLL       12//PLL中断

#define VICIntSel_RTC       13//RTC中断

#define VICIntSel_EINT0   14//系统控制外部中断0

#define VICIntSel_EINT1   15//系统控制外部中断1

#define VICIntSel_EINT2   16//系统控制外部中断2

#define VICIntSel_EINT3   17//系统控制外部中断3

#define VICIntSel_ADC0      18//A/D转换器0中断

#define VICIntSel_I2C1      19//I2C1中断

#define VICIntSel_BOD       20//掉电检测中断

#define VICIntSel_ADC1      21//A/D转换器1中断

#define VICIntSel_SoftInt22 22//保留给软件中断

#define VICIntSel_SoftInt23 23//保留给软件中断

#define VICIntSel_SoftInt24 24//保留给软件中断

#define VICIntSel_SoftInt25 25//保留给软件中断

#define VICIntSel_SoftInt26 26//保留给软件中断

#define VICIntSel_SoftInt27 27//保留给软件中断

#define VICIntSel_SoftInt28 28//保留给软件中断

#define VICIntSel_SoftInt29 29//保留给软件中断

#define VICIntSel_SoftInt30 30//保留给软件中断

#define VICIntSel_SoftInt31 31//保留给软件中断

#define VICIntSel_Enable    32//



/*

P0口GPIO位寻址位定义

*/



#define P0_00//P0.0

#define P0_11//P0.1

#define P0_22//P0.2

#define P0_33//P0.3

#define P0_44//P0.4

#define P0_55//P0.5

#define P0_66//P0.6

#define P0_77//P0.7

#define P0_88//P0.8

#define P0_99//P0.9

#define P0_10 10//P0.10

#define P0_11 11//P0.11

#define P0_12 12//P0.12

#define P0_13 13//P0.13

#define P0_14 14//P0.14

#define P0_15 15//P0.15

#define P0_16 16//P0.16

#define P0_17 17//P0.17

#define P0_18 18//P0.18

#define P0_19 19//P0.19

#define P0_20 20//P0.20

#define P0_21 21//P0.21

#define P0_22 22//P0.22

#define P0_23 23//P0.23

#define P0_24 24//P0.24

#define P0_25 25//P0.25

#define P0_26 26//P0.26

#define P0_27 27//P0.27

#define P0_28 28//P0.28

#define P0_29 29//P0.29

#define P0_30 30//P0.30

#define P0_31 31//P0.31



/*

P1口GPIO位寻址位定义

*/



#define P1_00//P1.0

#define P1_11//P1.1

#define P1_22//P1.2

#define P1_33//P1.3

#define P1_44//P1.4

#define P1_55//P1.5

#define P1_66//P1.6

#define P1_77//P1.7

#define P1_88//P1.8

#define P1_99//P1.9

#define P1_10 10//P1.10

#define P1_11 11//P1.11

#define P1_12 12//P1.12

#define P1_13 13//P1.13

#define P1_14 14//P1.14

#define P1_15 15//P1.15

#define P1_16 16//P1.16

#define P1_17 17//P1.17

#define P1_18 18//P1.18

#define P1_19 19//P1.19

#define P1_20 20//P1.20

#define P1_21 21//P1.21

#define P1_22 22//P1.22

#define P1_23 23//P1.23

#define P1_24 24//P1.24

#define P1_25 25//P1.25

#define P1_26 26//P1.26

#define P1_27 27//P1.27

#define P1_28 28//P1.28

#define P1_29 29//P1.29

#define P1_30 30//P1.30

#define P1_31 31//P1.31



/*

外部中断标志寄存器EXTINT位定义

*/

#define EINT0 0//EXTINT.0//写'1'清除EINT0中断标志

#define EINT1 1//EXTINT.1//写'1'清除EINT1中断标志

#define EINT2 2//EXTINT.2//写'1'清除EINT2中断标志

#define EINT3 3//EXTINT.3//写'1'清除EINT3中断标志



/*

外部中断方式寄存器EXTMODE位定义

*/

#define EXTMODE0 0//EXTMODE.0//该位为0时,EINT0使用电平激活;该位为1时,EINT0使用边沿激活。

#define EXTMODE1 1//EXTMODE.1//该位为0时,EINT1使用电平激活;该位为1时,EINT1使用边沿激活。

#define EXTMODE2 2//EXTMODE.2//该位为0时,EINT2使用电平激活;该位为1时,EINT2使用边沿激活。

#define EXTMODE3 3//EXTMODE.3//该位为0时,EINT3使用电平激活;该位为1时,EINT3使用边沿激活。



/*

外部中断极性寄存器EXTPOLAR位定义

*/

#define EXTPOLAR0 0//EXTPOLAR.0//该位为0时,EINT0低电平或下降沿有效(由EXTMODE0决定)。

                               //该位为1时,EINT0高电平或上升沿有效(由EXTMODE0决定)。

#define EXTPOLAR1 1//EXTPOLAR.1//该位为0时,EINT1低电平或下降沿有效(由EXTMODE1决定)。

                               //该位为1时,EINT1高电平或上升沿有效(由EXTMODE1决定)。

#define EXTPOLAR2 2//EXTPOLAR.2//该位为0时,EINT2低电平或下降沿有效(由EXTMODE2决定)。

                               //该位为1时,EINT2高电平或上升沿有效(由EXTMODE2决定)。

#define EXTPOLAR3 3//EXTPOLAR.3//该位为0时,EINT3低电平或下降沿有效(由EXTMODE3决定)。

                               //该位为1时,EINT3高电平或上升沿有效(由EXTMODE3决定)。



/*

外部中断唤醒寄存器EXTWAKE位定义

*/

#define EXTWAKE00//EXTWAKE.0//该位为1时,使能EINT0将处理器从掉电模式唤醒。

#define EXTWAKE11//EXTWAKE.1//该位为1时,使能EINT1将处理器从掉电模式唤醒。

#define EXTWAKE22//EXTWAKE.2//该位为1时,使能EINT2将处理器从掉电模式唤醒。

#define EXTWAKE33//EXTWAKE.3//该位为1时,使能EINT3将处理器从掉电模式唤醒。

#define BODWAKE14//EXTWAKE.14//该位为1时,BOD中断产生时可将处理器从掉电模式唤醒。

#define RTCWAKE15//EXTWAKE.15//该位为1时,RTC中断产生时可将处理器从掉电模式唤醒。



/*

GPIO管脚功能配置

应用示例:



PINSEL0          |= (P0_0_TXD0 << P0_0_PINSEL) | (P0_1_RXD0 << P0_1_PINSEL); //选择P0.0和P0.1为UART0的输出输入引脚

或:

PINSEL0          |= (TXD0 << P0_0_PINSEL) | (RXD0 << P0_1_PINSEL); //选择P0.0和P0.1为UART0的输出输入引脚



PINSEL0          |= (P0_3_EINT1 << P0_3_PINSEL); //选择P0.3为INT1外部中断引脚

PINSEL0          |= (P0_14_EINT1 << P0_14_PINSEL); //选择P0.14也可为INT1外部中断引脚



PINSEL0          |= (P0_1_EINT0 << P0_1_PINSEL)   //选择P0.1为INT0外部中断引脚

PINSEL1          |= (P0_16_EINT0 << P0_16_PINSEL); //选择P0.16也可为INT0外部中断引脚



注:由于INT0,INT1可配置多个引脚,故不能简化,必须指明引脚号

PINSEL0          |= (EINT1 << P0_3_PINSEL);//出错

PINSEL0          |= (EINT1 << P0_14_PINSEL); //出错



因为P0_3_EINT1=3,P0_14_EINT1=2.故功能虽然相同,但功能序号不同!!!

*/



#define P0_0_GPIO      0//通用数字输入输出管脚

#define TXD0         1//UART0的发送器输出

#define PWM1         2//脉宽调制器输出1



#define P0_0_TXD0    1//UART0的发送器输出

#define P0_0_PWM1    2//脉宽调制器输出1

#define P0_0_PINSEL    2 * P0_0



#define P0_1_GPIO      0//通用数字输入输出管脚

#define RXD0         1//UART0的接收器输入

#define PWM3         2//脉宽调制器输出3



#define P0_1_RXD0    1//UART0的接收器输入

#define P0_1_PWM3    2//脉宽调制器输出3



#define P0_1_EINT0   3//**外部中断0输入

#define P0_1_PINSEL    2 * P0_1



#define P0_2_GPIO      0//通用数字输入输出管脚

#define SCL0         1//I2C0时钟输入/输出。开漏输出(符合I2C规范)



#define P0_2_SCL0    1//I2C0时钟输入/输出。开漏输出(符合I2C规范)



#define P0_2_CAP0_02//***定时器0的捕获输入通道0

#define P0_2_PINSEL    2 * P0_2



#define P0_3_GPIO      0//通用数字输入输出管脚

#define SDA0         1//I2C0数据输入/输出。开漏输出(符合I2C规范)



#define P0_3_SDA0    1//I2C0数据输入/输出。开漏输出(符合I2C规范)

#define P0_3_MAT0_02//**定时器0的匹配输出通道0

#define P0_3_EINT1   3//**外部中断1输入

#define P0_3_PINSEL    2 * P0_3



#define P0_4_GPIO      0//通用数字输入输出管脚

#define SCK0         1//SPI0的串行时钟。SPI时钟从主机输出,从机输入

#define AD0_6      3//A/D转换器0输入6。该模拟输入总是连接到相应的管脚



#define P0_4_SCK0    1//SPI0的串行时钟。SPI时钟从主机输出,从机输入

#define P0_4_CAP0_12//**定时器0的捕获输入通道1

#define P0_4_AD0_6   3//A/D转换器0输入6。该模拟输入总是连接到相应的管脚

#define P0_4_PINSEL2 * P0_4



#define P0_5_GPIO      0//通用数字输入输出管脚

#define MISO0      1//SPI0主机输入从机输出端。从机到主机的数据传输



#define P0_5_MISO0   1//SPI0主机输入从机输出端。从机到主机的数据传输

#define P0_5_MAT0_12//**定时器0的匹配输出通道1

#define P0_5_AD0_7   3//A/D转换器0输入7。该模拟输入总是连接到相应的管脚

#define P0_5_PINSEL    2 * P0_5



#define P0_6_GPIO      0//通用数字输入输出管脚

#define MOSI0      1//SPI0主机输出从机输入端。主机到从机的数据传输



#define P0_6_MOSI0   1//SPI0主机输出从机输入端。主机到从机的数据传输

#define P0_6_CAP0_22//***定时器0的捕获输入通道2

#define P0_6_AD1_0   3//A/D转换器1输入0。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)

#define P0_6_PINSEL    2 * P0_6



#define P0_7_GPIO      0//通用数字输入输出管脚

#define SSEL0      1//SPI0从机选择。选择SPI接口用作从机

#define PWM2         2//脉宽调制器输出2



#define P0_7_SSEL0   1//SPI0从机选择。选择SPI接口用作从机

#define P0_7_PWM2    2//脉宽调制器输出2

#define P0_7_EINT2   3//**外部中断2输入

#define P0_7_PINSEL    2 * P0_7



#define P0_8_GPIO      0//通用数字输入输出管脚

#define TXD1         1//UART1的发送器输出

#define PWM4         2//脉宽调制器输出4

#define AD1_1      3//A/D转换器1输入1。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)



#define P0_8_TXD1    1//UART1的发送器输出

#define P0_8_PWM4    2//脉宽调制器输出4

#define P0_8_AD1_1   3//A/D转换器1输入1。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)

#define P0_8_PINSEL    2 * P0_8



#define P0_9_GPIO      0//通用数字输入输出管脚

#define RXD1         1//UART1的接收器输入

#define PWM6         2//脉宽调制器输出6



#define P0_9_RXD1    1//UART1的接收器输入

#define P0_9_PWM6    2//脉宽调制器输出6

#define P0_9_EINT3   3//***外部中断3输入

#define P0_9_PINSEL    2 * P0_9



#define P0_10_GPIO   0//通用数字输入输出管脚

#define RTS1         1//UART1请求发送出端(仅用于LP138)

#define CAP1_0       2//定时器1的捕获输入通道0

#define AD1_2      3//A/D转换器1输入2。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)



#define P0_10_RTS1   1//UART1请求发送出端(仅用于LP138)

#define P0_10_CAP1_0 2//定时器1的捕获输入通道0

#define P0_10_AD1_23//A/D转换器1输入2。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)

#define P0_10_PINSEL   2 * P0_10



#define P0_11_GPIO   0//通用数字输入输出管脚

#define CTS1         1//UART1清除发送入端(仅用于LP138)

#define CAP1_1       2//定时器1的捕获输入通道1

#define SCL1         3//I2C1时钟输入/输。开漏输出(符合I2C规范)



#define P0_11_CTS1   1//UART1清除发送入端(仅用于LP138)

#define P0_11_CAP1_1 2//定时器1的捕获输入通道1

#define P0_11_SCL1   3//I2C1时钟输入/输。开漏输出(符合I2C规范)

#define P0_11_PINSEL   2 * P0_11



#define P0_12_GPIO   0//通用数字输入输出管脚

#define DSR1         1//UART1数据设置就绪端(仅用于 LPC2138)

#define MAT1_0       2//定时器1的匹配输出通道0

#define AD1_3      3//A/D转换器1输入3。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)



#define P0_12_DSR1   1//UART1数据设置就绪端(仅用于 LPC2138)

#define P0_12_MAT1_0 2//定时器1的匹配输出通道0

#define P0_12_AD1_33//A/D转换器1输入3。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)

#define P0_12_PINSEL   2 * P0_12



#define P0_13_GPIO   0//通用数字输入输出管脚

#define DTR1         1//UART1数据终端就绪

#define MAT1_1       2//定时器1的匹配输出通道1

#define AD1_4      3//A/D转换器1输入4。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)



#define P0_13_DTR1   1//UART1数据终端就绪

#define P0_13_MAT1_1 2//定时器1的匹配输出通道1

#define P0_13_AD1_43//A/D转换器1输入4。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)

#define P0_13_PINSEL   2 * P0_13



#define P0_14_GPIO   0//通用数字输入输出管脚

#define DCD1         1//UART1数据载波检测输入(仅用于 LPC2138)

#define SDA1         3//I2C1数据输入/输出。开漏输出(符合I2C规范)



#define P0_14_DCD1   1//UART1数据载波检测输入(仅用于 LPC2138)

#define P0_14_EINT12//**外部中断1输入

#define P0_14_SDA1   3//I2C1数据输入/输出。开漏输出(符合I2C规范)

#define P0_14_PINSEL   2 * P0_14



#define P0_15_GPIO   0//通用数字输入输出管脚

#define RI1          1//UART1铃响指示输入(仅用于 LPC2138)

#define AD1_5      3//A/D转换器1输入5。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)



#define P0_15_RI1    1//UART1铃响指示输入(仅用于 LPC2138)

#define P0_15_EINT22//**外部中断2输入

#define P0_14_AD1_53//A/D转换器1输入5。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)

#define P0_15_PINSEL   2 * P0_15



#define P0_16_GPIO   0//通用数字输入输出管脚

#define P0_16_EINT01//**外部中断0输入

#define P0_16_MAT0_2 2//**定时器0的匹配输出通道2

#define P0_16_CAP0_2 3//***定时器0的捕获输入通道2

#define P0_16_PINSEL   2 * P0_0





#define P0_17_GPIO   0//通用数字输入输出管脚

#define SCK1         2//SPI1的串行时钟。SPI时钟从主机输出,从机输入



#define P0_17_CAP1_2 1//**定时器1的捕获输入通道2

#define P0_17_SCK1   2//SPI1的串行时钟。SPI时钟从主机输出,从机输入

#define P0_17_MAT1_2 3//**定时器1的匹配输出通道2

#define P0_17_PINSEL   2 * P0_1



#define P0_18_GPIO   0//通用数字输入输出管脚

#define MISO1      2//SPI1主机输入从机输出端。从机到主机的数据传输



#define P0_18_CAP1_3 1//**定时器1的捕获输入通道3

#define P0_18_MISO12//SPI1主机输入从机输出端。从机到主机的数据传输

#define P0_18_MAT1_3 3//**定时器1的匹配输出通道3

#define P0_18_PINSEL   2 * P0_2





#define P0_19_GPIO   0//通用数字输入输出管脚

#define MOSI1      2//SPI1主机输出从机输入端。主机到从机的数据传输



#define P0_19_MAT1_2 1//**定时器1的匹配输出通道2

#define P0_18_MOSI12//SPI1主机输出从机输入端。主机到从机的数据传输

#define P0_19_CAP1_2 3//**定时器1的捕获输入通道2

#define P0_19_PINSEL   2 * P0_3





#define P0_20_GPIO   0//通用数字输入输出管脚

#define SSEL1      2//SPI1从机选择。选择SPI接口用作从机



#define P0_20_MAT1_3 1//**定时器1的匹配输出通道3

#define P0_20_SSEL12//SPI1从机选择。选择SPI接口用作从机

#define P0_20_EINT33//***外部中断3输入

#define P0_20_PINSEL   2 * P0_4





#define P0_21_GPIO   0//通用数字输入输出管脚

#define PWM5         1//脉宽调制器输出5

#define AD1_6      2//A/D转换器1输入6。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)



#define P0_21_PWM5   1//脉宽调制器输出5

#define P0_21_AD1_62//A/D转换器1输入6。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)

#define P0_21_CAP1_3 3//**定时器1的捕获输入通道3

#define P0_21_PINSEL   2 * P0_5





#define P0_22_GPIO   0//通用数字输入输出管脚

#define AD1_7      1//A/D转换器1输入7。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)



#define P0_22_AD1_71//A/D转换器1输入7。该模拟输入总是连接到相应的管脚(仅用于 LPC2138)

#define P0_22_CAP0_0 2//***定时器0的捕获输入通道0

#define P0_22_MAT0_0 3//**定时器0的匹配输出通道0

#define P0_22_PINSEL   2 * P0_6





#define P0_23_GPIO   0//通用数字输入输出管脚

#define P0_23_PINSEL   2 * P0_7





//#define P0_24_GPIO   0//P0.24 脚未用

//#define P0_24_PINSEL 2 * P0_8





#define P0_25_GPIO   0//通用数字输入输出管脚

#define AD0_4      1//A/D转换器0输入4。该模拟输入总是连接到相应的管脚.D/A 转换器输出(仅用于 LPC2138)



#define P0_25_AD0_41//A/D转换器0输入4。该模拟输入总是连接到相应的管脚.D/A 转换器输出(仅用于 LPC2138)

#define P0_25_PINSEL   2 * P0_9





#define P0_26_GPIO   0//通用数字输入输出管脚

#define AD0_5      1//A/D转换器0输入5。该模拟输入总是连接到相应的管脚



#define P0_26_AD0_51//A/D转换器0输入5。该模拟输入总是连接到相应的管脚

#define P0_26_PINSEL   2 * P0_10





#define P0_27_GPIO   0//通用数字输入输出管脚

#define AD0_0      1//A/D转换器0输入0。该模拟输入总是连接到相应的管脚



#define P0_27_AD0_01//A/D转换器0输入0。该模拟输入总是连接到相应的管脚

#define P0_27_CAP0_1 2//**定时器0的捕获输入通道1

#define P0_27_MAT0_1 3//**定时器0的捕获输入通道1

#define P0_27_PINSEL   2 * P0_11





#define P0_28_GPIO   0//通用数字输入输出管脚

#define AD0_1      1//A/D转换器0输入1。该模拟输入总是连接到相应的管脚



#define P0_28_AD0_11//A/D转换器0输入1。该模拟输入总是连接到相应的管脚

#define P0_28_CAP0_2 2//***定时器0的捕获输入通道2

#define P0_28_MAT0_2 3//**定时器0的匹配输出通道2

#define P0_28_PINSEL   2 * P0_12





#define P0_29_GPIO   0//通用数字输入输出管脚

#define AD0_2      1//A/D转换器0输入2。该模拟输入总是连接到相应的管脚

#define CAP0_3       2//定时器0的捕获输入通道3

#define MAT0_3       3//定时器0的匹配输出通道3



#define P0_29_AD0_21//A/D转换器0输入2。该模拟输入总是连接到相应的管脚

#define P0_29_CAP0_3 2//定时器0的捕获输入通道3

#define P0_29_MAT0_3 3//定时器0的匹配输出通道3

#define P0_29_PINSEL   2 * P0_13





#define P0_30_GPIO   0//通用数字输入输出管脚

#define AD0_3      1//A/D转换器0输入3。该模拟输入总是连接到相应的管脚



#define P0_30_AD0_31//A/D转换器0输入3。该模拟输入总是连接到相应的管脚

#define P0_30_EINT32//***外部中断3输入

#define P0_30_CAP0_0 3//***定时器0的捕获输入通道0

#define P0_30_PINSEL   2 * P0_14





#define P0_31_GPO      0//通用数字输出管脚(注意:此管脚仅为输出)

#define P0_31_PINSEL   2 * P0_15





//RSIR

#define RSIR          (*((volatile unsigned char *) 0xE01FC180))//



#define POR          0//RSIR.0//POR信号有效时该位置位,并清除RSIR寄存器的其它位

#define EXTR         1//RSIR.1//RESET信号有效时该位置位

#define WDTR         2//RSIR.2//当看门狗定时器溢出和看门狗方式寄存器的WDTRESET位为1时,该位置位。

                              //该位可被其它任何一个复位源清除。

#define BODR         3//RSIR.3//当3.3V的电源降到低于2.6V时该位置位





#endif// __LPC213xDEF_H

buzhang 发表于 2005-12-15 11:10:05

好,谢谢了.

denglu 发表于 2010-12-25 21:24:00

mark
页: [1]
查看完整版本: LPC213XDEF.H