98国产精品综合一区二区三区,国产福利视频,男人添女人囗交做爰视频,日本免费一区二区三区视频观看

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術(shù)中心 >> 單片機入門 >> 51單片機串口多機通信的實現(xiàn)和編程

51單片機串口多機通信的實現(xiàn)和編程

關鍵字:51單片機 串口通信 編程 作者:admin 來源:不詳 發(fā)布時間:2018-05-19  瀏覽:30

一、51單片機的主從模式,首先要設定工作方式3:(主從模式+波特率可變)

SCON串口功能寄存器:SM0=1;SM1=1(工作方式3)

1.jpg

注:主機和從機都要為工作方式3。

【工作方式2 (SM0 SM1 :1 0):串行口為11位異步通信接口。發(fā)送或接收一幀信息包括1位起始位“0”、8位數(shù)據(jù)位、1位可編程位、1位停止位“1”。發(fā)送數(shù)據(jù):發(fā)送前,先根據(jù)通信協(xié)議由軟件設置TB8為“奇偶校驗位”或“數(shù)據(jù)標識位”,然后將要發(fā)送的數(shù)據(jù)寫入SBUF,即能啟動發(fā)送器。發(fā)送過程是由執(zhí)行任何一條以SBUF為目的寄存器的指令而啟動的,把8位數(shù)據(jù)裝入SBUF,同時還把TB8裝到發(fā)送移位寄存器的第9位上,然后從TXD(P3.1)端口輸出一幀數(shù)據(jù)。接收數(shù)據(jù):先置REN=1,使串行口為允許接收狀態(tài),同時還要將RI清“0”。然后再根據(jù)SM2的狀態(tài)和所接收到的RB8的狀態(tài)決定此串行口在信息到來后是否置R1=1,并申請中斷,通知CPU接收數(shù)據(jù)。當SM2=0時,不管RB8為“0”還是為“1”,都置RI=1,此串行口將接收發(fā)送來的信息。當SM2=1時,且RB8=1,表示在多機通信情況下,接收的信息為“地址幀”, 此時置RI=1,串行口將接收發(fā)來的地址。當SM2=1時,且RB8=0,表示在多機通信情況下,接收的信息為“數(shù)據(jù)幀”, 但不是發(fā)給本從機的,此時RI不置為“1”,因而SBUF中接收的數(shù)據(jù)幀將丟失。

工作方式3 (SM0 SM1 :1 1):為波特率可變的11位異步通信方式,除了波特率有所區(qū)別之外,其余方式都與方式2相同!俊疽陨蟽(nèi)容摘自網(wǎng)絡】

二、主機的配置發(fā)送“地址”時,把TB8設定為1,發(fā)送數(shù)據(jù)時TB8設定為0

(類似于:主機 TB8=1發(fā)送的是地址,TB8=0發(fā)送的是數(shù)據(jù))

發(fā)送幀結(jié)構(gòu):

2.jpg

假設主機將發(fā)送“1234”給地址為1的從機:調(diào)用函數(shù):TXdata(1,"1234$");

void TXdata(uchar addr,uchar *str)

{

TB8 = 1; //發(fā)送地址

SBUF = addr; //把地址發(fā)送出去

while(!TI); //判斷是否發(fā)送成功(發(fā)送成功后TI會置1,需手動清0)

TI = 0;

TB8 = 0; //發(fā)送數(shù)據(jù)

while(*str != '\0') //發(fā)送數(shù)組

{

SBUF = (*str);

while(!TI);

TI = 0;

str++;

}

}

三、從機配置

1. 從機接收時,首先串口初始化時,使SM2=1(接收地址模式,即只能接收到TB8=1的數(shù)據(jù),才觸發(fā)中斷),主機發(fā)送TB=0的數(shù)據(jù),被認為是總線上的主機發(fā)送給別機的通信數(shù)據(jù),本機丟棄,不產(chǎn)生中斷。

2. 接收的地址與本機地址相符后,使SM2=0(接收數(shù)據(jù)模式,接收數(shù)據(jù)正常觸發(fā)中斷)

