搜索
bottom↓
回复: 81

// 时钟, 还是时钟, 有没有点新鲜的? 续三 [直播更新 蓝牙传输 14:03 ][点阵,音乐频

[复制链接]

出0入0汤圆

发表于 2011-4-4 22:43:12 | 显示全部楼层 |阅读模式
2011/04/04 22:40 视频上传中...直播开始!

2011/04/04 22:50 先两张预览图






2011/04/04 23:19
视频审核通过 地址: http://v.youku.com/v_show/id_XMjU2MjQ1MjY0.html

2011/04/04 23:54

代码比较凌乱, 欢迎提出宝贵建议使其更加高效,健壮!


目前实现的功能介绍:
1.时钟.
在串口没有频谱数据来的时候是时钟模式, 时钟模式时间变化有过渡效果.
时钟字体参考了杜洋工作室的点阵字体, 在此声明并致谢.

2.音乐频谱
串口有数据接收到时转为频谱模式,有峰值回落的效果

3.遥控

2011/04/05 11:12
昨天的声音太小, 上传个重拍的稍微大点的
http://v.youku.com/v_show/id_XMjU2MzI0NDY0.html

2011/04/05 14:03
没有人气啊...
这可怎么办啊....


接着改造吧.. 摆脱串口线的束缚!

当初没有考虑到这块, 手工加一个...
一个蓝牙转串口模块, 焊下来的时候焊盘给弄掉了..没办法, 飞线!


其实这线和PCB上的走线是相当细的, 难看了点, 但是通了...


搭好了...右边两个指示灯


现在是想怎么放就怎么放!

接上, 蓝色灯闪烁, 正在等待链接




红色表示连接成功, 现在还没有数据过来


打开Winamp...


用的这个适配器

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2011-4-4 22:43:38 | 显示全部楼层
2011/04/04 22:58
电路图:
点击此处下载 ourdev_628389TPE0FQ.pdf(文件大小:216K) (原文件名:点阵板 110317.pdf)
点击此处下载 ourdev_628390HXB5OK.pdf(文件大小:352K) (原文件名:主板 110317.pdf)

2011/04/04 23:15
点阵板3D图


焊好的点阵板


焊好的点阵板正面


主板3D图


主板实物


焊好的主板反面


焊好的主板正面面


插座不能放边上, 只能放中间, 而且要垫高, 不然会挤着下面的芯片


两边加起来160个针, 按上去可真不容易


两块中间的距离


2011/04/04 23:25
还有一张图:测试效果

出0入0汤圆

 楼主| 发表于 2011-4-4 22:43:54 | 显示全部楼层
Winamp 插件占楼
之前论坛里有位大侠发过类似的帖子, 一下子找不到了, 也是个Winamp的插件, 那个功能比较强大, 但是我这个是51的, 数据量过大担心处理不过来. 所以自己找了一点资料编写了一个


(原文件名:图像 000.jpg)

就一个功能, 将Winamp传来的数据处理一下通过串口发送给点阵
发送的数据每次17Byte, 以0xFF开始,后面 16字节 频谱高度,范围0-15, 计算完全交给上位机.

运行效果:


插件选择



2011/04/04 23:51
插件源代码 (DEBUG 目录有编译好的 DEBUG 版)
平台 Windows 7 SP1 x64, Visual Studio 2010 SP1, 插件在Windows XP运行不能,需要自行编译...
点击此处下载 ourdev_628421W547HV.rar(文件大小:19K) (原文件名:VisDemo.rar)

出0入0汤圆

 楼主| 发表于 2011-4-4 22:44:09 | 显示全部楼层
2011/04/05 0:26
-------------------------------------------------------HT1632.C
#include "HT1632C.H"
#include "common.h"
#include "FONT_5x7.H"
#include "FONT_7x16.H"
#include "BINARY.H"

#include <intrins.h>

#define NOP() _nop_();_nop_();_nop_();_nop_();_nop_() //延时, 单片机的时钟相对于HT1632C的时钟较快

//接口定义
sbit HT1632C_DATA = P1^3;
sbit HT1632C_WR   = P1^2;
sbit HT1632C_RD   = P1^1;
sbit HT1632C_CS1   = P2^4;
sbit HT1632C_CS2   = P1^0;
sbit HT1632C_CS3   = P1^5;
sbit HT1632C_CS4   = P1^4;

