這塊串口通信板是當時實驗室老師給我布置的作業,給大家分享一下

2022-05-26     大方老師單片機

原標題:這塊串口通信板是當時實驗室老師給我布置的作業,給大家分享一下

這塊串口通信板是當時實驗室老師給我布置的作業,給大家分享一下

\\\插播一條:

自己在今年整理一套單片機單片機相關論800余篇

論文製作思維導圖

原理+源代+開題報++外文資料

想要的同學私信找我。

專欄的第一篇文章,不是串口通信有什麼特別的地方,只是突然想學著別人寫寫博客,記錄自己天天在做的事,順便幫助後人更快的學習。雖然現在感覺寫博客很有趣,但可能以後會堅持不下去,畢竟應該沒多少人會看這個專欄。不過就算沒人看,以後還可以給面試官看看,也算是一種履歷。應該還有一年半的時間可以記錄,說不定以後會補補之前學的內容呢,就當是複習了。

那,這塊串口通信板是當時實驗室老師給我布置的任務:

要求實現三個功能:

.利用單片機自帶串口實51單片機51單片機的雙向串行通信。

.利用單片IO口實51單片機51單片機的雙向高速串行通信(目前達12萬波特率)。

.通過串口232接口485接口實51單片機PC機的雙向多機通信。

除這些需要實現的功能外,還需要掌握和理SPI總線I2C總線CAN總線的相關內容,及掌握目前主流的通信協議和應用方法,這些以後再說。

這篇博客主要講要求的第三點,及串口多機通信方面的內容,程式語言51單片機的彙編語言,使用的單片機型號為:STC89C52

實現多機通信的基本思路:

51單片機有一個自帶的串口,在進行多機通信時通常將串口工作模式設置為方3(主從模+可調波特率)。

串口在工作方3下,每個數據幀包11位信號。其中包1位起始位(低電平)8位數據位1位可編程位TB81位停止位(高電平)。

數據幀格式:

SCON串口功能寄存器:

串口的多機通信是依SCON寄存器里SM2RB8兩個功能位實現的,因為其在工作模式三下有如下性質:

SM20時:無論收到數據的901,都使RI(接收中斷標誌位)置高,接收數據。

SM21

當接收到的91(地址)時,使RI置高,接收數據。

當接收到的90(數據)時,不置RI,丟棄數據。

利用上述性質,可以通過軟體編程實現:

SM2=09位數=0代表這是發送給本機的數據

SM2=19位數=1代表這是廣播的地址

SM2=19位數=0代表這不是發送給本機的數據

以上就是利用串口進行多機通信的基本思路。

PC_MCU:

MOV DPTR,#PM_TAB

MOV A,#0

LCALL PRINTF_LCD

SETB SERIAL_FLAG ;置高標誌位,告訴中斷正在PC通信

MOV A,#03H

LCALL SERIAL_READY ;進行方3的初始化

PM_1: LCALL SAO_KEY

JNB KEY_UP,PM_K1

LJMP PM_K5

PM_K1: JNB KEY_DN,PM_K2

LJMP PM_K5

PM_K2: JNB KEY_OK,PM_K3

LJMP PM_K5

PM_K3: JNB KEY_RE,PM_K4

RET

PM_K4: JNB KEY_SD,PM_K5

CLR ES

CLR EA

SETB TB8 ;即將發送地址

MOV SBUF,ID ;發送地址

JNB TI,$

CLR TI

MOV SBUF,SW_8 ;發送數據

JNB TI,$

CLR TI

SETB ES

SETB EA

PM_K5:

【文章福利】:小編整理了一些個人覺得比較好的學習書籍、視頻資料共享在群文件裡面,有需要的可以自行添加哦!~點擊綠色通訊軟體搜airuimcu加入。

文章來源: https://twgreatdaily.com/zh-tw/5eb2b73284391a91301dde4b21727b2b.html