家电论坛

聆客音频
 注册  找回密码

QQ登录

只需一步,快速开始

手机号码,快捷登录

楼主: 乡村猎手

为SONY TC-K8B卡座制作代用显示屏

  [复制链接]

1

主题

191

帖子

1

威望

初级会员

Rank: 2Rank: 2

交易诚信度
0
注册时间
2005-11-4
发表于 2025-3-22 22:29 | 显示全部楼层
太牛X了,佩服!
回复 支持 反对

使用道具 举报

38

主题

2482

帖子

4

威望

中级会员

Rank: 3Rank: 3Rank: 3

交易诚信度
0
注册时间
2020-6-20
发表于 2025-3-22 22:49 | 显示全部楼层
不明觉厉,总之就是牛X
回复 支持 反对

使用道具 举报

286

主题

4129

帖子

11

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
0
注册时间
2022-4-27
发表于 2025-3-22 22:59 来自家电论坛网手机触屏版 | 显示全部楼层
峰值电平表关键看响应速度,老卡座很多电平表无法捕捉到非常短暂的高电平,就是速度不行,所以只是个摆设,这个性能怎么样呢?

点评

老电平表无法响应短暂的高电平是因为机械表头,电路上是完全可以响应。 我这个没有特意测试,但可以从电路上可以估计一下响应时间。 首先原机是一个AD转换来获取电平高低, 它这个采样频率是680Hz, 然后单片机数据获  详情 回复 发表于 2025-3-23 06:21
回复 支持 反对

使用道具 举报

286

主题

4129

帖子

11

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
0
注册时间
2022-4-27
发表于 2025-3-22 23:02 来自家电论坛网手机触屏版 | 显示全部楼层
比如播放50毫秒的高电平信号,这个电平表能捕捉到么?
回复 支持 反对

使用道具 举报

175

主题

910

帖子

20

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
15
注册时间
2008-3-18
 楼主| 发表于 2025-3-23 06:21 | 显示全部楼层
本帖最后由 乡村猎手 于 2025-3-23 06:41 编辑
d6x 发表于 2025-3-22 22:59
峰值电平表关键看响应速度,老卡座很多电平表无法捕捉到非常短暂的高电平,就是速度不行,所以只是个摆设, ...

老电平表无法响应短暂的高电平是因为机械表头,电路上是完全可以响应。 我这个没有特意测试,但可以从电路上可以估计一下响应时间。 首先原机是一个AD转换来获取电平高低, 它这个采样频率是680Hz, 然后单片机数据获取是通过中断来实现的,频率上远高于680Hz,这步不会丢数据 , 其后单片机每20ms刷新一次显示(这个软件控制,当然也可以改得更快). 当然后面还有液晶屏驱动IC响应时间液晶屏本身的响应时间,当然这两点不是问题, 当然极短的闪烁即使屏体现了, 眼睛也未必看得到, 所以这个保留了原机的峰值保持功能, 最高电平那一格会常亮,直到手动或自动清除(保持几秒钟).
所以原理上来说 3ms以上的高电平能捕捉到, 可能看到不动态的闪动,但那个峰值保持显示能体现出来。

点评

d6x
fl或者LED的电平表我测过,几乎全都响应很慢,几乎就是个玩具。不知道你这个做的如何了?  详情 回复 发表于 2025-3-23 13:37
REVOX STUDER 卡座专营及维修 ,闲鱼账号: chentijian
回复 支持 反对

使用道具 举报

286

主题

4129

帖子

11

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
0
注册时间
2022-4-27
发表于 2025-3-23 13:37 | 显示全部楼层
乡村猎手 发表于 2025-3-23 06:21
老电平表无法响应短暂的高电平是因为机械表头,电路上是完全可以响应。 我这个没有特意测试,但可以从电 ...

fl或者LED的电平表我测过,几乎全都响应很慢,几乎就是个玩具。不知道你这个做的如何了?

点评

因为原机就是液晶的,只是老化了, 要是玩具原机的也是玩具。 但它有峰值保持的显示。 也就是说一个极短的高电平, 如果动态的没体现, 也会一个单独的格子会点亮几秒。这东西也就是那么回事,至少看起来还行。  详情 回复 发表于 2025-3-23 16:12
香港弦声音响
回复 支持 反对

使用道具 举报

38

主题

1261

帖子

0

威望

初级会员

Rank: 2Rank: 2

交易诚信度
0
注册时间
2016-2-22
发表于 2025-3-23 15:40 来自家电论坛网手机触屏版 | 显示全部楼层
真厉害
回复 支持 反对

使用道具 举报

149

主题

3626

帖子

6

威望

中级会员

Rank: 3Rank: 3Rank: 3

