一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

搜索
楼主: reiyawea

[其他综合] 用ATMEGA32高效驱动VFD12864(GP1211)

[复制链接]
 楼主| 发表于 2013-12-13 19:49 | 显示全部楼层
ldwlj 发表于 2013-12-12 11:32
牛,就开始atmega32了,老唐以前的老版本可用么?

我就是在较早的一个版本的调试的,丝印是v3.0,无RTC且灯丝需飞线的那个。后来在一个仅有ds1302的版本上测试也能使用。
回复

使用道具 举报

发表于 2013-12-13 20:04 | 显示全部楼层
reiyawea 发表于 2013-12-13 19:49
我就是在较早的一个版本的调试的,丝印是v3.0,无RTC且灯丝需飞线的那个。后来在一个仅有ds1302的版本上 ...

好,我试试~~~
回复

使用道具 举报

 楼主| 发表于 2013-12-13 20:24 | 显示全部楼层
choi 发表于 2013-12-13 12:06
能否用c51也寫一個      沒找到範例學習

请咨询此贴楼主:https://www.yleee.com.cn/forum.php?mod=viewthread&tid=14519
虽然楼主没有给出任何资料,但至少说明8051驱动的可行性。
其实我更熟悉51,但目前还没有基于51的驱动板,所以只能强迫自己学了AVR。
但我个人认为用51模拟KS0108的可行性不大,做个台历或许可以。
回复

使用道具 举报

发表于 2013-12-13 21:11 | 显示全部楼层
本帖最后由 jimmy_xt 于 2013-12-13 21:15 编辑
reiyawea 发表于 2013-12-13 19:47
使用的是顺序发送,在发送期间先取好下一字节,一完成就立即发送下一个。之前曾使用发送完后取下一个的方 ...

嗯,那么看来我原来的程序没必要改了。(不对应该是我优化的程序,这个转换程序的框架是用别人的。)
我用最传统的方式,就是算出来就发的方式,扫描一个栅平均需要49us(测试结果)。
我专门反汇编了生成的程序,大概算了一下,每生成一个需要发送的字节,消耗的时钟周期最长28个,最短20个,加上各种控制,最后计算出也是约49us。
这是其中生成某个byte数据的汇编程序,需要23个时钟周期完成(这里sbrc按可能消耗的最长时间即3周期计算)
  1. 14e6:        08 81               ld        r16, Y
  2. 14e8:        02 fb               bst        r16, 2
  3. 14ea:        11 27               eor        r17, r17
  4. 14ec:        10 f9               bld        r17, 0
  5. 14ee:        fc 90               ld        r15, X
  6. 14f0:        f3 fc               sbrc        r15, 3
  7. 14f2:        14 60               ori        r17, 0x04        ; 4
  8. 14f4:        f5 01               movw        r30, r10
  9. 14f6:        f0 80               ld        r15, Z
  10. 14f8:        f3 fc               sbrc        r15, 3
  11. 14fa:        10 61               ori        r17, 0x10        ; 16
  12. 14fc:        03 fd               sbrc        r16, 3
  13. 14fe:        10 64               ori        r17, 0x40        ; 64
  14. 1500:        1f b9               out        0x0f, r17        ; 15
复制代码
  1. tmp = 0;
  2. if((a_buf[i][base_a + 2] & 0x04) == 0x04)
  3. {
  4.         tmp = 0x01;
  5. }
  6. if((a_buf[i][base_a + 0] & 0x08) == 0x08)
  7. {
  8.         tmp |= 0x04;
  9. }
  10. if((a_buf[i][base_a + 1] & 0x08) == 0x08)
  11. {
  12.         tmp |= 0x10;
  13. }
  14. if((a_buf[i][base_a + 2] & 0x08) == 0x08)
  15. {
  16.         tmp |= 0x40;
  17. spi_send_byte(tmp);
复制代码
下面是对应的C语言程序。代码太长没必要全贴出,仅仅举例。

还是LZ的方式更加节省时间,读取6个字节,并把它们分离成8个所用的计算量肯定比这样小得多。


回复

使用道具 举报

 楼主| 发表于 2013-12-14 22:33 | 显示全部楼层
choi 发表于 2013-12-13 12:06
能否用c51也寫一個      沒找到範例學習

找到一篇比较好理解的教程,希望能帮到你。
GP1211 拆机板51驱动方法及5v改造.part1.rar (1.91 MB, 下载次数: 140) GP1211 拆机板51驱动方法及5v改造.part2.rar (1.91 MB, 下载次数: 108)
GP1211 拆机板51驱动方法及5v改造.part3.rar (1.91 MB, 下载次数: 126)
GP1211 拆机板51驱动方法及5v改造.part4.rar (1.36 MB, 下载次数: 138)

回复

使用道具 举报

 楼主| 发表于 2013-12-14 22:33 | 显示全部楼层

怎么,想挖人?
回复

使用道具 举报

发表于 2013-12-17 15:52 | 显示全部楼层
求楼主的HEX文件。。
回复

使用道具 举报

发表于 2013-12-19 09:58 | 显示全部楼层
reiyawea 发表于 2013-12-14 22:33
找到一篇比较好理解的教程,希望能帮到你。

慘了 不能下載附件   能否轉發到我的郵箱    choi@cobyhk.net
回复

使用道具 举报

发表于 2014-3-16 18:54 | 显示全部楼层
没抢到KA的V7实在有点遗憾了!
回复

使用道具 举报

发表于 2014-3-18 11:31 | 显示全部楼层
学习下,期待这个屏能直接当并口68时序的12864用
回复

使用道具 举报

本版积分规则

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

GMT+8, 2025-8-19 00:07 , Processed in 0.038317 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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