如何通过单片机串口发送一个汉字

我只能通过串口发送或者接收数字或字母,汉字则不能显示,如何才能发送一个汉字呢,请大家指教,我愿意送上所有的分数
程序如下:
#include <reg51.h>
unsigned char *str="123456789xyz";

//初始化串行口
void csh()
{
SCON=0x40; //设定串口工作方式1
TMOD=0x20; //用定时器1
TH1=0xf4; //波特率为2400
TL1=0xf4;
ET1=0;
TR1=1;
PCON=0x00;//令SMOD=0
EA=0;
ES=0;
}
void send_bite(unsigned char txd) //发送一个字节
{
SBUF=txd;
while(!TI);
TI=0;
}
void send_data() //发送字符串
{ unsigned int i,a;
for(i=0;i<13;i++)
{
send_bite(*str);
str++;
for(a=0;a<30000;a++);
}
}
void main() //主程序
{
unsigned int i,a;
csh();
send_data();
while(1)
{}
}
我这几天上网找过,一般都是发送一个字符的,看了些资料知道应该发两个字节,不过我那个程序是发了一个字节后就会转到字符串的下一个字符去,就相当于转到数组的下个元素,好象没有机会发送两个字节,大家可不可以写个简单的程序让我看下啊,最好仿真通过的,谢谢

我只能通过串口发送或者接收数字或字母,汉字则不能显示,如何才能发送一个汉字呢,
---------------------------------
从程序看,发送汉字是可以的,估计是你的单片机系统不能显示汉字。
能说一下你是怎么显示的吗?
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-08-13
在电脑这边生成汉字的矩阵
然后发送矩阵过去显示
这样子就不用在单片机那里储存汉字的点阵了
winTC有生成汉字点阵的小工具
第2个回答  2009-08-13
发送汉字的编码吧,只要2个字节。
汉字的每个字节编码必须大于127.
第3个回答  2009-08-13
发汉字就是发两个字节,关键看你的PC端软件会不会译码

如何通过单片机串口发送一个汉字
我只能通过串口发送或者接收数字或字母,汉字则不能显示,如何才能发送一个汉字呢,--- 从程序看,发送汉字是可以的,估计是你的单片机系统不能显示汉字。能说一下你是怎么显示的吗?

51单片机串口通信怎么传递中文汉字,现在能够传输数字,英文字符?_百度知...
汉字的话就是传送的GB2312编码,即传说的区位码,一个编码是两个字节,每个字节的值都是大于0x80的,这样跟ASCII码分开。当把编码转换为对应的汉字的时候,就需要在汉字库中根据编码来计算汉字的位置了。

如何用单片机通过串口 让PC机的超级终端显示中文 和刷新
一个汉字是由两个字节组成,定义一个字符串数组,初始换汉字,用串口逐个发送到计算机。unsigned char a[10]="朋友你好吗";\/\/5个汉字需要10字节 在主循环中,发送此数组。unsigned char i;for(i=0,i<10,i++){ UartTransmit(a[i]);\/\/UartTransmit()函数是你的发送函数。} 2.刷新?怎么刷...

电脑如何通过串口发送汉字给单片机?
首先你所用的缓存不能是char型,应该用static char,防止编译器把你这个变量给优化了。其次你一定要给12864屏与串口传输的逻辑关系弄好,要知道在单片机刷屏时跳中断是很容易出现乱码的。最好是在上位\/超级终端\/串口调试助手 发送完数据后带一个数据结尾,单片机收到结尾标识符时暂时关闭所有中断在刷屏。...

51单片机串口通信传输汉字 串口通信怎么传输汉字? 具体怎么做_百度知 ...
汉字在计算机上有统一的编码,两个字节表示一个汉字,其中高字节大于128,以和普通的ASCI码区别 当然如果单片机与单片机之间通讯,你可以自行编码,但工作量比较大

串口232是怎样处理汉字?
如果您用VB写,您需要MSComm控件传递数据。至于如何用MSComm控件传输数据以及AT89S52如何通过MAX232与串口物理连接,网上有许多例子您可以参考。您需要用VB获得一个字库,具体方法是在一个PictureBox控件的0坐标打印12pt的宋体字,然后您用PictureBox的point函数获得16×16点范围内的点阵数据。以32个字节表示(...

单片机怎么样开发程序让192*32点阵屏显示汉字
1、显示驱动,这部分程序要实现往显示器上传输数据,并能正确显示出来;2、汉字点阵解析,通常我们存储的汉字是它们的内码,我们得通过标准汉字库把这些个汉字内码一一的解析出它们对应的点阵,然后再送给显示器。当然也可直接存储汉字的点阵,这种用法是固定显那么几个汉字。3、通讯程序,确定的好通信协议...

怎么通过单片机将汉字字库存放到外部的FLASH中
这个可以通过串口通讯,通过串口把汉字字库一桢一桢数据发送倒单片机,单片机把接收倒的数据在一桢一桢写入外部FLASH里面,希望我的回答对你有帮助!

单片机如何识别串口的数据是中文还是字母?
严格来讲如果串口数据只有中文和字母,是可以识别的。对于字母,以是ASCII码发送\/或接收的,那么字母的二进制数是小于80H的,即小于 0x80。而汉字在电脑中是以内码处理的,每一个汉字是用两个字节的内码表示的,而内码是大于80H的,即大于 0x80。所以,可以根据数据在大小来识别。你这里问的是单片机...

单片机串口死机,发送一个命令进去执行一次就没反应了,必须重启单片机,这...
3、在没有FIFO的单片机里,一般串口收\/发完成1个字节会中断一次,看你程序貌似是发完一串字符才置位TI,这样用当然是不对滴。正确的方法是发完一个字节中断后再发下一个字节(有点烦是吧^_^); 试试下面的方式调试:unsigned char s[]={0,1,2,3,4,5,6,7,8,9};unsigned char len =...

相似回答