本帖最后由 n805 于 2015-12-19 22:36 编辑 3 t* N( Z' ]. A& E) L: p. X
8 P5 P6 V2 S, Z7 [4 ?+ F手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。/ N. D2 W9 q( v* |% f' b- ?6 W
FC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。2 Y1 P1 {" C6 Z% n$ l+ K+ M, ]9 s
而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,
i+ T* X8 h1 J1 E5 G8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的: g; c; Q9 d3 P* ]' `! U u
由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位6 a" P( h9 x! B; _" P: V4 G/ |
所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以5 j9 r, t0 d" B* f4 P. J4 r9 Z
想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右
9 t. _+ r; [$ U) K6 Z不定,而游戏也不断暂停和解锁。。。。。。。。。8 p+ G/ _6 g( n. E) Y. J4 j
解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P5 C1 k1 v% l( g2 b8 M0 X$ G4 F
和2P的CLK端。附上图片,自己查看。。。。* S- D- o# P$ h+ @* E- j2 S# S3 q7 d
8 Z$ V8 u: n w. R8 m( r" {
[url] е е |