導航:首頁 > 操作系統 > 51單片機助手

51單片機助手

發布時間:2022-04-07 09:05:16

㈠ 51單片機中,用串口通信助手向單片機發送數據時,不用16進制的話,發送1,勾上16

發送的時候選擇16進制發送,否則按字元發送,就是發送ASCII碼,1的ASCII碼是49,16進制就是31.

具體網路一下ASCII

㈡ 51單片機,通過串口助手向單片機發送字元串,單片機將字元串逆序發送回計算機,用C語言編程

像這種發送字元串的,需要有一個字元串結束標志,不能用0作為字元串結束標志了!這里以回車作0xd為結束標志!

#include <reg51.h>

typedef unsigned char uint8;

bit flag = 0;

uint8 idata buf[30];

uint8 ct;



void InitUART(void) //串口初始化 9600bps

{

TMOD = 0x20;

SCON = 0x50;

TH1 = 0xFD;

TL1 = TH1;

PCON = 0x00;

EA = 1;

ES = 1;

TR1 = 1;

}


void Send(uint8 c)

{

SBUF = c;

while(!TI);

TI = 0;

}


void main(void)

{

char j;

InitUART();

while(1)

{

if(flag) //是否接收到回車 字元串發送完

{

flag = 0;

for(j = ct ; j > 0 ; j--)

{

Send(buf[j-1]);

}

}

}

}


void UARTInterrupt(void) interrupt 4

{

static uint8 i = 0;

if(RI)

{

RI = 0;

buf[i++] = SBUF;

if(SBUF == 0x0d) //接受到回車

{

ct = i-1 ;

flag = 1;

i = 0;


}

}

else

TI = 0;

}

模擬結果

程序作為參考 希望 你自己能理解程序!只有自己掌握了才能很好地用!

㈢ 用51單片機與PC進行通信,通過串口助手進行調試

首先檢測你的硬體電路。
方法是,拔掉你的單片機,把rxd和txd腳短路。然後在串口調試助手裡面,選任意波特率發送任意字元,如果收到的是發送的內容,則能肯定max232和rs-232之間連接正確。
接下來就要檢查你的程序了
最容易出問題的就是波特率了。
如果你用12m的晶振,那麼,最好設置波特率為1200

2400。

㈣ 51單片機串口發送的數據和51助手收到的數據不一樣,什麼原因

波特率問題,建議用11.05926MHZ的晶振並重新計算初始值

㈤ 怎麼用手機藍牙調試助手控制51單片機上的LED燈亮

#include<reg52.h>

typedef unsigned char unit8;
typedef unsigned short unit_16;

void Receive_Handle(unit8 Value)
{
switch(Value)//具體發送過來的是什麼數據 需要自己自己通過串口調試助手查看
//改變這裡面對應的數據即可
{
case 0x00:P2=0xff;break;
case 0x01:P2=0xfe;break;
case 0x02;P2=0xfd;break;
case 0x03:P2=0xfb;break;
case 0x04:P2=0xf7;break;
default:P2=0xff;break;
}
}

void main()
{
TMOD |= 0x20;//定時器1 工作方式2 8位自動重裝模式
SCON = 0x50;//串口工作方式1 允許接收 8位數據位
TH1 = 0xfd; //波特率9600
TR1 = 1;
ES = 1;
EA = 1;
while(1);
}

void UART1_Rountine()interrupt 4
{
static unit8 Receive_Data=0;
ES = 0;
while(!RI);
RI=0;
Receive_Data = SBUF;
Receive_Handle(Receive_Data);
ES = 1;
}

/*---------------------------------------------------------------------------------------

如有問題可再咨詢

----------------------------------------------------------------------------------------*/

㈥ 求個口串口助手控制51單片機LED亮與滅程序

#include<stc89.h>

#define uchar unsigned char
#define uint unsigned int

sbit led1 = P1 ^ 1; //定義兩個LED燈
sbit led2 = P1 ^ 2; // 這里需要你自己定義你的I/O口

uchar a;

//void delay(uint z);
void init();
void main()
{
init();

while(1)
{

if (a == 0x31)
{
led1 = 0;
led2 = 0;

}

if (a == 0x32)
{

led1 = 1;
led2 = 1;
}

if (a == 0x33)
{

led1 = 0;

}

if (a == 0x34)
{

led1 = 1;

}

}

}

void init() //初始化
{

TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;
ES = 1;
EA =1;
SCON=0x50;
}

/*void delay(uint z) //延時
{
uint x,y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);
}
*/
void Serial() interrupt 4 //串口中斷程序
{
RI = 0;
a = SBUF;
}
/*
----------------
說明:
波特率 9600
在串口助手裡面(把16進制關閉) 輸入 31 是 開啟燈亮
32 是 關閉

也可以用switch語句
----------------

*/

