本帖最后由 n805 于 2015-12-19 22:36 编辑
- h7 @- d: d8 q4 a6 ~
, l( E- K8 f; c) r手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。: v% |( M( k/ z; }7 @
FC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。% k. c* o4 [2 `# z( {
而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,$ {6 B2 z; ~1 a3 J7 m8 b
8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的
5 e- q. j/ Y+ E5 V: W8 x) D" r由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位
. }" F9 \6 x7 G7 e1 R$ `, z所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以
: T4 o3 V! v6 ~: X想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右
% j- f6 Z+ _/ V" U8 x6 v不定,而游戏也不断暂停和解锁。。。。。。。。。: C. W/ y- b2 }* ? z
解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P1 |% ^* {& ?3 q2 V3 d! s! f n1 P
和2P的CLK端。附上图片,自己查看。。。。
. U* m- m" K+ P; H# W4 V6 Y; c: X1 `' O6 ?: b0 e
[url] е е |