赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
/ p; l6 f" o' ~: a, w5 p0 v; A$ A/ w
本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。/ \6 P5 |6 `% A+ e
* r- a% U1 @: _8 Y6 u说明:8 ~2 p' O( n' h* u$ N4 x
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
/ p7 T7 i" D4 E2 x6 Q4 k2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
, b( Z$ {+ }! S' T
( R$ r, `! ~7 _, d+ f0 {一、基本思路
4 K) C! c- }( v: v使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。5 S5 E# z& P2 p/ o! h
( |' y! U; _: q# v二、红外遥控器
2 o) a- V! Y7 t/ y5 k9 h我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。5 p2 r' J, m9 X
2 E e, m7 w9 C- i好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
; t! I8 C9 t& X
- p# k. A4 o- K: ?' ~# v
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:' O" g8 T% V. I5 b
: ^ D/ d n4 D4 N+ ]
; ?0 d' g4 B" ?1 h6 Q1 \三、红外编码. P7 k/ D d3 |
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
" L; @; p/ P6 o/ {/ H3 ?前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。
6 v4 _4 ]" \; p# `后16位为控制码,主要用于实施具体的控制。
( T5 J6 E( ]) p- k( W5 Z! `( k这16位中高8位和低8位互为反码,以提高可靠度。
* r% K! @% `( @9 N) I
# }! ]* X2 L9 l, ]3 X8 T6 x以播放为例,其编码如下:5 X, G7 ^9 [2 q4 A4 b2 b' s
00000000 00000000 01011100 00000000
- d( V$ E- k( s! {, O: \7 x! h0 V! V& ]# w
你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。
+ c' Y* Y1 x* q- b7 d" V# @4 b1 K0 X, L+ g6 O, u7 ^
四、单片机系统
; y6 S" `4 k& _+ X4 l这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。
, \4 O* t E5 |" G; }) S: u
% Q1 a: v- h1 ~ * U# q1 y. g ?* J; c
电路很简单,功能如下:
7 o- Z" x2 s% l, d' x3 h1、一个AT89S52单片机作为核心;4 Z! ]9 V; f; K D% Q8 A( H$ H
2、一个TL1838为红外接收头直接串行输出数据信号;
X. g* D/ W; |( z& h/ c7 W3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;, {$ {, w# j- b2 v2 N. w1 e
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。6 f' X) { Y8 n
( l% D' m- N4 S* G- o' X+ L关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。8 I. h2 |, n: @% `2 q+ i
, l" j$ {* `7 ^& m
0 M; I& z6 O5 N$ K: Q: r五、控制软件' [4 \; t Q$ [9 t/ {5 r4 @
控制软件用汇编语言写,源程序如下:' U* E# p% i/ v+ d' @
ORG 00H
2 a( b1 }- r" V% X3 r8 t LJMP MAIN
- i+ y$ M" t4 q/ c0 ^ ORG 30H
4 e$ |5 C' I& g+ G4 lMAIN:1 v% [7 K4 [7 R. r7 l/ ~
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)& u) e4 P. b! P0 d7 Y$ \ P8 F
MOV TMOD,#22H ;22H/ g8 R1 }( q* o$ M
MOV SCON,#40H ;40H9 B7 v5 Z1 |$ i+ |4 P
MOV TH1,#0FAH ;F3H2 c2 x& D7 {3 _* O- k" `0 \ |
MOV PCON,#80H' r+ o0 m+ D7 {+ k$ F) X" i
SETB TR19 Q/ @& Q8 U. y* J- n
START:- j* P% G3 U% @6 _
JB P3.7,$ ;遥控信号处理
. j/ S" Q, b# y" _* ESB:
3 _2 L4 b( p' C* k3 c8 A8 J MOV R4,#8
( Z+ K: n1 d: R( a: VSBA:0 }9 O: u; a r! i* U
MOV R5,#250) V# e M, a/ Q3 ~$ V @
SBB:3 U6 j$ Z6 B3 R- G
JB P3.7,SXB1
# R- v, A/ A% f. S" A DJNZ R5,SBB. ^( W$ l. Z3 {( `5 b% G
DJNZ R4,SBA
+ Q$ j) F' ~; {$ B$ Y/ n MOV R4,#2
5 r7 k. Z! e4 M4 S% r1 Y JMP SBC
$ }) U( _5 J1 L& \5 Y* C8 p5 aSXB1:* K) U4 K2 v! F0 W
MOV R5,#51 V, \9 B( E+ p3 S1 g: M, u9 k
SXB2:
3 }% k( u/ f" Z, q, d, s7 f' r0 |( B JNB P3.7,SBB
/ P& `; \: S6 q& F5 w DJNZ R5,SXB2
; q/ ?7 g5 r- U JMP START
& H: b c1 r$ q! ]9 n1 f; MSBC:5 m4 U- k+ ^5 Q! ^
MOV R5,#2507 ]5 J- q2 [7 u
SB1:5 ?1 `3 j H K" V
JB P3.7,SB2 / I" F9 `6 [. n- C8 `& ]
DJNZ R5,SB1
" u) O' H3 Z5 ^; D8 b( i DJNZ R4,SBC
8 P+ d1 G. I7 e M# ]( Z5 w JMP START1 j0 X4 H5 n E, E N. `
SB2:
$ G8 S b' C5 w& p1 T% v% _+ } MOV R5,#5" j/ Y( x1 L9 Z& Y; Z
SB2_A:# M6 ?: `4 i1 T- ]7 v5 M; r
JNB P3.7,SB1
/ K- V& O1 S. b" e) C2 a8 W, s DJNZ R5,SB2_A
" M( N% ~6 m, M0 J* D MOV R4,#3
6 b* I* P' S" j Q! a* |; VSB2_1:6 E4 |# E. R) e) w; |
MOV R5,#2506 h" N% P' \3 t, u
SB3: / x* l4 k7 B. V7 }* {* k
JNB P3.7,SXC; l' A; Q/ A" O' A d4 C9 p
DJNZ R5,SB3! j3 u% O. E. J7 V8 u9 ^
DJNZ R4,SB2_1# M: v$ F$ M" P* D* {+ E- O" u
MOV R4,#23 c% }; Y# q) y, b4 B8 T Z
JMP SB3_1% L+ v* b; m( X" B
SXC: 7 j. N! ]* P& J P
MOV R5,#5
- ~; l% f3 @4 \, K4 U5 k+ ISXC1:6 R1 S6 J: c& d: Z" t
JB P3.7,SB3 q+ ^3 y& [2 ?! \& A. z& [
DJNZ R5,SXC1
" ~+ m+ ?6 |/ |; t& t+ Z JMP START
: H) S- U6 O& a- ZSB3_1:
. l$ V5 ]$ |) K- a MOV R5,#250
- \ M, ^2 [- P) m ?! f; o/ gSB3_2:5 r% d# U L4 _4 z& H2 k% t
JNB P3.7,SB42 f, p% Y' `& u& i) m
DJNZ R5,SB3_2
3 a1 a3 O1 \( k; S: M DJNZ R4,SB3_1$ L# t9 A$ V. d
JMP START3 E9 J* m# D" N$ R7 B! K C# E
SB4: 7 p1 \( j; G5 r
MOV R5,#5. ?$ |4 N4 B+ y ~1 c- O9 u
SB4_1:
3 _7 k8 ~( @ Q# L9 y; t JB P3.7,SB3_2* y$ R0 }0 n1 L0 R k, ~
DJNZ R5,SB4_1
9 \% t: t! |1 U2 k6 J) ] MOV R1,#1AH
5 L. T+ D% a5 o% d MOV R2,#4
+ M) W% o' v+ u& I! UPP: MOV R3,#8
M$ @" b" J0 l" n5 Z1 Y- g XJJJJ:- L" T& ]; s6 o4 X0 r
MOV R5,#250
v0 t$ }% V* E9 F/ L* `/ o; rJJJJ2: : c& e# a3 d% B
JB P3.7,JJJJ3
8 _9 Q+ O, z' A# f9 B) r DJNZ R5,JJJJ2/ d3 j0 A( d6 A) u) E* U Z ^
JMP START! D) F* S6 F, d' H6 V: `5 u: w7 a8 A
JJJJ3:. T* `( p, [, r2 o. \( I2 N0 a r
LCALL YS1 0 p6 ?. y: [5 P( \6 g
MOV C,P3.7
0 s3 W7 P; w2 I' I JNC UUU 8 w9 N# V( X1 q& Z/ i! f0 I8 c
MOV R5,#250, ` u5 c5 Y' f5 e# ^0 y
JJJJ4:
9 E# q) ]" b) t& I# O2 y6 v' L6 ^9 u JNB P3.7,UUU# O v2 K' y" H/ w$ k. f- m
NOP: U" j: j' O7 [" \* x+ y
DJNZ R5,JJJJ4
9 f) u4 _$ ~7 m+ e, B0 a8 R- q JMP START
3 i4 |; E9 ]0 u& l/ e* sUUU: MOV A,@R1
" r: [+ ~/ C! L. w RRC A
; c. p! A7 P4 m6 u( J0 I MOV @R1,A
! h2 s1 e% @8 Q/ m( R" c. { DJNZ R3,JJJJ
: ]( [0 y3 K5 g0 R' y$ T, f INC R1
& u+ O) Q ~+ U- I: M DJNZ R2,PP
7 |1 U+ @. v5 x
2 J( N0 f6 }5 j# R9 F" f MOV A,1AH
3 [7 d7 b/ m0 w9 G& E t0 T* \3 ~; o XRL A,#11101110B2 m5 @$ c# I3 ?9 J& L ~! |( y
JNZ EXIT ( k( i0 l, E7 P* r7 m
MOV A,1BH [) h/ [/ N0 G* Z+ R% J1 N8 Q3 v/ R
XRL A,#10000111B, B+ l- z" E8 l
JNZ EXIT 3 y% @" R6 Y3 b& A( y" o8 d5 j
LCALL YS35 k, R1 F% s2 N/ z
MOV A,1DH
4 F& ]0 O( g' Y; e, T CJNE A,#10111100B,EXIT
: I0 p A% b$ k t# A! v4 f' g LCALL YS39 f. r' e! F. {5 x
CLR P2.6
- n, e9 o# g3 @9 {' y+ ` AJMP BIJIAO1 k0 U4 [9 P9 X$ ]
1 X% z$ r; k" C) ^
AA:
1 U( T a1 r' F% o MOV R1,#25
8 q+ y# O) o. p) j2 x' P& iXX: ' p' `, \: t, \0 V8 Q8 d
ACALL YS2
2 ~2 c1 \% M, y0 n JNB P3.7,HH
" Y" e+ ~6 H: R( H$ R, D DJNZ R1,XX
& ?. u% \1 M! |1 d* G7 A gEXIT:
4 n3 G/ N; Z8 U8 l AJMP START
0 u5 G$ g. @! H0 ^- N9 W
% b6 a# {0 d6 @: f1 I3 c$ M8 [HH:
/ E) C( P; [8 o: R7 l/ Z MOV R6,#4- U( _/ u" m( e
S: - h, p3 s8 O* n* W
ACALL YS1 " e g: v# |/ k+ R& Q2 M
JB P3.7,EXIT
- Y ^) ?' i. u* ]& e2 L; z8 E# s DJNZ R6, S . G6 K9 t- C$ L
JNB P3.7, $ : l% c0 Y* ~! @
LCALL YS3
4 d' u N6 N8 K. E6 l AJMP AA: @4 D0 F L: ^ k" V0 B
BIJIAO:2 j' E2 K6 J; K
MOV A,1CH . J9 J1 s! v/ O# i# {6 {
CJNE A,#03H,N1 E2 f" _0 q& \" g5 I
MOV P0,#7EH
/ ~, |% y2 m% k8 i7 O
3 w) F( s3 C, s) e. q' H ;处理STUDERV录音机控制码1 o/ i3 @$ c" \3 X. M0 X$ N" G
N1: 1 z; d' s* x5 C/ M9 e6 s* j
CJNE A,#5FH,N2 ;播放键8 Q6 R* G% O% f. ]! O f/ L( [: N: t4 K
MOV DPTR,#REP
' K# G0 I, P5 B$ M' \* d ACALL SENDA- L3 _ k, d- V% [
ACALL YS4. @- P' q# `4 F5 t7 R
MOV DPTR,#PLY/ ^ h; ?# |: V2 p: O
ACALL SENDA1 g3 @1 i$ D6 Z
N2:
! C& j9 M ` Y c CJNE A,#5CH,N3 ;停止键
. E& @# B: Q' O8 A% K0 ? MOV DPTR,#STP2 h6 g; s. c0 b* o& X& O. v
ACALL SENDA
% E5 b. `6 U5 i0 `0 s+ zN3:
+ p5 s6 C( s1 s" B+ R7 g9 P CJNE A,#06H,N4 ;快进键
: [2 M2 J0 a2 q MOV DPTR,#FWD
4 `" [& q2 Q) l# Z3 r6 p. c9 D ACALL SENDA( X8 c- L4 F7 ], k! S* {& b
N4:9 b. ^0 B: `6 E- F8 k8 F' M$ ^
CJNE A,#09H,N5 ;快倒键
+ R" [! z2 i2 p MOV DPTR,#RWD: f! o' t/ d1 N3 f. g+ _8 k
ACALL SENDA# k# b+ ^& _& ?7 w/ V0 j
N5:
; g g# h1 b! h% j6 Z8 ~ CJNE A,#0AH,N6 ;置零键. q+ d, @) D/ r- m
MOV DPTR,#RTM4 W. ~0 W: T% `" i, A- S, m
ACALL SENDA8 g6 g1 I+ g1 i9 l5 h& F9 i% c2 k
N6:
* O% m- d; a) d0 m {" c0 } CJNE A,#0CH,N7 ;定位到零键7 ~' |2 ~; Q/ ]/ U2 u+ o3 O
MOV DPTR,#LZA
1 ~/ L7 o0 D; e ACALL SENDA& Y3 _$ X ~* L* t6 n# h1 R
N7:
0 M, o. E/ x; Z* N AJMP AA
3 R" M5 |2 [( \" tSENDA:1 H" o7 w8 T( W) D4 y- t e
CLR A
* Z4 I E4 g' J+ u! M% u% C MOVC A,@A+DPTR# S; J, Z- ]9 i4 x% P
CJNE A,#'$',SENDB
8 [6 V/ A5 n/ J* F4 D AJMP SENDC
3 ^! g- J0 k1 x; h xSENDB:
7 Z; p7 u- |1 A2 N4 ?7 x MOV SBUF,A P) X: v( z9 t
JNB TI,$ B; ?8 R; N5 z
CLR TI3 r7 e; L" F8 ^5 p3 O
INC DPTR$ G* e5 g( o! Q$ J2 A w% U, d
AJMP SENDA+ [2 j2 Z1 ` E8 }, r
SENDC:3 P7 y* `2 p+ l
RET# l5 ]9 P" L8 ~. P, y9 P+ z
5 K% M5 [; P/ TPLY: db "PLY ",0dh,0ah,'$'
, E! }: `+ |& j4 k" P) ^( P H7 G" bSTP: db "STP ",0dh,0ah,'$'
1 f& l- \. W0 t0 T$ ~. c9 L7 AFWD: db "FWD ",0dh,0ah,'$'5 q* F9 f1 y) P; W1 c
RWD: db "RWD ",0dh,0ah,'$'* v3 ~: B2 c/ B
RTM: db "RTM ",0dh,0ah,'$'
! n5 a. w: i% Z( DLZA: db "LZA ",0dh,0ah,'$'0 f" Q' y9 |3 ]( o6 v: ]
REP: db "REP F ",0dh,0ah,'$'
' A5 X1 N2 M% W* F4 m5 {! r" o2 g6 b/ t4 Q% N. T9 o. b0 I
YS1:0 t' \" ?! e$ q! B! p
MOV R4,#20
- _1 ?. Y4 z0 m4 DD1:5 B) K! }6 ]$ r) X1 @ T
MOV R5,#20& u( j8 _( N, F/ a
DJNZ R5,$: S, {4 F) p% m: S; R) Y
DJNZ R4,D1 Y6 \4 I: C v
RET( k3 @, R+ h+ t5 t
" x4 v9 ^8 x+ [" N
YS2:. y8 z6 D: h$ \/ q/ z/ p
MOV R4,#104 h" R: p1 q6 L6 Z" K
D2:
9 {: T9 @; s! b( s4 ^+ q& g MOV R5,#235/ X' J0 e1 f, V2 O2 v; C9 X
DJNZ R5,$
6 P5 T- y, M3 L0 p DJNZ R4,D2
3 S8 \7 y. ~& @ RET
3 N" o) a5 M T" l2 d4 X, V+ S- ^* ?0 K7 H3 I
YS3:
* }, r( m. k. X1 C% K MOV R4,#2
' ^1 p' E* g* \$ _. v @- `D3:$ C) i0 j, Q! ?. p: Z4 p
MOV R5,#248: T* M6 f0 ?' i1 ]+ {
DJNZ R5,$9 ^8 U- _& h$ y: `+ c; q; Y
DJNZ R4,D3
8 P, C& E$ s9 B& W4 g1 f+ d RET% _, E+ d3 U6 m
1 k. @0 q; k2 @' w$ j2 L( AYS4:
' a$ b6 X+ c9 h& |6 W6 c% F4 k MOV R4,#200# \! E) s$ w% I% }/ _
D4:
& P9 F8 r2 e2 }6 e$ _; A MOV R5,#248
# M! l- X1 r( P9 [ DJNZ R5,$- N+ l4 x; `( C; B m! `8 d; b
DJNZ R4,D3
& Q, `8 r5 k: C2 m0 _: h, x RET. X8 p; U" y) R5 O" y
END
+ a- q" r( s& ]' ^5 G
~/ ~( X9 T/ R5 I( z4 B B+ Y8 }有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。
( ]1 `/ P/ l& m# D* o# F是不是很惬意,嗯!5 }- a q5 K) h4 {$ w) a
|