本帖最后由 n805 于 2015-12-19 22:36 编辑 " r8 I; n" A X7 O
0 N8 `& P: G! ~% X0 x* Q: H& d手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。
7 r( e" j+ @$ ^/ RFC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。 B1 P1 ?( c1 x* p2 V5 p
而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,
P, [( s; m( j- X/ X: F) A% C8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的
2 W! X7 D* U( J' m由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位3 w2 Y4 C9 }0 I( z* ^% W
所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以
0 @, h& ~+ U, O想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右7 Z: j2 h6 B0 i n
不定,而游戏也不断暂停和解锁。。。。。。。。。+ a m g5 B2 Y o) `% c5 t
解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P
' ?. V; ?0 z3 q- _和2P的CLK端。附上图片,自己查看。。。。$ f' X( D8 l9 D( J* ^' M* W
2 F5 H1 M Q1 y) S6 r: W, k[url] е е |