赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑
( T, i. T- C3 o ]% z1 C& A6 I A; \* X- N; a" r6 {
本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。( q; L+ X; K0 S- x5 ]5 l2 v
* @2 g n1 w8 h/ I6 H7 [9 f1 Q说明:2 \; D2 R0 v" `6 W
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;: R& d/ t* H4 r# i
2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
. A1 h9 |; b: @* ?7 c# S, c' h2 K w/ ?+ ^- J* v! H
一、基本思路7 b f8 h" Q; R
使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
; x+ v% w v0 _" L+ k+ B7 B; D5 L1 e- X( _% N+ K" ]
二、红外遥控器
1 [0 v5 Q- i; W$ C/ m" k# t. f我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
; A0 O. f2 ]) `* N* Z
, ?# y* g: n( L好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
( P) V! N6 G- V$ e% P" Q+ v0 U
. y+ p+ p& C: p4 S% Z# f3 p
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
# }/ h; R% e6 I0 X
0 \ n% t0 }, n$ Z) R. N- n8 p: \9 h* l/ M
三、红外编码
- j6 k# Q7 v1 S1 j红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。' g& r' }# N3 ]4 t) T! i" N1 g
前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。
& V6 \0 w2 W, R+ S) r2 f% L6 L后16位为控制码,主要用于实施具体的控制。# @4 C7 r, @7 s
这16位中高8位和低8位互为反码,以提高可靠度。
. o: N$ @1 O/ A) A/ Y+ I2 m3 K7 ]* z: _: _* h: X1 M+ S# ?
以播放为例,其编码如下:- x9 U: m' \: b1 s
00000000 00000000 01011100 00000000
; r! g/ o2 l, F( Q" _* I7 `7 u$ M# X- U/ u4 o/ G. u
你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。
' b4 z4 i2 j) a& {' H' y
, o% T$ Y+ r0 r# N) F9 Q$ F四、单片机系统
& t1 V1 g: O9 a8 _0 e* |这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。. T4 z( c5 J6 c# m" K6 G( ?
) b9 z0 ]# k1 r( E
b) Y4 @3 a* A
电路很简单,功能如下:; E: q1 {/ b5 N* m& u6 ~
1、一个AT89S52单片机作为核心;9 S; A4 v K& P; x+ U; W$ R
2、一个TL1838为红外接收头直接串行输出数据信号;
- t. \6 B8 J) o! ~ G* r$ \+ g, ?3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;; p* h) j6 |3 Z/ C2 I+ d$ m5 d* G
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。+ y5 i6 I2 W, V; X* \
( x: O- e4 ^0 O/ R7 `8 t8 K关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
8 ]) |$ d- e; N! ~! k( e8 F6 t% R8 V6 q7 Y0 z4 a
. c$ H5 }# T- |7 }五、控制软件
1 Q! v& Y4 Q( T控制软件用汇编语言写,源程序如下:6 ?9 j: c" M" H8 b y2 \
ORG 00H
; c! }5 y- Q8 U- ?9 c LJMP MAIN* a+ N! D& O' c9 O# g
ORG 30H0 V6 ^: C; F6 O" h
MAIN:
! x& ]5 N; ], l( i MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
% A3 U" K. V: j6 V/ m7 b MOV TMOD,#22H ;22H/ L$ ?" D$ C7 F7 Y" s% }! W4 g2 E- W
MOV SCON,#40H ;40H
' W+ r$ |, i1 j5 |# o. W7 I MOV TH1,#0FAH ;F3H- _- `4 H8 }: R4 G2 C8 K7 T# q
MOV PCON,#80H
+ k; z$ Y& \% d' c: s( f SETB TR1- l9 p% d) y8 X* ?; p; B
START:
% h" I. k3 U5 E4 x1 O JB P3.7,$ ;遥控信号处理
$ S6 ?8 l5 Y: a$ g3 x8 |SB:: ]0 U- @$ {/ B2 J
MOV R4,#8
' P) _' A" F2 ^9 E% G/ mSBA:
0 n9 c( c5 ^* \( W7 G MOV R5,#250+ ~; _ q7 L5 \
SBB:! J: K' k7 g c3 |$ f7 R/ }6 D
JB P3.7,SXB1' P' ^- L( J* s$ v9 y
DJNZ R5,SBB
- S1 J" c3 }! n2 y4 ]& e DJNZ R4,SBA
3 b% `! F+ Z; n* ~ MOV R4,#2" V' G5 Y0 N! }8 R
JMP SBC, z# n$ f/ L% m% l8 r% W: X: q5 x0 m
SXB1:+ n D# [( F( t: v, \
MOV R5,#5; ^7 A& e% [" G% J5 ]6 c' f
SXB2:
& {/ z2 ^" l: a, I4 Y8 m ^ JNB P3.7,SBB) Y0 [ e5 _$ H. e1 W/ j
DJNZ R5,SXB2
2 W$ `9 b8 W+ F JMP START8 r$ X5 h4 \, g
SBC:
+ I! S8 _7 P! k3 |+ m- c* i MOV R5,#250# y4 ~( K- [ O, ^
SB1:
! J9 P$ w) k( L0 u- x+ c# U JB P3.7,SB2
: F' Y; p2 w$ @2 Z DJNZ R5,SB1# l+ _+ w( x/ U5 w
DJNZ R4,SBC: ~9 {! V: o5 a
JMP START
! D% u/ i6 J* _- R$ VSB2:
" z7 c" W! a v* h MOV R5,#53 c! S& l* p# O/ ]* X, q5 h' Z
SB2_A:
1 E7 g/ u; _+ h q) d JNB P3.7,SB1
8 V; ~ z" s7 W2 R DJNZ R5,SB2_A
" }9 l$ E: R$ h2 \" H2 s3 g MOV R4,#3' b) z- K5 D2 ?) o% e4 F }6 X
SB2_1:! R, W5 J U4 z$ I+ P- ~ q
MOV R5,#250
8 Y( P/ _9 X* h1 d; P3 o9 LSB3: " R3 {( m6 ^/ Z. Q- v4 c" L
JNB P3.7,SXC
6 n' Z) K3 W5 D! {% b; _ DJNZ R5,SB32 l. G5 z: q/ X) x8 Q7 t; O# Y
DJNZ R4,SB2_1$ A5 [1 Y- _4 d1 K, g
MOV R4,#2! c* x8 y: j( {* x: U4 r
JMP SB3_1
, ~: n. g! D7 c5 C/ b* CSXC:
6 g0 \0 `# W0 Z) S. v MOV R5,#5
9 S# J3 g1 T* q( DSXC1:
5 s! y2 O% L. J) r JB P3.7,SB3
: j, J& y' F8 w) ]4 x7 |; W6 x DJNZ R5,SXC1
! h# u& n6 Q; c) W$ r! M- M: l JMP START( \4 L8 [9 {4 |
SB3_1:
2 P8 B* z- J M; E MOV R5,#250 d3 C$ c+ B( K. Z- Z: n
SB3_2:/ ~3 _4 _9 A W! U! W0 a# r" @4 S: \
JNB P3.7,SB4
; B7 w* P8 X5 h f DJNZ R5,SB3_22 \6 q, W9 u ` r% |! e/ @
DJNZ R4,SB3_1
- {) V' V7 \' q% f: t" n5 r& `$ E% ] JMP START
f+ Z' W0 W6 t+ \5 KSB4:
$ Y3 F& x# U! ?4 B MOV R5,#54 M. U( S" r$ n) |% G) t
SB4_1:
~* w* f' u, M& L* L4 g JB P3.7,SB3_2; r2 v9 R- |5 _/ V4 F0 L/ C
DJNZ R5,SB4_1
" e0 n, o9 ]4 O1 F MOV R1,#1AH + Y( F# J: n' c
MOV R2,#4* Z" C9 D- H9 l- K
PP: MOV R3,#84 @+ _6 D" U& g& [6 D& p$ h! q
JJJJ:
9 p3 J) L d% {8 r2 F: q& z MOV R5,#250: T2 S5 f* w, l
JJJJ2:
: [1 e7 j; \; M; L JB P3.7,JJJJ3
! Q9 y) k, S7 e DJNZ R5,JJJJ2 A- s0 t+ F2 _7 [; A
JMP START
$ `$ h7 S6 ^; _( G- @5 v; k+ c4 ]JJJJ3:$ H, S5 y. ?7 m* t& A6 W6 q, [
LCALL YS1 & `* M: C4 G d6 h
MOV C,P3.7 & M% X9 g% b5 H2 H( l
JNC UUU 2 c+ n+ ~3 y4 i7 S: A
MOV R5,#250. r3 E* l- V, s; f& I) r0 Y
JJJJ4:
$ C. @7 p& o3 _ d1 z JNB P3.7,UUU
) S7 p( Q+ E1 V F NOP2 {% m* u3 }* C0 o: Q% L
DJNZ R5,JJJJ4
4 }0 Z* f" T! |) W* r- ]$ J; F JMP START
8 K+ E+ G% G- U0 ~% p2 {UUU: MOV A,@R1 4 q% ` g, u+ I
RRC A / h( e5 Z3 y5 [
MOV @R1,A
1 x# ]- y# k# O- u7 u. D DJNZ R3,JJJJ
, e. M2 e3 G. x3 d+ Z INC R1
; ] W: o& r6 U DJNZ R2,PP * O, O0 [( h! z3 `; `
; ~' I6 T6 N, } i; R1 o MOV A,1AH
2 z6 H% i, q& \) l% A XRL A,#11101110B
( n% l$ ], Z8 z' `1 q. c9 \+ R JNZ EXIT
4 K( d E" I2 M! h MOV A,1BH 0 O' v+ ]3 C8 X9 z5 p& G- T
XRL A,#10000111B
" J! g+ J9 D+ `$ ~& { JNZ EXIT 8 C6 y. N, c1 _ l" {) r" E, L; N! H
LCALL YS3
a4 q3 _$ I# M! A; G MOV A,1DH
( y/ D! R( P+ p! n5 X q' a' u. [ CJNE A,#10111100B,EXIT
9 g6 O; y7 p' n: u ?( A LCALL YS35 Q' I+ B' I) e
CLR P2.6 $ Z: k: B& n2 h
AJMP BIJIAO
0 p7 [% ^9 l4 ^. A; C
! Z+ @1 M- ^) |; u+ FAA: # ?/ C% w# g& P, E& l2 N8 y+ Y
MOV R1,#25
& @/ {6 v, w- E5 w( XXX:
7 A+ K9 C1 N6 x9 T ACALL YS2
& O# `& ~3 l; I: c7 {. h# _# D( [& V. r JNB P3.7,HH ( T/ l! k2 C6 l- t
DJNZ R1,XX
9 p5 h9 ]; A( Q* u5 k) O) K- KEXIT: 0 j: p/ P1 K2 z/ D% [$ m% B
AJMP START
* {* h* x8 `9 T! j1 w ?7 q! Z
3 ]$ b- Q: }. g, P8 O; qHH:
; Q) D' a7 x) u6 S2 P# _/ m" n' z MOV R6,#4
% c8 E% |7 ]7 X4 H/ ~5 aS:
2 k( P4 O1 ?* |+ z' n U ACALL YS1 ; Y. @, D2 i% V( Z- P
JB P3.7,EXIT , J* l+ `2 _2 _* D
DJNZ R6, S + A: |" ~) R" F l5 N$ w' g R
JNB P3.7, $ ; R0 d1 F3 C" e6 B, Y
LCALL YS3
3 b. P$ y( L, }0 H; Z% v AJMP AA
( r$ E3 `) N% r+ @) z2 M2 h1 \BIJIAO:
& j1 a" \8 |# O1 m+ Y MOV A,1CH
+ T5 m0 l+ m% C" x8 K( i6 z }# _3 z CJNE A,#03H,N1 6 M" D, a( q. B* A: u/ `
MOV P0,#7EH
, K; }4 W( }* f Y% a, G& p
% f5 A1 W1 z) D8 b ;处理STUDERV录音机控制码! {6 M# l& E, q0 v6 ]4 C6 f \
N1:
4 K" |1 ^- |9 C0 {* ?' B CJNE A,#5FH,N2 ;播放键
0 }. R z9 v2 d3 g MOV DPTR,#REP
1 [ M: P; `3 w: t: K/ j8 ^$ \2 s6 ? ACALL SENDA* V5 [0 f3 Y4 `0 N" l( W
ACALL YS4
3 I( I7 U J: X9 u/ j3 L MOV DPTR,#PLY/ R+ o* A' k& b
ACALL SENDA
" `4 x2 b3 J# I( GN2:
8 s) y4 ^0 z# }, m' y. @; t CJNE A,#5CH,N3 ;停止键& a/ @- t+ M- y# p+ d1 E
MOV DPTR,#STP
0 a5 Z, f5 d% j1 Z ACALL SENDA }: Y2 s: V& l* f
N3:5 b; S: \8 E* A* n2 Z
CJNE A,#06H,N4 ;快进键
# \3 u$ f T$ \3 Q9 I; t8 D* c' U MOV DPTR,#FWD
7 O' `% \( }( x: l- W ACALL SENDA% l' N ?% _1 z2 ~- p
N4:7 ^0 y7 \+ k6 G9 y
CJNE A,#09H,N5 ;快倒键7 X; V* B+ O4 F" X% k! u( \- E* N
MOV DPTR,#RWD
9 q+ J# j0 e$ n% h& u) C. b7 n1 a ACALL SENDA
( r1 C6 B8 ?1 B7 P4 Z% ~! [6 Z8 ~N5:
/ ?$ e0 N& o# e9 i6 W0 T CJNE A,#0AH,N6 ;置零键
( n5 W$ g @0 h! a; n: l MOV DPTR,#RTM: i( k7 V/ D2 P3 P7 c k
ACALL SENDA- X: \* M8 K' m7 w
N6:
9 }; k, ]& c4 v. p7 s0 b* s4 ` CJNE A,#0CH,N7 ;定位到零键" a- }4 j& T4 J3 s+ x
MOV DPTR,#LZA/ {9 L: j$ A+ D! y, |
ACALL SENDA$ ]3 Y x8 m+ |7 _4 A' e; I0 ~
N7:+ J/ r2 Y7 z! R; x0 k* W# }
AJMP AA; y1 t3 J# a u1 S4 G" s% a$ k
SENDA:; U; c; e. Y4 ~: q
CLR A1 L' S, A, \4 ^9 j0 e1 R3 `
MOVC A,@A+DPTR" {' d8 Y& R4 R9 S2 |, y
CJNE A,#'$',SENDB. F8 S w. E3 D) [# O
AJMP SENDC
5 Z( q& [4 ^! `5 w4 ^SENDB:
2 {! R/ U! L1 C5 I. s MOV SBUF,A, h: |, T s, f! | k+ A B0 _
JNB TI,$
9 Z8 v0 h& s7 l, n/ z" L* u CLR TI8 u0 ?) Y! g O6 J+ @) {$ d
INC DPTR
, I8 V- [* x9 y& Y. E6 b AJMP SENDA* n/ Z8 u$ R: N2 i; a
SENDC:
3 a" G! E3 h7 f) k RET5 P) q# Q6 p0 z/ c
; \ t+ H( g* }5 h* V2 iPLY: db "PLY ",0dh,0ah,'$'# i5 n$ L7 h/ A
STP: db "STP ",0dh,0ah,'$'
# w8 s, l0 m' i* DFWD: db "FWD ",0dh,0ah,'$') F1 j( z8 w' I/ x1 B/ l- \
RWD: db "RWD ",0dh,0ah,'$'
' Y! R) }) |3 C! x2 S. HRTM: db "RTM ",0dh,0ah,'$'& X9 T' l; b9 V( E. b+ V$ V
LZA: db "LZA ",0dh,0ah,'$': ?- \, E s* ?) i3 b3 A- y
REP: db "REP F ",0dh,0ah,'$'" }2 ~" s7 G/ {/ c
# c& ?0 L$ {; s2 H" O5 ]! J6 u
YS1:
w2 L; a$ P& U% s7 i5 M2 t, C MOV R4,#20
/ S6 F* a2 Q+ T& V) I) [D1:
8 `# B* q. W1 W0 @ MOV R5,#20( z2 L# Q) i+ G0 n
DJNZ R5,$. L( v/ C6 G+ h8 n; k4 u
DJNZ R4,D1
% e1 C7 p! T$ ?. K RET& s/ t, f$ t0 @" h3 C
+ M; Q8 W# @' E8 [( J$ g2 d
YS2:2 {) y) H: C' g& Q3 `; O% U
MOV R4,#10
# F; L" f. y3 y' R2 gD2:, O. ?0 X/ j2 T' [: W: [
MOV R5,#235
2 i. P1 T! O3 A* O. x' M, H) u DJNZ R5,$
9 Q' N) @6 D; E1 T% S& [ DJNZ R4,D2
$ D& }' v' u1 [ B8 K8 t x4 X RET, ? D/ ]4 N6 `$ n+ d9 i- |
" j" W$ a* o5 S3 c/ ]& b
YS3:( T' ]. o0 ?: h# x5 h( H0 b
MOV R4,#2
7 J# L0 B1 \) h9 L% PD3:, Y& P$ y7 B, k3 }! Q2 n$ B
MOV R5,#248
/ S. a* s- p( D( O9 G4 d DJNZ R5,$
H, H' L8 k1 A0 t DJNZ R4,D3. I7 `$ n9 d+ B/ g- S! U
RET
2 f9 g0 S- T3 x; o; g6 K
8 V. X" U* g0 U5 pYS4:5 Z: T) {7 C/ {; \
MOV R4,#200
+ S9 e5 e; v$ V+ @; R; nD4:+ z$ D: X7 r! L) t% L
MOV R5,#248
. Z/ k1 h2 u+ j3 K DJNZ R5,$0 a" w5 u, ?2 z9 b* o/ R! [
DJNZ R4,D3* A% ]* x, y3 O9 R0 ~! Y! U5 L: c! L
RET7 t3 o; M7 A* D
END
$ C: C: i: B. g {% F( n3 _1 u& v& |& _2 ]9 q1 x1 y8 x
有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。
7 T0 g5 u y2 m# Y3 v是不是很惬意,嗯!
F1 |- a$ j1 {: r, F. V |