3670|1

6

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

STC89C52驱动PT2257的示例程序 [复制链接]

    PT2257立体声电子音量控制IC,采用I2C总线控制。下面是STC89C52单片机控制PT2257的示例程序,注意PT2257上电后需等待200ms后才可送入I2C控制信号。本程序已测试通过,并应用于某品牌卡拉OK音响系统中。

;--------------------------------
;端口及变量定义
;--------------------------------
MUSIC_SDATA    EQU    P2.2
MUSIC_SCLK      EQU    P2.1
MUSIC_VOL        EQU    60H
MUSIC_VOL1      EQU    61H
COUNTER3         EQU    62H
MUSIC_CNT        EQU    40H

;--------------------------------
;音量加大
;--------------------------------
MUSIC_UP:
    INC MUSIC_CNT
    LCALL MUSIC_PT2257
    RET
;--------------------------------
;音量减小
;--------------------------------
MIC_DN:
    DEC MIC_CNT
    LCALL MIC_PT2257
    RET
;---------------------------------
;音乐控制程序
;---------------------------------
MUSIC_PT2257:
    MOV DPTR,#VOL_TAB1
    MOV A,MUSIC_CNT
    MOV B,#2
    MUL AB
    MOV R0,A
    MOV A,B
    ADD A,DPH
    MOV DPH,A
    MOV A,R0
    MOVC A,@A+DPTR
    MOV MUSIC_VOL,A
    MOV A,R0
    INC DPTR
    MOVC A,@A+DPTR
    MOV MUSIC_VOL1,A
    LCALL START2257_MUSIC
    MOV A,#88H
    LCALL SEND2257_MUSIC
    MOV A,MUSIC_VOL               
     LCALL SEND2257_MUSIC
    MOV A,MUSIC_VOL1              
     LCALL SEND2257_MUSIC
    LCALL STOP2257_MUSIC
    LCALL DELAY_12M
    LCALL DELAY_12M
    RET


 START2257_MUSIC:                                 
    SETB MUSIC_SDATA
    LCALL DELAY_10
    SETB MUSIC_SCLK
    LCALL DELAY_10
    CLR MUSIC_SDATA
    LCALL DELAY_10
    CLR MUSIC_SCLK
    LCALL DELAY_10
    RET


 STOP2257_MUSIC:    
    CLR MUSIC_SDATA
    LCALL DELAY_10
    SETB MUSIC_SCLK
    LCALL DELAY_10
    SETB MUSIC_SDATA
    RET


 SEND2257_MUSIC:    
    MOV COUNTER3,#08H
SEND2257A_MUSIC:   
    RLC A
    MOV MUSIC_SDATA,C
    LCALL DELAY_10
    SETB MUSIC_SCLK
    LCALL DELAY_10
    CLR MUSIC_SCLK
    LCALL DELAY_10
    DJNZ COUNTER3,SEND2257A_MUSIC
    LCALL S_ACK2257_MUSIC
    RET


 S_ACK2257_MUSIC: 
    SETB MUSIC_SDATA
SACK2257_MUSIC:  
    LCALL DELAY_10
    SETB MUSIC_SCLK
    MOV COUNTER3,#255
SACK2257X_MUSIC: 
    LCALL DELAY_10
    MOV C,MUSIC_SDATA
    JC SACK2257X_MUSIC_LOOP
    NOP
    CLR MUSIC_SCLK
    RET


 SACK2257X_MUSIC_LOOP:
    DJNZ COUNTER3,SACK2257X_MUSIC
    NOP
    CLR MUSIC_SCLK
    RET

;-------------------------
;延时程序
;-------------------------
DELAY_10:
    MOV R7,#15
    DJNZ R7,$
    RET

DELAY_12M:
    MOV R7,#18H
DELAY_12M1:
    MOV R6,#0FFH
    DJNZ R6,$
    DJNZ R7,DELAY_12M1
    RET
;-------------------------
;PT2257,音乐音量表
;-------------------------
VOL_TAB1:
         DB  0FFH,0FFH

         DB  0E4H,0D9H,0E4H,0D8H,0E4H,0D7H,0E4H,0D6H,0E4H,0D5H

         DB  0E4H,0D4H,0E4H,0D3H,0E4H,0D2H,0E4H,0D1H,0E4H,0D0H
         DB  0E3H,0D9H,0E3H,0D8H,0E3H,0D7H,0E3H,0D6H,0E3H,0D5H

         DB  0E3H,0D4H,0E3H,0D3H,0E3H,0D2H,0E3H,0D1H,0E3H,0D0H
         DB  0E2H,0D9H,0E2H,0D8H,0E2H,0D7H,0E2H,0D6H,0E2H,0D5H

         DB  0E2H,0D4H,0E2H,0D3H,0E2H,0D2H,0E2H,0D1H,0E2H,0D0H
         DB  0E1H,0D9H,0E1H,0D8H,0E1H,0D7H,0E1H,0D6H,0E1H,0D5H

         DB  0E1H,0D4H,0E1H,0D3H,0E1H,0D2H,0E1H,0D1H,0E1H,0D1H
         DB  0E0H,0D9H,0E0H,0D8H,0E0H,0D7H,0E0H,0D6H,0E0H,0D5H

         DB  0E0H,0D4H,0E0H,0D3H,0E0H,0D2H,0E0H,0D1H,0E0H,0D0H

此帖出自51单片机论坛

最新回复

愿意把自己的体会拿出来和大家分享,值得鼓励  详情 回复 发表于 2012-8-25 17:09

赞赏

1

查看全部赞赏

点赞 关注
 

回复
举报

1万

帖子

25

TA的资源

裸片初长成(高级)

沙发
 
愿意把自己的体会拿出来和大家分享,值得鼓励
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表