赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
* A y5 W5 C% v8 m. m" k( V' S$ P
+ w- T" { d3 E9 m d. {% m本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。5 Z0 ^2 y; E* `$ M5 s2 _
; C* y G, r3 R# g
说明:6 s5 w1 L' ]0 _3 z" k6 M3 Z
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
+ I/ F: N/ `1 k( v2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
3 V( }& S6 v* G3 A$ `
+ C3 B% r4 V) `' n一、基本思路
# }7 n: d+ D, z; m( t使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。 A* V% c/ ~. v `- p
2 Y, y6 x7 Y; E0 w3 e二、红外遥控器
) N. V3 G p W! x+ g. k我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。* b- B( j: d% |$ m% h6 ]5 L
, v" O; y" U! s' X* Q. U9 s" Y
好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。2 m4 y: L( B; F$ A. j/ C$ M }
) K3 Y5 Y/ X" f: N3 H在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
. D3 K; T% L& \* ~! S& }* y
( o. n* F) K6 G$ C# b) i
" j: o' H' e) `; ]' H: Z
三、红外编码) j2 e/ n3 X+ G! _, m, @" V
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。3 Y- P9 F: D# l; S
前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。5 S. u4 k0 J$ D% t# X% c$ W
后16位为控制码,主要用于实施具体的控制。
. P; T8 ^# Z, O0 u这16位中高8位和低8位互为反码,以提高可靠度。
6 w! S9 I8 i* u2 o
& s+ ?3 g* z7 K9 e6 V以播放为例,其编码如下:3 A; l L' c. I1 H$ A5 r
00000000 00000000 01011100 00000000
2 A0 J8 k2 B( `5 [" ^# D; k l$ Q6 H x1 K
你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。/ }0 M7 \* N8 O* d9 \( U
# S! F4 C- {. B3 T) w四、单片机系统
# f5 `6 t! @4 H2 ^2 J, s这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。1 M1 l6 g3 U5 U6 ?- O& M4 ~: r
5 e5 ^: |" L/ |& C( w & L L% I4 @$ Y3 K
电路很简单,功能如下:
* S% z9 P+ n2 v3 O1、一个AT89S52单片机作为核心;
: |% P* f: {$ p4 }2、一个TL1838为红外接收头直接串行输出数据信号;. m; {* B' B6 i" S$ Z
3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;, y' a, T& r/ M8 Y* I# @: n
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。
' ]8 G0 E% @! \+ t0 }5 A
" f" V* X! Z+ f+ Y9 L5 t关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
8 v) w/ r$ S( h' m& H( e6 z
9 C" o& j Q5 l9 j
3 x# R! d6 f* p, F- R& `8 j+ e五、控制软件
) S. l _0 Y8 h控制软件用汇编语言写,源程序如下:
7 D6 `! d) d2 }" Y, C+ t ORG 00H
' y0 X! ~6 B4 A/ G n LJMP MAIN- M; K1 k3 x6 e
ORG 30H5 m5 O! p3 X, S2 s. K) g8 C c
MAIN:, Q% o; u* O) ]* p2 n
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体) G. m1 [( u2 L
MOV TMOD,#22H ;22H; c1 z3 N* D' r0 V) i! ^8 o6 x a
MOV SCON,#40H ;40H
) P0 c6 }, B( ?3 S MOV TH1,#0FAH ;F3H6 U3 Z- N* L8 t& q: g
MOV PCON,#80H
7 P9 ]% L( D1 \7 x1 k$ J$ T6 V SETB TR1
" q5 C* y1 H' f U1 R* D; W4 RSTART:
9 ]2 `, ~# M! m. D% q( i& K& [ JB P3.7,$ ;遥控信号处理% `5 T" j( u% t
SB: L- [2 z8 f3 I; S
MOV R4,#8 6 x- i/ ^2 [, U1 _5 w3 Z* \
SBA:4 u4 \4 P+ ]! E! Z- W
MOV R5,#250
7 r5 J6 _& p, H# O3 U' LSBB:
; |, b# _- A1 w5 T) F3 V. ], c JB P3.7,SXB1
L) {) u( o2 `* V) y DJNZ R5,SBB/ ^. [; Y; | h5 X" S, z
DJNZ R4,SBA
$ P8 [' X3 w0 B* m5 w MOV R4,#2
: o) v& N; p: v: F& `! z. \ JMP SBC
% q n6 n# d3 RSXB1:& T" R; b3 U. } W1 R/ a
MOV R5,#5
- N; {" K r/ j5 U6 b2 V9 gSXB2:
2 \0 `" Z6 a5 a e JNB P3.7,SBB
7 P$ c/ K* }: P DJNZ R5,SXB2
$ W9 `8 I2 B' K& k9 T q" {# V JMP START( h& X4 {2 u5 U# h6 A" o
SBC:: r. ^1 ~/ z- T! p" U! D( a: D8 K8 K
MOV R5,#250' s+ _. D/ f H: u
SB1:& U! t" S& r/ k9 P& i1 {# F# F: T
JB P3.7,SB2
, j- d" L- z, g$ V: I DJNZ R5,SB17 o/ |3 z8 R. w3 K+ k9 H
DJNZ R4,SBC6 D% T9 w' S( M1 |' p2 s4 w
JMP START+ f+ p# Y; I) |6 O2 Q
SB2: ; X$ @4 y/ `1 T( g" r6 W
MOV R5,#59 | q2 o( C6 i b
SB2_A:* y2 M& F! B: q) ~
JNB P3.7,SB1* ~5 O9 a" d( Q- v
DJNZ R5,SB2_A7 d0 W( C% o" Q0 Z1 z0 T6 G6 q
MOV R4,#3" {$ Y6 H$ k# y2 U6 i: B. n
SB2_1:6 D* E2 k4 S/ N' R# V
MOV R5,#250
6 }0 q6 k( H% r- \4 W6 PSB3: 3 P5 w+ F5 z' Q$ k
JNB P3.7,SXC. d" j0 C9 V1 v+ ^ }( m
DJNZ R5,SB3
- P1 Z# ^) I; t! o6 y0 ?6 | DJNZ R4,SB2_1) q# U* k. @. ?6 o% Z, b! Y
MOV R4,#2
9 }' H" \( K' ?) E" v6 O9 l1 X JMP SB3_1. H* b; X1 `' f# \/ c H
SXC:
$ j! m: `7 }9 b+ O! x z$ e+ D, t MOV R5,#5( N* A) n' L9 {
SXC1:' B, l+ L# C% q* C& K2 b
JB P3.7,SB3# W. G b: W( I1 x) @
DJNZ R5,SXC10 S& _/ l* q U5 G& u+ G
JMP START3 v# u6 ]$ W6 j6 ?
SB3_1:
2 b) _: V: Z, ]& |- U2 q$ I MOV R5,#250
h7 S" o. C- `; `& e+ q' mSB3_2:: y6 c3 O8 y$ i9 i
JNB P3.7,SB4
. I/ t% `" O5 a6 L( V DJNZ R5,SB3_22 U; X; w+ f" [
DJNZ R4,SB3_1
- z8 n. l$ r9 n1 F( E$ o JMP START( ~' R# J/ U1 T3 @
SB4:
8 l# Q3 u8 @7 R$ z/ U MOV R5,#5
6 |. q/ o& V/ ?; nSB4_1:7 ?3 r% Q- j+ q6 a5 b4 T* i
JB P3.7,SB3_2
( H+ s. f2 D! J" H1 d DJNZ R5,SB4_10 F2 \5 l) e* q2 \: e( J5 [2 Y4 S
MOV R1,#1AH
6 q- `3 o7 Y: N* T MOV R2,#4
" c8 d7 D' R: M+ f- j+ I2 g$ ZPP: MOV R3,#8% J, H1 |. `9 o# N! c( c
JJJJ:( y9 | j; q, B
MOV R5,#250
. R+ a+ z; w" sJJJJ2:
! E" R/ Q$ b; L$ y0 F JB P3.7,JJJJ32 f2 T; v7 }1 v' E. T
DJNZ R5,JJJJ2( p* m# [7 G- B0 g3 Q
JMP START
9 G4 ~3 G2 P5 Y! n) tJJJJ3:
' Q. I9 s( g' [+ d7 c LCALL YS1
S# d- R3 M, A) B6 X/ e MOV C,P3.7
' ^3 B8 `- ]9 w# f7 z+ F; s JNC UUU 4 m* W, m# w$ i- w8 s7 P
MOV R5,#250
: \2 k0 { {# @+ S l) t* NJJJJ4:
/ G1 T* K& S+ V% | JNB P3.7,UUU/ `# `& Z' s& r) Z4 f2 [) T# L
NOP
) S% r0 m) @! J( }% X, T& @1 e7 `: u DJNZ R5,JJJJ4& C0 [8 F8 C( g" A# B! o
JMP START
/ h/ g9 Q1 D; o: W) V% K* I2 \UUU: MOV A,@R1
3 R" i! ]5 t7 G: A RRC A 8 i3 M# Z( D2 D6 E! ^% k4 j6 U
MOV @R1,A
, y- m( a# f4 z j: Z! J& a/ T DJNZ R3,JJJJ : \. k5 f% |0 n6 R3 X% ?
INC R1
. P7 P; _! Q/ F$ D# t DJNZ R2,PP . }! l1 ^& k/ p4 P( z! _* j1 _
+ b, }% z0 [ w2 S. B& O! v
MOV A,1AH
' f& \0 q! L# i, j4 T XRL A,#11101110B- F: X; T6 s# d
JNZ EXIT
$ F6 l- t) h, U" e# H MOV A,1BH - ^2 R3 S& [7 ~5 n5 h. g3 b6 G8 E
XRL A,#10000111B
! Z* y9 E" {" {& Y" P" E2 c JNZ EXIT
k7 _* Z# O) N9 I4 _. R. N$ U LCALL YS3
! G* Q! K! R/ H. i MOV A,1DH
! O o9 R, E1 `; u CJNE A,#10111100B,EXIT
0 s# ^: G. h6 d& ~) } LCALL YS3
8 z, Z" B, S, l: R# J CLR P2.6 d- b/ y+ i% P6 w$ i0 S
AJMP BIJIAO) d# x! l+ @, _' ~
+ l7 M; ~8 R3 b0 [# n
AA:
$ { _7 k# N H$ r MOV R1,#25
! H2 {+ W3 z- V! O8 a6 DXX: 9 o$ i4 ] S% u$ U* T: h. p+ e
ACALL YS2! Y" \- R/ l- w( n& I2 x! Y
JNB P3.7,HH
; [8 T. g! G, Z+ j8 P* h9 L DJNZ R1,XX
5 x/ K! A" \' |) s$ F! }EXIT:
* V0 ]+ Q6 W2 \( ^/ X Q AJMP START6 u6 }7 W' Y& I$ L( |' ]
: O. }4 N: y2 ?0 J% U1 a3 i/ }* ]
HH:) e( E: p7 ^4 x9 `# X+ H) y+ J& e' W' d
MOV R6,#4
' I3 P% k( p. V1 l6 {S:
3 u6 B5 n" V$ N W! \) k ACALL YS1 8 L W4 n- A2 a+ X8 P+ y* w7 K
JB P3.7,EXIT , U ]& i2 N8 K! u
DJNZ R6, S 3 l, i& T4 q$ }" d8 E+ y1 A4 ~
JNB P3.7, $
+ U* N# [7 m; L' H* H" z LCALL YS3" |4 R# v E0 o3 j% P
AJMP AA
) X: w& K1 u6 _/ hBIJIAO:, N! U1 g/ K4 q1 e: e
MOV A,1CH
! ~: _- m4 j' V$ B2 N) q CJNE A,#03H,N1 . g: Z4 Q, q7 T- ?4 H: g5 ?
MOV P0,#7EH
; u( \' V( e7 T% G6 W: p2 K6 z/ Z V+ e9 }5 E7 R3 y1 o, S. L* a
;处理STUDERV录音机控制码6 Z! I8 F5 T% @0 p# q* ?
N1: 9 u" f* n/ \& S
CJNE A,#5FH,N2 ;播放键5 b$ {" Y4 U S* X" k3 V) I
MOV DPTR,#REP
0 z' Z1 L: E6 v2 k1 y, ]% f" U6 J; j; { ACALL SENDA
8 O0 \" J/ K( x ACALL YS44 Z: r" m0 V" H" ?
MOV DPTR,#PLY7 y4 c3 F, E n6 R
ACALL SENDA8 m2 D9 ]$ G; f8 F) C* {3 m: K
N2:) T1 J$ B. b+ [
CJNE A,#5CH,N3 ;停止键
7 U- ~% Y# R; P* s MOV DPTR,#STP
3 d6 v# X e; K+ s. c ACALL SENDA6 ]% P/ D: {5 L' r# ^- P5 C
N3:& ?4 i+ o3 T# e9 R0 Q) ?
CJNE A,#06H,N4 ;快进键) C4 W4 H- q5 `. ^. S
MOV DPTR,#FWD
v6 i }) A4 a5 a0 c0 V% q8 H+ X ACALL SENDA: B" W: z& c1 G/ J& G5 c' L5 w
N4:
2 O9 Q: Y$ G6 O CJNE A,#09H,N5 ;快倒键5 _+ Y6 Y3 c. M! ?
MOV DPTR,#RWD! I: ]$ P4 O# T. g, `' M3 h9 I9 H( H
ACALL SENDA
+ q6 O$ q- L) Z1 |9 AN5:
% P( J: x4 ^* e CJNE A,#0AH,N6 ;置零键
& Q1 ?7 A& T" q6 R/ u5 u MOV DPTR,#RTM
- S5 S5 d& s6 o* \# }' S5 ^( \6 e ACALL SENDA
/ C9 j* F) \: o& }2 N7 K# K3 J9 XN6: W& T' C7 c) {
CJNE A,#0CH,N7 ;定位到零键
7 D9 D+ C& q7 Y1 F& s MOV DPTR,#LZA& ? d9 J- R0 W/ d* f/ X
ACALL SENDA
N( S* l9 ]& P1 t Q. @N7:
6 v0 @3 P3 n6 G' l& p AJMP AA
' {; Y: R9 [" M* pSENDA:
, A& w6 R+ J+ O0 q, X j1 D CLR A- r" g3 c6 a ~3 D4 ~
MOVC A,@A+DPTR/ J' R' o6 t2 \" p& g
CJNE A,#'$',SENDB$ p D( V. p% J! X
AJMP SENDC, @5 \6 g+ Z% k& }3 C
SENDB:
. r! Z% x# x7 O MOV SBUF,A
# f& e0 Q& N! D6 \) T: a JNB TI,$
8 C. @/ B' A( J8 }0 M CLR TI
/ S# q' i) F9 ~0 S, Z: } INC DPTR
% M* V/ `6 \! D8 F! q2 j& v$ \ AJMP SENDA
7 q+ D/ R0 _8 T, zSENDC:" X! j7 J* y5 B" p
RET$ L T6 [# C- J0 s# w
) N5 W: h ]- E$ e CPLY: db "PLY ",0dh,0ah,'$') w4 h0 o3 p1 W
STP: db "STP ",0dh,0ah,'$'3 Z" f! Q8 s7 G& T
FWD: db "FWD ",0dh,0ah,'$'
) O9 p X4 {" }9 IRWD: db "RWD ",0dh,0ah,'$'
$ U" f5 @) G+ z5 f* X JRTM: db "RTM ",0dh,0ah,'$'+ F/ ?9 e7 W3 \( l, y: j
LZA: db "LZA ",0dh,0ah,'$'
6 \& [ b" w8 E7 u/ b' \REP: db "REP F ",0dh,0ah,'$'7 Y K6 f7 b( k
0 v# z6 x3 i! aYS1:
8 v* o, B. p2 X MOV R4,#20" R0 ?9 Y$ i# I9 s% p
D1:
y7 Q; f% k: t0 n% I$ h7 u MOV R5,#20
! {" n2 K8 l5 a2 E% P2 i2 F) f9 M DJNZ R5,$' x5 B! ~ R& m+ @- m: u
DJNZ R4,D1* r- S0 f3 r, F6 c
RET& T$ f9 n( u# T0 L( {4 G
1 b" d' W u% j" T0 Z
YS2:
$ U7 U! \# S- Y! R# F8 e MOV R4,#107 g( m' y9 s. {( L0 Z
D2:5 _# C+ D0 y& Z/ C
MOV R5,#235" M' T* ~# X* d+ ?( s
DJNZ R5,$' D' V6 `! y% S: z9 S2 B+ h
DJNZ R4,D2; W6 q; C) @) o3 [) n0 G" p# f
RET
5 J# g5 I0 c* {, r5 E# y% G4 o& A
+ M% r' ^+ K7 C H( S4 q& QYS3:
9 R, j( a# }& x' H MOV R4,#27 h. d7 t8 N& p8 O2 `' q
D3:
' G$ z% i% `! Z MOV R5,#248
8 s. i. o2 R3 i, Z1 @ DJNZ R5,$
8 O9 c+ h; y. M$ K DJNZ R4,D31 ? D) |" N! a3 `
RET
" D9 b/ v8 i; u( h( }0 p7 l# T7 N. g! D
YS4:+ h# S8 C, C9 \ O5 ~$ A, I8 I
MOV R4,#200
& q( k$ m9 ^2 I" S( {8 OD4:" L! b* U' `1 Q
MOV R5,#248: u( j8 e- ]8 V) b
DJNZ R5,$3 X: Q4 ^9 O. A
DJNZ R4,D3
- W: [& \( w7 C( _ RET
1 [: f3 H; d* @0 }* h END
2 o% G0 i5 L: q2 |) {( |
# a7 t( }3 u% C& @/ K9 l有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。
8 Z. X; i6 A! O* ~6 I: M是不是很惬意,嗯!
9 b. q# V4 u7 v* v |