static
u8 xdata DisplayBuffer[4][48];   //显示缓存, 牺牲空间换取时间
static u8 xdata TimeUI_2_Buffer[2][6]={10,10,10,10,10,10,10,10,10,10,10,10}; //时间数据,分别保存上一次和这一次的数据
static u8 xdata TimeUI_2_Step=0;        //时间特效显示步骤
static u8 code posX[6]={0,7,17,24,34,41};   //每一位数字显示的X位置
static s8 xdata VisIndex=0;             //频谱编号
static s8 xdata VisPeakFallTime=0;      //峰值回落延时
static s8 xdata VisPeak[16]={0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0};   //频谱峰值

static
u8 code VisTable[16][2]={        //相当于频谱的"字模" 需要 "BINARY.H" 支持
    B00000000,B00000001,
    B00000000,B00000011,
    B00000000,B00000111,
    B00000000,B00001111,

    B00000000,B00011111,
    B00000000,B00111111,
    B00000000,B01111111,
    B00000000,B11111111,

    B00000001,B11111111,
    B00000011,B11111111,
    B00000111,B11111111,
    B00001111,B11111111,

    B00011111,B11111111,
    B00111111,B11111111,
    B01111111,B11111111,
    B11111111,B11111111,
};


static
u8 code VisPeakTable[16][2]={    //频谱峰值的"字模"

    B00000000,B00000001,
    B00000000,B00000010,
    B00000000,B00000100,
    B00000000,B00001000,

    B00000000,B00010000,
    B00000000,B00100000,
    B00000000,B01000000,
    B00000000,B10000000,

    B00000001,B00000000,
    B00000010,B00000000,
    B00000100,B00000000,
    B00001000,B00000000,

    B00010000,B00000000,
    B00100000,B00000000,
    B01000000,B00000000,
    B10000000,B00000000,
};



//HT1632C片选
static void HT_CS(u8 ucCSNo)
{

    switch
(ucCSNo)
    {

        case
1:
            HT1632C_CS2=1;
            HT1632C_CS3=1;
            HT1632C_CS4=1;
            HT1632C_CS1=0;
            break
;
        case
2:
            HT1632C_CS1=1;
            HT1632C_CS3=1;
            HT1632C_CS4=1;
            HT1632C_CS2=0;
            break
;
        case
3:
            HT1632C_CS1=1;
            HT1632C_CS2=1;
            HT1632C_CS4=1;
            HT1632C_CS3=0;
            break
;
        case
4:
            HT1632C_CS1=1;
            HT1632C_CS2=1;
            HT1632C_CS3=1;
            HT1632C_CS4=0;
            break
;
        case
0xAA:
            HT1632C_CS1=0;
            HT1632C_CS2=0;
            HT1632C_CS3=0;
            HT1632C_CS4=0;
        default
:
            HT1632C_CS1=1;
            HT1632C_CS2=1;
            HT1632C_CS3=1;
            HT1632C_CS4=1;
    }
}


//HT1632C发送数据
static void HT_SendData(u8 ucDat,u8 ucNo)
{

    u8 i;
    for
(i=0;i<ucNo;i++)
    {

        NOP();
        HT1632C_WR=0;
        ucDat<<=1;
        HT1632C_DATA=CY;
        NOP();
        HT1632C_WR=1;
    }
}


//向对应的HT1632C发送命令
void HT_CMD(u8 ucCS, u8 ucCMD)
{

    HT_CS(ucCS);
    HT_SendData(0x80,3);    //B100x xxxx
    HT_SendData(ucCMD,9);   //9bit
    HT_CS(0xFF);
}


//初始化
void HT_Init(void)
{

    u8 i;

    HT1632C_DATA = 1;
    HT1632C_WR=1;
    HT1632C_RD=1;
    HT1632C_CS1=1;
    HT1632C_CS2=1;
    HT1632C_CS3=1;
    HT1632C_CS4=1;

    HT_CMD(1,CMD_MODE_MASTER);
    HT_CMD(1,CMD_NMOS_16COM);
    HT_CMD(1,CMD_OSC_ON);
    HT_CMD(1,CMD_PWM_DUTY+5);
    HT_CMD(1,CMD_LED_ON);

    HT_CMD(2,CMD_MODE_SLAVE);
    HT_CMD(2,CMD_NMOS_16COM);
    HT_CMD(2,CMD_OSC_ON);
    HT_CMD(2,CMD_PWM_DUTY+5);
    HT_CMD(2,CMD_LED_ON);

    HT_CMD(3,CMD_MODE_SLAVE);
    HT_CMD(3,CMD_NMOS_16COM);
    HT_CMD(3,CMD_OSC_ON);
    HT_CMD(3,CMD_PWM_DUTY+5);
    HT_CMD(3,CMD_LED_ON);

    HT_CMD(4,CMD_MODE_SLAVE);
    HT_CMD(4,CMD_NMOS_16COM);
    HT_CMD(4,CMD_OSC_ON);
    HT_CMD(4,CMD_PWM_DUTY+5);
    HT_CMD(4,CMD_LED_ON);

    for
(i=0;i<48;i++)  //清空"显存"
    {
        DisplayBuffer[0][i]=0x00;
        DisplayBuffer[1][i]=0x00;
        DisplayBuffer[2][i]=0x00;
        DisplayBuffer[3][i]=0x00;
    }
}


