打印

用51普通io模拟串口的问题

[复制链接]
1887|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
HDEYY|  楼主 | 2013-12-10 22:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
wdmhzh| | 2013-12-10 22:24 | 只看该作者
可以看看国标码

使用特权

评论回复
板凳
dirtwillfly| | 2013-12-10 22:28 | 只看该作者
楼主应该先了解下汉字的编码

使用特权

评论回复
地板
huangxz| | 2013-12-10 22:51 | 只看该作者
要同步的,两个字节位置错了肯定会出乱码

使用特权

评论回复
5
ningling_21| | 2013-12-10 23:55 | 只看该作者
救火车曾写过一个模拟串口的程序,可做参考。。。

使用特权

评论回复
6
HDEYY|  楼主 | 2013-12-11 19:27 | 只看该作者
ningling_21 发表于 2013-12-10 23:55
救火车曾写过一个模拟串口的程序,可做参考。。。

什么救火车?

使用特权

评论回复
7
HDEYY|  楼主 | 2013-12-11 19:28 | 只看该作者
wdmhzh 发表于 2013-12-10 22:24
可以看看国标码

可否解释下

使用特权

评论回复
8
yangfan19641964| | 2013-12-12 13:09 | 只看该作者
你问的问题与模拟串口无关。

可显示字符的ASCII的范围为0x20~0x7f,最高位为0。而一个汉字的两个内码的最高位都为1。由此可以判断是字符还是汉字。
根据操作系统的不同汉字内码的范围略有区别。UCDOS的范围为0xa0~0xff。一般为:0xa1~0xff(实际上没有用满到0xff,后面有几个是没有用到的)。
收到两个内码后,就可以算出该汉字在字库中的起始位置:
                        c1 -= 0xa1;
                        c2 -= 0xa1;
                        fseek(cclib16, ((long)c1*94L+(long)c2)*32L, SEEK_SET);

至于说到底是第一个还是第二个,这只有从你的通讯程序中来保证。上面说得好,不同步就会错位。

使用特权

评论回复
9
ningling_21| | 2013-12-13 10:06 | 只看该作者
HDEYY 发表于 2013-12-11 19:27
什么救火车?

就是本版的版主之一...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

1

粉丝