交易诚信度
0
注册时间
2004-4-4
发表于 2025-3-23 15:43 | 显示全部楼层
上面有英文描述,难道是老外弄的,转载的?

点评

当然不是转载的,英文是写给老外看的。这个图能证明了吗?[attachimg]10626153[/attachimg]  详情 回复 发表于 2025-3-23 16:04
回复 支持 反对

使用道具 举报

175

主题

910

帖子

20

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
15
注册时间
2008-3-18
 楼主| 发表于 2025-3-23 16:04 | 显示全部楼层
本帖最后由 乡村猎手 于 2025-3-23 16:16 编辑
医者 发表于 2025-3-23 15:43
上面有英文描述,难道是老外弄的,转载的?

当然不是转载的,英文是写给老外看的。这个图能证明了吗? 其实不用迷信老外, 我做的revox 710的mcu和天宝3003的mcu老外都从我这儿买, 屏也卖过给老外。一些老外也托我在国内找东西,实际上, 国内现在供应链接远比国外完善. 2e960720862e87d8f9a9cb48610c36c.jpg



点评

高手啊。  详情 回复 发表于 2025-3-24 08:10
REVOX STUDER 卡座专营及维修 ,闲鱼账号: chentijian
回复 支持 反对

使用道具 举报

175

主题

910

帖子

20

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
15
注册时间
2008-3-18
 楼主| 发表于 2025-3-23 16:12 | 显示全部楼层
本帖最后由 乡村猎手 于 2025-3-23 16:53 编辑
d6x 发表于 2025-3-23 13:37
fl或者LED的电平表我测过,几乎全都响应很慢,几乎就是个玩具。不知道你这个做的如何了?

看起来还行。其实响应速度并非电平表最主要考虑的, 实际在一些卡座led的电平条显示里故意加了电容使用显示有阻尼感(比如高平来了,会一条条升上去而不是一下到,突然没信号也是有点点延迟一格格消失 ),这样看起来更舒服,否则看起来怪怪的。
下面这个图就是revox 710的电平显示控制, 图中的0.47uf的电容就是这个作用。
1742719841610.jpg

点评

d6x
峰值电平表不只是装饰,响应慢的抓不住瞬间的高电平,导致最大电平设置错误磁带过载,所以响应速度很重要。这方面中道做的不错。  详情 回复 发表于 2025-3-23 21:42
REVOX STUDER 卡座专营及维修 ,闲鱼账号: chentijian
回复 支持 反对

使用道具 举报

286

主题

4129

帖子

11

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
0
注册时间
2022-4-27
发表于 2025-3-23 21:42 | 显示全部楼层
乡村猎手 发表于 2025-3-23 16:12
看起来还行。其实响应速度并非电平表最主要考虑的, 实际在一些卡座led的电平条显示里故意加了电容使用显 ...

峰值电平表不只是装饰,响应慢的抓不住瞬间的高电平,导致最大电平设置错误磁带过载,所以响应速度很重要。这方面中道做的不错。
回复 支持 反对

使用道具 举报

57

主题

445

帖子

21

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
0
注册时间
2016-11-4
QQ
发表于 2025-3-23 22:18 来自家电论坛网手机触屏版 | 显示全部楼层
厉害啊,这个支持
大连95后业余玩家,程序猿兼网络工程师,来论坛学习交流。
回复 支持 反对

使用道具 举报

175

主题

910

帖子

20

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
15
注册时间
2008-3-18
 楼主| 发表于 2025-3-23 23:04 | 显示全部楼层
本帖最后由 乡村猎手 于 2025-3-23 23:05 编辑

这里是单片机的源码, 有兴趣的可以看看。


#include "reg52.h"
#include <intrins.h>
#include <math.h>
#include "i2c.h"
sfr         INT_CLKO    =           0x8F;
//#define is226 1

/*
K8B显示屏的相关说明
输入数据
插座位数第一个空置的不算,左声道都是双色 ,白色加对应右气道的基他它颜色,所以 说明就是左声道的颜色 。


1位  白色, 似乎是地线,但却没直接 接地, 到时要测试一下。
DRIVER PULSE: H 2位 灰色 :驱动的脉冲,680Hz(实测551), 这里为了加强输出 ,用了IC8几路的缓冲。
SERIAL OUTPUT : 测试点Q,插座第3位,紫色 :这里就是声频 信号 的串行数据
STROBE: L 4位 蓝色(左右声道直连的) 闪光灯 , H的下降沿延迟一点后产生一个正脉冲,宽度是10us 100k,两人脉冲间隔是551Hz




PEAK INPUT:V    5位 黄色 峰值输入 这里了不用了(这里给个高电平, 这样再测试第6位就行了, 6位有脉冲就清空,否则就是操持峰值)
PEAK OUTPUT: W  6位 橙   峰值输出, 如果是自动 reset , 每隔一段时间会清除峰值



-5V  棕色 35K   8位
+5V  黑色 + 5 9位

手册上的颜色和实际不对  手册上的  白灰紫蓝黄黑橙红棕 实际是 白灰紫蓝黄橙红棕黑  , 上面是按实际来的

需要

白,紫色, 蓝色*2 ,黄色 ,橙 ,黑色





*/