//将显存刷新到点阵
void HT_Buffer2Screen(void)
{

    u8 i;

    HT_CS(1);
    HT_SendData(0xA0,3);    //B101x xxxx
    HT_SendData(0x00,7);    //Address
    for (i=0;i<24;i++)
    {

        HT_SendData(DisplayBuffer[0][i],8);
        HT_SendData(DisplayBuffer[2][i],8);
    }


    HT_CS(2);
    HT_SendData(0xA0,3);    //B101x xxxx
    HT_SendData(0x00,7);    //Address
    for (i=24;i<48;i++)
    {

        HT_SendData(DisplayBuffer[0][i],8);
        HT_SendData(DisplayBuffer[2][i],8);
    }


    HT_CS(3);
    HT_SendData(0xA0,3);    //B101x xxxx
    HT_SendData(0x00,7);    //Address
    for (i=0;i<24;i++)
    {

        HT_SendData(DisplayBuffer[1][i],8);
        HT_SendData(DisplayBuffer[3][i],8);
    }


    HT_CS(4);
    HT_SendData(0xA0,3);    //B101x xxxx
    HT_SendData(0x00,7);    //Address
    for (i=24;i<48;i++)
    {

        HT_SendData(DisplayBuffer[1][i],8);
        HT_SendData(DisplayBuffer[3][i],8);
    }


    HT_CS(0xFF);

}


//向点阵发送一列数据
void HT_DataXY(u8 ucX, u8 ucDatR, u8 ucDatG)
{

    HT_CS(ucX/24+1);        //由X坐标计算该片选哪个
    HT_SendData(0xA0,3);    //B101x xxxx
    HT_SendData((((ucX%24)*4)<<1),7);    //Address
    HT_SendData(ucDatR,8);
    HT_SendData(ucDatG,8);
    HT_CS(0xFF);
}


//打印5x7字符
void HT_Put5x7(u8 ucX, u8 ucASCIIR, u8 ucASCIIG)
{

    u8 i;
    for
(i=0;i<6;i++)
    {

        HT_DataXY(ucX,FONT_5x7[ucASCIIR][i],FONT_5x7[ucASCIIG][i]);
        ucX++;
    }
}


//打印5x7字符串
void HT_Str1(u8 * pStr)
{

    u8 i=0;

    while
(*pStr)
    {

        HT_Put5x7(i,* pStr,* pStr);
        pStr++;
        i+=6;
    }

}


//输出一位时钟到显存中, ucIndex 位号, ucStep: 动态效果到第几步
static void HT_TimeUI_2_A0(u8 ucIndex,u8 ucStep)
{

    u8 i,Redir[7],NewBuffer=0;  //Newbuffer=0:即将翻转消隐的旧字符, =1:翻转出新字符

    switch
(ucStep)      //数字翻转的效果, 不同的步骤取字模中不同的列
    {
        case
0:
            for
(i=0;i<7;i++) { Redir[i]=i; }
            NewBuffer=0;
            break
;
        case
5:
            NewBuffer=1;
            for
(i=0;i<7;i++) { Redir[i]=i; }
            break
;

        case
1:
            NewBuffer=0;
            Redir[0]=6;Redir[1]=0;Redir[2]=2;Redir[3]=3;Redir[4]=5;Redir[5]=6;Redir[6]=6;
            break
;
        case
4:
            NewBuffer=1;
            Redir[0]=6;Redir[1]=0;Redir[2]=2;Redir[3]=3;Redir[4]=5;Redir[5]=6;Redir[6]=6;
            break
;

        case
2:
            NewBuffer=0;
            Redir[0]=6;Redir[1]=6;Redir[2]=0;Redir[3]=5;Redir[4]=6;Redir[5]=6;Redir[6]=6;
            break
;
        case
3:
            NewBuffer=1;
            Redir[0]=6;Redir[1]=6;Redir[2]=0;Redir[3]=5;Redir[4]=6;Redir[5]=6;Redir[6]=6;
            break
;
    }

    for
(i=0;i<7;i++)
    {

        DisplayBuffer[2][posX[ucIndex]+i]= FONT_7x16[TimeUI_2_Buffer[NewBuffer][ucIndex]][Redir[i]][0];
        DisplayBuffer[3][posX[ucIndex]+i]= FONT_7x16[TimeUI_2_Buffer[NewBuffer][ucIndex]][Redir[i]][1];
    }

}


