赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
revox 的b710 卡座,有一个clean键,当没有装磁带时,按下会抬起磁头组件,这样清洗压带轮的时候会比较方便。部分215机型按loop键的时候也有这功能,但有些机器却不行。经对比,发现,如果系统板零件号是1.721.210-11的板不行,1.721.210-22的就有这功能,仔细对照发现前者少部分电路,有一个单片机的零件号也不一样。 要实现这个功能得加装一部分电路,因为215的机器按钮是矩阵式的,所以加装模拟电路不容易实现这个功能,而且前者的单片机直接放到后者的板子上工作不正常, 所以不有直接加原机的电路。 考虑了一下,直接加一个单片机实现可能会比较简单,实际就是检测到键盘按下了loop键,则输出 到Q17来抬起磁头。 使用的是stc15w104相关的图片及代码如下。 装好后的那个图发贴时才发现没拍清楚,懒得重新照了。 #include <reg52.h>0 @6 W: a* g% h0 Q2 C! |
sfr P3M0 = 0xb2;! J. j+ `% M; V) F g' I& G8 C
sfr P3M1 = 0xb1;: s& F6 t: d1 z# H/ N) M0 o$ T
sbit keyb = P3^1 ; //10! G k% e% {# k( ]) u a! p
sbit keyC = P3^0; //10
% Y Z2 D1 f6 C1 E///sbit s_cass = P3^5; //10) T! ?3 ]/ t* o4 _ C; C! ?, J
//sbit comm = P3^4; //10. O, m. M+ Z: c
//unsigned char loaded; $ `6 p3 B8 H' J% \9 B7 t+ r
sbit ctrl = P3^3 ; //01用来控制磁头抬起的,高电位为抬起
: m0 a5 C) a5 I* @void Delay50us() //@11.0592MHz
, {$ [% p, T6 i1 ?" V l" M{
6 e" Q* X$ c! z" n9 f* n, v unsigned char i, j;
( ]) z" t, Z& Y% e* q) } i = 1;
& j8 j5 v% l+ K3 _. T. y5 [ j = 134; z6 J* ~9 x. W! E: ~
do7 I4 E8 r: E/ @1 S6 D+ Q
{- C7 B/ o `) p0 o7 I; m5 S
while (--j);( m0 e% ~6 U; }
} while (--i);2 r* j9 E/ `# N5 x# l) E/ x( J
}, O, H& l( y1 H# o
. D9 ~, m, ~6 I* l: h& avoid main(void)+ `4 y& @+ ^- H6 [! R
{; R. f& N$ J1 _1 U4 H
ctrl = 0;& u) B7 ~8 L7 H5 c
keyb =1;
% U9 T% l- K3 y' ~# X/ _& F. o+ t keyC =1;. F* N4 `$ f" u$ x& r& Z4 H
// comm = 1;
; j0 |$ _+ f! K$ ], P3 A( {// s_cass = 1 ; 2 \& I6 v( W5 U& m) {0 v
while(1)
9 I9 O- h( M2 s% r9 Q5 z) | {
! y H+ s& S6 Z, h# u- x // if (comm==0 && s_cass==1)
, i5 q+ x- x2 O+ e6 C3 z/ s- K // {% H' c# s, [- d4 F, P1 Y# R
// loaded = 0;# {4 b, c) g/ b1 V K1 F
// } 7 |: t2 `4 }2 r' K0 C- Z
// if (comm==0 && s_cass==0)
: P4 R2 Q# F$ i/ S: | // {* g+ T6 O$ d- Y
// loaded = 1;
) z5 H% z( a# ^: X) S // }
2 M( @. F% Z6 J* ~) x6 H& T6 q7 M
" z, e* P- I2 s7 m# M: Q if (keyb==0 && keyC==0 ) * N e# g) D$ t$ b$ S! w( x: A% i
{
+ o* y o3 C! J6 W P3M1 = 0x37 ; //001101115 h+ O2 C& h) b, R9 g. f6 h- K
P3M0 = 0x08 ; //00001000
I W9 b: [2 q3 D7 p6 {. B. N Delay50us();
4 C# I/ J. ?5 ^! U7 j ctrl = 1;1 h: c7 S1 R7 M
}& g" q! C% W8 ?% Y! k% C
/ `( T3 L2 t. P2 z% _: {: I( O
if (keyb==0 && keyC==1 ) 4 D x' s5 d' O( }+ I
{2 f- b: G( K4 }
ctrl = 0;8 q: Q5 s9 S5 ?/ d, z1 ?
P3M1 = 0x3F ; //00111111; o/ e2 \6 J0 [2 E- K* m/ ^
P3M0 = 0x00 ; //00000000( R$ M, N Z5 F6 q+ V/ {: g, Y
}2 U# T9 r+ _- ~5 H/ X
}
3 j8 b" K+ \9 o4 V}: s' ?& L8 Q- {3 A& e
* X; `7 y$ b! i# c. j9 A7 [7 p! k
+ L* q6 l! Y# z8 M8 j' b5 [% p2 R$ K5 I; A
) o! L6 K: x0 M! @8 ^2 Z
* W2 U, h& y# C9 [7 y: _
: X: x' v# P: p! G2 ~& v5 S/ R
: ~ j @; j' X
' L5 w. S; t# d, \0 C
4 S! w- v/ G. |, y9 v r
$ c1 T6 O/ B- d6 E9 d j
D2 P/ M0 h$ G7 Z( Z' P
5 D. u6 k) N% k& [. u
% g& i( Y9 Y* J# A [: s |