维修网

 找回密码
 注册

QQ登录

只需一步,快速开始

微信扫码 , 快速开始

查看: 175|回复: 0

基于AT89C51的音量控制电路与程序设计

[复制链接]

classn_11

发表于 2010-1-6 21:04:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
基于AT89C51的音量控制电路与程序设计
9 K) |; h3 [& N" i3 A1 引言
( l. U; l7 f0 w4 d% B4 E 本文介绍的音量控制IC为M62429,市面上有很多类似的产品,例如:FM62429、CD62429、CSC62429等。其实,掌握了一两种IC的编程方法,稍作改动就很容易移植到其它产品上。M62429是日本三菱公司的音量控制IC,音量调节范围是0~-83dB,控制精度每步1dB,内部电路如图一(详见M62429的使用手册)。5 d& q% d/ M) g0 T" k
, v; h. }' P7 v& v/ H
图一 M62429内部电路
5 A' h/ v" N5 x( z2 硬件电路
% I( y* I0 u1 m0 h+ | 根据图一而设计的电路如图二。
8 t  _( ?, z! N 图二中已省略了单片机与功放连接的其他电路,只剩下AT89C52的晶振部分、与M62429相关的电路、控制音量必需的按键电路等,加上电源之后,该电路可以独立工作。由于AT89C52真正的串口已用于其他用途,M62429的4脚(DATA)连至AT89C52的P2.2,M62429的5脚(CLOCK)连到AT89C52的P2.1。由这两个引脚(P2.1、P2.2)作为模拟串口与M62429通信,控制音量的数据便由这个模拟串口发出。
* F( Z$ g7 Y! h) \# g 音频信号从LH1输入,其中L通道信号经过C1耦合到M62429 的1脚,被控制之后从2脚输出,再经C2耦合到LH2输出到后级进行放大。R通道信号经C4耦合到M62429的8脚,被控制后从7脚输出。经C3耦合至LH2输出到后级进行放大。在LH1处输入合适的音源,从LH2处就可以监听音量控制的情况。SW1为音量增加按钮。SW2为音量减小按钮,SW3为复位按钮。7 q# ]( x- H7 a0 W" o% a) T' C
3 q$ T2 h; \; ~* n  W3 F2 `9 {  {
图二 M62429与单片机的连接
# ^- T$ g( ^7 N, s3 软件设计4 e5 |/ X* j9 x+ @! L8 i
从M62429使用手册可知,送去M62429的控制数据DATA为11位。通常的用法如表一:
, y) F2 D4 G4 W- ~* X( ~表一:M62429 常用的11位数据(DATA )结构
9 I" m: x, c  D& r
2 Z4 {6 n' o# v5 \ 表一中D2~D8是根据音量的大小变化需要改变的数据,其中D2~D6的编码如表二,
% R, [- W/ D1 V7 ~表二 M62429音量衰减值与D2~~D6的关系
! A( F. n, f' D3 U: I  O$ n- }6 c: C
; y! C0 l" m4 Z/ H, d  v, E0 b9 r 3 S( k/ r+ G& Y: c
从表二看出,D2~D6控制步长为4dB,需加上D7、D8(见表三)才能达到控制步长为1dB的要求。例如最大音量时衰减值为0dB,查表二,D2~D6数据为10101,查表三,D7,D8为11,所以D2~~D8应为1010111,根据表一,D0~D10这11位数据为10101011111。同理,衰减值为-1dB时的11位数据为10101010111。由于AT89C51系列单片机处理数据是8位,由P2.2、P2.1组成的模拟串口无法一次完成11位数据的发送工作。我们只好把这11位数据分为两次发送,我们可以用先发送6位、后发送5位的方法(当然也可以用其他方法)发送。例如衰减0dB的数据10101011111,先发送前6位101010,后发送5位11111。由于AT89C51系列单片机数据为8位,我们可以在这些数据后面加上“0”,补足8位。那么,衰减0dB的一组数据就成为了10101000和11111000。把这组数据用十六进制数来表示的话,就是A8H,F8H。用同样的方法,可得出各个衰减值的数据。
# {+ @3 L) Q$ Y3 }: H: j 我们设计程序的思路是:根据开机预设衰减值,用查表法查出衰减数据,然后把数据发送出去,发送时先发第一个数据的前6位,再发送另一数据的前5位。由于M62429的控制范围是0dB~-83dB。在这个范围内,数字越大,音量越小。要增加音量,就要减少用于查表那个数字(程序中R4的值)。框图如图三。1 {% O9 W, e1 G' F. m

& J) z$ B; w% l; B: q( A' i图三 程序方框图# M) ?6 _/ V7 _* C0 V
根据上述思路设计的程序如下:
+ z' n8 p% ^$ y7 q2 ` ORG 00H/ i& J6 X6 T8 {2 ]' e8 I
M429CK EQU P2.1 ;M62429时钟COLCK0 w4 I3 ?; \6 P& y" l( U* ~5 ^/ f
M429DA EQU P2.2 ;M62429数据DATA
& R1 ^9 L& V$ A* l  l* f# r4 FUPVOL EQU P1.0 ;音量增加按键
: T, K3 L6 t6 [* TDOWNVOL EQU P1.1 ;音量减少按键* O- y' n- e5 v+ M5 [, ^
MOV SP, #10H, `# b! j0 C% H2 f, `
MOV R4, #20 ;开机预设衰减值' ]/ D  N% v; |, n/ Z3 g  m
M62429: MOV A,R4 ;预设衰减值送A
( e& Q" d; ~. ]- L1 F RL A ;乘2
% n% ^# D/ ]$ [4 \/ q! H MOV DPTR,#TAB ;衰减数据表首址送DPTR2 k' p4 t) ?$ h4 B( f2 N1 }) a
MOVC A,@A+DPTR;查出衰减数据
3 @+ l4 f2 w/ x6 F; Z: e7 @8 ` MOV 9H, A ;9H、R2为一组衰减数据的两个存放单元0 m7 I" a! r  I. ^+ i  r
INC DPTR ;指向下一个数据& H. ^  Z" Z+ c. ]  {
MOV A, R4
0 t* h2 ^, |3 t7 q& q RL A ;乘25 X  V# b- e3 N0 R! {4 M
MOVC A,@A+DPTR ;查出另一个衰减数据
5 D/ K# P2 w& N# d MOV R2,A
8 L8 @. C1 c( F; \+ g+ `+ k: `8 c  g CLR M429CK / C2 @! @! k% [% g& R* }) q
MOV A,9H
9 L& a6 t# t7 v0 B  Y6 x CALL IN6BYT ;发送前6位数据3 u5 q) w% Q, ?2 @, i
MOV A,R2
0 M" T& `9 V" I) o# |) k9 R" l3 r$ H0 N* z CALL IN5BYT ;发送后5位数据
2 ?6 H' N5 x- N8 f3 y1 M UP: MOV C, UPVOL ;检测音量增加按键$ @  H& w* N% i' o1 M6 ~
JC DOWN ;无按下,转测音量减少键
" h! [# D* B/ k3 v CALL DELAY ;有按下,延时去抖
! x0 x/ u+ ^3 q* C; c' Q. c MOV C, UPVOL ;再测
! H) M8 F' Y. Y JC DOWN: g$ w. s  ^  Z1 A2 R* z+ S
JB F0,EEE ;音量已是最大转EEE7 e7 g3 F9 o3 _1 Z( E3 X& T
DEC R4 ;音量衰减值减1
3 r7 m4 V2 z* o8 n$ u CLR C
" e) t6 b6 m" M8 ^  }0 Z: x CJNE R4, #0, M62429;与音量最大值衰减0dB比较,未达最大,转M624296 o8 u1 l  Q8 R' r) Q, ?! [
SETB F0 ;己是最大,建立标志
7 v. X! \4 x$ |/ g2 P JMP M62429
1 i# ?% |" U* q% y3 b+ i EEE: INC R4 ;音量衰减值增1
- _, V9 }  X! C( _8 f CLR F0
) [4 }+ d( M$ m6 ]- j% x- t JMP UP- a$ ^4 T# N" B6 w" Z, |8 W( Q
DOWN: MOV C, DOWNVOL ;检测音量减小键
+ o8 X! b# g7 y* z6 W JC UP% P' m/ _, }+ L9 V9 J1 s% S+ I
CALL DELAY
  `$ k8 T6 x: B' Z6 ^7 i: T& t% S1 g7 i MOV C, DOWNVOL ;再测
( C0 @' g  A, j1 M1 J4 ?9 a JC UP
& U" p# Z  q1 w- {8 o: F% v INC R4 ;音量衰减值增1$ E8 `' M5 k* Q( I
CLR C
4 z% l# I! o0 X7 ?! P. G) f CJNE R4, #83, BBB ;与音量最小值衰减83dB比较
/ X5 Y& m. ]0 c LJMP M62429
; q4 q1 f4 j" z* _7 I BBB: JC M62429 ;R4

手机扫码浏览
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|手机版|小黑屋|最新贴|维修网 ( 粤ICP备09047344号

GMT+8, 2024-5-24 23:54 , Processed in 0.541451 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表