本帖最后由 n805 于 2015-12-19 22:36 编辑
9 ?, p+ Q* }2 m: W: q
* B3 w6 q, Z U& B4 W) l手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。" m, ?2 M& h5 l H' T' {# f' E
FC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。, `% }" w" P0 ^; g1 w- _
而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,
8 i# w- V5 _) R3 ~* ]) h- p8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的
% Z7 J# f' k/ `0 z1 P5 i由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位
6 C: I* W- x3 J# Z所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以
* u& Z& U+ _+ [想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右+ a) u" _; [! b& w
不定,而游戏也不断暂停和解锁。。。。。。。。。: d. V- o& i4 j- X* K
解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P
: X$ s& j! e1 S& y/ n和2P的CLK端。附上图片,自己查看。。。。4 M3 c% c( z z0 z
" z4 P* m$ o- c1 d+ P, ^[url] е е |