zenl0039 发表于 2014-3-3 20:35:45

晒一个数显卡尺SPC接口读数,有兴趣的一起研究!

基本原理,读 SCK 和 SDA 数据,整理显示,可显示负值。

windingway 发表于 2014-3-3 20:47:04

有没有协议?我有一只山寨的卡尺,上面有触点,一直怀疑有名堂,原来如此!

AllEle 发表于 2014-3-3 20:55:17

是所有数显卡尺都能输出数据吗

zenl0039 发表于 2014-3-3 21:04:27

windingway 发表于 2014-3-3 20:47
有没有协议?我有一只山寨的卡尺,上面有触点,一直怀疑有名堂,原来如此!

网上的资料不一样,我有点晕,后来用万用表,量电池的正负极对应接口的是哪两根线,再用示波器,参考地线,观察另两根线的电平变化,

自动发送,110ms一次,一次 24bit ,20bit是符号位,数据是低位在前。

GNDSCKSDA VBat

再用电平转换电路去AVR,SCK接中断脚,SDA接一个IO。这里还用了个定时器, 判断一次是否收完。

windingway 发表于 2014-3-3 21:08:45

zenl0039 发表于 2014-3-3 21:04
网上的资料不一样,我有点晕,后来用万用表,量电池的正负极对应接口的是哪两根线,再用示波器,参考地线 ...

好的!谢谢,我抽空试试!

NJ8888 发表于 2014-3-3 21:19:13

我看过两家不同

zenl0039 发表于 2014-3-3 21:19:29

AllEle 发表于 2014-3-3 20:55
是所有数显卡尺都能输出数据吗

应该都有,已经能数显了,输出不是问题。

solisgood 发表于 2014-3-4 09:08:02

你敢把你的数码管再亮一些么?

zenl0039 发表于 2014-3-4 10:40:20

solisgood 发表于 2014-3-4 09:08
你敢把你的数码管再亮一些么?

什么意思?数码管由HC595和位选不断的刷新,拍照很难拍好,其实效果很好~

enovo2468 发表于 2014-3-4 14:31:00

直接焊上去的?有没有那个接头卖?

mhw 发表于 2014-3-4 15:20:05

zenl0039 发表于 2014-3-4 10:40
什么意思?数码管由HC595和位选不断的刷新,拍照很难拍好,其实效果很好~ ...

595是静态显示,不应该是这样的效果……
先移位完所有数据,在统一刷新到输出就可以了……估计你是省了一根IO

WXF_mabg 发表于 2014-3-4 15:26:19

上代码学习学习

yht0312 发表于 2014-3-4 16:39:51

数显卡尺居然还有这功能呀!太好了,有空研究研究

little_Monkey 发表于 2014-3-4 16:48:46

mhw 发表于 2014-3-4 15:20
595是静态显示,不应该是这样的效果……
先移位完所有数据,在统一刷新到输出就可以了……估计你是省了一 ...

595也可以做成动态扫描,而且看楼主的数码管是四位一体的,估计就是动态扫描的

zenl0039 发表于 2014-3-4 22:30:34

enovo2468 发表于 2014-3-4 14:31
直接焊上去的?有没有那个接头卖?

没看到单卖的。

zenl0039 发表于 2014-3-4 22:32:37

mhw 发表于 2014-3-4 15:20
595是静态显示,不应该是这样的效果……
先移位完所有数据,在统一刷新到输出就可以了……估计你是省了一 ...

那样也可以,但要多片595,还有就是功耗。

zenl0039 发表于 2014-3-5 15:02:26

yht0312 发表于 2014-3-4 16:39
数显卡尺居然还有这功能呀!太好了,有空研究研究

一起研究吧

zenl0039 发表于 2014-3-5 15:12:59

本帖最后由 zenl0039 于 2014-3-5 15:14 编辑

每帧 24bit 默认高电平,同步传输。
Timer1 判断是否上一帧结束。
INT0接CLK 线
PB2接SDA 线

前16bit 是数据
第20bit 是符号

int avgbb(int *pstr)
{
    long int d=0;
    uchar i;
    for(i=0;i<2;i++){
    d+=pstr;
    }
    return d/2;
}

#pragma vector=INT0_vect
__interrupt void SecIntp_ISR(void)//通用计时器0
{
   
//数显卡尺上升沿读数
   
    if(TCNT1>500){rl_bitcnt=0;
    if(rl_s)rl_val=0-rl_num;
    else rl_val=rl_num;
    rl_vals=rl_val;
    rl_datcnt++;
    if(rl_datcnt>1){
      rl_datcnt=0;LED_Xor;
      rl_show=avgbb(rl_vals);
      DISP_INT(rl_show,100);//多除2 换算英制
    }
    }
    if(rl_bitcnt<16){
      rl_num>>=1;
      if(PINA_Bit2)rl_num|=0x8000;
    }
    if(rl_bitcnt==20){if(PINA_Bit2)rl_s=1;else rl_s=0; }
    rl_bitcnt++;
    TCNT1=0;
}

zenl0039 发表于 2014-3-5 15:30:09

这是我的电平转换电路,不是很理想,会漏电。

krdzw 发表于 2014-4-22 15:06:05

不错学习学习

xiaolaba 发表于 2014-4-22 22:43:20

本帖最后由 xiaolaba 于 2014-4-22 22:45 编辑

zenl0039 发表于 2014-3-5 15:30
这是我的电平转换电路,不是很理想,会漏电。

請問是 Mitutoyo 三豐 的 SPC 協議嗎

電平轉換你可以考慮電阻分壓的方式


hddgf 发表于 2014-4-23 04:34:39

attach://186073.pdf
网上找的

jackboy 发表于 2014-4-23 08:36:31

大家这是玩玩吧, 不懂读这个的目的是啥

zenl0039 发表于 2014-5-8 14:17:00

jackboy 发表于 2014-4-23 08:36
大家这是玩玩吧, 不懂读这个的目的是啥

还是很有用的,可以用于自动控制,检测并报警,变化状态记录等等

bywqdq123 发表于 2014-7-2 16:19:29

早都注意过有这个接口,打算做可一直没做。谁再来个蓝牙模块,手机上写个程序,自动记录工件的尺寸,还可以计算工件的面积,体积。

xinwu 发表于 2014-10-3 16:14:40

用中断做的?中串口做行不行
页: [1]
查看完整版本: 晒一个数显卡尺SPC接口读数,有兴趣的一起研究!