0

主题

0

好友

13

积分

注册会员 当前离线

Rank: 2

UID
36245
帖子
10
精华
0
经验
13 点
金钱
13 ¥
注册时间
2008-2-26
发表于 2009-6-28 14:02 | 显示全部楼层
T200B关电源后开机不记忆音量,开机后总是一个很小的音量,用起来很不方便。我对t200b的音量控制电路软件、硬件进行了研究,修改了控制软件,实现了开机记忆音量功能。
首先说说我发现T200B软件的一些问题:
1.开机不记忆上次关机音量,这是最大的问题。
2.开机没有对音量调整芯片AT89C2051。CS3310规格书明确要求上电开机mute脚要拉低,以实现CS3310内部补偿校正,T200B软件没有做这个工作。
3.音量设置有偏差,也就是即使每次设置同样的音量,音量大小会有三四个dB的误差,这是我通过示波器观察单片机设置CS3310的波形时发现的,这是软件算法不准确造成的。不过听觉一般感觉不到。
4。禁音时音箱灯没有禁音警示。

由T200B音量控制电路图可见,实现音量记忆其实是很容易实现的,因为电路中有24C02,24C02是个EEPROM,断电记忆数据的。可以把音量信息存在24C02中,开机时再读出来。AT89C2051是个阉割版的51单片机,用来控制CS3310,遥控解码,步进电位器控制等功能,软件也就在这个芯片里面。我修改了AT89C2051的软件,在以下方面进行了优化:
1。记忆音量开机。开机时读取24C02中存储的上次关机音量数据,并按上次关机时的音量设置音箱。
2.开机CS3310内部补偿校正,也就是使MUTE脚拉低2.5ms
3.改进音量控制算法,实现每次都精确控制。
4禁音时指示灯变为红色,提示为禁音状态。
5。渐进式启动,保护扬声器。由于记忆音量,可能开机音量会很大,所以开机时单片机控制CS3310音量渐增到记忆的音量,不是一步到位,这个过程为1S.如果记忆音量为63则以40音量启动。

本修改不需要该硬件。附图为T200B中的AT89C2051照片,它是有插座的,可以随便拔下来,烧写新软件就可以了。如果要保留以前的软件,直接重新买一块AT89C2051烧写就可以了。要用回老软件就直接换回原来的AT89C2051。 a3111575.jpg
20090622_a5ba9c790be5daaea244Mcc95cOBhkrm.jpg



下面是软件:
            SDA BIT P1.6
          SCL BIT P1.7
          ORG 0000H
          JMP START
    ORG 000BH
        JMP INTT0
  
            ORG 001BH
            SETB P1.5
    JMP INTR
START:      CLR P3.7
            CLR P1.4
            CLR P1.3
            MOV SP,#60H
    CLR P1.5
    MOV R6,#50
    CALL DELLAY
            SETB P1.5
    CALL READIIC
    MOV 50H,A
    SUBB A,#189
    JC NORMAL
    MOV A,#120
    MOV 50H,A
NORMAL:  MOV A,50H
-----------------------------------
渐进式启动软件,保密
-------------CALL SENDCS
    MOV TMOD,#61H
    MOV TH1,#0FFH
    MOV TL1,#0FFH
    SETB ET1
    SETB ET0
    SETB EA
    SETB TR1
L7:         JB P1.1,$
            CALL RC
    JZ L7
        MOV 50H,A
            CALL SENDCS
           SETB P3.7
           CLR P1.0
           MOV R1,#3
     MOV R2,#3
           MOV TH0,#00H
           MOV TL0,#00H
           SETB TR0
     JMP L7

INTT0:     DJNZ R1,GOON
           CPL P1.0
     MOV R1,#3
     DJNZ R2,GOON
     CLR TR0
            JNB P1.5,MU
    CLR P3.7
    SETB P1.0
    PUSH ACC
    MOV A,50H
            CALL WRITEIIC
    POP ACC
    RETI
MU:         CLR P1.0     ;MUTE红灯亮
    SETB P3.7
    PUSH ACC
            MOV A,50H
            CALL WRITEIIC
    POP ACC
GOON:   RETI
      
INTR:   JB P3.4,DEVOL
            MOV A,50H
    CJNE A,#10111101B,ADDVOL
            JMP RETIINTR
