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

單片機接收字元串程序

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

閱讀全文

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

熱點內容
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
php企業站後台 瀏覽:417
日企程序員招聘 瀏覽:113