//更新新旧时间缓存的数据
void HT_TimeUI_2(u8 ucH, u8 ucM, u8 ucS)
{

    u8 i;
    for
(i=0;i<6;i++) //使当前时间变为旧时间
    {
        TimeUI_2_Buffer[0][i]=TimeUI_2_Buffer[1][i];
    }

    //获取新时间
    TimeUI_2_Buffer[1][0]=ucH/10;
    TimeUI_2_Buffer[1][1]=ucH%10;
    TimeUI_2_Buffer[1][2]=ucM/10;
    TimeUI_2_Buffer[1][3]=ucM%10;
    TimeUI_2_Buffer[1][4]=ucS/10;
    TimeUI_2_Buffer[1][5]=ucS%10;
    //特效归零,需要从头开始
    TimeUI_2_Step=0;
}


//时间模式前需要清屏, 以及显示冒号
void HT_TimeUI_2_Dot(void)
{

    u8 i;
    for
(i=0;i<48;i++)      //清空显存
    {
        DisplayBuffer[0][i]=0x00;
        DisplayBuffer[1][i]=0x00;
        DisplayBuffer[2][i]=0x00;
        DisplayBuffer[3][i]=0x00;
    }

    for
(i=0;i<6;i++)      //清空时间缓存
    {
        TimeUI_2_Buffer[0][i]=10;
        TimeUI_2_Buffer[1][i]=10;
    }

    //显存中冒号的字模
    DisplayBuffer[2][14]=0x0C;
    DisplayBuffer[2][15]=0x0C;
    DisplayBuffer[2][16]=0x00;
    DisplayBuffer[2][31]=0x0C;
    DisplayBuffer[2][32]=0x0C;
    DisplayBuffer[2][33]=0x00;
    DisplayBuffer[3][14]=0x30;
    DisplayBuffer[3][15]=0x30;
    DisplayBuffer[3][16]=0x00;
    DisplayBuffer[3][31]=0x30;
    DisplayBuffer[3][32]=0x30;
    DisplayBuffer[3][33]=0x00;
}


//刷新时间
void HT_TimeUI_2_Update(void)
{

    u8 i=0;
    s8 iStep2;

    if
(TimeUI_2_Step>18) return;

    for
(i=0;i<6;i++)       //计算每一位时间到了动态效果的哪一步
    {
        if
(TimeUI_2_Buffer[0][i]!=TimeUI_2_Buffer[1][i])
        {

            iStep2=TimeUI_2_Step-(5-i)*2;
            if
(iStep2<0) iStep2=0;
            if
(iStep2>5) iStep2=5;
            HT_TimeUI_2_A0(i,iStep2);   //刷新显存中的每一位
        }
    }

    TimeUI_2_Step++;        //动态效果步骤
    HT_Buffer2Screen();
}


void
HT_VisReset(void)      //频谱重置
{
    VisIndex=0;
}

void
HT_VisData(u8 ucData)  //压入频谱数据
{
    //更新对应缓存, 两列一样, 第三列为空
    DisplayBuffer[2][VisIndex*3]=VisTable[ucData][0];
    DisplayBuffer[3][VisIndex*3]=VisTable[ucData][1];
    DisplayBuffer[2][VisIndex*3+1]=VisTable[ucData][0];
    DisplayBuffer[3][VisIndex*3+1]=VisTable[ucData][1];
    DisplayBuffer[2][VisIndex*3+2]=0x00;
    DisplayBuffer[3][VisIndex*3+2]=0x00;
    if
(ucData>VisPeak[VisIndex]) VisPeak[VisIndex]=ucData; //大于峰值, 则更新峰值
    VisIndex++;
    if
(VisIndex>15) VisIndex=15;

}


