赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
2 j8 K$ }, Q- R# F& F. i
. W5 F, o& m4 Y8 G3 d, f! Q本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。$ T5 u5 T6 o- i4 E4 W; e# q! r0 @/ ?
* I. p# I6 q1 h+ m2 r6 z/ S
说明:* ~% `+ a0 o* P
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
- q, {# C- u+ q/ |% g' m- N2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;' ?. i) b2 f d- y8 k
4 `- b7 z% S8 j) \3 O+ { H
一、基本思路
7 E! M5 L9 K7 v3 o) d1 Z使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。, s6 N- z8 X# x U8 t. X
; X- T% [/ \! k+ k7 d/ v
二、红外遥控器2 \- Q/ j9 `8 y K
我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
% ]8 }1 q$ J |& y, }7 K" O
' Z2 m' G0 u5 U" M
好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
9 e0 J( M' A" C3 |5 l
! m" z. g: {8 W9 n" G在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
1 U( B/ H5 L: y& D) J
7 W# L; O. U3 R* \) ?8 l- |' Y0 e8 ] [
三、红外编码 f0 c+ n+ ]+ o; y2 T2 C& g, x
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。0 f- k; L8 U6 l, x
前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。
2 X" v1 j: y' |/ @后16位为控制码,主要用于实施具体的控制。
3 _& k. b! j$ ~3 j& T& G/ s4 a这16位中高8位和低8位互为反码,以提高可靠度。$ E X% x4 \6 V
6 |' ^, b9 b r* y' [0 q/ s) {
以播放为例,其编码如下:
) Y% q* V t7 ^00000000 00000000 01011100 00000000
/ f; u+ R, R" L, U7 |; u& k
8 S; C# S: u/ B9 c4 y/ U你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。7 d8 ?4 j* t& A; \
: L. C; O1 p8 v1 U* I* ~! {四、单片机系统 `' r" A7 Z9 z) }$ k
这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。8 [5 r8 W& B; j# O! D/ _
! ~6 v# G- g0 E. ^/ b
3 @8 h) E) m7 }! R. q/ S& D
电路很简单,功能如下:, `, d- y- N3 g' g$ V0 l( b
1、一个AT89S52单片机作为核心;3 e- d3 m2 }* U' ]; I, ?1 l
2、一个TL1838为红外接收头直接串行输出数据信号;3 J* J+ K6 g0 b; m
3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;; h2 A5 T+ i8 b. @
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。! ^) i' w& _# V- F' v) b
: c" a9 P0 K' k/ w$ p" y- ], m/ V8 Q关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。" \5 c- ?* D6 J
5 |: _/ ]9 ?& ~! o& X/ y% Y
7 I' x! v! z" P0 M* |9 w, u五、控制软件
% @4 ]" j1 v( W. A/ h! y* p6 x控制软件用汇编语言写,源程序如下:
6 B( P- k% m1 I2 n5 V ORG 00H
; Y4 p! f7 K6 U( @$ s LJMP MAIN h1 h4 P/ z" _+ a
ORG 30H
# J1 r& R. ^8 g) l, ~, lMAIN:
0 L6 k6 E- e$ p0 b; a1 R# m MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
0 W, @' U# |1 p MOV TMOD,#22H ;22H
7 z. t5 Z9 e+ Q; F" ]0 U, ^# s MOV SCON,#40H ;40H' m7 H! C# f3 s/ _
MOV TH1,#0FAH ;F3H7 B, e# Z9 M* N; {8 a
MOV PCON,#80H% V" j* m5 t" B
SETB TR1
) x9 _% B# [3 r0 O- Z" [8 iSTART:" e" D8 `: z8 t8 H
JB P3.7,$ ;遥控信号处理
9 _0 `% T! K9 t( x5 ]1 c* aSB:
/ \' |& t& @# r- a" b. A MOV R4,#8 r# T" H5 a, v1 f
SBA:
: [3 s! v$ h: \) H/ u; m% v MOV R5,#2501 I$ e, H3 y1 o& f0 S5 ^ B! e$ O
SBB:
[2 n) U7 g' h3 E# } JB P3.7,SXB1
1 u, q }3 K8 S DJNZ R5,SBB* w/ {8 t" `2 A2 @; N' W7 ^5 y
DJNZ R4,SBA
. z4 ~; E ]7 P6 q$ W" P MOV R4,#20 ^+ e0 X; f- U+ m$ o% A
JMP SBC
0 M. ^; N; T7 Y, sSXB1:' A- Y5 k: }- ?
MOV R5,#5. o+ }" j0 Z' O) a7 W
SXB2: ' v' r5 J3 o, {$ [ n6 ^. I% G
JNB P3.7,SBB
: }5 u: I; G; W q7 P, N+ t DJNZ R5,SXB26 t ?, A# R/ h1 n7 B; Y( k
JMP START
8 ~9 g# d3 [9 o! c% cSBC:
6 a. ^. e; A) @& @ MOV R5,#250
7 I' H8 v* }9 w- z% N: w' R, s& aSB1:
8 |9 V; q$ s+ ~+ o; s JB P3.7,SB2 + i% _* Q" X4 E, b. _" z" R
DJNZ R5,SB1 B1 N" _8 Z% ?! a8 W$ A) d, l) ]
DJNZ R4,SBC
8 d8 _3 i) l' ^ JMP START* \& i. A" t2 H
SB2:
' H3 Q, z* o- J8 U MOV R5,#5
6 @0 Z$ f( d' \5 C B7 iSB2_A:
9 ?% K: l8 e" w# v1 n$ K JNB P3.7,SB1. X. Z$ |" [6 t% N6 s
DJNZ R5,SB2_A# @; o. N5 t: ]# }7 U2 y+ C; b
MOV R4,#3! n1 i& @ D' ]' U7 L
SB2_1:
+ n- L8 T5 u! A4 ?, \: }9 }4 H3 j9 v. J MOV R5,#250. r* ?) i$ Y: f
SB3: ; v6 Q/ q5 {/ X
JNB P3.7,SXC
% ]( j) o) |8 o, l DJNZ R5,SB3
, D1 W( S( A7 g! Y DJNZ R4,SB2_1
( b3 e; p+ }: T3 q MOV R4,#2
% W3 z; q4 n: ~0 h JMP SB3_14 p! R& V8 |$ I1 M
SXC: $ ^: v5 T* f: E$ q k) C
MOV R5,#54 e6 R4 x( L6 f) D( P. d
SXC1:
% ^' {; R9 q) m* ^3 d- M JB P3.7,SB3
6 N$ C; E5 e) g9 N DJNZ R5,SXC1
! t0 r9 l# B( U' K! l' n. R JMP START
; P' `2 r! Q( {, K1 x' W6 r$ d* `SB3_1:
2 J |& m- N- G' F MOV R5,#250* x( H, p6 y3 a, _
SB3_2:
& Q& b3 @% {+ s0 ~. |5 x JNB P3.7,SB4
7 Y& x: [7 ?! E3 d DJNZ R5,SB3_2
, z& Q7 p7 U( h: n5 a1 n4 b2 b DJNZ R4,SB3_1, f8 F5 e/ f3 A; k9 e1 h y
JMP START! _( d+ ^, b: P {8 [+ x
SB4: 6 e5 g* D8 T; r1 p$ Z% l
MOV R5,#5
& T- N. K. z- u" R$ lSB4_1:
4 x! k2 M: Z5 y- j! ~7 v) ~7 ~2 G, R JB P3.7,SB3_2
+ Z3 z2 a, c9 }; M; K DJNZ R5,SB4_1
5 ^ {) |$ ]' H1 x: ]' p0 X6 k* W1 Q$ d MOV R1,#1AH
& _0 i8 b% ?1 C2 B* j3 T* A MOV R2,#4
* d/ G8 R/ {8 m2 J. |& b1 B8 cPP: MOV R3,#8$ @% l7 S* j. m; g
JJJJ: t3 K3 A0 m0 w0 G
MOV R5,#250
; o& u7 i t' O2 ?JJJJ2:
3 a) r. Q/ [! s JB P3.7,JJJJ31 j, [# W0 p I2 X1 v U
DJNZ R5,JJJJ2
" }5 S3 r/ A: R$ c; k5 U JMP START
$ ^! q1 d6 M: Y; W) }5 ?# [8 BJJJJ3:* a# r5 Y$ a' u# N, x- L( f& o
LCALL YS1
3 V8 T# z7 P% J$ D1 T6 X( C# p) P$ P: j MOV C,P3.7
7 [) A8 ?) {, F0 k( _$ W+ C& r JNC UUU
8 m. x8 g- N' h4 w MOV R5,#250/ L2 U! L/ h, {0 }) p& n( \$ E
JJJJ4:6 i$ j" S) K( F) c, d
JNB P3.7,UUU
4 X8 m6 Q& m# ~. C% ]( i. ^# y NOP
! U, G/ A L) q9 z DJNZ R5,JJJJ4; m& Z; e/ O+ m6 X4 }
JMP START+ m+ N7 {9 B3 R: i
UUU: MOV A,@R1
* n+ G& p" b" t+ E+ t X RRC A
) b& ^" t L: ]2 Y) E( n MOV @R1,A
" n( h4 t' i9 ]% ~( d+ E9 v* v DJNZ R3,JJJJ 8 P; x8 }+ N% q) L% a5 m0 n6 H
INC R1 ' V7 A& c( H: l" ^/ x
DJNZ R2,PP
; v9 y) I: B7 b6 O2 R! K9 I) d3 Z5 Z. |+ g6 ]
MOV A,1AH
( z4 K7 A8 u0 V; _- ] XRL A,#11101110B
0 J4 r) Z0 A2 s! `! _5 a JNZ EXIT " M9 q% a' r$ g/ G P5 m. P
MOV A,1BH : S' E, c! l$ [8 V2 E+ s4 ~) N
XRL A,#10000111B
& X+ F0 s+ g5 |! _ JNZ EXIT
/ [. [- M9 x# \' Q9 I" ] LCALL YS3
- U0 f; _" P2 t/ l' y' d9 J MOV A,1DH ' d, B* w- e$ P5 Z. O
CJNE A,#10111100B,EXIT
* Q2 a5 h' ]4 v LCALL YS3
5 V- V& \. }0 _ CLR P2.6
6 o' j) W9 f q# p0 s AJMP BIJIAO, j7 k8 x' d; Q8 b2 r# n& h
: Q9 X6 Y! _: n2 E$ t
AA: % E* M0 X; N( h3 A! ]; m) @8 i3 A
MOV R1,#25: V* b% n) X7 G) ^# d/ b
XX:
) n+ m9 n- g+ k" H8 o8 ~8 k ACALL YS2
) Y* S2 Y. c+ t) A JNB P3.7,HH
3 H. K P3 }: K DJNZ R1,XX( m$ u9 }5 \3 a( y. ]# y# A
EXIT: # b( G# |; B) o; x% K
AJMP START( z J+ D2 [! U3 ~
$ [9 K" ?9 l( A, R r- {HH:3 p! V2 s# h- t# D3 b4 G
MOV R6,#4
7 J* }' n) T5 i+ |, x9 ~S: , C, y; Z2 r# g) P
ACALL YS1 $ } B8 ?. Y$ i7 T# |
JB P3.7,EXIT . I3 l7 @4 T) y; J( o8 E9 Z
DJNZ R6, S 0 c! t/ d! I( l; D3 S/ o. C# ~7 m
JNB P3.7, $ 3 h+ e8 m* q) ~/ l$ o0 l, t' S) L
LCALL YS3
4 W: A+ A* E/ t( Z AJMP AA
3 U# |$ N* d3 R# @BIJIAO:- m1 ]! Y+ `/ H% A+ c9 c
MOV A,1CH
8 ^6 C' y$ X" G7 @: Y ]8 V, G CJNE A,#03H,N1 ( y! q8 u8 p, b9 f' ]7 R
MOV P0,#7EH + y6 D/ l9 ~6 ?) T9 [/ e3 S. Q( i
. L0 T; {$ d% {- G- {% N" c4 w3 J$ X ;处理STUDERV录音机控制码3 \3 r0 u6 m1 B4 U' G- T* d/ d X
N1:
; h: C$ z, X/ H) [ CJNE A,#5FH,N2 ;播放键- w0 C8 T' s) D" ~2 l6 F
MOV DPTR,#REP7 b; y" w' Z4 w! ?% T! z$ I3 S6 L
ACALL SENDA
; w+ J& i& t$ y9 ] ACALL YS4, ]* `- k: s1 T+ f0 i
MOV DPTR,#PLY
& v( M# z/ z1 r* F \/ @ ACALL SENDA( c7 R* h0 w$ w* Q3 f0 K% G9 K* B
N2:
' C8 _6 P* I6 F9 ]' h CJNE A,#5CH,N3 ;停止键
# `) k" [$ B2 Z3 B' Q V* ` MOV DPTR,#STP
, d& [# i0 {: R& ?) o4 F3 j ACALL SENDA! s* s) ]+ U! ?
N3:
* r1 K( n$ r4 G, J* Y3 a CJNE A,#06H,N4 ;快进键
8 Y3 c# m3 D+ @5 W MOV DPTR,#FWD
# ^* `& Q2 @. y" \& g# d E$ _% z1 P ACALL SENDA/ `; X4 y* ^! f
N4:
5 f0 J4 {/ X0 I: C CJNE A,#09H,N5 ;快倒键# R1 u. ] h! m) \2 V
MOV DPTR,#RWD" B1 z2 _, I1 b
ACALL SENDA* p" [7 t+ L) ~ T' h6 Z. i
N5:' T: S: j% _% H' x- Q8 b7 T
CJNE A,#0AH,N6 ;置零键' R% {, ^, ~+ d. y( ?) f3 w
MOV DPTR,#RTM+ F4 R8 U/ ~" q
ACALL SENDA1 k D# o& F( o5 n& ^
N6:
( K$ L' b% c- _% a; q CJNE A,#0CH,N7 ;定位到零键
3 x; {+ d3 Q' \3 G. [6 e MOV DPTR,#LZA; o9 N2 b4 v' P
ACALL SENDA
: I! |6 r" v, z8 V9 C3 kN7:# h0 Z. N" U6 k+ G
AJMP AA. M% m+ `* s, p8 S) j0 M1 @# |# ~
SENDA:
: j$ Q+ f0 w6 i8 u. X CLR A% k5 s V8 ?' z6 {% Y8 V! N
MOVC A,@A+DPTR7 X6 B0 u4 P6 A! F
CJNE A,#'$',SENDB" Z( v( w# E6 F" ~! z: z8 \
AJMP SENDC9 M: U- S+ o: \4 d3 v+ \( s
SENDB:
; F8 b8 m9 n; q. } MOV SBUF,A
1 h) J: W2 [6 V J; f* H& t) n JNB TI,$
0 C6 q4 D0 s5 v) H2 b+ _ CLR TI4 M; j( Q- g# E! O# g# h: }! E( _
INC DPTR
9 r8 D; C2 {$ A8 _ AJMP SENDA9 t5 j6 L# B5 r j6 ?) `
SENDC:: b" B" W* G+ Y, D
RET( U, M" r! v" u7 {3 M
4 L R* t0 J2 V3 E+ w& u, R
PLY: db "PLY ",0dh,0ah,'$'
4 \& _- n* l- b- c7 c# T o/ r' DSTP: db "STP ",0dh,0ah,'$'+ }9 |# E0 W) n6 e
FWD: db "FWD ",0dh,0ah,'$'
4 C/ n$ Y, S: T0 ]RWD: db "RWD ",0dh,0ah,'$', }& S' y: B; [" t1 z
RTM: db "RTM ",0dh,0ah,'$'
$ x e) ?7 p/ e+ ^/ ZLZA: db "LZA ",0dh,0ah,'$'
; r1 H4 V; d. {+ l( R: Z# D1 BREP: db "REP F ",0dh,0ah,'$'2 g1 C b) g8 e# X1 y* S, G
2 T/ v: }( I; D! i% u+ V/ f3 k
YS1:
! T$ S2 t% w0 N' m MOV R4,#20
% z- |2 c7 w) p0 HD1:0 q. a& J- u2 `4 y/ L
MOV R5,#207 s8 J- Y6 h8 i6 Q) q" [
DJNZ R5,$
8 i, ?6 X) l4 y/ t DJNZ R4,D1, X9 f# s2 I Z) }6 ^
RET+ V& h, \ f4 |2 f9 W
8 t7 u. z- W" R- T* j7 N% o3 E
YS2:3 R8 I5 P: M6 t2 P8 N
MOV R4,#102 h( c5 v7 \" @9 l
D2:/ v% T3 q/ Z4 U/ m/ t i J
MOV R5,#235; b) S9 |2 a4 Y+ W0 v; b4 I: m
DJNZ R5,$
& ^$ w8 m; C1 `1 x, ]% F DJNZ R4,D2
+ R6 i9 G) Y6 K RET4 o# E) k( Q" |3 a" l5 W8 [8 l
1 X- K/ f' M1 i) t- n* a
YS3:
) \- T# `) T7 |& b MOV R4,#2
; w! w3 j# c9 b |& q$ MD3:+ H2 E/ }" l" F! o& y
MOV R5,#248& ^, t' @) Q3 \$ e9 w8 ?
DJNZ R5,$
, ?* x4 A# g9 |* D4 L4 X7 Y DJNZ R4,D30 _, D0 e5 f/ i0 S5 ]/ u+ M
RET" i8 K! l2 n8 I3 `" W! B
! o) V6 {2 s$ h1 `: J$ R
YS4:
/ X2 ?! n- f, X$ E f% J: d MOV R4,#2000 e8 n# I' u/ T$ K' I
D4:& m- N, z! D! _5 ] K8 n
MOV R5,#248( F8 }3 T; j4 U& L4 {
DJNZ R5,$
- f$ c4 g% f& Q7 |8 ^; X DJNZ R4,D30 D' Z6 W. \- r2 c: J+ \. {& N) x
RET
, g5 Y- d5 Z: D& p+ b4 h- C END
9 c) X) z& G9 d* N& |+ N! L
$ \$ ]' c; i! C& D有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。
: r: Q* e' r9 E是不是很惬意,嗯!( ^; h. k% _$ s9 Q+ a
|