本帖最后由 n805 于 2015-12-19 22:36 编辑 ' V4 E y2 q6 n- o. f
, P% `8 T' y! d1 u' S0 S) I0 A
手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。( [3 H6 W& E; K( w9 Q; k2 Y
FC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。
t" ]* f3 q7 G8 G! m9 I9 _* m而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,
# Q' d% `/ ]8 N: {, N8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的# ~4 }+ S* m: ^& C$ l+ k
由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位
. n) m3 v) R. P& Y( Y( S& ^所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以- ^+ a- U7 V0 Y6 C5 \" N% H( v0 X
想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右5 I& V+ `( o. O! I% m
不定,而游戏也不断暂停和解锁。。。。。。。。。
, N' g9 S4 N7 |" c% o0 s解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P
8 m- H- @8 j7 l6 D1 F' p' d* `! |和2P的CLK端。附上图片,自己查看。。。。' S O$ D' l( d+ b! ?# B
$ D4 [8 S5 Z+ U7 G$ _4 n; n4 S[url] е е |