电脑如何通过串口发送汉字给单片机?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-21
电脑能直接通过串口给单片机发送汉字吗?怎么实现?字符的话可以直接发送,不需要编程吗?新手,谅解!

可以。按内码发送即可。具体内容你可以上网搜索“汉字 内码 GB2312”。
至于普通的半角字符,一般按ASCII码发送即可。具体内容自行搜索“ASCII码表”

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

我估计问题出在中断上~~~电脑传给单片机用的应该是uart吧,是通过中断机制完成的。
首先你所用的缓存不能是char型,应该用static char,防止编译器把你这个变量给优化了。
其次你一定要给12864屏与串口传输的逻辑关系弄好,要知道在单片机刷屏时跳中断是很容易出现乱码的。最好是在上位/超级终端/串口调试助手 发送完数据后带一个数据结尾,单片机收到结尾标识符时暂时关闭所有中断在刷屏。
还有你发送的汉字编码应该是gbk编码(windows貌似默认,主要是一般12864支持的汉字是这个编码的。)
最后要是都不好使,估计你用了不带汉字编码库的12864(当然,一般能显示汉字就不会~~~~)

一个汉字是两个字节,直接给DPTR,或uint整型变量付汉字的话只会取出这个汉字ASCII码的一半(高8位还是低8位忘记了)DPTR或变量的低8位付上,高8位为ffh,所以单片机要判断接收的汉字只能通过取表判断,如果想给DPTR付上正确的汉字ASCII码可以用二进制码的形式:db XX,'字' XX是指令MOV DPTR,#的机器码,也是个16进制数,在程序一开始打上MOV DPTR,#0000H,编译一下,在看一下返汇编,0000前面的数就是了。

你好!
1、添加串口空间
2、编程完成串口初始化
3、发送有效数据
4、单片机接收并分析数据

  • 51单片机,通过串口助手向单片机发送字符串,单片机将字符串逆序发送回计...
    答:像这种发送字符串的,需要有一个字符串结束标志,不能用0作为字符串结束标志了!这里以回车作0xd为结束标志!include <reg51.h> typedef unsigned char uint8;bit flag = 0;uint8 idata buf[30];uint8 ct;void InitUART(void) //串口初始化 9600bps { TMOD = 0x20;SCON = 0x50;TH1 = 0x...
  • 单片机串口通信,首先电脑给单片机发送一个字符串hello,单片机收到后...
    答:include <reg51.h> define LED P0//定义IO口 unsigned char buff[5];//定义字符缓冲区 void InitUART(void)//初始化串口 { TMOD = 0x20;SCON = 0x50;TH1 = 0xFD;TL1 = TH1;PCON = 0x00;EA = 1;ES = 1;TR1 = 1;} void SendOneByte(unsigned char c)//串口发送一个字节 { SBU...
  • pc机与单片机串口通信问题 利用串口通信助手将一个字符串发给单片机...
    答:3.可能你想要的是每次发送多个字节,也就是一个字符串,然后将这个字符串一起发送到PC上。那你应该在串口中断里面设置一个判断,也就是说,中断里面判断到上位机发送的数据结束后,单片机的串口中断程序才设置标志位,然后根据标志位和接收到数据到数量,把所有的数据一次性发送给PC。4.指出你出现异常的...
  • 我的这个是pc和485通信的小程序,通过串口助手发送字符串(如:"Hello...
    答:485串口通信,是半双工的,不能一边收一边发。
  • 51单片机串口通信传输汉字 串口通信怎么传输汉字? 具体怎么做_百度知 ...
    答:汉字在计算机上有统一的编码,两个字节表示一个汉字,其中高字节大于128,以和普通的ASCI码区别 当然如果单片机与单片机之间通讯,你可以自行编码,但工作量比较大
  • 如何实现单片机传输数据给计算机的串口通信?
    答:必须在单片机上编写程序,程序的功能是将从键盘的获取到的数据通过串口发送出去。单片机串口参数(如波特率、数据位、停止位、奇偶校验位等)须与电脑设置一致。
  • C51单片机如何从PC机串口接收字符串?
    答:IP = 0x02; // 设置中断优先级--T0为高优先级,其他低 ET0 = 1; //定时器0中断 ES = 1; //串行接口中断 EA = 1; //系统中断允许 TR0 = 1; //启动定时器0 TR1 = 1;...//串口接收中断处理程序 //发送采用查询处理 void SerialComm(void) interrupt 4 { _pReceive...
  • 如何通过单片机的串口向并口发送信息
    答:pc是用串口与单片机通讯的,然后把接受的信息通过p0转发出去就可以了 首先编写好单片机与电脑的通信协议,然后电脑发送信息给单片机 单片机接受,具体程序是:char i;i=SBUF;P0=i;你也可以直接用 P0=SBUF;把串口接受的信息发送给p0然后作为并口发送出去!还有问题可以在我博客里面留言!谢谢!
  • 如何让电脑串口接收单片机发出的一串阿拉伯数字
    答:确保连接正确并牢固。在单片机和电脑之间进行串口通信之前,需要确保使用相同的串口参数。2、其次,在单片机的代码中,编写相应的程序,将要发送的阿拉伯数字转换为适当的数据格式并通过串口发送出去。3、最后,在电脑端,可以使用编程语言或串口监视器软件来接收串口数据。电脑成功接收到单片机发送的数据后,...
  • 如何用单片机通过串口 让PC机的超级终端显示中文 和刷新
    答:一直停留的方法:比如单片机发送号时间:19:47:30 八个字节,下一次发送前,发送八个退格键(直接发送退格键对应的asic码)换行显示:每次发送完时间后 再发送两字节 0x0D 0x0A (回车符)3.至于通过超级终端设置时间,就是用电脑串口发送给单片机一组数据(一般是多个字节)单片机接收到数据...