以前用的矩阵键盘扫描程序,非常冗余。
但是这个程序,只用了了几行代码,巧妙地用2层嵌套,就能实现16个按键的扫描过程 和 返回值。非常适合新手学习 和 应用。详细代码见附件。
单片机源程序如下:
- *功能:检测被按下的按键,并返回相应的值
- uchar Keyscan(void)
- {
- Uchar i,j,temp,Buffer[4]={0xfe,0xfd,0xfb,0xf7};
- for(j=0;j<4;j++)
- {
- P1=Buffer[j];
- temp=0x10;
- for(i=0;i<4;i++)
- {
- If(!(P1&temp))
- {
- Return(i+j*4);
- }
- temp<<1;
- }
- }
- }
复制代码
|