如何在数码管上显示汉字(传输汉字信息到单片机,控制汉字显示)(100分)

Y

yxiner

Unregistered / Unconfirmed
GUEST, unregistred user!
我找人做一个电子显示屏,在屏上显示汉字,文字内容由计算机送入。我的思路是:
在计算机上建立一显示内容的文本文件,然后把文本文件中的每个汉字转成点阵信息
通过COM串口通信把每个汉字的点阵信息传输到单片机中,由单片机编程控制点阵信息
形成每个字的扫描信号,在电子数码管上显示。我不知我的思路是否正确,如果可行,
如何把汉字转化为点阵信息送到单片机内,请高手帮助点化,在下不胜感激!
 
你在哪个地方啊?深圳、广州市这些东西电子市场满街都是。产品已经多如牛毛了。
 
找DOS下的16X16汉字字库。
每个汉字由 32 个节点表示。
 
我想知道16X16汉字点阵的获取方式
 
同意Chenlili的看法。外面这种现成的电子显示屏多的是,用串口直接发送控制命令即可显示汉字,使用非常简单。以下附上用户手册一份,请参考:
--------------------------------------------------------------------------------------
条 屏 控 制 系 统 用 户 手 册 (版本1.20a)

一、系统文件说明

/HZK ------------ 汉字、ASC字符点阵字库目录
/DB ------------ 数据库目录
ZMD_A.EXE ------------ 系统执行文件
ZMD.CFG ------------ 系统配置文件
USER.TXT ------------ 用户名文件
README.TXT ------------ 本文


二、系统安装

㈠ 系统运行环境

● 386 以上 PC 机,带 VGA 显示卡,至少一个串行口;
● DOS 操作系统;
● 至少 300K 空余的常规内存。


三、系统运行

⒈ 执行系统文件"ZMD_A.EXE"即可。

⒉ 功能键说明:
[ ALT+X ] -- 退出
[ ALT+S ] -- 当前文件存盘
[ ALT+B ] -- 发送
[ ALT+P ] -- 改变发送端口
[ ALT+C ] -- 修改配置
[ ESC ] -- 废弃当前文件的修改
[ CTRL+PAGEUP ] -- 编辑上一组
[ CTRL+PAGEDOWN ] -- 编辑下一组
* [ CTRL+B ] -- 定义当前行为块, 光标向上一行
* [ CTRL+F ] -- 定义当前行为块, 光标向下一行
[ CTRL+V ] -- 将定义的块插入当前行
[ CTRL+Y ] -- 删除当前行
[ CTRL+N ] -- 插入一空行
[ F5 ] -- 文本居左
[ F6 ] -- 文本居右
[ F7 ] -- 文本居中
** [ F9 ] -- 文本向左一字节
** [ F10] -- 文本向右一字节
[ → ] -- 向右一字节
[ ← ] -- 向左一字节
[ ↑ ] -- 向上一行
[ ↓ ] -- 向下一行
[ PAGEUP ] -- 上一页
[ PAGEDOWN ] -- 下一页
[ INSERT ] -- 插入/改写
[ DELETE ] -- 删除一字节
[ HOME ] -- 行头
[ END ] -- 行尾

* -- 重复键
** -- 当编辑窗口宽度小于条屏宽度时有用(编辑窗口宽度=25汉字=50字节)

四、编辑说明:

1. '_'字符开头为命令行, 否则为显示行

2. '_'命令行 /f命令号 /c显示颜色 /p参数 /t延迟时间

如:天雨路滑小心驾驶
_/f1 /c0 /p3 /t3

立即显示"天雨路滑小心驾驶", 颜色为黑底红字, 延迟3秒

/c显示颜色 -- 对功能39不起作用
/p参数 -- 对功能0、1、21、22、38不起作用


五、功能说明:

功能 0 : 清屏
功能 1 : 立即显示
功能 2 : 立即显示后上移消失
功能 3 : 立即显示后下移消失
功能 4 : 立即显示后左移消失
功能 5 : 立即显示后闪烁
功能 6 : 立即显示后中间向左右消失
功能 7 : 立即显示后中间向上下消失
功能 8 : 立即显示后左右向中间消失
功能 9 : 立即显示后上下向中间消失
功能 10 : 立即显示后自上而下消失
功能 11 : 立即显示后自下而上消失
功能 12 : 立即显示后自左向右消失
功能 13 : 立即显示后逐字旋转后恢复
功能 14 : 立即显示后逐字消失
功能 15 : 立即显示后逐字上下向中间消失
功能 16 : 立即显示后逐字中间向上下消失
功能 17 : 立即显示后逐字左右向中间消失
功能 18 : 立即显示后逐字中间向左右消失
功能 19 : 立即显示后逐字自上而下消失
功能 20 : 立即显示后逐字自下而上消失
功能 21 : 宽体显示
功能 22 : 长串左移
功能 23 : 下移出字
功能 24 : 上移出字
功能 25 : 逐行出字
功能 26 : 逐列出字
功能 27 : 中间向上下出字
功能 28 : 上下向中间出字
功能 29 : 左右向中间出字
功能 30 : 中间向左右出字
功能 31 : 逐字逐行出字
功能 32 : 逐字上下向中间出字
功能 33 : 逐字左右向中间出字
功能 34 : 逐字中间向上下出字
功能 35 : 逐字中间向左右出字
功能 36 : 逐字上移出字
功能 37 : 逐字下移出字
功能 38 : 左移出字
功能 39 : 显示变色
功能 40 : 闪反色
功能 41 : 抛字

