赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
7 k+ C+ I% N' M% n$ h
1 Y( w% p# t* w: E本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。
5 `( Z( e0 J' P( d! U5 Y# m5 k& M) g9 p
说明:1 F. u7 z5 @% h' h4 _
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
" E) K0 X" s0 @- g: u2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
' Y0 S7 W, T9 A8 N' w
2 `) L6 N) _: w7 S一、基本思路
5 k9 n: v4 z: m5 P6 T9 \3 i0 t使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。9 v5 M: ^7 \% W- E8 k
8 h6 X7 D h, h二、红外遥控器
# B) _1 `! W$ ?8 n& x2 L' r: k6 R0 y我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。6 x% @6 B( q9 y! t
1 J3 I. `+ G# [- A
好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。# N$ Z9 {; P: w" V2 a; ?5 ^# O
7 o6 \# ~: Y, ^' w" c: F在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
8 g6 b. O3 }. J; v# s
( T, r9 V8 J% X9 ^( `4 ^( z. `/ i1 m1 n9 e4 a- F
三、红外编码
. ]1 C) z) Z' c- \. c& G红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
& p6 H# l' w' A. s+ g前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。5 ^4 j" g: [2 b5 X/ p( j: N
后16位为控制码,主要用于实施具体的控制。5 c" H" y' R" P3 f& f+ x P6 D
这16位中高8位和低8位互为反码,以提高可靠度。/ T- N. o: @7 i
3 c+ e$ p7 C. f! ?
以播放为例,其编码如下:# `; S9 S$ x/ B% y
00000000 00000000 01011100 00000000
9 t/ `0 h' X" ?! W3 g: z
% o L9 ~1 T0 d6 h; _你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。
* K; r, o4 C3 E$ n
4 | P5 ]. n& T) C$ @四、单片机系统
! ~! X% W l- a8 w这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。1 U- o# h6 e$ ?5 E1 J
9 _' D0 }6 \& c+ ?
$ V3 ~1 l1 k1 Y# O& D+ u" t2 }- Z* P$ s电路很简单,功能如下:5 m% L. z6 v' }5 R7 d
1、一个AT89S52单片机作为核心;: H% F( H( I. a7 I. Y4 d) C) f
2、一个TL1838为红外接收头直接串行输出数据信号;! \% K4 y, F% x. ]
3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;
3 ^6 T8 H8 j! t3 O; i3 c4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。
/ s6 ~* P/ d: k' n- B
5 d1 o+ p3 B4 `) S! C4 e4 u关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。6 @7 [' c C. u2 G ^
& p9 u' H' @/ X* H* f; B2 T
6 [' s% m5 l. J1 @5 J# [3 e/ ]1 b五、控制软件
/ G& `% R: q5 T+ ~( K* B/ p控制软件用汇编语言写,源程序如下:/ X5 ^4 T3 ~ { C- s
ORG 00H
' z$ v; X |: Z1 d( I* V7 b LJMP MAIN
4 f. Q" Y& s( I9 h5 |: C ORG 30H9 N1 ~* l$ q) B5 `( }
MAIN:7 p0 _; R; k: _+ y d/ W2 m6 W- j
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
" ]% i2 F) [) T7 Z0 [( h1 h6 e4 W MOV TMOD,#22H ;22H
% v% M; k b+ u MOV SCON,#40H ;40H' u0 e3 z+ F2 \0 U+ R/ o6 Q' b
MOV TH1,#0FAH ;F3H6 x+ `- D( a: G- e
MOV PCON,#80H' o6 h1 c1 g: q. E
SETB TR10 [7 J* ?1 ?0 R4 `, f; V
START:' H" C% ^, T9 L; x) _
JB P3.7,$ ;遥控信号处理
# k) s" ?0 h: R y* j5 n" VSB:' n, {8 g( a) H- N& t- k
MOV R4,#8
* I2 N1 _4 W5 Q" s& jSBA:
i$ Q7 d0 p) q* W' Q! V MOV R5,#250( i9 G- L9 J% o8 R" [, C
SBB:2 {1 M* j2 w: ~, F3 y0 h7 V3 y
JB P3.7,SXB1; { O7 b6 j5 P" Q+ h
DJNZ R5,SBB
* g H* C/ r" Z1 G DJNZ R4,SBA9 q& Z1 @& r' U" h$ W
MOV R4,#2
1 N& C; P' g: W0 V) J9 r* f JMP SBC/ F0 @! A$ T9 f( w6 J
SXB1:
3 M0 X7 M% v' _, Q; X5 E, n MOV R5,#5
5 p; b* _ }6 ?SXB2:
) g* X/ [+ e, Z6 t8 ~! F JNB P3.7,SBB& n- S6 z1 ~7 D9 R
DJNZ R5,SXB2
4 z% m( ]8 U1 ^ s- g JMP START+ D$ E8 c2 N7 H) r
SBC: P0 J: k' n8 @* O5 H
MOV R5,#250" x" Y5 l* O+ f: i7 T
SB1:. y( b: J. A x
JB P3.7,SB2 0 M8 G! |# J2 B$ d, d9 l5 [# V
DJNZ R5,SB1
4 {; m L# F* f* J+ `' J" e DJNZ R4,SBC7 U# [3 K9 m1 s5 D
JMP START' }3 J7 O+ D* h) z
SB2:
, Z$ S& G6 S( j3 R MOV R5,#5# y1 X8 \) {. w3 ], z
SB2_A:+ M8 Z, U+ o* \
JNB P3.7,SB1
1 H& n0 v5 F1 r" C* [* V DJNZ R5,SB2_A+ J: g! J. Y! F. A
MOV R4,#3
9 K+ \, [8 X4 G# P+ XSB2_1: o# Q' ]4 C8 P. S
MOV R5,#250
0 Y/ F& G0 R }8 d* @SB3: 8 \$ y6 R# i7 m' s z6 E
JNB P3.7,SXC
$ J9 j, t2 ~! a DJNZ R5,SB38 ?3 T, j5 |9 ?0 z4 M$ s
DJNZ R4,SB2_14 {9 i. l5 X" Y& c7 J8 j# w/ |
MOV R4,#23 r/ u" J) { |
JMP SB3_1
6 S. B7 l4 V6 \7 @6 ]SXC: 0 M; @" {8 r) T
MOV R5,#5
0 L+ F2 j9 d: k; C( ?1 e6 c. Z9 `SXC1:6 Q% z; D: e' Q! i; \$ }" {, F
JB P3.7,SB3
' `3 j. l! u% ?% g# P DJNZ R5,SXC1
* e8 a* ~+ C3 O JMP START1 i4 V5 ]( i+ I1 d. i
SB3_1:
" M0 w% C5 y2 [) v MOV R5,#250
3 i+ F. u4 K, C6 N7 T" mSB3_2:
! d/ X9 P5 i& Z7 _ JNB P3.7,SB42 @2 H5 B* e+ v5 d( z
DJNZ R5,SB3_2
1 X9 ^6 m4 r0 m* {! i8 G DJNZ R4,SB3_1
1 m6 d+ U5 m1 [: E6 W JMP START
; h3 p7 B" _! v/ H2 h |4 VSB4:
# \! ?% }: g- [+ ?" J# _ MOV R5,#5. P5 j1 A% z- s. {
SB4_1:3 h$ \& W( {- v
JB P3.7,SB3_2& x2 G5 ~: ?4 E" b! C+ |+ Z g; }
DJNZ R5,SB4_1
) g$ U( a. g, b9 Y- I/ i# g MOV R1,#1AH . ^4 K9 h9 x. o3 e% h
MOV R2,#46 w3 a3 N$ u! [0 I0 M8 M/ j/ t
PP: MOV R3,#8( H' [" k% G2 k5 j0 ?- K( F
JJJJ:
+ r0 ]% [& I+ _/ t e, Y4 { MOV R5,#250: S' |" P' S% q; o5 I1 {( a) C
JJJJ2:
9 W. b5 J# F9 z; n, Z/ z JB P3.7,JJJJ3
0 S, ~# K8 _5 u7 A, j- n7 @ Q DJNZ R5,JJJJ2. `7 F0 W- d( _3 e& u3 `
JMP START
+ A1 t3 c: h; |# `- V6 WJJJJ3:9 ^. w% [5 K# p( S0 s4 B: L: J
LCALL YS1 W8 p: j. n7 U
MOV C,P3.7
! g" `: m! P% M JNC UUU
0 ?# d2 j1 F7 z5 M* f: a MOV R5,#250
2 P; ^4 v3 C: P' p4 i# zJJJJ4:
7 O8 X/ U8 s" c# B8 F9 X2 w9 A% P JNB P3.7,UUU5 D# @ r) ]8 v$ X
NOP, }; d, {/ h9 f4 Q" |
DJNZ R5,JJJJ4
+ m* D8 N z: ]) b2 g; r! D$ s- c JMP START
1 @0 Z5 C' o2 A$ aUUU: MOV A,@R1 ) w0 u0 j; g. ~- k" [
RRC A
; o1 \: Z5 d! p8 F7 V0 L MOV @R1,A
9 z/ ^$ j/ c& i5 K) k9 c" {1 G: {, m DJNZ R3,JJJJ
8 ]' R- N: P( j J INC R1
8 K: p* b6 j! u3 L% |" I DJNZ R2,PP 4 i, i' `3 ^2 f: i
* J$ K6 n, ?7 u% D5 c9 |# E MOV A,1AH
4 b7 i- c+ M/ a( t XRL A,#11101110B
' ?# x, h" r+ S JNZ EXIT
% A1 k( u* P. L! |1 i0 H MOV A,1BH
8 g f; u1 l- _0 G' A XRL A,#10000111B
& j) p4 o- J. {. ?+ q0 L" l M1 W2 P JNZ EXIT % I: a1 c# _$ [4 g* G% p( y
LCALL YS3
; G+ O: S# A7 p! ~ MOV A,1DH & F( P6 ]3 Q3 v+ `! m
CJNE A,#10111100B,EXIT5 s L( G3 K, u# f
LCALL YS3
1 C' o3 b3 b" P' x, g! e$ @ CLR P2.6 1 @/ V ]" S" B9 I) T$ \( K
AJMP BIJIAO7 L% H ?. r7 o! j" Y# J
" t- Y. [' l+ d& f4 N7 {
AA:
7 a. D) y7 J1 q7 A4 }+ o8 {. R MOV R1,#25$ _: ?8 C7 ` D6 S; W
XX:
& K5 U* [/ D* Y( g) ^; S7 |% A- P ACALL YS2. e& I0 Q7 l/ Y
JNB P3.7,HH
1 l* z J/ W9 m7 n7 d DJNZ R1,XX/ [0 u: h% F0 R: d) C, u; ~
EXIT: 8 @9 g5 X6 @. S" g9 K
AJMP START& P! K# J8 e+ o% T& m* K1 X9 T; F
' W! ?* T. T3 s. wHH:" q. s; @' t2 p5 ? i4 F
MOV R6,#4
% l! [+ j8 K- XS:
( O8 F5 f0 s; q2 u/ d t, K1 c6 X' O ACALL YS1
9 L2 Z/ p9 Z# O' F( ^7 a5 u! }8 \- K JB P3.7,EXIT & ]( R* b( T$ M7 F1 j
DJNZ R6, S
7 ?% x& Y4 ^2 I6 k JNB P3.7, $
/ F7 d! E3 v& f$ {8 S% q LCALL YS3* H# g5 v- A1 B1 l I6 e
AJMP AA' p0 v1 u" {3 O: s1 i1 |
BIJIAO:% m& b" f! P6 ?
MOV A,1CH l7 {3 Z1 |1 c0 {3 k
CJNE A,#03H,N1 9 E2 C. |9 Y4 y+ b
MOV P0,#7EH : ~7 \/ T- m1 L9 K) _
( w I( Z7 l+ Q7 O1 G/ q+ y* @ ]
;处理STUDERV录音机控制码
X- p$ f% J" i/ ^* I v5 p6 {9 cN1: ; ?1 m6 Y- G* u: w7 s: h
CJNE A,#5FH,N2 ;播放键
* i+ Y" r" T9 {# L2 L MOV DPTR,#REP
$ T1 f3 H/ X' i ACALL SENDA3 i0 [+ A, _: r$ j4 {
ACALL YS4& @- V( Y0 m9 i, C
MOV DPTR,#PLY# x* X/ |7 i* B v
ACALL SENDA
, k( Y7 }) L9 zN2:9 c0 N7 v3 y' |8 W3 z
CJNE A,#5CH,N3 ;停止键
* ?- w: |1 z: G) L' D% j: \ MOV DPTR,#STP0 @7 T' J7 C+ o# H- c- U q& a
ACALL SENDA
. c. n9 j( F* U' E7 O' QN3:; t! @7 \4 m. v$ z9 Y6 O
CJNE A,#06H,N4 ;快进键
' r5 @6 B- i% x" {" N MOV DPTR,#FWD
1 k! ~: r* U/ `: F8 M7 V8 S" v: z ACALL SENDA
. M" W2 ~+ G, v7 ]N4:
5 N7 y0 T$ l; G. B" U9 V CJNE A,#09H,N5 ;快倒键# t, }& H, ?+ K! v; g/ } X
MOV DPTR,#RWD
+ ?5 H; T2 r7 [) _3 O: h/ ?1 v ACALL SENDA1 ~5 x( y: r/ s. i
N5:
: i" y0 R0 \! F! @5 \) A. l" I CJNE A,#0AH,N6 ;置零键( F1 y+ V8 k- h' Q1 g
MOV DPTR,#RTM
/ L" n: V. E' ]6 g5 b0 ` ACALL SENDA
+ a' {/ x. a I& c6 A7 iN6:& X7 \# T, d! Q: c6 M7 ]) b/ i
CJNE A,#0CH,N7 ;定位到零键' Q, B/ }- ]* v7 L
MOV DPTR,#LZA8 y3 _: \ G7 Q9 `( H3 P, l ~; T
ACALL SENDA9 p6 {/ D3 Z* x7 s0 p# \- k
N7:5 i* h8 Y: v1 Q& {. ~
AJMP AA( R7 v4 Q5 {* [% l) ?6 C
SENDA:# @$ y6 v0 }( z6 Y y% G7 Y2 v
CLR A
* t/ f2 s6 K" |0 {6 F* l9 M MOVC A,@A+DPTR
+ V8 j3 e# p- z( w. J CJNE A,#'$',SENDB
& P2 \2 o# E8 d2 n7 M3 D/ g0 E* k AJMP SENDC
6 u4 I0 {: s( i8 y& _SENDB:- S4 F/ ?! A' g3 S% L/ L
MOV SBUF,A
$ ~( C. d" l& e8 E: B JNB TI,$
9 T2 P0 e* `4 F" v/ Q+ D& j+ s CLR TI0 A6 R: Z% y6 [
INC DPTR
; }+ R0 @8 R( h3 ^9 i# H, F AJMP SENDA$ P9 ~ z: Y. \: H! P1 J2 `, t: q
SENDC:
: g b. s( s2 d ?* p RET
' Y2 a9 ]- m& @ \' L9 B* }1 ]# ?5 ~7 C
PLY: db "PLY ",0dh,0ah,'$'$ U! b+ x: S: e+ h3 n& |& Y N" J4 u' r
STP: db "STP ",0dh,0ah,'$'
5 {$ o& P( l# D1 b1 P) m. V0 oFWD: db "FWD ",0dh,0ah,'$'9 A6 }9 ~$ o, }- b( h
RWD: db "RWD ",0dh,0ah,'$'
6 F6 q. T- x! \7 I# F% zRTM: db "RTM ",0dh,0ah,'$'9 B) o" d; R) a8 d B! R2 E+ [% y/ L
LZA: db "LZA ",0dh,0ah,'$'
) m( n- I0 c% V# V0 o3 q3 fREP: db "REP F ",0dh,0ah,'$'
/ v) l3 D: c* I: F/ @0 G' ] ]) F6 ^' G* s% V& z% W* z. O: n
YS1:
( `' v( E$ m- U/ r5 z2 v+ f% q4 g0 \' ] MOV R4,#20/ o5 O& i* H4 O5 F+ p
D1:( z+ [3 [; m3 I5 q, N$ k
MOV R5,#20* ]6 _, t& ]( p& j+ K/ i
DJNZ R5,$' }7 z+ W, J0 E- O2 e& z( I0 o* _
DJNZ R4,D1
% b3 X3 H; b* @* D* } RET
8 s. I/ B ~: Y$ ^# M5 H/ u9 [9 O( T
YS2:4 S7 s) q& \+ }1 L( c
MOV R4,#10
* B9 _! Q* C" f5 R; b" ND2:& T6 r5 h& p( k6 W2 f; [/ D
MOV R5,#235
7 l; s9 R0 z3 @/ I9 i DJNZ R5,$
! o3 F6 s H) O DJNZ R4,D2, [9 ^# y$ d: D
RET: W6 c- B% G8 K9 @) a% D
C$ W7 [5 O7 c! @, X2 I! hYS3:0 X* Z P% J9 T: y0 V
MOV R4,#2
+ q. f: N% |# G( zD3:; p$ G$ B/ V0 B# }1 R1 l) A
MOV R5,#248& @ Q& O' |3 u) g8 n. p% v! e
DJNZ R5,$/ N6 i% F4 c! G
DJNZ R4,D3
. z3 F. E; c _0 L* x) c) I; ~4 D RET; c- p/ c/ S8 {4 u% m" a- ~
+ ^' |4 u$ t5 B2 M( yYS4:- {& ]& x/ |, E1 i4 C
MOV R4,#200
* m& P6 l M1 k( tD4:
5 }0 X5 u! U$ w y" J0 H MOV R5,#248
. X0 y% f) g" K c, F# V- q DJNZ R5,$8 S8 o1 [! B e+ I& G7 C
DJNZ R4,D3
1 e p8 o T9 k& J/ y% J5 h RET( M4 u2 @( z5 x; p/ C0 b0 \
END
8 Z" r3 G' O- l, Y+ o; _* p# k0 f+ ?# o% r' {
有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。- \& e+ u1 ?/ [% \+ x* O
是不是很惬意,嗯!
7 {% H' m. g& e' r1 U |