本帖最后由 n805 于 2015-12-19 22:36 编辑
1 n) ?) r% H* {" }# Q6 [
: D5 t% t1 |' Y4 R( K手柄的CLK信号没加上。以下是原理介绍,后来人员可以补考了。。。。。
* w+ Z a+ Z! F( D$ W# j rFC手柄是5根线 1电源,2地线,3数据线DATE、,4读取线LOAD、5时钟线CLK。: v: i0 ^; ~2 ?2 k
而手柄的电路是个8位串行移位寄存器,当主机发出LD信号后,在时钟CLK的作用下,+ B9 ?7 T" |' a
8个数据被逐个传到主机,如果没有了CLK信号,主机发出LD后,数据是不会移动改变的9 L0 t5 X$ @% t: K l
由于A键是8个数据的首位,所以按下A键就会导致数据线位变低,由于没有CLK不会改变数据位
5 \& t3 z" Q! `, ?6 G所CPU在8次读取当中都是读取的A键信号,也就是说按下A键就等于按下所有按键了,你可以
8 C0 C$ W) m& T* s0 f6 S+ N想办法进入游戏,比如魂斗罗,游戏中按连发A,你可以看见人物是不断跳跃和开枪,上下左右2 Y' o8 n. @2 j' x O0 ]6 r
不定,而游戏也不断暂停和解锁。。。。。。。。。
( H* ~* Q* w0 B6 D; H. H) \4 C解决方法就是检测电路,CPU的31脚就是CLK时钟脚,这个信号通过74368反向后分别送入1P k, A* k' A0 g7 ]" ]5 C' |2 ]- T, o5 P
和2P的CLK端。附上图片,自己查看。。。。
0 j% A0 E1 X1 p- g1 S7 i+ b: j6 J$ ^' c) Y2 D2 S- ~2 L' s( K. R
[url] е е |