//SFR定义
#define FOSC            11059200UL
#define BRT             (65536 - FOSC / 115200 / 4)



sfr         P3M1        =           0xB1;
sfr         P3M0        =           0xB2;
sfr         P5M1        =           0xC9;
sfr         P5M0        =           0xCA;

//sfr P4          =   0xc0;






sfr     AUXR        =   0x8e;
sfr     T2H         =   0xd6;
sfr     T2L         =   0xd7;







unsigned char I2cParm[9] = {0,0,0,0,0,0,0,0,0};

unsigned long data1,data2;

unsigned  char code l_seg[64] = {7,        8,        8,        7,        7,        8,        8,        7        ,7        ,8,        8,        7,        7,        8,        8,        7,        5,        6,        6        ,5        ,5        ,6,        6,        5,        5,        6,        6,        5,        5,        6,        6        ,5};
unsigned  char code l_bit[64] = {7,        7,        6,        6,        5,        5,        4,        4,        3,        3,        2,        2,        1  ,1  ,0,        0,        7        ,7,        6,        6,        5,        5,        4,        4,        3,        3,        2,        2,        1,        1,        0,        0};

//unsigned  char code l_seg[64] = {7,        8,        8,        7,        7,        8,        8,        7        ,7        ,8,        8,        7,        7,        8,        8,        7,        6,        5,        5        ,6        ,6        ,5,        5,        6,        6,        5,        5,        6,        6,        5,        5        ,6};
//unsigned  char code l_bit[64] = {7,        7,        6,        6,        5,        5,        4,        4,        3,        3,        2,        2,        1  ,1  ,0,        0,        7        ,7,        6,        6,        5,        5,        4,        4,        3,        3,        2,        2,        1,        1,        0,        0};



unsigned  char code r_seg[64] = {1,        2,        2,        1,        1,        2,        2,        1,        1,        2,        2,        1,        1,        2,        2,        1        ,3,        4,        4,        3,        3,        4,        4,        3,        3,        4,        4,        3,        3,        4,        4,        3};
unsigned  char code r_bit[64] = {0,        0,        1,        1,        2,        2,        3,        3,        4,        4,        5,        5,        6,        6,        7,        7,        0,        0,        1,        1,        2,        2,        3,        3,        4,        4,        5,        5,        6,        6,        7,        7};


char level_l,level_r,count_l,count_r,peak_l,peak_r;



void Delay10ms(void)        //@20.000MHz
{
        unsigned char data i, j;

        i = 195;
        j = 138;
        do
        {
                while (--j);
        } while (--i);
}





void loadL(char level, char peak)
{
        char i  ;
        char  temp_1 ;
        temp_1 = 1;


        for (i = 0;i<32; i++ )
        {
                if ( level > i || peak == i + 1 /*显示峰值 */)  //左声道显示               
                 I2cParm[l_seg] = I2cParm[l_seg]| (temp_1<<l_bit);
        }

}


void loadR(char level, char peak)
{
        char i  ;
        char  temp_1 ;
        temp_1 = 1;


        for (i = 0;i<32; i++ )
        {
                if ( level > i || peak == i + 1 /*显示峰值 */)  //左声道显示               
                 I2cParm[r_seg] = I2cParm[r_seg]| (temp_1<<r_bit);
        }

}









void refresh (    )  //刷新显示
{

  
    I2cParm[1] =  0;
    I2cParm[2] =  0;
    I2cParm[3] = 0;
    I2cParm[4] = 0;
    I2cParm[5] = 0;        
    I2cParm[6] = 0;  
    I2cParm[7] = 0;  
        I2cParm[8] = 0;  

        loadL(level_l,peak_l);        
        loadR(level_r,peak_r);

  
        
        I2cParm[0] = 144 ; //发送控制字段    10010000    第1个1表示双背极模式  ,  中间那个(第4、5)00表示边屏的子地址  后面的 000 表示段地址
          i2cWrite(116,9);
        I2cParm[0] = 0 ;  //清空命令码,会使用默认的命令码


        
        //高位的在另一个芯片
    I2cParm[1] =  0;
    I2cParm[2] =  0;
    I2cParm[3] = 0;
    I2cParm[4] = 0;
    I2cParm[5] = 0;        
    I2cParm[6] = 0;  
    I2cParm[7] = 0;  
        I2cParm[8] = 0;  

        loadL(level_l-32,peak_l-32);        
        loadR(level_r-32,peak_r-32);


        I2cParm[0] = 128 ; //发送控制字段    10010000    第1个1表示双背极模式  ,  中间那个(第4、5)00表示边屏的子地址  后面的 000 表示段地址
          i2cWrite(116,9);




}


