赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑 # r* l( i P% z5 S1 b4 W
2 y I7 l8 |/ ? G2 j$ |" j
本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。
: t1 p6 d$ k8 i9 V# t0 p! l% l
: E0 ?# `0 _* P$ ?& E说明:" E: x; ~1 M; c
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
7 ^5 d$ k( t6 D1 K+ i! F2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
T8 c4 c, |7 e
% V- [6 B8 @4 S, ~4 l/ @一、基本思路
_) [) q% e' {使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。: {& ^' d X( o7 h9 j) v/ \
5 L+ r8 U2 Q l7 C/ |/ z: {二、红外遥控器
$ l' W" v" |8 J, f& F" {: d+ {我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
4 ]9 X4 x! f4 C: f0 j& p3 r# O
+ r6 X4 Q: y2 F好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。; c( i8 A5 X8 i8 Q, V
6 R! {1 i' q h, r# D( S; H
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:% }: M Y5 }( R, B/ Q7 T/ S
$ g) b. c! J2 r7 C( Y# X) X R/ r# F- x2 h. C8 R8 \
三、红外编码* T# ^- N, l5 m, P8 ~
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。
Q, X4 l p; H/ }: E- M前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。
. v: m3 D* q, y$ U5 |后16位为控制码,主要用于实施具体的控制。0 e2 k3 ]; E+ J) J2 C# M3 y
这16位中高8位和低8位互为反码,以提高可靠度。
- r+ r# l4 Q `! \& m E
6 w O; z: k7 Q# N' F以播放为例,其编码如下: }0 g* j5 y- L3 Y1 ` s& L
00000000 00000000 01011100 00000000
1 Q b" x8 E+ x/ Z# r( ]0 W! D
) M- K2 Q& `; V+ V# B/ F你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。
5 ` f& s% f$ s3 x3 f4 B* c( l0 A+ _2 I' b* c! L& c% f' w' c
四、单片机系统0 B/ e/ X K5 A' m7 P9 C
这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。
8 b5 S! c. t- v8 H
( b" R0 h/ R' R3 i
2 q. v8 H3 q! w! S电路很简单,功能如下:
" m) \" n2 s# b: Q" Z% W1、一个AT89S52单片机作为核心;
. S; \) C7 D* H3 l2、一个TL1838为红外接收头直接串行输出数据信号;- S' h5 s4 V( z) @3 k
3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;
* ?+ `4 e2 d' s* T' ?' l' F, B1 e4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。% s' s3 v3 U/ h8 B& d1 }
. _2 }. q+ t O3 U4 ?关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。- S( S3 ]0 d! I9 q: a& r
& U7 c; y6 T; X5 U* T8 c
: f7 U, `6 Q. q- {' l& E五、控制软件
! A% ]# Z8 @$ e7 c% a控制软件用汇编语言写,源程序如下:( x; q' t, i% }- K+ f6 \4 J& I2 Q' U4 j
ORG 00H/ b% L2 ]7 G4 t0 _2 P
LJMP MAIN" ^' |5 } @ K
ORG 30H
/ }. l+ y2 b) xMAIN:$ i1 K5 I1 X) D& X
MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
" v6 [3 S& X# S0 n) b/ F MOV TMOD,#22H ;22H8 e# [* C( R* |% V/ V
MOV SCON,#40H ;40H
& {6 G* `4 a# o9 u$ _' ^ MOV TH1,#0FAH ;F3H
6 ^7 {3 l( ]3 _7 Z; F8 f MOV PCON,#80H
- m- w9 Z' f. M8 Y; R4 @ SETB TR1
. [' |% @4 e$ e& d* A7 k$ PSTART:
; z/ w5 ^2 {$ S; S' s' I, @ JB P3.7,$ ;遥控信号处理 T/ D+ E. r" q* {; ]2 ]2 L4 V0 e
SB:: \, Z9 @3 ]7 x, B
MOV R4,#8
( [$ H6 D- q3 C' R, CSBA:
. U- ?: {* `6 C- F MOV R5,#250
* m* V4 f% _2 ?0 _+ H/ B5 FSBB:+ w" u+ w* y& b% Z( X# y( x
JB P3.7,SXB1
; g; s/ ^$ n! S& c, }# j DJNZ R5,SBB8 c# \% b3 }8 V5 n& s+ M# ^
DJNZ R4,SBA
& S& r3 a1 F' z2 r MOV R4,#2
# Y% T# u& K, `( p1 M2 E" ?- p JMP SBC1 b/ J4 f$ W0 W) h" t) ?$ i, |
SXB1:7 d3 G& E0 r: ]# z! _9 m
MOV R5,#5) j: P8 ^3 b* Y: u. Y3 F1 E% {
SXB2: # x0 K+ Y" ]6 X: m8 ]
JNB P3.7,SBB& q) \7 H% i$ l' l' \
DJNZ R5,SXB28 d# f& @- e8 z: {
JMP START
+ [& H- j$ Y) q( k3 E! T6 SSBC:% K! u0 w6 y3 i8 Y7 w: k
MOV R5,#250
" Z* [8 T4 U5 J W6 f* W: }SB1:
& b6 ]2 Q2 g, P$ h9 x" l5 K* x JB P3.7,SB2
$ W# { f' W6 o( Q6 {4 R DJNZ R5,SB1$ |$ J3 `( f) U" }/ t* V& i
DJNZ R4,SBC6 r+ ]' @6 ?6 J' b$ _
JMP START
6 Y$ V, m, _- DSB2:
- N" V4 `- J9 ` ^( x! W7 ?/ y B MOV R5,#5
7 k/ B' F9 ]6 X gSB2_A:
# j) Q7 @5 W# R* u JNB P3.7,SB1
2 z% _9 v3 |9 |# H; g( ?8 E DJNZ R5,SB2_A
. x! D+ R: |/ f2 ?6 r$ _7 B# y# Z8 t MOV R4,#3
2 _( p% g! L' q3 F: w; E# u4 HSB2_1:
1 I+ p2 P6 K( S# B% A" q MOV R5,#250
4 Z6 v6 |: Q: g0 D9 |SB3:
9 \. t/ l6 M7 B! X JNB P3.7,SXC
$ A8 h$ z6 c9 x1 q DJNZ R5,SB3
% a; T# R: |$ {% o. D1 W/ | DJNZ R4,SB2_1; D* ?; G. O6 G0 L, j3 u
MOV R4,#28 d4 p' m* p' X: k
JMP SB3_1( E. T# C7 O0 q# U8 g1 R
SXC:
6 L% t- C7 ^& R/ m# b8 v' r MOV R5,#5" x6 Q: J; H$ X2 {5 X- X2 `& g+ ]+ M
SXC1:. Y. U& S `. U- {7 j8 D4 m
JB P3.7,SB3 a0 |$ A2 S5 P0 q% G' J* d( [
DJNZ R5,SXC1
$ a: I) s S# L0 Y JMP START
$ f8 @4 Z* V3 p. \) mSB3_1:
* R, `- R9 X* P6 K, J MOV R5,#250
9 Q: V! t4 L! K' d$ z* BSB3_2:
1 X; C0 ^/ N$ N! o5 w. }1 l+ w JNB P3.7,SB45 |8 Z y: S) @; w% P) p
DJNZ R5,SB3_2( }% x9 Q2 M6 b
DJNZ R4,SB3_15 T+ i! H; @* Q% E/ o" a( T! C) u
JMP START0 Q7 q! y# |' L+ R4 P; I
SB4: / r7 {, E% b$ I8 |6 {" R9 G
MOV R5,#5
+ r- ~1 T# J2 x2 L) NSB4_1:- S/ Y0 v3 y* J
JB P3.7,SB3_2
5 T8 N5 C$ S( x" `0 e/ A, X DJNZ R5,SB4_1! L; m0 v- P5 H, ~ l2 ]2 g( y
MOV R1,#1AH
# G5 M; M: m x" A ?1 ^ MOV R2,#4
! x$ b, a6 q( f( a, V8 |" lPP: MOV R3,#8
8 i8 O ^# [# M/ X- n: s0 B4 sJJJJ:% n& s) }% X/ e! Y# @: h# B* F
MOV R5,#250
! q6 V& R2 N8 K; X6 cJJJJ2: ' P z7 v4 H2 S! ?# S1 I8 H
JB P3.7,JJJJ3
) E+ R- p4 Z0 A8 U7 ~1 {7 j4 q DJNZ R5,JJJJ2
& f+ l! E! t1 c8 n" I# Z JMP START9 V) J3 V: c1 _; M* Z1 |3 B7 F
JJJJ3:
F- Q% E8 _' t LCALL YS1
' n. R$ W+ V* `8 }1 \ MOV C,P3.7 4 ^; _1 q4 v; ?6 Q' b
JNC UUU
: D$ a' W4 M8 x' c# u MOV R5,#2509 s+ y2 Z) F; B: m3 g! F
JJJJ4:
; V C* @: s0 Q0 y$ \" ^& U: P% z JNB P3.7,UUU
/ s* c- C: U) M0 f NOP
* k& R5 ~- W2 q) y8 o# n DJNZ R5,JJJJ4- o5 B5 n4 i/ X+ m
JMP START7 Z5 d* B4 {% }; q b. \' E
UUU: MOV A,@R1 # A+ G* B) h7 V$ o$ b& d9 X( j
RRC A & w2 l% c9 p3 C" a/ Q F& {
MOV @R1,A ) V t/ T* v& o- m8 u
DJNZ R3,JJJJ
- p; A1 q$ A; e8 U* N INC R1 ) I; O; S* R- n4 `! q9 |
DJNZ R2,PP
7 ?! d- H- A7 |& K5 Z# d
& i0 b+ j$ C# }" a7 _ MOV A,1AH
S5 d9 K; |2 T4 ~. {- d) l0 r6 r# N XRL A,#11101110B8 A; G% e" S; t) x4 Q1 Y; U
JNZ EXIT
5 S; S% v' A; }8 L/ s& s% F# B6 A8 } MOV A,1BH & C/ F) z+ ^9 [
XRL A,#10000111B# N6 m$ {: s9 I9 W, m
JNZ EXIT , D) X* l* {4 q' I
LCALL YS3# A: H! z6 X9 t
MOV A,1DH
+ D7 d$ \2 S6 F$ M CJNE A,#10111100B,EXIT
' N& k+ t& A0 q/ {* y7 [ LCALL YS3* H2 a& V2 D G5 H. H
CLR P2.6
3 D2 |+ u% _6 X7 H, ~- ^. C+ J# y AJMP BIJIAO$ {& L- d' H0 P2 M+ G' b
6 F6 K2 Z/ [- a4 `
AA: % a4 s# o6 f& T2 ?# @7 I* M* G9 N+ M
MOV R1,#25
# Z1 k, q: U* a' H8 jXX: . }# T1 Q0 S7 C9 a L. W
ACALL YS2
5 {0 v8 S8 o4 E) Y JNB P3.7,HH
6 r- [0 r' z* z3 d( { {8 ? m/ V DJNZ R1,XX$ A0 O% |/ x) {( A& p! j0 G5 E
EXIT: 1 R% e* z/ M( D. w
AJMP START, E' y7 L; } |. v$ r' p
, t6 E, @& a* t; c
HH:. V6 I. }- z: X- q7 _
MOV R6,#4- ^9 \7 B4 l) F4 w
S: / D) V2 A) S! G
ACALL YS1
9 F) y# m- Q G0 d5 L# ?! J4 `; c$ T JB P3.7,EXIT . }3 T' N1 f) m' }! z, U
DJNZ R6, S ' @ X) l: F$ `( u* [/ F
JNB P3.7, $ & {) E! E# c+ ^, s* N
LCALL YS37 b9 f/ q; Z& H3 J; S
AJMP AA7 I0 S, m9 i8 y3 g0 Z6 V$ ~# M
BIJIAO:6 C* t/ {+ ]/ d" V+ R9 [8 ~, t
MOV A,1CH ) e* u# o8 L3 _/ ]" D5 H; H' j
CJNE A,#03H,N1
5 E/ G* z! {" I- j! N+ A MOV P0,#7EH
6 D4 m9 o: f7 B
1 L9 @2 {/ \' ] X" u4 j ;处理STUDERV录音机控制码3 g- x2 n! J5 g& }+ B* n
N1: - M" `# K# v$ |; g
CJNE A,#5FH,N2 ;播放键
" O9 M. Y$ Y7 u9 I. r MOV DPTR,#REP6 u5 D* B# }, X
ACALL SENDA9 s" q0 G4 |# b+ E# m5 \
ACALL YS47 B: {. Z5 l% E% h- _
MOV DPTR,#PLY: ^) l3 `- m/ D! H; f0 _
ACALL SENDA/ |8 N. e; S- F, a! \, `; T* I* [% c4 e1 k
N2:
. S6 a0 V# ]& K; V7 _7 A CJNE A,#5CH,N3 ;停止键
v9 `. W: n& l: ^ MOV DPTR,#STP
! M* R- ?9 V) C6 ~& G ACALL SENDA
. U/ `+ y: }0 s0 MN3:$ H) X; F* N( r% `! R
CJNE A,#06H,N4 ;快进键
8 Z, ]) x# l1 @4 d7 w* n MOV DPTR,#FWD4 O! O" y, }. l% ^
ACALL SENDA
8 N1 o& P8 D [N4:
# _, n1 ?7 F2 L0 {- F) m CJNE A,#09H,N5 ;快倒键; V+ M, N- d6 r9 C
MOV DPTR,#RWD' P9 Q" M$ E0 x( |% D6 x
ACALL SENDA. g2 X& ^( d1 k# |% K1 ?* v3 ]
N5:0 C) \1 d8 x. X0 `" D3 ~: ~
CJNE A,#0AH,N6 ;置零键: d- m; \8 a0 O! |7 o
MOV DPTR,#RTM" x$ V" d' | ~7 U# ~& {- P
ACALL SENDA
5 y% ~; B& } D4 @& v8 mN6:
) j P0 O' l0 r0 O CJNE A,#0CH,N7 ;定位到零键0 e! W$ R" X B& M! \* X
MOV DPTR,#LZA- m, j! ^, c" Q- F. l5 \4 Q b
ACALL SENDA
: \9 }8 H( [+ d' k' UN7:$ y6 _# R2 Y6 O9 b3 L
AJMP AA* r- d* Z( m( f0 x" P
SENDA:
- c" c7 L: o3 `& ?; M CLR A+ T3 G, D2 w4 [1 u; H- q
MOVC A,@A+DPTR( f; Q! j2 [$ R4 A
CJNE A,#'$',SENDB" r6 k$ v0 L2 B$ u+ B
AJMP SENDC& o: k# T7 u3 r2 s9 H" I+ P
SENDB:
q Y. W0 G/ r! q, R7 c MOV SBUF,A
# q. z1 d& P' `2 i; C JNB TI,$1 T e1 J9 U4 i1 M
CLR TI
U* k- V; S% l0 m8 m2 P INC DPTR
2 _8 O4 q, b( d" w AJMP SENDA" x* L' K$ {, ~7 ^5 h. k
SENDC:
$ r4 J6 _' ^, d2 j: e: { RET/ H# s( W$ D6 C0 ^/ r
/ i" l1 J0 V( A4 _" \+ s
PLY: db "PLY ",0dh,0ah,'$'
; w: w# C4 |" h( BSTP: db "STP ",0dh,0ah,'$', O3 R' m* r4 l; p2 `* J( v
FWD: db "FWD ",0dh,0ah,'$'
) }8 P V8 e& u0 K# W: kRWD: db "RWD ",0dh,0ah,'$'% r0 ]' Z* u N" k( T" {
RTM: db "RTM ",0dh,0ah,'$'2 @( m2 W" i+ ^6 V
LZA: db "LZA ",0dh,0ah,'$'
1 T3 x/ t0 ]. _% h1 Z2 F9 M2 Q! _0 {+ l5 CREP: db "REP F ",0dh,0ah,'$'- N, Z3 D6 D. \& k; P3 L
# W* I5 T! n8 S" }* ?: g# D$ X
YS1:7 U/ @, {& b& i! A% `3 \
MOV R4,#201 z' b' u$ v N
D1:0 v; p6 R4 m# F! o1 {
MOV R5,#206 g# M$ ?; r3 [: {9 d
DJNZ R5,$ ?. P* B2 i. ~3 p% A, Z
DJNZ R4,D1
4 B3 B1 ?. J7 c: _ RET
* s* Z: }' u3 r5 w& n7 {7 e2 H, Q% d. F4 C
YS2:+ D1 |; M7 `* L# Q# n
MOV R4,#10- P" Y' D6 |6 O0 B4 t5 H! Z" c$ @
D2:& ~8 Q+ ?6 m! r1 G/ Z1 X
MOV R5,#235# M' j a2 Q6 P
DJNZ R5,$
( l. m. U2 u% B, E; Y DJNZ R4,D28 W+ u2 [0 Z8 C6 ^
RET# J$ V" i2 `4 J3 t
" x' c* i& B" Q( q& A
YS3:2 ]$ y! f! D2 g2 i0 C; ?$ t
MOV R4,#2' R6 q* S" W, \0 n: n% V
D3:
0 X1 G6 `$ M1 E2 r$ E* B MOV R5,#248( i/ Z0 ~5 g4 |
DJNZ R5,$
% h. ]; P* L; {& L! {0 s6 h2 ^ DJNZ R4,D3
' i+ s/ x" t6 T+ a0 K+ ~$ I RET
" A6 c1 e+ f1 R- v2 p1 n
* @, z* x: H# {YS4:
" @7 k5 A B" ~/ ~6 P6 A: g$ i( Y MOV R4,#200
. b: p' ^" T" p' M/ a$ dD4:
5 F, {; ~; O) _9 J$ Y, w. x3 ~5 u! | MOV R5,#2489 n& J" u( E% B+ J4 E7 ^
DJNZ R5,$9 o E2 U1 w+ T2 r
DJNZ R4,D3+ q7 J' H! n! W
RET+ |& I0 u0 w A9 L" B4 v1 `
END' G n6 q: j3 `! F
) l2 W, o2 k" O* L0 a
有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。1 H. a* ^* M% F z" K
是不是很惬意,嗯!
* ]7 u) R( `0 P2 l1 F! t |