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

2009-8-16 00:29 1829 4 4 分类: MCU/ 嵌入式

发布: 2009-4-04 21:35 |  作者: hnrain |   查看: 17次


摘要:本文介绍了用AT89C51系列单片机控制音量的方法。程序用查表的方法,通过模拟串口发送数据。作者把新产品程序中关于音源选择、屏幕驱动、遥控等内容去掉,只剩下音量控制部分的内容。电路也作了类似处理,使它能独立运行。
+Zd5~z3R dn ykA0关键词:音量控制;汇编语言;模拟串口; M62429 
v-^*G!`2N#V&EF0

)J`S2i&_2b8iGi FL0引言

h-LK/M6Qm*]D0

;GM*shHp0本文介绍的音量控制IC为M62429,市面上有很多类似的产品,例如:FM62429、CD62429、CSC62429等。其实,掌握了一两种IC的编程方法,稍作改动就很容易移植到其它产品上。M62429是日本三菱公司的音量控制IC,音量调节范围是0~-83dB,控制精度每步1dB,内部电路如图一(详见M62429的使用手册)。

-S/`+xh!v ~o SyA0 电子园51单片机学习网{T$S`h(P [

点击看大图电子园51单片机学习网1DO"L5w0t


zcS|0`#]_0 电子园51单片机学习网1H"gVg6g2q

图一 M62429内部电路

rk"D(^A+h-f1N0 电子园51单片机学习网[n3qE bH b.[K1V$m#p

硬件电路

"b0t'tQ`#b+X2q0 电子园51单片机学习网S)Q*K5U'Fm@G_B'{

根据图一而设计的电路如图二。电子园51单片机学习网Kz9G@$C2BJ

电子园51单片机学习网5pp t+`&e$S!p8`a

图二中已省略了单片机与功放连接的其他电路,只剩下AT89C52的晶振部分、与M62429相关的电路、控制音量必需的按键电路等,加上电源之后,该电路可以独立工作。由于AT89C52真正的串口已用于其他用途,M62429的4脚(DATA)连至AT89C52的P2.2,M62429的5脚(CLOCK)连到AT89C52的P2.1。由这两个引脚(P2.1、P2.2)作为模拟串口与M62429通信,控制音量的数据便由这个模拟串口发出。电子园51单片机学习网^ N!a3{Yu


9t;i+ZUC0音频信号从LH1输入,其中L通道信号经过C1耦合到M62429 的1脚,被控制之后从2脚输出,再经C2耦合到LH2输出到后级进行放大。R通道信号经C4耦合到M62429的8脚,被控制后从7脚输出。经C3耦合至LH2输出到后级进行放大。在LH1处输入合适的音源,从LH2处就可以监听音量控制的情况。SW1为音量增加按钮。SW2为音量减小按钮,SW3为复位按钮。

'Y/| JG7}s? de.H0

.u5k} e"At U0点击看大图电子园51单片机学习网]s2LAQ/i


f9^l.Hr~5}Q0电子园51单片机学习网-GJ9p'w%X!?c

电子园51单片机学习网 Z1elE;CZF7N

图二  M62429与单片机的连接电子园51单片机学习网Hbxh!{


/A_[4FM)D~T r`0]Vh0软件设计电子园51单片机学习网P le&j+OgRj


6O:@Fm rzr6EI0从M62429使用手册可知,送去M62429的控制数据DATA为11位。通常的用法如表一:电子园51单片机学习网"gG9unR)@me

电子园51单片机学习网5l s%PM th'}

                表一:M62429 常用的11位数据(DATA )结构

f%|.\|T;o*k0

电子园51单片机学习网N]y-Hd4O$R

D0

!j`%~D{1z0

([:X.x;T:y8X!rW0D1电子园51单片机学习网y Yr@ JDw)S8k

电子园51单片机学习网 pTe"AVMq

D2电子园51单片机学习网 `P%V k}b'd1N{ c


+?)i0q fjDr"i0D3

? NX[+]YJy?]0
电子园51单片机学习网(Vw(pN$q*a4{T

D4电子园51单片机学习网2JHs"z F;@Ii$z

电子园51单片机学习网I:m*jq d;WR

D5

$N7e X1P%Z o0

/L:k'} N&\n$G,E-jR0D6电子园51单片机学习网&f:z jN/H fo3`


y5i.|\0_g0D7

$re9U&R&l/t'N S:I"V*U0
电子园51单片机学习网@Z'p y K

D8

:h#m9O6D y+xA0

!K!hS'a9q;]5C0D9

9k7F,X ` ~6t0

bQ3W.L5T0D10电子园51单片机学习网)c#@O9XB)tlW

电子园51单片机学习网 nn7W-PRAO'?G/\ l

1

"sq"vECbA7[(z/R0

W{tN%w)}00电子园51单片机学习网X[:zu)b9H XY tih


7位音量控制数据

IZ1]`wTfF rmn0

D?@H$X0E01电子园51单片机学习网 q ]9Ka6Ff)Z


/AV5L6qft_01

0N,O;a3W%K-l$nf1_&G B0
电子园51单片机学习网g~OlU)r q

表一中D2~D8是根据音量的大小变化需要改变的数据,其中D2~D6的编码如表二,电子园51单片机学习网(i_[/o.m [V


表二  M62429音量衰减值与D2~~D6的关系

,gK(_7[/Bm|0


ATTl

&Z'N N uL FS[| H0

D2

6{*}8u$rY0

D3

9\7sEe"N0

D4电子园51单片机学习网~#k&}0i K:y


D5

#Wcq/G|;t4W0

D6

r-\CU"G*z%ou?A0

OdB

iyu-{(NE nd%b0

1电子园51单片机学习网 }uSe j8][


0

Y"lNu2pA0]:v I2x0

1

7K1U_"R_5U^0

0

UTbV\mo7Tkw5X0

1

#t K'V Pt0

-8dB电子园51单片机学习网4G-RY;B;}5X


1

s vEB#Bzx"o:tq7bO0

1电子园51单片机学习网5R/o\TC4rA


0

,Z3v8w;_#nK#yX0

0电子园51单片机学习网 {u4jw!h)t$|4^y\


1

)C}*H X\F0

-16dB

(I#D n"^N0

1

-@*f RAz0

0电子园51单片机学习网G+O"v Gr


0

&e7N }_Ku9?;E ?I0

0电子园51单片机学习网/a k,B l:k e,{


1电子园51单片机学习网 e&v%XF&y}t$y


-24dB

'cR_2Y$MDb0

1电子园51单片机学习网)Xwi W;b7x7eZ(p+p


1电子园51单片机学习网Z1pI)Jl%E


1电子园51单片机学习网 I;]t Mb0YtW


1电子园51单片机学习网R0DARKc3K


0电子园51单片机学习网\+y$q~2]!g2^qUM


-32dB电子园51单片机学习网Rom'K"Y


1

O,y@ {%{#K0

0

E@ }Ua#Y0

1

`:dy&T)NjK g0

1电子园51单片机学习网'i/}H1or Xs1S


0

1}.?,J A(N0w0

-40dB电子园51单片机学习网&O;`3~n'R9P


1

g6OWd9A*|t5K&U0

1

hbWuW0

0电子园51单片机学习网 Hst5HS3U


1

+_{5[ b\1m.O0

0

!k&?8@h?y9V0

-48dB

{X,{!Wq|`3[0

1

_hV.k"?0

0电子园51单片机学习网I H+@]1J0vb


0电子园51单片机学习网!pZ6j ?_:` n[6N


1电子园51单片机学习网#c%Ftu!V.F3F


0

A.K1_ @H0

-56dB电子园51单片机学习网#} ?nRU/aW


1

FFekw.DnR)c0

1电子园51单片机学习网N _*W$^}.F


1

1C'hv?S+@1q h*e:Y0c0

0电子园51单片机学习网-R`+X;a$TGG z2R:Lh


0

4r$|ZJ,Nx4?0

-64dB电子园51单片机学习网0q)b kr;C|:n


1

~2] r]p4i0

0电子园51单片机学习网C/W|aGY7H3RS


1电子园51单片机学习网`#R6Dp.G9JH


0

,hDv"HR!v0

0

{;fj-SC5Bs0

-72dB电子园51单片机学习网:H KB\6tO2pW


1

t ?a*x m0

1电子园51单片机学习网e)H An{.f-]h m TA`


0

1ro FO!_0

0电子园51单片机学习网 R4Cp#zDziC


0电子园51单片机学习网QEXMe]


-80dB

"F])CbG Fg0

1电子园51单片机学习网'm#rI.P-q:a+w


0电子园51单片机学习网#X,A1X/Du a


0电子园51单片机学习网,f&KzW_)f.S5jJ%y


0

0Lr$}j$Y`l0

0

G'@&`+}"S T;A0
电子园51单片机学习网4K-{ar)FgPY\

 

)VU5j-MbzV(vwZ*p0

表三  M62429音量衰减值与D7、D8的关系

{f;A8TPDxK0


ATT2电子园51单片机学习网9z%X$wyB QZ;f{"DA


D7电子园51单片机学习网!u5X h+H#GBM


D8电子园51单片机学习网8zYTP"cl\


0dB

%[#stL5xS.kFU!f0

1

9gJ+?`f]@`0

1电子园51单片机学习网NGDR~/w9df


-1dB

7z;FU*KBk0

0

K)^d4b;\.iX gD'u0

1电子园51单片机学习网I2Vti;?


-2dB

0h.to-RI+~0

1

MAQe2~"s0

0电子园51单片机学习网fxk |l_:Fa+p"Z


-3dB电子园51单片机学习网'qvaK^!PL'r


0

b#a$F%M@#x3| W{U)r0

0电子园51单片机学习网(~lJ&x(F7~ ~&p

电子园51单片机学习网~ c/|hy1w&e{

从表二看出,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。用同样的方法,可得出各个衰减值的数据。

_q jllriW0

r E8B;\~&}5R0我们设计程序的思路是:根据开机预设衰减值,用查表法查出衰减数据,然后把数据发送出去,发送时先发第一个数据的前6位,再发送另一数据的前5位。由于M62429的控制范围是0dB~-83dB。在这个范围内,数字越大,音量越小。要增加音量,就要减少用于查表那个数字(程序中R4的值)。框图如图三。

'oyIgD/`6yA+l0

电子园51单片机学习网g*vf3t,AF V


6136_200904042136293P196.jpg电子园51单片机学习网5jik(MO7XId


图三  程序方框图

)j]%C],Sb'v0

7\x _Y$Si JT o0

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /3 下一条