導航:首頁 > 操作系統 > 使用單片機向pc機發送字元串

使用單片機向pc機發送字元串

發布時間:2022-08-22 17:44:54

A. 51單片機與PC串口通信程序,求指導 ! 具體要求如下:

功能如下:
1、程序燒進去,串口接收顯示一個菜單!《如圖》A、B、……分別代表一定的功能
例如:A項,代表修改ds1302的時間的數組
2、按照菜單的提示,如:發送A就進入了修改ds1302的時間函數,串口接收界面顯
示 A,像圖片那種,並顯示修改ds1302的操作方法,如從串口發送界面發送
0162115347就表示10年10月16日21時15分34秒星期7,
3、正如第二所說,馬上輸入1010162115347,就成功的修改了ds1302相關數據,
並返回change success!到串口界面!
4、設置一個功能就是返回主菜單界面。然後又可以就行第二、三步的操作!
5、通過串口,讀取單片機裡面相關的數據,如時鍾的數據
6、說明:可以不要ds1320相關的程序,可以用發光二極體亮來代表修改功能!

B. C51單片機發送字元串程序怎麼寫

1、打開C51程序書寫軟體,新建工程,在彈出的對話框編輯工程名並保存到要保存的地方。

C. 用單片機串口向電腦串口調試助手發送一個字元串,用C語言編程

uchar idata SystemBuf[10]; //用於接收
uchar Rx=0; //接收數據條數
uchar code AT[]="YES,IT IS";
void UART_init (void)
{
TMOD=0x20; //用定時器1
PCON=0x00; //波特率不加倍
SCON=0x50; //串列方式1
TH1=0xFD; //9600
TL1=0xFD; //
EA=1; //
ES=1; //
TR1=1;
}
void sendchar(uchar ch) //串口送一個位元組
{
SBUF=ch;
while(TI==0);
TI=0;
}
void sendstring(uchar *p) //送字元串
{

while(*p)
{
sendchar(*p);
p++;
}
}
///////
void receive(void) interrupt 4 using 1 //中斷
{

if(RI)
{

if(Rx<10) //這兒最多收10個位元組
{
SystemBuf[Rx]=SBUF;
Rx++;
}

RI=0;
}
}
///
void main()
{
uchar i;
UART_init();
while(1)
{
if(SystemBuf=='S')
{
sendstring(AT);
for(i=0;i<10;i++) //接收清0
{
SystemBuf[i]=0;
}
Rx=0;
}
}
}
//////////如有小錯誤,自己調下,手打的,大小寫可能不正常,這是標准程序,直接用,

D. 關於單片機向PC發送字元串問題

我想問的問題是(集中在串口中斷那裡)
1)當發送的時候,單片機不是一次發送一幀字元么,為什麼還要用 i 變數逐個去發送?
--你認為什麼是一幀字元?
--並不是所有的全部字元。
--每次中斷,僅僅發送一個字元。

2)另外,當Tcv =『W',判斷if後, SBUF='W』,i=1,那麼是不是不斷執行if語句?
--這一句,就是判斷一次。執行完了,就結束了本函數。

E. 單片機如何向pc發送數據

給你一個常式,供參考:
//實例:單片機向PC發送數據
#include<stc12c5a60s2.h>
//包含單片機寄存器的頭文件
unsigned
char
code
String[
]={"welcome
to
china!\r\n"};
/**************************************************************
函數功能:延時若干毫秒
**************************************************************/
void
delayms(unsigned
int
ms)
{
unsigned
int
i;
while(ms--)
for(i=0;i<600;i++);
}
/*****************************************************
函數功能:向PC發送一個位元組數據
***************************************************/
void
SendByte(unsigned
char
dat)
{
SBUF=dat;
while(TI==0);
TI=0;
}
/*****************************************************
函數功能:向PC發字元串
***************************************************/
void
SendStr(unsigned
char
*str)
//第2種發送字元串函數
{
while(*str!='\0')
{
SendByte(*str);
str++;
delayms(150);
//延時150ms
}
}
/*****************************************************
函數功能:串口初始化
***************************************************/
void
UartInit(void)
{
TMOD=0x20;
//TMOD=0010
0000B,定時器T1工作於方式2(波特率發生器)
SCON=0x40;
//SCON=0100
0000B,串口工作方式1(18N1)
PCON=0x00;
//PCON=0000
0000B,SMOD=0,波特率不加倍
TH1=0xfd;
//波特率9600
TL1=0xfd;
//波特率9600
TR1=1;
//啟動定時器T1
}
/*****************************************************
函數功能:主函數
***************************************************/
void
main(void)
{
UartInit();
while(1)
{
SendStr("How
are
you!\r\n");
SendStr(String);
//發送數據
delayms(150);
//150ms發送一次數據
}
}

F. C51單片機如何從PC機串口接收字元串

1、單片機串口不管從哪
接收數據
都是遵循串口協議的。字元串就是一個挨一個的ASKII碼,中間沒有加任何東西。2、不發字元串結束標志。3、回車符可以發送,但具體發不發送看你程序了。

G. 單片機從PC端接受字元

PC端發送數據的時候,每次發送一個字元串即可。

單片機就可以接收到這個字元串。

和 都是字元串裡面的特殊字元。發與不發看應用場合。

通過串列通信模塊的初始化,完成雙方字元幀格式的統一、波特率的一致。最後就是對SBUF和RI標志的判讀,協議的解析了。

(7)使用單片機向pc機發送字元串擴展閱讀:

字元是可使用多種不同字元方案或代碼頁來表示的抽象實體。例如,UnicodeUTF-16編碼將字元表示為 16 位整數序列,而 UnicodeUTF-8編碼則將相同的字元表示為 8 位位元組序列。微軟的公共語言運行庫使用 Unicode UTF-16(Unicode 轉換格式,16 位編碼形式)表示字元。

閱讀全文

與使用單片機向pc機發送字元串相關的資料

熱點內容
簽約大屏系統源碼 瀏覽:782
安卓系統怎麼轉入平板 瀏覽:421
安卓手機相機怎麼提取文字 瀏覽:217
如何查看伺服器映射的外網地址 瀏覽:975
圖片刺綉演算法 瀏覽:663
阿里雲伺服器沒有實例 瀏覽:605
綿陽有沒有什麼app 瀏覽:848
怎麼用游俠映射伺服器 瀏覽:919
為什麼無意下載的app無法刪除 瀏覽:306
word2007打開pdf 瀏覽:117
php正則class 瀏覽:737
怎麼在文件夾查找一堆文件 瀏覽:544
核酸報告用什麼app 瀏覽:791
u8怎麼ping通伺服器地址 瀏覽:994
安卓什麼手機支持背部輕敲調出健康碼 瀏覽:870
程序員抽獎排行 瀏覽:745
扭蛋人生安卓如何下載 瀏覽:724
什麼app文檔資源多好 瀏覽:924
黑馬程序員APP 瀏覽:150
掌閱小說是哪個app 瀏覽:48