本帖最后由 n805 于 2015-12-19 22:36 编辑 # ? e: W" m7 L. f/ Q+ B
! L: Y4 t3 l/ k3 O; z$ \手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。
2 j, B$ g8 ?5 {5 K6 e9 V& G3 \9 E' U6 p& GFC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。
3 D' Q$ n1 t4 G& Z# O而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,2 I: y5 D( T, W, @$ c
8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的. m3 g6 b% `5 A
由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位
% E3 M# m! A+ p7 Y所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以
* W$ `8 D9 T9 _, b想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右( c m; R8 Y& @. ~1 ^- j1 b( x
不定,而游戏也不断暂停和解锁。。。。。。。。。0 f R! ^: B- w, a
解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P$ \# c, U- c x
和2P的CLK端。附上图片,自己查看。。。。( y4 ~ g+ O( N& l2 a) r! W
5 L6 u7 ~2 r' S' c0 ?: j[url] е е |