赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
revox 的b710 卡座,有一个clean键,当没有装磁带时,按下会抬起磁头组件,这样清洗压带轮的时候会比较方便。部分215机型按loop键的时候也有这功能,但有些机器却不行。经对比,发现,如果系统板零件号是1.721.210-11的板不行,1.721.210-22的就有这功能,仔细对照发现前者少部分电路,有一个单片机的零件号也不一样。 要实现这个功能得加装一部分电路,因为215的机器按钮是矩阵式的,所以加装模拟电路不容易实现这个功能,而且前者的单片机直接放到后者的板子上工作不正常, 所以不有直接加原机的电路。 考虑了一下,直接加一个单片机实现可能会比较简单,实际就是检测到键盘按下了loop键,则输出 到Q17来抬起磁头。 使用的是stc15w104相关的图片及代码如下。 装好后的那个图发贴时才发现没拍清楚,懒得重新照了。 #include <reg52.h>$ ^) t* Z, v( h) P; Q0 c% x9 @
sfr P3M0 = 0xb2;
' O. d& Z% |5 g$ a* \7 q& Wsfr P3M1 = 0xb1;7 r" h9 I% d0 R6 ^7 F3 ^" E
sbit keyb = P3^1 ; //10+ p: P1 u: f! |2 s" l
sbit keyC = P3^0; //10& }6 K: ?( G- O e5 k" T
///sbit s_cass = P3^5; //10) E$ z6 n- y% Q4 m8 e o) H6 [8 h4 I5 K
//sbit comm = P3^4; //10
! Z6 E- @7 @3 z9 b ?//unsigned char loaded; - M7 W! W% D3 \3 W9 J+ z
sbit ctrl = P3^3 ; //01用来控制磁头抬起的,高电位为抬起7 x8 _1 k. I8 I' e5 {
void Delay50us() //@11.0592MHz+ y* z/ V0 Y* C
{
7 }( w- B$ a; Q+ w' B: @ ` unsigned char i, j;
3 Z; F3 r! a) ^, ` i = 1;: v+ i; g" N7 g
j = 134;, a# I- b' W6 K: O3 X& l/ f
do2 m& p5 q0 k% g! t7 J% {; A
{$ {5 P( o+ h; i. e; F3 H
while (--j);5 ~. m! o! N8 A" e
} while (--i);
; @: R* P: _7 @/ {& J+ G}
' t+ ]& L$ X) }, z1 Y! F( i8 ~! x
- R; e% A; t- fvoid main(void)! Z+ C( z5 l& X3 R- N. m' [* p
{
9 }! n1 a: k- U& }. W- z ctrl = 0;& I. n% N6 V# S& L& b9 F, V& T
keyb =1;) z. s4 M( a" i9 D1 `8 g. X$ [" w; Q
keyC =1;
$ Y: H5 C/ s1 l0 I// comm = 1;
3 d ^; \0 N7 d( X ?; z// s_cass = 1 ;
1 J' f9 f5 n! L" @3 q while(1)2 ^/ D1 Z' x# x; d! K+ v0 |) U
{4 U3 P& s8 t7 S# C: p
// if (comm==0 && s_cass==1)
% H, W* V5 o5 k$ f- j7 d1 t // {) I+ b0 K7 M' p9 n* X9 k7 j
// loaded = 0;6 J9 t& ], ~& i
// }
2 j4 P9 n- z& j3 c; e0 i) f // if (comm==0 && s_cass==0) 6 e8 g5 P4 l( I: {
// {
* l8 d. ~+ \; U" y0 c/ D! P0 g: N // loaded = 1;
* G8 U* |6 G9 v0 M V- I // }
" d# t; o0 {* |4 y) O0 ]. _+ k1 b6 U
6 ?0 M$ Z' V# [ if (keyb==0 && keyC==0 ) 7 X" B( S. [* x* i- A1 ?& {
{$ c6 w: j& K) w) }: v
P3M1 = 0x37 ; //00110111
0 ~# D5 L! o) v3 \. N P3M0 = 0x08 ; //000010001 h; u' q9 Z, z0 G& m: ~* a/ y
Delay50us();
% s6 u2 H4 O5 b, w( @ ctrl = 1;7 |0 U% R1 |6 s* H
}2 }8 p4 f) c- u7 u( H9 n$ z
9 C7 z& p1 y* S% h2 M if (keyb==0 && keyC==1 ) 3 ?* n$ h1 t2 J$ d% J
{
U$ |: T; \/ T ctrl = 0;
! o# [" B% R' E% b- D0 W9 g P3M1 = 0x3F ; //00111111
! g, L2 R* B& b; V- E P3M0 = 0x00 ; //00000000! T7 r! }2 ^3 C- {- f
}
' B9 j$ E& @- w# [* a% p; ^# x }! o+ r2 N$ C7 a- O9 K p
}
* T1 A0 c4 W. {/ }! t$ ^% L) e5 F3 X& ?$ j; g" l
* C: C( q9 [. T3 m
6 B# Z& F! b/ ]; L; l+ T: m: m
4 H4 y1 n0 _6 M: E" T$ P
( A: q i: x/ h4 {9 Z, E
6 M4 M# @. I7 z4 ^, S0 w
4 [) O7 q, `: l1 H$ f
+ r% \8 E: b6 H6 A# g
+ I2 x4 j% V: g) Z( }1 J4 ^' {% K* g" @
- l3 L( \/ \: o
, R t) ~" j' N; ]" a3 F
+ e i0 g- u2 d( N |