void C_L()
{
        //mcu第3脚 P3.5
        //左声道计数
        count_l ++;
        if( count_l >64 )
                {count_l = 64;}
}


void C_R()
{
//用做右声道的电平输入计数

    count_r ++;
        //右声道计数
        if( count_r > 64 )
                {count_r = 64 ;}
}




void COUNT()
{

         //mcu第1脚 P3.4
        //这个用来刷新电平,这里不要接灰色第2脚要接第4脚蓝色, 因为这个蓝色脉冲要比电平脉冲要晩一点,这样不会丢失最后位

        //在清空前得到值
        level_l = count_l;
        level_r = count_r ;

        //因为网格线在第一位, 所以最少显示一位
    if (level_l < 1)
                {level_l =1}

    if (level_r < 1)
                {level_r =1}

        
        if (peak_l < level_l)
                {peak_l = level_l;}        
        if (peak_r < level_r)
                {peak_r = level_r;}


        //清空计数
        count_l = 0 ;
        count_r = 0 ;        
}


void RESET()
{
         //mcu第1脚 P3.4
        //这个用来刷新电平,这里不要接灰色第2脚要接第4脚蓝色, 因为这个蓝色脉冲要比电平脉冲要晩一点,这样不会丢失最后位

        //在清空前得到值

         peak_l = 0;
         peak_r = 0;        


}



void exint0() interrupt 0       //INT0中断入口
{
  

                COUNT();

}








//中断服务程序
void exint1() interrupt 2       //INT1中断入口
{
                RESET();

        
}





void exint2()         interrupt 10        //外部中断2的中断函数
{

                 C_R();
         

}


void exint3()          interrupt 11        //外部中断3的中断函数  
{


        
        
           C_L();               

}




void Init()
{
    P3M0 = 0x00; P3M1 = 0x3c;



}


void Init_int () //初始化中断
{


            //IT0 = 1;                    //设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
            //EX0 = 1;                    //使能INT0中断        

            //P3^2 = 1;
            IT0 = 1;                    //设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
            EX0 = 1;                    //使能INT0中断
        
            //P3^3 = 1;
            IT1 = 1;                    //设置INT1的中断类型 (1:仅下降沿 0:上升沿和下降沿)
            EX1 = 1;                    //使能INT1中断




           INT_CLKO |= 0x10;               //(EX2 = 1)使能INT2中断
               INT_CLKO |= 0x20;               //(EX3 = 1)使能INT3中断
                  //INT_CLKO |= 0x40;               //(EX3 = 1)使能INT3中断

                EA=1;//打开总中断        

}


void main(void)
{
        //char i ;

    Init() ;
         Init_int() ;


         SDA1  = 0 ;
         SCL1= 0 ;
         while(1)
        {
                 if (level_l>0 )
                         {refresh  ( );}

                          Delay10ms( );
        }




        
}



REVOX STUDER 卡座专营及维修 ,闲鱼账号: chentijian
回复 支持 反对

使用道具 举报

175

主题

910

帖子

20

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
15
注册时间
2008-3-18
 楼主| 发表于 2025-3-23 23:26 | 显示全部楼层

这是pcb ,屏和支架的图纸,都是亲手画的

本帖最后由 乡村猎手 于 2025-3-23 23:34 编辑

1742743003699.jpg 1742743362398.jpg 1742743442805.jpg
REVOX STUDER 卡座专营及维修 ,闲鱼账号: chentijian
回复 支持 反对

使用道具 举报

243

主题

1万

帖子

18

威望

高级会员

Rank: 4Rank: 4Rank: 4Rank: 4

交易诚信度
0
注册时间
2011-6-12
发表于 2025-3-24 05:18 来自家电论坛网手机触屏版 | 显示全部楼层
厉害了
咸鱼搜索用户“jaycool杰酷工作室”,提供卡座标调测试带和售后服务指导,索尼卡座配件
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

活动推荐上一条 /1 下一条

Archiver|手机版|手机版|客服:010-60152166 邮箱:zx@jd-bbs.com QQ:895456697|广告合作|账号注销|家电联盟网

京公网安备 11010602010207号 ( 京ICP证041102号,京ICP备09075138号-9 )

GMT+8, 2025-4-30 23:17 , Processed in 0.205543 second(s), 35 queries , Gzip On.

快速回复 返回顶部 返回列表