本帖最后由 n805 于 2015-12-19 22:36 编辑 5 ~) M ?4 ~+ T" ^* l; O# ?
) _4 N7 j' M- O9 f1 b手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。
; |! s0 ^5 O' V# fFC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。
, q! b' ~3 x: |6 [& w* [9 C V) Q而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,4 S& |& C; O7 A. g: p: V- G3 K6 f
8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的
- m. b" T2 f( C$ }! U0 \* e9 F由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位4 |7 O, A, t u5 \5 z9 s8 @( l2 N- t
所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以
: d5 \ ^- f: l& h4 S5 h4 Z想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右3 C/ z- Y2 z" m- J. _: T) V
不定,而游戏也不断暂停和解锁。。。。。。。。。
9 @" w) t# z" W4 u3 }6 H D! X解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P( L: D' ^! ]: k! F; ?
和2P的CLK端。附上图片,自己查看。。。。
6 F! r$ Q I! h$ C' a& U7 }$ n D
[url] е е |