vfp 通过串口如何向LED显示屏发送汉字

vfp 通过串口如何向LED显示屏发送汉字,第1张

我没条件测试,需要一条COM对接线
试试:
在表单中添加 mscomm 控件,设置好传输参数。Name 设为 oleCOM1
在表单中添加按钮,在按钮 Click 中写入以下代码:
IF thisformoleCOM1OBJECTPortOpen = F
thisformoleCOM1OBJECTPortOpen = T
ENDIF
thisformoleCOM1OBJECToutput = "abcd "
要提醒的是,如果输出汉字,可能会出现问题,你确实要试试才知道

电脑和单片机的串口都无法收发任何文字,它们只能收发高低电平(高电平为1,低电平为0),当收到8位高低电平后便可以组成了一个字节,显示一个汉字要2个字节。当单片机正确地接收到2个字节后,通过硬件端口将数据写入12864,便可以显示出来。以上只能简单说明一下,实际实用时还要考虑到12864的硬件接口、和软件协议等等。
如果你会单片机,我建议你这么做:先写一个程序,用单片机显示一句固定的文字,显示的内容从ROM里面读取。然后再调试通信,当通信成功后将接收到的数据复制到显示所占的地址上便可,这样可以节省很多时间。
另外我可以给你提供一些例程,要给分才好,呵呵

不知道接收方是PC还是单片机呢
其实不管你发送的是数字/字母,还是汉字,传送的都是字符的编码,如用串口调试助手发字母A,用16进制查看是41,发送汉字:我是谁,得到的编码是:CE D2 CA C7 CB AD; 每个汉字用两字节,而英文字符用单字节编码; 这便是字符的机内码,收到编码时系统会自动按编码查找对应的字符; 当然双方要有相对应该的字库,所以,如果接收方为PC,则直接发即可,PC系统里的字库都是标准的
如果接收方是单片机就要将字库嵌入了,不过一般作法是只嵌入用到的字, 如果要用LCD屏显示则还要嵌入相应字符的点阵字模

如果送过来的是汉字点阵(32字节),对应一个 16x16 点阵,再对应到 LED 点阵上。
把 16x16 点阵填充到相应的LED 存储器中,点亮即可。
如果送过来的是汉字代码(32字节),则生成一个字库流水码,到字库中读取点阵数据,再填到相应的LED 存储器中,点亮即可。

汉字的话就是传送的GB2312编码,即传说的区位码,一个编码是两个字节,每个字节的值都是大于0x80的,这样跟ASCII码分开。当把编码转换为对应的汉字的时候,就需要在汉字库中根据编码来计算汉字的位置了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13375739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存