機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于AT89C51的音量控制電路與程序設(shè)計
基于AT89C51的音量控制電路與程序設(shè)計
 更新時間:2009-11-30 16:03:27  點擊數(shù):0
【字體: 字體顏色
摘要:本文介紹了用AT89C51系列單片機(jī)控制音量的方法。程序用查表的方法,通過模擬串口發(fā)送數(shù)據(jù)。作者把新產(chǎn)品程序中關(guān)于音源選擇、屏幕驅(qū)動、遙控等內(nèi)容去掉,只剩下音量控制部分的內(nèi)容。電路也作了類似處理,使它能獨立運行。
關(guān)鍵詞:音量控制;匯編語言;模擬串口; M62429 

引言

本文介紹的音量控制IC為M62429,市面上有很多類似的產(chǎn)品,例如:FM62429、CD62429、CSC62429等。其實,掌握了一兩種IC的編程方法,稍作改動就很容易移植到其它產(chǎn)品上。M62429是日本三菱公司的音量控制IC,音量調(diào)節(jié)范圍是0~-83dB,控制精度每步1dB,內(nèi)部電路如圖一(詳見M62429的使用手冊)。

圖一 M62429內(nèi)部電路

硬件電路

根據(jù)圖一而設(shè)計的電路如圖二。

圖二中已省略了單片機(jī)與功放連接的其他電路,只剩下AT89C52的晶振部分、與M62429相關(guān)的電路、控制音量必需的按鍵電路等,加上電源之后,該電路可以獨立工作。由于AT89C52真正的串口已用于其他用途,M62429的4腳(DATA)連至AT89C52的P2.2,M62429的5腳(CLOCK)連到AT89C52的P2.1。由這兩個引腳(P2.1、P2.2)作為模擬串口與M62429通信,控制音量的數(shù)據(jù)便由這個模擬串口發(fā)出。

音頻信號從LH1輸入,其中L通道信號經(jīng)過C1耦合到M62429 的1腳,被控制之后從2腳輸出,再經(jīng)C2耦合到LH2輸出到后級進(jìn)行放大。R通道信號經(jīng)C4耦合到M62429的8腳,被控制后從7腳輸出。經(jīng)C3耦合至LH2輸出到后級進(jìn)行放大。在LH1處輸入合適的音源,從LH2處就可以監(jiān)聽音量控制的情況。SW1為音量增加按鈕。SW2為音量減小按鈕,SW3為復(fù)位按鈕。

圖二  M62429與單片機(jī)的連接

軟件設(shè)計

從M62429使用手冊可知,送去M62429的控制數(shù)據(jù)DATA為11位。通常的用法如表一:

                表一:M62429 常用的11位數(shù)據(jù)(DATA )結(jié)構(gòu)

D0

D1

D2

D3

D4

D5

D6

D7

D8

D9

D10

1

0

7位音量控制數(shù)據(jù)

1

1

表一中D2~D8是根據(jù)音量的大小變化需要改變的數(shù)據(jù),其中D2~D6的編碼如表二,

表二  M62429音量衰減值與D2~~D6的關(guān)系

ATTl

D2

D3

D4

D5

D6

OdB

1

0

1

0

1

-8dB

1

1

0

0

1

-16dB

1

0

0

0

1

-24dB

1

1

1

1

0

-32dB

1

0

1

1

0

-40dB

1

1

0

1

0

-48dB

1

0

0

1

0

-56dB

1

1

1

0

0

-64dB

1

0

1

0

0

-72dB

1

1

0

0

0

-80dB

1

0

0

0

0

 

表三  M62429音量衰減值與D7、D8的關(guān)系

ATT2

D7

D8

0dB

1

1

-1dB

0

1

-2dB

1

0

-3dB

0

0

從表二看出,D2~D6控制步長為4dB,需加上D7、D8(見表三)才能達(dá)到控制步長為1dB的要求。例如最大音量時衰減值為0dB,查表二,D2~D6數(shù)據(jù)為10101,查表三,D7,D8為11,所以D2~~D8應(yīng)為1010111,根據(jù)表一,D0~D10這11位數(shù)據(jù)為10101011111。同理,衰減值為-1dB時的11位數(shù)據(jù)為10101010111。由于AT89C51系列單片機(jī)處理數(shù)據(jù)是8位,由P2.2、P2.1組成的模擬串口無法一次完成11位數(shù)據(jù)的發(fā)送工作。我們只好把這11位數(shù)據(jù)分為兩次發(fā)送,我們可以用先發(fā)送6位、后發(fā)送5位的方法(當(dāng)然也可以用其他方法)發(fā)送。例如衰減0dB的數(shù)據(jù)10101011111,先發(fā)送前6位101010,后發(fā)送5位11111。由于AT89C51系列單片機(jī)數(shù)據(jù)為8位,我們可以在這些數(shù)據(jù)后面加上“0”,補(bǔ)足8位。那么,衰減0dB的一組數(shù)據(jù)就成為了10101000和11111000。把這組數(shù)據(jù)用十六進(jìn)制數(shù)來表示的話,就是A8H,F8H。用同樣的方法,可得出各個衰減值的數(shù)據(jù)。

