赶快注册并登录访问我们网站,呈现更多精彩内容!
您需要 登录 才可以下载或查看,没有帐号?注册加入
x
本帖最后由 zzrs 于 2012-2-18 12:40 编辑 z2 z5 F0 o" K5 f, b% c% t( k
7 E) Y5 Q( i. C本人曾在论坛发文详解用计算机实现控制STUDER录音机与大家共享使用心得,下面我再与大家分享红外遥控STUDER录音机的方法。
9 b) U' t$ [4 r: Q# w8 K2 G
4 e( Z# f) {% N说明:, |2 ]2 W* E3 n* }/ t: F; l
1、STUDER录音机控制代码在《用计算机控制开盘机》一文中已有描述,在此不在赘述;
0 o2 u" R1 y# _! P2、阅读此文需要了解8051系列或兼容单片机电路原理和指令系统和汇编语言程序设计,在此不作更多解释;
' |4 a! k$ E+ [& Q
2 ?( _+ h6 Q; a3 i4 Y3 [& ]( ]一、基本思路
$ ]% N5 V" ?( p5 B% G$ l7 O8 s7 `使用现有的红外遥控器发送指令-->单片机系统通过红外接收并分析遥控指令-->单片机将遥控指令转换成STUDER录音机控制指令并通过串行口发送给STUDER录音机-->STUDER录音机执行相应动作。
" I' H/ U2 S$ [- h
' M. A! U. N) g8 x& T4 v二、红外遥控器
" c# I; @3 S z: I( _, y6 b我找了几款红外遥控器,但大多不好看,感觉无论如何都配不上我们心仪的STUDER录音机,后来发现苹果的遥控器小巧、精致、时尚,虽然与STUDER伟岸的身驱对比强烈,但它们骨子里都有高贵的气质,还真是门当户对,因此决定就先用“她”与STUDER配对了(虽有乔太守乱点鸳鸯谱之嫌,但本人还是乐此不彼)。
; ^- w1 c0 K: B- ]+ z8 ?# w* U
& l) t5 \1 _& H) J& g
好了,为了使用这个娇小的美女,我们首先要知道苹果的遥控器各键发出的指令代码。如何得到这些指令代码确实不容易,因为APPLE公司不公布,不要紧,我已经用电路分析得到这此东西,下面送给你。
# `% k+ K, @8 q2 U4 R% S; M, b( ?% W1 T: r
6 n- F+ T! _. J- z" E9 c
在我的示例中将这些键定义为STUDER相应的控制功能,对应关系如下:0 L q- `' V n" |
9 z' }: m- F5 v4 [$ p
, q& d, f. v- j; u- h8 x三、红外编码& X/ |- |$ |! F& Y/ s1 [6 E
红外遥控编码国际上有一套通用的方案,即一个指令由32位组成,即一次按键,红外发射管向外串行送出32位指令。8 b) G% g" L9 w
前16位为设备码,主要用于设备选择,不同设备先此码应不同,以防止误控。 _, U1 m. `; t& s. Z
后16位为控制码,主要用于实施具体的控制。
/ A# X6 N+ I( ?: N这16位中高8位和低8位互为反码,以提高可靠度。, H7 K. s/ ], U" h( s4 _$ q
+ ?% g: b- j. R0 E8 z; b: L) o
以播放为例,其编码如下:0 Z3 c/ u) w/ T1 f. z& {# Z x5 D/ Z
00000000 00000000 01011100 00000000
: A1 N! c% V; `7 ~: O8 r5 Z5 U6 O" W) O8 f4 t" ]; O" U
你会说:这串编码不符合规定。没错,它的确不符合通用规定,这恰恰是使用苹果遥控特殊的地方,请你记住了:设备码为全零,且低8位与高8位不是互为反码。
8 `. S) [1 j9 n; C$ f3 V+ s t7 w$ H4 h. o; [" b" Z+ b
四、单片机系统
0 G. x3 P7 U( T* X9 u. z这里采用了应用广泛、价格低廉的51系列单片机,原型机为INTEL8051,但有大量的其他厂家兼容机,全部通用。在此我用了AT89S52,这是一个8位微处理器,主频可达33M,片内4K程序存储器、125B随机存储器,四组8位接口,内置串行信功能。先上图给大家。9 y! S; n" V: y( q+ k% g4 M
$ C/ B2 k$ s9 r# i: `5 V 9 S( p/ j. V% k" x
电路很简单,功能如下:1 |2 u% b% C5 \3 T7 W
1、一个AT89S52单片机作为核心;; F" g9 F9 l7 P) @
2、一个TL1838为红外接收头直接串行输出数据信号;
, A/ `4 m8 d7 \7 f1 g8 y) N7 q3、单片机的P3.1(TXD)串行输出控制信号到MAX232转换电路,将TTL电平(5V)转换成RS232电平(12V),以适应外部RS232串口设备的要求;
$ L5 w9 L# J3 y: P4、一个9针D型插座用于连接STUDER录音机,连接对应关系请参阅《用计算机控制开盘机》一文。* f: d# q3 F8 I/ p
) c* g& ?* l1 Y8 n A/ A关于供电,你可从STUDER录音机的RS232串口取出一个25V电压,用7805之类的稳压模块给此电路供电。
* ]; N6 c& E Z8 S; f7 u$ X/ f" b" C: N7 S( |" ? q9 `4 |" C
; e9 g2 ? P9 |# K8 E五、控制软件
" [% b# G' Y/ T4 K控制软件用汇编语言写,源程序如下:
) Z" g" o% G s% D ORG 00H A) u( P( \; Y4 R( o
LJMP MAIN; z" k: z$ k/ W# q& G7 Z. ^/ I
ORG 30H
0 n4 _7 d; p! F1 nMAIN:
z+ b1 r8 F9 y! `. r A! e% E MOV 20H,#00H ;设置串口工作方式,速率9600,(11.0592M晶体)
: b' B3 v% n$ W8 V MOV TMOD,#22H ;22H
- r( ?# N) b6 E; @3 t MOV SCON,#40H ;40H
* g8 C3 `2 B, ]7 W0 { Y. g MOV TH1,#0FAH ;F3H
( A+ G4 |: u0 Z% p. ~! h" x MOV PCON,#80H1 _9 b9 M2 X) p \
SETB TR1
9 A* P3 S% ~1 _0 p. A) r0 A! e, b- g) ASTART:
4 C( ~+ c3 `1 b/ Q8 f JB P3.7,$ ;遥控信号处理
5 {8 w" N. l# _5 t0 q1 ]! p# [9 ?( BSB:
/ }& Y) M! E0 P: ? MOV R4,#8 % X0 O7 b: a5 G+ T+ r
SBA:
2 w& z+ S2 K5 E/ ]2 _" b MOV R5,#250
+ c* K+ \/ n" {$ l7 y4 K0 \: zSBB:
4 ?4 l% U7 n3 [* Y! Q$ J% | JB P3.7,SXB19 W5 Z+ q7 [- z5 J; k1 c- ]
DJNZ R5,SBB
% G" X5 ]8 @ H) L. L, D; O DJNZ R4,SBA
4 G8 i5 c) t' m- Z MOV R4,#2) E$ l3 R+ l/ h/ P1 m. x" }4 i, E5 b
JMP SBC& n/ c2 T% T' s- E$ E1 j$ W
SXB1:' Z6 Q; p2 H d: p& C
MOV R5,#51 K/ I" y9 K$ v: V O4 I
SXB2:
2 F' j/ P1 l# c JNB P3.7,SBB5 z \: P% K; {% `( _
DJNZ R5,SXB2 ]7 Q4 }0 t( }. N2 [
JMP START0 P2 F T }- d$ o1 P! V
SBC:( N: z i% t% ~2 A, q
MOV R5,#250
7 Q! n# D; F9 W' BSB1:9 P$ a X; Z& s) m+ \
JB P3.7,SB2 3 m9 i& O; O3 y% H+ d. P
DJNZ R5,SB1, R% _' D: q# g
DJNZ R4,SBC, B2 C1 C3 h' B: ^! o
JMP START
" |% k; j5 V3 g( h; L# E7 |SB2: 6 x w8 @! ?+ E) v- d- c
MOV R5,#57 Q G \1 f2 A I* j* N9 s
SB2_A:
1 O* L5 V$ M. x* o. K9 M' B JNB P3.7,SB18 Y$ J5 q& ]9 O5 t6 d
DJNZ R5,SB2_A
3 ^% s+ j) [; f3 A! F; {. r MOV R4,#3! Q/ R! q* M m
SB2_1:) G1 ~1 L( q! m# q+ n, C! T2 O( b8 q
MOV R5,#250
- v |2 K+ Z! c2 l" F. A+ `SB3:
$ w8 B; E N( ]/ P' q+ K [ JNB P3.7,SXC
- I T+ f9 A$ j DJNZ R5,SB3
; V6 i0 O; B% e. p$ v DJNZ R4,SB2_1
3 h/ @% B8 X9 d; M+ R$ Z6 } MOV R4,#2. g3 K: [8 d3 l$ B& U
JMP SB3_1+ `' Q3 ^' W2 C- I$ M* B
SXC: 6 f4 r5 D/ |2 ^" t/ o9 C$ G5 X* u
MOV R5,#5
6 R9 ?, P6 y1 c* Q- CSXC1:
) J I7 r Z: m, c: x JB P3.7,SB3, _0 ]) \: e- M3 H
DJNZ R5,SXC1& N& B8 D% a) `5 G
JMP START
?$ k) [7 E9 s$ M& M7 [SB3_1:
0 ]$ [$ } C0 L4 R MOV R5,#250
$ h" W ], i9 N* TSB3_2:
) X! g9 S; o4 l. e# M- a, B3 [1 Z: F. B JNB P3.7,SB4
, D* f) J1 Z3 t2 w9 g DJNZ R5,SB3_2
) i) q1 S" D' l# O# y DJNZ R4,SB3_1. l1 l6 o! n7 d
JMP START7 \0 A1 {, |/ \# n6 B
SB4: ( w% ~5 f2 Z0 t
MOV R5,#5
4 T: n6 V. P) ^: kSB4_1:
0 \" k1 S7 q% { JB P3.7,SB3_2
3 q5 [( ]. z; G7 e+ t5 K DJNZ R5,SB4_1
9 E& T7 {5 ~. e3 Z3 a' d2 } MOV R1,#1AH + S9 o$ y' ?3 f* x$ r5 p, t
MOV R2,#46 U% T( Z7 b7 T" f
PP: MOV R3,#8; h) K$ F' \) z1 n3 v
JJJJ:
# X4 e0 a* `, R& p+ ? MOV R5,#250
; @6 `/ _( I, f3 R; | n) q E( DJJJJ2: * v9 c7 H2 l) l; D" f$ [
JB P3.7,JJJJ3
" ^! ~) \$ l8 z1 C9 U) T5 W3 | DJNZ R5,JJJJ2( _! W: s- m- r
JMP START
/ o6 h$ g' Y0 _/ pJJJJ3:' [ I. i9 O- Y* B
LCALL YS1 1 C" k r8 |! \
MOV C,P3.7
$ e1 |+ C# e. R/ q' ` D: f JNC UUU ( s" k: }6 M A$ z6 k
MOV R5,#250
1 L; p* z. J6 Y6 Y9 n+ K; }/ d, mJJJJ4:8 m/ m! j4 H% _ n
JNB P3.7,UUU# H B( M3 G1 C& i' K2 I. {. M7 B5 y" Q
NOP
8 j, D, j, D. X+ H M DJNZ R5,JJJJ4 `) `7 ?+ s3 _% N$ q0 m
JMP START
" D+ J4 h+ j/ Y7 CUUU: MOV A,@R1
1 J* |7 O+ O; \7 U RRC A
$ K9 z+ @- F, o& K" B9 t MOV @R1,A
: w; f# j' r+ h I8 I9 W DJNZ R3,JJJJ ( q) N# w8 o2 Y$ m
INC R1
9 l/ Q0 m* m X- g0 S DJNZ R2,PP & b2 z( G2 K# y, P0 U
/ I' @2 S1 c4 u8 R' {0 a% w
MOV A,1AH ( C( _% ~: R+ m1 g+ k# S/ d" \
XRL A,#11101110B7 G1 @: V) |* {! z) @0 q! W) K2 ?
JNZ EXIT
( D7 a% c, n$ i" V f3 i MOV A,1BH 3 ^( Y$ ^ M% u: Q
XRL A,#10000111B1 K% t5 P9 x( V' U8 ~. u* n
JNZ EXIT
$ X& ^- f. K" w3 | LCALL YS3' _+ X1 u% {7 @) d
MOV A,1DH ( M% k1 I5 k) |8 l! L9 y
CJNE A,#10111100B,EXIT! @! q7 k8 z+ A; E3 |
LCALL YS3% i7 u2 [7 A! d; C* w
CLR P2.6
+ F2 [% V: _$ Y: e" w- d: K1 M AJMP BIJIAO- d' Y3 a+ Q O" c5 b
5 _4 |* B" ?: M3 P. rAA:
1 W7 I0 c2 W( [ @& B8 Z MOV R1,#25; I" B8 `! H( ~( L- _! w; E
XX: 9 C& e# ~$ k9 ^* H
ACALL YS2
3 a9 h8 q9 @8 E JNB P3.7,HH ; l% G( u- U4 A& \
DJNZ R1,XX" n( r8 l" |* n j s _
EXIT: : x) V2 \& m! w* \6 u
AJMP START4 D6 {2 V! U! e" c, F, t4 p
# S- p/ q* |5 ~& w; _HH:
% B( c7 o+ z; L5 F5 C MOV R6,#4: M$ [ W+ V. I
S: 9 b8 X: n. L `! J
ACALL YS1 5 e [, Y& B9 x( {; i9 D6 L
JB P3.7,EXIT
7 N" P# s5 ~% K# n D) L DJNZ R6, S
/ N& G% ~. h0 c0 T- g/ j1 F& N4 O JNB P3.7, $ , B. n+ P' ?, y0 D8 F. e; J
LCALL YS3
) K6 w# Z; ^9 w/ f AJMP AA
$ D9 p) s: }3 Y5 M" X( k4 o1 gBIJIAO:
/ \. I; d3 {1 j5 w# J MOV A,1CH
4 |4 x3 {% `; C CJNE A,#03H,N1
" \6 o8 O. ]( f, S$ _ MOV P0,#7EH
# P# ?: m2 } F/ S7 C/ f/ `8 k: [
9 ]) s3 b+ z/ r7 @( j$ S ;处理STUDERV录音机控制码8 l6 X) ?$ W. d9 u1 g6 W
N1: 4 K; {7 ]! P2 _$ y# E# W6 {
CJNE A,#5FH,N2 ;播放键
! t) W" N) V5 P1 m) }: B; v MOV DPTR,#REP
5 y5 X8 v* {" [! l2 l4 {$ I! m `/ i8 O ACALL SENDA3 p8 o! P; m; U% N8 C
ACALL YS4
4 ]- l+ I/ R' P* }7 }9 ^$ c MOV DPTR,#PLY' ]1 r$ [+ ~) }1 O4 i+ b" [
ACALL SENDA
2 }7 [) R! t( r$ U' r, x. Y; W/ e) R3 @N2:
" o E, G) |7 x% d8 ] CJNE A,#5CH,N3 ;停止键
' W% l8 X) p; A9 E MOV DPTR,#STP
6 k8 j! }5 k) ?$ b. ~ ACALL SENDA1 _& ]' ~! F) ?! _
N3:
1 l6 } x' N: R9 f6 s CJNE A,#06H,N4 ;快进键
5 _) T) \9 h3 U4 ` MOV DPTR,#FWD
8 l0 S% e% X* o' x ACALL SENDA: M# m$ \& G) @; V2 w, W
N4:
0 E( n( m* P* Z* s2 s% ?4 i CJNE A,#09H,N5 ;快倒键
9 A0 N6 K- [. z1 `& L, X! l MOV DPTR,#RWD
* U0 ~6 ], Q; [" [' O& S5 T; M ACALL SENDA
2 [: q3 f+ Y4 e. H) q$ AN5:$ q3 m2 v, J' g" z1 V: V: U
CJNE A,#0AH,N6 ;置零键; f+ y5 D8 O/ U5 Z. Z1 h
MOV DPTR,#RTM( j5 k& L' z e6 |* V0 \( w
ACALL SENDA4 K. L1 b$ H# Y( d( a9 |7 g
N6:
F1 H$ N- s$ Z3 G. g( r CJNE A,#0CH,N7 ;定位到零键
6 L8 p5 b# T3 b0 d5 o/ o MOV DPTR,#LZA, s) V5 [' Y* A
ACALL SENDA7 y( @* G& b2 n8 I- U& w. A$ O
N7:, l- v* y; {4 U% o5 p
AJMP AA
) I* S. d4 A7 S0 ASENDA:" }1 `' X/ v5 \, N9 X# D" Q" _
CLR A" Y6 k9 R1 u8 F% N+ ]* q7 I8 \0 n
MOVC A,@A+DPTR" S0 x! `3 p* W+ J/ |9 {
CJNE A,#'$',SENDB
. E1 v% ?7 t7 K3 s AJMP SENDC2 _3 F$ p0 M, p% @! U
SENDB:
) q! Q4 Z& ~8 ]+ _5 }9 b MOV SBUF,A
J5 S- ]( r5 X3 }5 ` JNB TI,$
+ |( ^% I# B* C5 }* B CLR TI
9 P$ q( w+ ~8 c- w INC DPTR
+ @$ c: l+ o5 _* N AJMP SENDA
1 H( I# U# G" M6 Z& ?SENDC:; U8 g: H1 o) [$ F: F
RET
6 ]- n/ e& E3 ?5 q
# R6 X C0 Q* K, z' e9 n$ ~7 QPLY: db "PLY ",0dh,0ah,'$'6 K; c l N. ]/ Z4 ?# ^
STP: db "STP ",0dh,0ah,'$'
, |* G. e2 U* {FWD: db "FWD ",0dh,0ah,'$'! y! g! b) ^9 `' M3 O
RWD: db "RWD ",0dh,0ah,'$'
5 h1 q1 O7 |/ ERTM: db "RTM ",0dh,0ah,'$'
% t& I6 y" M! H; \LZA: db "LZA ",0dh,0ah,'$'
4 D+ s9 M* N7 }% c1 xREP: db "REP F ",0dh,0ah,'$'. y" Y/ B2 E# M* Z+ t& i/ J6 F! a, a# T
0 I) Z! `9 W' S$ a
YS1:
0 w" p9 r9 i1 T- j9 _: v; w MOV R4,#20
6 C7 ]8 Z( X, v( @8 jD1:
& X/ l$ ^ y6 L2 m/ u* Q MOV R5,#20% ?/ f \5 y! Y; ]8 ^/ j
DJNZ R5,$
: P* D* l/ e) ?) t" t DJNZ R4,D19 j" |$ c( I3 W4 z2 `
RET0 r+ P: u* d7 a$ h* Q$ q. |
9 }" j7 s! e( H! N
YS2:
t6 w/ U0 o( m, P MOV R4,#10
?# P; s, ^1 N* T3 c" xD2:3 \* l* P2 J) _
MOV R5,#235; l0 O8 r% X2 n2 ^ h
DJNZ R5,$& g4 B. q# p+ B4 x7 W7 v% X# W1 W- Q
DJNZ R4,D2
6 l- s! ]6 w" ^& {8 {# @9 i+ { RET( e! ^0 {2 @# n% y' B8 Q6 R
- T; u. Z- \# `2 n M
YS3:, d0 k' N3 T2 r1 q
MOV R4,#2! O& H7 b+ a( b- C
D3:
( S& `3 N6 P7 r$ {$ i0 P MOV R5,#248
P% N, z a% g; Q) ?# o3 C4 K DJNZ R5,$
' z/ R1 w2 |- k9 n7 X DJNZ R4,D3# _" T6 F% m$ p- e: e! O l
RET
+ G0 Z7 T6 a9 \9 d% c
7 G& p1 ?" `6 _! n5 WYS4:4 ~, |8 m: Y* X! W0 S3 m2 [! Q
MOV R4,#200: O. J# |; o6 M P9 s) \4 }
D4:) m0 f; Q3 e1 r. `- j+ s" X0 p
MOV R5,#248" O" F a3 v& M
DJNZ R5,$
* j$ l5 V" V3 ^6 }: a3 E DJNZ R4,D3" R. W9 i/ o7 _$ G8 X( B! \
RET
2 T/ c9 N2 z2 B k; P END
8 Y3 t+ z4 O! @! _+ U+ l' o% _! S/ e/ ?5 l+ b$ y+ c
有了上面的软硬件,你可以舒服地控制你心爱的STUDER录音机了。
/ y' I `6 g" r是不是很惬意,嗯!# h2 B1 R. [* k. Y
|