|  | 
 
| 在上一个程序中,我们已经知道对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
 
 从电路图可知,当按键未被按下时,其输入端为高电平!其它的就不用多说了吧,呵呵
 | 
 
×本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?注册  |