赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑 5 C6 w* g/ c! k. J
+ f9 J) @1 ?/ Y6 H* R. p
本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。- y. T2 x/ E7 W# K, I/ a
9 Y" J3 p( q# j& _+ s- V
说明:
% _2 m. I* I$ `" d9 |5 W! c' N1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;& u u0 e5 O$ J [
2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
. [! E/ y4 S% ]9 M
8 d% Q: k3 n+ ?6 q一、基本思路
' I7 B ?. D& v7 ?) I- \) R: x使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
0 `3 ^ l4 g4 C
0 ~; j- `: q q5 N二、红外遥控器
. f2 c; w5 c4 G, o我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。- P* j- v, p0 f1 d2 d( z
6 r& H3 R1 m( c" p/ q" T; S" r. ]
好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。6 @! G1 R2 b" c- I- N
1 ]4 L, O8 F8 Q3 h7 h' o在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:3 L* X% t# {) ?, D$ @* g
6 t3 s4 e( R+ Q% @1 G2 F: v" h
$ V6 q" x* b. m# G1 S/ \! j; h( e
三、红外编码
5 Z8 G4 u' W& E- q) m" h红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。7 @4 A4 d6 M! }+ h+ }, M8 v' O
前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。7 q8 I0 T. Y. H' e( I
后16位为控制码,主要用于实施具体的控制。% e* |* O+ w2 V3 S+ Q
这16位中高8位和低8位互为反码,以提高可靠度。3 t5 t2 h: H; Y
3 [/ \) _9 ~# O6 C* v2 [/ `以播放为例,其编码如下:& e& \% \5 b, R; E" ]- E" Z: q& E
00000000 00000000 01011100 00000000
1 \* C: U: a# ~& u
9 s- F' r4 L' U/ t- j你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。
^2 a2 Q( U: A( f+ r1 b7 ]" z. p: Q8 O/ } i
四、单片机系统
" R4 v8 o0 e5 r1 {2 k这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。2 E& m1 i) i2 y$ C
0 l& q1 F% W6 l
2 L: L. p5 H5 A电路很简单,功能如下:
: Y. d! z' \8 X( A3 q7 Z4 H; P1、一个AT89S52单片机作为核心;
- e+ A6 z+ {2 Q, ]/ q" z2、一个TL1838为红外接收头直接串行输出数据信号;/ W$ }- `% S0 U# L
3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;6 u) |% {% f: ~, n. U* _
4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。: k7 T. X& a6 R/ }# V8 W+ R& V, T* u
( B' M7 I* h C6 H8 f关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。- G* T, T5 M( U7 [3 u( X r- p
2 _$ O# t @" ~, S# I' [
5 ]1 u& T1 H t& ?! q, l& A7 U五、控制软件9 t. l5 y0 ~' x/ A* a
控制软件用汇编语言写,源程序如下:
! a0 M0 R! A" ~ ORG 00H
& _& R' G) y, w/ m LJMP MAIN* c1 |% D7 S& X$ ?
ORG 30H1 N: y9 T4 V: O, ?5 t4 O
MAIN:
5 e) X5 e9 l1 H+ w MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
4 H1 f3 J8 y+ e( T; u7 B! ] MOV TMOD,#22H ;22H
' I* C; ?7 F7 i& a, i& L MOV SCON,#40H ;40H
0 k# N* [2 G' s MOV TH1,#0FAH ;F3H0 [0 v% c( i3 G0 j; T( t7 Q
MOV PCON,#80H
/ `) j$ ~: z0 M: N r4 | SETB TR1
9 v' {' x* b# f3 B5 e5 J( H) `) n+ iSTART: u+ ~7 |- [& ?6 q2 F
JB P3.7,$ ;遥控信号处理
: {8 Y, `& ]; f1 W$ r" x- }SB:- ]& ^4 _: O8 Q. A5 I
MOV R4,#8
9 ]$ |! x# R1 l% }5 e' b- x% W" lSBA:
, A9 |- b3 x$ ]) B MOV R5,#250( n7 G; j% P6 e ?, b1 G) }* S
SBB:$ ^4 D9 I9 k* @+ p
JB P3.7,SXB1
K4 X6 e5 \) T7 f! R DJNZ R5,SBB% O8 H+ L) T+ B, I5 ~) q4 f; P G
DJNZ R4,SBA
1 q( M s( b6 K" s1 }9 M/ j MOV R4,#26 K- P1 K: E2 h4 j |
JMP SBC
, Y2 ~3 q5 p2 _) V. o B% \% m5 FSXB1:
' V$ F. j M* }- A- p MOV R5,#5
$ f" n2 Y+ ]9 h& cSXB2:
$ u: T1 S7 v. ?6 f: X& G JNB P3.7,SBB
0 I, Q8 E- H# r: p+ }/ [ DJNZ R5,SXB2; w2 P$ e E+ ~2 J4 g. A2 q
JMP START5 T1 x6 {4 V- G2 S. D1 X3 e" E4 X
SBC:
: j: ^4 C, k( Z MOV R5,#250
8 y* f: G, d% ^) B: ASB1:
}# {7 Y/ Y( x7 F( d- O' Z+ y# i JB P3.7,SB2 $ ~& r0 ]" w* r: t
DJNZ R5,SB1( r3 V8 A) U7 n# r0 `
DJNZ R4,SBC
% [ F" J6 r% c- Z1 ? JMP START
, D X5 o7 g/ o u, }. \" G% xSB2:
x" [3 n, ]- e" H M% @ MOV R5,#52 j; v7 o# B* y3 G6 }- y
SB2_A:
1 g: |$ P* }& K& e( B2 A JNB P3.7,SB1
9 e' x. U* t X% ~& v DJNZ R5,SB2_A& i2 g. I6 E) B7 J, ^7 E. ~; G# S" R* t: b
MOV R4,#30 a, s, a" R2 D$ [+ E* ~2 P
SB2_1:
3 s, b) _: I9 U" \4 t6 }" ~ MOV R5,#2506 T4 i5 ~( [! o" N
SB3:
7 b0 Q' F# c# l4 G JNB P3.7,SXC9 N; F) R p6 s6 D' `+ ~0 y U
DJNZ R5,SB3
6 e" O: M/ S* [( { DJNZ R4,SB2_1
" T% w' H& e! G) \' G7 U$ j0 R9 r MOV R4,#2- g e9 j3 N' [5 v6 l
JMP SB3_1
0 L' Q: ]2 Z4 z+ _% RSXC:
+ t( `2 U) X k* p+ e7 |2 R MOV R5,#5) n9 J0 F" B" h6 A! v, k# \
SXC1:# G" G" k2 s, U$ |9 V( W
JB P3.7,SB3
' H t$ J, Q& Y) B3 k6 p DJNZ R5,SXC18 q% C+ W! B6 e8 n* \. y9 Z7 S
JMP START. `8 Q3 D; N8 p6 f ~
SB3_1:
( a5 z, ? h! J5 x, \; j" _ MOV R5,#250: K5 X) H Y8 \4 S% Y
SB3_2:
# k+ Y2 t1 d# [2 Z* ^' I! [, C# Z JNB P3.7,SB4) x) X% o# E1 N7 Y
DJNZ R5,SB3_2, E. Y0 K5 W& f% h' F
DJNZ R4,SB3_1
# e! q6 E' F4 r9 u2 P. O JMP START f) g6 N( b3 t; e8 o
SB4: ( a1 ?+ O# Y! D
MOV R5,#54 ~* D1 x& V- s' v) r& U
SB4_1:0 Q, p( J0 }( n+ M6 r' [9 J* M o
JB P3.7,SB3_20 y3 E& i9 \$ z& |- y& {; O% X
DJNZ R5,SB4_1
4 J. W: [2 S+ B* x% |- k, j8 T MOV R1,#1AH
# ~3 C$ }5 ^2 C9 { MOV R2,#4
8 j9 j& p1 ~. x, B( \0 c" M- APP: MOV R3,#8
' x* W0 t# t7 l" Z8 tJJJJ:! q2 r3 X6 o) g. |2 V
MOV R5,#250
" K: X8 H# o1 R; I3 X: q2 \JJJJ2: % S/ l% a( ^$ w$ d
JB P3.7,JJJJ3
2 @8 M- t2 b5 f& o5 T DJNZ R5,JJJJ2! }" c. H! I1 K7 ~1 I+ u
JMP START) N- T2 t" A) x( Q8 b
JJJJ3:5 p7 A+ W4 k, v# q
LCALL YS1 ( I7 q' _+ N6 w% ]1 s: V
MOV C,P3.7 " v" X V; U) w
JNC UUU
' f: z: G9 u4 [ P$ u$ e" a: O MOV R5,#250
- X5 P* N4 T: K1 d m7 OJJJJ4:
4 S( f9 K- S; w* ^3 z2 V! E E4 Q JNB P3.7,UUU( K8 V0 @1 l& A) B+ l+ ~
NOP
0 W% f& D8 u& h* ^! a8 `. t DJNZ R5,JJJJ4
2 v' M5 j# c' C% {. [0 K( }4 y JMP START5 f* S$ A. l0 \6 P1 q( O3 a
UUU: MOV A,@R1 4 o$ I/ \, W/ R8 e% ^# }4 h
RRC A , W- \/ a- J& H+ d7 {
MOV @R1,A
8 y5 j0 \( \, u DJNZ R3,JJJJ
* z2 e7 B, K) f( } INC R1 7 m G6 k |1 _/ y: n+ V* _! `
DJNZ R2,PP $ T5 {. C% Z1 W' b4 U8 M
3 i+ @" l! r. w! b
MOV A,1AH " ]4 ` ^& F- T$ H" d. A
XRL A,#11101110B8 h: T; ?2 C; Q4 Z+ \) q
JNZ EXIT
$ K V( A$ e( W MOV A,1BH 5 N% Z4 _* t( l5 W
XRL A,#10000111B
( c D& U/ I- o, t) c/ G' c JNZ EXIT * \4 Y; z. r" [9 e1 F: t
LCALL YS38 V/ }; b- i- k( ]' w
MOV A,1DH % F9 q. A& Z+ E- m# M
CJNE A,#10111100B,EXIT$ U" I4 W5 O, {% ^- f
LCALL YS3, I6 T% R! ^, K) |8 \
CLR P2.6 0 {) s9 F- o1 n6 F4 R
AJMP BIJIAO
; {% X C3 Y9 P. T
9 | {* ^! a8 c0 G/ M, n a* w" u; |AA: 7 b! T& d9 w7 K: h! O L# V! F
MOV R1,#251 N4 [8 c1 v' h9 D5 k
XX:
- ]- O- [! m% M ACALL YS2
% d7 ?% J5 o$ f JNB P3.7,HH & |/ F* E- p7 J( j: q" X5 Z
DJNZ R1,XX
- d! Y \. k( ]7 p' L0 PEXIT:
! p C h6 |0 ?5 H1 A AJMP START
7 B6 I* G" T) [
& P1 ]3 o" J: _6 l' X% |+ y0 \HH:2 {/ `, `" e8 z$ P$ i1 i
MOV R6,#4
, T/ l4 n! _* e# e$ mS:
; n8 P6 r4 _+ v8 G, o. N" d' }7 G ACALL YS1
) s k7 P. H8 p( Q* M( ~ JB P3.7,EXIT
1 _5 z. ~8 C, ] DJNZ R6, S
h8 e1 q- W& ^6 U JNB P3.7, $
8 B: i3 O, l& v, y LCALL YS3
2 m5 a6 {2 E \+ q7 @ AJMP AA4 {* j' s% O L' {# G& P
BIJIAO:+ S, S8 g# K4 H! @9 s
MOV A,1CH ) _' N7 Q. ~( a
CJNE A,#03H,N1 " y8 f6 I" n; Q: h; S1 \
MOV P0,#7EH
/ a1 F- O$ \1 w, q. w$ ?& l W6 y 0 N+ J; D+ T1 J8 w9 Y+ r
;处理STUDERV录音机控制码, @, f* Z* d6 z2 D& M5 t
N1:
. K ~' T* }/ {2 K CJNE A,#5FH,N2 ;播放键+ \9 c, f4 m) P) o* ]- ]
MOV DPTR,#REP) C L3 \7 | x3 P1 }
ACALL SENDA7 e* W: M! S: X
ACALL YS4
8 l: V. g' b& Q MOV DPTR,#PLY! j3 l* M& E' Q
ACALL SENDA$ y9 g" X9 ~5 d4 r) W
N2:
3 b( D3 K8 D6 F- N6 o' X1 [6 r CJNE A,#5CH,N3 ;停止键3 T& D0 c$ y5 y
MOV DPTR,#STP! L2 I( w3 b. V# P7 ^4 e
ACALL SENDA
0 {5 b# a2 ?( a0 @/ nN3:
& j2 `7 D! m* a+ i; D; ` CJNE A,#06H,N4 ;快进键
\3 m L6 ^8 Y MOV DPTR,#FWD5 s! U0 A5 w2 I9 x. r
ACALL SENDA$ Z& ]6 P6 ]% P, T" s5 N' y
N4:
! l6 x8 V, W' A5 V CJNE A,#09H,N5 ;快倒键1 f- r1 Q' l8 Z1 I$ n
MOV DPTR,#RWD" y N+ H, Q, ~1 S; P$ }
ACALL SENDA
% G7 z! g, \' G$ w2 Y' s' O; tN5:
8 Z- e L: U+ ~; k. \# [3 ?: w+ T CJNE A,#0AH,N6 ;置零键0 n Y2 v7 s8 P$ e# \) q' J& n
MOV DPTR,#RTM( y! E! o$ h' S+ Z# y
ACALL SENDA
4 c/ b* ^5 ?4 w3 ]# |N6:# ^) T; l7 w6 ~7 Q% H# I
CJNE A,#0CH,N7 ;定位到零键( ^/ \/ q4 {* D
MOV DPTR,#LZA
. O- f* x p2 O4 c6 i ACALL SENDA
5 E8 j' f0 }9 U3 V/ x0 l9 t" I) }2 ^N7:
' [( t; P9 b; [ p AJMP AA
- P0 h6 G2 k" B/ L/ Z# eSENDA:
. v2 P. G6 |! N6 ]5 ^( k CLR A; r1 c* s6 b: D3 A: K& M5 M
MOVC A,@A+DPTR
' f9 k+ n. b/ Q$ R6 B CJNE A,#'$',SENDB/ z3 G& l2 H! `) s3 D* j
AJMP SENDC# W% e/ [7 R% R8 h2 [
SENDB:
9 P6 l( h7 ]+ \3 i) S# s MOV SBUF,A$ \( y: J) H7 i2 g' q8 `
JNB TI,$
0 f1 G( }' \4 W* [ CLR TI
3 t2 e. |: E6 A5 y" ~4 n INC DPTR
; C: T- b) }0 r AJMP SENDA
% K1 w4 q8 l7 {, [- s6 S) e$ A t% @' vSENDC:
$ q( @) @0 E* M: j; q# G) v$ H. p RET
& V) r6 X6 L$ p2 [% @# |$ P$ {% m
a' e @, [/ V! L1 _) a6 k7 I! k- l1 xPLY: db "PLY ",0dh,0ah,'$'
0 R8 x* E3 A- ?" }7 ISTP: db "STP ",0dh,0ah,'$'
F8 a N! q4 U, @5 pFWD: db "FWD ",0dh,0ah,'$'# _ x( F% R7 D+ b
RWD: db "RWD ",0dh,0ah,'$'. t! j# [) |9 c( z$ F
RTM: db "RTM ",0dh,0ah,'$'9 ^0 H, { \" E( @/ |
LZA: db "LZA ",0dh,0ah,'$'' T4 H7 V& g& E8 d' r l
REP: db "REP F ",0dh,0ah,'$'
; v1 }0 m; L8 S' Y' i9 G) a7 c4 r) t8 [
YS1:) p+ U$ D) |8 Y7 p% k
MOV R4,#20" H4 S5 _. y! {
D1:& h# m5 X+ g; k1 ^
MOV R5,#20' k' z* ^* e# ~
DJNZ R5,$0 E8 `- S/ d: X$ W8 l6 `
DJNZ R4,D1 j- h0 z" q8 d d" L, K- a' N
RET
+ ]* M) A% g0 T
9 S7 v, X4 v9 S" l O4 aYS2:
S. W8 K4 O/ y MOV R4,#10
; Y6 ]& l; P/ X4 f& C2 i8 w/ @D2:+ ~3 V$ X7 h. X5 B: m$ K1 C9 [
MOV R5,#235
& b$ Y4 o7 R3 u0 { DJNZ R5,$
# s2 s p7 i7 ^) u: K DJNZ R4,D2
7 w4 t6 y% Z; K! s* Y# v RET$ [* B. H" u& t! N
4 s, c9 f+ P- ]- k8 P# E X2 O- C
YS3:
, b' m, N5 `) x2 ~ MOV R4,#2
: C ` T! J( l* i4 [, T+ CD3:
2 L) T. B0 p8 i9 ` MOV R5,#248
; H9 a* X/ X3 p2 D Y( y DJNZ R5,$
- g& v8 t7 V) ^2 g1 x2 G7 d. Z DJNZ R4,D3
8 x) ~ ?! p0 P C( g4 B w9 s RET
6 t, B0 Z& c0 m6 i' ?1 |9 ?
m! U' {3 }; E+ F2 r: N# RYS4:
: g8 ~: d( V: l4 ~+ i" s MOV R4,#200$ I: B+ w% p3 K/ Z& w, U% k5 B
D4:
! [' b- b& p# E2 V7 {4 d2 u# x MOV R5,#248* o/ q. O6 T# [" V3 X! Q: m
DJNZ R5,$: J% t3 l0 G$ U2 K) H" {/ }
DJNZ R4,D3 S4 c9 [5 c& U' @! `) }
RET
( h8 n' {# [4 I+ N% e( i END
& w5 j7 V% m6 e7 e* }
9 t- ~9 ?& R# s: [! U, B6 j有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。3 M" [ y6 v1 v# @5 Y# R1 v. L
是不是很惬意,嗯!
6 M3 L H- V( w2 s |