我們設(shè)計程序的思路是:根據(jù)開機(jī)預(yù)設(shè)衰減值,用查表法查出衰減數(shù)據(jù),然后把數(shù)據(jù)發(fā)送出去,發(fā)送時先發(fā)第一個數(shù)據(jù)的前6位,再發(fā)送另一數(shù)據(jù)的前5位。由于M62429的控制范圍是0dB~-83dB。在這個范圍內(nèi),數(shù)字越大,音量越小。要增加音量,就要減少用于查表那個數(shù)字(程序中R4的值)?驁D如圖三。

圖三  程序方框圖

根據(jù)上述思路設(shè)計的程序如下:

            ORG  00H

 M429CK  EQU  P2.1     ;M62429時鐘COLCK

 M429DA  EQU  P2.2     ;M62429數(shù)據(jù)DATA

    UPVOL  EQU  P1.0     ;音量增加按鍵

 DOWNVOL  EQU  P1.1    ;音量減少按鍵

        MOV  SP, #10H

        MOV  R4, #20       ;開機(jī)預(yù)設(shè)衰減值

M62429: MOV  A,R4         ;預(yù)設(shè)衰減值送A

        RL   A             ;乘2

           MOV  DPTR,#TAB   ;衰減數(shù)據(jù)表首址送DPTR

           MOVC  A,@A+DPTR;查出衰減數(shù)據(jù)

           MOV  9H, A ;9H、R2為一組衰減數(shù)據(jù)的兩個存放單元

        INC  DPTR         ;指向下一個數(shù)據(jù)

        MOV  A, R4

        RL   A             ;乘2

        MOVC  A,@A+DPTR ;查出另一個衰減數(shù)據(jù)

        MOV  R2,A

        CLR  M429CK                  

        MOV    A,9H

        CALL  IN6BYT      ;發(fā)送前6位數(shù)據(jù)

        MOV    A,R2

        CALL  IN5BYT     ;發(fā)送后5位數(shù)據(jù)

  UP:  MOV   C, UPVOL   ;檢測音量增加按鍵

        JC    DOWN        ;無按下,轉(zhuǎn)測音量減少鍵

        CALL  DELAY      ;有按下,延時去抖

        MOV   C, UPVOL   ;再測

        JC    DOWN

        JB    F0,EEE        ;音量已是最大轉(zhuǎn)EEE

        DEC   R4           ;音量衰減值減1

        CLR   C

        CJNE  R4, #0, M62429;與音量最大值衰減0dB比較,未達(dá)最大,轉(zhuǎn)M62429

        SETB  F0             ;己是最大,建立標(biāo)志

        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 ,轉(zhuǎn)M62429

        MOV   R4,#83        ;R4>83,需修正,保證r4里的值<=83

        JMP   M62429

IN6BYT: MOV    R3,#6        ;發(fā)送6位數(shù)據(jù)子程序

本文創(chuàng)新點:1、程序中控制數(shù)據(jù)用查表法查得,使之控制方便,容易理解。

            2、軟件硬件結(jié)合緊密。

參考文獻(xiàn):

[1] 張迎新. 單片機(jī)初級教程[M]. (第2版). 北京:北京航空航天大學(xué)出版社, 2006

[2] 何立民. 單片機(jī)高級教程[M]. (第2版). 北京:北京航空航天大學(xué)出版社, 2007

[3]  M62429使用手冊. 網(wǎng)址:http://www.ic-shop.cn/33/530/M62429.html

[4] 徐麗香,鄭傳得,周世均,吳耀鑫. 基于AT89S51單片機(jī)的監(jiān)控與管理系統(tǒng)的設(shè)計[J]. 微計算機(jī)信息, 2007, 1-2: 139-140

  • 上一篇: 89C51單片機(jī)為控制核心的開關(guān)電源優(yōu)化設(shè)計
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1