导航:首页 > 操作系统 > 单片机接收字符串程序

单片机接收字符串程序

发布时间:2023-08-31 09:03:48

1. 51单片机串口接收到一个字符串后怎样从中提取想的内容请提供例程!

可以。
unsigned char buff[32];
unsigned int len;
unsigned char receiveByte()
{
while(RI==0); //等待接收数据
RI = 0;
return SBUF;
}
void receiveString()
{
unsigned char bbyte;
len = 0;
do
{
bbyte = receiveByte();
buff[len++] = bbyte;
}
while(bbyte!=0x00);
}
这世誉个程序可以搜启段接旁拍受一个字符串,就是以00结尾的字符串。

2. 单片机接收串口数据

你通过串口助手要接受字符串或一组数据需要在单片机端开辟一个缓冲区,否则可能丢失数据。
以下程序是较为通用的串口收发例程,开辟一个16字节的缓冲区,两个指针,一个存数指针,一个取数指针,两指针相等,证明没有新的接收数据。
#include<reg51.h>
#define uchar unsigned char
uchar buf[16],getptr,putptr;
void uart_isr() interrupt 4
{
if(RI)
{
RI=0;
buf[putptr]=SBUF;
putptr++;
putptr&=0x0f;
}
}
main()
{
TMOD=0x20;
SCON=0x50;
TH1=TL1=0xfd;
TR1=1;
ES=1;
EA=1;
putptr=0;
getptr=0;
while(1)
{
if(getptr!=putptr) //取数指针和存数指针如果不等
{
SBUF=buf[getptr];
getptr++;
getptr&=0x0f;
while(!TI);
TI=0;
}
}
}

3. 51单片机串口用数组接收字符串程序怎么写

对于固定的数据,可以通过顺序判断来识别用if或switch语句来判决即可
通过串口中断,每次进入把SBUF的值赋给T,通过判决、累加NUM的值最终取得冒号后面的数值(不知楼主是否是要最后的数值)
voidUART_Int(void)interrupt4
{
staticucharNUM=0;
ucharT;
if(RI==1)
{
RI=0;
T=SBUF;//接收串口数据
switch(T)//如果是按value":0的顺序读进的话会最终触发NUN=7的条件
{
case'v':
NUM=1;
break;
case'a':
if(NUM==1)
{
NUM=2;
}
else
{
NUM=0;
}
break;
case'l':
if(NUM==2)
{
NUM=3;
}
else
{
NUM=0;
}
break;
case'u':
if(NUM==3)
{
NUM=4;
}
else
{
NUM=0;
}
break;
case'e':
if(NUM==4)
{
NUM=5;
}
else
{
NUM=0;
}
break;
case'"':
if(NUM==5)
{
NUM=6;
}
else
{
NUM=0;
}
break;
case':':
if(NUM==6)
{
NUM=7;
}
else
{
NUM=0;
}
break;
default:
if(NUM==7)
{
LED=T; //LED为全局变量
}//把最后的数据传给LED
NUM=0;
break;

}
}
}

4. 单片机从PC端接受字符

PC端发送数据的时候,每次发送一个字符串即可。

单片机就可以接收到这个字符串。

和 都是字符串里面的特殊字符。发与不发看应用场合。

通过串行通信模块的初始化,完成双方字符帧格式的统一、波特率的一致。最后就是对SBUF和RI标志的判读,协议的解析了。

扩展橘轿伍资料:

字符是可使用多种不同字符方案或代码页来表示的抽象实体。例如,Unicode圆或UTF-16编码将字符表示为 16 位整数序列,而 UnicodeUTF-8编码则将相同的字符表示为 8 位字节序列。微软的公共语言运行库使用 Unicode UTF-16(Unicode 转换格式,16 位编码形式)表示字符。

参考资帆戚料来源:网络-字符

5. 求单片机高手编写一个串口通信接受字符程序,用汇编语言. 急急急!!!!

ORG 00H

AJMP MAIN

ORG 23H

AJMP URT;串口中断

ORG 30H

MAIN:

MOV SP,#60H

MOV R0,#50H

MOV TMOD,#20H;T1工作方式2

SETB EA;开总中断

ACALL URTINIT;串口初始化

AJMP $ ;等待串口中断

URT: ;串口中断每次只收1个字节,未完继续进入中断,接收。

PUSH ACC

JNB RI,URT1

URT0:

CLR ES

CLR RI

MOV A,SBUF

MOV @R0,A;先保存

INC R0

CJNE R0,#60H,URT1

CLR EA

URT1:

SETB ES

POP ACC

RTI: RETI

URTINIT:

MOV SCON,#50H;串口工作方式1,接收

MOV TH1,#0F4H;11.0592M2400BPS

MOV TL1,TH1

SETB TR1;开启定时器

SETB ES;开启串口中断

RET

阅读全文

与单片机接收字符串程序相关的资料

热点内容
什么app儿童免费 浏览:582
遗传算法的理解 浏览:800
php删除sql 浏览:841
红进蓝出指标源码 浏览:700
python数据转换列表类型 浏览:717
解压后的文件怎么解开 浏览:175
四川补贴认证下载什么app 浏览:858
android设计风格 浏览:426
视频不支持我的加密 浏览:342
布包pdf 浏览:267
程序员录制课程表 浏览:626
eclipsephp断点调试 浏览:895
虚拟成交量指标源码 浏览:838
什么APP有背单词小组 浏览:43
苹果2g视频怎么加密 浏览:204
人工智能程序员和古典录音师相遇 浏览:415
国产服务器是怎么来的 浏览:116
蓄势待发源码 浏览:458
服务器如何清理log文件 浏览:835
javaawtfont 浏览:627