串口232是怎样处理汉字?

最近想玩串口控制LED,但不懂VB和AT89S52他们之间是怎样的处理过程!那位高人指点一二???... 最近想玩串口控制LED,但不懂VB和AT89S52他们之间是怎样的处理过程!那位高人指点一二??? 展开
 我来答
百度网友9bc4eae
2008-07-21 · TA获得超过1394个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:107万
展开全部
这个问题比较复杂,我只能大概告诉您怎么实现。

1、汉字显示需要LED点阵,通常是16×16点阵显示一个汉字(大约相当于Word里的12pt 宋体字)。

2、LED显示的是点阵而不是汉字。AT89S52提供给点阵LED点阵扫描信号。简单的办法是:通过两个74LS154并列产生两个16×16点阵的场扫描信号。如果您想控制更多,则需要用一个上级74LS154选择一组下级74LS154(最多16个)

3、汉字在机内是以内码表示的。如果您想根据汉字内码获得点阵,则需要一个点阵字库。点阵字库容量很大(对于单片机而言),如果您想制作在单片机上,只能用外部ROM。简单的解决办法是由PC直接发给单片机点阵。

简单的实现方法是这样的:

AT89S52通过一个端口的四位给74LS154提供扫描信号,依次选择16列LED扫描线。
AT89S52通过另外两个端口的16位给LED扫描线的一行提供一列的16个LED的亮度信号。16列依次按点阵点亮,由于速度很快,眼睛感觉是同时亮起。

至于上位机那边,我建议您用QB写相对方便一些。
如果您用VB写,您需要MSComm控件传递数据。至于如何用MSComm控件传输数据以及AT89S52如何通过MAX232与串口物理连接,网上有许多例子您可以参考。

您需要用VB获得一个字库,具体方法是在一个PictureBox控件的0坐标打印12pt的宋体字,然后您用PictureBox的point函数获得16×16点范围内的点阵数据。以32个字节表示(每bit为一点的亮度)保存为字库(您需要学习如何用二进制文件来存储这个数组)。
如果您觉得使用字库麻烦,您可以用上述方法直接取得点阵,将那32个字节的点阵数据传给单片机器。

以上就是大概的方法,由于这个问题牵扯的东西实在太多。我没法给您具体的代码和图纸。希望上面这点东西能对您有帮助。祝您成功。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式