赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑 ; z% h8 B* X% m- ^9 k* X' q* N8 h4 k
0 [# N8 i4 D$ r$ `6 y+ j3 p" D, y
本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。
9 k! I1 c* S. o! }" S6 k
% o8 B! g9 x" X' P% T. u说明:
6 e7 o( ~7 Q c: E! R1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
6 t2 T8 N- @+ p7 D0 [0 s2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;2 G1 L+ A C* |0 \" K
l8 h0 Y9 W9 b* G% T一、基本思路
, s4 Q- `- u8 @/ H使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。: u* g4 \# i$ v
# L6 a% _% O; j, x% o二、红外遥控器0 M$ B* L8 R) k3 B# N
我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
% c+ x! E, k4 n% s$ s( u2 b t, g4 K
* a( N9 q& l( z( I6 h4 C+ W好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。. q) T, Z9 |& O. _6 J
2 e+ y3 ]! k, w, T6 w在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
# C. f0 P, l( t+ k& h9 n
N2 {7 ~" T* [4 @/ L. B( U
1 C; h: q+ ~$ h0 j8 y+ k* A三、红外编码
; E6 x( H/ e5 ]红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。( `& A. n8 J- `/ ]7 Q
前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。
% h2 D( a$ R; P0 p后16位为控制码,主要用于实施具体的控制。
0 M- k$ b1 r1 @/ W: t这16位中高8位和低8位互为反码,以提高可靠度。5 S# G3 b$ ^+ C: z/ [1 \
9 a2 d1 b, r! h& ~9 x9 m
以播放为例,其编码如下:
1 R3 h, H* c, ^( p& O; c1 g00000000 00000000 01011100 00000000
( z1 A; e2 b/ _+ `$ T: ]1 F. V6 R- |! Z& R! B) a
你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。( [& ^1 M% n$ _
. H* {* n- e) B& q3 V& g4 N四、单片机系统
& P. j. z& J. j6 Y5 `这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。/ Y" _( q0 R: K, Y Q
# U; G+ z7 B+ W0 _1 }
4 @5 z3 g" V: B$ P7 i* i
电路很简单,功能如下:1 G* W' i `* O( h# ]! l& l, L
1、一个AT89S52单片机作为核心;
5 Z0 M4 H7 _% c, T7 |6 m2、一个TL1838为红外接收头直接串行输出数据信号;3 U/ `# |3 J7 F8 {4 X
3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;
/ [$ C E3 l+ v/ {( l3 l4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。( T2 y% Z, n- K+ B1 M$ O0 V
$ `9 q, C, q! ?. k/ R" L关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
* m* B% ?3 @ T5 `9 B0 G9 ~. p- q* V! r7 m3 X
/ l% I( h0 v7 U- [% p5 N五、控制软件6 z, ?) i# E, g/ } F* `3 S
控制软件用汇编语言写,源程序如下:
& Y' y# G9 }0 z b. T- H ORG 00H
# A3 k# y5 u- d* c$ R0 U3 q0 M, ` LJMP MAIN
7 i$ v2 M2 O2 Z1 n! z: Y ORG 30H5 K6 g5 ~3 d$ q3 V k
MAIN:; h1 k; w8 S6 Y! h3 ]' A: U! ?
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)8 Y3 c4 K! @$ L' u! k
MOV TMOD,#22H ;22H
" u, p/ K w4 s/ v7 B+ k' z8 O MOV SCON,#40H ;40H8 {& _- \5 V8 @
MOV TH1,#0FAH ;F3H8 f) \8 |; I+ [% r P0 x
MOV PCON,#80H
7 Z9 J1 G% J3 q- @ SETB TR1, U* p' G. B1 G& l# T
START:9 }) y" _+ w. g0 \! s) o. G; t
JB P3.7,$ ;遥控信号处理
2 N* \" Q! y3 D0 h0 T, RSB:
6 M; s2 |7 y$ y# x% N MOV R4,#8 : v7 `9 h9 y2 p7 V5 q$ E/ F w3 B
SBA:
3 l7 i$ E" e9 F4 _: ^ MOV R5,#2509 z: [+ k! f i. {: H
SBB:- F8 C1 {. p8 M: w+ K! N! E
JB P3.7,SXB1
; K& \+ v/ n& r. _4 g1 A+ s DJNZ R5,SBB
" E" W, O* I, b7 {. ? DJNZ R4,SBA
) z4 C4 w2 R! h! R3 L MOV R4,#23 [4 _' A. ^' k" P4 V$ C
JMP SBC
, ~; J, l. {8 {9 o! [: d9 A: d# W2 h! GSXB1:- u0 \) W I0 h/ Y! q2 t' V
MOV R5,#5/ V/ }" Y5 T" V, C
SXB2: & ` i7 y! _$ Z; N
JNB P3.7,SBB
( Q! d k' f- G: f( L DJNZ R5,SXB2; A3 \) G$ T) l) _/ x# V! Z
JMP START8 j* A! d/ W0 e
SBC:! G4 F5 i- ]! v
MOV R5,#250 e/ i: I# x! N6 A J; K
SB1:
( y( Q' l- w5 @9 E! Y: ?' o8 I' ^ JB P3.7,SB2 ; s: k; z3 _+ w% z; h# K
DJNZ R5,SB1
4 z p) k) J; T( i1 b+ W DJNZ R4,SBC0 S0 G! U# m- K W' _
JMP START
* R. P+ y* s' B, u# M. |# _SB2: # r0 V/ ], j% n
MOV R5,#5
0 {) x1 V7 m" cSB2_A:
; `9 | g4 k$ i8 u9 J! q JNB P3.7,SB14 I8 E) m+ S$ k
DJNZ R5,SB2_A% k) T/ y: V1 O% V
MOV R4,#3
/ V, P* w$ r/ L: k5 OSB2_1:
. Y' \2 c1 K4 c" b MOV R5,#250; F; G3 R8 M; M: X# f( o( t' s2 K- g/ u; G
SB3:
( A8 _$ o! n- @$ G; W JNB P3.7,SXC7 I* Y! P+ j: c c4 U
DJNZ R5,SB3
0 Y/ V, [2 x7 U6 s DJNZ R4,SB2_18 J- ?& ]9 v% [2 ]1 v9 Z, v2 V
MOV R4,#2- Y) W2 e" R7 A( `0 l3 S, a3 ] d
JMP SB3_1
3 k( n- N Z" }: D5 pSXC:
. C3 ~* u2 V, C, k b6 O! s MOV R5,#5
/ O: {; d5 {& y% N9 K( \6 J6 OSXC1:
. U5 _$ {) \# I& i+ p9 w: m JB P3.7,SB3. i4 i5 i* p; y
DJNZ R5,SXC17 ?( `9 @$ c3 ^, V. X
JMP START9 J$ {* p6 G$ i, P1 _. q
SB3_1: " v" n7 P# Y3 g7 Z# x. c
MOV R5,#250
( W' G/ b, ?9 c& J3 O! ?9 @8 hSB3_2:
+ X+ @& r3 l6 a JNB P3.7,SB4
, o: Q' v; E/ R6 Q; K DJNZ R5,SB3_2" S* Z* f! M' |: X
DJNZ R4,SB3_1
. p, F1 O N8 u) z JMP START# H, g2 Q3 O7 H, b5 h1 @, H& ?
SB4: 3 C! u8 l5 ]: ~: }( @5 \% A- o
MOV R5,#5& w8 N+ D! p0 j; l
SB4_1:
% _8 c: S u7 N, y# g: e. g JB P3.7,SB3_2+ Z- p" b) M k
DJNZ R5,SB4_1
& [( j; _: ]/ `0 ?3 n MOV R1,#1AH % Y- w) D0 \. L6 T. O
MOV R2,#43 y7 C% O* k; `/ I2 ~9 C3 Q
PP: MOV R3,#8
2 W. f9 Y: E% \5 z! RJJJJ:, K3 N- y# |/ F
MOV R5,#250
/ R4 q6 h/ v+ `! J& dJJJJ2: 7 f& [# L' s: f' r. e# o( u; N
JB P3.7,JJJJ3* B- J& W: Y6 Y3 g7 L
DJNZ R5,JJJJ2
5 B! I% N. y9 q& b. ^/ e/ g JMP START+ \! X. Q0 v* H
JJJJ3:9 `& B" y/ k& ]! C
LCALL YS1 , [; M4 K) p; }; s7 z+ n
MOV C,P3.7
3 a. d. }8 y* V' B JNC UUU
w5 l) t. E' q% I+ Z! K F, D" o+ l5 M MOV R5,#250$ l9 p3 E- R! w) f4 _5 H# V
JJJJ4:( N+ S& q! Y0 W: l
JNB P3.7,UUU
/ W* `+ w/ d- Y- I6 Y5 B7 m n, d NOP
2 P9 O0 U- A. ~7 O! _ DJNZ R5,JJJJ4
- ^4 i) M4 r5 A7 ~/ j/ h4 t( @ JMP START s" l% ~$ G, [9 E
UUU: MOV A,@R1
5 o. t! b6 r5 A6 |9 P! A RRC A + c; d( ~. y, v. w. [3 n. B
MOV @R1,A
5 M$ r3 _5 s1 u DJNZ R3,JJJJ
4 t# x4 B2 I) Q5 c) K INC R1 ( V q' ?5 T( [" l& Q" t
DJNZ R2,PP
~. r7 }. B! N7 I8 i+ k: B8 {/ C- ~4 e
MOV A,1AH 8 x5 w2 r$ ?; j6 u3 `9 q% }
XRL A,#11101110B+ o& P, l! a0 Q) z1 O5 I. }
JNZ EXIT 9 N5 P/ ? D( R5 A3 W- Z' i
MOV A,1BH
% X0 Q" y% K* J: z; N) j, G XRL A,#10000111B: g2 W. t6 x$ G9 ^3 L& T
JNZ EXIT
7 Q3 P8 p, S+ P: Q# Z. l: |' c LCALL YS3
. C6 }3 g3 i' i3 V; f- E MOV A,1DH
6 B5 C' h3 Z' J. b: z$ J7 D CJNE A,#10111100B,EXIT
# g) Z3 Q F7 @2 x: G& K. d LCALL YS3
! B1 i, c, \$ W- K5 X4 X, K CLR P2.6 # ]; W( ~9 |1 I) d& D2 l
AJMP BIJIAO' ], \6 @5 R" b' M u
/ m: _, |! W- H6 d3 J8 k- NAA:
, C" t; o" r+ r) r4 g" W7 C MOV R1,#251 P7 x8 h# F* @% U2 L% \
XX:
$ C5 x9 h- M, E* S5 z ACALL YS2
# `( B$ m% r! ]5 l/ s) A1 ?" c JNB P3.7,HH ) }% ~: z9 }# g& ~
DJNZ R1,XX
! E' ~2 U4 Q8 w$ a l# e$ DEXIT: ! N4 o3 ~- b2 N6 \& s. X5 H$ b/ H3 x
AJMP START( S4 p& c- D6 w2 n4 ^. \' i5 X( z
' ~) y- L: i' z0 Q7 k- oHH:
( y- C8 c% v7 o$ o3 h MOV R6,#4, p" e& x) k. ]/ K* V! [ a+ P
S:
7 ~7 R9 \ K; j( b9 i7 c: x- V; F ACALL YS1
# c% z' ? c: @9 g- f JB P3.7,EXIT + k/ X! l1 X8 P; n! z
DJNZ R6, S 0 T% S3 g/ _' `* T- [
JNB P3.7, $ 0 E5 i, T2 T: K( n6 Q& V* @2 G
LCALL YS3' k/ i" }/ l- k& o. o* T4 Y2 l4 d1 Q
AJMP AA% S# I6 Q2 ~; j7 I
BIJIAO:
, i, S1 T( _5 O- o6 M: y MOV A,1CH
5 p: U- r2 C3 w; E0 Z CJNE A,#03H,N1
3 g% `7 j1 B @ MOV P0,#7EH
5 v+ j- K) l3 ]7 |1 @3 w& j ; w0 ?+ h; M# W; S0 y3 R, F
;处理STUDERV录音机控制码
+ t+ I E! b6 ^. M- ^N1:
7 H* f+ X3 H8 D9 c CJNE A,#5FH,N2 ;播放键/ b. r- G( B- V/ a- I
MOV DPTR,#REP% Q) C* C! _( c" {& D. \) r
ACALL SENDA. A6 _8 w& n8 T: ?; ~5 {
ACALL YS4
7 V, H0 m* D- v5 A4 L3 W F5 J# H MOV DPTR,#PLY
; J( H, o) W E5 h ACALL SENDA0 s% t( o; u) J) S( @7 C
N2:
) @& L( }5 H4 j2 b1 x* n. G CJNE A,#5CH,N3 ;停止键4 B0 ^ y& e$ W9 r
MOV DPTR,#STP
; D) [3 r7 I8 H3 r2 S2 D ACALL SENDA
$ a3 C5 l. M5 L0 TN3:
$ \4 G4 q! p: E+ f: V CJNE A,#06H,N4 ;快进键0 S9 Z- l4 z% M9 @5 f- `4 U7 c
MOV DPTR,#FWD
7 N' e/ V8 Z( w8 L ACALL SENDA/ \. N2 C4 N6 |3 p( x: _
N4:
& j0 a5 j9 q! B% A CJNE A,#09H,N5 ;快倒键. m( b( ~% `, A2 @9 d2 q
MOV DPTR,#RWD0 f- u( ^7 F* F" m9 S+ Z0 A; s) {' Q3 S
ACALL SENDA
" k" t7 M6 b" K5 R; ~N5:; f" J8 p1 h1 t. l% A8 J
CJNE A,#0AH,N6 ;置零键
1 V# O: W6 t: K MOV DPTR,#RTM
0 E2 z$ f3 u F4 J ACALL SENDA
] Y/ J+ M2 j2 pN6:7 \- f) ]' m5 u3 l/ x. \
CJNE A,#0CH,N7 ;定位到零键
4 o0 e4 ^/ ^* H" X2 b+ K' _ MOV DPTR,#LZA
" ^) A1 K: p3 j+ t. v ACALL SENDA6 o% U; n9 ]# ?* t+ `# j, {
N7:
& g7 y# e) S* T4 ` AJMP AA
4 g: |/ c* J* A% XSENDA:9 x# ?! e% ^2 q$ [7 p# z
CLR A
9 }: L3 X6 m$ W: s1 Z MOVC A,@A+DPTR
8 i3 E3 j: F" x8 ^0 u CJNE A,#'$',SENDB, @1 h) @3 E1 O! R7 B1 u: r
AJMP SENDC) U. g9 f# r X( J; c3 y/ ^
SENDB:2 ?6 v; Z: M7 N5 [0 u
MOV SBUF,A: l. L) C& p7 O
JNB TI,$/ t" |# f% j% P9 i
CLR TI* T; ?5 W' A0 k6 J/ c/ N1 Z
INC DPTR% J: R; i* `; V+ S8 f- ?% X
AJMP SENDA
$ A; K4 X) A4 c- l* oSENDC:
; {: ~# m; m; H _ RET: e# O" I/ a* g/ T" h) U
9 s" h: x, ?% lPLY: db "PLY ",0dh,0ah,'$'6 _8 X; ~! J A3 O3 e
STP: db "STP ",0dh,0ah,'$'& M z5 r: ? @$ k4 }( `% ?: ~
FWD: db "FWD ",0dh,0ah,'$'$ q% y- M3 J3 O4 Y8 ]# Z3 V' m
RWD: db "RWD ",0dh,0ah,'$'
# N5 ]( m4 c: J' A; LRTM: db "RTM ",0dh,0ah,'$'$ f; d) i* a3 G5 ~$ e. [4 J1 f' C
LZA: db "LZA ",0dh,0ah,'$') g* e: h6 E0 w. K8 R
REP: db "REP F ",0dh,0ah,'$'& B9 I8 i! p8 J) {
, W1 w4 r) q6 Y' r) c
YS1:1 k/ V7 Q7 Y; V( |
MOV R4,#20
: Q4 p' R9 i* qD1:
1 u; o' C9 } a8 [4 H# T1 ` MOV R5,#20
; i3 T+ y: D; p$ F DJNZ R5,$
, H) H4 n) I, M- ^ DJNZ R4,D1& _5 l( M/ B# C1 Q4 G3 O; W
RET
# j& ?8 _( f% f, E2 L! N: ^
: t- X( _) a6 A& XYS2:
$ \' E" X, ]0 h; g* B/ z$ _: t( v MOV R4,#10
" C, Q$ W4 X" |D2:$ u3 I6 {) x& u& m
MOV R5,#235
; E1 g( R& j% u ]: [ DJNZ R5,$& D7 V1 [$ E- n% p4 ?' U
DJNZ R4,D2
# Y9 w$ I0 N" Q; R3 G y RET _6 R1 p8 v E/ i1 }- Y/ M6 N
" t4 f% Z) C) B8 L1 w
YS3:. W. K7 S' A0 x' R
MOV R4,#2
+ v' s P) t8 Q! ~* U/ _( t7 mD3:- L# o. D, v! }* r/ R5 y% V: n- x0 O
MOV R5,#248- Q5 |; T. s, P6 {( g" O( {
DJNZ R5,$4 y& {! }9 N7 A2 g s5 ^/ q- y' c
DJNZ R4,D3* ?' M# Q( b% }9 A, |; t6 k
RET$ B& v' A. O v2 T
- l0 ?( v/ M" L, ]YS4:
1 u' i; M; D( t3 S8 h MOV R4,#200
3 X7 s( s: q* p7 O. b$ U% lD4:
* {7 j2 s" q4 h2 U H( ]; k3 z MOV R5,#248
" J7 C, R( F8 R DJNZ R5,$5 f+ H7 q4 v; H
DJNZ R4,D3
& h- s4 i) x& e5 ?& Q RET$ P- t- R& \8 _3 X; \0 V, ?
END
3 i. ?7 t4 i3 p0 B1 d
7 k& S7 o$ \, x% @5 k6 V* i有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。/ m7 v5 T* q& k$ q8 G
是不是很惬意,嗯!; c6 R* H4 J8 C* h
|