㈦ 51單片機通信問題,串口調試助手能接受單片機發送的數據,但是單片機卻不能接受串口調試助手發送的數據。

不需要延時的。下面的程序可以正常接收。

ORG 0000H
SJMP START
ORG 0030H
START:
MOV P1, #0FBH ;給p1附初值
MOV SCON, #50H ;設置串口工作方式1
MOV PCON, #00H ;波特率不加倍
MOV TMOD, #20H ;設置定時器1工作方式2
MOV TL1, #0FDH
MOV TH1, #0FDH ;給定時器賦值,波特率為9600
SETB TR1 ;啟動定時器
MAIN:
JBC RI, RCV ;若RI為1,則轉到RCV,否則跳轉MAIN
SJMP MAIN
RCV:
MOV A, SBUF ;將接受到的數據讀到累加器中
MOV P1, A ;將累加器中的數據送到P1口顯示
SJMP MAIN ;跳轉主程序
END

㈧ 51單片機 如何編程實現通過串口助手輸入內容

可以的,實際上就是利用串口實現輸入輸出,只需要正確設置串口波特率就行了。
void mInitSTDIO( void )
{
SCON = 0x50;
PCON = 0x80;
TMOD = 0x21;
TH1 = 0xf3; /* 24MHz晶振, 9600bps */
TR1 = 1;
TI = 1;
}

main( )
{
mInitSTDIO( ); /* 為了讓計算機通過串口監控演示過程 */
printf( "Start\n" );
while(1);
}

㈨ 我想知道proteus模擬的51單片機怎樣發送數據到串口助手 很急的 能解答嗎

要用PROTEUS中的一個元件:COMPIM,還要安裝一個虛擬終端(這個上網找吧),在程序,COMPIM,虛擬終端,串口助手的通信參數都要一致,如果程序與接線正確,就可以通信了.

㈩ 怎麼用51單片機向串口調試助手發送字元串有程序解釋更好啊,求解~

ASCII碼在單片機中也是用16進制來表示的,只是解碼後顯示的是字元,你要是隨便發一個字元,串口調試助手選擇字元顯示接收就可以顯示一個字元出來(可能我們不認識這個字元)。發送一個字元串就是不停的發送直到發送完畢,51單片機有自己的串列發送埠P3.0和P3.1埠,但是它是一個位元組一個位元組發送的,發送完一個位元組會產生一個中斷(也可以用判斷TI的方式判斷是否發送完),中斷響應後再次啟動發送SBUF=0Xxx,就會自動連續的發送,再加上判斷就可以控制發送的位元組數。
串口初始化:
void uart_init()
{
TMOD=0x20;//定時器1,模式2
SCON=0x50;//串口通訊方式1
TH1=0xfd;//波特率9600
TL1=0xfd;
button=0;
delay(1);
TI=0;//發送中斷標志位清零
RI=0;//接收中斷標志位清零
TR1=1;//啟動定時器1
EA=1; //使能全局中斷
ES=1; //啟動串口中斷
}
}
void main()
{ P1=0xff;
uart_init() ;
while(1)
{
}
// 串列中斷程序
void commIntProc() interrupt 4
{
if(TI)
{
TI = 0;
if(sendPosi < sendCount) //判斷是否發送完成
{
sendPosi++; //發送一次計數器加一
SBUF = sendBuf[sendPosi];//啟動發送
}

閱讀全文

與51單片機助手相關的資料

熱點內容
php取小數後兩位 瀏覽:352
單片機編程魔法師 瀏覽:832
帝豪gs怎麼下載影視app軟體 瀏覽:509
程序員去山中泡溫泉 瀏覽:36
安卓手機怎麼恢復出廠系統版本 瀏覽:361
高三倒計時緩解壓力 瀏覽:621
一捏就變形的解壓玩具怎麼折 瀏覽:198
易融貸app借錢怎麼 瀏覽:941
單片機側重點 瀏覽:869
江蘇惠普伺服器虛擬化設計雲主機 瀏覽:649
在歐拉app好貓充電樁怎麼申請 瀏覽:451
反編譯代碼教程 瀏覽:800
linuxio阻塞 瀏覽:973
8腳單片機pic 瀏覽:821
如何看彩色塗鴉遮住的字安卓 瀏覽:688
擺渡機器人編程 瀏覽:654
軟程序員著裝 瀏覽:139
寶雞雲存儲伺服器 瀏覽:668
推薦超解壓游戲無廣告 瀏覽:634
大華伺服器怎麼添加門禁 瀏覽:784