赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
, A U: d( M* a2 k: u9 d! A% ^8 w7 A4 }4 Y5 I4 b" h+ k C
本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。
6 N& I/ w5 y9 P9 R. o3 w0 L! Y1 B* N6 a0 F2 k
说明:2 Q5 O: {* L% V! P
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;; t5 t& R) ~' K. _
2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
- c) w, v0 q5 H2 {
) x4 @' `/ W; u' ?一、基本思路
* z, _& z6 W Z$ } z& S0 L使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
! v4 q6 d; o5 S, r! e4 r) U$ `( b, c; t' s4 r ]& X
二、红外遥控器% y3 B) P/ m* o; ]5 }+ u6 ^
我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
) M! D* n! B, {/ z$ l" _+ f' [/ l
/ L% \5 Z- Y1 ^8 R! @
好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
% Z9 y6 c5 o3 V
% H+ ~5 e! @& ]$ a, d在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
1 I% {2 N: ?* @$ ~8 p0 ?% G
& a4 z; I, x' t2 [6 r. ~; U2 ^. C* l
三、红外编码
9 `- ~ c* k, B) ~% G/ F红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
1 l( \2 z$ d2 X) a+ G4 p; n前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。
/ I& N+ c, y1 Z1 M后16位为控制码,主要用于实施具体的控制。- I3 w- v4 V f/ d Y& D
这16位中高8位和低8位互为反码,以提高可靠度。/ b' n6 m; V r% K, @" {- g# Q
7 j( n1 G. T& a0 ~4 O
以播放为例,其编码如下:) N" @5 Y$ o" a
00000000 00000000 01011100 00000000
, L" y: _9 l' E7 A* R3 c! b, _! R7 V: q% D/ x9 R
你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。" E' J; x' a& G# t! R0 ^7 F
& I- H; ^: E% b1 S" J/ B
四、单片机系统* `/ a4 S% s8 H; A* }8 e
这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。
3 @& K: ]% M7 a. P/ z: S! D
8 P6 a7 T! \) I3 | p & G0 l* b2 ~" S
电路很简单,功能如下:% y8 y6 C) B: y! U* E
1、一个AT89S52单片机作为核心;7 R7 ?: i# o3 ] F' M
2、一个TL1838为红外接收头直接串行输出数据信号;
0 Z" d$ E5 j4 k! @# @4 o4 Y3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;# S$ H2 x, u6 H* D9 E
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。5 b [% v# X( J9 J
& U/ U0 r" O* g' E8 f2 }
关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
$ D, c* F3 _, R( v
- i* s4 M1 e, S# n/ v
0 g! e. w3 R, B. _) a" {五、控制软件
: \0 D$ d& E9 t, u控制软件用汇编语言写,源程序如下:
" Y2 J% N' N* }$ N5 j ORG 00H
M* s9 g0 w% V/ x. o* a8 a; ^ LJMP MAIN
: Q$ F# ` }1 u1 h, R% G ORG 30H
! L, K; r( k2 s8 `% F1 FMAIN:# B* F! y4 h* J4 A T6 k8 X
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)! T: O m, X+ F
MOV TMOD,#22H ;22H
# U" @8 |& _5 F2 T b# I# K MOV SCON,#40H ;40H o2 ^5 r3 t- r; H3 N6 b' g: ]
MOV TH1,#0FAH ;F3H% L4 |: j" M- h d2 L/ X
MOV PCON,#80H9 x! X, M( x2 `! {7 z
SETB TR15 d- a+ Y0 m! z! b m9 a
START:. @7 b7 M; P7 D- j6 U
JB P3.7,$ ;遥控信号处理0 ?$ r: L. H. I+ x' D1 I
SB:
$ N \, m1 w& ~2 b! [" g% @8 R MOV R4,#8 1 V/ h! c: v4 k; m" H" p1 Q! D
SBA:9 ^& r( r; E' b8 |% a
MOV R5,#250
N9 {- f1 J) g% v+ A* H2 USBB:
6 v, z7 l6 `) A JB P3.7,SXB1, k5 K6 ?; `5 e
DJNZ R5,SBB
5 c' H, P9 @3 Z DJNZ R4,SBA
6 O8 M/ I. u8 o1 ? MOV R4,#2. M; w) ?7 }, ^/ h) g9 F
JMP SBC% w3 u9 r# n+ ~: a; H+ H6 Q" D2 f
SXB1:" v: E6 N; ~9 k' {9 |# \* ?
MOV R5,#5+ R; d+ o0 B/ |$ x
SXB2:
4 p8 M) x9 ^+ F JNB P3.7,SBB
1 }( S' y" @' ?/ d K DJNZ R5,SXB2
- f1 K2 z. m u" S" j JMP START
) F3 k2 h6 x) XSBC:
* Z2 j( u: t8 c8 i MOV R5,#250" F/ ?2 W7 c8 y, T
SB1:
0 M8 F/ [8 i# C JB P3.7,SB2 - Y& Q9 d3 \. g& |* t
DJNZ R5,SB17 H. Q1 L7 K& a4 t2 z( a
DJNZ R4,SBC
* _5 H! w0 V7 b; k: M JMP START$ r: L7 Y+ g9 N. r( ]- ]
SB2:
6 }# L, B2 q3 a7 {* p) m' _$ E MOV R5,#5
% \- q% d1 T& x2 B/ k1 ~8 BSB2_A:
- e7 z( c6 H" `; {4 m JNB P3.7,SB11 e8 X1 i9 U' A3 e% ^7 S
DJNZ R5,SB2_A
0 s6 S$ B1 z2 {/ ? _ MOV R4,#33 J% _9 C5 C! x- u$ U9 m8 O, D
SB2_1:9 M2 m. n' [; e
MOV R5,#250 O' F$ K5 F# r( R8 n Q
SB3: 3 C& }( p' p- c- g2 z9 W8 S1 b
JNB P3.7,SXC6 X1 Z- Y/ }2 t1 R; K
DJNZ R5,SB3
7 Q& D' G. e1 ~3 [( i DJNZ R4,SB2_15 r: X9 o. \' `8 R
MOV R4,#2
5 H( z2 [+ M ^' J JMP SB3_1
& n8 h1 k: N [' u8 @2 {SXC: : y# y1 U% i: M$ ]4 G' _
MOV R5,#57 h- ^: G! t" k" S
SXC1:: \# o( M0 ~6 S" [/ O- U9 A* g
JB P3.7,SB3! U: e# E' o. }/ ?: g
DJNZ R5,SXC12 w% } H$ W* F& G/ I" t
JMP START
+ W. Y* W& }$ l5 }SB3_1: & ~0 O( s7 f! m, X& a+ M) D
MOV R5,#250; m" W2 Z( u; n2 j* B
SB3_2:9 p6 v: k8 O/ p0 R- W
JNB P3.7,SB4- u L. s7 d% @+ z
DJNZ R5,SB3_2
9 ^' {. P/ ]! Y1 K$ ]7 H DJNZ R4,SB3_1! L: y1 O( d. [& x8 s. [/ n
JMP START
@( Q- P( I" A- QSB4:
]' W6 ~* N: Z$ O+ E Y0 Q MOV R5,#5
6 X% W$ Y% ^$ i: j4 O5 A( B+ ?! aSB4_1: ^ h4 c0 X5 j+ R- ?/ Y
JB P3.7,SB3_2( E$ c$ D1 ?0 k8 ~0 ?# k
DJNZ R5,SB4_1
# U6 j) T/ Y0 p2 ? MOV R1,#1AH
5 p& T4 g- q% k& x/ j MOV R2,#4
4 A! s, f! L9 g" Q5 APP: MOV R3,#80 R2 D, x- d% Q; t# g* F( k
JJJJ:
) _! W5 k- k- I5 s L MOV R5,#2501 R, N" G5 r# i/ i: Z
JJJJ2: 0 D: x: u! v8 W
JB P3.7,JJJJ3
0 }" a* A* F0 J/ l) s" k) v DJNZ R5,JJJJ2
* j/ w. t2 [& F$ ?2 F6 E5 |2 m1 ] JMP START
+ b& @! e- o# f8 E+ }JJJJ3:+ t# Q1 b" R* `# d1 a+ j$ i
LCALL YS1
& W6 ~9 c, r* P( p; T MOV C,P3.7 $ w' _1 K' e5 M1 D4 d
JNC UUU
/ X ?: w2 Q' p2 U$ C MOV R5,#250
# B& Y) g# F3 pJJJJ4:
- e2 g ]5 [ C! |- h& k1 x) \ JNB P3.7,UUU) {9 d. s6 V' C
NOP Z( f7 t+ ~: R: Y
DJNZ R5,JJJJ4# Q0 S) Y9 A9 t1 \. \- e+ L1 O. s
JMP START
$ o) B$ O! W2 _! }. I- A0 s ?UUU: MOV A,@R1 # J# ?. m% \& }% w9 V
RRC A
7 o; W2 d) u' i2 o" d3 E MOV @R1,A / I) O6 r: D( j8 T# y
DJNZ R3,JJJJ 4 B, W. q. ]- G. ?3 C
INC R1 5 W/ F& _+ t' U' c. E
DJNZ R2,PP 2 x: w0 i0 v* |, H( P7 Q
% c* ^) x5 N2 E2 w0 C MOV A,1AH & F; \+ b4 ?* U2 E1 M8 j
XRL A,#11101110B4 q$ G" | ?0 W+ ~: W0 P O
JNZ EXIT
9 I3 n) B7 s6 r6 q4 {& A5 s MOV A,1BH
8 O/ r4 @' @/ @' O) Y" M/ c2 c XRL A,#10000111B K# r; b+ S' n Q( [& B
JNZ EXIT 2 f* X1 W( f4 M3 X1 O
LCALL YS3
4 F9 n/ ~& w! h4 L1 w& n MOV A,1DH - w* j+ L! T! _) g
CJNE A,#10111100B,EXIT
7 t+ a3 A$ ?# u+ H9 Q. B LCALL YS3
9 b7 u) Q- M3 S) @& w CLR P2.6 / u( n! ?9 t0 r6 v k$ F9 F' l
AJMP BIJIAO
; x1 T* N, l8 j; a
; l) I0 k _ v+ tAA: + Z% y/ B& T6 l
MOV R1,#25
5 z/ D5 r3 m/ O4 G# d3 e( J" dXX: 9 U9 }$ e' w: v7 X/ ]3 D, V! S9 H
ACALL YS2' m1 ]! `: @: P& G3 D
JNB P3.7,HH . C- e) q, N1 _, R5 F- W9 |" ]' w$ C
DJNZ R1,XX6 d A2 ?1 h) W( |4 ?
EXIT:
, t# ~- U7 T9 C0 E q3 x( F$ U AJMP START
( Y0 |: P' n' j' Y1 u' p: d
( d5 S3 f: t) W4 O2 b* J+ z4 `HH:
+ @( O: C/ t2 Y/ K- K* _. ~2 K o MOV R6,#4
4 J0 p- K8 j& F; e8 L( G0 _3 g$ [1 gS:
G b, \1 p8 V1 R ACALL YS1 4 s+ ^- Z c1 b# t
JB P3.7,EXIT
; t+ S# s& ~$ H5 n DJNZ R6, S
; k- B5 D6 J* s0 t7 H9 v JNB P3.7, $
/ A- f& j9 v( C O+ { ^/ n9 d LCALL YS3
' x9 @0 {$ ]4 c' y1 p AJMP AA7 A& s' S0 c: \
BIJIAO:
2 u- W2 u/ _7 D MOV A,1CH ; L; L. n& m1 ]6 Y9 f' q
CJNE A,#03H,N1 & ?# k; |4 r" J U9 _
MOV P0,#7EH : q- ?3 s) k; S1 b; v% L
, [1 n) }& n: d9 c7 ?" k
;处理STUDERV录音机控制码4 b& ^9 d' _% L o6 u6 e: _
N1:
# R! |4 N. x2 l. A2 h* ` CJNE A,#5FH,N2 ;播放键/ d( q$ V1 q+ v/ r: K! f
MOV DPTR,#REP \3 X- x, ^$ T3 p/ n# P
ACALL SENDA$ Z& \4 h- K+ M* q; |# D0 a
ACALL YS48 @) a# A& C3 V' A& g
MOV DPTR,#PLY
) u3 z* o7 X$ A A" B" h ACALL SENDA/ o% [( B3 Y; a
N2:5 K' N! A& c9 o- O
CJNE A,#5CH,N3 ;停止键# t j/ A' E( ]5 C* c/ B8 \
MOV DPTR,#STP
4 Y$ `- E; H/ O! c ACALL SENDA
6 n! N: J! n4 W( _N3:6 k# y q: D/ q6 x7 P# L
CJNE A,#06H,N4 ;快进键 y$ `0 L. I9 ]8 j
MOV DPTR,#FWD. y2 A- [0 }! o7 D+ s. I% j
ACALL SENDA
' h$ Z. p/ f& g, ON4:
2 r% W7 e" r( g# t' y: B) \7 Z CJNE A,#09H,N5 ;快倒键. k* V& x% T. I7 n+ F T7 o( ~9 E# u
MOV DPTR,#RWD2 k0 ~( D% |" [0 k7 \% n+ ?
ACALL SENDA' \# d; D1 X& D7 t8 Y
N5:
- W) _" A6 r! J5 U CJNE A,#0AH,N6 ;置零键
' u8 X2 w( o5 ~0 |. G MOV DPTR,#RTM# b& `5 ]0 t% H7 n$ C
ACALL SENDA
/ K% T. Q/ O$ V1 X5 EN6:
) o c0 s6 t' P5 P* G2 F CJNE A,#0CH,N7 ;定位到零键# U" x0 `5 M$ X- [! i) y
MOV DPTR,#LZA
% {1 `8 C4 [6 u( m: }' i( E1 Q ACALL SENDA9 y u& C- D# u9 _& k0 E+ l* ^
N7:0 S/ k0 {' A4 s
AJMP AA
; s, F$ X) E* C# r- d$ b2 a9 ESENDA:
% m5 j3 w& j0 P CLR A
% a# c- c: t8 j MOVC A,@A+DPTR
# H+ q2 t3 u# \" l8 z E' l; \& a3 `/ ? CJNE A,#'$',SENDB. k- l4 v4 D8 Y/ C: g: Q
AJMP SENDC
7 _- E s% u! `1 N2 rSENDB:/ p, n; X2 O1 K- f" {
MOV SBUF,A+ z2 g) b# c" e$ `, L) v2 C
JNB TI,$
. {5 W0 R1 i7 P' K CLR TI7 k7 g4 R0 w- X/ b
INC DPTR7 [, Y. Z- C/ S
AJMP SENDA
* G# {7 ?' s: b8 \( U F PSENDC:1 F$ k0 }2 }4 H" e4 Y# B
RET
; r8 p( D: ~, f( X& y( G9 F4 v6 H
$ B) C$ M+ @' ^PLY: db "PLY ",0dh,0ah,'$'
6 f4 T/ }$ C; m9 J9 t, ^" P zSTP: db "STP ",0dh,0ah,'$'& E+ y+ ?* k: N7 c ~7 f
FWD: db "FWD ",0dh,0ah,'$'; A# D: @" Q# D& L3 ~
RWD: db "RWD ",0dh,0ah,'$'
6 p1 i$ ~& v2 z( h+ HRTM: db "RTM ",0dh,0ah,'$'+ S# z' M% ?: d' K
LZA: db "LZA ",0dh,0ah,'$'9 L, y8 K# z3 m. z7 ?
REP: db "REP F ",0dh,0ah,'$'
B) |5 V$ |% f, O9 Y6 ]
) V6 ~0 E9 P- X* v( Q- jYS1:. Y8 S& Q7 {2 m3 A0 P' [2 p
MOV R4,#20
S( }+ N& d8 M* F1 l: M; SD1:
+ n( O' N( ]6 B MOV R5,#20 M$ p6 S8 L) q1 b) W' b
DJNZ R5,$# b7 H: x G( r
DJNZ R4,D1
7 e2 b, d" L) g ^/ z" S2 t RET, C' V5 D& Y) y0 p* z" k; q( `+ x2 g
( \7 D% M8 |" T% |# w( hYS2:: |5 q( G' g0 a# O! `1 L
MOV R4,#10: r7 f7 P+ O2 F" U
D2:7 g$ G4 Q: K1 b$ e4 I
MOV R5,#235
4 L- a( H! I% Z: {" D" V DJNZ R5,$
+ H' ~' ~ O4 ^; N( z* H+ R- S DJNZ R4,D29 S1 h: t; J* w5 @3 w$ P" {
RET
5 F& J6 R' v" o& V/ M1 Y
" h7 y2 w( ]& \4 s& j0 W" NYS3:
. F! F1 k0 T- j! A9 b7 r MOV R4,#2
# A, ~; _, O7 sD3:7 `0 u" X( t6 |) V! @ `) T2 [
MOV R5,#248
; E. N, p2 C9 y" N0 E: R- J- | DJNZ R5,$/ o4 o \' [' r' M5 q/ K
DJNZ R4,D3
4 n( j9 X6 v! k3 X1 B5 Y! h/ h RET7 U! u( O" S( l V p3 G
6 G3 p1 @4 f4 h$ N5 E3 k3 X! B! wYS4:' A2 r, Z' {6 `" W2 X5 ?* d8 [
MOV R4,#200! B1 U j) S* |! R
D4:
2 O+ p: M; `( c: d MOV R5,#248% ^" Z5 s5 S/ g' j8 F5 a1 U
DJNZ R5,$6 g& N. C( D- e/ G0 U: c
DJNZ R4,D3
+ x; n9 f+ c* U4 w" p RET5 V+ Q( Y$ O* i. v! L+ {% B
END
) Y5 ?+ d! K* s+ D: e
0 c! A5 v8 m# }' H! d3 q' j有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。) j( R0 z7 `' e/ R# b
是不是很惬意,嗯!
) p+ @* a4 S" D5 P; _0 W9 D3 R |