![串口通信-多機(jī)通信系統(tǒng)-單片機(jī)_第1頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/5/8c06d432-b5f7-4e6a-adf2-dcca9f955374/8c06d432-b5f7-4e6a-adf2-dcca9f9553741.gif)
![串口通信-多機(jī)通信系統(tǒng)-單片機(jī)_第2頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/5/8c06d432-b5f7-4e6a-adf2-dcca9f955374/8c06d432-b5f7-4e6a-adf2-dcca9f9553742.gif)
![串口通信-多機(jī)通信系統(tǒng)-單片機(jī)_第3頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/5/8c06d432-b5f7-4e6a-adf2-dcca9f955374/8c06d432-b5f7-4e6a-adf2-dcca9f9553743.gif)
![串口通信-多機(jī)通信系統(tǒng)-單片機(jī)_第4頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/5/8c06d432-b5f7-4e6a-adf2-dcca9f955374/8c06d432-b5f7-4e6a-adf2-dcca9f9553744.gif)
![串口通信-多機(jī)通信系統(tǒng)-單片機(jī)_第5頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/5/8c06d432-b5f7-4e6a-adf2-dcca9f955374/8c06d432-b5f7-4e6a-adf2-dcca9f9553745.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄一、題目要求與功能分析21.1題目要求21.2功能及整體模塊分析2二 方案論證32.1設(shè)計(jì)目的32.2設(shè)計(jì)思路32.2.1原理分析和討論32.2.2題設(shè)分析4三、電路設(shè)計(jì)63.1 整體功能框架設(shè)計(jì)63.2 硬件電路設(shè)計(jì)73.2.1 主機(jī)硬件電路設(shè)計(jì)83.2.2 從機(jī)硬件電路設(shè)計(jì)113.3軟件電路設(shè)計(jì)133.3.1 協(xié)議設(shè)計(jì)133.3.2 主機(jī)程序流程圖設(shè)計(jì)143.3.3 從機(jī)程序流程圖設(shè)計(jì)15四 系統(tǒng)的調(diào)試與實(shí)現(xiàn)174.1主機(jī)模塊功能調(diào)試174.2從機(jī)模塊調(diào)試174.3整體設(shè)計(jì)功能調(diào)試17五 總結(jié)與體會(huì)19參考文獻(xiàn)20附 錄21一、題目要求與功能分析1.1題目要求本小組的試驗(yàn)題目如下:一、
2、任務(wù):設(shè)計(jì)實(shí)現(xiàn)多臺(tái)單片機(jī)系統(tǒng)之間的串行通信二、基本要求(難度系數(shù)0.8):(1)設(shè)計(jì)一個(gè)主從式多機(jī)通信系統(tǒng),包含1臺(tái)主機(jī)和3臺(tái)從機(jī),主機(jī)和從機(jī)全部為單片機(jī);(2)選擇合適總線接口芯片,正確連接主機(jī)和從機(jī);(3)編程實(shí)現(xiàn)分布式數(shù)據(jù)采集功能,主機(jī)可以獲取各分機(jī)當(dāng)前AD轉(zhuǎn)換結(jié)果,并顯示。三、發(fā)揮部分:(1)完善通信功能。(根據(jù)完成情況加分,上限+0.2)1.2功能及整體模塊分析隨著工業(yè)化要求提高,分布式系統(tǒng)發(fā)展以及控制設(shè)備與監(jiān)控設(shè)備之間通訊需要,多機(jī)通信系統(tǒng)設(shè)計(jì)的監(jiān)控系統(tǒng)逐步普及。此多機(jī)通信系統(tǒng)具有友好的人機(jī)操作界面、強(qiáng)大的IO設(shè)備端口驅(qū)動(dòng)能力,可與各種PLC、智能儀表、智能模塊、板卡、變頻器等實(shí)時(shí)
3、通訊。在檢測(cè)大量模擬量的工業(yè)現(xiàn)場(chǎng)使用相似的多機(jī)通訊系統(tǒng);單片機(jī)接口豐富,與AD轉(zhuǎn)換模塊組合可以完成相同的工作,并且系統(tǒng)可靠、成本低。本次實(shí)驗(yàn)的目的是就是應(yīng)用單片機(jī)的串口通信功能實(shí)現(xiàn)一個(gè)分布式采集系統(tǒng)。整個(gè)系統(tǒng)中包含一片主機(jī)和三片從機(jī),主機(jī)的任務(wù)是實(shí)現(xiàn)對(duì)三片從機(jī)的AD轉(zhuǎn)換結(jié)果的采集并在數(shù)碼管上顯示之。這樣從硬件的角度上將整個(gè)系統(tǒng)分為兩個(gè)模塊主機(jī)模塊和從機(jī)模塊。主機(jī)模塊中包含單片機(jī)模塊、數(shù)碼管顯示子模塊和串口電平轉(zhuǎn)換子模塊,從機(jī)模塊則包括單片機(jī)子模塊、AD轉(zhuǎn)換子模塊和串口電平轉(zhuǎn)換子模塊。就本次實(shí)驗(yàn)而言硬件電路的設(shè)計(jì)難點(diǎn)在于串口電平轉(zhuǎn)換芯片MAX485的連接,而軟件的設(shè)計(jì)在于串口通信協(xié)議的設(shè)定及其相
4、互通信的過程。二 方案論證2.1設(shè)計(jì)目的(1) 進(jìn)一步掌握串行接口控制寄存器SCON及波特率選擇、工作方式的設(shè)置方法。(2) 理解串行接口的多機(jī)通信系統(tǒng)的原理和異步串行通信標(biāo)準(zhǔn)接口RS-485的使用。(3) 進(jìn)一步掌握C語言程序調(diào)試的的方法。(4) 熟悉多機(jī)通信設(shè)置從機(jī)地址來識(shí)別從機(jī)的一種方法。2.2設(shè)計(jì)思路 2.2.1原理分析和討論單片機(jī)構(gòu)成的多機(jī)系統(tǒng)常采用總線型主從式結(jié)構(gòu)。所謂主從式,即在數(shù)個(gè)單片機(jī)中,有一個(gè)是主機(jī),其余的是從機(jī),從機(jī)要服從主機(jī)的調(diào)度、支配。80C51單片機(jī)的串行口方式2和方式3適于這種主從式的通信結(jié)構(gòu)。當(dāng)然采用不同的通信標(biāo)準(zhǔn)時(shí),還需進(jìn)行相應(yīng)的電平轉(zhuǎn)換,有時(shí)還要對(duì)信號(hào)進(jìn)行光
5、電隔離。在實(shí)際的多機(jī)應(yīng)用系統(tǒng)中,常采用RS-485串行標(biāo)準(zhǔn)總線進(jìn)行數(shù)據(jù)傳輸。圖1 多機(jī)通信的主從式示意圖所有從機(jī)的SM2位置1,處于接收地址幀狀態(tài)。主機(jī)發(fā)送一地址幀,其中8位是地址,第9位為地址/數(shù)據(jù)的區(qū)分標(biāo)志,該位置1表示該幀為地址幀。 所有從機(jī)收到地址幀后,都將接收的地址與本機(jī)的地址比較。對(duì)于地址相符的從機(jī),使自己的SM2位置0(以接收主機(jī)隨后發(fā)來的數(shù)據(jù)幀),并把本站地址發(fā)回主機(jī)作為應(yīng)答;對(duì)于地址不符的從機(jī),仍保持SM2=1,對(duì)主機(jī)隨后發(fā)來的數(shù)據(jù)幀不予理睬。從機(jī)發(fā)送數(shù)據(jù)結(jié)束后,要發(fā)送一幀校驗(yàn)和,并置第9位(TB8)為1,作為從機(jī)數(shù)據(jù)傳送結(jié)束的標(biāo)志。主機(jī)接收數(shù)據(jù)時(shí)先判斷數(shù)據(jù)接收標(biāo)志(RB8)
6、,若RB8=1,表示數(shù)據(jù)傳送結(jié)束,。若接收幀的RB8=0,則存數(shù)據(jù)到緩沖區(qū),并準(zhǔn)備接收下幀信息。主機(jī)收到從機(jī)應(yīng)答地址后,確認(rèn)地址是否相符,如果地址不符,發(fā)復(fù)位信號(hào)(數(shù)據(jù)幀中TB8=1);如果地址相符,則清TB8,開始發(fā)送數(shù)據(jù)。從機(jī)收到復(fù)位命令后回到監(jiān)聽地址狀態(tài)(SM2=1)。否則開始接收數(shù)據(jù)和命令。12.2.2題設(shè)分析1.從機(jī)識(shí)別給多點(diǎn)分別設(shè)置地址信息,在數(shù)據(jù)前加地址字段或直接在數(shù)據(jù)傳輸錢發(fā)送地址幀,主機(jī)通過不同的地址信息識(shí)別數(shù)據(jù)源。首先,從機(jī)應(yīng)處于只接受地址幀信息的狀態(tài);然后主機(jī)發(fā)送一幀地址信息;從機(jī)接收到地址幀后,將本機(jī)的地址與地址幀中的地址驚醒比較,如果地址相同,則準(zhǔn)備接收數(shù)據(jù),否則對(duì)其
7、當(dāng)前幀。依然處于只接受地址幀狀態(tài);主機(jī)發(fā)送地址幀后,相應(yīng)的從機(jī)接收數(shù)據(jù),數(shù)據(jù)傳輸完畢后,從機(jī)繼續(xù)回到只接受地址幀的狀態(tài)。在這一過程中,其他從機(jī)不受影響;當(dāng)主機(jī)需要與其他從機(jī)進(jìn)行數(shù)據(jù)傳輸時(shí),可以再次發(fā)送地址幀呼叫主機(jī),重復(fù)這一過程。2.51單片機(jī)串口的多機(jī)通信功能根據(jù)MCS-51串行口的多機(jī)通信能力,多機(jī)通信可以按照以下協(xié)議進(jìn)行: (1) 首先使所有從機(jī)的SM2位置1處于只接收地址幀的狀態(tài)。 (2) 主機(jī)先發(fā)送一幀地址信息,其中8位地址,第9位為地址/數(shù)據(jù)信息的標(biāo)志位,該位置1表示該幀為地址信息。 (3) 從機(jī)接收到地址幀后,各自將接收的地址與本機(jī)的地址比較。對(duì)于地址相符的那個(gè)從機(jī),使SM2位清
8、零,以接收主機(jī)隨后發(fā)來的所有信息;對(duì)于地址不符的從機(jī),仍保持SM2=1,對(duì)主機(jī)隨后發(fā)來的數(shù)據(jù)不予理睬,直至發(fā)送新的地址幀。 (4) 當(dāng)從機(jī)發(fā)送數(shù)據(jù)結(jié)束后,發(fā)送一幀校驗(yàn)和,并置第9位(TB8)為1,作為從機(jī)數(shù)據(jù)傳送結(jié)束標(biāo)志。 (5) 主機(jī)接收數(shù)據(jù)時(shí)先判斷數(shù)據(jù)結(jié)束標(biāo)志(RB8),若RB8=1,表示數(shù)據(jù)傳送結(jié)束,并比較此幀校驗(yàn)和,若正確,則會(huì)送正確信號(hào)00H,此信號(hào)令該從機(jī)復(fù)位(即重新等待地址幀);若校驗(yàn)和出錯(cuò),則發(fā)送0FFH,令該從機(jī)重發(fā)數(shù)據(jù)。若接收幀的RB8=0,則原數(shù)據(jù)到緩沖區(qū),并準(zhǔn)備接收下幀信息。 (6) 若主機(jī)向從機(jī)發(fā)送數(shù)據(jù),從機(jī)在第(3)步中比較地址相符后,從機(jī)令SM2=0,同時(shí)把本站地
9、址發(fā)回主機(jī)。作為應(yīng)答之后才能收到主機(jī)發(fā)送來的數(shù)據(jù)。其它從機(jī)(SM2=1),無法收到數(shù)據(jù)。(7) 主機(jī)收到從機(jī)的應(yīng)答地址后,確認(rèn)地址是否相符。如果地址不符,發(fā)復(fù)位信號(hào)(數(shù)據(jù)幀中TB8=1);如果地址相符,則清TB8,開始發(fā)送數(shù)據(jù)。 (8) 從機(jī)接收到復(fù)位命令后回到監(jiān)聽地址狀態(tài)(SM2=1)。否則開始接收數(shù)據(jù)和命令。2三、電路設(shè)計(jì)3.1 整體功能框架設(shè)計(jì)本設(shè)計(jì)是將各分機(jī)當(dāng)前AD轉(zhuǎn)換結(jié)果傳送給主機(jī),實(shí)際應(yīng)用中為實(shí)現(xiàn)分布式數(shù)據(jù)采集功能即主機(jī)(一般為PC機(jī))對(duì)各個(gè)不同的地點(diǎn)的環(huán)境進(jìn)行實(shí)時(shí)測(cè)量,主機(jī)間隔的發(fā)送地址呼叫各個(gè)從機(jī),從機(jī)進(jìn)行地址驗(yàn)證后啟動(dòng)AD轉(zhuǎn)換,由AD轉(zhuǎn)換芯片將電壓值轉(zhuǎn)換成數(shù)字量,最后把當(dāng)前A
10、D轉(zhuǎn)換結(jié)果由串口MAX485傳送給主機(jī),主機(jī)經(jīng)過處理在發(fā)送給PC機(jī)顯示。分析可知硬件電分為主機(jī)模塊和從機(jī)模塊。主機(jī)模塊中包含單片機(jī)子模塊、LED數(shù)碼管顯示子模塊和串口電平轉(zhuǎn)換子模塊,從機(jī)模塊則包括單片機(jī)子模塊、AD轉(zhuǎn)換子模塊和串口電平轉(zhuǎn)換子模塊。在主模塊中由AT89S51單片機(jī)擔(dān)任主機(jī),六個(gè)LED數(shù)碼管擔(dān)任顯示設(shè)備和一片MAX485擔(dān)任串口的電平轉(zhuǎn)換。在整個(gè)主機(jī)系統(tǒng)中有三個(gè)從機(jī)模塊三個(gè)從機(jī)模塊結(jié)構(gòu)一樣,有一片AT89S51單片機(jī)擔(dān)任從機(jī)外接一片ADC0809轉(zhuǎn)換芯片和一片MAX485擔(dān)任串口的電平轉(zhuǎn)換。串口采用單工及異步通信方式。設(shè)計(jì)大體思路流程圖程如下:圖2 多機(jī)通信的分布式數(shù)據(jù)采集功能應(yīng)用
11、示意圖3.2 硬件電路設(shè)計(jì) 本設(shè)計(jì)是實(shí)現(xiàn)包含1臺(tái)主機(jī)和3臺(tái)從機(jī)主從式多機(jī)通信系統(tǒng),所以硬件電路也分為主機(jī)電路和從機(jī)電路。主機(jī)和從機(jī)的電路原理圖基本一致,都是由單片機(jī)電路和接口電平轉(zhuǎn)換電路,只是從機(jī)電路中需要增加有關(guān)本機(jī)地址的設(shè)置電路。主機(jī)的電路的搭建采用主CPU板、鍵盤顯示接口板各一塊。照實(shí)驗(yàn)原理圖將主CPU板的P0口接到鍵盤顯示接口板的位碼接口,P1口接到鍵盤顯示接口板的段碼的接口。從機(jī)的電路由CPU板和ADDA轉(zhuǎn)換板構(gòu)成。其次是電平轉(zhuǎn)換電路的焊接。電平轉(zhuǎn)換的路的實(shí)現(xiàn)是通過自己搭建電路完成。電平轉(zhuǎn)換的電路主要有四塊MAX485和兩個(gè)100電阻構(gòu)成。四塊MAX485采用總線方式連接,每個(gè)芯片分
12、別引出三個(gè)引腳用于單片的連接。最后將各個(gè)模塊的按照原理圖連接起來。圖3 多機(jī)通信整體模塊電路連接圖3.2.1 主機(jī)硬件電路設(shè)計(jì)如圖所示,U1為單片機(jī)芯片AT89S51,它工作于11.0592MHz時(shí)鐘,此時(shí)鐘決定了串口傳輸波特率的設(shè)置。單片機(jī)的Rxd(P3.0)和TxD(P3.1)和電平轉(zhuǎn)換芯片MAX485,他們是單片機(jī)的串行輸入、輸出信號(hào)。其中P0的作用如下:對(duì)于發(fā)端,P0口用于主機(jī)的數(shù)據(jù)采集,通過讀取P0口的內(nèi)容完成對(duì)發(fā)送數(shù)據(jù)區(qū)的初始化,每隔定時(shí)讀取一次,如果讀到00H,則表明數(shù)據(jù)讀取完畢。對(duì)于收端,P0口用于判斷從機(jī)是否處于忙狀態(tài)。當(dāng)讀到P0口為BBH時(shí),認(rèn)為當(dāng)前從機(jī)忙,需要向主機(jī)發(fā)送忙
13、應(yīng)答。主機(jī)部分的連接示意圖:PORT端口部分為與從機(jī)的串行接口MAX485對(duì)應(yīng)的A、B相連。圖4 多機(jī)通信的主機(jī)部分電路設(shè)計(jì)MAX485串口電平轉(zhuǎn)換電路: 串口電平轉(zhuǎn)換電路的電路圖如圖所示:本實(shí)驗(yàn)中采用MAX485的電平轉(zhuǎn)換芯片。MAX485是一種RS-485標(biāo)準(zhǔn)接口的電平轉(zhuǎn)換芯片。RS-485采用差分式半雙工通信方式,真正實(shí)現(xiàn)多點(diǎn)總線連接,具有傳輸距離遠(yuǎn)可靠性高的特點(diǎn)。圖 5 電平轉(zhuǎn)換電路MAX485接口芯片采用單一電源+5 V工作,額定電流為300 A,采用半雙工通訊方式。它完成將TTL電平轉(zhuǎn)換為RS485電平的功能。MAX485芯片的結(jié)構(gòu)和引腳都非常簡(jiǎn)單,內(nèi)部含有一個(gè)驅(qū)動(dòng)器和接收器。RO
14、和DI端分別為接收器的輸出和驅(qū)動(dòng)器的輸入端,與單片機(jī)連接時(shí)只需分別與單片機(jī)的RXD和TXD相連即可;/RE和DE端分別為接收和發(fā)送的使能端,當(dāng)/RE為邏輯0時(shí),器件處于接收狀態(tài);當(dāng)DE為邏輯1時(shí),器件處于發(fā)送狀態(tài),因?yàn)镸AX485工作在半雙工狀態(tài),所以只需用單片機(jī)的一個(gè)管腳控制這兩個(gè)引腳即可;A端和B端分別為接收和發(fā)送的差分信號(hào)端,當(dāng)A引腳的電平高于B時(shí),代表發(fā)送的數(shù)據(jù)為1;當(dāng)A的電平低于B端時(shí),代表發(fā)送的數(shù)據(jù)為0。在與單片機(jī)連接時(shí)接線非常簡(jiǎn)單。只需要一個(gè)信號(hào)控制MAX485的接收和發(fā)送即可。同時(shí)將A和B端之間加匹配電阻,一般可選100的電阻。如下圖是其芯片資料數(shù)據(jù)手冊(cè)中的典型連接圖:圖 6
15、MAX485接口芯片數(shù)據(jù)手冊(cè)的典型連接圖LED數(shù)碼管顯示電路:LED數(shù)碼管顯示電路如圖2所示顯示子模塊由六個(gè)數(shù)碼管和相應(yīng)的啟動(dòng)芯片構(gòu)成。其中每路通道的采集值用量為數(shù)碼管顯示。為了節(jié)約單片機(jī)的I/O口本題的數(shù)碼管采用MAX7219芯片。給芯片的優(yōu)點(diǎn)在于可完成電路的刷新。MAX7219芯片的SEG A-SEG DP為數(shù)碼管段碼接口,DIG0-DIG7為位碼接口,CLK、DIN、LOAD分別與單片機(jī)P1.0、P1.1、P1.2連接。單片機(jī)通過串行的方式將要顯示的數(shù)據(jù)通過CLK、DIN、LOAD三個(gè)接口送入相應(yīng)的顯示寄存器內(nèi),MAX7219將自動(dòng)完成對(duì)數(shù)碼管的刷新工作。具體的電路如圖所示。圖 7 LE
16、D顯示電路3.2.2 從機(jī)硬件電路設(shè)計(jì)從機(jī)AT89S51的P1口的低四位用于本機(jī)的地址設(shè)定,其他的設(shè)置基本與主機(jī)相似。通過跳線開關(guān)的閉合與打開的組合可以最多設(shè)定16種地址。比如,四位開關(guān)全部斷開時(shí),對(duì)應(yīng)的P0為1111,此時(shí)本機(jī)的地址即為1111H。從機(jī)在開始加電工作前需要根據(jù)整個(gè)系統(tǒng)的要求設(shè)定自己的地址,也就是將開關(guān)狀態(tài)設(shè)置好。這樣從機(jī)在開機(jī)自檢時(shí)就可以獲得本機(jī)的地址。其中將模擬電壓信號(hào)轉(zhuǎn)換成數(shù)字量的AD轉(zhuǎn)換芯片ADC0809的連接如圖中,將數(shù)據(jù)選擇三個(gè)控制端都設(shè)為低電平,即選擇輸入通道IN-0;然后將8位數(shù)據(jù)輸出口D0-D8與從機(jī)8051的P2口相連,將ADC0809的CLOCK端與從機(jī)8
17、051的ALE相連,將ADC0809的STATRT、ENABLE、ALE端分別與從機(jī)8051的P0口的P0-3相連;并加入設(shè)置參考電壓。從機(jī)部分的連接示意圖:兩個(gè)PORT端口部分為與主機(jī)的串行接口MAX485對(duì)應(yīng)的A、B相連,另一個(gè)PORT端U0為采集轉(zhuǎn)變的電壓信號(hào)。根據(jù)設(shè)計(jì)要求繪制從機(jī)模塊電路圖如圖所示。圖8 多機(jī)通信的從機(jī)部分電路設(shè)計(jì)其中AD轉(zhuǎn)換芯片ADC0809與從機(jī)8051的連接具體如下:圖9 ADC0809與8051連接圖ADC0809芯片為8位A/D轉(zhuǎn)換器(28PIN) IN0IN7:8個(gè)模擬通道輸入端。 ADDC、ADDB、 ADDA:通道地址線(000111對(duì)應(yīng)了8個(gè)通道) A
18、LE:地址鎖存允許信號(hào)。 START:?jiǎn)?dòng)轉(zhuǎn)換信號(hào)。EOC:轉(zhuǎn)換結(jié)束信號(hào)。OE:輸出允許信號(hào)(允許讀)。CLK:外部時(shí)鐘脈沖輸入端,典型值640K。VREF(+)、VREF(-):參考電壓輸入端。Vcc:5V電源。GND:地。轉(zhuǎn)換公式為: D=AIN*/Vref*(281)3.3軟件電路設(shè)計(jì)3.3.1 協(xié)議設(shè)計(jì)數(shù)據(jù)傳輸?shù)碾p方均使用9600kbps的數(shù)率進(jìn)行傳輸,使用主從式通行,主、從機(jī)相互發(fā)送或接受數(shù)據(jù),首先使所有從機(jī)的SM2位置1處于只接收地址幀的狀態(tài)。主機(jī)先發(fā)送一幀地址信息,從機(jī)接收到地址幀后,各自將接收的地址與本機(jī)的地址比較。對(duì)于地址相符的那個(gè)從機(jī),使SM2位清零,以接收主機(jī)隨后發(fā)來的所
19、有信息;對(duì)于地址不符的從機(jī),仍保持SM2=1,對(duì)主機(jī)隨后發(fā)來的數(shù)據(jù)不予理睬,直至發(fā)送新的地址幀。當(dāng)從機(jī)發(fā)送數(shù)據(jù)結(jié)束后,發(fā)送一幀校驗(yàn)和,并置第9位(TB8)為1,作為從機(jī)數(shù)據(jù)傳送結(jié)束標(biāo)志。主機(jī)接收數(shù)據(jù)時(shí)先判斷數(shù)據(jù)結(jié)束標(biāo)志,若RB8=1,表示數(shù)據(jù)傳送結(jié)束,并比較此幀校驗(yàn)和,若正確,則會(huì)送正確信號(hào)00H,此信號(hào)令該從機(jī)復(fù)位(即重新等待地址幀);若校驗(yàn)和出錯(cuò),則發(fā)送0FFH,令該從機(jī)重發(fā)數(shù)據(jù)。若接收幀的RB8=0,則原數(shù)據(jù)到緩沖區(qū),并準(zhǔn)備接收下幀信息。若主機(jī)向從機(jī)發(fā)送數(shù)據(jù),從機(jī)令SM2=0,同時(shí)把本站地址發(fā)回主機(jī)。作為應(yīng)答之后才能收到主機(jī)發(fā)送來的數(shù)據(jù)。其它從機(jī)(SM2=1),無法收到數(shù)據(jù)。主機(jī)收到從機(jī)
20、的應(yīng)答地址后,確認(rèn)地址是否相符。如果地址不符,發(fā)復(fù)位信號(hào);如果地址相符,則清TB8,開始發(fā)送數(shù)據(jù)。從機(jī)接收到復(fù)位命令后回到監(jiān)聽地址狀態(tài)。否則開始接收數(shù)據(jù)和命令。設(shè)主機(jī)發(fā)送的地址聯(lián)絡(luò)信號(hào)00H,01H,02H為從機(jī)設(shè)備地址;通常從機(jī)以中斷方式控制和主機(jī)的通信。程序可分成主機(jī)程序和從機(jī)程序,約定一次傳送的數(shù)據(jù)為16個(gè)字節(jié).33.3.2 主機(jī)程序流程圖設(shè)計(jì)依據(jù)試驗(yàn)要求及相應(yīng)的通信協(xié)議現(xiàn)繪制如下的主機(jī)程序流程圖:圖10 主機(jī)的程序流程圖主機(jī)的程序流程大致如上,首先將串口初始化,設(shè)置TMOD、PCON、SCON、TH1、TL1等參數(shù);然后主機(jī)通過串口發(fā)送一個(gè)呼叫地址,等待并接收從機(jī)回答;若地址錯(cuò),則發(fā)送
21、發(fā)復(fù)位信號(hào)給從機(jī)。如果地址相符,則清地址標(biāo)志。然后通過發(fā)命令來控制是主機(jī)發(fā)送數(shù)據(jù)給從機(jī)還是主機(jī)準(zhǔn)備接收數(shù)據(jù),等待從機(jī)的回復(fù)來確定接收狀態(tài)。如果是發(fā)送命令并且從機(jī)已經(jīng)準(zhǔn)備好接收,清校驗(yàn)和,主機(jī)發(fā)送一數(shù)據(jù)給從機(jī)。主機(jī)發(fā)送校驗(yàn)和,從機(jī)根據(jù)校驗(yàn)和后回復(fù)接收是否正確 ,若接收不正確,則要求主機(jī)重新發(fā)送,并置地址標(biāo)志。3.3.3 從機(jī)程序流程圖設(shè)計(jì)圖11 從機(jī)的程序流程圖從機(jī)的程序流程有很大一部分是和主機(jī)的流程一樣的,從機(jī)首先再開機(jī)啟動(dòng)時(shí)通過P1口讀取從機(jī)的本機(jī)地址,串口初始化:TMOD、PCON、SCON等參數(shù)的設(shè)置和主機(jī)相同,首先將SM2設(shè)為1,只接收地址幀。假定準(zhǔn)備好發(fā)送和接收,當(dāng)接收到本機(jī)發(fā)過來的
22、地址時(shí),如果非本機(jī)地址,繼續(xù)等待;如果是本機(jī)地址則把本地址發(fā)回給主機(jī)。如果是復(fù)位信號(hào),則恢復(fù)SM2置一。如果是接收命令,則是等待主機(jī)發(fā)送的數(shù)據(jù),從機(jī)接收準(zhǔn)備好發(fā)送數(shù)據(jù)的狀態(tài),然后清校驗(yàn)和,開始從主機(jī)接收數(shù)據(jù),校驗(yàn)和相同發(fā)00,校驗(yàn)和不同發(fā)0FF,重新接收,接收數(shù)據(jù)完畢;如果是接收命令,則從機(jī)向主機(jī)發(fā)送數(shù)據(jù),并等待發(fā)送,從機(jī)準(zhǔn)備好發(fā)狀態(tài)后,先清校驗(yàn)和,開始向主機(jī)發(fā)送數(shù)據(jù),然后向主機(jī)發(fā)送校驗(yàn)和,等待主機(jī)回復(fù),若主機(jī)接收不正確,則從機(jī)重新發(fā)送數(shù)據(jù)給主機(jī),一直等到發(fā)送數(shù)據(jù)成功;如果主機(jī)判斷命令非法 ,并回復(fù)從機(jī)重新回到發(fā)狀態(tài),最后從機(jī)恢復(fù)監(jiān)聽將SM2位置一。本從機(jī)設(shè)計(jì)為首先通過將其轉(zhuǎn)換的電壓信號(hào),再通
23、過AD轉(zhuǎn)換芯片ADC0809將其轉(zhuǎn)變?yōu)閿?shù)字量傳送給從機(jī)。從機(jī)在收到發(fā)送命令后,將此數(shù)據(jù)通過串口再發(fā)送給主機(jī)。主機(jī)根據(jù)判斷后,給從機(jī)發(fā)送控制命令。四 系統(tǒng)的調(diào)試與實(shí)現(xiàn)對(duì)本課題的設(shè)計(jì)思路清晰之后,我們接下來所需要做的工作就是依據(jù)我們的方案編程實(shí)現(xiàn)功能。本過程可以分為五個(gè)部分:從機(jī)模塊調(diào)試、 LED顯示模塊調(diào)試、電平轉(zhuǎn)換模塊功能調(diào)試、主機(jī)模塊功能調(diào)試、整體設(shè)計(jì)功能調(diào)試。4.1主機(jī)模塊功能調(diào)試當(dāng)主機(jī)發(fā)送地址幀呼叫從機(jī)時(shí)從機(jī)將接收到的內(nèi)容與自己的地址比較,如若相同從機(jī)會(huì)向主機(jī)發(fā)送主機(jī)所需要的數(shù)據(jù)。而主機(jī)接收到正確的數(shù)據(jù),便會(huì)通過LED數(shù)碼管顯示出來,這樣便會(huì)實(shí)現(xiàn)我們預(yù)想的主機(jī)模塊功能。當(dāng)然主機(jī)部分程序包
24、含上面調(diào)試好的LED顯示模塊程序。此處將從機(jī)送來的數(shù)值通過調(diào)用LED顯示模塊子程序顯示出來。LED顯示模塊分為三個(gè)區(qū)域,從機(jī)0、從機(jī)1、從機(jī)2分別占用2個(gè)顯示管。4.2從機(jī)模塊調(diào)試從機(jī)部分實(shí)現(xiàn)的功能是針對(duì)主機(jī)發(fā)送來的地址進(jìn)行對(duì)照,如果是自己的從機(jī)地址,就會(huì)發(fā)送AD轉(zhuǎn)換結(jié)果。為了檢測(cè)此部分的功能是否能夠?qū)崿F(xiàn),我們借助串口測(cè)試軟件,發(fā)送預(yù)設(shè)的從機(jī)地址看看該從機(jī)是否會(huì)把AD轉(zhuǎn)換的結(jié)果發(fā)送來。此從機(jī)調(diào)試模塊分為兩個(gè)層次:1、用一個(gè)簡(jiǎn)單的程序測(cè)試從機(jī)硬件部分是否能正常運(yùn)行;2、在硬件良好的情況下測(cè)試編寫的從機(jī)部分代碼能否順利實(shí)現(xiàn)功能。該部分相比較而言簡(jiǎn)單一點(diǎn),其實(shí)也可以歸為主機(jī)模塊調(diào)試的一部分。LED功
25、能就是用來顯示DA轉(zhuǎn)換的結(jié)果。連接好電路之后,用個(gè)小程序測(cè)試LED顯示功能良好的情況下顯示從機(jī)發(fā)送來的數(shù)據(jù)。4.3整體設(shè)計(jì)功能調(diào)試各個(gè)模塊程序功能調(diào)試好之后,將他們各就各位。但此時(shí)我們又遇到一個(gè)難題:從機(jī)送給主機(jī)的數(shù)據(jù)在經(jīng)MAX485傳遞給主機(jī)時(shí)讀出來的不是理想的結(jié)果,后經(jīng)過示波器查看輸出波形,經(jīng)多次調(diào)試,將主機(jī)與從機(jī)時(shí)序調(diào)整一致才得以在主機(jī)收到從機(jī)發(fā)送來的數(shù)據(jù)。圖12 系統(tǒng)的調(diào)試示意圖五 總結(jié)與體會(huì)參考文獻(xiàn)1 蔡美琴,張為民等.MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用M2版.北京:高等教育出版社,200462 于永,戴加,劉波等.51單片機(jī)C語言常用模塊與綜合系統(tǒng)實(shí)例精講M2版.北京:電子工業(yè)出版
26、社,2008103 楊家新,李華軍等.單片機(jī)程序設(shè)計(jì)及其應(yīng)用-從基礎(chǔ)到實(shí)踐M北京:電子工業(yè)出版社,20063附 錄程序設(shè)計(jì)全部代碼如下:1. 主機(jī)部分程序代碼:#include#includeunsigned char LED_seg10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,;unsigned char LED_bit6=0x01,0x02,0x04,0x08,0x10,0x20;unsigned char LED_buf6=0x00,0x00,0x00,0x00,0x00,0x00;sbit EN=P34;void delay(
27、unsigned long n) unsigned int i; for(i=1;in;i+) ;void convert(unsigned char a ,unsigned char j) unsigned char m,n,i; unsigned char b=0; for(i=0;ia)break; m=i/10; n=i%10; /j=j*2; LED_bufj=LED_segn; LED_bufj+1=LED_segm+0x80; void sbuf_init(void)SCON=0xd0; /工作方式3PCON=0x00;TMOD=(TMOD&0xf)|0x20;TH1=0xfd;TL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)客服工作總結(jié)及時(shí)解答解決用戶問題
- 食品行業(yè)食品安全培訓(xùn)總結(jié)
- AIDS抗病毒治療課件
- 2025年全球及中國血流動(dòng)力學(xué)監(jiān)測(cè)解決方案行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球新能源交流繼電器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球剛性墻庇護(hù)所行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國游戲視頻背景音樂行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球滑移轉(zhuǎn)向巖石拾取器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球甲氧氯普胺片行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國工業(yè)級(jí)硅酸鉀行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 充電樁知識(shí)培訓(xùn)課件
- 2025年七年級(jí)下冊(cè)道德與法治主要知識(shí)點(diǎn)
- 2025年交通運(yùn)輸部長江口航道管理局招聘4人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 老年髖部骨折患者圍術(shù)期下肢深靜脈血栓基礎(chǔ)預(yù)防專家共識(shí)(2024版)解讀
- 偏癱足內(nèi)翻的治療
- 藥企質(zhì)量主管競(jìng)聘
- 信息對(duì)抗與認(rèn)知戰(zhàn)研究-洞察分析
- 心腦血管疾病預(yù)防課件
- 手術(shù)室??谱o(hù)士工作總結(jié)匯報(bào)
- 2025屆高三聽力技巧指導(dǎo)-預(yù)讀、預(yù)測(cè)
- 蘇州市2025屆高三期初陽光調(diào)研(零模)政治試卷(含答案)
評(píng)論
0/150
提交評(píng)論