ADDVOL:     CJNE A,#00000001B,NO1
            MOV A,#00000011B
    MOV 50H,A
    CALL SENDCS
    JMP RETIINTR
NO1:        INC A
            INC A
        INC A
    MOV 50H,A
    CALL SENDCS
    JMP RETIINTR
DEVOL:      MOV A,50H
            CJNE A,#00000001B,DECRVOL
    JMP RETIINTR
DECRVOL:    CJNE A,#00000011B,NO3
            MOV A,#00000001B
    MOV 50H,A
    CALL SENDCS
    JMP RETIINTR
NO3:        DEC A
            DEC A
            DEC A
    MOV 50H,A
    CALL SENDCS
RETIINTR: SETB P3.7
           CLR P1.0
           MOV R1,#3
     MOV R2,#3
           MOV TH0,#00H
           MOV TL0,#00H
           SETB TR0
    RETI
WRITEIIC:    MOV A,#10100000B           ;将50H单元的数据存EEPROM
             CALL STARTIIC
             CALL SENDIIC
             SETB SCL
             MOV C,SDA
             JC WRITEIIC
             CLR SCL
             MOV A,#11000000B           ;存在11000000B单元
             CALL SENDIIC
             SETB SCL
             MOV C,SDA
             JC WRITEIIC
             CLR SCL
             MOV A,50H
             CALL SENDIIC
             SETB SCL
             MOV C,SDA
             JC WRITEIIC
     CLR SCL
     CALL ENDIIC
             RET
READIIC:     MOV A,#10100000B          ;读数据到A
             CALL STARTIIC
     CALL SENDIIC
     SETB SCL
     MOV C,SDA
     JC READIIC
     CLR SCL
             MOV A,#11000000B           ;读11000000B单元
             CALL SENDIIC
             SETB SCL
             MOV C,SDA
             JC READIIC
             CLR SCL
     CALL STARTIIC
             MOV A,#10100001B
             CALL SENDIIC
     SETB SCL
     MOV C,SDA
     JC READIIC
     MOV R7,#8
READIICBIT:  CLR SCL
     NOP
             SETB SCL
     MOV C,SDA
             RLC A            
     DJNZ R7,READIICBIT
             CLR SCL
     NOP
     SETB SCL
     NOP
     CLR SCL
     CALL ENDIIC
     RET
STARTIIC:    SETB SDA
             SETB SCL
             NOP
     CLR SDA
             NOP
             CLR SCL
             RET
ENDIIC:     CLR SDA
            NOP
            SETB SCL
            NOP
            SETB SDA
            RET
SENDIIC:    MOV R7,#8            ;发送A的内容
LOOPIIC:    RLC A
            MOV SDA,C
            SETB SCL
            NOP
            CLR SCL
            DJNZ R7,LOOPIIC
    SETB SDA
            RET
RC :        MOV R0,#30H              ;遥控接收子程序
            MOV R5,#9
L1:         MOV R6,#16
            CALL DELLAY
            JB P1.1,OUT
            DJNZ R5,L1
           JNB P1.1,$
            MOV R5,#5
L2:         MOV R6,#15
            CALL DELLAY
            JNB P1.1,OUT
            DJNZ R5,L2
            MOV R6,#11
            CALL DELLAY            
            MOV R3,#8
READBYTE:   MOV R4,#8
READBIT:    JNB P1.1,$
            MOV R6,#17
            CALL DELLAY
            MOV C,P1.1
            JNC ZERO
            MOV R6,#22
            CALL DELLAY
ZERO:       RRC A
            DJNZ R4,READBIT
            MOV @R0,A
            INC R0
            DJNZ R3,READBYTE
    MOV R6,50
    CALL DELLAY
---------------------------------------------           
---保密部分
----------------------------------------------
     RET
        
DELLAY:     MOV R7,#25            
            DJNZ R7,$
            DJNZ R6,DELLAY
            RET
SENDCS:      CLR P1.2           ;将A的内容发送到CS3310           
             MOV R5,#16
LOOPCS:      MOV C,ACC.7
             MOV P1.3,C
             NOP
             SETB P1.4
             NOP
             CLR P1.4
             RL A
             DJNZ R5,LOOPCS
             CLR P1.3
             SETB P1.2     
             RET
             END---------------------
