裸奔程序2-按键控制LED
在上一个程序中,我们已经知道对GPIO端口的操作主要是针对寄存器而来的,因此,在这个程序中,我们对键盘K1-K4进行检测,通过它来操纵LED灯。 2、按键测试程序(检测模式) 硬件说明:K1接GPF1 K2接GPF4 K3接GPF2 K4接GPF0,按下时输入低电平 GPFCON地址为0x56000050,GPBDAT地址为0x56000054 GPFCON每两位控制一个端口,其中00为输入端,01为输出端, 取值11保留,10为其它定义 软件说明:GPF0-GPF2、GPF4设置为输入端0b0000000000=0x0 AREA KEYLED,CODE,READONLY get s3c2440.inc EXPORT TestMain TestMain ldr r0,=GPFCON ;设置GPF0-GPF2,GPF4端口为输入端 ldr r1,=0x0 str r1,[r0] ldr r0,=GPBCON ldr r1,=0x15400 str r1,[r0] ldr r0,=GPBDAT ldr r1,=(0xf<<5) str r1,[r0] loop ldr r0,=GPFDAT ;得到输入端口数据 ldr r1,[r0] mov r2,#0xf tst r1,#2 ;K1键是否按下 andeq r2,r2,#0xe tst r1,#0x10 ;K2键是否按下 andeq r2,r2,#0xd tst r1,#4 ;K3键是否按下 andeq r2,r2,#0xb tst r1,#1 ;K4键是否按下 andeq r2,r2,#7 mov r1,r2,lsl#5 ldr r0,=GPBDAT str r1,[r0] b loop end |