本帖最后由 n805 于 2015-12-19 22:36 编辑
' ~$ Y' Y( J/ L' R. u0 c, v
7 z: {% k% ~* c手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。, Y$ |$ }" h8 z- [$ a
FC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。) B) V6 P# U, q6 l# k3 H" c+ `, p
而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,
! d- O. W/ O7 L; ^* z# G' q8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的
- G+ e d8 ^6 A* G. m& {& Y由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位2 I% S7 P8 y% R
所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以4 }! Z5 q* l8 o9 y/ X; ~5 c
想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右% ?$ `0 f- h" A2 x3 c
不定,而游戏也不断暂停和解锁。。。。。。。。。! S; {1 W' [# H d9 i
解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P' { h$ G+ U; e3 e2 o
和2P的CLK端。附上图片,自己查看。。。。
0 ]7 k* G9 m. g1 @3 D9 f5 a7 D
[url] е е |