STC51微控制器串列埠通訊 微控制器端程式

2021-07-25 15:11:48 字數 1625 閱讀 4835

隨著微控制器系統的廣泛應用和計算機網路技術的普及,微控制器的通訊功能愈來愈顯得重要。微控制器通訊分為並行和序列通訊方式。並行通訊通常是將資料位元組的各位用多條資料線同時進行傳送,每一位資料都需要一條傳輸線,由於需要傳輸線較多,長距離傳送時成本高且收、發方的各位同時接收存在困難,故應用較少。串列埠通訊則使用廣泛,技術成熟,這裡介紹的是常用的非同步序列通訊方式。

並行通訊方式

序列通訊方式

非同步序列通訊是指通訊的傳送與接收裝置使用的各自的時鐘控制資料的傳送和接收過程。一幀字元資訊由四部分組成:起始位資料位奇偶校驗位停止位。串列埠通訊的設定主要有兩個重要暫存器:序列口控制暫存器scon、定時器模式暫存器tmod。其中scon:sm0,sm1,sm2,ren,tb8,rb8,ti,ri。重要位有sm0sm1=xx,常用xx=01含義為10位非同步收發,波特率可變;ren序列接收使能位;ti傳送中斷標誌位;ri接收中斷標緻位。tmod常用低兩位m1m0=xx,設定定時器/計數器工作方式,下面程式用m1m0=10,含義為8位初值自動重灌。

下面**即微控制器串列埠通訊的設定,可實現微控制器串列埠與計算機、手機(通過藍芽)通訊。

// 名稱:51微控制器串列埠通訊

// 備註:晶振11.0592mhz,波特率設定為9600,無奇偶校驗,有接收中斷無傳送中斷,傳送在任意時間可進行

// 程式開始傳送資料若觀測不到,reset後可看到效果。

#include"reg52.h"

//******************** 函式宣告 *******************

void inituart (void);

void sendbyte(unsigned char dat);

void sendstr(unsigned char *s);

//******************** 主函式 *******************

void main (void)

//******************* 串列埠初始化*******************

void inituart (void)

//******************* 傳送乙個位元組 *******************

void sendbyte(unsigned char dat)

//**************** 傳送乙個字串 *******************

void sendstr(unsigned char *s)

}//****************** 串列埠中斷程式 *******************

void uart_ser (void) interrupt 4

}

matlab與微控制器串列埠通訊**

STC 51 微控制器 串列埠通訊實驗

以後不再好高騖遠,要腳踏實地地做好每件事,要踏踏實實地學好微控制器。作為第乙個部落格,首先談談我寫的乙個51微控制器串列埠通訊程式。我用的是一款增強版51微控制器,型號為stc12le5a60s2。1 查詢方式,下面是我的源 微控制器型號 stc12le5a60s2 串列埠1,波特率發生器使用定時器...

STC 51 微控制器 浮點運算。

很簡單的 困擾了我好久 define adc balance 1695 define adc to pw factor 3.9 int adcresult float fd pw fd pw adc balance adcresult adc to pw factor 用keil的模擬器除錯結果都正...

51微控制器串列埠通訊

1 並行通訊 傳送方和接收方用多根資料線連線,多位資料同時傳送。傳輸線多,長距離傳輸時成本大。2 序列通訊 單根資料線傳送資料,逐位傳送。長距離傳送成本低,但控制相對複雜。序列通訊又可分為 非同步序列通訊和同步序列通訊。非同步序列通訊 所謂 非同步 指的是雙方裝置使用各自的時鐘,以字元為單位傳輸,採...