;引脚连线 ;GPF0~GPF3 K1~K4 ;GPF4~GPF7 LED1~LED4 ;GPG3 K5 ;GPG11 K6 ;GPxCON的装备寄存器每个引脚都占两位,00表明表明输入,01表明输出 ;GPxDAT寄存器表明引脚的凹凸电平状况,读写数据在这个寄存器里进行 ;程序成果:按Kx,则LED就依据x的二进制表明出来
GPFCONEQU0x56000050 GPFDATEQU0x56000054 GPGCONEQU0x56000060 GPGDATEQU0x56000064
AREA KEY_LED,CODE,READONLY;这儿表明此区域是只读代码”KEY_LED” EXPORT _ENTRY;引进程序进口,这儿跟连接器有联系
;程序进口 _ENTRY
;初始化GPIO的装备 ;这儿包含K1~K4输入装备和LED1~LED4的装备 ldr r0,=GPFCON movr1,#0x5500 strr1,[r0]
;K5和K6的装备 ldr r0,=GPGCON ldr r1,=0xff3fff3f strr1,[r0]
;初始化将led都平息 ldr r0,=GPFDAT movr1,#0xf0 strr1,[r0]
;循环测验各按键状况,并修正led状况 LOOP
;测验按键1 GPF0 ldr r0,=GPFDAT;将GPF的数据寄存器地址放入r0 ldr r1,[r0];读取GPF数据寄存器 tst r1,#0x01;测验GPF0是否变0(K1按下),若是按下,EQ置1,不然NE置1 andeq r1,r1,#0xef;若是EQ为1,将GPF4置0(点亮),其他不变 orrne r1,r1,#0x10;若是NE为1,将GPF4置1(平息),其他不变 strr1,[r0];将LED状况写入GPF数据寄存器
;测验按键2 GPF2 ldr r0,=GPFDAT ldr r1,[r0] tst r1,#0x02 andeq r1,r1,#0xdf orrne r1,r1,#0x20 strr1,[r0]
;测验按键3 GPF3 ldr r0,=GPFDAT ldr r1,[r0] tst r1,#0x04 andeq r1,r1,#0xcf orrne r1,r1,#0x30 strr1,[r0]
;测验按键4 GPF04 ldr r0,=GPFDAT ldr r1,[r0] tst r1,#0x08 andeq r1,r1,#0xbf orrne r1,r1,#0x40 strr1,[r0]
;测验按键5 GPG3 ldr r0,=GPGDAT ldr r1,[r0] ldr r0,=GPFDAT ldr r2,[r0] tst r1,#0x0008 andeq r2,r2,#0xaf orrne r2,r2,#0x50 strr2,[r0]
;测验按键5 GPG11 ldr r0,=GPGDAT ldr r1,[r0] ldr r0,=GPFDAT ldr r2,[r0] tst r1,#0x0800 andeq r2,r2,#0x9f orrne r2,r2,#0x60 strr2,[r0]
bLOOP
END
|