网站首页 | 技术文章 | 解决方案 | 电子书籍 | 下载中心 | 电子商城 | 技术论坛 | 电子博客 | 商务信息  
联系站长
加入收藏
会员登陆
交易首页 最新信息 - 推荐信息 - 热门信息 - 免费发布 - 行业新闻 - 行业资讯 - 行业知识 - 积分说明 - 信息分类 - 企业展示 - 帮助
 您的位置: 中国电子设计 >> 技术文章 >> 其它综合 >> 正文 商务信息栏目开通公告  [2008-05-19 11:47:00]
   □  基于AT89C51系列单片机的音量控制电路与程序设计   
基于AT89C51系列单片机的音量控制电路与程序设计
[作者:莫晏光 张卿    转贴自:微计算机信息    点击数:    更新时间:2008-8-21
【字体:

Circuit and Program Design of Volume Control based on AT89C51
Abstract: This article introduced the volume control device TDA7313 methods use of the AT89C51 Series MCU and write the program with assemble language. This program use the method of check up the table and analog serial interface transmit the data .Author got rid of the content of the sound source choice, the screen driver, remote control, was only left over the content of volume control part. The electric circuit has also made similar processing, enabled it to run independently.
keyword: Volume control; Assembly language; analog serial interface; M62429

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

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

2  硬件电路
根据图一而设计的电路如图二。
图二中已省略了单片机与功放连接的其他电路,只剩下AT89C52的晶振部分、与M62429相关的电路、控制音量必需的按键电路等,加上电源之后,该电路可以独立工作。由于AT89C52真正的串口已用于其他用途,M62429的4脚(DATA)连至AT89C52的P2.2,M62429的5脚(CLOCK)连到AT89C52的P2.1。由这两个引脚(P2.1、P2.2)作为模拟串口与M62429通信,控制音量的数据便由这个模拟串口发出。
音频信号从LH1输入,其中L通道信号经过C1耦合到M62429 的1脚,被控制之后从2脚输出,再经C2耦合到LH2输出到后级进行放大。R通道信号经C4耦合到M62429的8脚,被控制后从7脚输出。经C3耦合至LH2输出到后级进行放大。在LH1处输入合适的音源,从LH2处就可以监听音量控制的情况。SW1为音量增加按钮。SW2为音量减小按钮,SW3为复位按钮。
 

3  软件设计
从M62429使用手册可知,送去M62429的控制数据DATA为11位。通常的用法如表一:
      
1 0 7位音量控制数据 1 1
表一中D2~D8是根据音量的大小变化需要改变的数据,其中D2~D6的编码如表二,


从表二看出,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。用同样的方法,可得出各个衰减值的数据。
我们设计程序的思路是:根据开机预设衰减值,用查表法查出衰减数据,然后把数据发送出去,发送时先发第一个数据的前6位,再发送另一数据的前5位。由于M62429的控制范围是0dB~-83dB。在这个范围内,数字越大,音量越小。要增加音量,就要减少用于查表那个数字(程序中R4的值)。框图如图三。
根据上述思路设计的程序如下:
            ORG  00H
 M429CK  EQU  P2.1     ;M62429时钟COLCK
 M429DA  EQU  P2.2     ;M62429数据DATA
    UPVOL  EQU  P1.0     ;音量增加按键
 DOWNVOL  EQU  P1.1    ;音量减少按键
        MOV  SP, #10H
        MOV  R4, #20       ;开机预设衰减值
M62429: MOV  A,R4         ;预设衰减值送A
        RL   A             ;乘2
     MOV  DPTR,#TAB   ;衰减数据表首址送DPTR
     MOVC  A,@A+DPTR;查出衰减数据
     MOV  9H, A ;9H、R2为一组衰减数据的两个存放单元
        INC  DPTR         ;指向下一个数据
        MOV  A, R4
        RL   A             ;乘2
        MOVC  A,@A+DPTR ;查出另一个衰减数据
        MOV  R2,A
        CLR  M429CK                  
        MOV    A,9H
        CALL  IN6BYT      ;发送前6位数据
        MOV    A,R2
        CALL  IN5BYT     ;发送后5位数据
  UP:  MOV   C, UPVOL   ;检测音量增加按键
        JC    DOWN        ;无按下,转测音量减少键
        CALL  DELAY      ;有按下,延时去抖
        MOV   C, UPVOL   ;再测
        JC    DOWN
        JB    F0,EEE        ;音量已是最大转EEE
        DEC   R4           ;音量衰减值减1
        CLR   C
        CJNE  R4, #0, M62429;与音量最大值衰减0dB比较,未达最大,转M62429
        SETB  F0             ;己是最大,建立标志
        JMP   M62429
  EEE:  INC   R4             ;音量衰减值增1
        CLR   F0
        JMP   UP
 DOWN: MOV   C, DOWNVOL  ;检测音量减小键
        JC    UP
        CALL  DELAY
        MOV   C, DOWNVOL  ;再测
        JC    UP
        INC   R4              ;音量衰减值增1
        CLR   C
        CJNE  R4, #83, BBB   ;与音量最小值衰减83dB比较
        LJMP  M62429
  BBB:  JC    M62429        ;R4<83 ,转M62429
        MOV   R4,#83        ;R4>83,需修正,保证r4里的值<=83
        JMP   M62429
IN6BYT: MOV    R3,#6        ;发送6位数据子程序
本文创新点:1、程序中控制数据用查表法查得,使之控制方便,容易理解。
            2、软件硬件结合紧密。
参考文献:
[1] 张迎新. 单片机初级教程[M]. (第2版). 北京:北京航空航天大学出版社, 2006
[2] 何立民. 单片机高级教程[M]. (第2版). 北京:北京航空航天大学出版社, 2007
[3]  M62429使用手册. 网址:http://www.ic-shop.cn/33/530/M62429.html
[4] 徐丽香,郑传得,周世均,吴耀鑫. 基于AT89S51单片机的监控与管理系统的设计[J]. 微计算机信息, 2007, 1-2: 139-140

作者资料:莫晏光(1954.4- ), 男, 工程师, 主要研究方向:电子产品设计及开发、单片机应用及教学。
张卿(1975.3-), 男, 硕士研究生, 主要研究方向:电子产品设计及开发、单片机应用及教学。
通信地址:广东工程职业技术学院, 广东 广州, 510520;中南大学, 湖南 长沙, 410083

  • 上一篇文章:嵌入式FPU微指令控制模块的设计与实现
  • 下一篇文章:没有了
  • Google
     
    Web www.cediy.com
    发表评论 □告诉好友 □打印此文 □关闭窗口
     最新热点文章
     基于单片机和串行总线技术的热量表...
     数字温度传感器详解
     用AD8302实现RF/IF幅度和相位测量系...
     一种简单的10MHz频率源兼分配放大器...
     维氏电桥振荡器
     检验液晶显示器的简易测试仪
     
     最新推荐文章
     基于TMS320C6713与PC机的PCI总线高...
     基于TMS320VC5409和Cygnal单片机构...
     基于ARM控制器S3C44B0x的给煤机控制...
     基于USB 2.0的高速数据采集卡在虚拟...
     大功率谐振过渡软开关技术变频器研...
     大功率谐振过渡软开关技术变频器研...
     
     相 关 文 章
      ◇  网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
     设为首页  加入收藏  关于本站  版权申明   联系站长   宣传赚点   友情链接
    如果我在线,不用加为好友,立刻与我交谈。 业务咨询QQ:342488946
    Copyright© 2004-2010 CEDIY.COM .All Rights Reserved
    粤ICP备05119258号