赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑 ! d% u( ^& G$ T% D
$ _& s8 o3 B8 B本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。3 x3 B8 L' q* o+ l
! x! E+ u0 P6 h6 V
说明:- ]3 G) q& e# a& J6 H) c M# O) K
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
3 d2 O3 G9 E3 n8 Q( r! m, f% d2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;0 j3 d0 c( K' ?/ |9 a0 [
" @ q v- a2 E6 v) D/ f
一、基本思路! L& U$ |2 s4 E& y- ?
使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。/ x: @6 M" j8 [5 s5 i& x
1 J; j: _4 ^4 V) G二、红外遥控器+ u7 {4 n4 | q. a
我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
5 c) b2 w. e. X( Z4 n% X! k( S
% L- j9 j* N2 o) m$ g7 u
好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
X: U8 w5 @( j5 h# b. [
4 x3 U$ l" m, Y n% Q
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
# f/ ~& t; Y$ q' Z/ ^
- D5 U3 G: Z, d. O
1 n R4 Z; n+ U( i7 U& x t; _三、红外编码9 g: ~ m# [& \
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。0 b4 p/ L& ]' z4 O, F
前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。6 n/ [5 F7 l3 ]$ t- s7 \, e x
后16位为控制码,主要用于实施具体的控制。
c3 G1 a8 J% l6 _( H8 t& z# c这16位中高8位和低8位互为反码,以提高可靠度。
, x: {: L( F0 |: \
% n& d. e5 o( B3 f: M" y以播放为例,其编码如下:
: e) V& s& m, ~00000000 00000000 01011100 00000000
$ a5 A/ |3 K$ ^* r& o1 l
* f' G% v6 ?$ W/ z你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。
2 {; G/ w5 |" z* z0 ^2 B( w7 I; S
$ G* c# q# F% D' d9 j" I四、单片机系统' P) c1 ?- F9 {* i# N- i" c7 e
这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。
" \! b% u7 a4 A
3 `0 n0 r, V. f+ [: \3 j& p+ I( u
) t I4 b3 d8 @* K+ i电路很简单,功能如下:
7 _9 M, w& Z. u8 n% p1、一个AT89S52单片机作为核心;
6 V2 B1 E! o; Y7 n8 B/ y* x2、一个TL1838为红外接收头直接串行输出数据信号;
6 G$ c: s" O9 r3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;- ^5 B! G7 T3 w( c& v
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。
F+ ?( V; `$ @* _' _, S# v : i! s, v/ N9 O; w$ R
关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
! B2 O8 D4 w& L; g4 ]
& N! n2 i9 U! T) N. X+ b' ~; ?* P6 Q* D; U& G! Y+ e2 q
五、控制软件9 `! f' [8 J" A) q. @# X
控制软件用汇编语言写,源程序如下:. R1 V3 s+ h1 V# h
ORG 00H
+ T/ u5 q7 E T/ c( g! t1 n LJMP MAIN
& J$ v& C' u f2 G3 o3 ^, l" W ORG 30H
, k; }* T) C, A" I! i, G: `, K( NMAIN:0 {6 Y$ n/ ` r+ g
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
8 x3 e. i) X0 w, C# q6 i1 g MOV TMOD,#22H ;22H
+ w; V; |. o* A* k( G; F/ B6 j( J MOV SCON,#40H ;40H! M. X& n$ a4 U* M
MOV TH1,#0FAH ;F3H
0 m" f) L8 S" v) A$ X8 t9 o MOV PCON,#80H8 C4 ^' E" \6 h+ V: C0 _ u
SETB TR1
& I$ X5 I% k4 b4 u) G& M; cSTART:
7 X8 v3 C! a9 k: H- j# @* ~( C JB P3.7,$ ;遥控信号处理7 ~: z1 a5 n" l4 I7 P6 e. G0 z
SB:
+ r! o+ u7 F8 }5 `- m" |5 ^ MOV R4,#8
8 x$ z) Q/ @) eSBA:, @1 x: a& V/ C8 B$ N% K
MOV R5,#250
: M- ^3 i/ ?+ ]$ E7 [' T0 qSBB:
k4 Q, b7 |' G. o JB P3.7,SXB1/ c" ]7 j9 A9 I' n; u
DJNZ R5,SBB
3 y( h" a9 x1 R DJNZ R4,SBA
) `5 V6 I$ c/ i3 E" ^, r% P4 f MOV R4,#26 W" _6 a7 ~2 ~, ^# J3 ~
JMP SBC
. u' X* |! n+ [7 OSXB1:
+ h' D1 O Q: L3 i MOV R5,#50 v D1 P5 O: h& {$ x8 }
SXB2: 8 A8 h0 _4 M1 Y& m$ z
JNB P3.7,SBB
1 ?' Z& o0 V3 }/ ` DJNZ R5,SXB2
5 C) y; H* t- a" m JMP START
! P' G- o* A) o3 FSBC:
; j) s5 W1 W2 W; q. X0 ^ MOV R5,#250 C3 v5 `" B6 n: ]9 O% k& P
SB1:
! b. g" g/ |6 t( T/ G% e1 x JB P3.7,SB2 : B* O5 @! C+ j
DJNZ R5,SB1/ P% `0 P% T9 `8 {2 i& C
DJNZ R4,SBC8 V9 L4 a$ i0 S- X& t+ b0 ]
JMP START
0 W4 b4 d* }' t8 p- a: `4 w# y7 sSB2:
2 }* y" y& {9 ?# B' s MOV R5,#5
5 k- y4 d! M6 ZSB2_A:6 t7 F* _/ l3 Q# r
JNB P3.7,SB1) m* }6 T2 N6 M6 g5 ?
DJNZ R5,SB2_A
- N4 Q. U8 y7 j3 ?' _" M, | MOV R4,#3' }, F1 Y# T9 G
SB2_1:
: W$ s* n, N; F' g2 d X MOV R5,#250
0 L& p' ?. B4 VSB3:
' ]4 k2 o5 O! G5 J9 r W" ?3 E JNB P3.7,SXC
) d* `/ W: r! N' w DJNZ R5,SB3& H& }; D- U; }* @/ Q8 ^* O
DJNZ R4,SB2_1* @- ~1 w% c8 C7 ^/ {0 d/ K# O$ S5 E) O
MOV R4,#2% o& [! F j H) V' ?! Y; g
JMP SB3_1# C7 v. a9 T) m; c- W! L
SXC: ( ~/ }$ F3 G: T& e
MOV R5,#5
0 R F, Y4 U' @9 \5 p( PSXC1:
, O* d# y' o# J JB P3.7,SB31 @6 n$ g6 i$ j
DJNZ R5,SXC1
- i5 [5 T p9 H3 B. ^8 Y* L JMP START
% _; o) j: f+ {9 \ A" Y2 qSB3_1:
! v0 @( v' n" z1 d" P MOV R5,#250
( i% D2 V7 C, o' cSB3_2:
7 M n: {! D" o( ~ JNB P3.7,SB44 f5 i- g( T% i% X U% V
DJNZ R5,SB3_2* q/ V' J6 m# [6 s/ c! I1 ~7 C" f
DJNZ R4,SB3_1
# ?6 x2 y# t; s JMP START
8 C7 j2 b+ f3 y! B5 MSB4:
. d4 O6 M1 C) V% n: B2 U3 p& B; X MOV R5,#5
5 v$ h" t$ G, I& u3 b8 q' e% C# r9 sSB4_1:8 j& F8 {8 ~$ L5 k8 f0 H
JB P3.7,SB3_23 o- j" X( K" T8 t$ |7 g
DJNZ R5,SB4_1, w$ Q+ y9 n7 ^+ i( E2 A+ F
MOV R1,#1AH 2 \) d- M0 `" [, M, K; L/ F6 ~
MOV R2,#4
$ q! F1 T& X0 h3 y' C9 f1 x7 {- [1 wPP: MOV R3,#89 N, Y T" d, ~: R
JJJJ:4 `5 G a" F2 R: Y( U1 H( X
MOV R5,#250
: Z$ v, z0 K6 }" ?JJJJ2:
3 }4 M9 e C% D/ {0 \5 {0 @ @ JB P3.7,JJJJ34 ]: \8 b! C3 D$ E* Z
DJNZ R5,JJJJ25 a% j, o8 P2 T ]. k9 q
JMP START
' h( ^5 t. \! o* UJJJJ3:, I5 |8 \6 j- r8 w' L
LCALL YS1 J- x) n) k1 v: k4 n' u- T9 W" j
MOV C,P3.7
2 K) i: z; Q- {' k& Y* j JNC UUU
8 [7 z/ X- p: | P MOV R5,#250
/ A2 Y2 Q1 q4 pJJJJ4:
) K$ _1 B& ]$ | C3 s0 g5 K) ~$ C. K, u0 a JNB P3.7,UUU9 j1 `. U) N. r. m% L/ e+ j
NOP
% }: a: Q5 B. q: O, o! x DJNZ R5,JJJJ4
- G8 X2 ^9 y. q* e) a+ ~ JMP START
0 \/ V4 h; o% r7 zUUU: MOV A,@R1 ( C( z$ E/ a) G* ?( O9 K
RRC A . g( P: a! ?: b4 F5 d
MOV @R1,A ; h* o& ^/ t, |" H3 J
DJNZ R3,JJJJ " G; h6 m7 |1 M& X
INC R1 9 p6 w y; Y+ |5 A2 L" A
DJNZ R2,PP 8 O# R( R7 Y! A- e
, e2 c+ p3 q X5 J/ ]0 ^ MOV A,1AH
+ m; }: K, r2 M$ i XRL A,#11101110B, G/ R/ V* T/ Q
JNZ EXIT
$ }0 l% f m& a: G* G MOV A,1BH + e) Q% T8 j5 M. a
XRL A,#10000111B; e1 b6 p" T O! F9 k8 g' J! X! K- e
JNZ EXIT + p6 R9 @$ K3 @
LCALL YS3
# }) t. A' P/ E9 O" F* e+ I MOV A,1DH * ~$ @& l: j' ?; z9 W( ?! I; W7 e
CJNE A,#10111100B,EXIT
# U2 q+ d* ^; o) L6 Y% ^ LCALL YS3* m. |0 R2 T" \
CLR P2.6 % ]* C. p% w" g( X p9 R
AJMP BIJIAO; T/ E5 t( Z% s- X2 U
4 S& F- P& S: O% ~4 b
AA: * Q' E+ c. t5 ~$ J8 I
MOV R1,#25* s' t( k: f! w& P" V
XX:
. a6 v- Y9 B2 h2 I ACALL YS2
* L! y e/ f/ d5 V( r JNB P3.7,HH
{, G$ {' B2 H8 g) k: T DJNZ R1,XX
& S0 A% a, n; x VEXIT:
1 ?' N- l5 Y4 G' u" l: O AJMP START
! F! O1 i. u1 l9 N6 U6 R 5 I0 c2 C0 R$ N( z* x
HH:
" K. `3 D# u' N( ^! X/ ?1 z5 N7 z MOV R6,#4
) I# r* `# d/ o6 AS:
) K/ r) q: i- f- e# n+ z ACALL YS1 @4 B8 L0 g K1 q$ v" C/ V
JB P3.7,EXIT
, L! s( v3 ~4 x3 _6 J; | DJNZ R6, S
, l! }1 d% K$ U, B) h JNB P3.7, $ 0 \' ?0 s9 ?- q9 v8 _" e; x- E1 d
LCALL YS3: M G2 }6 c4 z1 O
AJMP AA$ H0 R7 u C @' H
BIJIAO:1 ^& ^# U% Z: m- P; o7 m
MOV A,1CH 5 M" j8 k6 e, R# V$ Q
CJNE A,#03H,N1
$ h) X& i% W+ @+ X" d7 c MOV P0,#7EH / y4 q+ R J2 J4 k' b( o
2 N) {) B+ t) W- I3 Y. {
;处理STUDERV录音机控制码/ c( o6 L8 d& m# t. c/ R# r W
N1:
9 {% S4 V7 P7 U# \- a: P5 N/ J; X CJNE A,#5FH,N2 ;播放键
8 H' L9 E2 O$ K; A, o- @1 u MOV DPTR,#REP
! D; E" [0 S" @, G4 d$ d2 D! B% R ACALL SENDA
, ]& ^* C$ V- `. l: v: R# r8 ] ACALL YS4
0 t: {4 W. e# r% y( p4 O MOV DPTR,#PLY
+ i5 H; F0 S: K+ b! Z( ^ ACALL SENDA
& O) l- u4 V; v1 SN2:
( d( }3 I) R8 K7 Y& x CJNE A,#5CH,N3 ;停止键. ~6 z/ x+ |& |
MOV DPTR,#STP* }6 Y( }6 O9 S0 i& `
ACALL SENDA3 u- `7 D1 A2 G; j. P
N3:
^% u/ \. M( ] }/ Y CJNE A,#06H,N4 ;快进键2 R) R/ _# k2 ^: v9 c
MOV DPTR,#FWD, h0 {! K- g+ Z
ACALL SENDA
; r% d" j/ c! b0 [N4:
- B G8 a0 F+ w: ?1 Z CJNE A,#09H,N5 ;快倒键$ Q& x' I; r5 s4 x
MOV DPTR,#RWD
2 x6 y' {3 }6 e3 I" |9 [# W ACALL SENDA
" q( j9 ~ d0 D, nN5:
6 Q) Q4 `" n/ n7 H" J. n' c CJNE A,#0AH,N6 ;置零键
; h9 y* D) @3 r MOV DPTR,#RTM2 |# n# R( ^* D3 E
ACALL SENDA
9 S8 M" s8 s k1 o% z* P# ^N6:' o6 U" e( D* s7 N0 L8 q) I
CJNE A,#0CH,N7 ;定位到零键
" D3 `$ g4 {+ u$ p s MOV DPTR,#LZA
: t2 ~( V5 L. d) v( v ACALL SENDA
3 Y" m4 i( y( R2 F. dN7:
% T" L# Q0 v) X t, z AJMP AA
' ^$ G* J5 N: zSENDA:
1 b2 q1 y* }) U0 a7 u1 U+ o- Y4 l' H CLR A
4 H. M- [9 O \2 N+ E" u, j MOVC A,@A+DPTR
9 x. Z3 X: P% P% [4 h2 L CJNE A,#'$',SENDB; [# _! b7 j! C5 Q; u, K
AJMP SENDC
! w# y( ` e7 e5 O8 `$ i2 r$ rSENDB:$ O) i0 u, G$ n8 B6 ?, u. o( n
MOV SBUF,A- [2 m) U+ x" b% {/ G
JNB TI,$
9 D- ~# C0 j. m) C CLR TI
5 |! Z: Y6 V$ l4 C# Q INC DPTR
6 W* G9 S8 H/ s4 Z! C1 A AJMP SENDA0 w$ B; c% d& _6 f4 O
SENDC:/ q2 p7 c6 A4 r+ G
RET. ?. E5 u: b/ S) ~2 d
0 i% d$ I. m4 V1 Y. s# y+ ^
PLY: db "PLY ",0dh,0ah,'$'
/ A# u- c% x! D3 W5 R z/ `0 dSTP: db "STP ",0dh,0ah,'$'
2 j& l+ d) d+ j* H$ |/ @1 QFWD: db "FWD ",0dh,0ah,'$'2 q: J/ d- `; W1 p5 G' ?
RWD: db "RWD ",0dh,0ah,'$'
/ W e3 o# o" D* F8 J" P1 A5 YRTM: db "RTM ",0dh,0ah,'$'" T% p: Y- E3 k. G
LZA: db "LZA ",0dh,0ah,'$'
& m, ^; \4 G) l# q4 N- lREP: db "REP F ",0dh,0ah,'$'% d( S% ~2 Q% a1 d% T3 s- i
$ B. f, n( R2 Z
YS1:- b' r: b# V/ N1 G
MOV R4,#20% w! E4 x- H! M( `. L
D1:/ W1 M/ p. t# Q
MOV R5,#20
) ^. j5 R9 q* n; ^7 e v DJNZ R5,$9 [; G- g& s- W' J0 A
DJNZ R4,D17 x3 @! ]' b4 V/ g+ M' @4 y
RET* T; n9 r, B7 [3 y& [" C
* [2 L( s, f) s1 x7 H0 ?- A3 _
YS2:
4 @& k/ N/ \8 Q MOV R4,#10
: N+ ~3 C* X' Y6 I# i7 yD2:
Q! d1 X& s8 k! G# J2 H' @ MOV R5,#235
: B' [5 H$ L5 ~ @2 r, b4 w DJNZ R5,$
5 C) x5 j4 l( b, e DJNZ R4,D29 N1 I5 |+ y Z# U: ^! S8 a: ~! M# h
RET
) N* M t8 h* H o4 {
; J; B" t0 Q% t' G0 {3 J" @YS3:, S6 j" n+ G7 q# N, J
MOV R4,#2
4 T) [- x. U. {+ `2 _D3:, Q3 x) s7 B. G' u. O
MOV R5,#248
/ q9 Y( m' u5 S3 y DJNZ R5,$
4 p8 `" r9 U" C+ p2 L DJNZ R4,D3% @& K, r- N9 N4 g
RET1 R$ l# G/ N5 e7 u$ i O
! Y+ B4 [$ I, T4 U
YS4:
& U" W( Q0 c( v) V MOV R4,#200" j* v% ?8 R1 @* L* _ Y
D4:0 f/ R6 A, y+ l. G$ [6 j f
MOV R5,#248. C4 `4 ^ Z% N+ O6 G
DJNZ R5,$& A3 I; l; J; {- |7 [
DJNZ R4,D3
) q8 K% z- b H1 f RET
+ D2 y: Q3 m2 n& L `: J END
, t+ d: k5 \2 H' s) b
( M* D. N8 v' [有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。0 x# T& A/ Y" V8 U/ v: A4 }) c
是不是很惬意,嗯!
9 r" n( w9 o5 V' s2 |# q! o" z+ X |