赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑 + I' L; V! Y( g# s7 S2 O& N9 w# y# f
2 R: Z7 [* S5 o* s+ n) _: `9 D本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。
; l/ n2 x* _/ h* g
" V9 w& d& }) L) V* o说明:4 g6 @0 n1 Y/ Y# ~
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;( H1 n$ k* E( _: R8 o9 ^/ m5 R
2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
3 \+ Y9 I, H: }% O, _+ t* S( c* o7 t
* L8 z: k$ C2 X/ L: F0 y一、基本思路# y' m0 v7 {# X9 \& F' K |- O
使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
7 K! U. T' u3 D
3 n; n/ e9 @% v# S: U' a二、红外遥控器
8 r0 { C+ Y$ \# h7 A我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
7 l P3 e, e5 r0 i
2 I9 y. f! S- |7 M/ b: Y! G3 T; Y- K+ E好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
4 \9 K* X2 B7 }
' n% D/ D. w: A; Z; a在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:
: T+ p4 l/ `7 o* I5 O% r' W8 _: [
! ?6 n" }, K9 c! G+ X$ j" ]2 k" y. o
6 e3 J" ]% G$ z( W) x1 w0 ?! Q
三、红外编码# O& u6 Y" e2 _. f8 v, v3 H
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
' v4 X! {1 R7 J V6 v3 Z/ ]前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。' K1 m' U: Q, }; @0 b
后16位为控制码,主要用于实施具体的控制。: y, N: S% h }7 @# ~# G/ ?
这16位中高8位和低8位互为反码,以提高可靠度。! y; K1 u- D9 G1 R6 n0 F6 U4 c
/ K7 L9 t" t/ s3 M! u
以播放为例,其编码如下:0 |# [& [1 ?" ?7 o
00000000 00000000 01011100 00000000
) e/ V& w& T7 x8 f) u5 m. ~
3 a$ L g O0 h# B3 R% q: d$ d你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。
& U+ |4 @3 S2 M8 h, H
5 R E. d7 }! P8 y四、单片机系统
: j' |1 Z$ {. e1 p7 r) U9 j这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。6 c- Z7 Z5 |6 n* u9 i* O8 ?' N5 c
* z" A! N: Z( ?# q' M: x" N
: p: D, v; m1 i: h% Z# q$ ~: D
电路很简单,功能如下:0 {2 F2 q& z0 [( v5 c& o6 b
1、一个AT89S52单片机作为核心;/ P8 D0 }) m; i. C/ d" q
2、一个TL1838为红外接收头直接串行输出数据信号;1 Q* `( r: ?: y9 u7 Z! M' z
3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;* z8 E r+ W, `2 ~1 {) B2 f
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。5 d! e- @- j, w
+ n3 z. C L1 R7 Y
关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
3 v$ W9 Q& Z0 Q4 n: _# O2 W$ w1 z3 `, t8 W
" \! s, r+ v3 u+ W- u/ H8 _五、控制软件
/ Q8 m6 G9 y4 A0 h控制软件用汇编语言写,源程序如下:
6 {" T( ~1 Q8 U5 q. q( H ORG 00H% T* k% X" H2 L8 C T X7 l
LJMP MAIN
0 U" i/ N+ ]7 Y/ Q3 h ORG 30H
1 A) M1 v* w$ z0 T0 r! N/ I9 {$ xMAIN:2 z3 V* I- }- w1 U" E$ K' t
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)/ v4 g! _7 B/ e, x. C5 w0 E8 e6 u( l
MOV TMOD,#22H ;22H( B: ^: x @, J: }5 ]0 W
MOV SCON,#40H ;40H3 y3 t0 ^" a9 d9 j0 k
MOV TH1,#0FAH ;F3H
2 E- w( |6 R, E3 o4 B; |" w MOV PCON,#80H
" y, o/ I. J& h+ |+ `; P SETB TR1
- y+ w* S5 z# XSTART: d% S& k, y/ ~! m
JB P3.7,$ ;遥控信号处理
* Q& J4 {8 S' ESB:
7 E5 }' b8 G) g) n% [9 |7 T MOV R4,#8
, z: f, a. c E% }SBA:
2 t* x# E7 L3 P1 L% Q3 } MOV R5,#2504 I8 z2 H- N. d, v! i) e
SBB:
* G! [1 i4 X. g# @1 [* b+ F1 m# P8 i JB P3.7,SXB10 V8 Y2 a/ f% B2 \2 @
DJNZ R5,SBB1 v8 Z3 d" u( x* {
DJNZ R4,SBA
" s; t; T2 n8 B: x1 r3 w MOV R4,#22 ^9 w% ~* F$ a4 p4 P' ?
JMP SBC
, M( n; ^0 ] \! Z. x5 vSXB1:, i7 ^+ o. K0 @* a" c0 w
MOV R5,#58 u& R$ P$ T4 O1 y9 }# C
SXB2: 1 p) b4 M$ h/ f: c+ x3 U! j& b
JNB P3.7,SBB" C$ l; Q) @, }9 i$ `
DJNZ R5,SXB2$ B/ T2 F- Q1 y3 O
JMP START, m$ Y# t4 p# ^
SBC:
# w# I/ F7 H# G MOV R5,#250 R& p8 h/ i. Z& Q/ ?
SB1:% v5 X. U4 {8 a" v n
JB P3.7,SB2 9 s+ O* h. w# [- h: T) D* Q, j
DJNZ R5,SB14 U! w, g7 s" r3 v
DJNZ R4,SBC
, U; a! Q5 `0 d* E2 ] I; d& `7 u JMP START
' ^2 v% Q2 R5 s9 W3 ]9 ISB2:
" I4 J7 p. X$ z" o5 b, {9 o3 R MOV R5,#5" _0 t& y7 j- q3 @
SB2_A:
$ S( g; o" Y) Z* i$ Z# R- m JNB P3.7,SB1
8 [9 l; B) o3 b5 x/ e; _0 Q DJNZ R5,SB2_A
3 ^2 L, R3 B! s* q( `- ~0 ~ MOV R4,#33 B1 q" Q5 g2 `, s( }2 L/ u
SB2_1:
2 h% p- |8 m" ]3 ~1 s: \ MOV R5,#250
! c1 l5 L* j3 ]+ K, m9 H3 ^SB3: " Q# X( b4 i) {% \* G9 H j# G
JNB P3.7,SXC
2 _) K- p. r) ]3 n DJNZ R5,SB3& L0 ?* y. ]- B
DJNZ R4,SB2_1
9 D/ T2 d" ~: ]: j" m( N MOV R4,#2" x( U! Y7 F/ t$ N2 x
JMP SB3_1$ K7 J( V" n( ] ?$ ?0 P
SXC: / g: T0 \" `* E$ c6 c" w) ^: o$ R. v& x
MOV R5,#5% Y* O. |+ y5 Z+ F, E: T2 r, m
SXC1:
1 T3 B/ h$ y9 e F# m1 e- f JB P3.7,SB3- u7 p2 s: U# A
DJNZ R5,SXC1
- G2 W/ g$ z% h) O; r# q" q JMP START i- {* [! ~9 }
SB3_1: 1 f- B/ E5 g9 J# F9 i# h& X
MOV R5,#250, o- [ h$ Q% U8 e0 Q+ e6 b( {
SB3_2:! E& n. B1 G( s( H, d* y! `/ H8 t
JNB P3.7,SB4
; w; h) ^" v: i( [- ]4 B4 @ DJNZ R5,SB3_2
. ~# c2 v) w( I4 j8 W% r- c DJNZ R4,SB3_1+ \0 D# b" o9 x% F, @2 m
JMP START: R. Y& ^! c+ k2 G& h+ P
SB4: / M) X R% \/ v$ h5 |$ T
MOV R5,#5
8 ~, s" {! Y4 p- _: N, E4 uSB4_1:- \& X6 H4 C/ Z0 ^' F$ d1 u
JB P3.7,SB3_26 u% @% W* ^' Y$ k- s
DJNZ R5,SB4_18 M+ X# T# k# h. _
MOV R1,#1AH 6 S2 E' o9 h7 T) ? _
MOV R2,#47 U6 T( t4 [( I8 c+ r+ h9 [
PP: MOV R3,#8
, x8 M7 c& O' {JJJJ:: m w$ V/ x' B9 E2 X
MOV R5,#250
2 R. H; D+ n5 N$ hJJJJ2:
. Z; U6 S% P0 @- F/ j) l0 ~ JB P3.7,JJJJ3
) H8 J' A% l; s# _ DJNZ R5,JJJJ26 Q% n$ ?: _) S# j" D# ^
JMP START
4 X! W9 G7 o# |, ZJJJJ3:
# j4 e7 v& e) B8 H: k9 ^, W LCALL YS1 7 B/ u8 p/ ^( p( |* J% l
MOV C,P3.7 ' H b5 k: J0 B, G$ `+ J" W
JNC UUU
& d. ^1 @% |2 W$ z6 x MOV R5,#250
0 A5 C; B- t5 }! G& [JJJJ4:
( P$ h8 R v' W( p2 X" P JNB P3.7,UUU
9 {2 o2 p7 A9 f" s+ q NOP$ x0 ]% z/ H# l6 m, l3 v
DJNZ R5,JJJJ4( ]9 \2 Q: I. O
JMP START
. F- G7 ]$ M3 wUUU: MOV A,@R1 9 g* J D4 H; v: V7 B* Z
RRC A 0 i1 [( J2 o5 x* y. h" Q' C6 y/ `
MOV @R1,A
7 W7 X$ P. P P4 h DJNZ R3,JJJJ
0 k8 `3 J+ Q1 [$ c8 T! ^2 h. H INC R1 8 O1 w3 D2 q6 H- G+ Z, U
DJNZ R2,PP # f# `, |+ U: u: C; `$ O3 L$ c M
1 }+ t2 a# ]( v5 i4 N, K+ g9 ]6 a
MOV A,1AH ' \7 D* F) P6 o2 q3 o$ x
XRL A,#11101110B; c5 N8 w; b- Y3 h
JNZ EXIT # V+ ?0 C, d7 y* p. ^% r5 k
MOV A,1BH
/ p% [( i A' _0 E* k XRL A,#10000111B
r* {/ n2 |+ z; k5 I JNZ EXIT
" r# w @5 `3 r4 u LCALL YS3: F( p/ E0 z& `
MOV A,1DH 9 o+ q+ ]. ?* a+ T* R a
CJNE A,#10111100B,EXIT
3 ?! Q" _1 p0 c- }) C7 J, E4 G& ? LCALL YS3
9 v- h! v7 V. ~( y, s CLR P2.6
U6 }2 v3 g* b9 s0 l( S AJMP BIJIAO
/ c: p' _ U+ U% U1 S; ^ , z: f/ U! l7 F6 B
AA: 2 ?- f! e& B, ~, ^. l+ d
MOV R1,#25
7 I8 B) _1 U/ u0 d8 I/ l6 nXX:
& F8 F# Z' |' K! { ACALL YS2, a- h/ N& Z( Y2 N1 h. \! L8 i
JNB P3.7,HH : b( v O* Q8 a4 r+ d
DJNZ R1,XX' |4 W7 P$ K4 } E
EXIT:
8 @, }) t+ E* ] AJMP START
* b" V7 C0 b) Z0 { " `5 h: W6 b+ T5 C, H
HH:
8 L; x8 b' @3 L6 y, z1 `, k# Q MOV R6,#4
& ~: C; a F' \. L+ B* `S:
0 H" ?# e1 E( k! o2 \ ACALL YS1 3 O: k+ ]" J; ]0 F r( H
JB P3.7,EXIT
1 l6 B( Y& G4 E, V* M; k DJNZ R6, S + H/ b4 D2 R+ c6 d# W% p7 V! e3 p
JNB P3.7, $
7 s( H$ Y+ j5 X8 ~& t( K LCALL YS36 F0 t3 u' h7 A4 U, k/ Z# S
AJMP AA" F- S+ R8 p7 i* c2 [
BIJIAO:& I: V4 K# L8 |" g* {1 A$ \1 m
MOV A,1CH . m1 M' ^* @1 }/ s2 G7 D; o) _
CJNE A,#03H,N1 8 r+ O6 F2 P7 A: Q" J d8 y/ f, ?$ P$ T
MOV P0,#7EH 9 F: ]% K& W+ i' p7 ~' ^% ^
: t; U* u' Q4 ]% I
;处理STUDERV录音机控制码
' x5 z$ J4 k5 M& C- u( K( x: X- vN1:
. R7 `% T; W* e1 r CJNE A,#5FH,N2 ;播放键. X% v2 ^' P+ B5 L) w6 P+ R
MOV DPTR,#REP
]. y) j+ W) k: w# D ACALL SENDA
5 ] U% k5 l! V9 \0 J( U( B$ H ACALL YS43 R3 z' ~% `2 S0 s/ V% @& ]( O& @
MOV DPTR,#PLY. ]+ A: x: q! T0 C
ACALL SENDA
" e ]8 A0 v/ s8 g* C( cN2:: z* ?9 I- G4 U! z8 q7 k. ]9 o
CJNE A,#5CH,N3 ;停止键5 |/ v( r! o- ?8 b: H
MOV DPTR,#STP* T" A* G: a$ D; Z
ACALL SENDA
) g1 u; g! @4 g& S: o. w: oN3:
) V, ?( U0 o/ h& A" N V$ P& \1 v CJNE A,#06H,N4 ;快进键0 R4 y- u: d- [- h5 H F+ K
MOV DPTR,#FWD% |. v" C! ~9 o# D
ACALL SENDA
2 T N: @0 y$ X3 R& IN4:
' Q: ?- b. d- G# q- I8 B. Z+ o9 }0 X CJNE A,#09H,N5 ;快倒键
" { T: A* L. o/ m Q MOV DPTR,#RWD* w/ ]8 Z$ r3 g/ r& e# t, |
ACALL SENDA
6 U% f. v9 j7 {# s$ FN5:
$ p4 F: V8 P# R CJNE A,#0AH,N6 ;置零键
) D9 L- Q) C3 D: G& R* ~ MOV DPTR,#RTM; {) H' T: z1 C$ [" J% @" ~8 J2 X
ACALL SENDA. X$ c4 p- |$ _# ?& P; n- P. E+ D, y
N6:+ ?, l/ u2 Z2 ?
CJNE A,#0CH,N7 ;定位到零键6 t8 \& W y- z: I. z$ |
MOV DPTR,#LZA
7 i# W) Y6 K5 h1 @9 U0 U' u% W ACALL SENDA) p1 m- }' H ]8 W& s
N7:! e. b$ V) n* v
AJMP AA, [* h( M4 r( g: S' |
SENDA:* t5 Z8 ^5 F( g# p4 {$ \) p
CLR A
' H5 s7 [; s4 }# B ? MOVC A,@A+DPTR
0 A& H/ i, S4 n, S+ H+ W6 |* L% D CJNE A,#'$',SENDB- c4 ^5 P. n5 q: V. Z, a6 J
AJMP SENDC
2 {* }5 E. X/ C. WSENDB:" N/ Q) W- o; L4 _' ]
MOV SBUF,A
$ E9 ^" q4 [7 o7 E! ?- ^7 M1 i JNB TI,$5 x& A4 A) x% |/ d2 U2 R8 p( C# n
CLR TI
% [( H F/ I8 |( P' B- e" j- @ INC DPTR
. W9 i' u' a" O8 `/ h8 J7 _7 K" L% _4 A AJMP SENDA
$ {/ _: p0 ?0 m$ H$ I) LSENDC:
% m/ S* ]# T; [0 G9 N5 L RET
[- x# m' U1 ?& f+ W8 b) ?( D
. Z1 ^ a9 S3 s" l m' b9 ?PLY: db "PLY ",0dh,0ah,'$'
0 x G$ f! e3 PSTP: db "STP ",0dh,0ah,'$'9 R) i9 }$ z( k- i: o H T; ~
FWD: db "FWD ",0dh,0ah,'$'7 p% R8 w y/ g; e9 ^* f, m; m
RWD: db "RWD ",0dh,0ah,'$'
1 w& e5 X6 y0 M( H/ bRTM: db "RTM ",0dh,0ah,'$'
4 g S# U3 J6 C( z. |, qLZA: db "LZA ",0dh,0ah,'$'+ L/ J- ^& F( o/ q
REP: db "REP F ",0dh,0ah,'$'$ m) b/ s( \9 `* T" ?
/ A, N' h% w+ b: M* L
YS1:
& R; ^# M: _+ I! H" M MOV R4,#205 ]( A" \9 O% ~& G% U6 P" W0 K
D1:5 B! p/ w2 U1 f7 s0 B4 h
MOV R5,#20
+ d6 X+ a0 y0 B1 o# w5 j DJNZ R5,$ K, V6 H! T4 y# O H
DJNZ R4,D1
3 y% x* o& G% x RET6 X# Z; d: R/ b* }3 b7 a
. N' ^$ u$ }8 \YS2:* ~) C) [& |$ c6 o8 N
MOV R4,#10
- W' N9 |- R) z; f G ~- |D2:5 p5 ^" c+ J$ W4 ?' I1 W
MOV R5,#2358 ^+ a* _6 t. \
DJNZ R5,$
. Z: q2 w5 p5 L( [ DJNZ R4,D2& R; H6 i/ \/ r9 V2 w
RET
) u# ^3 O3 x6 K; g# k: S3 q* Q+ {* G: Z* {+ [& A
YS3:
+ A0 w% J/ E* W# U' y7 E+ \ MOV R4,#2
0 {7 `4 e) M" l* C: e9 k/ aD3: O$ N& S' e N- c
MOV R5,#248! m7 ^8 H, [6 a+ ]
DJNZ R5,$
. ?. v1 V R3 T0 G9 J# r DJNZ R4,D3
2 Z0 C2 e* L& }; C" @0 H RET
* a/ T Z; r1 a I+ e
+ Q& @& z7 T5 U' T$ H$ {: R1 iYS4:8 B1 e0 J c+ ]
MOV R4,#200
1 _$ a4 |( c# K7 x5 G+ sD4:
0 v; X, f' g! v' I+ _ MOV R5,#248
7 M* P- C. i" D9 T: p: e DJNZ R5,$
* \0 x) A5 o: v+ ?5 V DJNZ R4,D3
& D8 E7 [7 y. X RET
& a% M( {( ]1 z# J, P END
0 U: g3 r& ^9 w: h9 [3 S) Y
! D. T5 M4 T2 ]! l) V+ w有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。- I) I/ O3 K0 Z9 c- @
是不是很惬意,嗯!
2 S% ~5 }( W5 X; t. j |