📄 key.c
字号:
#include <SPCE061V004.H>
#define Set_Ld() *P_IOA_Data|=LD
#define Clear_Ld() *P_IOA_Data&=~LD
#define Set_Clk() *P_IOA_Data|=CLK
#define Clear_Clk() *P_IOA_Data&=~CLK
#define DATA 0x0001 //IOA0口为数据传输位
#define LD 0x0002 //IOA1口为片选位
#define CLK 0x0004 //IOA2口为时钟位
unsigned int serial_key()
{
unsigned int i;
*P_IOA_Dir|=CLK+LD; //IO口的设置,CLK和LD设置为输出,DATA设置为输入
*P_IOA_Dir&=~DATA;
*P_IOA_Attrib|=CLK+LD;
*P_IOA_Attrib&=~DATA;
*P_IOA_Data|=CLK+LD;
*P_IOA_Data&=~DATA;
*P_Watchdog_Clear=1; //清狗
Clear_Ld(); // Ld上升沿锁存数据
Set_Ld();
for(i=0;i<16;i++) //串行数据传输
{
Clear_Clk();
if((*P_IOA_Data&0x0001)==0)
break;
Set_Clk();
}
switch(i) //根据键值返回按键的编号
{
case 15:return(13);
case 14:return(9);
case 13:return(5);
case 12:return(1);
case 11:return(2);
case 10:return(6);
case 9:return(10);
case 8:return(14);
case 7:return(15);
case 6:return(11);
case 5:return(7);
case 4:return(3);
case 3:return(4);
case 2:return(8);
case 1:return(12);
case 0:return(16);
default:return(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -