本帖最后由 n805 于 2015-12-19 22:36 编辑
$ K! \& R9 ^' H. l7 Z, b! D# }
& r4 ~& V; F" A手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。
6 g$ l& p7 Q9 k; J0 lFC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。
8 p! z) _+ z5 D3 B) M. f而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,# J' A3 J1 W, v0 m
8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的
3 |( p6 d4 q0 H9 {" K/ N由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位
/ Z, C9 S7 n; D4 p/ x$ F4 D" F所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以! \6 _5 ~/ }. b. l& G
想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右# X- L. P9 ^' H" W
不定,而游戏也不断暂停和解锁。。。。。。。。。) D4 F5 Z$ N7 s+ Y8 ~
解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P8 a+ E1 K9 l K; g
和2P的CLK端。附上图片,自己查看。。。。! w1 \* C- l B
5 L+ X" Z9 {3 F6 I2 v6 Z* z: ~, P
[url] е е |