void
HT_VisUpdate(void) //刷新频谱效果
{
    u8 i;

    for
(i=0;i<16;i++)  //填充峰值数据(红色)
    {
        DisplayBuffer[0][i*3]=VisPeakTable[VisPeak[i]][0];
        DisplayBuffer[1][i*3]=VisPeakTable[VisPeak[i]][1];
        DisplayBuffer[0][i*3+1]=VisPeakTable[VisPeak[i]][0];
        DisplayBuffer[1][i*3+1]=VisPeakTable[VisPeak[i]][1];
        DisplayBuffer[0][i*3+2]=0x00;
        DisplayBuffer[1][i*3+2]=0x00;
    }

    VisPeakFallTime++;  //峰值回落计数, 可以调节回落速度
    if (VisPeakFallTime>2)  
    {

        for
(i=0;i<16;i++)  //开始回落
        {
            VisPeak[i]--;
            if
(VisPeak[i]<0) VisPeak[i]=0; //到最低, 不再变化
        }
        VisPeakFallTime=0;  //峰值回落计数归零
    }

    HT_Buffer2Screen();     //刷新显存到屏幕
}




<font color=red>2011:04:05 10:30

-----------------------------HT1632C.H 文件内容--------------------------
#ifndef __HT1632C_H__
#define __HT1632C_H__

#include "common.h"

#define CMD_SYS_OFF     0x00
#define CMD_OSC_ON      0x01
#define CMD_LED_OFF     0x02
#define CMD_LED_ON      0x03
#define CMD_BLINK_OFF   0x08
#define CMD_BLINK_ON    0x09
#define CMD_MODE_SLAVE  0x10
#define CMD_MODE_MASTER 0x18
#define CMD_MODE_MASEXT 0x1C
#define CMD_NMOS_8COM   0x20
#define CMD_NMOS_16COM  0x24
#define CMD_PMOS_8COM   0x28
#define CMD_PMOS_16COM  0x2C
#define CMD_PWM_DUTY    0xA0


void
HT_Init(void);
void
HT_CMD(u8 ucCS, u8 ucCMD);
void
HT_Buffer2Screen(void);
void
HT_Put5x7(u8 ucX, u8 ucASCIIR, u8 ucASCIIG);
void
HT_Str1(u8 * pStr);

void
HT_TimeUI_2(u8 ucH, u8 ucM, u8 ucS);
void
HT_TimeUI_2_Dot(void);
void
HT_TimeUI_2_Update(void);

void
HT_VisReset(void);
void
HT_VisData(u8 ucData);
void
HT_VisUpdate(void);<font color="#0000FF">

#endif

出0入0汤圆

 楼主| 发表于 2011-4-4 22:44:25 | 显示全部楼层
代码占楼2

出0入0汤圆

 楼主| 发表于 2011-4-4 22:45:11 | 显示全部楼层
占了那么多楼要是拿不出点东西.. 后果不堪设想啊...

出0入0汤圆

 楼主| 发表于 2011-4-4 23:19:04 | 显示全部楼层
冷清...

出0入0汤圆

发表于 2011-4-4 23:24:55 | 显示全部楼层
果断顶起

出0入0汤圆

发表于 2011-4-4 23:26:24 | 显示全部楼层
楼主V5,用4片HT1632C的16*24模式驱动16*48个双色点阵,驱动双色点阵要设置主从模式并且要同步吧,不然扫描信号就乱了

出0入0汤圆

发表于 2011-4-4 23:32:44 | 显示全部楼层
手提酱油路过 。要拆开就杯具了,怎么不用圆孔排母。

出0入0汤圆

 楼主| 发表于 2011-4-4 23:40:03 | 显示全部楼层
回复【8楼】little Monkey
楼主v5,用4片ht1632c的16*24模式驱动16*48个双色点阵,驱动双色点阵要设置主从模式并且要同步吧,不然扫描信号就乱了
-----------------------------------------------------------------------

目前设置了 1号为主 其他3个为从, 四个的 OSC和SYNC接在一起, 不过四个都是主也没有关系, 因为硬件上没有共享 COM

出0入0汤圆

 楼主| 发表于 2011-4-4 23:41:35 | 显示全部楼层
回复【9楼】Rapido
手提酱油路过 。要拆开就杯具了,怎么不用圆孔排母。
-----------------------------------------------------------------------

