一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: drsh
收起左侧

9位8字VFD数码管模块化(VFD-INRC09SS49T)

  [复制链接]
发表于 2013-12-6 20:49 | 显示全部楼层
很漂亮的屏 手里有几块一直没点亮呢
发表于 2013-12-16 22:23 | 显示全部楼层
郁闷,我还是没搞定这个东西的51单片机的驱动,不知道LZ能不能提供完整的代码?
此模块仔细听还是有一点儿叫声。
电感是最高的元件,由于放在一边,容易导致屏放置不平。
其实可以将PCB镂空,放置电感。
 楼主| 发表于 2013-12-16 22:55 | 显示全部楼层
sdf15937 发表于 2013-12-16 22:23
郁闷,我还是没搞定这个东西的51单片机的驱动,不知道LZ能不能提供完整的代码?
此模块仔细听还是有一点儿 ...

是有点声音的,灯丝发出的。
用双面海棉胶垫在屏与PCB之间刚好合适。
缕空板影响板的美观。


参考代码(我用的是PIC16F628A,片内4M振荡源,程序中数组和变量的定义与51单片机有一些差异,注意修改)
//-----------------------------------------------------------------------
#define DIN     RB0               // 数据输入线
#define CLK     RB1               // 时钟信号线
#define STB     RB2               // 片选信号线
#define DOUT  RB3               // 数据输出线
//-----------------------------------------------------------------------
#define MODE    0x05              // VFD 段位设置( 9位*13段)   
#define LIGHT   0x07              // VFD 亮度设置(0x00-0x07)   
#define ON      0x08               // 开显示   
#define OFF     0x00               // 关显示
//-----------------------------------------------------------------------
const uchar table_A[]=
{  
  0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,  // 0-9
  0x77,0x7c,0x39,0x5e,0x79,0x71                       // A-F
};                                                    // 共阴字码表

uchar DP_Cache[9];                                        // 显示缓存单元

/*-----------------------------------------------------------------------
函数功能: 写数据
入口参数: 无
出口参数: 无
函数说明:
-----------------------------------------------------------------------*/
void Write_PT6312(uchar dat)
{   
  uchar i;

  for(i=0;i<8;i++)
   {
     CLK=0;
     DIN=dat&0x01;
     dat>>=1;
     CLK=1;
   }
}

/*-----------------------------------------------------------------------
函数功能: 片选信号
入口参数: 无
出口参数: 无
函数说明:
-----------------------------------------------------------------------*/
void send_cs(void)
{   
  STB=1;
  STB=0;
}

/*-----------------------------------------------------------------------
函数功能: 初始化
入口参数: 无
出口参数: 无
函数说明:
-----------------------------------------------------------------------*/
void VFD_Init(void)
{
  uchar i;

  send_cs();
  Write_PT6312(MODE);                //  段位设置
  send_cs();
  Write_PT6312(0x40);                //  设定数据
  send_cs();
  Write_PT6312(0xc0);                //  设定地址
  for (i=0;i<9;i++)  
   {
     Write_PT6312(0x00);             // 传输显示数据低字节
     Write_PT6312(0x00);             // 传输显示数据高字节
   }
  send_cs();
  Write_PT6312(0x80|ON|LIGHT);       // 显示控制
  STB=1;
}

/*-----------------------------------------------------------------------
函数功能: 显示数据
入口参数: 无
出口参数: 无
函数说明:
-----------------------------------------------------------------------*/
void VFD_Display(void)
{
  uchar i;

  send_cs();
  Write_PT6312(0xc0);                // 设定地址
  for (i=0;i<9;i++)  
   {
     Write_PT6312(DP_Cache);      // 传输显示数据低字节
     Write_PT6312(0x00);             // 传输显示数据高字节
   }
  send_cs();
  Write_PT6312(0x80|ON|LIGHT);       // 显示控制
  STB=1;
}

/*-----------------------------------------------------------------------
显示
-----------------------------------------------------------------------*/
void DISP_FREQ(void)
{

  DP_Cache[0] = table_A[8];         // 显缓中存入要显示的数据
  DP_Cache[1] = table_A[7];  
  DP_Cache[2] = table_A[6]+0x80;// 加入小数点
  DP_Cache[3] = table_A[5];
  DP_Cache[4] = table_A[4];  
  DP_Cache[5] = table_A[3]+0x80;
  DP_Cache[6] = table_A[2];
  DP_Cache[7] = table_A[1];  
  DP_Cache[8] = table_A[0];
  VFD_Display();                           // 显示

}

/*-----------------------------------------------------------------------
主程序
-----------------------------------------------------------------------*/
void main (void)
{
  uchar i;

  Delay_ms(200);
  MCU_Init();                            // MCU初始化
  VFD_Init();                            // VFD初始化

  while(1)
   {      
     DISP_FREQ();
     Delay_ms(100);         
   }
}

/*-----------------------------------------------------------------------
MCU初始化函数
-----------------------------------------------------------------------*/
void MCU_Init(void)
{   
  STATUS = 0X00;
  INTCON = 0X00;
  PCLATH = 0X00;
  PORTA  = 0X00;
  PORTB  = 0X00;
  
  CMCON  = 0B00000111;                   // <CM2:CM0>=111(0B00000111=0X07),关掉A口比较器
                             
  TRISA  = 0B00000000;                   // 设置I/O方向(1=INPUT 0=OUTPUT)
  TRISB  = 0B00000000;

  OPTION = 0B00100111;                   // 允许PORTB上拉,预分频器分配给TMR0
                                         // 外部信号上升沿触发,1:256预分频                                    
}

/*-----------------------------------------------------------------------
延时函数
-----------------------------------------------------------------------*/
void Delay_ms(uint i)
{
  uint a,b;
  for(a=i;a>0;a--)
   for(b=110;b>0;b--);
}
 楼主| 发表于 2013-12-16 23:11 | 显示全部楼层
在设计另一个方案,采用变压器方案,初步成功,无任何声音,耗电也比较低。
还要调整变压器灯丝组参数,目前有灯丝电压有点高。
变压器采用ER9.5贴片卧式4+4骨架,体积很小。
QQ截图20131216230915.jpg
VFD变压器方案电路图
QQ截图20131216230554.jpg
发表于 2013-12-17 08:46 | 显示全部楼层



附加选项


本版积分规则参与/回复主题 将此主题同步到: 附加选项





本版积分规则参与/回复主题 将此主题同步到:

我这种和数码管一样的,送段码,不是串口的,管脚多!

我这种和数码管一样的,送段码,不是串口的,管脚多!

是日本的,左边有写着JAPAN

是日本的,左边有写着JAPAN

右侧特写

右侧特写

这是背面的写差型号,没找到相关资料

这是背面的写差型号,没找到相关资料
conew_20131217_082217.jpg 这是 我的VFD屏,不是楼主有没有相关资料啊!















 楼主| 发表于 2013-12-17 12:47 | 显示全部楼层
mjh630 发表于 2013-12-17 08:46
20 秒后保存 保存数据 | 恢复数据    字数检查 | 清除内容    加大编辑框 | 缩小编辑框

...

非通用屏,资料不好找。
发表于 2013-12-19 08:40 | 显示全部楼层
drsh 发表于 2013-12-17 12:47
非通用屏,资料不好找。

那不是等于报废了!
发表于 2014-1-3 23:07 | 显示全部楼层
drsh 发表于 2013-12-16 23:11
在设计另一个方案,采用变压器方案,初步成功,无任何声音,耗电也比较低。
还要调整变压器灯丝组参数,目 ...

这个图是不是高压组的同名端标反了?
发表于 2014-2-27 00:11 | 显示全部楼层
mjh630 发表于 2013-12-19 08:40
那不是等于报废了!

用背面的接點可以判斷的出來喔!! 試看看!! 看看接腳附近應該可以看出來!!
发表于 2014-3-2 16:08 | 显示全部楼层
期待套件

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-22 10:36 , Processed in 0.057331 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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