㈠ 电脑能直接通过串口给单片机发送汉字吗怎么实现字符的话可以直接发送,不需要编程吗新手,谅解!
可以。按内码发送即可。具体内容你可以上网搜索“汉字 内码 GB2312”。
至于普通的半角字符,一般按ASCII码发送即可。具体内容自行搜索“ASCII码表”
㈡ 51单片机,通过串口助手向单片机发送字符串,单片机将字符串逆序发送回计算机,用C语言编程
像这种发送字符串的,需要有一个字符串结束标志,不能用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 = 0xFD;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void Send(uint8 c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void)
{
char j;
InitUART();
while(1)
{
if(flag) //是否接收到回车 字符串发送完
{
flag = 0;
for(j = ct ; j > 0 ; j--)
{
Send(buf[j-1]);
}
}
}
}
void UARTInterrupt(void) interrupt 4
{
static uint8 i = 0;
if(RI)
{
RI = 0;
buf[i++] = SBUF;
if(SBUF == 0x0d) //接受到回车
{
ct = i-1 ;
flag = 1;
i = 0;
}
}
else
TI = 0;
}
仿真结果
程序作为参考 希望 你自己能理解程序!只有自己掌握了才能很好地用!
㈢ 编写串口通信程序,让PC机发送一系列字符串(自己随便定义)给单片机
定义一个变量
int
的
接收中断到来的时候,变量清零
在单片机的接收中断在的一个接收周期内,连续判断A的出现,出现一次变量加一
当接收中断完成后,发送变量的值到电脑,
这样就完成字符A,数量的统计
㈣ pc接收单片机串口发送的字符串怎么写
1、单片机串口不管从哪接收数据都是遵循串口协议的。字符串就是一个挨一个的askii码,中间没有加任何东西。2、不发字符串结束标志。3、回车符可以发送,但具体发不发送看你程序了。
㈤ 电脑如何通过串口发送汉字给单片机
我估计问题出在中断上~~~电脑传给单片机用的应该是uart吧,是通过中断机制完成的。
首先你所用的缓存不能是char型,应该用static char,防止编译器把你这个变量给优化了。
其次你一定要给12864屏与串口传输的逻辑关系弄好,要知道在单片机刷屏时跳中断是很容易出现乱码的。最好是在上位/超级终端/串口调试助手 发送完数据后带一个数据结尾,单片机收到结尾标识符时暂时关闭所有中断在刷屏。
还有你发送的汉字编码应该是gbk编码(windows貌似默认,主要是一般12864支持的汉字是这个编码的。)
最后要是都不好使,估计你用了不带汉字编码库的12864(当然,一般能显示汉字就不会~~~~)
㈥ 电脑怎么将数据传给单片机啊(在线等)
把你的单片机串口初始化一下,定义好波特率 工作模式,然后把单片机串口接收的数据传送给显示屏就可以了! 计算机那边使用串口助手,打开相应的串口,波特率要和单片机的相同,这样就可以了! 用串口助手发送数据,单片机接收显示。 你需要串口的连接线。如果单片机的板子上带有232 接口的话直接连接 否则还需要一个232口和max232
㈦ 利用PC机串口调试程序发送字符给单片机,单片机将接收到的信息回送到电脑进行显示。
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVTMOD,#20H
MOVTH1,#0FDH
MOVTL1,#0FDH
MOVSCON,#50H
SETBTR1
LOOP:
JNBRI,$
CLRRI
MOVA,SBUF
MOVSBUF,A
JNBTI,$
CLRTI
SJMPLOOP
END