赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑 , \4 n# c% i8 ~9 E. y
9 l4 S/ _4 }/ W' p+ d2 r
本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。 }. j4 z" C' B- b# p( r
- g# B0 {( e7 _6 K说明:
& ~' L5 P4 n( J5 {5 g3 K' ?2 }1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;! i6 y( }; z9 z
2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;( x0 h: w6 U( l
( A. r7 q& b- k. [! {
一、基本思路
, s% O: x3 L7 K, |% _使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
. O G' T" J/ O o( \# l6 g! k2 V: s8 C" f' F* w: W1 P* S
二、红外遥控器' q) c# z' e4 }
我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。1 a8 ^+ N! I# n x
2 v0 x; p% M+ r6 f好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
7 M. C6 |6 W1 C* z5 ?+ E# p0 S1 W4 N
( l& R7 ?. {2 H# ]3 {( C, x$ o
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
2 ]3 I F- I7 @. T2 i* ]
% T' \: j7 W- G1 L) l) q
1 R( U2 g" A" P/ s1 x三、红外编码
) B" e4 ?4 R5 K红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
2 P4 v8 z/ o, r: M; c) V. B$ G前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。4 F' U$ E. d0 T+ n, g
后16位为控制码,主要用于实施具体的控制。
! q0 E1 | w5 Z1 g这16位中高8位和低8位互为反码,以提高可靠度。
# ?1 f- ~0 c( ]$ D4 m4 l
7 P4 e; n2 g" F$ N& o& Z5 s以播放为例,其编码如下:
8 H0 l" u. m- I* o9 k$ M00000000 00000000 01011100 00000000
4 F: I& v# W+ U, d* y
/ J: \3 r" j n你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。7 `! }- [* F5 z
7 {; ?0 t" I3 _- v1 a& c2 Q& O四、单片机系统
, R+ Y! E/ S: N8 g" ^4 ~& g这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。/ z% B' s9 _! z$ f4 X: A. [
! d$ Z, z$ t+ _1 h
$ }1 w' w. C. ]9 u+ z电路很简单,功能如下:
0 @5 S J# D1 g3 d' M$ X7 X1、一个AT89S52单片机作为核心;8 p; t8 }9 v/ K3 M) ]8 Z
2、一个TL1838为红外接收头直接串行输出数据信号;
0 d+ ?7 b. S! |& b! j3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;
$ B5 R. ^( n7 ^) T5 V7 ]4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。
$ H* W, M: f- F' I; C D9 N; b2 `
0 h/ y7 f4 m! a' g- j关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
! Q/ S: X0 P ^ W* h7 ]' y P% Y( c4 W) y
$ V4 T3 i8 L4 b+ G
五、控制软件; @0 O6 _. l! l- K& b) f2 t
控制软件用汇编语言写,源程序如下:3 H- [ r( P; g" ]- c# R
ORG 00H& I; t0 C; f1 O* _7 K: a2 c
LJMP MAIN) `. N% g# |* i# u
ORG 30H
% {2 f) K. |* o/ ]) O& y3 n. Q9 e/ {$ q, mMAIN:
& @; ~/ `+ y, Z1 A! h MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)0 O1 z6 W9 J# X% q$ n+ `: b
MOV TMOD,#22H ;22H
0 p* g8 o% y+ J; n MOV SCON,#40H ;40H
3 D6 b( h' d1 n# \, q* |( m MOV TH1,#0FAH ;F3H% j$ L: C3 a I
MOV PCON,#80H6 P: Y) q3 B( J" N7 I
SETB TR1
. B. y+ F" `. ISTART: Q) U$ k4 k8 @2 f$ a
JB P3.7,$ ;遥控信号处理8 O5 B8 \# h9 Y D5 t) R
SB:! `# X. I7 [; e2 f, [$ U
MOV R4,#8 " K# X9 B; m: }; t7 a& B% @* ~) m
SBA:2 @* K- ?9 x" ~ |
MOV R5,#250! y1 Q) r% |$ ]* V ]" P1 U
SBB:
0 }- f" {+ ^3 D7 ]4 N; j- H! Z% O JB P3.7,SXB1
3 P2 D n+ P- X6 A2 E* y* | DJNZ R5,SBB) R2 O6 B; E1 _+ u( m" a. @! K; n, W7 G
DJNZ R4,SBA
( y7 p1 d* I/ p6 o: A6 x$ T MOV R4,#2
4 N7 u6 z8 J9 k+ a" s$ m JMP SBC7 b {( z U$ ]: U: i7 u
SXB1: M9 ^% I9 R; N: ]
MOV R5,#50 p/ y, u& H- J; w) U1 z
SXB2: 0 u2 B# O/ u3 m1 F4 G B2 C
JNB P3.7,SBB
1 b: U# j4 n2 L- N7 h% n2 ?8 k" e# a DJNZ R5,SXB2
" v: `1 W5 ?' V* I/ r; }/ T JMP START# j1 K; f$ X. {" W- r; k
SBC:" S7 E; P+ l* k* [7 @! P% W
MOV R5,#250
* z; _1 Y6 w4 N( ]SB1:/ W! M) v6 \! o8 ?, b$ R
JB P3.7,SB2 ' o5 C# p2 V7 B t( |6 l5 x
DJNZ R5,SB1
( h0 B" r# l2 L5 j8 I DJNZ R4,SBC
! W4 M9 z2 t b5 p3 z0 G JMP START
9 A9 x% L, g8 H# r7 ^SB2:
5 k# P4 T2 B& c9 k' K1 L MOV R5,#5
/ i# m5 m- O3 Z! a* ^( r. ]SB2_A:7 K: N0 d" C; \; I9 p- q& w! F
JNB P3.7,SB1/ q: M1 P6 h4 b+ _% I& t) l# o
DJNZ R5,SB2_A
. p5 R* A" \: A7 ^2 q MOV R4,#30 Q+ X0 W" B7 ` L0 t2 |8 c
SB2_1:# m; p1 x% ~' s) i& M+ S |: w2 S
MOV R5,#250& E0 M6 p$ `& i u% A
SB3: , m, c1 q$ \7 K1 O3 N, B3 N! h- V
JNB P3.7,SXC* R9 _6 t! }' n' ~3 [
DJNZ R5,SB36 X; I4 o' l b# \
DJNZ R4,SB2_13 P% [/ z( \0 x; B
MOV R4,#2
2 m! |* }% G' u- [" {/ N JMP SB3_16 n9 Y0 C+ {, L+ J! i5 v5 y
SXC:
( W- D/ U3 q' r8 O5 S MOV R5,#5
8 p4 R6 b8 p3 P; BSXC1:0 t# C* q* m3 f
JB P3.7,SB3
0 x& c: |1 @) b" Y( D" e$ S DJNZ R5,SXC1
% u' n# g0 Q4 E& c# o4 ~$ L JMP START u, |2 k. n. T
SB3_1: # e, Q, Q, K; }6 {; k' v
MOV R5,#250" w% w9 S$ g! U2 I
SB3_2:$ P( O7 [4 w+ c3 g' V" q
JNB P3.7,SB4# I6 c. q/ [9 ^# ~, Q% l
DJNZ R5,SB3_2
5 g3 n X/ Z1 P( L DJNZ R4,SB3_14 F8 n7 X1 F/ s5 ~
JMP START0 l! ?0 j2 j6 p$ @
SB4:
# a. L& o+ R2 E, U* K MOV R5,#5
# W. ]( x. I6 I6 X5 e( M2 wSB4_1:
: T8 N! Q9 }8 ? JB P3.7,SB3_2; p; {+ G2 Y) S) L4 g( u
DJNZ R5,SB4_10 Z6 H4 u1 }7 C5 T3 f0 l6 G
MOV R1,#1AH 3 } l3 F8 B% Z( _; A
MOV R2,#44 f; z' C" c% E l8 K2 u
PP: MOV R3,#8- h2 o3 L9 X& ]
JJJJ:
4 i7 Z; ^1 k U( B- N$ f2 h MOV R5,#250
( x, v3 \5 g; ]3 ^JJJJ2: 6 f# b' b/ ^0 P' _0 d$ i# h# y
JB P3.7,JJJJ3" f) R7 d5 V2 m* F# y
DJNZ R5,JJJJ21 ^4 I* d' h! ^& B8 s
JMP START& [( S: v( K# h; V: z
JJJJ3:$ T* b: [& i( y5 i4 T+ {& c
LCALL YS1 H$ J! o4 H/ P# U# @
MOV C,P3.7
, c: l2 }0 Z7 n! Q, q JNC UUU 5 u' K$ L# V3 o: @. [% B
MOV R5,#250 J) O2 i9 {7 U
JJJJ4:6 f r. `% h( S! C3 J
JNB P3.7,UUU
) h% A0 J9 o0 b3 o+ o4 M7 a% \ NOP) _8 q7 A) [$ H
DJNZ R5,JJJJ4
6 H, N$ K( Q( ]4 w7 P# C0 W+ m JMP START
1 Y* X2 {/ J5 f5 h" @2 D; n( Q% FUUU: MOV A,@R1
; L& H2 ]" [! V: X1 S RRC A
7 v6 h+ E/ m* Z4 ~ MOV @R1,A 4 V/ u3 `; ]1 T' } X
DJNZ R3,JJJJ
) W5 O' @# I0 N. R+ l+ G INC R1
# |9 f( Y9 I+ e- C! n% W0 c DJNZ R2,PP
9 s, Y! }$ t- E, A1 E- ?% j
2 E+ D2 }( I6 ]6 o M* R1 q9 K MOV A,1AH : I0 p) S7 n$ k9 E# F+ }; L# ]+ C
XRL A,#11101110B
% v$ e d u. m$ U' I- P JNZ EXIT 1 U! e: c! s/ T; h- z) L1 J
MOV A,1BH 6 [% x, Q- B/ y" L! y8 c% k I
XRL A,#10000111B, `( @" M4 x0 q/ r
JNZ EXIT 5 U1 n0 z; n% x9 U# F5 X3 k$ {
LCALL YS34 H( R) U: t& d. v' t, p# g
MOV A,1DH 0 r# n5 z; i" u
CJNE A,#10111100B,EXIT
# U9 D. n: {7 n0 M LCALL YS3- j+ J! h- u8 _
CLR P2.6 ' f) A, Z3 T; C3 x2 q8 a! f
AJMP BIJIAO
0 l, M0 a) j- }1 T8 T; R* w4 u
N. h: x' e& h8 l3 zAA:
3 _5 v5 p+ J: Q. u+ ?, M: N/ m MOV R1,#25
c) @" S" E8 H3 J2 OXX:
9 ^( R4 z4 Q! p: G, I ACALL YS2$ u3 ?9 a& S# f+ N( C5 V2 n4 K8 ]
JNB P3.7,HH / ~4 h) k9 y& W0 A- ^
DJNZ R1,XX
6 `) Y2 h9 B5 x; ~$ @EXIT: ( V! f* Z' `1 H+ _5 z2 T6 B" I5 o
AJMP START) U6 l$ Y4 U" e F! p, a. v
/ |- \$ F& [5 PHH:
. n/ g* C, _" X2 R$ ]1 p# r2 M) V MOV R6,#4
5 D8 q. Q0 {& h8 [0 mS:
1 d- Q4 G$ U) q, u3 r( n ACALL YS1
9 m' ]) k1 b/ g JB P3.7,EXIT , B: e! F5 u( M# y# l) e3 x0 s
DJNZ R6, S 3 z3 \7 a/ J, V2 q
JNB P3.7, $
3 ^5 y" }2 U9 ?% m, t% _ LCALL YS3
d9 q: I `+ a2 S y* | AJMP AA& i# a8 ]" V I! N1 r: ?0 K; f
BIJIAO:
~, V+ ^9 l6 `# n- E MOV A,1CH ! Q& L7 o0 p1 i* s, M
CJNE A,#03H,N1 / j9 e8 Q& H8 s* V! Q# k. s
MOV P0,#7EH
% U% g& v7 i0 @0 R& y$ Q! q0 ^) e ; h+ _- \* y1 c7 T, y
;处理STUDERV录音机控制码$ S& z9 E2 |7 r8 U5 {9 k5 v
N1: 3 T9 H0 ^3 M' K1 ]. h8 [1 N% F
CJNE A,#5FH,N2 ;播放键; k7 C1 w+ ~7 E7 N# J1 s3 `$ Y" k
MOV DPTR,#REP
' |# b4 C0 N+ ]! F4 l2 K e* o8 r ACALL SENDA
# v! ^2 e$ H8 t* P: d7 s ACALL YS4
( T" ?- K m* ]3 Z7 `4 o MOV DPTR,#PLY
$ U% O: d. s4 a6 B z% o( @; e ACALL SENDA
; p4 i; k6 r+ v ?# G/ X; _" dN2:% x( i5 N2 ^( W9 D) H5 E( z
CJNE A,#5CH,N3 ;停止键/ ^0 C* { i4 E* i* Y
MOV DPTR,#STP/ ^, E2 O) X4 |7 q7 v7 K+ `
ACALL SENDA
: P5 D1 | t. I5 I+ ?N3:* }5 [; D! j$ O; S
CJNE A,#06H,N4 ;快进键7 `2 g0 k9 G/ \3 i
MOV DPTR,#FWD6 }/ M/ \" s. p! N
ACALL SENDA
! ?3 [- E& O9 P) }. N: n7 O- {N4:" E6 Y% K8 ~0 z( K1 s" |
CJNE A,#09H,N5 ;快倒键1 N' T2 ?9 W4 `& F ?- e$ ~
MOV DPTR,#RWD
1 {* e0 u4 ]6 I$ c8 V, {; u ACALL SENDA+ k- B: D! r) ^
N5:
8 e+ S! n% Y9 i' [0 R4 `; {3 k7 B CJNE A,#0AH,N6 ;置零键
2 ]" C6 _, D: p. a MOV DPTR,#RTM$ I) F$ I& L$ b Y# J+ h5 R
ACALL SENDA
) X3 G4 `4 H( m$ aN6:
# C `4 A: A' \& z CJNE A,#0CH,N7 ;定位到零键
; F% O% K, x$ Q+ e6 G MOV DPTR,#LZA. I, d! J% m( x: `; B
ACALL SENDA$ D: t" n( Z1 ^$ |- n' b- M2 h
N7:
: x6 \8 D" m3 O# P1 g3 @! B9 @. W AJMP AA1 W0 H/ @9 Z+ B0 d) W
SENDA:
3 B. Z! c, W5 R+ E CLR A
4 V) k6 V2 }* V0 X1 ~ v% p' R4 h3 O MOVC A,@A+DPTR
/ H; q/ \" z+ ?) f( I+ v CJNE A,#'$',SENDB4 S4 J6 g( s+ Y) d. l+ o
AJMP SENDC
8 p* ~; p/ e. H- H4 D: ISENDB:
6 B+ p x9 w" u; D# W, B MOV SBUF,A6 o+ N& {, s8 v1 |
JNB TI,$
0 M; D4 ^% m1 V( }- t4 r CLR TI
; D8 Y% T; x" u9 I3 J6 v6 c0 O INC DPTR5 H9 a! H, x1 N6 _
AJMP SENDA9 U: Y: e0 a7 u' c- X9 K, s6 O6 d
SENDC:
( |& w) z. Z4 Y+ f RET
: y/ i" K0 x. }6 r# K* w( V5 {3 b: ]4 h$ D& S( n6 [
PLY: db "PLY ",0dh,0ah,'$': g0 g0 ~9 u, l
STP: db "STP ",0dh,0ah,'$'9 M4 C3 B6 T2 P5 [
FWD: db "FWD ",0dh,0ah,'$'
: D; j9 `0 {, ~RWD: db "RWD ",0dh,0ah,'$'
# x# u# T* t' i* f1 nRTM: db "RTM ",0dh,0ah,'$'
6 O% s5 T2 z) W2 [1 j/ _LZA: db "LZA ",0dh,0ah,'$'( {, t) I0 B) o5 y
REP: db "REP F ",0dh,0ah,'$'
, f) `: K' s% S9 k; r+ b8 `2 H6 c9 m; _% w* u
YS1:
9 |6 J, ~6 p" W# T MOV R4,#206 D# ]. B- H7 \
D1:) i1 p. ?! ]! `
MOV R5,#20
' z# n+ l# f* H/ B) W# m2 p6 j DJNZ R5,$# T$ n6 a( [5 _( P8 q6 |
DJNZ R4,D1
/ v7 z6 R5 d9 R7 F4 p: ? RET
1 E" y. Z4 K5 r1 ^. e
6 z _4 z2 m3 B B D, X9 A$ \YS2:
5 V1 R, P4 `$ ] MOV R4,#108 V( D" I5 h/ n, V" {% ~7 n
D2:, X1 f5 i* g2 p( R; {+ w9 N
MOV R5,#235
7 s3 [: `3 c! J5 E( ] DJNZ R5,$8 |2 T5 q h/ @* Q
DJNZ R4,D25 P! v' M0 n: k- x/ ~& t1 h
RET
) z4 b3 {( p2 W$ v0 J5 {2 q/ l' L: \: u1 y# A
YS3:
0 Q9 D* k' y' K MOV R4,#23 v2 b- T* K" K8 I
D3:% g4 R# u* S; o- T
MOV R5,#248
8 _3 m+ W. P2 R# Y DJNZ R5,$7 h4 p8 U( U% j7 o- `0 d
DJNZ R4,D3
- I% u; g' ~" S) M4 i RET; C2 {0 W4 F; h* k0 D
9 e8 l* r/ Z' J% _* {7 BYS4:
/ N2 l. A& @. P( S8 ~5 W$ X MOV R4,#200. }9 r' S) T6 m6 V- ]0 {0 e8 G
D4:
9 J, A) _" q) [5 s MOV R5,#248. }7 ?# O% w# n, |/ [' ~- v1 b3 L+ R
DJNZ R5,$
) r1 ~; `: }4 T5 B DJNZ R4,D3
8 N7 P ~! D, p; z; a" z RET( s3 n a9 }- I4 \7 V/ `
END( J9 _* @# z8 q# s" [- X
v9 `& ]& N- T" ^4 e$ M
有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。5 e) k1 g Q2 j n! d+ u
是不是很惬意,嗯!
7 S* O; P6 ?7 T. K3 j, h3 L0 w |