赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
6 |! } n/ |5 N; m$ W& J5 T- s7 \6 K+ P- Z' n
本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。
1 g7 }! _0 U6 H/ `9 H* N& u0 Z, R! f! b; \
说明:
: ?2 A' S. `$ K3 j! p2 [; J: R1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
" v- a1 {' D) g( ~2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
. c) u" Y4 O; R7 L9 V9 p$ Q
0 e; K9 U( A' m: A& d, b- O, h一、基本思路
r+ l0 |; s$ ?/ p2 |) g6 H9 C6 Z3 J使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
/ ]% I/ U* W' W, S* ?$ K* R& Y
% O9 ^( G% c6 j. W- K5 j0 _二、红外遥控器
7 m* L4 {1 x) m* q7 ]( s, f# r0 h9 N我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
4 o9 a& `/ U' ], J
- o3 ^, z& d* [& y, _! C. N
好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。) C- h" ~0 r; g3 I! a3 m, V& w
% E6 A" @0 P* O. |' j
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:1 |5 i% P- m9 n- ?. Y
, D6 G8 I& G4 J9 d' y% W
( C0 W J& n; Q5 I* S5 e$ e三、红外编码& i6 J) X3 w+ r4 ]
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
+ r$ F' t; Q3 { ~ S" e前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。 @( l$ K: Z- c5 R! }) U i3 N2 [3 C
后16位为控制码,主要用于实施具体的控制。
9 @0 g' r; `, |这16位中高8位和低8位互为反码,以提高可靠度。
2 w! {" {* ]5 r( C
5 @8 ]# t% m. ~1 w6 J以播放为例,其编码如下:
& W$ d) W: d/ x n00000000 00000000 01011100 00000000* P* K/ f* h+ N2 ~* m
- w3 `; w p: u' `4 w$ [
你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。4 D7 y6 l% Z8 O4 j
* \6 [; Z r. e7 n( A8 o四、单片机系统, w& O* u, {' o3 I1 |' ^
这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。+ P2 u9 C2 K, A1 J. }, X
7 r \+ C7 z* A& x2 t
( F1 g) ?# t: ^) j5 d8 ~4 X电路很简单,功能如下:# q' @/ Z$ M3 q3 G% c' I+ a5 l; }
1、一个AT89S52单片机作为核心;6 C* q4 h0 g* d o9 H; w
2、一个TL1838为红外接收头直接串行输出数据信号;2 }" Z! l3 u3 p9 d$ G% q
3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;
1 E: ?4 m! y4 x' u4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。
( o; b; ^/ J0 J2 O9 G% Q
- k" X x) W/ M8 g关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。6 n2 J$ M, N" ^* Y6 R
0 |4 R5 O# T6 ?. e- d' k
. v, i' n4 Y' k, }五、控制软件
0 ^# s6 }- \9 K4 D2 P控制软件用汇编语言写,源程序如下:
( k$ O2 T. d. \8 l2 _" y! I3 k ORG 00H3 ?& T$ W2 b/ B2 Q5 z$ n
LJMP MAIN7 p/ c/ F# x1 B6 f
ORG 30H
- B7 w. H; B1 ~2 U% }- SMAIN:
+ y# g4 |5 P( F0 P MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)( }% M1 w6 O0 S' d
MOV TMOD,#22H ;22H. p: H; ]1 }* ]) R7 X. g
MOV SCON,#40H ;40H
3 x& Q7 r5 ~. l. B MOV TH1,#0FAH ;F3H
1 n+ y" ?. Q( o+ R+ Q$ `6 W MOV PCON,#80H
; C9 E& A9 P0 { SETB TR1
9 [. w% ~( T& b3 B% R& J$ QSTART:
0 s! u- f, J) O; j$ m JB P3.7,$ ;遥控信号处理# U3 M% g* B7 _5 A' R' u
SB:5 _' s( N6 j: K& O- x% p- i
MOV R4,#8
$ i: K' t$ t' b& a+ x) RSBA:8 w) Z/ l4 Z: o( R
MOV R5,#250+ A& I. R5 @; i0 q) m1 y
SBB:) c. b3 X$ S% C: d4 C: D% m
JB P3.7,SXB1% C% y; y4 O9 P% G, }) F! h
DJNZ R5,SBB8 B, G8 J, R0 b! O* z
DJNZ R4,SBA& Y3 _( j4 [8 {2 o7 g
MOV R4,#2
1 G3 U, F1 }1 p4 B2 A4 F/ X JMP SBC
/ W- ^7 Z+ t; _6 T7 sSXB1:
- U, T6 ]1 m1 m( A& p7 m5 d" f( F$ e MOV R5,#59 J2 `+ o8 O; ]6 X
SXB2:
4 p( b$ x" `, l, N/ ? JNB P3.7,SBB3 V- P8 D! h, P$ @. D% i: k
DJNZ R5,SXB29 x( L6 `9 a! U4 E
JMP START
; `2 u) R" i+ @8 _0 F- i5 ?SBC:3 }+ u4 B9 {" Z% y8 Z
MOV R5,#250
; y8 I: |+ I: n; ^9 ESB1:4 d4 D ?7 M6 U/ Q* h1 b
JB P3.7,SB2
6 K" E+ ?$ [* m; e$ G DJNZ R5,SB1; D1 M$ M' j: z7 e
DJNZ R4,SBC
9 L) y6 q/ v# ^2 r! Q JMP START
! B0 m( q8 X9 | ^( ]0 |SB2:
* M: e- Q- K/ C/ [2 c5 D+ M MOV R5,#5
0 ]: _: p$ h( ASB2_A:# S3 B Q6 Q4 F* H
JNB P3.7,SB10 R& w; Z! }$ A* j( y
DJNZ R5,SB2_A! A5 V2 K: E4 {
MOV R4,#3
) g' Z& H1 `3 j/ K0 B* o' dSB2_1:
( a3 T- G' s4 i5 m7 {4 D" n MOV R5,#250/ [2 [8 I* q; U# ~5 b" x8 \. c
SB3: 5 q8 Q3 q w/ \& ^/ J) W& z0 `
JNB P3.7,SXC
3 Y# s s% N/ e1 y DJNZ R5,SB3, ?/ U- {. N. M+ D
DJNZ R4,SB2_1
5 D( `( V& J4 p/ p) X+ n4 u- [" d MOV R4,#2
( J3 I2 j, P- P. ^ JMP SB3_1
5 g" n. l. C" _- JSXC:
# K' z. j- A8 }" ^1 D& N7 z MOV R5,#5
4 \3 E9 V9 ]1 k: GSXC1:
) y6 A( s7 W7 k& ~* h- v( P( w- f JB P3.7,SB3
* p1 e4 k( j! \$ ]) a DJNZ R5,SXC1
/ n* }4 G3 c c. U% @ JMP START
" k q5 w, a- s. P0 T. T1 iSB3_1:
9 @$ o3 o2 r% Q MOV R5,#250
$ f5 L- j3 w( D [# k k, z4 ~SB3_2:" O6 c& h/ B8 V' t1 X; @* U4 P6 O
JNB P3.7,SB4
' W, V9 v2 I6 ^1 h DJNZ R5,SB3_2
, f# j/ S7 U) [7 u. [3 n5 _( f DJNZ R4,SB3_17 B6 q; l/ I3 q0 y
JMP START# h; ]: W6 R/ L7 f/ E6 c, X
SB4:
0 ^/ P2 b b/ i) ~5 |+ g! L MOV R5,#5
* F$ ]; W9 [+ h) t& ~( R9 TSB4_1:0 k! E" C/ A5 h/ g& z% j# f
JB P3.7,SB3_2
- e% y) _. s9 A& m DJNZ R5,SB4_1+ k6 P2 t, w& ?% F, Z6 g n
MOV R1,#1AH & g) O j ]* f
MOV R2,#4
0 E1 V7 E/ W" g& M6 ?, @PP: MOV R3,#8
; O* O+ W9 r3 o+ S9 b+ ?# }% qJJJJ:
( e6 _& F: o" y: {2 Y$ s6 T; W- u MOV R5,#250$ G1 r' Q" Q( m, c: k7 k
JJJJ2: ! f. e" O* E+ i! ?; ^+ ^! y1 J
JB P3.7,JJJJ3
. ]. ]6 n+ X$ W/ T) V* |8 o( J DJNZ R5,JJJJ2
4 d+ q( X$ ]+ h+ W6 X, i JMP START
8 I9 t: E; E4 C& LJJJJ3:- t6 `% [% N/ }5 W2 E' C
LCALL YS1 ' \& O5 y1 C8 Y
MOV C,P3.7 5 g) p1 q4 Z% r0 j* b2 Q
JNC UUU ( y% I, w4 B2 o. c
MOV R5,#250
6 V" w$ H% T$ v; \JJJJ4:, @' V# P7 n9 v' w
JNB P3.7,UUU, X* a0 ]) Z; V& h6 ?- q( O
NOP
6 E9 E- a( L1 h, f7 [+ a DJNZ R5,JJJJ44 m. p0 m4 ^: p
JMP START
6 v5 m+ X% m! a6 x4 N( DUUU: MOV A,@R1
* a4 N# L# j& T; } RRC A ! c/ J* P* ?. A3 ?& {; S
MOV @R1,A
! s- ]0 Y4 W5 u* O6 L/ F DJNZ R3,JJJJ 9 m) R4 F ?0 r* m2 a- J0 Z
INC R1
6 f$ f6 [( \: W DJNZ R2,PP z: \0 s2 ~- x
$ w7 j6 _0 _, Y, Q. S7 u. b1 ^
MOV A,1AH
5 v3 F4 c9 C% Z+ }! ] H' z XRL A,#11101110B% f: Y/ s4 [" z2 l7 w' U/ ]
JNZ EXIT
* m9 q* _) Q0 `' h+ G0 d# v MOV A,1BH
# g. M6 @3 d* y ?( v XRL A,#10000111B
E* J1 R i+ J7 ^' R JNZ EXIT
& v6 I4 y" X# j& {1 a) B% D5 J LCALL YS3' [; z; J& \- ^1 y# J' s
MOV A,1DH
, n! C# y" u* {6 M CJNE A,#10111100B,EXIT
/ p) U1 J* q5 Y+ \6 e LCALL YS3
* \0 R6 K- z4 y' A: M CLR P2.6 8 Y9 _, Q" u0 @' e& f" F+ c
AJMP BIJIAO; N1 ^( `7 G. Q
% o; g% N- S8 L' p0 L8 YAA: 5 r" F+ s" z) d& `7 H
MOV R1,#25
$ l8 c+ y# I+ z# P& m/ R/ o' `XX:
* S0 ]& E% C' i5 z X ACALL YS21 p' [. ]. t9 Z" W" M3 ~8 K
JNB P3.7,HH ! R$ p3 P. ?: j! Y% t
DJNZ R1,XX0 b( X' g9 ?) t) O6 f, M* u6 q7 F) v
EXIT:
8 |8 c/ R9 j' \0 A AJMP START
0 E! {- ^6 Q% L / @& T5 R# I4 v4 }# m$ g
HH:
5 w1 d6 h3 S8 l0 J, n MOV R6,#4, r) ?# E0 K, _
S:
1 b+ H9 _( h3 P/ f( n& _, X ACALL YS1
( _" {/ Z' y0 R; N I G JB P3.7,EXIT
7 {# N1 U1 R6 u& z4 [$ G DJNZ R6, S
! V- x# n# P1 R! @ JNB P3.7, $ , l" H' J/ R9 \+ h: t
LCALL YS3 {8 X/ A- I$ `! h# i; v1 |
AJMP AA" i* J8 t# m( r$ w
BIJIAO:
) y1 O3 [+ o, |0 q3 R3 M; z# G MOV A,1CH ; w7 H q( d' {0 R d* P
CJNE A,#03H,N1 3 N; L2 v: t' Z' P" y& t
MOV P0,#7EH 1 r" Q: i) T& E
0 n& _7 t7 j9 V2 m/ S6 y
;处理STUDERV录音机控制码, P, i$ M8 G# P- Q
N1:
# ~# N; A% G9 ?: M8 C- I CJNE A,#5FH,N2 ;播放键7 {6 J6 L! @, @; b6 m$ x0 U! A
MOV DPTR,#REP o- `9 @- V3 b% H
ACALL SENDA0 z# X( z: T# o) ^! Z
ACALL YS4
. W/ z5 v8 q) j MOV DPTR,#PLY
7 k. U# m2 K" z4 r: Z+ r! Z ACALL SENDA
* }$ R# d4 r# K0 w0 Q% h& k8 A, rN2:0 `+ u% ]; q' g) h" j* i% M7 s4 `
CJNE A,#5CH,N3 ;停止键* E5 K- P0 J+ Q6 g2 k* v
MOV DPTR,#STP
1 Y. u; P6 T4 V; K- u ACALL SENDA0 a$ T3 p: {, e, o4 ~; y: u* n. n
N3:
Z% R& H$ O$ Z( ?; | CJNE A,#06H,N4 ;快进键! a" r1 x$ h* }: W( z% p3 H" G6 P8 p! o
MOV DPTR,#FWD
$ o, i3 b! i( i6 j ACALL SENDA
" n; I/ g, U4 S; o# \N4:
8 Y* r. ^6 _6 X1 L; l CJNE A,#09H,N5 ;快倒键; ]# _7 b) N& E* r: L3 x; n/ s
MOV DPTR,#RWD
( r6 H* l; A! _) g2 o( S* Z ACALL SENDA7 \6 Z6 K- a* w- C# M; c( x
N5:
' J3 `& j" b4 E6 O CJNE A,#0AH,N6 ;置零键! Z4 {( S4 m2 [4 g
MOV DPTR,#RTM
# `3 I# T0 d6 B, s, R2 h/ O6 J ACALL SENDA
* e. R+ U( h2 W7 j" [1 Q1 {* yN6:) f- M6 T; W+ m/ W$ M9 Q
CJNE A,#0CH,N7 ;定位到零键
/ t! A: e5 E: L MOV DPTR,#LZA
& |& t! A5 E( r9 j$ b. D ACALL SENDA* x# z# m$ g+ k4 W: Q
N7:% e' R* C0 V( Y8 G9 ~" p. i) b
AJMP AA# G$ Q' P# s, r" U/ X
SENDA:
R8 P: W; G s) K( ]) Z CLR A4 y* v0 v0 _$ D/ V4 `
MOVC A,@A+DPTR* ^( T4 @& m0 G# Q: X
CJNE A,#'$',SENDB/ ^8 B: E0 R$ i
AJMP SENDC
- Z: e/ z/ ~. ?3 b0 xSENDB:4 t" c2 @3 s5 J
MOV SBUF,A7 P" w3 a/ u! i
JNB TI,$
# i3 Q/ @# U% r) J CLR TI$ W* F4 F, @: \+ F8 u: r
INC DPTR' Q" s& Z3 C6 A q6 U* L- C1 K
AJMP SENDA h( h( }( k- q1 {( g5 M
SENDC:0 p/ }4 o( Q1 b; S$ S
RET0 c9 r& k$ j- _
, O h3 X% x$ L3 b6 }
PLY: db "PLY ",0dh,0ah,'$'$ s9 A8 A0 @: U& G
STP: db "STP ",0dh,0ah,'$'' \6 U- X. T; R6 `
FWD: db "FWD ",0dh,0ah,'$'! V% h }" I- C5 U5 T
RWD: db "RWD ",0dh,0ah,'$'
- `; P+ Y* t' S8 b1 w3 o9 KRTM: db "RTM ",0dh,0ah,'$'
) H( q6 ~+ `1 l6 y5 I9 c' P7 ?LZA: db "LZA ",0dh,0ah,'$'* u$ A: S: e) i! r+ M8 r
REP: db "REP F ",0dh,0ah,'$'
+ S7 h$ ^/ u! ?- d$ B" q' S. S$ B. D8 k; C6 a
YS1:
4 B) u+ H3 ?5 D, U7 v4 f2 \ MOV R4,#20& R' q! {, \+ \3 }' q; Q
D1:6 b; E9 m2 h7 Y0 j0 j- r
MOV R5,#20
/ V. x0 q! o% o1 V9 i1 p DJNZ R5,$& l3 i3 A, L$ d8 T. L
DJNZ R4,D1
+ J) g) V# L( h9 g& X% t. R4 u RET
6 z6 b1 K/ N; H+ @) c( @8 _( ?# Y* I
YS2:
% {8 \- q; q: {& Y* h! ^ MOV R4,#10- I3 y# @( K1 B- p& [4 j
D2:
9 B* m) d! e3 d- q6 Z# v$ U MOV R5,#2356 L" |/ {2 E, u2 D& E6 b* }9 U
DJNZ R5,$" h" e4 O5 T. P! a K, @
DJNZ R4,D2
" }) J4 `9 H, K% p! Z RET( y: R# l7 P5 Y2 _. \
5 z* ?7 u7 r6 bYS3:9 M" P6 z1 W' }9 f
MOV R4,#2
; t8 [ f! f/ {; G) Z$ Z$ HD3:
' r0 |1 ~$ J" Z4 p* m MOV R5,#248
+ s, G, q; }4 [1 M; H- j DJNZ R5,$2 H+ |8 U% K4 v' u8 J
DJNZ R4,D3* U9 G/ ?9 G5 l$ s) h# `4 w
RET
5 G3 q" G S8 M: h9 L f& U' k6 X1 [+ q& t
YS4:
6 ?. T- G& o* G9 k% s MOV R4,#200) l; [! l! V% u+ M
D4:
- B: ^8 i5 `# M/ ]( ]3 V MOV R5,#248
0 k5 ]- n. a: N# s5 V3 i DJNZ R5,$+ T" J1 j# V1 Q5 Y, z+ h
DJNZ R4,D3
7 S7 D0 p% k/ J# D4 y" U! E" { RET2 d! i. i' q$ \) y! r( A
END
6 N) D4 S% T" ~9 c2 o1 P6 J. J9 f3 v% \) `# ^; a+ K$ f
有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。
; P$ ?% v: B5 m是不是很惬意,嗯!
# l: {# {, A; j4 V2 @0 l |