導航:首頁 > 操作系統 > 單片機串口通訊程序

單片機串口通訊程序

發布時間:2023-07-24 00:33:00

㈠ 51單片機通過串口實現數據的發送與接收程序

串口收發,要有通信協議。也就是什麼時候開始接收,接收到指令後,轉發什麼數據。這個要知道,才可以寫。而且使用不同的51單片機,其內部寄存器配置是不同的。
一般來說,過程如下:
1,配置串口參數、波特率等,開啟串口中斷;
void Init_UART()
{

}
2,中斷函數里寫中斷響應函數,根據接收的指令或者數據,執行相應的動作;
程序一般為:
void UART_ISR() interrupt x using y
{
;串口中斷處理函數
}
x - 單片機的C51中斷號
y - 指定使用的當前工作寄存器組號(0-3 PSW中的RS0,RS1組合)

3,主程序
int main(void)
{
Init_UART();
while(1)
{
;//數據發送函數
}
}

㈡ 怎樣編寫單片機的串口通信的程序,一般的步驟是怎麼樣

編寫串口通訊程序步驟為:

1、設置波特率

2、設置串口工作方式

3、收發數據。

比如:

main()
{
unsignedchardat;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x50;
while(1)
{
while(RI==0);
RI=0;
dat=SBUF;
SBUF=~dat;
while(TI==0)
TI=0;
}
}

㈢ 兩個單片機串口通信程序

兩個單片機串口通信,用模擬來實現比較容易做,兩個單片機的引腳TXD和RXD交叉連接即可。為了顯示通信效果,P2口接兩個數碼管可顯示接收的數據,P1口接兩個四位數字開關,用於輸入數據,然後從串口發送到另一單片機,兩個單片機互發數據,電路相同,程序也相同。模擬圖如下。

㈣ 51單片機串口通信程序(需要判斷)

#include<reg51.h>
#define uchar unsigned char
uchar com1[]={0xef,0x01,0xff,0xff,0xff,0xff,0x01,0x00,0x03,0x01,0x00,0x05};
uchar red1[]={0xef,0x01,0xff,0xff,0xff,0xff,0x07,0x00,0x03,0x02,0x00,0x0c};
uchar red2[]={0xef,0x01,0xff,0xff,0xff,0xff,0x07,0x00,0x03,0x02,0x00,0x0a};
uchar red3[]={0xef,0x01,0xff,0xff,0xff,0xff,0x07,0x00,0x03,0x02,0x80,0x0a};
sbit p17=P1^7;
sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;
main()
{
uchar i,rdat[12];
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x50;
while(1)
{
for(i=0;i<12;i++)
{
SBUF=com1[i];
while(!TI);
TI=0;
}
i=0;
while(i<12)
{
if(RI)
{
RI=0;
rdat[i]=SBUF;
i++;
}
}
for(i=0;i<12;i++)
{
if(rdat[i]!=red1[i])p17=1;
}
for(i=0;i<12;i++)
{
SBUF=com1[i];
while(!TI);
TI=0;
}
i=0;
while(i<12)
{
if(RI)
{
RI=0;
rdat[i]=SBUF;
i++;
}
for(i=0;i<12;i++)
{
if(rdat[i]!=red2[i])p10=1;
else if(rdat[i]!=red2[i])p11=1;
else p12=1;
}
}
}
}

㈤ 兩個51單片機串口通信程序

串列發送程序 Tx.asm :
PCON, #00H ;; 波特率不倍增
SETB TR1 ;; 啟動定時器T1
MOV IE, #0 ;; 禁止任何中斷
CALL DLY125 ;; 延時125ms
;;--------------------------------------------
T_X: ;; 透傳發送字串

ACALL DSPLED ;; P2.0控制LED閃亮
MOV R3, #4 ;; 待發送字元個數
MOV DPTR, #TAB_TX ;; 數據表首址
TX_LP1: CLR A
MOVC A, @A+DPTR ;; A←數據表的1個字元
CLR TI ;; TI清零,允許發送
MOV SBUF,A ;; 發送1個字元
JNB TI, $ ;; 等待1個字元幀發送結束
DJNZ R3, TX_next
CALL DLY500 ;; 延時500ms
SJMP T_X ;; 重復發送
TX_next: ;; 發送另一字元
INC DPTR ;; 數據表指針移動
SJMP TX_LP1
;;--------------------------------------------
DSPLED: ;;開機或復位,P2.0控制LED閃亮6遍

