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

单片机接收字符串程序

发布时间: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

阅读全文

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

热点内容
手机软件加密了怎么解开 浏览:887
linux中的ln命令例子 浏览:142
为什么玩cf第一次进入服务器很慢 浏览:967
工作单源码 浏览:619
安卓如何关闭app自动升级 浏览:137
new文件夹怎么打开 浏览:633
安卓51如何优化 浏览:177
活塞式压缩机原理图 浏览:845
水环式压缩机工作原理 浏览:715
阿里云服务器安装后怎么使用 浏览:933
去做APP开户有什么危险没得啊 浏览:696
8分之1乘58算法 浏览:171
php提交过滤 浏览:358
豪斯曼检验stata命令 浏览:770
云看地是什么APP 浏览:886
数学指南pdf 浏览:860
phpcurldll64位 浏览:983
程序员脱产一年半 浏览:853
hr招程序员有什么条件 浏览:590
android开源集合 浏览:872