📄 key.c
字号:
void delay(int time){ int i; for(i=0;i<time;i++);}char scanNkey(int n){ int io_temp; *(unsigned int*)0x01802000&=0x0ffffffc0;//将此端口设为输出口 *(unsigned int*)0x01802004|=0x0000003f; *(unsigned int*)0x01802004&=~(1<<n); setpio(10,0); setpio(10,1); setpio(10,0); *(unsigned int*)0x01802000|=(1<<9); io_temp=readpio(9); //readpio返回值为0,1 if(io_temp==0) { return 1; //该键按下 } else { return 0; //该键没有按下 } }char scanAllkey(void){ char t,i; char keyval=0x0f; for(i=0;i<6;i++) { t=scanNkey(i); if(t==1) { keyval=i; return i; } } return keyval; }char scankey(){ char io_temp,t1,t2; *(unsigned int*)0x01802000&=0x0ffffffc0;//将此端口设为输出口 *(unsigned int*)0x01802004&=0x0ffffffc0; setpio(10,0); setpio(10,1); setpio(10,0); io_temp=readpio(9); if(io_temp==1) { return 0x0f; } else { t1=scanAllkey(); delay(0x4a68); //延时20ms delay(0x4a68); //延时20ms delay(0x4a68); //延时20ms t2=scanAllkey(); if((t1==t2)&&(t1!=0x0f)) { return t2; } else { return 0x0f; } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -