Philips LPC2114 ARM7TDMI学习
时间:2009-04-02 来源:creatory
1.使用管脚选择寄存器将P0管脚配置成GPIO
管脚选择寄存器0(PINSEL0,0xe002c000)用于配置P0 (P0.0~P0.31)管脚的功能,IO0DIR,IO1DIR寄存器中的方向 控制位只有在管脚配置成GPIO功能时才有效.对于其他功能 方向自动控制.
由LPC2114用户手册可知欲将P0配置成GPIO,则要由 PINSEL0寄存器控制
PINSEL0=00000000000000000000000000000000(32位 )或PINSEL0=0x00000000(采用十六进制) 2.GPIO寄存器映射
IOPIN:只读,GPIO管脚值寄存器,不管方向和模式如何设定 管脚的当前状态都可从该寄存器中读出.
IO0PIN(0xe0028000)
IO1PIN(0xe0028010) IOSET:读/置位,GPIO输出置位寄存器,该寄存器和IOCLR一 起控制输出管脚的状态.写入1使对应管脚输出高电平,写入0 无效.
IO0SET(0xe0028004)
IO1SET(0xe0028014) IODIR:读/写,GPIO方向控制寄存器,单独控制每个I/O口的 方向0=输入,1=输出
IO0DIR(0xe0028008)
IO1DIR(0xe0028018) IOCLR:只清零,GPIO输出清零寄存器,写入1命名对应管脚输 出低电平并清零IOSET寄存器中的对应位写入0无效.
IO0CLR(0xe002800c)
IO1CLR(0xe002801c) 例:使用P0的GPIO功能做闪烁灯
AREA FLASHLED,CODE,READONLY
ENTRY
START
;首先将P0配置成GPIO(PINSEL0)
LDR R0,=0XE002C000
LDR R1,=0X00000000
STR R1,[R0] ;将P0的方向配置为输出(IO0DIR)
LDR R0,=0XE0028004
LDR R1,=0XFFFFFFFF
STR R1,[R0]
LOOP
;先输出高电平(输出置位寄存器IO0SET)
LDR R0,=0XE0028004
LDR R1,=0XFFFFFFFF
STR R0,[R1] ;延时
BL DELAY
;再输入低电平(输出清零寄存器IO0CLR)
LDR R0,=0XE002800C
LDR R1,=0XFFFFFFFF
STR R0,[R1]
;延时
BL DELAY
;跳回去继续循环
B LOOP
;延时子程序
DELAY
MOV R0,#100
0
MOV R1,#1000
1
SUBS R1,R1,#1
BNE %B1
SUBS R0,R0,#1
BNE %B0
MOV PC,LR ;返回 END ;汇编结束
相关阅读 更多 +