赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑 $ W5 _+ A' L- t
2 h7 \' p" m5 P) m9 M本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。) [* i* a& h) j( {
% N3 N, u( u% E$ F& R# e
说明:5 v8 k( H) n& l2 a- X% h5 @
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
5 B# [! z7 D/ J; i2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
1 v' w7 Z7 Z1 u7 X+ O0 G% b+ U/ r/ G y: M3 {# G" j. S
一、基本思路( x3 H) s2 Y3 ?* Y: C$ u
使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
- [9 ?4 W4 W! W( m6 K7 r5 Q `/ s% m! K% w: O( x0 M
二、红外遥控器# p# k( J, {; o) o+ [7 @. {
我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
Y \1 A, V' D: G/ ~( a
8 ?" @2 T" Q$ W7 S; Q
好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。/ w. r( o; l! ~" _7 Q
4 t8 X% n4 T, U$ }在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
1 E. X# i, L1 q: _, ^
, n3 W+ T+ [6 R2 x3 ^6 @! q, @
# _; }) T& ^$ J% J' w7 _( Q三、红外编码
" t0 h2 P; f: C- S) p+ O红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
3 s$ O7 X- k! c前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。
8 U5 V2 v8 Y P! W) U后16位为控制码,主要用于实施具体的控制。$ m. E% ^ q) p$ M! h+ V
这16位中高8位和低8位互为反码,以提高可靠度。
! j$ k- o4 ]+ I! s- L9 U1 a5 K8 l( h% I5 R
以播放为例,其编码如下:
: ~" e. f. I. w6 x" e: {00000000 00000000 01011100 00000000& c8 m8 j7 b2 b* U8 s; I+ {" P! P4 [# d
; G' e( q3 X2 K/ \" w" H你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。 o1 L) P6 y& s( q, K# B
+ F/ b8 }; ~' z, d: v; ^
四、单片机系统7 ~5 X! I- {( @9 y. ~, M: k
这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。8 k, y5 |% e' I3 F0 V
$ t* w4 ^0 |% z
$ ?2 v* }$ W( Y6 k A ~
电路很简单,功能如下:
" i- `7 w9 a: y1、一个AT89S52单片机作为核心;
* p2 m. C* w: @- X1 b2、一个TL1838为红外接收头直接串行输出数据信号;0 ^( {/ T2 f( n( U
3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;+ o, Y c' ]- e
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。
; [7 L8 C: W& a% P0 m( W" m
/ B2 l9 t. Y2 V( V. E, j关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
5 i& K% s9 e# _" T0 M) Q( e6 Z. p# b$ n; v
; S1 \6 I1 ^+ ?4 m
五、控制软件3 f( O" D& F; S
控制软件用汇编语言写,源程序如下:; ^6 L& ~* K# Y d- [ G1 c
ORG 00H
( m, [$ [ p6 r1 U. k LJMP MAIN: J; Z, U* N" ?# j) w, n7 X5 H$ \
ORG 30H, i# O$ C3 ~: m; Y' {/ L. M
MAIN:% l0 ~3 J+ D- ?( L, t2 {3 z6 [$ a! J0 O
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
" t& U: i3 D3 I `( Z: n MOV TMOD,#22H ;22H
" b" N- Z `5 | MOV SCON,#40H ;40H! ~7 ]# K) y. y/ V' X
MOV TH1,#0FAH ;F3H* D8 X6 u% O6 Y9 Q; e. N Q
MOV PCON,#80H
u/ R$ A9 A# y& n" P/ @ SETB TR1
4 c6 G# d9 Q7 |7 [4 Y9 [/ tSTART:
/ ~) n+ F7 y7 g& y5 R& A1 L* V JB P3.7,$ ;遥控信号处理
5 ]; n; O& B2 T# Y% kSB:
5 d9 _" U2 [8 {8 a MOV R4,#8 ; t* c& i& B" o$ _8 m
SBA:* @7 v: N0 r0 P; _5 ^% M/ R) ?
MOV R5,#250# y2 f' ^9 b: Z) [
SBB:: s0 q: }3 v1 o- i0 B% E0 @
JB P3.7,SXB1; I8 Z! D% H( e1 ?$ g3 n/ J# Q$ m
DJNZ R5,SBB5 m v+ j; A8 [
DJNZ R4,SBA
( f' ~) t. S% x# P7 t MOV R4,#2
0 I+ q6 @$ [! Q j JMP SBC4 k; @# `, H/ X9 U
SXB1:, a) I& k: E6 b& Q
MOV R5,#58 y9 X" H# u' Z( e
SXB2: 5 N7 C6 g7 G9 H/ S. t1 z: Z
JNB P3.7,SBB
8 O$ d$ N, U" E& G DJNZ R5,SXB2
8 @- y8 x( X: S. f: _3 V- `3 d+ T7 k JMP START/ V+ x; ?, ?) F R% U* G: i9 ]
SBC: \) o" X; l( |4 T5 I0 ^8 Y
MOV R5,#250
! I, R' w! U) H; ESB1:
1 Z; c6 K- Z+ D1 u% D JB P3.7,SB2
% e8 N7 x; v; `* \ DJNZ R5,SB1
+ j% z$ [& r$ m& R4 m; C DJNZ R4,SBC
* I% k: E- R2 O* A% O) D JMP START
2 `! P0 x5 P) r% X; K" M/ w; iSB2: ; D0 i1 v: X6 w/ V" C
MOV R5,#5
' M: {7 S% n. A0 b: q: vSB2_A:' R( R: `) f% q4 @3 E
JNB P3.7,SB1! k3 W) L" x6 n& \, h7 r& m
DJNZ R5,SB2_A
1 ]3 T" k4 {5 S2 g* X: Z8 u MOV R4,#3
. Z5 p) J/ Z- p& F/ j7 BSB2_1:$ N+ u9 I, w' S. h7 }# `7 T
MOV R5,#250( T4 Y8 P0 i4 i( G9 Z! p8 ?' m2 J
SB3:
) {6 B& ^% q3 O1 c- E JNB P3.7,SXC
. Q' \# B7 v, d8 r4 R2 z DJNZ R5,SB3
2 o5 K: I( D% L4 _/ t# a DJNZ R4,SB2_1
. c3 r, _# L% P& L( P MOV R4,#2( S, M1 T" ]: s( A6 l7 s( Y
JMP SB3_1
2 ^7 Y! F. f& c/ |SXC: - _3 j# _6 S& W% H
MOV R5,#5
" h! ~, F8 E( K" f' z! L7 f, i1 LSXC1:( c3 f9 ~! ]. U+ \$ d4 g
JB P3.7,SB3$ L4 W" f J9 N1 v6 v' [* \0 L
DJNZ R5,SXC1
8 @6 Q3 n6 n+ A' q' i! o JMP START
# ]& Q9 A$ }/ @. B5 N: \2 sSB3_1:
+ }. U$ i3 g$ s+ J8 Q MOV R5,#2507 o1 P9 d$ ~0 O$ i4 [
SB3_2:6 y$ E6 d& Y* k2 _
JNB P3.7,SB4
h- K/ c8 n/ n5 Y0 x DJNZ R5,SB3_2
4 O$ t p, @3 u- i DJNZ R4,SB3_13 w/ S+ Z G& @6 g: i J
JMP START
1 ^/ W5 F- O0 g: {' _* DSB4:
; K: Z+ U! W4 R4 y8 c( L9 i' z MOV R5,#5* K1 W+ h! M2 y. Z: }2 l B
SB4_1:
. M5 }; V% [, i. ^/ A# D5 h JB P3.7,SB3_2
1 ^/ O, ]- [, d7 I7 m DJNZ R5,SB4_11 @5 ~/ d { D4 @1 I9 i( \2 X% o
MOV R1,#1AH 8 L7 H3 d& `- s% w; T
MOV R2,#4
. ~- t" M, D3 d) QPP: MOV R3,#8
, I: e' i$ K" a( [$ s: `JJJJ:
5 c2 { v4 [, K1 N MOV R5,#250 {! p* p: }+ W4 r. b
JJJJ2: 3 O* U N2 B" B: w! x. z
JB P3.7,JJJJ3
) s `8 j% @) u/ W, s1 z# [. j DJNZ R5,JJJJ22 U# t1 I J6 N$ H7 B, y* s
JMP START- M1 Z- Z, K7 k y2 A0 T2 c5 k5 q
JJJJ3:
: N. O; N) u4 H4 }- f1 b LCALL YS1 8 }6 x+ {" q5 n# Q
MOV C,P3.7
9 S0 l- G" t) ^7 [2 _" E JNC UUU
( D9 |" p1 O1 T2 ` MOV R5,#250
) [, ^) v2 b$ FJJJJ4:4 o H5 V4 b2 Z# S1 ^: Q
JNB P3.7,UUU
) a* v* Z" R; h# `( ] NOP; a$ @1 `. n% d& E& v) p3 F- ?& C+ I
DJNZ R5,JJJJ4
0 m+ w3 ~. y3 b$ C" O u" T+ j JMP START- ]$ {6 |* c8 f% Z+ v0 Q8 F
UUU: MOV A,@R1
: _$ V1 O6 ]7 J. T9 j) h; c RRC A 1 [4 }- g+ [8 {' {" k& i% z
MOV @R1,A 6 e3 _; J% d& J
DJNZ R3,JJJJ
. @, d& h) Q( ^+ b5 E; q! u, r( ~ INC R1
8 N! d. e) @8 t. [6 f3 y4 I- c7 J DJNZ R2,PP
( y6 `; W: q( Y
# {) e) z) @5 R MOV A,1AH ( Q9 V: Q% G. e, U
XRL A,#11101110B" Z/ F# t. b5 Y( d- `. q: t
JNZ EXIT & A o4 S& U0 q& L5 }
MOV A,1BH
) l' g7 d v% O! h XRL A,#10000111B/ h# ~0 ~7 w6 x8 N2 m. c3 r
JNZ EXIT 8 x( Y- d. `- T( {% F# g
LCALL YS35 h, f: s7 |5 Y4 l+ v
MOV A,1DH ' {% G/ P+ D4 h) F4 h% X: e/ T
CJNE A,#10111100B,EXIT8 h5 U2 `- m* H4 ], Q# o; e
LCALL YS3
; [ P7 f+ R: b* d3 g7 {1 Y CLR P2.6 7 {5 c% q5 L. C* j! I
AJMP BIJIAO: c* }! l; c1 c, y4 O* h* x
$ z. X, F' u& X& u$ u6 Y d" NAA: 1 H' P" q, R8 v/ G& G9 i# u
MOV R1,#25) k: V0 {" j: e9 r- h1 Q
XX: 8 r% ]* G* Z3 s9 R, f0 a
ACALL YS2+ Z4 S; Q: l" T2 P/ ~4 j
JNB P3.7,HH & c) c0 v" P6 k) d k5 L7 F& d
DJNZ R1,XX
# l( F2 [ [% p1 m4 bEXIT:
: {- O, [& W5 ?! L8 F" E* F AJMP START% s1 b0 N3 y, q# _# y
1 ^ k3 N6 t4 ~
HH:
2 ~( f1 A7 S& ~. Y# o MOV R6,#4
+ P8 p/ T7 \# T; r: |" QS: 2 ~3 D( e, C* m1 k1 y0 n
ACALL YS1
0 [) U1 L* N9 q% V: g/ d2 \; k JB P3.7,EXIT
* k4 v, |; L0 g3 z' P DJNZ R6, S 7 D* Y4 R/ s$ \# a9 R4 @
JNB P3.7, $ 0 V8 l. i& k+ w0 `
LCALL YS3
$ \3 {( @ z: z2 U& {$ s AJMP AA
' J7 c* ]4 H& r- W- c. Q8 Z$ Y1 KBIJIAO:' k$ `+ H% l% z9 F3 M M7 L2 E
MOV A,1CH 1 w( L7 y9 l6 K1 Z+ M
CJNE A,#03H,N1 $ {4 n: B$ v* m( e/ V/ [
MOV P0,#7EH
( _* }. D. h# Q R k
& i0 j6 S9 E1 t0 J- _ ;处理STUDERV录音机控制码2 P* U3 H$ C5 H( B9 E
N1: ) y8 q5 H1 F: S6 l& ~4 J2 a
CJNE A,#5FH,N2 ;播放键
/ [7 f' D/ d8 u% |3 s: U MOV DPTR,#REP
1 w: @" ^ s+ X ACALL SENDA
8 F4 U& s& ], k. R7 `7 \1 B, } ACALL YS4- v4 P: K' B4 g+ `9 {
MOV DPTR,#PLY5 h' b. ?4 R, ~" [. E! v" R4 E1 C
ACALL SENDA
4 K, a. T3 b/ [0 h/ [! }0 J+ U7 i6 zN2:, q: ^# |# j9 I8 P
CJNE A,#5CH,N3 ;停止键
3 V7 ?9 m! u% S$ S+ @- p# H MOV DPTR,#STP( @- }3 G, o$ R) |
ACALL SENDA3 _6 R3 u I' ]
N3:
- }6 _1 H! S+ ]4 n& ] CJNE A,#06H,N4 ;快进键; `; c9 v8 y7 t- l4 {* V; a, W1 v
MOV DPTR,#FWD
) r* h$ M+ L: Y ACALL SENDA
! r7 p9 k: {# t+ \5 C9 CN4:6 G* Z7 ]8 X2 z' f* x
CJNE A,#09H,N5 ;快倒键
7 j- g. N" N$ t9 u, [0 A MOV DPTR,#RWD% r) ~& v+ D6 c, K0 D6 y
ACALL SENDA
" O0 k0 w" v, y: d! [: j) `( p8 t/ w) IN5:
+ B x( \/ K' q1 ~( h9 g5 U CJNE A,#0AH,N6 ;置零键
0 f! m6 |, |" ~6 @# o6 ` MOV DPTR,#RTM
$ i- D) [2 `# ]% z1 s8 e2 Z ACALL SENDA) O, U: o! n3 T4 s7 M
N6:) I/ p F2 H) l
CJNE A,#0CH,N7 ;定位到零键
0 f' M7 M' f* `- Z0 G MOV DPTR,#LZA
( m7 H4 B! H8 @ ], ~: n ACALL SENDA: R G: }0 ~: @) x2 ~* Q
N7:
) ?7 Y8 f( a, p AJMP AA& T% O) M( k- r3 o. M) n9 Z
SENDA:
! K D: X7 b5 P3 a8 V$ l9 o CLR A
! I- } ~1 q( y S MOVC A,@A+DPTR
8 ~. J/ Y; g8 n9 I. V: _1 ^ CJNE A,#'$',SENDB
6 N* e' {- U1 v8 W2 o' ? AJMP SENDC
# U V/ w9 W9 oSENDB:# R& V: A4 v- l3 c6 Q3 ~
MOV SBUF,A* t" |9 |0 y/ m" G U( Y6 L' G: f- j
JNB TI,$1 U" b' Q# M! ^& M; A* L
CLR TI
e$ }/ ?' d1 N* Y INC DPTR, O4 u7 q. C6 I. s# o" f
AJMP SENDA/ n. v. X& Q. r6 o# c5 A
SENDC:9 q6 k" {. J7 H; S0 W
RET5 z) i$ b1 R- N% j' g# K6 N
& B' M; t8 I3 T, z0 l# `; z
PLY: db "PLY ",0dh,0ah,'$'
9 U! j! c* W& ^# N( _STP: db "STP ",0dh,0ah,'$', b" c: a/ p: x2 j5 O
FWD: db "FWD ",0dh,0ah,'$'" ]8 C, J- j' ?
RWD: db "RWD ",0dh,0ah,'$'' Q {, p1 c* b `( X, d
RTM: db "RTM ",0dh,0ah,'$'' s) i5 a I% L/ m5 C. Q8 G' v
LZA: db "LZA ",0dh,0ah,'$'
) ?- h2 p& @* gREP: db "REP F ",0dh,0ah,'$'( P# U1 j+ Q/ \0 c& v. T# I6 B5 {
f5 ]" `! f$ i! f6 K( r/ \YS1:
, u9 y& _/ s5 U O- f8 j MOV R4,#20
/ ]* P% Z6 [+ |' Z* DD1:4 T& ]0 a9 E" u1 s
MOV R5,#20+ U3 d- Q' O# E% {( [
DJNZ R5,$
# R) g2 }6 V h5 L/ y; i+ F DJNZ R4,D1
6 h5 L9 v! h0 g. W5 L RET3 q: Y1 }4 Y) u0 X* x
6 d* ]/ w0 d) I7 U7 ^2 M
YS2:
7 q+ i3 C; s$ }; `4 B3 e MOV R4,#10
5 W- |) m# p; p% H1 C+ PD2:1 ^; \- j. J) \
MOV R5,#235& R; e8 {% ~3 C( `0 K
DJNZ R5,$
: N0 Q# p y/ I$ T5 Y+ B6 ~ DJNZ R4,D2
( i' Y" u1 O5 p4 x- m RET
1 f: }+ o2 B/ R4 X6 W1 A) J2 m# z$ \1 T& v* b, m* V) U
YS3:
* O- {5 [+ u. Z0 x8 [6 q MOV R4,#25 ?3 q# N; t4 S7 k2 v; I
D3:/ a/ n7 j: X; x
MOV R5,#248
1 u l. W& M% v& `4 k DJNZ R5,$" |3 |, J4 N/ D. T
DJNZ R4,D3
# b" ~$ Y/ H" Z0 d" B( j RET
+ O, v/ \1 F6 d# e1 a" n) k( i% e4 F+ U
YS4:. d8 |" w* F6 j, {% l
MOV R4,#200+ h) H: D+ P+ X6 J
D4:
+ V/ m- s9 o2 T MOV R5,#248
& o& t9 s, V9 X+ [/ y o DJNZ R5,$
" p4 w3 M, ?0 G: a+ z V DJNZ R4,D3
5 a3 L; @* h6 U, F7 x- v+ k RET2 H7 k, W0 w# }3 H; k5 y, c4 P O6 W
END; p/ j( e6 @8 |$ i {
0 k' }+ v7 a0 U, t
有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。
; B: ^' {5 `4 |) z7 N7 i+ R是不是很惬意,嗯!* x" Z( Z4 B2 Q1 X8 x
|