基于51单片机进行设计,以下是源程序
#include "reg52.h"
#include "intrins.h"
sbit CLK=P1^5;
sbit LD=P1^6;
sbit QH=P1^7;
/****************************按键函数*******************************/
char key()
{
char i;
char D;
LD=0;
_nop_();
LD=1;
D=0;
for(i=0;i<8;i++)
{
D=D<<1;
CLK=0;
_nop_();
D=D|QH;//每次上升沿都会进入到下一个qh
CLK=1;//上升沿
}
return(D);
}
/****************************主函数*******************************/
void main()
{
P0=0xff;
while(1)
{
if(key()!=0xff)
P0=key();
}
}