赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
! f& @0 k0 b' q' `1 V }$ f/ @0 s' u" U: B
本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。
/ |: A4 y# g0 h! |1 q% F8 n8 l. k J* U5 z% t$ a; B
说明:1 E0 v: X1 @1 Z
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;- ]* Y; R) F' r# B2 |
2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
! t/ S( O i6 K1 _5 d/ N% V& j' A2 B9 U- O/ l+ v0 A* ^) d- B$ L
一、基本思路
. [4 z8 L+ q( }6 q _ X0 [/ s使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
) Z2 }+ P. Y) [+ a% W1 x/ M2 [" U1 W
二、红外遥控器1 @$ }. ?" B; n% ^( _1 ?
我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
2 L6 @% j- X" B$ `. x. ^+ b
/ U' A, a6 c: e, L' X' E- d
好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
( M9 J+ ~* o( p/ s; n
+ U/ l' H& @# y& h# M在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:8 Z+ ~. C5 Q4 r; ], k; M
4 U% F {8 J0 W$ ~ P7 P: a. C; ~4 {+ U+ i
三、红外编码' ^8 p$ J2 r' k1 c( `; s
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。. _8 f/ r" e7 W$ ^* d. A3 E
前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。1 a7 h Q$ d$ C8 T; U
后16位为控制码,主要用于实施具体的控制。: F7 t1 o& c7 N2 x% T
这16位中高8位和低8位互为反码,以提高可靠度。$ h+ ~ j9 V* f- V' Z7 x
5 v% U# ]8 X" _/ g以播放为例,其编码如下:
) k$ ~# g- Y& p4 E00000000 00000000 01011100 000000000 |# q2 `" p9 X( J* d
( j w" J2 Q' }5 w5 l7 O你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。; T' X1 V0 V5 m1 _- r
* ~& H* F o7 i9 K+ Q
四、单片机系统
; `( x1 p8 y3 \( j: V' V5 N这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。/ n8 E; ^- o4 N
# z% ~1 a5 ]$ t. h
8 D6 K4 s% r [. } f# G电路很简单,功能如下:- y, v8 n0 t8 T& h
1、一个AT89S52单片机作为核心;+ b, l4 A% E N5 J! y2 `
2、一个TL1838为红外接收头直接串行输出数据信号;3 k- h7 ]/ S- T" b
3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;
/ ^. c: s6 B3 w4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。
6 y& o/ ?7 c5 E h. k 9 H: Q3 i8 D% L* Z
关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。: o7 I' X+ f* _1 Z
3 Z) p' ^9 @' Z
- p# p) O: c" {7 h( r S五、控制软件
* q" y# }4 e4 C Y+ L) }控制软件用汇编语言写,源程序如下:2 { g- E0 e$ V8 u+ v
ORG 00H+ a3 j% L1 M4 i
LJMP MAIN
- y' w' m7 ~8 t1 k; Q ORG 30H, |3 G4 _ ]. Z4 e; O% N
MAIN:
2 q L) i- C9 z: b C3 O; g! d' D MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
' O: R: o4 o% \( l/ ]0 g8 S MOV TMOD,#22H ;22H1 D# j8 u3 I% T2 g
MOV SCON,#40H ;40H' Z+ p) M& |& h! s, a3 H; M
MOV TH1,#0FAH ;F3H
: F& @5 l6 F! s MOV PCON,#80H0 w+ |. I3 L) w4 F/ w: `- P
SETB TR12 c% ^; {& O; {* v' l; E
START:1 k: ~+ p* O# N8 N: U: A3 Z
JB P3.7,$ ;遥控信号处理5 O" f; m9 Q$ W5 O+ D/ s
SB:
/ K _% B/ K- }* W1 E) z8 E, ~ MOV R4,#8 $ i I& G9 P2 u u
SBA:
: I: G4 F% `0 K MOV R5,#2509 A, g8 y* L1 ?
SBB:
$ I6 S5 M0 N; D0 H0 u0 H9 g2 @ JB P3.7,SXB1
0 m0 F3 J& j9 Y0 I1 }* [; d DJNZ R5,SBB. d, ~2 Y% B; x( k
DJNZ R4,SBA! H. V+ \' N- d2 z+ w; m" [
MOV R4,#2# M# [6 b5 Z9 }3 A5 ~0 r1 f+ K
JMP SBC* q9 c* M1 @- H" g* z5 o
SXB1:( O5 d0 w. K, m4 D8 a6 w
MOV R5,#5
* y* U: s; v+ I: u* a' f/ `5 Y8 S' v3 ISXB2: 0 a& ?. _4 u$ V. b/ T3 i
JNB P3.7,SBB) |: a' x* k8 S, \( \, g
DJNZ R5,SXB2, |2 f7 H% [0 W+ l @+ P
JMP START& ^! H2 r$ d/ {2 [ U
SBC:
' D* v9 l' b% W" P+ u; P MOV R5,#2500 E1 ? B( J m* y5 A$ D' e" m
SB1:% Z3 _1 F/ S6 `! L6 n- p, Q
JB P3.7,SB2
9 P! R1 M5 L: }- j v DJNZ R5,SB1
G. `3 C; a9 {* u, @ a6 C DJNZ R4,SBC
. a4 H, v1 ~2 \4 y% a* D. N5 E, D. n- { JMP START9 H' n! w$ |9 d8 m
SB2:
$ x' W6 M6 G! R* n2 k6 v" P4 V MOV R5,#58 i0 J% E. s% o3 f: a
SB2_A:
, y4 F8 S9 v- ? ~8 R- i. Z L3 | JNB P3.7,SB1
; F1 Y' ~- @* w* ?* L DJNZ R5,SB2_A* h6 L& @4 b$ t% j0 v
MOV R4,#3
/ O9 g. ~1 P! | w3 @/ uSB2_1:! d# p+ l9 I! y: o0 g! H z# I' C
MOV R5,#2503 q( k2 p, t, r- X; h+ w, j
SB3:
7 h( `& d$ R+ L; E1 F, S4 b5 u JNB P3.7,SXC
% l% @2 B1 }. a6 o; A4 _0 d DJNZ R5,SB3
9 I8 f7 b( ?/ y DJNZ R4,SB2_1
; \* H6 t. t" r9 L; n/ U MOV R4,#2& _1 F" M7 L) r, v3 }
JMP SB3_1
& O/ [/ B8 z, A/ ]% y- V9 gSXC: * {' a% F' E& D' k6 i' [: O# R
MOV R5,#5! X8 o( I1 O8 P: G& u F9 P. K
SXC1:
) A( a$ ]3 T" s, H# _" g! h0 I$ I JB P3.7,SB37 K8 ]; ^4 R- `- k
DJNZ R5,SXC1
- G, k) \8 z; l+ q1 G0 ?1 m JMP START
2 a3 `. h, g5 {2 s- OSB3_1: 4 }+ y" D0 d) o+ p: x
MOV R5,#250
& G) k3 B# C0 O1 x! |6 DSB3_2:1 x, D! ^0 r9 ]! a
JNB P3.7,SB4
9 O2 |* w6 H' g. P/ t! m DJNZ R5,SB3_22 N( U2 U3 B ^$ ^
DJNZ R4,SB3_1! o) @7 K! M% b4 j$ E: i3 t& J" M
JMP START
/ S/ t7 T2 N# t# ~/ l) i- W/ @SB4:
: c/ R8 I! T9 L MOV R5,#59 P6 g# p d7 \' @% C
SB4_1:
1 R& x3 a& i6 X JB P3.7,SB3_28 f# R. |9 M! ~
DJNZ R5,SB4_1
; [1 ~( k9 x) u! W3 B& f+ I MOV R1,#1AH ~" B, I: B9 V' f) _, h0 ~
MOV R2,#4
& [+ e8 n9 f/ \; A7 f) i! yPP: MOV R3,#8
, I. @, H5 z' Z/ PJJJJ:& k5 h* a7 q8 K
MOV R5,#250
; V# A! |. d6 h& {5 I! e. vJJJJ2: . t+ G5 g- t+ X
JB P3.7,JJJJ34 A& K0 Q1 h" D; e( Y, |! @
DJNZ R5,JJJJ2
+ n( O% q4 g3 U5 ^5 D! ^& g/ ? JMP START( X6 l+ q+ T/ N6 A. Z4 O
JJJJ3:. i/ R, p/ {! A. h% M
LCALL YS1 6 H) \& B. E3 r- o1 f, ^
MOV C,P3.7 , x @( N) g# e% y/ p0 i
JNC UUU
. h( ^/ @) q; q+ Y MOV R5,#250
- k) P' O7 V) J) t5 nJJJJ4:3 h/ u5 F$ w- T0 i7 G; C
JNB P3.7,UUU
! L7 U+ |7 D) m& x NOP4 ~: A8 u3 n& |* E% Y0 e/ W2 E
DJNZ R5,JJJJ44 w1 C: T2 D" a1 a" r. L
JMP START
' _; w0 s+ j5 sUUU: MOV A,@R1 3 K2 @1 l. @( p. B
RRC A
% g) Q# | _" C' O MOV @R1,A
9 a, a; q4 C: n6 J DJNZ R3,JJJJ
8 h! f# Q/ F$ S, q, Y INC R1
2 \& j: k: g+ \- t i# ~ DJNZ R2,PP
: X# s5 w* B# A/ A" K4 `, y7 J: N o# ?1 J0 X% b1 O6 [1 E
MOV A,1AH & S7 Q1 V3 X$ v* ~4 M. W# ~
XRL A,#11101110B
" T5 j* m/ L4 o& b! R1 c& m JNZ EXIT # D3 L) W; g; Z" o/ C
MOV A,1BH 7 r8 _* i) H7 G$ @, v) h$ \- B' h
XRL A,#10000111B+ [7 M, s' Z9 x7 ?. d5 ~
JNZ EXIT
1 X' `& R$ \% X+ b LCALL YS3) W" ^1 W. h9 L3 i! U
MOV A,1DH ( J. m) o* y: U9 i: v! C3 T
CJNE A,#10111100B,EXIT
9 Y' l. v+ f9 L LCALL YS3+ A- d' l, e1 {5 Y1 o
CLR P2.6
0 B% X3 \- ~; t7 g( M: I AJMP BIJIAO9 s) F' L% o5 Q* P/ j
; W* I: c9 N0 d FAA: # b$ R# h8 j% e9 A" A
MOV R1,#25% O+ ~2 c9 X. p% o
XX: ) E b6 i- ^( P' S7 q* w
ACALL YS2
. q f8 A9 ~7 t; | JNB P3.7,HH
! R0 _7 U" o) f8 G' I" u8 d. } DJNZ R1,XX; H- O+ Y$ {8 e& N
EXIT: 2 e' I! R2 g1 G6 A
AJMP START! _! K& e" e( g' ~9 {
! k2 t5 D5 f: h2 Y) mHH:8 f2 l4 _4 F+ {% N
MOV R6,#4
! U) s `% B. I+ H- J$ ]+ o7 kS:
1 a0 L( n6 ^( U: z, y6 i* B ACALL YS1 " r: c4 [; X( q' D5 j9 o6 p
JB P3.7,EXIT
N7 Y: C# M8 q: q5 L DJNZ R6, S ; W" s* m5 Z5 j9 [
JNB P3.7, $ ; [) K6 L/ _% N5 U& S A
LCALL YS3
. ]. k9 }& Z) E/ L AJMP AA+ d3 q9 K, j) R2 I
BIJIAO:+ o3 p6 K) f9 d! c
MOV A,1CH 3 U( m4 U6 w; [9 W" z
CJNE A,#03H,N1
/ M a) u' R# N MOV P0,#7EH
! k" K9 b& o q! G1 C' p2 u
# y6 r9 w1 x7 c" ~ ;处理STUDERV录音机控制码
* g0 K4 o* c' uN1:
( a' N O" b# Y5 k8 Q CJNE A,#5FH,N2 ;播放键
: J; C! v3 y/ E' k MOV DPTR,#REP
0 i. q, b/ D1 S$ D0 x1 J. E ACALL SENDA# ?7 `. u6 ?0 G+ z7 _8 `5 |
ACALL YS4
$ d0 n# {& c. W1 ~: P$ ` MOV DPTR,#PLY" B7 J. ]% Q1 [
ACALL SENDA! U) v4 R, ?4 x
N2:
3 v# L2 z s- A3 M( e CJNE A,#5CH,N3 ;停止键
3 }, j8 \) i& X, X2 S. B+ g MOV DPTR,#STP( Y$ x' d# n" T& w. h: ~& n4 r
ACALL SENDA* C h. Q5 E$ G; s+ F
N3:
8 {+ R7 ^6 p* ? CJNE A,#06H,N4 ;快进键
% t, ?3 J. A( q) t# ?+ e* o: f. a MOV DPTR,#FWD
6 |5 p/ u4 i9 z' X# g3 f# E ACALL SENDA$ m2 U+ X7 m, T i
N4:
- ~- \. k8 b- u+ t( k/ w. e5 I5 Z; z CJNE A,#09H,N5 ;快倒键
, v) t O. u" Z0 `# n4 e7 y MOV DPTR,#RWD
0 y, b9 j+ h% P. V* K9 k ACALL SENDA" V& g2 _6 t% J$ }4 w/ T
N5:9 }7 A. |! k) R- j
CJNE A,#0AH,N6 ;置零键
! c) ]; D. E: I$ b3 Y MOV DPTR,#RTM
7 Y9 C( b) h# S0 t5 H ACALL SENDA' o8 G: M0 [4 a3 W' Q: E8 i" ?
N6:. y7 n# W$ j: g' n; B; [: ?
CJNE A,#0CH,N7 ;定位到零键
& |( Q% H7 B8 W. X* ] MOV DPTR,#LZA
' Y$ {7 Q. c5 l2 z1 k ACALL SENDA
4 |: O9 w6 D H( @: |( I/ EN7:& `# Z9 L6 x5 q2 @# P( h9 S
AJMP AA; Z7 W% J9 C! p6 U! ~
SENDA:
: r; A1 Z% d" s* J, A. f CLR A" i% f6 [1 H8 Y8 T
MOVC A,@A+DPTR
* l8 w- k6 m9 {* W% C8 }- S, I CJNE A,#'$',SENDB
% ^# V# x# a8 t T AJMP SENDC: g X' E- O8 h* l4 N, \4 t: H* ^
SENDB:: j x5 T! H1 L! A+ ^
MOV SBUF,A- i" p8 W' Z. s4 e: u. n% }8 m- K
JNB TI,$
6 M; ]5 a2 T* H5 q) N( ? CLR TI5 i6 _: {; I4 V" O Q
INC DPTR
- L: s! x! k7 ~' s9 \ AJMP SENDA, z% }% `' t. h2 w1 _- B
SENDC:1 N4 E5 |$ [, b# b9 ]
RET
# v9 J; e; D' `' U$ f! U6 {* L w I
" x1 ?& u/ P1 m: jPLY: db "PLY ",0dh,0ah,'$'
+ m/ z' u8 h3 r1 f8 ?3 D3 USTP: db "STP ",0dh,0ah,'$'
/ ~0 T0 C5 d+ c/ b0 v# v8 v( F$ WFWD: db "FWD ",0dh,0ah,'$'/ Z* H# a1 c& Z0 Z2 g
RWD: db "RWD ",0dh,0ah,'$'
' M: O+ N3 e5 Q6 H$ w2 QRTM: db "RTM ",0dh,0ah,'$'
7 b3 T+ Y4 z; Z- `LZA: db "LZA ",0dh,0ah,'$'
3 V% \7 [( h0 G: Q- O& vREP: db "REP F ",0dh,0ah,'$'
7 k* X. G: p7 Q& ]/ j" Y
/ B" Q: M. f Y) x3 X- PYS1:
0 j! _8 _6 p8 J MOV R4,#206 O# \ b, s% C0 `( n
D1:% `2 H o, m5 w' `4 I. M0 q# {% G7 [$ R
MOV R5,#20
% ?$ J0 t3 p1 r4 z, y, V; U DJNZ R5,$
5 T ^9 k5 \. w+ b0 m( C# u DJNZ R4,D1* @4 `9 R/ d5 W: ?7 h5 ^8 p2 U
RET
5 o6 k* \. n6 F& p- l6 D' C
% ?# S) U% s1 b0 V' BYS2:
?4 g4 {" k& Q* z) x MOV R4,#10# k! n% B8 r2 D' w4 ~
D2:& K& _% `! `" Y# g2 r
MOV R5,#235
6 w! k4 X; S% X5 ^* F) Y DJNZ R5,$
# K1 S- c- O+ { DJNZ R4,D25 V" m H( A, j* c3 s& T
RET
4 ?9 C! j5 e" k' t
+ F& W( a/ [" ~% S5 tYS3:
1 q! q% I! R5 h; ~9 C4 O/ W MOV R4,#2' W1 f8 t9 k( \2 Q# F2 L; g
D3:9 D( ?7 y% K. J' E
MOV R5,#248
6 J& O5 J: h( c DJNZ R5,$; _9 N* g; t- H
DJNZ R4,D3
+ a& {+ P- z( p6 g! N RET: k% r5 L+ L& }* a# ^( j# q
6 n% c7 y3 @5 _ x
YS4:
5 m3 \4 n1 S H9 c* M MOV R4,#2003 D3 _5 o% A& P @! P
D4:) b: @ {3 i: g
MOV R5,#248+ y6 Z7 K$ K+ H Q! E
DJNZ R5,$
! ]2 I: c- n8 s0 ]- x) D& U DJNZ R4,D3
- f0 Z$ Z& U2 n RET" S' N# r( ^# h& N' O
END9 d" g( h" }/ Y
. \) M2 N. G. |( O
有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。, G7 G/ V% \' [ X
是不是很惬意,嗯!, `4 k4 E* }* W: K' G+ N
|