📄 noname1.c
字号:
void scan(void) /*扫描键盘副程式*/
{
char a1=0xf7,i; /*A1=0XF7列扫描初值,I行*/
FLAG0=0; /*设按键回应旗号为0,键盘扫描计数指标为0*/
ptr=0;
for(i=0;i<4;i++) /*键盘4个扫描列*/
{
P1=a1; /*列扫描输出,读入P1存入M,以便侦测行与侦测按键是否放开*/
m=P1;
switch(m&0xf0) /*取行的高4位元,侦测那一行被按*/
{
case 0x70: ptr=i*4; /*第一行被按否?是则扫描指标=列X4*/
FLAG0=1; /*是则设FLAG0=1表有按键输入*/
break; /*跳出此循环*/
case 0xb0: ptr=i*4+1; /*第二行被按否?是则扫描指标=列X4+1*/
FLAG0=1; /*是则设FLAG0=1表有按键输入*/
break; /*跳出此循环*/
case 0xd0: ptr=i*4+2; /*第三行被按否?是则扫描指标=列X4+2*/
FLAG0=1; /*是则设FLAG0=1表有按键输入*/
break; /*跳出此循环*/
case 0xe0: ptr=i*4+3; /*第四行被按否?是则扫描指标=列X4+3*/
FLAG0=1; /*是则设FLAG0=1表有按键输入*/
default: break; /*跳出此循环*/
}
if(FLAG0==1)break; /*不为1,则扫描列右移,扫描下一列*/
a1=a1>>1|0x80; /*高位补1,由于P1.7~P1.4未接+5V,而是由指令加载高电平*/
}
} /*返回主程式*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -