一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 6465|回复: 10

[其他综合] 用PIC18F45K20驱动VFD12864(GP1211)

[复制链接]
发表于 2012-10-6 17:10 | 显示全部楼层 |阅读模式

PIC18F45K20驱动VFD12864GP1211

一、与单片机连接是参照“GP1211 拆机板51驱动方法”连接的。

二、单片机使用了内部8M振荡器PLL*4,指令时钟32M。

三、显示缓冲区设置成我比较能理解的disp_buffer[64][16](64行128列,左上角0,0)

四、生成点阵数据(48字节)没有使用下标访问数组,用指针访问,效率有所提高,用SPI传送,400us中断1次,空闲150us。看程序有详细注解,供有用者参考。

五、顺便测量了一下电流,原版用隔离变压器推挽驱动,波形接近理想的正弦波,干扰较小(原版上有中周、音频IC JRC2073D,肯定带调频接收),电流12V200MA。用MP2307,5V也可做到200MA,但波形是方波,干扰较大,不做高灵敏度的AD采样问题不大。有空准备做块PCB来驱动。

DSC00454.JPG

与PIC18F45K20单片机连接

DSC00461.JPG

4个角显示4个点

DSC00462.JPG

显示随机点

DSC00463.JPG

显示框

DSC00464.JPG

DSC00458.JPG

PIC18F45K20_VFD12864.rar

11.19 KB, 下载次数: 3956, 下载积分: 一乐金币 -1

发表于 2012-10-6 18:21 | 显示全部楼层
先顶一个。
据说这本来是装在热水器还是净水器上的,怎么会带调频收音呢?应该是语音提示用的,中周大概是耦合音频信号吧。
回复

使用道具 举报

 楼主| 发表于 2012-10-6 18:54 | 显示全部楼层
音频耦合用电容就可,周中耦合在100K以上
回复

使用道具 举报

发表于 2012-10-7 11:22 | 显示全部楼层
楼主你好,我也在玩这块屏。用过“GP1211 拆机板51驱动方法”,正常显示,就是觉得有点慢。看到你的贴子,也想试下你的程序,不过我只会51,程序我修改了一下,下载到51上,显示不正常,屏幕上都是一排亮点扫过。楼主有空能否看一下附件,谢谢。
VFD_12864_DISP.rar (3.75 KB, 下载次数: 2968)
回复

使用道具 举报

 楼主| 发表于 2012-10-7 22:46 | 显示全部楼层
估计是SPI的问题,我没有51的环境,建议软仿真:1、在栅极扫描中断里设一个断点,看看是否是400US左右中断1次,2、我在SPI传送上没有加延时同时也没有调用子程序就是想尽量快(调用子程序要进堆栈),SPI传送是硬件完成的,SPI太快VFD受不了(手册上最大5M)太慢影响速度同时第一个数据还未传送完第二个数据又来必然出错。3、试试下面的程序先点亮1个点:
把中断里的switch(Scan)                        
      {
       .
       .
       }
注解起来,不在中断里传送数据,在主程序中加上
for(i=1;i<49;++i)
{
   if(i==1) SSPBUF=0b10000000;  //显示1A
    else SSPBUF=0b00000000;
    DelayMS(1);//可多延时一下,正常后逐渐减小就可以知道两次SPI的最小时间
}
如果能在左上角显示1个点,基本就没有问题了
回复

使用道具 举报

发表于 2012-10-8 00:17 | 显示全部楼层
估计是SPI的问题,我没有51的环境,建议软仿真:1、在栅极扫描中断里设一个断点,看看是否是400US左右中断1 ...
lyl 发表于 2012-10-7 22:46 https://www.yleee.com.cn/images/common/back.gif



谢谢,我再试试。
回复

使用道具 举报

发表于 2013-4-13 09:55 | 显示全部楼层
樓上程序調通沒有
回复

使用道具 举报

发表于 2013-4-13 11:24 | 显示全部楼层
choi 发表于 2013-4-13 09:55 static/image/common/back.gif
樓上程序調通沒有

没有。已经定了KA版v7,51还是太慢,没有使用价值。
回复

使用道具 举报

发表于 2013-4-13 13:26 | 显示全部楼层
我也剛買了這屏   還沒弄懂發送的原理    能否跟我說說  例如我要點亮屏左上角第一點   數據應如何發送   我只略懂一點c51
回复

使用道具 举报

发表于 2013-4-13 13:37 | 显示全部楼层
其实,编写这个驱动的人一直就有个误区:
    显示时每次发送数据都要处理数据,每次都无谓的处理相同的数据,所以显示才占用了大量的CPU时间,造成高刷新率很困难。

其实,只要在修改内容时预先排列,在显示扫描时就只要单纯的发送数据了,扫描占用时间显著减少,可以轻松实现高很多倍的帧率。

我早前就用6T的普通51(不是1T的)轻松实现75Hz刷新,CPU还相当轻松,完全不影响做其他的事情。只是看讨论热潮过了,也就懒得发布了。
回复

使用道具 举报

本版积分规则

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

GMT+8, 2025-11-2 04:08 , Processed in 0.035579 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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