導航:首頁 > 操作系統 > 單片機接收字元串程序

單片機接收字元串程序

發布時間: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

閱讀全文

與單片機接收字元串程序相關的資料

熱點內容
活塞式壓縮機原理圖 瀏覽:840
水環式壓縮機工作原理 瀏覽:713
阿里雲伺服器安裝後怎麼使用 瀏覽:931
去做APP開戶有什麼危險沒得啊 瀏覽:696
8分之1乘58演算法 瀏覽:170
php提交過濾 瀏覽:356
豪斯曼檢驗stata命令 瀏覽:769
雲看地是什麼APP 瀏覽:885
數學指南pdf 瀏覽:858
phpcurldll64位 瀏覽:982
程序員脫產一年半 瀏覽:851
hr招程序員有什麼條件 瀏覽:589
android開源集合 瀏覽:872
華為雲伺服器登錄密碼和賬號 瀏覽:154
中世紀java程序員 瀏覽:788
什麼開發引擎使用python 瀏覽:177
sh腳本運行命令 瀏覽:318
廣聯達加密鎖怎麼看到期 瀏覽:174
cad軌跡命令 瀏覽:981
同事刷到女程序員自媒體視頻 瀏覽:573