本帖最后由 n805 于 2015-12-19 22:36 编辑 z/ o, r5 W: w2 F+ h! U+ N. \
5 n( k# \2 d+ V. Y手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。: \; k* Q3 H( B+ G
FC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。2 V$ w3 j$ n4 r5 i: O# N
而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,
, ]4 T4 a5 \5 P5 w5 n8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的
2 [- I, d* v% U: f由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位7 y5 a, x8 q; C- f
所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以1 ~" ~( _& g' D& D, F! _# u
想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右+ x, {$ w* }- M! f! f2 w+ ~) w
不定,而游戏也不断暂停和解锁。。。。。。。。。
+ C8 F$ a% ^, `2 h) g) `; E$ k解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P, o1 l4 d( f$ q7 r1 w
和2P的CLK端。附上图片,自己查看。。。。
/ @/ K; x4 f: N/ v2 Z# f7 n- B6 I
[url] е е |