注意: 带'*'功能不可用


六、颜色定义:

0--黑底红字 1--黑底绿字 2--黑底黄字
3--红底黑字 4--绿底黑字 5--黄底黑字
6--红底绿字 7--绿底红字 8--彩色

注意: 当显示屏为红色时, 不可显示绿色、黄色。
当显示屏为绿色时, 不可显示红色、黄色。


七、故障对策

⒈ 系统显示“ 内存不足 ”并退出运行。
A: 检测工作站的空余常规内存是否大于 300K 。

⒉ 系统显示“ 打不开文件 XXX' ”并退出运行。
A: 请检查配置文件所设置的路径上是否存在此文件

⒊ 系统正常运行,但条屏只显示“欢迎光临”。
A: 请检查通讯线路联接是否正确可靠。
B: 条屏控制板的地址设置是否与配置文件一致。
C: 串行口的连接是否与配置文件一致。

⒋ 系统正常运行,但条屏无任何显示。
A: 电源是否打开。
B: 换'5V'开关电源。


【附录一】 配置说明

1、显示类型 0~2( 0-16*16 1-16*32 2-32*32 )
2、控板类型 1~3( 1-8098_32 2-8098_128 3-8031 )
3、控板地址 0~15( 控板类型=1时, 控板地址不起作用 )
( 控板类型=0、2,控板地址0~254, 255为公共地址 )
( 控板类型=3时, 控板地址0~14, 15为公共地址 )
4、长 度 0~64( 汉字/单位 )
5、彩 色 是/否

修改配置时用左右键修改, [ ESC ] 返回。


【附录二】
1. 当控板类型=0 时, 命令号如下:

65 -- A -- 目标页立即显示
66 -- B -- 当前屏逐列左移
67 -- C -- 当前屏闪烁
69 -- E -- 清屏
70 -- F -- 目标页自左向右逐个显示
73 -- I -- 显示宽体字
74 -- J -- 目标页自上而下逐行出字
75 -- K -- 自左向右逐字抛入
76 -- L -- 当前屏逐列左移
77 -- M -- 目标页自左向右逐列显示
78 -- N -- 当前屏上移
81 -- Q -- 目标页逐字逐行出字
82 -- R -- 目标页上移
83 -- S -- 当前屏下移
84 -- T -- 目标页下移进入
88 -- X -- 目标页左移

[ 注 ]
1. 当控板类型=0 时, 颜色号如下:
0 - 黑底黄字
1 - 绿底红字
2 - 黑底红字
4 - 红底绿字
5 - 黄底黑字
6 - 红底黑字
8 - 黑底绿字
9 - 绿底黑字

2. /p参数有用的功能号70、74、77、78、81、82、83、84

3. 当使用67号功能时,参数/pn为闪烁次数*2,
如:_f67/p6/t3
解释:当前屏闪烁3次后停留3秒


【附录三】
1. 当控板类型=2 时, 命令号如下:

65 -- A -- 目标页立即显示
66 -- B -- 当前屏逐列左移
67 -- C -- 当前屏闪烁
68 -- D -- 目标页显示并变色
69 -- E -- 清屏
70 -- F -- 目标页自左向右逐个显示
* 71 -- G -- 彩色字串
73 -- I -- 显示宽体字
74 -- J -- 目标页自上而下逐行出字
75 -- K -- 自左向右逐字抛入
76 -- L -- 当前屏逐列左移
77 -- M -- 目标页自左向右逐列显示
78 -- N -- 当前屏上移
* 79 -- O -- 背景方块循环移动
80 -- P -- 当前屏变色三次
81 -- Q -- 目标页逐字逐行出字
82 -- R -- 目标页上移
83 -- S -- 当前屏下移
84 -- T -- 目标页下移进入
* 85 -- U -- 逐列显示背景方块
87 -- W -- 当前屏闪反色
88 -- X -- 目标页左移

[ 注 ]
* 不可用
另: 有些功能在单色下不可用

2. 当控板类型=2 时, 颜色号如下:
0 - 黑底黄字
1 - 绿底红字
2 - 黑底红字
4 - 红底绿字
5 - 黄底黑字
6 - 红底黑字
8 - 黑底绿字
9 - 绿底黑字

 
microtomato:
你对条屏很熟啊!(me十年前曾干这个。)
应当有一定的硬件基础啊,那你为何换个内存条都不会?
(http://www.delphibbs.com/delphibbs/dispq.asp?lid=1514016)
 
1、根据汉字内码得到汉字的区位码
2、根据区位码计算出该字在字库中的起始位置
16点阵:32*((区码-1)*94+位码))
24点阵:72*((区码-1)*94+位码))
3、根据2中得到的数据从字库中读出该字点阵信息(16点阵的为32字节,24点阵的为72字节)
4、将读出的数据打包(加入控制信息)
5、发送给单片机

声明:我未做过外面那种电子广告版,但我在项目中做过同单片机的通讯及控制。
多年前还在DOS下玩过汉字显示,生成小字库等东东,所以还有点印象。
如有其它问题:可上QQ找我,584740(申请加入请注明 'DFW' )。
 
多人接受答案了。
 
顶部