悲剧的点阵脚距2.4...

焊好发现还有一个坏点 啊~~~~

出0入0汤圆

发表于 2011-4-4 23:46:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-4 23:46:33 | 显示全部楼层
回复【11楼】wowbanui
回复【9楼】rapido  
手提酱油路过 。要拆开就杯具了,怎么不用圆孔排母。
-----------------------------------------------------------------------
悲剧的点阵脚距2.4...
焊好发现还有一个坏点 啊~~~~
-----------------------------------------------------------------------

恭喜,还真杯具了...

出0入0汤圆

发表于 2011-4-4 23:51:49 | 显示全部楼层
嗯,这个倒是有点意思呀,整个装在机箱前面不错,等资料...

出0入0汤圆

发表于 2011-4-4 23:52:49 | 显示全部楼层
有套件吗~成品吗?

出0入0汤圆

发表于 2011-4-4 23:53:41 | 显示全部楼层
嗯  吸锡器伺候吧

出0入0汤圆

 楼主| 发表于 2011-4-5 00:29:46 | 显示全部楼层
明天继续...

出0入0汤圆

 楼主| 发表于 2011-4-5 09:26:25 | 显示全部楼层
更新: 插件在 KMPlayer下可以运行. 看电影时也能有效果啦

悄悄地进村 打枪地不要 你看人家太君多低调~~~

但是.. 低调是没有好下场地, 所以, 要高调!!!







出0入0汤圆

 楼主| 发表于 2011-4-5 09:29:28 | 显示全部楼层
插件选择
KMP能部分支持Winamp的插件

出0入0汤圆

发表于 2011-4-5 09:52:11 | 显示全部楼层
楼主是高高手呀!

出0入8汤圆

发表于 2011-4-5 10:01:55 | 显示全部楼层
记号~记号~~~

出0入0汤圆

发表于 2011-4-5 10:57:26 | 显示全部楼层
MARK!

出0入0汤圆

 楼主| 发表于 2011-4-5 11:10:34 | 显示全部楼层
昨天的声音太小, 上传个重拍的稍微大点的
http://v.youku.com/v_show/id_XMjU2MzI0NDY0.html

出0入0汤圆

发表于 2011-4-5 11:23:26 | 显示全部楼层
学习……

出0入0汤圆

 楼主| 发表于 2011-4-5 14:01:46 | 显示全部楼层
没有人气啊...
这可怎么办啊....


接着改造吧.. 摆脱串口线的束缚!

当初没有考虑到这块, 手工加一个...
一个蓝牙转串口模块, 焊下来的时候焊盘给弄掉了..没办法, 飞线!


其实这线和PCB上的走线是相当细的, 难看了点, 但是通了...


搭好了...右边两个指示灯


现在是想怎么放就怎么放!

接上, 蓝色灯闪烁, 正在等待链接




红色表示连接成功, 现在还没有数据过来


打开Winamp...


用的这个适配器

出0入0汤圆

发表于 2011-4-5 15:24:17 | 显示全部楼层
羡慕嫉妒恨啊。。。

出0入0汤圆

发表于 2011-4-5 16:27:56 | 显示全部楼层
楼主V5

出0入0汤圆

发表于 2011-4-5 18:11:08 | 显示全部楼层
记号!

出0入0汤圆

 楼主| 发表于 2011-4-6 10:11:37 | 显示全部楼层
一阵新鲜劲过了冷却下来了, 还能加点什么东西不? 大家有啥创意嘞?

出0入0汤圆

发表于 2011-4-6 10:13:59 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-4-6 10:26:00 | 显示全部楼层
不错,挺全的,支持一下

出0入0汤圆

发表于 2011-4-6 15:01:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-6 19:16:02 | 显示全部楼层
挺厉害的  哎‘。

出0入0汤圆

发表于 2011-4-6 20:44:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-6 21:12:49 | 显示全部楼层
   beautiful

出0入0汤圆

发表于 2011-4-7 14:10:17 | 显示全部楼层
做的很不错

出0入0汤圆

发表于 2011-4-9 00:08:03 | 显示全部楼层
很牛

出0入0汤圆

发表于 2011-4-9 01:47:59 | 显示全部楼层
PCB做的不错!

出0入0汤圆

发表于 2011-4-9 09:08:34 | 显示全部楼层
不喜欢用STC,换种别的就好了.比如STM32

出0入0汤圆

