赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
+ o. v4 _" f9 [( ^5 `2 t8 ] U/ D; ~ _. N: w
本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。
$ U7 w0 W+ }+ B! W5 B; v* L# g. |8 C* }- ]" X
说明:
1 A0 l3 @6 Z" p' H4 V% t1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
% ~' `& G* X7 D+ U. D2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;% g9 }$ |3 d$ L% `( y/ {
8 _! }* n# s7 r ]# W* _一、基本思路3 X6 Q9 k3 p7 j. d3 E( ~
使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
; ^! w8 S8 ?5 i; z
# N n% V# p+ H, N/ D: i2 W二、红外遥控器
& u/ J' S d' y% R) U2 q; w/ K" N我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
- d0 L: N$ x1 e9 L8 M$ W$ T1 t" @: N( Q
( g8 X6 I C/ l) k6 {好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
. j6 n6 y9 w2 J' O! s0 y
9 Z6 c7 ~2 E, V/ d7 s3 H
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
( w$ e' Z% |: J/ \9 @: q& T0 C/ S
; f3 C0 A8 R, w: M: @& u
* O" c& Y( U. `- O0 k) ^& b( N
三、红外编码) Q9 n1 L$ P2 s$ j6 i! P0 ]
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
; M5 M3 ?5 q+ q; k" M- `; [5 k前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。7 Z& {9 x- i3 N% h. U4 m1 h
后16位为控制码,主要用于实施具体的控制。9 k9 `( U7 H* n$ w1 A
这16位中高8位和低8位互为反码,以提高可靠度。7 @: D. V4 D, N E
! a' m* l& R9 e! Z0 B以播放为例,其编码如下:$ b1 i& M" U: k4 F5 t, G
00000000 00000000 01011100 00000000
3 w% M9 v1 R2 v) e' h; m; C! b! @! A! p
你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。
: C/ Y1 m0 {" J4 p E# a* q) u$ q8 Q2 ?
四、单片机系统/ w) H) I" j4 n7 K8 w
这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。* o2 F; ]. @5 ]
) a0 s- b" b/ r3 b+ p0 l/ }) H
* d4 f; X% S' D电路很简单,功能如下:# R4 `. @) R- m/ Z# R1 ?
1、一个AT89S52单片机作为核心;* {! v* A) \/ P- _# U: L: B7 ]3 O7 a
2、一个TL1838为红外接收头直接串行输出数据信号;$ R0 P$ v, m: e
3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;
+ ?: i8 z) M" P; x4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。
' b3 ]1 L! n. p$ U , W" \: ~3 x4 ^; w6 L/ g
关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。$ e$ V+ T6 P7 ]4 p
0 _# k6 |8 B N" X4 S" A4 |7 w- b s% ^& q) D! S
五、控制软件
+ i! r* ^5 H/ B8 Q y6 V控制软件用汇编语言写,源程序如下:
; A9 ^$ l; c" `9 t ORG 00H
. N4 Q# L* @* G" C0 l/ d# g( O, { LJMP MAIN
" t, b; r2 _2 t+ q; o" m) l ORG 30H
) R4 h" Z: _; a# c- JMAIN:8 ]! H) A! z3 z* h
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
; R1 e% \" O, ?. a MOV TMOD,#22H ;22H- R! Z- R# \* w1 g7 ^/ t( M
MOV SCON,#40H ;40H
/ x" k; S2 N3 Z( \ A( N MOV TH1,#0FAH ;F3H
: B! m# s+ N, d5 d" G |& s MOV PCON,#80H& U& d6 c4 f# J4 Q) g
SETB TR1
* J5 S$ [" W8 P- c% n6 M0 WSTART:
. D4 I& a6 l$ z2 ~" N. S, a JB P3.7,$ ;遥控信号处理
1 i+ S0 @ @+ D+ `% \SB:
+ F8 o3 t$ j! d! _0 m MOV R4,#8 B7 n' l8 D/ F9 t# G7 M
SBA:
/ S/ T- U/ m7 t8 b0 B+ L MOV R5,#250, t+ J' C$ p0 g- } Q
SBB: D- k1 t) @" R' a9 o A
JB P3.7,SXB1
) U- P, A/ V9 U5 B& m, W" E DJNZ R5,SBB
1 {! M' [! i6 ]7 Q3 ^( B DJNZ R4,SBA
' u/ p+ }' h3 E; m& j. y+ E$ [ MOV R4,#2( \8 G8 A# D+ Y2 ` {
JMP SBC3 p" X& N% o4 _. N/ h- C
SXB1:- K* b) K- ~: P- \; p/ }0 c
MOV R5,#5
- F0 \/ d" V* lSXB2:
& s- n+ [. C' P4 ~& t JNB P3.7,SBB; k7 O% e" P; i
DJNZ R5,SXB2
. O; i9 Q# c/ E$ P3 N JMP START: h5 i: Y, F: E7 ^% d
SBC:7 F8 M u# H4 ~# a* `
MOV R5,#250
( N( Y: _ f3 N/ r$ QSB1:
% V9 B; C& w+ J$ I$ b9 E JB P3.7,SB2 0 D) Y# @$ F8 q3 V! w f# U' f
DJNZ R5,SB1
( X+ @6 E# p# a$ B x9 I0 r DJNZ R4,SBC
& x0 ]& [8 Q: p+ Y/ f* y JMP START
6 g( G; A. k$ h: ]! RSB2: & j8 P7 C# U: m! {5 G
MOV R5,#5' z$ v, _0 E0 ?3 z
SB2_A:
/ j- g3 H, _7 q8 `" b; u, f) i0 G JNB P3.7,SB1
5 m0 o8 `6 C( A: t; k4 G. O5 @2 z DJNZ R5,SB2_A0 N( h/ p: A& V$ c5 F$ T$ X! e" E
MOV R4,#3- }+ J" T: m5 C' S5 l; K
SB2_1:5 D) u% T- |3 z( `
MOV R5,#250
* [: m5 i1 w" F2 E7 z% nSB3: ) H/ J! d" D, @5 S1 K' Y
JNB P3.7,SXC8 \$ {" [# p1 U8 I' e5 H2 c$ f' c
DJNZ R5,SB3
I3 o4 l$ s! @" I& f DJNZ R4,SB2_1. O" [. h# M, t+ c5 L
MOV R4,#2: |. V" d3 A, u' u# K% n+ b
JMP SB3_1
% S7 U3 A: P0 OSXC:
' |9 `4 \ c% O) T MOV R5,#5
5 l2 f* F. |7 ]% Q. q7 ESXC1:
& I+ J! V, g! c6 ^( X2 | JB P3.7,SB3
- t' s- r4 H& C7 T- l& w' i; C DJNZ R5,SXC1, W& P: z: G& I; o% r
JMP START
7 }! Q+ B( e+ y0 P2 q+ aSB3_1: ( i# u% x' j8 d& ^7 L* A
MOV R5,#250
+ c7 d1 H8 w; OSB3_2:' t. B0 |( F5 f3 ?, f: v3 l3 o" X7 X
JNB P3.7,SB4( I! Z" L$ F% y1 ^
DJNZ R5,SB3_2
Q3 }5 m6 S6 l, t. n3 K8 E DJNZ R4,SB3_1
Q& I5 }. a. L3 d4 B f& a JMP START
9 T/ L! x- x" Y" X- V! ^9 CSB4: 1 @) W7 ^0 j c d* P
MOV R5,#57 }) v Q. e4 M) t) D: R1 P
SB4_1:& y. B" w! D3 Q/ w# I
JB P3.7,SB3_24 |/ B& [' ?. E8 r4 d* m3 T7 z1 O+ n
DJNZ R5,SB4_15 y% v. r7 z8 B. k* M
MOV R1,#1AH
; b- v: J- H+ r$ Q# N o MOV R2,#4" J6 }( D1 B" o/ T: o% A
PP: MOV R3,#8) {$ \* d6 N3 z) y7 E$ n y: p
JJJJ:' [" {# r5 h. }& Z, F8 \4 N. m
MOV R5,#250* q/ o6 f: u! K( i' |
JJJJ2:
) A4 Y4 ?! {- q; S. ]" h3 ?% \ JB P3.7,JJJJ3
8 @ J) h* W; F' Y5 C/ [ W DJNZ R5,JJJJ2
0 I& h$ c. f; @$ m JMP START
. @1 X$ i" b, }5 ~ |1 y* F6 `JJJJ3:
; {/ j+ t$ h# l; f! ^ LCALL YS1
: Z' o/ b5 I; |8 a, s MOV C,P3.7 R% o, [/ G+ }8 D
JNC UUU
" T/ O) q2 O3 A" o MOV R5,#250: L& R9 [, L% T, Y2 d* `, _
JJJJ4:% z$ J. \9 G, x' \1 G' Q
JNB P3.7,UUU
% T3 E( o' T4 x$ {2 H NOP
# j1 X8 ]5 U) U+ [ DJNZ R5,JJJJ4
2 F+ T7 w% q; L JMP START! {, z9 G% v+ V% Z- o
UUU: MOV A,@R1 ' q3 D w+ V6 y/ D5 C5 C# j9 M
RRC A # m$ I& v) {& F* |( D
MOV @R1,A # M+ A% W D) ~; \' N9 v3 e
DJNZ R3,JJJJ
% G4 \. @/ E5 P( W8 z INC R1
& C, ], _7 V8 X. T DJNZ R2,PP
' K) A2 o z2 {# R
; r) O8 g! C% J+ I' t MOV A,1AH
, K, _$ |, z& z/ ? XRL A,#11101110B, _2 Q8 O* K8 H- m
JNZ EXIT % Z4 W3 |) v# l1 {( R( f$ b6 G
MOV A,1BH 9 A P5 T2 ? Q& e8 e
XRL A,#10000111B
; f8 w3 ?. \, x! t JNZ EXIT
% R. Y& P: Q1 y( n, m LCALL YS3
! ^+ b6 c! B6 u. _ MOV A,1DH 5 U" ^5 l/ B! ?, i/ K3 o5 c
CJNE A,#10111100B,EXIT8 h( a0 q% D$ p( } J
LCALL YS3 |" @" O0 C7 Z: M1 E4 ~& S
CLR P2.6
0 r6 x' w I2 j. L# U8 s AJMP BIJIAO/ G5 l4 d2 O" V- w; A0 ^) I
3 v# v+ y2 e- ~2 M' L
AA: & `$ |, z4 ^# p+ L6 e. O i
MOV R1,#25
; o7 Z( y6 Q. |' Y; u) QXX: / X. F& p" d* [. @ j: e. \5 _
ACALL YS2; o Z! u9 O g* b+ P h
JNB P3.7,HH 5 T( F1 J! `" @& d& i6 ~1 M1 f
DJNZ R1,XX
?* O, t& _2 {* @EXIT: % J v( C. ^2 i' O
AJMP START
: X3 s+ C. J& U 3 _4 ?" a7 `& z& L
HH:5 o6 Y) W) J& E2 p- m8 o: b, c$ d4 ?
MOV R6,#4
: g( G h# ?( S/ z. l7 g" X# l1 ~S:
) q6 D. e1 m- L- \# \ P, { ACALL YS1
/ V. n8 S. _# a8 \9 z7 D! T JB P3.7,EXIT . X9 E4 d# J% F% N% P1 A) i
DJNZ R6, S # s$ l# L9 x5 z% K% V5 o9 d
JNB P3.7, $
2 R8 F% @8 k; [7 \6 E* h LCALL YS3# Q- T$ T% `% G. Q2 |6 T+ n
AJMP AA
; e, g0 T$ V! v8 ?3 tBIJIAO:5 g& k$ u# y. s4 u9 g$ y$ `
MOV A,1CH
" i- }% J0 k+ T, j CJNE A,#03H,N1
. p" W6 ^: G+ @. L; ]' `/ \& q* ~& i MOV P0,#7EH ! s8 z( G( J3 n1 @4 Q P8 h, c7 [
6 J3 h4 W6 \ ?1 }2 @
;处理STUDERV录音机控制码
) \& j9 q) K* f. @; R. YN1:
8 g3 O4 p8 I k. I; N CJNE A,#5FH,N2 ;播放键 @# u( p: {& u, m* E J! U+ {" X
MOV DPTR,#REP
% B" c2 ^3 ~% M ~/ A4 {7 B ACALL SENDA
: h2 E7 m8 ~6 o l8 _ ACALL YS44 ~# I; Q* F5 b# g# L
MOV DPTR,#PLY
8 a3 x/ U& w r# c, Z( z ACALL SENDA& N; h- _2 Z' V& F3 B1 d
N2:
0 x- Y2 S/ q5 u6 U. U [ U CJNE A,#5CH,N3 ;停止键+ w: d4 w$ U! E' y' K, S( L
MOV DPTR,#STP) ~, c( q* i! H
ACALL SENDA' R$ n( C8 J5 I( C& G1 _: x
N3:
5 Q0 R2 s" N6 g' F8 G! q3 _) | CJNE A,#06H,N4 ;快进键2 R$ u- p6 W7 \; z& D4 b
MOV DPTR,#FWD
. k1 P, O) u& k( _0 F ACALL SENDA* H% J9 P: f$ o9 d0 J$ ^
N4:( k2 v) }5 J: |9 }0 `) h1 V
CJNE A,#09H,N5 ;快倒键 A& X$ P/ n6 S5 L
MOV DPTR,#RWD
9 |5 F1 }. e+ X9 ^* Q4 n ACALL SENDA
: b2 i' B, Y3 x1 u' y0 X# Z) |& H0 RN5:1 u. e+ i5 k' o/ a
CJNE A,#0AH,N6 ;置零键3 n8 j! @. q' W; \
MOV DPTR,#RTM
0 D5 o) N2 T; m8 d0 g; n% x ACALL SENDA5 L6 [1 ~: i1 Z2 M8 _
N6:
- C# @+ M! u) c0 E0 r- G CJNE A,#0CH,N7 ;定位到零键
2 B$ z) J: j: n- l. s MOV DPTR,#LZA
o3 g2 v/ ~5 H$ }$ Q- Y& w ACALL SENDA5 C% ~0 Z" c) T% Z2 {
N7:
( F9 z9 T/ R6 T' F& k# S' @/ _( M0 C AJMP AA
( N( H6 X5 `# n) x3 qSENDA:
( D/ X6 C! A4 c CLR A1 X" z9 d% `+ i! \6 M
MOVC A,@A+DPTR& r; [. c- S# q8 |* v
CJNE A,#'$',SENDB! n2 W+ Z, k* e5 s4 U+ x4 @
AJMP SENDC } s8 w, m$ ^* z
SENDB:, k: v( u+ [, F8 _
MOV SBUF,A
# ]4 E. e+ H. W1 t5 a JNB TI,$% i" R, t s, E N
CLR TI: z- G, J) o% Y- S& Z8 A l
INC DPTR$ Z$ d i! o0 o
AJMP SENDA! z( k* R' R; G6 L& ]1 t7 L
SENDC:* ]; r' R6 Z' U; A3 K
RET& d% c/ `$ j f+ A6 L
5 [* }" m$ Y6 h( k& l/ ]3 RPLY: db "PLY ",0dh,0ah,'$'2 F1 r& H3 C7 E$ L. ]9 m) z
STP: db "STP ",0dh,0ah,'$'
$ W5 a$ p' k+ \6 b" D+ v! F6 NFWD: db "FWD ",0dh,0ah,'$' g Y8 b! b% A% P: I
RWD: db "RWD ",0dh,0ah,'$'
$ [* g( I( u* ^2 oRTM: db "RTM ",0dh,0ah,'$'
" x2 w6 \6 a% ILZA: db "LZA ",0dh,0ah,'$'5 n# A$ U& y$ U; k# q
REP: db "REP F ",0dh,0ah,'$'
/ v" l' O8 w9 d* { J4 }
! P6 c2 A9 P- e9 r9 X' x qYS1:, r1 \: J$ B$ \% P; v7 U. s2 V1 `$ p
MOV R4,#20
& S- f9 o4 d. bD1:) N6 ^% E+ m; l. E0 \- p( V
MOV R5,#20
8 O6 K3 Z3 c4 |& ?' \: S DJNZ R5,$
) |) r0 \" ^: H' S Q8 _ DJNZ R4,D1' W1 |5 l+ j! Z% y/ y& D4 n
RET
/ p8 N, X9 F$ b: U* V; h. s% b3 h% O3 i ]
9 U9 K9 j. D8 _7 J" ZYS2:
3 q: ?5 P; u' D8 Y2 S9 ? MOV R4,#10- P9 Y) Y3 A q. r( m- N
D2:
: J' ^6 [$ z3 O t MOV R5,#235
% F( `3 Z. r) @+ J0 @. f: O; ? DJNZ R5,$
" v9 r4 q: J0 @% a DJNZ R4,D2
% y' w, @' ~1 ?8 M RET+ u g: `% O2 a# |* ~
! B+ |- r6 @4 _. VYS3:
$ H6 D" ^$ C* k% v% ]2 Y3 Y MOV R4,#2
8 t0 `4 x# N M% ~+ D: e1 SD3:% E. n3 U4 K( N4 l- c& P: T
MOV R5,#2489 K4 d4 r" H3 w K0 _2 N; Q
DJNZ R5,$6 z, ]5 ^+ L: S; q( {( C
DJNZ R4,D3
( C% i1 I0 `* F0 G' c: l) m RET
3 j* J: @7 s5 s( H/ {1 \0 c F
0 G# H) W6 ?5 L1 k+ w3 j: wYS4:9 s, G$ b+ L& b+ D
MOV R4,#200
! U/ f' `0 r" K; ~/ Q, ]D4:
/ M: k: l3 Q% O0 E/ v MOV R5,#248* X' J) U9 m6 _& M8 {; ^* w4 y
DJNZ R5,$
: H4 ~' k z2 o3 W, D DJNZ R4,D34 Z7 b0 l4 U+ A7 `3 ^+ ~
RET
9 S2 b: y( z9 m' d END7 B H6 a0 Z" B: C
2 y/ O, ]- q v2 P9 Q1 e有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。
# D. S' g" i' r8 y/ b8 z) ]' j8 y是不是很惬意,嗯!* J6 i2 k. i: B3 ?1 A' f2 k- U
|