KDAT = 1 ; /*释放数据总线*/ KEY = 0 ; /* 变量赋 0,没必要!!! */ KLOAD = 0 ;/*锁存按键状态*/ KLOAD = 1 ; DO N = 0 TO 7 ;/*移动8位串行数据*/ KEY = ROL ( KEY , 1 ) ;/*字节左移,应该先移动!!!*/ KCLK = 0 ;/*时钟变低,在下降沿要读数据*/ IF KDAT = 0 THEN KEY = KEY OR 01H ;/*此时才能读口状态,有键为1*/ KCLK = 1 ;/*时钟变高,此时内部数据才开始移动*/ END ; |