MOV R2, #6 ;; 循環次數
LEDLP1: CLR P2.0 ;; LED亮
CALL DLY125 ;; 延時125ms
SETB P2.0 ;; LED滅
CALL DLY125
DJNZ R2,LEDLP1 ;; 循環
RET
;;----------------------------------------------
DLY125: ;; 延時125ms
DLY125A: MOV R5,#250
DLY125B: MOV R6,#250
DJNZ R6,$
DJNZ R5,DLY125B
RET
;; 250*250*2μs=125 000μs =125ms
;;----------------------------------------------
DLY500: ;; 延時500ms
MOV R7,#4
DLY500A: MOV R6,#250
DLY500B: MOV R5,#250
DJNZ R5,$
DJNZ R6,DLY500B
DJNZ R7,DLY500A
RET
;; 4*250*250*2μs=500 000μs =500ms
;;-------------------------------------------------

TAB_TX: DB 38H,30H,35H,31H, ...

;; 8 0 5 1 ...
;;----------------------------------------------
END

㈥ 兩個51單片機串口通訊程序

<p>甲機發送(撥碼開關):</p>
<p>ORG 00H</p>
<p>AJMP MAIN</p>
<p>ORG 30H</p>
<p>MAIN: </p>
<p>MOV SCON,#50H ;8位發送,接收</p>
<p>MOV TMOD,#20H ;定時器1方式2,8 位自動重裝。</p>
<p>MOV TH1,#0FAH ;11.0592MHz,4800bps</p>
<p>MOV TL1,#0FAH</p>
<p>SETB TR1</p>
<p> </p>
<p>MAIN1:</p>
<p>MOV A,P1</p>
<p>CJNE A,20H,SEND_0</p>
<p>AJMP MAIN1</p>
<p>SEND_0:</p>
<p>ACALL SEND</p>
<p>AJMP MAIN1</p>
<p> </p>
<p>SEND:</p>
<p>MOV 20H,A</p>
<p>MOV SBUF,A</p>
<p>JBC TI,SEND</p>
<p>RET</p>
<p>END</p>
<p> </p>
<p> </p>
<p>乙機接收(LED顯示):</p>
<p>ORG 00H</p>
<p>AJMP MAIN</p>
<p>ORG 30H</p>
<p>MAIN: </p>
<p>MOV SCON,#50H ;串口工作方式1,允許接收。</p>
<p>MOV TMOD,#20H ;定時器1工作方式2,8 位計數,自動重裝定時常數</p>
<p>MOV TH1,#0FAH ;11.0592MHz,4800bps</p>
<p>MOV TL1,#0FAH</p>
<p>SETB TR1</p>
<p>RECE: </p>
<p>JB RI,MAIN1 ;收完RI機器置1,轉數據處理。</p>
<p>AJMP $-3 
;沒收完繼續 </p>
<p>MAIN1: </p>
<p>MOV A,SBUF</p>
<p>MOV P2,A</p>
<p>CLR RI</p>
<p>AJMP RECE 
;繼續接收 </p>
<p> </p>
<p>END</p>
<p> </p>
<p> </p>
<p></p>
<p> </p>

閱讀全文

與單片機串口通訊程序相關的資料

熱點內容
安卓國服光遇小王子季節什麼時候結束 瀏覽:537
恢復的音樂在哪個文件夾 瀏覽:595
qq傳輸文件夾壓縮包 瀏覽:911
sha1加密演算法java 瀏覽:232
單片機ds1302程序 瀏覽:738
杜比壓縮開還是關怎樣判斷 瀏覽:366
對象類型轉換java編譯和運行 瀏覽:284
行政命令是什麼 瀏覽:371
android調用系統郵件 瀏覽:33
測溫軟體app是如何實現的 瀏覽:585
江蘇伺服器機房按需定製雲主機 瀏覽:639
c程序員筆試 瀏覽:694
excel怎麼引用統一文件夾 瀏覽:249
怎麼把微信抖音加密 瀏覽:304
android滑動進度條 瀏覽:834
javagmt轉換 瀏覽:826
linux查看snmp 瀏覽:25
ug80車床編程 瀏覽:518
怎麼加速python計算素數 瀏覽:243
腰椎第五節壓縮性骨折 瀏覽:93