赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
0 f, y. D; X' i- R
9 _7 l! K q) \1 ~本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。
" [, Z }/ _3 P
' ^0 {8 I) a: I: V: i ?5 z- A: o' {说明:
: x& ]( d& } ~6 t1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;, a( U, r( r( }8 y& ]
2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;# E: r' O# G/ ~3 F
) H2 L% g3 y9 T$ a1 U8 A. ^5 A
一、基本思路0 G* P5 {8 E4 n/ Y8 H/ C
使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
/ v5 Q& c+ L- {: D, q* V1 d v) b- j
二、红外遥控器+ m' t& \& N; T& A: v' b( y0 }
我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
0 h/ S, M1 g. q1 M G
- x9 D! J j7 j: n! h( v好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
* E& }9 x c7 v8 T/ P, l
+ g) C8 X+ F4 k A
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
. k; E+ J1 R9 Q# I6 G
- N9 f5 R. A# k( n7 g* @
9 x! I& X; s P( T' [4 f三、红外编码7 o* W/ @. }1 q9 `% E
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
/ ?: K: V! c( n7 m前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。- f1 W- q/ M9 m1 M3 U. K) h/ H
后16位为控制码,主要用于实施具体的控制。+ |% ~- Z; i+ A3 h$ N) R3 c$ L
这16位中高8位和低8位互为反码,以提高可靠度。: Q1 b% F) K' R4 T$ a D
s1 j; t$ n* o j( {5 I9 ^2 Z( P
以播放为例,其编码如下:- R, ?( o* J, f, R7 w9 [" r# ~9 |, C# ]
00000000 00000000 01011100 00000000* Q/ [/ v+ z4 c9 J
7 `9 \- C, ^+ O; i: s$ d1 n
你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。7 n8 a, n( Q' k# B8 s
0 x( v2 Q- o: }) E- C: V ?& V7 z
四、单片机系统
7 y/ E( B0 K8 X" w4 M这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。
$ e1 j v r Y: n: L( N
7 {6 m7 C9 Q G! `
% P2 k: l2 i! R/ _3 D
电路很简单,功能如下:
( i( F% C+ n" h/ ~" K- d1、一个AT89S52单片机作为核心;! ~- d1 i8 t6 H
2、一个TL1838为红外接收头直接串行输出数据信号;
2 S' @, E; i9 j" ~& }& @3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;0 G- v: |9 A ?+ _6 T
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。/ F! W* r% a D" b
$ P5 V0 S# ^# A" V: A# a$ V
关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
2 P& P S- j- F+ @: u' }
* @6 X6 U9 I) L: q0 d, |7 Y% y4 s' F0 X6 f+ l& B
五、控制软件# `3 s X% L. q& q7 ^* H/ F" T
控制软件用汇编语言写,源程序如下:& A# t/ G% |- m4 h) E" |
ORG 00H
8 \% J+ Z' {6 u2 Y; V9 S5 q LJMP MAIN
& b3 r3 m3 j/ s) V ORG 30H: q7 D1 K* ?* _
MAIN:) [0 V7 B& f0 m2 W9 ^
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
5 B, ]/ [2 _; q9 u MOV TMOD,#22H ;22H
; I7 h' n( Z1 _' s MOV SCON,#40H ;40H. N8 d ]. C- h! e( U( D; `+ G! u* j
MOV TH1,#0FAH ;F3H( ]* C& R: a7 g/ ^9 ^' K! h
MOV PCON,#80H
$ z& ~* N) K3 U1 q SETB TR1+ R5 B o4 K) ^- b4 D Y
START:
6 `! p" T. Q# z+ V5 o! D7 R JB P3.7,$ ;遥控信号处理, r: h2 V' ]8 A: ?8 W
SB:7 {9 J, k& N9 R7 C
MOV R4,#8
0 F2 d1 u, l5 g& tSBA:, m3 y9 m% C( ?
MOV R5,#250
, @* p% m* D' SSBB:+ X; k5 a* y" B0 A
JB P3.7,SXB19 b, H( n v; a v" W( R
DJNZ R5,SBB
0 P$ @" h+ M; _# J3 |7 n DJNZ R4,SBA
5 ]6 R1 M& N6 u$ K$ | h" l3 P MOV R4,#2# O7 o6 r; p2 g0 L9 u9 U
JMP SBC2 X5 K8 n; j0 v0 i! c; k
SXB1:2 S/ R: B- Q5 _+ w5 o. `) [, t
MOV R5,#5
c$ c& @/ t9 Z3 Z; C9 Q: [7 |SXB2: + K' C/ j9 c n+ ]
JNB P3.7,SBB" j2 u& R, J9 }+ a6 Z9 h: E; L- |
DJNZ R5,SXB2* e6 P+ g! G; q5 l8 H6 k
JMP START
+ o* I2 q- g8 vSBC:
4 z( Q$ K* G; S" z+ q MOV R5,#2505 b; D' U3 c! v* k; j
SB1:" D4 y$ D7 C& R! K% x+ n5 K
JB P3.7,SB2 5 ^& J v- Y9 {' j; t
DJNZ R5,SB1( ?' t7 B; n2 y; r! C
DJNZ R4,SBC
. P6 T) P2 e! p* S$ w JMP START
" ~# j0 |9 C Z3 y/ `- U0 U8 ^SB2:
+ e$ p6 o# R3 Z8 Y+ K1 J' w MOV R5,#53 \+ t5 g7 @2 K, a8 y
SB2_A:# ]; _ v% b; t6 _: D7 L# m
JNB P3.7,SB1
: b; H6 Q* O* S, z1 R$ m1 o DJNZ R5,SB2_A" V& u/ D: n: c0 J" J( c
MOV R4,#3( G L/ a& Y: I5 i
SB2_1:# z8 C; \; X& Q
MOV R5,#250
5 X1 y+ G7 n& ]+ E& E6 Z7 ]SB3: l' G, l8 _0 h3 |
JNB P3.7,SXC: E2 m* N" k l6 K
DJNZ R5,SB3
; }' A. M$ S7 f3 X0 T DJNZ R4,SB2_1: N3 Y) v) |" Z3 r( o
MOV R4,#2
+ i+ @/ r7 l- ] JMP SB3_1- }- t" S) U+ j# x3 d% S [
SXC: % F7 Q9 k9 V/ \/ [( T
MOV R5,#57 `' }' F7 Z( U+ U
SXC1:
' D5 v9 c/ n; C9 K+ j, R JB P3.7,SB3' m) ~* E1 y' W) v A, ]3 ?
DJNZ R5,SXC1 y# x$ q( k6 [: U9 k) D
JMP START1 m# z3 {' o) N+ S/ ?
SB3_1: $ c% y. b2 C% O; B8 M& ~; m3 O
MOV R5,#250
7 A. _9 {* a/ k7 a# u# g: x$ m6 ~. fSB3_2:" Q/ v, J& z5 {$ f: T: d
JNB P3.7,SB4$ O" T1 m% @2 T! P5 J" P
DJNZ R5,SB3_2
& R, t9 h- y) c4 [ DJNZ R4,SB3_19 q5 P/ r4 z6 Y0 ]( Y
JMP START& }3 e/ H. p8 I
SB4: . [4 d8 W: \! K& ] u
MOV R5,#5* X0 _5 l2 O: P# E
SB4_1:
. l4 y, i) r$ d4 R, f! }/ g JB P3.7,SB3_2; H2 j' m2 e5 B; S- `- t0 I0 F
DJNZ R5,SB4_1
, h6 }8 t5 _4 F MOV R1,#1AH
' }: J( K9 k2 g9 Q' Y MOV R2,#44 n/ \! {) A7 T+ A# J6 Y9 |+ L
PP: MOV R3,#8, L+ h# n: Y$ c* h
JJJJ:1 W4 h# L: X$ b
MOV R5,#250
( L& N# |$ i- PJJJJ2:
7 n W- Y3 X, c5 ` JB P3.7,JJJJ3
& f; q, E9 t6 F- Y1 I- S3 t2 C+ c DJNZ R5,JJJJ2 L' F: V1 H; a( N M8 f! u7 p
JMP START7 |- Z" ?& I1 `1 [9 ?$ T; G
JJJJ3:+ I% P ^0 o& b% q0 a
LCALL YS1
' ~8 F& i' X/ p7 d6 r" A: ? MOV C,P3.7 ! D9 e( O7 d* B- S# m4 c% T
JNC UUU : d) H; F4 E. q
MOV R5,#250
/ w' f: h3 F. H& Z- qJJJJ4:
1 i# e+ g, @9 H/ l! ^ JNB P3.7,UUU; |5 w; [4 d9 K$ N* V4 ?% x6 H
NOP1 o; u- _, W& q( A
DJNZ R5,JJJJ4" U$ e3 p, y3 _% `' q! A% H( Q2 E
JMP START5 _* M5 K$ v1 p4 E" ?) H6 m& [, t
UUU: MOV A,@R1 8 ?2 g& ~2 p. I- ~; T* a4 |* X0 V
RRC A / ]% n8 ~; e8 M( ~, X1 h
MOV @R1,A 7 u$ f( Z4 w6 \2 [
DJNZ R3,JJJJ # o5 K' v% Q0 g: X8 Y
INC R1 # j1 A8 ^& a# i8 k/ ^
DJNZ R2,PP ) M7 a. ?' J' b5 S4 k
5 e0 m2 t) N! |1 `2 W. F; m, H& u MOV A,1AH 5 T+ ^9 v! d! \3 {
XRL A,#11101110B1 |5 [# G0 O: N5 f
JNZ EXIT ! d# t5 e: E u7 q7 o# a" @
MOV A,1BH
, g# f; x3 L( [! R% k6 K% a XRL A,#10000111B
6 F3 u+ p9 ]: } JNZ EXIT 5 _9 ^% W+ `" Q$ H# C
LCALL YS3
4 c7 Q* ~% [ E* _ L7 I MOV A,1DH 4 N; Q! f2 I6 B% d, @# f: R
CJNE A,#10111100B,EXIT
3 }' h7 P" {2 W1 K3 E6 T, S: Y LCALL YS3
+ C* Q& U3 d3 W/ @9 B5 S# G- A CLR P2.6 * O6 J4 A) Z" k
AJMP BIJIAO
" }7 g; s# r+ y e+ p: D! u
3 e% J* i" l5 M2 V" J4 tAA: 5 C* f/ \9 J9 ~2 o* B) S5 E
MOV R1,#253 t$ c2 C# A3 Q- d
XX: : _& l$ R( A$ C# C1 z) w
ACALL YS28 g5 K' l9 `, H- b: R9 w" e
JNB P3.7,HH
: P1 e) M0 ~! G- |: ^, c2 o# a DJNZ R1,XX2 m# Z/ t- i# G- P
EXIT: 4 W6 y0 T% o+ W0 y8 }
AJMP START
# x0 ~, h4 y% A+ g% `9 r3 @ # n4 t9 F6 K4 Y( {) J5 G% A
HH:
. n0 E( k8 g) x MOV R6,#4. @- u O" L5 F
S: + i, }+ o- Q" E) B+ H
ACALL YS1
" k, Q' a, z) h4 r/ D/ P9 g9 r JB P3.7,EXIT
1 P) I1 B0 c# T8 U! p- D DJNZ R6, S + @# Q6 H/ Q: k1 V" M
JNB P3.7, $ ! U6 Q' R; q. _1 K8 q
LCALL YS3
) V; V1 K5 h0 x AJMP AA6 y' l0 E" y5 b ^9 |2 Z
BIJIAO:
d9 ~0 {: C# G3 Q MOV A,1CH . c2 b- A# f7 J* M# ?
CJNE A,#03H,N1 4 w* d) T- O( j
MOV P0,#7EH
; t5 H. i5 L% ] s
* ^6 Q$ z) E7 k7 F5 F ;处理STUDERV录音机控制码
1 n4 N. F5 C" b5 B, \. _- N) g5 yN1:
+ n/ {( S' W- E0 G CJNE A,#5FH,N2 ;播放键
: c1 l4 f/ K, c1 r, Y5 [ MOV DPTR,#REP
0 y6 f) r4 d' a- z5 X& X9 ? ACALL SENDA; M8 w* O0 ], [
ACALL YS4
, `) ` h9 a V3 Z MOV DPTR,#PLY
8 z* A" X3 q- n% l Q3 M- R ACALL SENDA
- O1 y' d3 w* NN2:! o. `$ W7 n! n4 P
CJNE A,#5CH,N3 ;停止键
! v1 m; p4 L9 N) Y# }, ? MOV DPTR,#STP; F% ]* c4 F/ {# j+ b
ACALL SENDA8 @/ |6 p4 X4 S! |
N3:
& I3 V" k& P4 |/ l% A CJNE A,#06H,N4 ;快进键+ t; E$ ^5 e6 p% K
MOV DPTR,#FWD
6 ?+ _: B5 c; q0 `2 u9 a: u ACALL SENDA
A; f$ z* ?. S0 hN4:
2 @- i3 k! {$ H' X+ c% m CJNE A,#09H,N5 ;快倒键
) H) A) h2 L) w) }, r4 [ MOV DPTR,#RWD) Z( {$ i0 c- A3 v
ACALL SENDA2 W# g( P3 ]8 {/ A& C, s
N5:- }. @3 z2 h0 |. c `; O
CJNE A,#0AH,N6 ;置零键
' C S$ {' H/ b! K- i" E7 x' f MOV DPTR,#RTM4 j( y$ r2 c. Y4 J! L; V4 v. [
ACALL SENDA
# {3 k6 h* O$ u* z" |5 l- V2 HN6:' J+ e l# O0 \" [
CJNE A,#0CH,N7 ;定位到零键
( Y+ X6 ^5 V6 G. @; ^/ C MOV DPTR,#LZA
9 P( n$ l* H. b C1 Q ACALL SENDA w; u' }' r5 Y/ ^/ S
N7: i* S p" W; _" q: ?
AJMP AA
# e; K( U% Z. v- l/ g8 x4 Z, ]SENDA:
5 n6 g: [, }" l+ M CLR A: d* ^- }& u/ s0 M& F# p
MOVC A,@A+DPTR5 J$ ]! e1 ?2 h, C, N
CJNE A,#'$',SENDB5 R1 K9 a9 k! B4 H
AJMP SENDC
+ f) _# T3 w: E) \. D/ }, }SENDB:
/ B- t/ c# Z- Y5 u MOV SBUF,A% o( q$ n2 `/ [' i/ B
JNB TI,$
! @: N6 V/ k; E; [ CLR TI
& v! ^% `3 e% \( d7 w6 \ INC DPTR3 w" J' o) o0 c/ n% m1 E
AJMP SENDA! _. s! _" n, \5 M6 @' E1 c
SENDC:
' w# k* O9 U- E9 v2 R RET
( e2 Q2 d5 ] C/ T% k2 D- |' H( ?" g0 r
PLY: db "PLY ",0dh,0ah,'$', H) w W/ v8 r' ]: S" t+ [* e
STP: db "STP ",0dh,0ah,'$'7 Q) D6 H! A- G! K
FWD: db "FWD ",0dh,0ah,'$'6 E" l* M- B! w( v6 v2 P: v6 N
RWD: db "RWD ",0dh,0ah,'$'0 w) a7 l- t% Z* i2 `
RTM: db "RTM ",0dh,0ah,'$'$ @# J$ d- V6 l" c6 B) E
LZA: db "LZA ",0dh,0ah,'$'2 H7 {9 Q) F: w1 b# a( l/ g( n
REP: db "REP F ",0dh,0ah,'$'5 v& n8 d+ D/ ~
6 w( {' L/ c8 ~5 EYS1:& V8 s; b' }8 W" z3 o, n( X7 n
MOV R4,#20 y3 J+ l. c" ^3 G9 D9 o) f
D1:
, @) b* ?8 z9 p/ w% f MOV R5,#20
9 r7 z& a6 U; b. ~. u) H$ }* H DJNZ R5,$
5 P8 ]7 d0 D0 c DJNZ R4,D1* R b0 O9 [8 d' A7 N( Z' N2 i
RET( B1 w, }+ X. a
2 ?. {8 I! a0 p. V1 K: o
YS2:
; n. A- b6 L9 v- @. M/ o- H MOV R4,#10% L0 j' [! r6 p& l8 Z5 \. u) y
D2:
) K! R/ q' d6 S7 G+ ]! r! l V) C MOV R5,#235
+ D# G9 {+ d& }7 ? DJNZ R5,$& t: Y+ o) J$ ~
DJNZ R4,D2( t/ j9 ^# T* Q. C+ G6 @
RET) [/ F6 s" M* G) B3 R+ U
. Z3 y. `2 w1 [/ cYS3:" _/ h! A) ~1 D: z) o# F
MOV R4,#2# F* ]0 |5 M/ Q( [3 ? s$ }; j
D3:( y9 ^$ t" z, m3 f
MOV R5,#248! Y% Y! y: P- M
DJNZ R5,$4 {' h2 n. B) Z4 i
DJNZ R4,D3
+ h: @4 J0 i4 X, L RET
. a) q# O2 }1 a' V7 U" L- ]) g9 I F* ^. g$ I; Y( C
YS4:7 j3 P6 N& W9 Q& M
MOV R4,#200
# H# s' T! I$ b* Q" u$ lD4:. F C3 ?1 ~+ H8 ?/ i! J! |) q
MOV R5,#248
: y" w& `2 A5 s DJNZ R5,$
6 q- l& ]1 z! d/ O DJNZ R4,D3& k0 d7 P7 ?) @$ [1 I$ [
RET/ A5 t5 b+ ]9 o" L( [
END
/ ^. M x$ b$ U% Y
$ l/ R) L+ Z1 l b! I有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。8 _5 t$ U+ l1 {( R5 M) E, K5 E( }
是不是很惬意,嗯!
! t6 W2 M, h$ l m) l |