本帖最后由 n805 于 2015-12-19 22:36 编辑
+ D& f+ S/ H, F% E8 j- H* E* l j2 n' {1 g* M$ n# R# C
手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。2 l7 ~, Z# p2 U* x( B* @; m
FC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。
" U; R! f' Y5 C; J& P9 b" p( t& h而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,! M; R" q" N8 G7 J9 E: \
8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的: q, N1 e+ v1 X
由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位
. i# m! \; l) |3 ~1 Y, U% n B所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以
) e% ?( ^1 m! Q想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右( d$ n1 l3 K7 u4 |8 Y% w
不定,而游戏也不断暂停和解锁。。。。。。。。。6 P! Y' y% k+ h, U# _
解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P4 B! K( O! ?- v1 S
和2P的CLK端。附上图片,自己查看。。。。
) p/ w F8 A( G. M/ I$ p
% }( V0 {) ]. ^+ |# h[url] е е |