发表于 2011-4-9 09:42:04 | 显示全部楼层
楼主v5

出0入0汤圆

发表于 2011-4-9 10:34:15 | 显示全部楼层
太酷了,这个

出0入0汤圆

发表于 2011-4-9 19:47:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-9 21:51:52 | 显示全部楼层
记号

出0入8汤圆

发表于 2011-4-9 22:17:18 | 显示全部楼层
关注进展~

出0入0汤圆

发表于 2011-4-9 22:40:46 | 显示全部楼层
顶一下!

出0入0汤圆

发表于 2011-4-15 16:05:12 | 显示全部楼层
回复【楼主位】wowbanui
-----------------------------------------------------------------------

狠不错,Lz还有PCB么,我也想玩玩

出0入0汤圆

发表于 2011-4-15 22:03:07 | 显示全部楼层
厉害

出0入0汤圆

发表于 2011-4-19 14:15:41 | 显示全部楼层
记号下

出0入0汤圆

发表于 2011-4-19 15:23:54 | 显示全部楼层
高手的境界达到一定的时候,就只能用变态来形容了,太JB厉害了~这都想得到!

出0入0汤圆

发表于 2011-4-30 22:01:27 | 显示全部楼层
这就是境界啊!!mark!

出0入0汤圆

发表于 2011-5-1 01:18:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-1 02:03:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-1 14:39:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-2 21:39:26 | 显示全部楼层
楼主是高高手呀

出0入0汤圆

发表于 2011-5-17 10:59:11 | 显示全部楼层
mark

出0入134汤圆

发表于 2011-5-17 12:35:11 | 显示全部楼层
不错哦

出0入0汤圆

发表于 2011-5-17 12:57:05 | 显示全部楼层
很漂亮

出0入0汤圆

发表于 2011-5-17 17:26:08 | 显示全部楼层
直顶楼主了,好东西了,我想跟你学学怎么搞这个了,弄个玩玩了

出0入0汤圆

发表于 2011-5-18 21:58:10 | 显示全部楼层
mark 跟杜洋1608时钟有的一拼!!! COOL!

出0入0汤圆

发表于 2011-9-26 18:45:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-27 20:56:10 | 显示全部楼层
太牛了,不顶不行

出0入0汤圆

发表于 2011-9-27 21:59:28 | 显示全部楼层

出0入0汤圆

发表于 2011-9-28 01:47:21 | 显示全部楼层
mark 高!

出0入0汤圆

发表于 2011-9-28 08:55:04 | 显示全部楼层

出0入0汤圆

发表于 2011-10-2 16:24:26 | 显示全部楼层
强劲

出0入0汤圆

发表于 2011-10-2 20:16:46 | 显示全部楼层
看起来不错呃

出0入0汤圆

发表于 2011-10-2 23:57:30 | 显示全部楼层
学习了

出0入0汤圆

发表于 2012-3-8 21:19:15 | 显示全部楼层
学习了!

出0入0汤圆

发表于 2012-3-8 21:39:34 | 显示全部楼层
好东西,留着学习。

出0入0汤圆

发表于 2012-3-8 22:07:32 | 显示全部楼层
mark!

出0入0汤圆

发表于 2012-3-10 10:41:10 | 显示全部楼层
少了完整程序..

出0入0汤圆

发表于 2012-3-28 16:02:17 | 显示全部楼层
留个爪印,关心一下有无套件和价钱

出0入0汤圆

发表于 2012-7-1 17:32:55 | 显示全部楼层
NB的东西必须顶起!

出0入0汤圆

发表于 2012-7-1 17:35:55 | 显示全部楼层
有PCB转让就更好了

出0入0汤圆

发表于 2012-7-2 01:32:05 | 显示全部楼层
ei,羡慕嫉妒恨啊

出0入0汤圆

发表于 2012-7-2 13:14:40 | 显示全部楼层
用蓝牙呀~试下改在手机上运行啊~创新点~

出0入0汤圆

发表于 2012-8-21 09:55:50 | 显示全部楼层
做的是牛,但是,感觉没有什么太大的实用效果。

出0入0汤圆

发表于 2012-8-21 17:34:08 | 显示全部楼层
强,必须顶一个

出0入0汤圆

发表于 2012-8-21 18:57:20 | 显示全部楼层
蓝牙不需要配对?LZ蓝牙部份的程序没有贴出来,想学习下。    这是CSR的么?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 18:48

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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