(類似于:從機 SM2=1只接收地址,SM2=0只接收數(shù)據(jù))

void chuan() interrupt 4 //串口中斷服務函數(shù)

{

ES = 0; //關閉串口中斷

if(RI) //再次判斷,是否接收到數(shù)據(jù)(接收到數(shù)據(jù)后,RI會置1,需手動清0)

{

RXData = SBUF;

if(RXstart) //判斷是否接收到過本地址

{

if(RXData != '$') //判斷是否接收到 數(shù)據(jù)結(jié)束 標志 $

{

temp[j] = RXData; //沒有接收到結(jié)束標志,正常保存數(shù)據(jù)至數(shù)組

j++;

}

else //接收到 結(jié)束標志 $

{

RXstart= 0; //本次接收結(jié)束

SM2 = 1; //重新 配置為:只接收地址 模式,下次發(fā)送TB8=1才中斷

j = 0;

}

}

if(RXData == 1) //判斷是否呼叫本機,地址范圍:000 – 254(00 - FE)

{

RXstart = 1; //開始接收數(shù)據(jù)

SM2 = 0; //配置為:接收數(shù)據(jù) 模式

}

}

RI = 0; //清除接收標志位

ES = 1; //重新開啟串口中斷

}

四、串口初始化配置

89S51、52、STC12Cxxx + 11.0592M晶振,9600bps

void UART_init()

{

TMOD = 0x20; //定時器1,工作方式2:8位、自動重裝

TH1 = 0xfd; //fd: 9600bps @ 11.0592M

TL1 = 0xfd; //e8: 1200bps @ 11.0592M

//f4: 2400bps @ 11.0592M

REN = 1; //允許串口接收

SM0 = 1;

SM1 = 1; //SM0和SM1:串口工作模式3,主從模式 + 波特率可變

SM2 = 1; //只接收地址(從機如此配置,主機不需要)

ES = 1; //開串口中斷

TR1 = 1; //啟動定時器1

EA = 1; //中斷 總開關

}

五、接線圖和注意事項

3.jpg

1、從機和從機之間通信,只能通過主機中轉(zhuǎn)。

2、各從機的TXD輸出不能設置為推挽輸出,要設置為開漏輸出。

3、通信總線不能過長,最好不超過2米。

編輯:admin  最后修改時間:2018-05-19

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

我被公司领导c了很多次| 日韩人妻无码一区二区三区免费| 亚洲成av人电影在线观看| 孕妇滴着奶水做着爱a| 国产av国产av在在免费线| 无码精品国产av在线观看| 国产亚洲av无码av男人的天堂| 免费观看黄网站| 小受被用各种姿势进入n视频| 各种姿势被学长np高h明星鼓励| 出轨的女人在线观看| 麻豆传媒直播app| 帅气体育生gary网站mv视频| 亚洲精品v天堂中文字幕| 欧美乱妇狂野欧美在线视频| 白洁少妇全文无删减在线阅读| 性vodafonewifi| 国产又粗又猛又爽又黄的视频| 国自产拍偷拍精品啪啪模特| 亚洲国产精品suv| 欧美日韩免费观看| 亚洲精品97久久中文字幕无码| 天天摸夜夜躁夜夜无码小视频| 全是肉的高h短篇bl| 与亲女洗澡时伦了毛片| videossex变态狂另类| 美女直播全婐网站免费| 特级做a爱片久久久久久| 中文字幕爆乳julia女教师| 欧美日韩视费观看视频| 亚洲欧洲日产国码无码久久99| 国产av一区二区三区| 女人被狂躁免费看30分钟| 被三个老头捆着躁我一个爽文| 国产伦精品一区二区三区视频| 怀孕妇女bbwbbw| 白女人荫蒂高潮视频| 国产欧美精品aaaaaa片| 熟睡人妻被讨厌的公侵犯深田咏美| 解开她的内衣含着她的柔软| 全肉变态重口调教高辣小说|