📄 keyscan.c
字号:
#include <p30f4011.h>
#include "adr_port_define.h"
#include "extern_define.h"
unchar key_buffer0[8] _NEAR;//RF0
unchar key_buffer1[8] _NEAR;//RF1
unchar key_buffer2[8] _NEAR;//RF4
unchar key_buffer3[8] _NEAR;//RF5
unchar buffer,key_counter _NEAR;
unchar keyscan()
{
TRISB=0X00;
TRISF=0XFF;
buffer=0x01;
key_counter=0;
PORTB=buffer;
while(key_counter<7)
{
key_buffer0[key_counter]=_RF0;
key_buffer1[key_counter]=_RF1;
key_buffer2[key_counter]=_RF4;
key_buffer3[key_counter]=_RF5;
asm("mov _buffer,w0");
asm("RLNC.B w0,w1");
buffer=WREG1;
PORTB=buffer;
key_counter++;
}
key_server();
return(SW);
}
unchar key_server()
{
SW=0;
for(key_counter=0;key_counter<7;key_counter++)
{
if(key_buffer0[key_counter]==0) SW=1+key_counter;
else if(key_buffer1[key_counter]==0) SW=8+key_counter;
else if(key_buffer2[key_counter]==0) SW=15+key_counter;
else if(key_buffer3[key_counter]==0) SW=22+key_counter;
}
return(SW);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -