赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑 6 c, W' O* O4 x# u; ?* f/ p
6 _1 l2 P" ~' v) _( _
本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。% Z4 v9 d; t. h: I8 g5 F* _
0 m9 ^1 u, Q4 }* V b2 Q5 l
说明:
+ X3 U* m% K$ e3 |2 ~5 c; J1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;$ W+ V0 S3 O5 B, u2 l# L% S0 y
2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;6 y; L/ z$ B, K% Y, {
2 i1 A6 D( |& i% q/ B一、基本思路
4 r7 M; ~) X' u: L2 x使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。. `$ c7 b- E) Y6 Q( A: @4 P6 H
! K. m' W7 e* v9 p二、红外遥控器 B/ e+ Z. r, a; _
我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。5 I' A- E" \" l- O9 y. D
4 n7 O2 h' N+ Y好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
1 c( _& h9 e# f' z* u
; J+ B( X* N6 V) @+ A+ n8 s9 O# d
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:$ o6 s4 u: ^4 ?# x2 S/ a0 g
6 H0 a; W/ r9 `: ?/ Y6 ]. [. c
% v2 F" O% B5 Y( W6 z# Y# t三、红外编码' x& O$ p6 g/ }2 Q3 Q! `
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。1 Q0 I7 |. U/ ~: r* n
前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。) J" `- I, N7 O& f% B$ V! V
后16位为控制码,主要用于实施具体的控制。
" z) I7 B( [ o这16位中高8位和低8位互为反码,以提高可靠度。3 G& F" F* O7 n5 ]1 y% O
7 M6 W" _1 V- ]8 I
以播放为例,其编码如下:. W4 V7 u# v$ v6 ^0 ?
00000000 00000000 01011100 00000000 F, b; i. q& C7 B- P" L4 i: a* h
. c0 s2 @" `; z0 R9 V. N你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。6 u0 R4 t4 I1 O/ \
7 S& N" L- g' P# W* R四、单片机系统8 z& y: z) g; @/ C) w/ H
这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。
$ w6 u7 K% @' o
) X: V8 U0 B3 \( I
4 J$ [$ H7 N' `/ ]: I电路很简单,功能如下:0 o; F$ | H6 @) A# d
1、一个AT89S52单片机作为核心;- t: R8 X5 t4 Q3 r1 S
2、一个TL1838为红外接收头直接串行输出数据信号;
' C3 s1 T' H5 v$ a+ Y3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;8 W' E% _# }2 b* D- V; B$ L
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。6 c8 u# f: b3 l* Q; k7 A
/ N, S5 B& M( x$ I
关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。# Z2 B% _. w! z* }7 r5 M1 ^
* }! u1 f4 S) F3 L
# L% N- r+ o4 s/ N五、控制软件5 |0 ~* I8 f, b; y+ b+ z. }
控制软件用汇编语言写,源程序如下:
3 d; u! k6 M/ D5 X, `+ ^# T ORG 00H
. L7 i7 v3 X; ^0 |" F2 R+ e LJMP MAIN
2 E3 S( V3 H& K, M& v ORG 30H! P% @1 R; [: o3 Z1 |
MAIN:
$ c: d: H6 f2 D MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)! k% s* [5 k2 D7 T5 v! o
MOV TMOD,#22H ;22H$ K' |! i: }2 `8 X5 I( n* G
MOV SCON,#40H ;40H% m) l# Q+ X4 y4 K
MOV TH1,#0FAH ;F3H
! E0 t; T& M; r3 `9 s MOV PCON,#80H
6 x* O) e2 O& g/ `: ] SETB TR1
7 Y( ?9 C6 l5 D) N' cSTART:! i, v; b$ Y- X* a% I" u
JB P3.7,$ ;遥控信号处理
5 \- j5 {7 D: ~3 O+ BSB:/ K# q3 H" D" |) ]* s; z
MOV R4,#8
, ]# L+ h% T% o- i8 U8 z) jSBA:, h" W( t B' w$ V7 T. q
MOV R5,#250# S. E; \1 l* v. T3 Y6 e
SBB:$ \! |! ^/ u1 @4 O5 y- q
JB P3.7,SXB1
% K% I; C5 L+ m9 M% }: h' h DJNZ R5,SBB
' h0 @- ?. d6 y) A DJNZ R4,SBA
2 A7 c8 x. Z3 }1 O MOV R4,#2
* Z! P4 P' M/ c, @- L JMP SBC
. d: V1 l4 f# }8 { dSXB1:; ~+ R$ J) H0 H
MOV R5,#5& W0 E5 o1 N8 r
SXB2:
( [% v; K% T E2 r0 B JNB P3.7,SBB" c- Q3 c% a- J! q3 U* ~
DJNZ R5,SXB2
) k6 Y/ k& l0 {* y JMP START- ~7 k; ?( n6 p# w* |
SBC:
& A: C; J7 d* c$ C$ H, Y- t MOV R5,#250
1 b7 q7 s- e( v9 B2 G' eSB1:
$ o' A4 W: L: @, A" \ JB P3.7,SB2
: Y7 e2 v* y7 s DJNZ R5,SB1) D" ?* u# ~4 Z& N% f9 s9 i
DJNZ R4,SBC
" M5 q3 U: I: P+ r* b/ z JMP START
; @4 w. | @" o, Z u: ^9 \- a5 RSB2: ' q( M2 c5 U/ |7 ?1 a
MOV R5,#5 N) p2 V3 C. l- b* b
SB2_A:
# L. O' Y& u8 J. ?3 k2 V8 x JNB P3.7,SB1! o& X5 F& \2 `
DJNZ R5,SB2_A2 e- R/ m2 l# m4 C, G* N9 }3 h# J, g
MOV R4,#3+ N$ V3 G- v% O* V2 G
SB2_1:
; \0 W4 A, U5 m# L* @5 R& q MOV R5,#250& N# Q# @7 J M0 N
SB3:
) u* k9 h4 ?5 j! D4 G0 Z JNB P3.7,SXC% T+ n; I u8 m/ X
DJNZ R5,SB3
) s1 v% ~! G# w9 |0 N DJNZ R4,SB2_1& W E% m5 |( s& L
MOV R4,#2
4 J! v4 y4 n) A, N3 T JMP SB3_1
9 O! X. C0 G7 FSXC: & q q# \5 T' K
MOV R5,#5
7 }: X5 T7 J# M3 QSXC1:
" G0 G" Z: r! h) @+ y1 g5 d5 n$ x- Q JB P3.7,SB3
9 l$ s0 u% A: |) X DJNZ R5,SXC1
: z( t; v4 ?& d* X JMP START! k4 Z* M- U* D: p6 P. t7 V
SB3_1: % ~0 j9 t* W+ ?3 W: y" y
MOV R5,#250. a( z* _: o% o2 V
SB3_2:
. H# l* R5 g# ]! }+ D* Z3 D JNB P3.7,SB4
z- C. o4 I8 v/ y; d) E; S2 A2 G DJNZ R5,SB3_20 t) b* o$ \) E! i
DJNZ R4,SB3_1
$ E% t8 N @2 N, U q JMP START9 Q- q2 W4 m* N( L2 M! S
SB4: / r7 c M6 {% H- h6 W7 i4 _5 K
MOV R5,#5! Z- Q p% R. C8 D4 j+ V0 ^
SB4_1:
' Y! i* [% E: W8 ]( K! L JB P3.7,SB3_2$ t. _1 y6 q0 x, w0 g- |
DJNZ R5,SB4_1. T: A0 F a* I+ h- s
MOV R1,#1AH
* ]: T. N* d& r1 D1 J. D MOV R2,#4
0 Z5 F+ L, Y+ C1 vPP: MOV R3,#8
5 B' _4 v5 z% q* B/ v; e& IJJJJ:
! {7 a! l n: d) F; D" B% ]% X- g MOV R5,#250
# u: b! W; }1 m+ u$ y# pJJJJ2:
/ R( t6 J% h( ^4 s5 J* R JB P3.7,JJJJ34 l0 ]7 X! d& r: o) o9 R
DJNZ R5,JJJJ2; w# V5 T8 a/ I# b9 V* u
JMP START: t+ z5 c& x8 t8 y: S
JJJJ3:1 R8 z) q: F2 f* v$ c' i* Q* e: \! T+ h
LCALL YS1
1 B1 B0 ^; y' Y' b: C, _ MOV C,P3.7
! S6 Q4 N! u$ k2 y7 l- n JNC UUU
+ s2 N9 P- k ]! k) Y& U( O MOV R5,#250% @+ s% ~0 A/ z
JJJJ4:
$ ?; X9 i$ O1 {! o- I* c JNB P3.7,UUU
6 r' g- h; R" ]9 V8 f NOP: U( l+ N) s" z! G" M
DJNZ R5,JJJJ4
2 C5 ]& s8 \" i# W, Y% M JMP START! R3 |5 n* W2 A0 K0 f' F e
UUU: MOV A,@R1 6 D: A8 H' V- V! A R
RRC A ' V; p5 y, F2 I4 G
MOV @R1,A
& d& ^% }9 p2 B' v0 S8 k% _$ B DJNZ R3,JJJJ
1 j) e3 g3 e/ A: Q/ G* N INC R1 3 R% Q0 M3 X$ S
DJNZ R2,PP 3 t* G. b! U9 ?) s
* s) Z, G/ q4 d% D, R# F& R3 q
MOV A,1AH 2 Q5 B) P' R1 W. |* ^0 v* F
XRL A,#11101110B% d1 r/ j9 F" F# p
JNZ EXIT
( z9 l) O' M& n. F/ ` MOV A,1BH 4 L7 \7 ?7 y3 O
XRL A,#10000111B0 m6 x5 I, @5 E3 D* ~/ L: t
JNZ EXIT % P. B4 T* I+ p0 c, A7 w
LCALL YS3
# G! F% m4 z: ]4 w. S6 g6 M MOV A,1DH
1 a: V1 `( d0 l" p CJNE A,#10111100B,EXIT) _0 a* K) }8 U% V
LCALL YS3$ u4 G! a( O1 m, v' N0 X
CLR P2.6 " Q; P! G& b, G- X6 U9 g
AJMP BIJIAO/ W- X/ M5 g+ U
0 U9 z- ?: ]% n* HAA:
. i2 J1 N9 Y' s, E5 b MOV R1,#25
; L/ C4 s% k. N! hXX:
0 I1 l# Q! [7 Q) n- B ACALL YS2
# ^4 S0 U0 K0 c! S: R7 C% E$ k JNB P3.7,HH . m- b) }& R f' a" t W+ j& d5 I
DJNZ R1,XX
) l& a( G% x' D* T# }EXIT:
) S. N% F4 s9 |0 I( X6 Y1 D, N AJMP START
" F2 I3 ?" y+ s# [" n 1 n4 n6 v5 M6 k7 M- o1 m: F1 ]
HH:
% H1 A$ b$ \7 x1 Y+ _ MOV R6,#4- S& e6 Y/ v" u* ]/ d
S:
+ a3 F: h* s8 `! j# H5 I ACALL YS1
# [4 k" a$ k/ x2 U JB P3.7,EXIT 3 Q) p g& Q7 t/ W, s2 B# j
DJNZ R6, S
1 Y! U" w# k$ l' y8 ? JNB P3.7, $
# J8 N; T8 F4 B/ ~- L" t* i LCALL YS3- v B7 L/ z, p* ^' Q5 i
AJMP AA
) X+ O8 X( R- C/ o9 D+ J9 F) JBIJIAO:0 T( s- F0 d4 z! M
MOV A,1CH + M( a0 [7 ?% u. O% b5 w8 e: Q
CJNE A,#03H,N1 0 U h4 V" v- J0 }" f
MOV P0,#7EH
+ a3 f' X- G7 P" D
: z! L3 b- x5 D j* c6 S% v ;处理STUDERV录音机控制码
9 u$ g/ ?( L6 ~3 T' C2 pN1: ' \3 n' X8 i; K. L% C9 g" c
CJNE A,#5FH,N2 ;播放键* R% @! w0 o. C* x3 c6 y) u
MOV DPTR,#REP- l9 B5 I( x4 u
ACALL SENDA
; L$ n- Y! M5 o: a% Y* R; e ACALL YS4
: ^6 W* U- j7 n$ e+ H MOV DPTR,#PLY
1 Y9 n( k' _$ Q3 }# I0 ~* _ ACALL SENDA
% B' I$ M$ {/ J8 B0 ?N2:
2 V. ]6 K( @4 ^4 l CJNE A,#5CH,N3 ;停止键: C4 m1 t( z% c# k& N& P6 e' |
MOV DPTR,#STP7 @8 G8 F9 s. {# c: o
ACALL SENDA
! W/ a0 p" a" g5 Z8 A; D9 a5 XN3:
' J3 Z/ c/ k p7 b CJNE A,#06H,N4 ;快进键
; X1 N% E" y: R0 \3 t MOV DPTR,#FWD) b2 ?7 `" _7 N2 I {% U8 E/ t8 p; S
ACALL SENDA
2 d7 ?1 `% n- _& L! ON4:" ]. |* l7 n' P! G. n! [
CJNE A,#09H,N5 ;快倒键- V3 _+ K \ i9 H5 _
MOV DPTR,#RWD
% O+ J. V5 R5 D' | N ACALL SENDA
4 f- g% Y! J3 S0 i* S; gN5:
; |! i& s/ z$ h+ h CJNE A,#0AH,N6 ;置零键8 C0 i: N8 X/ _; ~( v
MOV DPTR,#RTM8 I3 ?: j" `( W, E% n- [
ACALL SENDA
# {2 o, }8 M3 U, K5 WN6:
6 M; b) R H- E" ~ CJNE A,#0CH,N7 ;定位到零键
0 C# z6 ^+ |2 k' V MOV DPTR,#LZA
2 p' P, {3 b& {7 z: D' |8 j ACALL SENDA2 Z; [" A8 x5 ]- M3 E
N7:/ t* g Y! e' @0 ^7 |' C6 m
AJMP AA! f; y1 K. K( x) C1 H$ o& o8 I
SENDA:
' x# R- [6 H" G+ N5 H m. ? CLR A
( o+ q" N/ ], k! X4 f MOVC A,@A+DPTR/ R( y+ {: B" V' D+ U) m1 _4 Q$ t
CJNE A,#'$',SENDB5 d5 |' w# c4 _7 `
AJMP SENDC) q6 ]/ D3 Z% ]. H, v% r6 j+ D% ?% p
SENDB:
& ]1 T0 P; k$ k5 ~6 y$ P, U1 C4 T A MOV SBUF,A" O" t9 i$ ?6 T. t* u8 {
JNB TI,$
& w' l4 I% K' T, P# e: V" e CLR TI& q+ ]7 m) S" y2 {
INC DPTR8 ?8 F6 k$ o) r. m9 l8 m* `
AJMP SENDA
( ^/ B0 f |% xSENDC:! `9 ~% U% z0 @: l x
RET, n1 K, [0 [4 C+ v$ T
/ W- w. a$ j" [9 `PLY: db "PLY ",0dh,0ah,'$'
$ d3 @* ^- Y" L! {$ FSTP: db "STP ",0dh,0ah,'$'- I! u. w% n9 J; [
FWD: db "FWD ",0dh,0ah,'$'
( @- u9 B3 r- |" ORWD: db "RWD ",0dh,0ah,'$'& W0 Z: o, n# \# z. h
RTM: db "RTM ",0dh,0ah,'$'
& f" {) o) j, j9 s0 F+ v1 M+ ILZA: db "LZA ",0dh,0ah,'$': k0 a/ P1 v9 e5 W" N {
REP: db "REP F ",0dh,0ah,'$'
) p9 }, H3 `" [/ m) g; I, j
" j3 v0 J! z8 ` t J/ ]YS1:
7 f- s) y1 N" U6 G6 R$ ]8 ?( n+ L MOV R4,#20, ^! ]: R g1 U4 |. J4 d, c N
D1:
* p) L; d; ?, C$ R2 x @ MOV R5,#20
" N9 R2 e9 v) ?4 P: c; d- J( G( l DJNZ R5,$
4 S. p& o, w/ r' } DJNZ R4,D1 @! Z9 |) D8 j
RET
7 ^6 G! `2 q, k& C7 a) ?/ R5 r% ?6 B, ^2 e4 `4 @
YS2:* g' T5 F& x( Z
MOV R4,#10
1 F& i6 i6 ~1 x" p: B" B, B3 e. V5 oD2:
& ]4 P( c' ?; A! b2 Q9 ~0 T G* c MOV R5,#235
M' H& _% W6 Y2 A& v) i7 N5 Y4 A DJNZ R5,$
$ C& f/ @ C* t! z A DJNZ R4,D2) V7 i4 H, A6 U% c
RET
9 R3 b; \# ~/ t8 D" W2 _5 z# x$ q' J& P- R; t3 `
YS3:
1 R$ I$ o% x, F MOV R4,#2
7 o7 ?; d6 u* }6 a0 a* j ND3:' L( {1 U6 K5 R5 i8 H9 y& O
MOV R5,#248
. L p) H0 V8 [. {8 {& }' a$ @ DJNZ R5,$
. W- O: \3 t# n% e* Y) k DJNZ R4,D3
* T& ?% I1 g: `4 i- k; ` RET$ F( W, A6 [. B/ p) D/ }" b
2 s* F* @: k5 }3 [! Y) a' z! @2 T# @
YS4:# B8 n: y8 O2 @ X0 ?% K
MOV R4,#200$ ?/ Z K+ U, }. L# y7 ?1 P1 m4 t8 O
D4:! Q+ T% Y. C- Z! d
MOV R5,#248) E* M3 @+ `& ~
DJNZ R5,$* a" ~: f1 B: z5 M+ A/ f0 U/ ?# w) B" M* ?
DJNZ R4,D39 }( F6 u) {, w: m0 |% y# P3 G: t
RET8 h% S( }$ m0 y1 x% [" O- S" i4 d
END; j& F3 b0 ~2 x Z- K
' e+ u' u9 @3 Y/ {7 S9 R. w% E有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。
1 Q- P) w% d. o" `+ a是不是很惬意,嗯!
) w7 x+ N1 x1 d6 \ |