赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑 " A; ^2 X a) S8 c$ S5 x
( L: P) u/ G. X2 y3 E# T: L本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。
9 m+ T. x' n- R$ t& Y1 d
6 E! s* W# N* j) z1 H, y# B说明:
: c: @1 h7 H/ r0 Q) k1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
M0 ^+ j8 V/ ?, a r" \* m0 I, V# ^2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;7 J7 M8 c# B/ t
. q' Q1 L. | Z% ^' t" g一、基本思路
4 \; \( K2 a* x4 i% h3 K7 ?3 W使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。: ?% N5 d4 g2 Z8 r e& m9 Y3 P! u
7 x7 F, c! G) C" b& K1 `' k
二、红外遥控器# E2 X8 H$ L/ n
我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
5 x8 `6 A( y+ V
8 \* O: |( h2 I, H" B# g7 p好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。+ B1 k8 ~: D+ B3 V9 F+ R, j3 G
: e, S. W6 K% y. J$ t
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
0 z9 B( p6 @; U
4 q( S) g9 I; ?/ O- A
# Z, {8 B, o- |# N2 _ b! Q4 S三、红外编码1 f( m; {2 c- F$ ?3 q& f
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
- \1 _ E3 b" Q前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。) D9 N* F- e& d0 I: m: p2 {5 @
后16位为控制码,主要用于实施具体的控制。! U q5 e5 O7 ]( B# E$ _, u1 {
这16位中高8位和低8位互为反码,以提高可靠度。
6 x( O. B6 g, b) n) Z9 R0 J& H ?* J$ r
以播放为例,其编码如下:( J0 y( \: \6 Q1 s6 g
00000000 00000000 01011100 00000000
; e A4 f) B- r& z, c* U6 D* C0 u, b6 L) m& z
你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。3 P* c. @$ W$ [1 \
. x/ h' X, g& D( W+ L四、单片机系统4 |2 s$ N8 W3 P6 j+ {( [! A
这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。
! J _* M! R2 I* d4 C8 M* V. e9 i
) Q V( T( g2 B2 E. G/ ^ 2 ]3 m* ~+ G2 |$ ]4 E. D& ?
电路很简单,功能如下:
# p! R! p4 N% F6 Z: \7 C' @1、一个AT89S52单片机作为核心;
% [5 L$ ^( Q/ @) @2、一个TL1838为红外接收头直接串行输出数据信号;
* t; j! B% q" R3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;
- t2 Y( J+ r1 g- N) T- o+ s4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。
P. B( R3 E* w3 \& Q0 @/ U0 u
J$ H0 O% }) |, v8 k关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
1 r9 s$ o s2 p# ^7 u3 T& |; g* ?, z" o5 P8 Y! N/ `3 m
- J# D1 V4 l4 J# {& b$ e
五、控制软件
, b; R {* M- c* r$ e; @控制软件用汇编语言写,源程序如下:- z* A. }2 f3 v) ~
ORG 00H
2 a, d5 D7 u+ U: ]* F; g3 }9 N; Q LJMP MAIN
; g* W6 G$ i1 [8 X ORG 30H
2 K0 d+ D* r4 U' LMAIN:2 T" B _6 l R4 ?& P( c
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)1 v. x2 w7 d3 s4 U9 H4 S
MOV TMOD,#22H ;22H
! J4 s/ o- ]+ R: p: A8 o MOV SCON,#40H ;40H) }) p# x- U5 H+ ~' }
MOV TH1,#0FAH ;F3H n6 f5 d6 G6 h2 A3 S! X% V
MOV PCON,#80H
4 z5 H/ O# x/ N U4 Q. N: ^5 o SETB TR11 B1 p' \6 f( i& L
START:0 d& m p& p( X: Y* _
JB P3.7,$ ;遥控信号处理
+ p) Z3 t4 n6 Y) gSB:
# W& V% K) B7 ~# W, C2 u MOV R4,#8
8 N2 b4 n7 a' [+ R' @SBA:
& F$ {6 V' F1 C2 d! B MOV R5,#250
6 c, M1 j* O1 X4 v5 wSBB:
- S6 h+ \. L4 m8 k6 p# L! B3 Z JB P3.7,SXB1
- r- Y6 Q4 d0 S. B% }; V DJNZ R5,SBB3 Z9 O9 N4 ^, x& L
DJNZ R4,SBA& t& q0 D8 a2 \. k7 {
MOV R4,#2
% l; V. v1 z5 A4 O, ]/ r8 A& m JMP SBC
; ~2 i; \1 N2 D4 \8 gSXB1:, x9 s1 D6 ]6 ^
MOV R5,#5
- q e) Z- p; eSXB2: 6 S( b8 [$ j8 p( N% ^& l* T
JNB P3.7,SBB
2 B' F j7 n3 M* x/ ]7 h+ f DJNZ R5,SXB29 H3 E) Y+ t$ S1 A% G7 e
JMP START! N# a, Z# ~. S$ u+ n7 `2 n2 ~
SBC:5 t7 y! ^; T7 V7 ^8 t" F
MOV R5,#250# [( b) ~" C. @- Q# i5 M
SB1:: |3 r& ~7 x( G
JB P3.7,SB2 * Q' v0 o9 f0 C) h8 N
DJNZ R5,SB1
" q3 \% l' F5 C, |& R: u9 Y) D DJNZ R4,SBC
/ {5 d8 J6 |. u& C JMP START3 w) a% i+ P) m$ k. p1 q. _
SB2: . ]6 L4 w* A& M& f; ^9 L/ B$ \
MOV R5,#5
' V* c% B, Z5 M: i2 k) CSB2_A:' C. ^7 u3 q: M
JNB P3.7,SB1
L4 p; o1 a* T3 L) j2 m- Q DJNZ R5,SB2_A
2 f7 h! D' E8 a( K) A; C2 X2 E MOV R4,#31 k1 R1 h/ e; M
SB2_1:3 ~1 A& N7 y! m* v& G5 o0 Z$ m. e
MOV R5,#250
* D, S. V! Z8 ESB3:
1 J: q, o1 e: K2 F1 ]: A9 x JNB P3.7,SXC
3 U6 U, z! I0 \+ X1 N% A' W DJNZ R5,SB3
, I$ i4 r" `, s2 K DJNZ R4,SB2_16 ?6 I! \$ U7 `7 P+ I6 a ~
MOV R4,#2
! Y% F5 ~! i) v2 V2 U. Q5 O JMP SB3_1
4 s9 B! G$ W0 SSXC:
4 z4 Z, G- t7 |1 e MOV R5,#5
3 P8 h; ~6 d) K2 dSXC1:
) K' W h w0 w8 L; b JB P3.7,SB3- z" V- T* t" m2 m! M
DJNZ R5,SXC1+ Z5 ~+ K; A1 b1 u
JMP START
5 u- }9 k# r6 u; H# B0 |SB3_1: 8 m. F8 Z" T2 K7 h3 Z3 w. `( V7 g" {
MOV R5,#250
5 r. t4 S& Z8 mSB3_2:
# u' y' O. q0 `' m6 q6 E% P3 j JNB P3.7,SB4
X& j' s) {. I6 O DJNZ R5,SB3_2: ?7 q: `1 q7 g& D |/ p
DJNZ R4,SB3_1. g5 u4 z* @ n! t4 A; w( a
JMP START
6 G6 j9 F+ D0 q& ?1 FSB4: ~ I. z5 c4 t' C, l: O* w
MOV R5,#5
4 Y6 A) N. j* h' ~ ^; WSB4_1:
: j: i2 P9 O+ D5 ^5 q JB P3.7,SB3_2
, i5 m. I6 R6 P DJNZ R5,SB4_1
; k: V/ r& b6 D; r! M! J! d* K MOV R1,#1AH ; S t* y7 Z7 L: ]: `% ?8 {/ l* |
MOV R2,#4) K1 ^ R7 _; P x* ^% q* F
PP: MOV R3,#8& U; Y3 H7 m) x% _* U
JJJJ:
9 K2 o2 z8 M8 H MOV R5,#250( m0 ^) j, V, _4 C
JJJJ2:
. G$ P0 w. W1 P% A) d6 i JB P3.7,JJJJ31 G4 l; q; Y% i5 u8 U
DJNZ R5,JJJJ2- k; t: o/ Z# Q( F( d$ `
JMP START' o- r/ } q4 L
JJJJ3:
* y& ^* J, B! k# E) X LCALL YS1 # ~9 z* G( |' m2 s6 u Y, n. n& W
MOV C,P3.7
" z/ F( |+ n0 _, D9 Z! i" j/ l JNC UUU
" P1 l+ S" \& j/ | MOV R5,#2505 r& D0 |3 L3 h; k- f0 L5 z Q* @
JJJJ4:
' v* @9 R% E8 h, h5 k) k Q JNB P3.7,UUU
f7 {; f) D6 R0 h NOP8 H" E" F$ P) v' c
DJNZ R5,JJJJ4+ S! S) ^9 P. _/ o* i; f
JMP START
z$ I6 ?/ \; y: \UUU: MOV A,@R1 2 E. t# _( Z* t, D- {: G, D
RRC A 8 R0 a8 V( f3 g8 L
MOV @R1,A
8 y1 x! z, @* @+ P& n+ ^ DJNZ R3,JJJJ
; u, }$ r7 k6 \% a+ Y INC R1 4 ^( j# H. r }& l7 b: a* a+ R
DJNZ R2,PP
* I/ j! u, W9 i! x: y: v* I3 U' h
MOV A,1AH : U+ x4 u& U4 i- U: L8 o& V
XRL A,#11101110B! `% c1 _0 { C5 i8 P9 y2 P0 z& ^
JNZ EXIT # P9 U% N6 S, P5 X. v9 |
MOV A,1BH
5 ^7 F( J& s$ R- n. F- |+ U8 p$ p XRL A,#10000111B& v: p/ }5 t5 |* a* D
JNZ EXIT
- E9 C, \0 j5 w$ p/ q LCALL YS3
% Y6 p1 S, f7 |# W/ u' p! P MOV A,1DH
3 j, E8 d1 u( _, a CJNE A,#10111100B,EXIT* @* }9 `) v8 _( P
LCALL YS3! K, l2 K# q/ c l, i
CLR P2.6 & \- \% z8 Q1 v
AJMP BIJIAO
7 @4 `; i+ E3 P+ c( t, \
$ J; j6 }3 r3 p& e% ^+ \1 l9 ]AA:
: D7 F$ g- H+ g4 N MOV R1,#25
6 a% b! S% d w% U4 H7 |XX:
: x( T, {5 @0 W5 w5 T* [ ACALL YS2& k5 Q% r) \4 a! x
JNB P3.7,HH
* I0 W8 n+ g( `, \$ I, P0 o/ t DJNZ R1,XX
$ s; L I8 P6 U+ VEXIT: 0 E* [. W; T, I0 t t E' Q
AJMP START" o8 |6 C# u8 X! i. X8 @& K
# k7 o; _; M, v# A% H0 q
HH:; I/ ^; R/ ~5 j6 s7 }3 t
MOV R6,#4" N2 q- R! G2 m9 ?7 z, X- Q2 b
S: # j, f4 {) a- w8 k9 c1 a2 h
ACALL YS1 / w! u0 h# m: L
JB P3.7,EXIT
. R9 \, j/ w4 k$ ]8 J DJNZ R6, S
6 Y2 K' e ]& K0 c% s* @3 J JNB P3.7, $ E7 ?0 a; O9 Q4 l
LCALL YS3
# I5 Y$ o* X& b! g AJMP AA; y/ ?5 }) S- G2 v$ K
BIJIAO:
5 v- O8 l; o6 X4 h* k# M7 V/ t MOV A,1CH
6 w, h2 c8 P( B/ U( X: s: l9 L1 k CJNE A,#03H,N1 % n& |+ d9 _$ I$ x$ Y" ~; k1 I
MOV P0,#7EH 5 ~: s6 E l3 b1 Q7 E: ]+ @
" K; O3 l# Y6 v+ N ;处理STUDERV录音机控制码
, ]1 v& q! j) KN1:
% \0 q! b4 b4 L9 @ CJNE A,#5FH,N2 ;播放键
; x; C( S9 @9 l; b' o MOV DPTR,#REP8 ^/ ~% S& Z4 F( s
ACALL SENDA8 [% e& ]! A- m `3 ~2 ]& w4 S
ACALL YS4/ M. q, o; f2 ~& V4 P* X Z
MOV DPTR,#PLY
( I$ }7 g* ^$ ^# q ACALL SENDA
% W) w4 I, ^$ ]1 w% k" z9 PN2:
# F, l6 W* Z$ s: t; ]8 v CJNE A,#5CH,N3 ;停止键
0 y4 c4 L+ C6 }1 e( t6 l% g MOV DPTR,#STP! N# c8 c% W2 B/ P) ^" ~/ a, x
ACALL SENDA
7 G1 M, M7 E7 \4 N7 bN3:
3 w$ m+ Y E4 w- F CJNE A,#06H,N4 ;快进键1 M9 A' A2 \% Z' q/ E- L4 D
MOV DPTR,#FWD) g. i C7 ^' ` j/ w- x3 J! @
ACALL SENDA1 u' O, a- X- \; w! L1 P( }
N4:% z2 G& H8 h+ j4 y8 N
CJNE A,#09H,N5 ;快倒键
4 \- W3 i8 S( ]- f/ F4 W' g/ b MOV DPTR,#RWD
) U5 i4 U _$ B3 q$ _ ACALL SENDA
* F' L. O" V/ }: Z$ a# m* ~8 ^N5:8 b( T# `# f' E( X- w+ o' `5 I
CJNE A,#0AH,N6 ;置零键3 j1 b9 t! t' l! G* T# Y; S, z
MOV DPTR,#RTM) M" ]( |! t/ H( v+ J$ R
ACALL SENDA
% f! h# }2 n+ W0 vN6:3 u( M: v. E( {8 N, s
CJNE A,#0CH,N7 ;定位到零键
/ U$ W) Y* L0 H$ p MOV DPTR,#LZA
% ]( K) o' Q9 j3 p- m$ l7 v- @0 a. e* M ACALL SENDA
) B! |% l' L7 p7 Y5 g& [N7:
2 Q' g1 F/ n7 i, e" X2 N) R AJMP AA
6 c1 `+ }5 i) O) pSENDA:
( T2 l/ i4 }; [- P CLR A
; u! O# ]$ s) W/ ] MOVC A,@A+DPTR7 S4 h' B" b; H# Y
CJNE A,#'$',SENDB
7 s3 Z2 p/ ?! t( U AJMP SENDC
1 ]7 X7 |8 d/ N5 qSENDB:& G. ^1 ? S0 E* b: }. Y# f9 m
MOV SBUF,A- Z9 {2 N( S6 D9 }" U: U& r3 |1 z
JNB TI,$7 {* Y6 ]6 Y9 {! H; |2 J
CLR TI6 A I0 f0 r- T$ P G9 s8 F
INC DPTR j6 O1 S1 ^' o
AJMP SENDA8 d5 q' C7 q9 o! R) ?
SENDC:
, D% ~# U0 N4 w! `9 e# r RET
3 Y q( p& [" |3 X3 R6 O) d0 ]( J0 t- K1 Z1 i: [
PLY: db "PLY ",0dh,0ah,'$'
% H {) ^: q$ N5 u4 lSTP: db "STP ",0dh,0ah,'$'# r: r8 I$ r5 C# F7 N4 |) a% N# q
FWD: db "FWD ",0dh,0ah,'$'
+ E1 P x l1 K# U( K+ p. HRWD: db "RWD ",0dh,0ah,'$'
+ v8 P- o6 a% ]/ w) M/ h. nRTM: db "RTM ",0dh,0ah,'$'$ h" m3 }4 ?8 ?( w5 }
LZA: db "LZA ",0dh,0ah,'$'
* N5 ~4 ^2 ~- P! kREP: db "REP F ",0dh,0ah,'$'; t8 V4 ]; a! N- j
3 a# p4 W0 u' E+ `4 y" K; Z- r0 }) C
YS1:
: g0 `. Z5 V8 Q) x7 z MOV R4,#20
$ T/ R- s2 M( `; _D1:
r& t( }9 k- {. I" i7 R, k' a MOV R5,#20/ p% @! f; |" }/ v5 E V
DJNZ R5,$" r& b S/ g- g) g7 S5 p, N
DJNZ R4,D1
' Y! ~3 ^9 Z4 |1 O7 H1 j RET
/ T `3 | Z4 q( G- y- c* t+ O! `) H3 L
YS2:
! H* j- [# }4 ?5 F( R MOV R4,#106 y) K% p7 v0 U
D2:' j2 l6 j+ U2 m1 v# S
MOV R5,#2356 P" e* |- y* k* f# ^
DJNZ R5,$
* e1 D) `* V& Y5 P A) }$ [6 m DJNZ R4,D2
! X3 B0 X* T5 L4 n% |0 o3 H6 k9 G RET
# a& T8 |( d& d! z0 l8 s
) l# X8 v/ h" YYS3:6 b/ _. C& F2 N
MOV R4,#2
& Q4 V+ q" h* Z$ I9 RD3:
6 }1 s9 k' M9 w$ ^& l MOV R5,#248, l9 ^# s) z& b8 ]
DJNZ R5,$6 u$ I! M7 T( `, l4 f0 u
DJNZ R4,D3" R6 A, i M- ]8 W- e
RET
3 T1 `2 u1 t' E+ N( q$ ?. @1 L. \$ u% B/ b% @) I( V
YS4:
5 e8 t/ S) B% i7 R% r4 @ MOV R4,#200
! }: j8 X2 W: H# F- w5 FD4:& u; M2 n& [4 m) f
MOV R5,#248
Y1 \, {8 k6 q" O DJNZ R5,$
9 V6 N6 i5 ~" t( A6 J7 M6 Z. Y DJNZ R4,D3
5 m9 V; Q) M8 O& {: k* ?+ T/ `6 x9 H RET! r1 `1 N: I7 @" ?
END
: Y) s5 F& }4 I" H- u7 y
$ B. N5 j+ D7 c) n/ b. f& A有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。+ ]4 [" g( Y& ]8 R+ y) P) t J
是不是很惬意,嗯!) ^3 R+ H7 a4 Q; g; @
|