導航:首頁 > 操作系統 > 使用單片機向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機發送字元串相關的資料

熱點內容
顧傾城女主的小說 瀏覽:938
觸摸屏編程cd和dc的區別 瀏覽:908
印度可以購買加密貨幣嗎 瀏覽:123
找上電影 瀏覽:965
太原少兒編程培訓加盟如何 瀏覽:913
小電影網站入 瀏覽:578
同一文件名怎麼提取到一個文件夾 瀏覽:823
單片機定時器對照表 瀏覽:734
小孩坐綠皮火車睡著了去了外國的電影 瀏覽:921
一個女的在鞦韆上夾葡萄 瀏覽:415
綠色無安裝執行程序如何加密 瀏覽:939
加密狗如何退 瀏覽:270
以歐美小孩為主角的電影 瀏覽:271
android點贊功能 瀏覽:332
露鳥同志電影 瀏覽:283
《外出》未刪減版韓國 瀏覽:18
外出完整140分鍾版本 瀏覽:732
香港電影走光 瀏覽:331
初級初中生編程 瀏覽:699
在阿姨鬼混還是鬼片 瀏覽:129