赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
" R, o* _3 E) ?" ^4 w
, P2 J5 w( q( e1 p8 ?本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。( b8 Y( f& H7 u. q+ |
& |9 t# z) t, f; E- l说明:
( |2 u9 r# e2 [3 _* e+ z2 S6 v1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;# y9 T+ c$ g( J0 ]1 C+ z
2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;0 C# ?4 J3 ?) d1 a# D7 T9 {
5 |/ O9 t9 U* J( `3 X4 k" ^
一、基本思路
( ]3 S+ H* A" ]0 {使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
* y; N& F0 D, Y9 _7 I6 M# x- m; i X: _
二、红外遥控器6 U) a/ S$ t5 i7 ~
我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。) {- R( D6 ^3 C
* p& @) R% O5 V( b' W' s好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。2 c, c+ B, [* u7 M5 S" ^
~! G' E( g6 S8 Y F- Q在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
! h# [2 Z2 c4 ]8 t2 r
* w$ c! Z8 @" V% z
# I$ v8 L, S7 o; ]8 c& y* [三、红外编码
8 [3 v! U; ]+ t( c红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
0 |# V; x% Y* _7 W" Z4 }; Z3 v前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。3 f# }/ |8 m* y
后16位为控制码,主要用于实施具体的控制。0 ~: R5 l% |2 i* v9 J
这16位中高8位和低8位互为反码,以提高可靠度。
) ?. s6 ?7 b+ }+ I' P1 T% u# }5 ?, t7 f
以播放为例,其编码如下:
" R* |6 D$ S8 p* k# A/ k; K00000000 00000000 01011100 00000000) A5 Z; u; {6 d8 U
. ]$ e: X: K0 ?% g+ T; ?8 ?0 A$ M0 q你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。
* Q. a5 l# {) u g; `
% X2 q0 a j0 n3 M! v% t, _四、单片机系统7 {8 l5 @& {- h% k' C
这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。
' b2 W$ |; G9 G' n
, }1 _0 M6 L7 d0 K 5 k9 l/ d6 {3 f3 s
电路很简单,功能如下:3 V5 m* o* g9 z' q4 e1 S/ R
1、一个AT89S52单片机作为核心; m& H: ^4 S0 C- s, n9 |" q
2、一个TL1838为红外接收头直接串行输出数据信号;
, y j, e- j6 a" j$ p1 G2 X: }! H1 I3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;/ U7 {* A% J; f2 \
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。" y$ J8 q$ Z! f* c8 T
6 a" u9 T7 y; P3 C关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。7 ?, ?) Y2 F7 ]1 {! N+ Q
; j3 |9 W" i7 ]( p5 \! y8 L( [2 F$ H u* Z" Q+ y
五、控制软件
4 h9 y. x! [$ n0 }: ]控制软件用汇编语言写,源程序如下:* N% B; q/ L1 @# F
ORG 00H: ^% u8 \. |& H) W: g6 n& X
LJMP MAIN2 b0 b7 Q& |9 U! U
ORG 30H
; J" n' X# U; oMAIN:1 O: p+ h8 S, N$ N G
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体): T6 O! K. G/ K2 M
MOV TMOD,#22H ;22H0 F' \0 ]9 Y( u. X/ F' E3 C+ q) W
MOV SCON,#40H ;40H
- M, m: S/ Q1 c! K9 r$ m' f* {4 ~! W MOV TH1,#0FAH ;F3H% G x- }0 @0 I
MOV PCON,#80H* |9 g) I3 U0 f* b
SETB TR1
* ^9 y C: k) F' M* C$ ESTART:
* U" |9 \( j* H6 d. V( s- \( `3 P- W JB P3.7,$ ;遥控信号处理
6 U) E8 y* W1 ~4 e. x' Y$ ^- OSB:
5 c, z4 E* Y; Z MOV R4,#8
6 U7 \. g& [. H3 L( @) zSBA:
% k7 G$ P7 [& S3 ?6 R MOV R5,#250' Y% W9 S( h3 H, v
SBB:8 k6 ?1 u( H+ g4 X6 C9 l7 {1 W
JB P3.7,SXB18 @5 j" ?. z6 T+ [6 O# ~
DJNZ R5,SBB; X2 `1 l# @8 x. j7 Z; v" N
DJNZ R4,SBA
. k; L; V" _% R2 T6 Z- h MOV R4,#28 A6 X1 k: B2 A; G
JMP SBC
3 G {. V7 W+ N1 t/ y9 ZSXB1:" z/ _; R$ D5 [% f4 ]
MOV R5,#5
# X' T s) e* v) ASXB2:
; E3 o& c; }/ p0 j JNB P3.7,SBB: Y2 a7 c! R/ [
DJNZ R5,SXB2& U9 v$ x8 F; |" J
JMP START {0 t/ X2 E$ i5 o' ~
SBC:
1 f4 x+ {6 C* f9 T MOV R5,#250
' [9 P5 I2 s: R# Z7 u6 FSB1:
' Z2 W+ C+ p) [, _ JB P3.7,SB2
" H7 O: }1 W) p/ b! j DJNZ R5,SB1
/ {6 b. f3 }! L1 ^+ F DJNZ R4,SBC
- o2 ?: P& q8 F7 g$ K$ D7 ` JMP START0 C2 o6 T- x( K+ B6 k8 P% [
SB2: - M6 X+ f* Q: P% m: P) K/ q( Z
MOV R5,#5
' z9 n) g* h# S6 t' o3 SSB2_A:
) n% F. Y6 }6 ]4 [- X JNB P3.7,SB1
4 V. o& C( K# l; N( s: p DJNZ R5,SB2_A
& Y, n1 n% [7 v$ b! @) L MOV R4,#32 O2 A& i$ ?, E1 a& W$ W9 S1 Y
SB2_1:) F0 e1 b- l: t w y+ B
MOV R5,#250
# j6 {# a7 j' g; @SB3: ! X9 K: {. g. u! {
JNB P3.7,SXC
# ^! a. |4 F0 f DJNZ R5,SB3! `, i* H$ t* z- @4 N
DJNZ R4,SB2_13 ]! J, Z; L3 Q
MOV R4,#2
: X! H! y1 }9 ^) @ JMP SB3_1
) k9 B6 {2 h# }0 D9 c3 RSXC:
! p* d4 X) k; q/ ]' u6 _ MOV R5,#5' q, H7 R, d) D2 I5 t
SXC1:
* o" K/ k M4 K6 n JB P3.7,SB3
, T7 f5 O2 L" F6 r3 _ DJNZ R5,SXC14 D9 M1 K, E: T! S6 ]: N4 N9 n% V
JMP START
, ^$ ?, p+ X/ y. rSB3_1: ! ^7 z* S6 m# |7 U" ?
MOV R5,#250
& ]. K# m- H& x5 s- I5 Q# VSB3_2:
- r/ s8 M; r$ w" ]7 m; f* a- F JNB P3.7,SB4! }& a/ c7 @7 P( {
DJNZ R5,SB3_2
F7 _: s8 A3 |4 b DJNZ R4,SB3_11 M: Q( w+ X6 P+ c
JMP START
8 A" I2 ^ \; e0 S! Q4 P% B) K" v3 USB4: ; c! D2 F3 y. G5 ^9 |
MOV R5,#5
9 ]/ F* a f7 i& g: MSB4_1:4 [ O% k9 B7 u4 {
JB P3.7,SB3_2* Y# S& U; V9 X3 g9 M {
DJNZ R5,SB4_1
7 q* f- ?$ s: E2 E& `) U+ R MOV R1,#1AH
& e# Z- a& h5 I) j6 z. D MOV R2,#4
L! G' Q' Y: j7 Z( d/ K9 RPP: MOV R3,#8
( e5 ^4 z% e5 {+ g8 x" `, ~) \JJJJ:( ]5 s* ^: {& \ f: {; a* t, p' L
MOV R5,#250
! f- f5 S" X: _JJJJ2:
$ l( d& L0 z% [ JB P3.7,JJJJ31 }6 F* x& z+ z5 A; @% H
DJNZ R5,JJJJ2! d; S) t- j$ ~! U, a1 N1 v
JMP START
1 u0 i$ @# p. t, V1 M9 Z: r0 `9 }7 M1 ?JJJJ3:6 x' Y6 J$ y) [8 {* ]+ U9 Y
LCALL YS1
7 U* ^3 ~: j9 q; T% Q+ P' I MOV C,P3.7
% h3 a# B) w* }1 u JNC UUU 1 [( g2 L% o! ]5 M
MOV R5,#2501 h" `, ?, _/ [: I( Y4 d5 B! K
JJJJ4:% d, d" X2 d d+ y2 R$ r( {
JNB P3.7,UUU
: a) l b" h- h% x& K) r NOP2 |5 k2 [( V# X* a' a: }% L
DJNZ R5,JJJJ4# M/ F& B+ Q; M: v3 p! X$ k
JMP START
* q/ _6 x3 c$ |* M4 [. q7 `UUU: MOV A,@R1
$ ]1 u1 x# K, f# t3 C. x$ A RRC A ; y% m. Z1 U! A, i2 R
MOV @R1,A
; q2 s/ ]. E! `5 J8 H) p1 f DJNZ R3,JJJJ
6 U2 K. `' g) R5 i. B: E; H INC R1
3 i. e& I; V7 C b# y$ l% t" ] DJNZ R2,PP
( S$ D/ b/ V2 Q. O$ {" \
& V9 Z/ K% _5 t; h( |- i& B MOV A,1AH
$ G0 d" d) W: t8 }6 k: z( I3 O* l XRL A,#11101110B
9 b, h% s+ x/ k \ JNZ EXIT * Y/ \$ F" b' ^" \; C& f
MOV A,1BH ' K" [) c9 K+ w) M
XRL A,#10000111B
7 m7 K" M8 h; i3 |3 j JNZ EXIT
+ D. w+ _* A ~% l# F# z LCALL YS3
6 X# Q3 K' b1 F0 N MOV A,1DH
% b" k$ O8 e9 Q( K2 Q& z CJNE A,#10111100B,EXIT
, P, H5 R' L3 c4 ]' f# u0 s4 y LCALL YS3
; l# t$ t& e* d" x( n% M CLR P2.6 & b9 Y0 {. U' W* z) O
AJMP BIJIAO
+ n, |8 m0 x. _. u2 R$ S 6 t: a2 v# Q1 Y/ C
AA:
4 @; r3 m# \" T6 J MOV R1,#255 q5 H& [9 C! h; V- X
XX:
( V: R! Q& l8 c5 j9 r ACALL YS2
5 W% `# L4 I5 {" o# u7 W- j JNB P3.7,HH 7 w( W5 a% O a: B
DJNZ R1,XX7 E! X4 L' O6 E
EXIT:
, d! K1 l' M4 `, L& o; d( _0 H$ g AJMP START2 H8 I: H" H0 X$ y
; B" g: i- O$ a5 r
HH:
: g1 `% o8 d( s MOV R6,#4
& @0 B' ^# @5 y u( p1 IS:
, ?) r; q$ `3 R/ t4 a# Y ACALL YS1
% T' F0 f$ v; x+ S JB P3.7,EXIT 1 J T8 U2 E: T
DJNZ R6, S 1 s8 C. G1 ?: }
JNB P3.7, $ 8 V: {' h r9 u2 f, E& T8 k8 k
LCALL YS36 b" A) B6 Z5 A H! z/ x5 l
AJMP AA
, D3 N3 u- u+ H% E& _BIJIAO:3 c: F: Q ~3 C
MOV A,1CH 2 E) _# T2 \6 L, j1 u" ?# c
CJNE A,#03H,N1 ; @4 C6 X; A! _2 F
MOV P0,#7EH , G$ k1 j5 c6 F2 ]& X
) n; \0 h2 v$ n" R; | ;处理STUDERV录音机控制码
) N: W' Y4 [( s, I3 R; {, dN1: ! y0 t9 _. G8 m: P' w# P
CJNE A,#5FH,N2 ;播放键
; G' u# p( o" R) r MOV DPTR,#REP
3 A! s$ ]# |3 N; ^* A% H! p2 h ACALL SENDA
2 G$ B6 L" j9 }$ W ACALL YS4
. e8 i4 @5 e- m! Y MOV DPTR,#PLY
' y1 `$ ~% ?4 ~8 {# Q4 @$ D ACALL SENDA- @$ l$ N* n7 p
N2:0 C5 ~3 {* k7 g. z' R) {$ _4 v! f6 E& u
CJNE A,#5CH,N3 ;停止键
- w/ t' s9 k0 K9 L2 |% \2 F! n2 W MOV DPTR,#STP
- G3 ~4 H$ t6 ^7 H( Z ACALL SENDA p6 S9 p9 U5 z
N3:1 }8 e* C. x1 {- j1 N$ n, r4 m
CJNE A,#06H,N4 ;快进键
: ~% c" A8 j1 |" l$ ~ MOV DPTR,#FWD
$ x9 J: I0 j; Y, {6 B ACALL SENDA
+ `1 w& `2 A8 rN4:3 V, F" R/ ?- K$ ?: z
CJNE A,#09H,N5 ;快倒键- a) B) A3 E, a9 U5 Q9 h
MOV DPTR,#RWD
0 {, t ]6 B/ m3 M' i& E ACALL SENDA$ _. K/ k' G, ?+ B, G% I
N5:6 i3 z5 t! ]& p3 U" ~5 S$ X
CJNE A,#0AH,N6 ;置零键
) v% w. W: v6 b( F0 N MOV DPTR,#RTM
% j+ q' N% ?0 A+ n4 A/ x ACALL SENDA# E w# x% t4 w' P
N6:* d' L% ^4 b3 c) _- v2 M5 O: A
CJNE A,#0CH,N7 ;定位到零键
1 r+ C! {& ?0 O) z MOV DPTR,#LZA' \, t. d! Z; S8 \
ACALL SENDA' ?4 Q- i8 w% U( w+ } m$ n4 f, F
N7:
# ^! y- N$ W- L. U8 O3 K$ E# m AJMP AA
2 h5 b; _7 y% @5 o* V, g# ]+ pSENDA:
) k6 L o6 o a/ T l6 N9 E CLR A
l9 \+ ~( d! o5 a' M: }2 ^ MOVC A,@A+DPTR
' A2 q6 f4 v. h6 }9 A2 z J8 f$ L" a CJNE A,#'$',SENDB' O9 a: r6 G: P9 G7 _ K
AJMP SENDC+ y, [& z& B+ _& d4 j9 K$ x
SENDB:( v' V, }" O( T/ S: |1 f, W
MOV SBUF,A
& ~5 J+ ~/ ?; t. q' a JNB TI,$
" ~: P7 [, e \ CLR TI! v5 M" X0 m( ~9 k) S
INC DPTR* X' ?9 t9 Y0 _8 S
AJMP SENDA, o/ a) n5 \# g/ D; i7 @$ p
SENDC:
5 ^( _. m7 g2 H+ h1 z RET: B8 Q0 _) W. n3 h& T2 P. ^% W
$ l1 X9 [, _6 X. yPLY: db "PLY ",0dh,0ah,'$'
3 g) T* ~5 w) \* |7 P5 |STP: db "STP ",0dh,0ah,'$'
3 Q( W3 H. {- ^% OFWD: db "FWD ",0dh,0ah,'$'- t( T7 [ J2 i X/ ]2 Q1 f
RWD: db "RWD ",0dh,0ah,'$'
' P3 i) h1 ?0 w0 R) wRTM: db "RTM ",0dh,0ah,'$'
5 p8 h$ q; e. k, v1 ]1 qLZA: db "LZA ",0dh,0ah,'$'
F: f: \2 }( e$ \1 j! X7 S' }8 X/ xREP: db "REP F ",0dh,0ah,'$'" z+ V+ L9 ^, U6 S \0 `+ ?
8 {( K( J3 p% Q" s3 K5 u1 ~YS1:
. @# P3 {+ h) n. G# z/ Z MOV R4,#20# m2 }* q5 T S8 B# u
D1:/ U# `3 {6 l' K% a1 H( _! Y
MOV R5,#20( X' r; e D( U" a% R2 R$ \ a
DJNZ R5,$, N7 y8 v! \! B$ R
DJNZ R4,D1/ ^+ T! c" R6 c" S9 ~& ?) l
RET
; O5 \8 j" [& |9 E" ?" w2 ]! l8 S4 k* _$ l
YS2:2 |: X T- e3 D4 u' ?% B- D' |
MOV R4,#10
0 v$ t$ ?! e, VD2:
, h! S9 ~) [) h! S' ^+ X+ d MOV R5,#2356 |8 N. ?$ n7 c& [/ u/ N
DJNZ R5,$
' H- i! P2 ]1 w3 x. f4 h DJNZ R4,D2
4 r: k6 X, Y& [ W4 ]6 ]) p RET5 g% `1 H/ ]- |
! Z/ q9 z! J* M9 D
YS3:) L& T% m1 a0 J8 [( h
MOV R4,#2
! U6 _" v6 r& i3 d0 z w/ `D3:' A9 r" G+ k% P5 A& |; k, Y2 G/ l3 B
MOV R5,#248
. G! d4 f# a) g/ V DJNZ R5,$
]3 C& d! s+ k- p* u& \" H2 V DJNZ R4,D34 P& m, |4 M/ l+ U/ S3 O
RET0 i5 q6 E& e! @" a& _/ L
/ e" i W* Y* w1 n2 t9 i( l
YS4:
, ]% D, S% B8 J# B MOV R4,#2007 L' s0 o+ L2 K& J- R: d
D4:) N6 X% |+ H* ^1 O$ D
MOV R5,#248$ f2 `" } {' m6 T3 I) e
DJNZ R5,$) a$ C, f# M+ j8 T
DJNZ R4,D3
9 o/ Q% s5 k# o' i+ Z: q/ k$ B: W$ Y RET9 y, `- B# P! Q& Z- m5 L
END! j2 A0 a2 q( b
: U& x4 V* r' L2 y# Y
有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。9 O# F& o7 q3 q3 e; d' K2 o* M( \
是不是很惬意,嗯!
: e3 a5 W& w E5 P" ~, p |