赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
, f( c, Q4 }, b2 h" C9 f2 W0 ?
: A( e) k+ m' }/ B" i2 V, O; B: h本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。! `3 @$ r* c, @1 o" B: S( o
; y6 o9 `7 g% n& f9 y, g
说明:. Y0 R! E" [ @- M
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
) Q# X8 r- i8 Q) X2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
$ g0 h1 x3 }7 E- N) g' ]; v3 p8 w R6 k& P n' \: w
一、基本思路
( V8 G) z6 d- d/ S使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
: E' l8 {* |( d$ c( |# N M3 J- D9 `: M7 I0 s
二、红外遥控器
/ t# o% }' |3 |/ f我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
% _. |2 Y. } t- g
" V h2 v8 Y& h( t& A" j好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
3 m9 [ b: F" K; r. C
2 j" X0 f7 F$ S6 Q
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下: _( B2 [1 {3 {* A" P
" z' @/ V+ |, C' v0 J+ F0 f
8 T4 m( K& L7 } p
三、红外编码
5 }% `3 x- \2 ]6 k- S x7 d红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
: I+ ]% m( n' m4 s& F D前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。) F; x/ S! M T
后16位为控制码,主要用于实施具体的控制。. y V& t5 i8 ]7 s7 v9 V7 i
这16位中高8位和低8位互为反码,以提高可靠度。
/ y3 E x1 D( B9 p) x" E4 E3 d" W, w8 a; e: }- ]% a3 Z9 b( w
以播放为例,其编码如下:
, D6 ~! c0 V/ R$ Y00000000 00000000 01011100 00000000
$ o, z8 g( F8 _# A1 I q
}% x! k. i9 c你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。" @8 G4 L: `! o- e+ Y
- w* P3 y2 S; }' `6 H四、单片机系统
" M/ H0 h) b2 U. w5 m2 q这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。) a0 o/ g1 q) g* z. y4 @7 a
/ y# d9 s4 [0 r+ q) I1 l
# b" ~) B: x; q
电路很简单,功能如下:
$ [1 t: K, `9 `8 j _1、一个AT89S52单片机作为核心;# q ]- U- y) Q& j* p$ O# Q
2、一个TL1838为红外接收头直接串行输出数据信号;
$ _6 X7 }$ y' r3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;
1 @% |- K% z" }; a G# G4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。. |+ C! ^" ]5 q! ]7 ~
' y" F# l1 a+ s, @" }, b* G关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
& D2 A6 }! ^4 N
/ e; W7 H( j! c# O5 ^& T% B( z, b6 p" h8 l- I, O3 P
五、控制软件
$ I3 @* D! R1 e) K7 i控制软件用汇编语言写,源程序如下:
+ O' P4 b4 G. Y ORG 00H
+ U2 H; q6 ?/ g/ C( ] LJMP MAIN1 M' R6 {0 R+ m* F* f
ORG 30H
. C g H1 J8 C' tMAIN:1 k8 P, e7 ~6 Q" Q0 N
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
6 a" \/ x+ c2 d5 t MOV TMOD,#22H ;22H
X$ I% q8 g: P$ R& U MOV SCON,#40H ;40H/ Y; p# C ]9 e7 e) ~1 P
MOV TH1,#0FAH ;F3H) c ~$ ]% g, V
MOV PCON,#80H9 B- ^ g( k7 i6 A0 m, F' K
SETB TR1* h, T# d* T5 R' O5 D9 }" r7 ?
START:: p+ n& v9 Y; s2 ` ?5 T2 i' L
JB P3.7,$ ;遥控信号处理
* O% o% g7 b' a& p9 Z, e2 k2 J- W& CSB:6 K J$ ^/ v: p( P$ a8 ?
MOV R4,#8
7 G z6 S; o, s6 x1 SSBA:
% N6 w7 r* t; @, b( ~4 ` MOV R5,#250' D" d. Y5 l; l9 _$ s- \, |/ B# s
SBB:# ]% ~( G- \% }+ `3 d) F
JB P3.7,SXB1
* n& J1 @ x/ S v1 t DJNZ R5,SBB% E$ }, g% d2 h- q9 X5 ^
DJNZ R4,SBA6 z! d& ~" U2 R' F( Z1 Z
MOV R4,#2
: w( q D( {9 ~6 s# X JMP SBC- Y7 P- X& l3 A0 s; ~2 ]
SXB1:4 Z$ c2 N% m1 H- I0 D$ [
MOV R5,#5; X+ d$ X- n8 E3 T, x
SXB2: 8 S; d/ |/ V: G8 R. P8 _
JNB P3.7,SBB
+ [0 w5 a I# Z, }9 w. N2 _ DJNZ R5,SXB2
b6 C8 o: D5 i( U. d JMP START2 v% H# _: G2 r/ M. a" g
SBC:/ k2 } \* P( T+ n; z$ z, L
MOV R5,#2503 @# F- I/ u' C5 x! V! ~
SB1:; F; K6 Z d |! o7 `, P, T
JB P3.7,SB2
. y5 |: h2 A! y1 N5 O$ b DJNZ R5,SB1
! y {0 }) h- t2 p3 a" c* r DJNZ R4,SBC! y- f) l' {, | t0 j: M- C
JMP START" j. M4 P& v ~
SB2: * J- S7 i6 k8 P5 \& N7 r
MOV R5,#5
# Q/ V0 k2 J; z, |% T) r) H) k0 f$ iSB2_A:. ?) a( }) {' @" E! \6 ^
JNB P3.7,SB1( R8 ~# u3 c" R7 ~4 j1 g( [
DJNZ R5,SB2_A
1 B: L, V5 n, J9 D MOV R4,#3
( t: D1 n9 f2 hSB2_1:
1 f. l: ~/ O* z; c- L0 R2 a9 c MOV R5,#250
* T: l. \7 p, B j/ Q1 ~SB3:
7 ?5 k" s3 Z2 t JNB P3.7,SXC
9 e) d [9 w* Z; R. ] DJNZ R5,SB39 G9 Q9 @$ _9 h
DJNZ R4,SB2_11 C: I9 g! R+ Y' B( v8 a
MOV R4,#2
4 }; d/ S( L( d1 c9 a JMP SB3_10 v$ P( K* ]( B5 D6 m
SXC: - j/ Y: h; F P
MOV R5,#59 a0 {5 d4 q; F
SXC1:7 L" I4 R& I7 }% [' I' `
JB P3.7,SB3
* }# v; _+ E \' E3 ^ P# Y" h) n DJNZ R5,SXC11 @5 N" Y- `2 t' s$ I
JMP START4 l) q- y- @* ~* o8 ~, m
SB3_1:
( ]' d4 ?9 H9 C. K, D MOV R5,#250
& q) Z$ n+ s* x- cSB3_2:6 F7 x5 F0 \* N( C( f: ^
JNB P3.7,SB4
" `7 h9 B, \/ s. T" B2 u DJNZ R5,SB3_2
6 [" x3 v! L; _4 q9 G/ k$ d DJNZ R4,SB3_1% g. ]" p1 L. o$ ~* r/ h# A. W
JMP START1 O; |) y8 o2 v% i/ i0 z$ s1 c, {8 T
SB4: " {! c' D! p v9 f' C
MOV R5,#5
8 h1 `- V) H+ x r. ISB4_1:4 G/ G# i: i3 a& F* Q4 Y0 R3 q' A
JB P3.7,SB3_2
3 q" R: b$ w2 q DJNZ R5,SB4_18 G4 V# T) ]5 B" o6 {
MOV R1,#1AH
% q1 I( X4 j- e9 T8 _- P MOV R2,#4, q8 v6 f8 L/ N2 k0 u m
PP: MOV R3,#8
8 N% k5 V$ {5 ]JJJJ:+ {- Z+ d6 s/ I
MOV R5,#250
- ^& q# f8 h- B5 b+ s) N" N( R- ~JJJJ2:
+ Y# e( B# m: \ Z% a$ {( I JB P3.7,JJJJ3
8 V9 r p; I$ b( L DJNZ R5,JJJJ22 p0 c( z" {$ K; c: W
JMP START
, ^! y8 i+ H, CJJJJ3:
5 F/ h! g: \; L$ [7 c ] LCALL YS1
5 P% D3 t( _, A" y" B/ V MOV C,P3.7
" k; n( w' [" f! M. G9 h' x1 I7 N JNC UUU + S' i4 q( ~1 R
MOV R5,#250( O5 x& }3 a. O9 u; a/ Q- s
JJJJ4:
2 \! a) {. c4 U+ F: d% b JNB P3.7,UUU2 K3 c; o3 D5 {/ |: T
NOP
j3 F" P9 ]3 X% o4 Y( O' w DJNZ R5,JJJJ4
# Y; `5 O# V: K$ \3 r JMP START
& ~3 `7 H' Q i+ _UUU: MOV A,@R1 x4 Q/ {3 k! ^# G" p4 z, d- H
RRC A
8 {$ \" b4 [2 \- M' v MOV @R1,A
7 k3 s% g7 m: {& L" A DJNZ R3,JJJJ 0 x" _6 h5 B1 O! J5 ~& M4 W
INC R1
7 D: E% o+ v8 U8 @" R# D! C DJNZ R2,PP
. B3 }* s- S- y/ b) X8 x
' i, F- d; T& }: L* Z3 E MOV A,1AH 8 R# n5 n* a4 v* e
XRL A,#11101110B
# G6 `8 s" B- Q$ f JNZ EXIT 9 y$ P( W% x' R6 F) F' g
MOV A,1BH
7 j7 _3 J$ m; e2 X6 x( d" a* k XRL A,#10000111B
3 h8 t h" K- m* k JNZ EXIT + W P3 u( Q' f% b& W
LCALL YS3+ j( [& l, |2 @, }/ E v* x f
MOV A,1DH , P) w) |# P+ E% x8 a* Z* q! O% [( @
CJNE A,#10111100B,EXIT
+ n, d$ h1 F6 ~: M! ^% n$ O3 a LCALL YS3
l2 q- I. L" F5 w8 }9 p" z CLR P2.6 ) z3 r Y( T" D" x6 P7 N
AJMP BIJIAO
3 _# N- X" H9 C. r
# I$ S, M/ {2 w; ~0 d3 z% ?AA: + q# q( n( a3 C- T/ q% v( r
MOV R1,#25
+ X; p. L/ w. B" cXX:
) ?% Y% s- ?+ R* z ACALL YS2) }, c3 H6 J4 x: D5 k
JNB P3.7,HH $ W0 I Z: Z5 o8 a
DJNZ R1,XX: j. M& i: `2 f' _5 P* |9 V
EXIT:
# i( l4 ~, e( {0 x- G AJMP START
8 p2 k; h' W- f' w 8 W/ Q+ X3 W4 v/ b _
HH:$ }% W1 O9 ^7 X6 r. x
MOV R6,#4
5 I8 k) d6 Z) Z9 VS:
- ]; ?3 L. [3 V" Q, D3 G% I+ W ACALL YS1 % g1 ~% I/ f* E9 O
JB P3.7,EXIT . _& Q* z2 f0 U/ [' I( g
DJNZ R6, S
1 S* e+ |3 I8 r- w% f JNB P3.7, $ + P h, c# X& p6 J. y7 h
LCALL YS3
1 D# \* _/ @: U' o+ U9 N7 \! } AJMP AA
K( J8 Z) a- }1 n! F; _1 }BIJIAO:& v6 X" C0 v6 f$ o& J( L! _
MOV A,1CH
/ v" s' i2 ?1 L CJNE A,#03H,N1
% `, U% S6 Y0 R& H+ A3 ^9 w/ w7 c) { MOV P0,#7EH 8 e( B' l- ~8 w4 M8 O" C$ t2 }
, w+ B# D9 h9 p; A5 l6 V
;处理STUDERV录音机控制码9 w# |/ d0 c" i) ]
N1: 2 v" j/ Q" Y/ E7 I
CJNE A,#5FH,N2 ;播放键
2 S/ C2 r/ j6 M. C6 Q MOV DPTR,#REP! L1 `5 ~% ~" Z4 t! _, w9 [
ACALL SENDA$ N$ ~6 U9 N. a8 Y- P
ACALL YS4
0 H& L" m5 W" E4 ~2 b/ ^% w MOV DPTR,#PLY
# N. K$ R/ P( [3 b ACALL SENDA
, K J$ }( j8 qN2:
) T0 f! u: N& [; `, C+ M CJNE A,#5CH,N3 ;停止键
. i$ U! k, G% m MOV DPTR,#STP7 b; B# L' t* N$ S
ACALL SENDA
* ^/ n) B5 S! b+ V n; qN3:% h# f! o: P/ V7 F" O/ ~
CJNE A,#06H,N4 ;快进键
1 }/ O- O r3 N MOV DPTR,#FWD# N- B+ v9 U$ X+ K
ACALL SENDA8 s* }0 Y0 F8 y+ l9 {' m w
N4:' H6 a# w3 F) D% s) z. O; G- E2 f
CJNE A,#09H,N5 ;快倒键7 h+ f( S$ f' Y3 x* ?7 F6 E5 G
MOV DPTR,#RWD
2 h- C0 K( H: v ACALL SENDA. m9 ~, Z6 A0 G- N
N5:' s3 P( p9 ~; y3 T
CJNE A,#0AH,N6 ;置零键* k. V. T% x1 X4 d! V% y' `
MOV DPTR,#RTM" \2 L! p; D$ |4 r5 L* d% \ S
ACALL SENDA6 d% b/ B9 @- H/ B8 X7 D: N
N6:
7 _* A7 W( X* J+ u/ M CJNE A,#0CH,N7 ;定位到零键
% ~) u% G( I' @3 e6 {1 B! X% t D MOV DPTR,#LZA
4 s" X9 n3 m/ G2 R" z. x2 c ACALL SENDA
" k' t- v$ p& k7 N- B8 u& _N7:8 y2 v4 W1 E: U- s. \2 s
AJMP AA
8 `: t+ l- f' H0 ]SENDA:% ^2 d# l* ~5 l- _
CLR A6 w# y8 v3 j% t( G4 R, J
MOVC A,@A+DPTR1 q" w: m& L" b: s5 G& q
CJNE A,#'$',SENDB3 \+ `0 j7 v7 }) N% I% `
AJMP SENDC# u6 ` `! M5 P# [7 b# o3 V S! y
SENDB:
/ k; u# p. ~' a% P1 t Y8 [9 Q MOV SBUF,A5 w0 k" b0 E/ `1 b
JNB TI,$$ i& N+ G7 x) ?
CLR TI8 @5 {; n/ n- J$ P' }
INC DPTR+ U$ `. K! k2 d. c0 q6 l
AJMP SENDA% R$ z7 ]% b8 [, D" f9 P6 s `+ V) H
SENDC:
4 ~' F5 ~/ I9 r% W, d RET
+ F* k6 e& W0 T) o# V; [4 ~
, i) G2 d" v5 X! A5 J5 ]/ IPLY: db "PLY ",0dh,0ah,'$'
3 ~$ p* S8 ]! E* r; fSTP: db "STP ",0dh,0ah,'$'
' [0 p! N2 p5 V: I3 g( w9 hFWD: db "FWD ",0dh,0ah,'$'
, a* w2 @3 |" |. m' B/ dRWD: db "RWD ",0dh,0ah,'$'7 c" D6 S3 ]1 [# B% y& c5 e+ R7 z
RTM: db "RTM ",0dh,0ah,'$'
2 w, q5 V" B: p1 z7 K! I- Z6 ]9 HLZA: db "LZA ",0dh,0ah,'$'
- p2 F" h9 b# J5 e* ~) qREP: db "REP F ",0dh,0ah,'$'
$ L. E G, a9 h; g* j8 m6 X9 e+ l. z- ?% m+ [
YS1:/ I) S! w: I4 r4 a, x
MOV R4,#20
+ m1 W. H( L/ T0 [6 d- |D1:
& `$ J; G- K- {3 `9 F MOV R5,#20
6 ` q7 p S8 O" ^: k9 e DJNZ R5,$
3 p7 Y. |- N: H8 j. L) {: m DJNZ R4,D15 v7 b( f0 D$ C; {* r E7 S) O
RET
. `& }2 W7 _8 S! m# t/ p# F
8 w' `5 ]9 a5 D) s0 s7 j2 UYS2:
& p* I3 U/ s* ]5 b; _6 T MOV R4,#10( k3 {9 ]3 S& r" {, ~5 m+ m; c) Z& l0 d
D2:
# g0 \: J/ O3 T3 ]# H/ t MOV R5,#235( C# X: _7 a/ P" I4 X
DJNZ R5,$+ Y1 C2 e1 l3 C; ^- ~7 r
DJNZ R4,D2, e' k+ N6 ~4 k* b P( u& @* l' O
RET2 h4 X1 @$ n# _* m- e3 g! |) U' W
: N- p+ i: S& H6 R! `. h- NYS3:
& u( V3 u. ~) ^8 A: @' [ MOV R4,#2! K0 O# y, @6 P
D3:
- [4 {# k5 [/ d Y. N6 H( u MOV R5,#248
$ V# X: H/ o% C DJNZ R5,$9 j+ U/ m$ Y2 |% ^+ }* R- |
DJNZ R4,D3
- ^/ K& ?2 M& ?) ^0 G RET% T; s! C" H0 z
6 I* \0 i+ n; Q) @1 A
YS4:; Z; |& x9 E; o8 l
MOV R4,#200
1 Y# Z( `9 V, I) F6 i! KD4:
( q& U* F: [1 _/ x% z( p$ ?. @ MOV R5,#248
. I; O8 j3 z, l9 |' q: h DJNZ R5,$
9 p0 N4 `' N8 ^: G DJNZ R4,D35 o! T0 W. Z( E6 z6 B
RET8 N6 K0 \" |5 K
END& _* d$ r; a! ^8 E
, Q1 a# j+ b4 m, u& D
有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。( {9 m7 y2 x8 S" x7 ~
是不是很惬意,嗯!) [1 o) }) Q, s* N$ T4 p' e! T9 V
|