本帖最后由 n805 于 2015-12-19 22:36 编辑 4 @4 f$ T7 y0 i! N) W) B6 o1 r
" H; `1 p6 s2 q) I* Y7 b
手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。
+ a( i2 z9 G% v6 BFC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。
# ]/ H: x8 @# M. n4 L% [而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,
' y8 M! S; o, h$ s/ l2 m2 R8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的! P8 D$ U5 @ S- D1 L; Q
由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位+ b6 X7 E9 N# }" \* g' L5 O
所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以3 }: Y" S" ~7 D" b t1 D
想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右
* n" ?: |( H# b, M. S不定,而游戏也不断暂停和解锁。。。。。。。。。
8 }3 e* ~5 q: k- f4 U4 |) o解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P0 ^- t3 U& j: l6 E9 r( n0 s
和2P的CLK端。附上图片,自己查看。。。。
, u! Z4 i* m9 {3 c9 Z' l1 N$ o c" Q) i5 _5 F: j
[url] е е |