a3111574_s.jpg
头像被屏蔽

1

主题

0

好友

556

积分

禁止发言 当前离线

UID
42127
帖子
525
精华
0
经验
556 点
金钱
554 ¥
注册时间
2008-5-2
发表于 2009-6-28 14:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

0

主题

0

好友

13

积分

注册会员 当前离线

Rank: 2

UID
36245
帖子
10
精华
0
经验
13 点
金钱
13 ¥
注册时间
2008-2-26
 楼主| 发表于 2009-6-28 14:49 | 显示全部楼层
原帖由 bigsky1990 于 2009-6-28 14:43 发表
不错,是不是先做反编译再修改?

看到汇编感觉亲切,呵呵,我也只会一点点汇编

技术区不允许发广告的,还是把连接删了好

人家的代码都是加密的,不可能反编译.我全是自己重新写的

0

主题

0

好友

1

积分

新手上路 当前离线

Rank: 1

UID
95442
帖子
2
精华
0
经验
1 点
金钱
1 ¥
注册时间
2009-4-10
发表于 2009-6-30 21:58 | 显示全部楼层
出色的DIY,可惜选了便宜的near05。收藏

0

主题

0

好友

13

积分

注册会员 当前离线

Rank: 2

UID
36245
帖子
10
精华
0
经验
13 点
金钱
13 ¥
注册时间
2008-2-26
 楼主| 发表于 2009-7-1 18:53 | 显示全部楼层
原帖由 4in5 于 2009-6-30 21:58 发表
出色的DIY,可惜选了便宜的near05。收藏

你这个不用遥控的吧

424

主题

3

好友

1万

积分
     

超级版主 当前离线

Rank: 8Rank: 8

UID
13663
帖子
13726
精华
6
经验
10608 点
金钱
8449 ¥
注册时间
2006-10-21

论坛版主 优秀版主 乐于助人 DIY大赛获奖

发表于 2009-7-1 21:14 | 显示全部楼层
厉害厉害,能把汇编用到如此境界服了!

0

主题

0

好友

13

积分

注册会员 当前离线

Rank: 2

UID
36245
帖子
10
精华
0
经验
13 点
金钱
13 ¥
注册时间
2008-2-26
 楼主| 发表于 2009-7-2 20:02 | 显示全部楼层
原帖由 ahao 于 2009-7-1 21:14 发表
厉害厉害,能把汇编用到如此境界服了!

很短的程序,算什么境界哦

0

主题

1

好友

151

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
104413
帖子
177
精华
0
经验
151 点
金钱
151 ¥
注册时间
2009-5-15
发表于 2009-7-2 23:43 | 显示全部楼层
不得不服楼主呀!!!
头像被屏蔽

0

主题

0

好友

47

积分

禁止发言 当前离线

UID
127617
帖子
45
精华
0
经验
47 点
金钱
47 ¥
注册时间
2009-8-27
发表于 2009-8-28 12:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

381

主题

4

好友

3354

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
12861
帖子
12518
精华
2
经验
3354 点
金钱
1900 ¥
注册时间
2006-9-29
发表于 2009-9-1 20:32 | 显示全部楼层
有想法,动手能力强,不错

我的APE播放器反过来是最大音量,一直等作者更新

4

主题

3

好友

1995

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
49382
帖子
2037
精华
0
经验
1995 点
金钱
1986 ¥
注册时间
2008-7-30
发表于 2009-9-2 09:07 | 显示全部楼层
楼主改成无源箱吧。练练手

38

主题

2

好友

1355

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
36911
帖子
3665
精华
1
经验
1355 点
金钱
1129 ¥
注册时间
2008-3-8
发表于 2009-9-2 11:12 | 显示全部楼层
楼主果然高手。虽然我也是做软件开发的,但是对这个确实不是很懂,只能看懂个大概

0

主题

0

好友

54

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
128842
帖子
57
精华
0
经验
54 点
金钱
54 ¥
注册时间
2009-9-2
发表于 2009-9-2 21:23 | 显示全部楼层
高手~~~~

可惜

看不懂
头像被屏蔽

0

主题

0

好友

-582

积分

禁止访问 当前离线

UID
88886
帖子
174
精华
0
经验
-582 点
金钱
118 ¥
注册时间
2009-3-17
发表于 2009-9-3 20:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部