大家帮忙研究一下,我想做一块显示板

liuharris 2009-09-18 11:04:17
我有一块板,上面有16*16个小灯组成,现在我想实现通过控制灯的亮和灭在板上有规律显示“一帆风顺”五个字,如下

* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *

上面显示的是个‘一’字。一个*号表示一个小灯,红色的灯表示亮的状态
亮时灯为1,不亮时为0,所以上面的矩阵为

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 //7FH FEH
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 //7FH FEH
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 //00H 00H
因为IO是8位的, 而数组一行有16位,我想把一行的状态看做两个16进制,用一个16*2的数组存放这些16进制数步知道行不行
还有请问我应该如何给数组赋值,能否用循环队列来存放这4个字的数组,让这四个字没隔一定的时间就轮流显示在板上,给我
说一下大概的思路吧,还有想完成这个东西应该要掌握哪些方面的知识!分不够可以加,谢谢
...全文
96 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongpy 2009-09-18
  • 打赏
  • 举报
回复
用二维数组存放“一帆风顺”几个字的字模,然后循环输出到LED。

unsigned char bufs[4][32] = {{0x0,0x0,.../*"一"的字模*/},{0x0,0x0,.../*"帆"的字模*/},
{0x0,0x0,.../*"风"的字模*/},{0x0,0x0,.../*"顺"的字模*/}};

int i;
for( i = 0; i < 4; ++i )
{
//将bufs[i]输出到LED
//延时
}

//也可以在定时中断里完成。
changyawu 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jamesf1982 的回复:]
建议你可以在网上找一些字库,字库里英文是8*16,中文是16*16格式的,这些正好可以和你的lcd对应上。这样可以免掉自己建立字库的麻烦。

如果只是想显示上诉四个字,那可以按照你的思路进行。先设置四个字的数组。每个一段时间轮询一下。
[/Quote]

每个灯用一个位来控制显示亮与灭。

这么简单的计算机初级问题。2进制就解决了
james_hw 2009-09-18
  • 打赏
  • 举报
回复
建议你可以在网上找一些字库,字库里英文是8*16,中文是16*16格式的,这些正好可以和你的lcd对应上。这样可以免掉自己建立字库的麻烦。

如果只是想显示上诉四个字,那可以按照你的思路进行。先设置四个字的数组。每个一段时间轮询一下。
whg01 2009-09-18
  • 打赏
  • 举报
回复
用16×2的byte数组可以,不过用short bitvalue[16]更方便点。
如果只显示这4个字,只需要把4个字的点阵定义成const数据就可以了。
如果要显示很多汉字,那么你需要先制作相关汉字的点阵信息,可以从Windows中提取。然后或者制作成文件,或者制作成const数组,编译在程序中。
每隔一定时间就轮流显示,看你有没有操作系统了。
最简单的做法是用一个 for(i=0;i<1000000;i++);来做延时。
whg01 2009-09-18
  • 打赏
  • 举报
回复
还有不明白的给我发站内信。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