單片機實訓(xùn)教程電子教案第章2_第1頁
單片機實訓(xùn)教程電子教案第章2_第2頁
單片機實訓(xùn)教程電子教案第章2_第3頁
單片機實訓(xùn)教程電子教案第章2_第4頁
單片機實訓(xùn)教程電子教案第章2_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

6.1實訓(xùn)概要MCS-51單片機內(nèi)部除了4個并行I/O口外,還設(shè)置一個全雙工串行口。在串行接口電路中,二進制數(shù)據(jù)一位一位一次傳送,串行通信只需要2根傳輸線即可完成,傳送成本低,適合于遠距離傳輸。例如,在單片機之間、單片機與IBMPC機之間以及單片機與外部設(shè)備之間的數(shù)據(jù)傳送,就依靠串行通信實現(xiàn)。其缺點是速度較慢。

第6章串行接口控制實訓(xùn)內(nèi)容:串行數(shù)據(jù)傳送串行接口擴展輸出I/O口串行接口擴展輸入I/O口串行口點對點通信雙機通信多機通信預(yù)備知識:1.串行通信基本知識(1)計算機通信方式并行通信并行通信是指在同一時刻,數(shù)據(jù)字節(jié)的各位同時傳送。在這種傳送方式下,數(shù)據(jù)有幾位,就需要幾根數(shù)據(jù)傳輸線。該方式數(shù)據(jù)傳輸速度很快,它適用于計算機與其外設(shè)之間進行信息傳遞。串行通信串行通信是指數(shù)據(jù)一位一位依此傳送。在這種傳送方式下,只需要兩根線:一根發(fā)送數(shù)據(jù)線,一根接收數(shù)據(jù)線。MCS-51單片機與其外部設(shè)備之間的通信可以通過并行通信和串行通信兩種方式實現(xiàn)。如圖6-1所示。P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7GNDD0D1D2外D3部D4設(shè)D5備D6D7GNDRXDTXDGNDTXDRXD外部設(shè)備GND

2)串行通信方式同步傳送同步傳送是按數(shù)據(jù)塊傳送的。它由若干個需要傳送的字符順序連接起來,形成數(shù)據(jù)塊,前面加上特殊的字符—同步字符。同步字符作為數(shù)據(jù)傳送的開始,使接收、發(fā)送雙方取得同步,同步字符可以由用戶定義。在數(shù)據(jù)塊后面加上校驗字符,用來檢查傳送的數(shù)據(jù)塊是否正確。同步傳送方式的字符格式如圖6-2所示:

….

校驗字符2校驗字符1數(shù)據(jù)字節(jié)n數(shù)據(jù)字節(jié)2數(shù)據(jù)字節(jié)1同步字符2同步字符1….異步傳送異步傳送是以一個字符為單位傳送的。多個字符可以一個接一個連續(xù)傳送,也可以斷續(xù)傳送,并且同步時鐘脈沖不傳送到接收方。發(fā)送、接收雙方各用自己的時鐘源來控制發(fā)送和接收。在異步傳送中,通過在發(fā)送的字符前、后加上若干位,分別叫起始位和停止位,利用每個字符的起止信號建立起收、發(fā)雙方的同步關(guān)系。異步傳送的字符格式如圖6-3所示:數(shù)據(jù)位起始位奇偶校驗位停止位異步傳送格式一個異步傳送的字符通常由四部分組成:起始位、數(shù)據(jù)位、奇偶校驗位和停止位。例如:數(shù)據(jù)位為6位,起始位和停止位各占1位的異步傳送字符如圖6-4所示。010011011010100111數(shù)據(jù)位起始位停止位起始位數(shù)據(jù)位停止位(3)波特率波特率是串行通信中一個重要指標(biāo)。它定義位每秒傳送的二進制數(shù)碼的位數(shù)。單位是:位/秒。波特率反應(yīng)了串行通信的速率。 (4)串行通信的制式單工方式:采用這種方式的線路只允許數(shù)據(jù)按照一個固定的方向傳送。半雙工方式:數(shù)據(jù)能夠從一個站傳送到另一個站,也能從另一個站傳回,但不能同時在兩個方向上傳送。全雙工方式:數(shù)據(jù)可以在兩個方向上同時發(fā)送和接收。三種方式如圖6-5所示。

內(nèi)部總線串口控制寄存器發(fā)送緩沖器SBUF發(fā)送控制器接收控制器輸入移位寄存器接收緩沖器SBUF≥1定時器T1串口中斷RXDTXDTIRIP3.1P3.0RXD

串行接口中的特殊功能寄存器串行口控制寄存器SCON:SCON是一個8位的特殊功能寄存器,其字節(jié)地址為98H。用于控制和管理串行口的工作方式、多機通信以及串口中斷標(biāo)志。具體如下:SM0、SM1:串行口工作方式選擇位。單片機的串行口有4種工作方式,通過SM0和SM1的二進制組合取值選擇。具體見表6-1所示。SM0SM1工作方式功能說明波特率00方式0移位寄存器方式fosc/1201方式18位UART可變10方式29位UARTfosc/n,n=64或3211方式39位UART可變

SM2:多機通信控制位。在方式0時,SM2必須為0;在方式1時,如SM2=1,則只有收到有效的停止位時,才會激活RI;在方式2、3時,SM2=1,表示允許多機通信,然后根據(jù)接收到的第9位數(shù)據(jù)的值來決定從機是否接收主機的信號。REN:允許串行接收位。當(dāng)REN=1時,允許串行接收;REN=0時,禁止串行接收。TB8:方式2或方式3中要發(fā)送的第9位數(shù)據(jù)。需要時可由軟件置位或復(fù)位。RB8:方式2或方式3中要接收的第9位數(shù)據(jù)。需要時可由軟件置位或復(fù)位。方式0中不使用該位。方式1中,若SM2=0,則RB8是接收到的停止位。TI:串口發(fā)送中斷標(biāo)志位。由硬件在方式0串行發(fā)送第8位結(jié)束時置“1”,或在其它方式串行發(fā)送停止位的開始時置“1”。必須由軟件清“0”。

RI:串口接收中斷標(biāo)志位。在方式0串行接收到第8位結(jié)束時置“1”,或在其它方式串行接收到停止位的中間時置“1”。必須由軟件清“0”。電源控制寄存器PCON:PCON是一個8位的特殊功能寄存器,其字節(jié)地址為87H。其最高位是串行口波特率系數(shù)控制位,用于設(shè)置串行通信的波特率。具體如下:D7D6~D0PCONSM0DSMOD=1波特率加倍。PCON的其它位為掉電方式控制位。4.串行接口的工作方式方式0 串口方式0為移位寄存器I/O方式,用于擴展I/O口。方式0輸出 數(shù)據(jù)從RXD(P3.0)腳串行輸出,TXD(P3.1)腳輸出同步脈沖。方式0輸入 是否允許串行口接收數(shù)據(jù)由串行口控制寄存器SCON的REN位控制。當(dāng)REN=1且RI=0時,串行口開始接收數(shù)據(jù)。在方式0下,SCON的TB8和RB8沒有使用,多機通信控制位SM2必須為0。

方式1 圖6-7中,方式1的數(shù)據(jù)傳送字符格式為:

起始位停止位圖6-7方式1的數(shù)據(jù)傳送格式串行口以方式1發(fā)送數(shù)據(jù)時,由TXD輸出。在方式1接收數(shù)據(jù)時,數(shù)據(jù)通過RXD端輸入。方式2和方式3:方式2和方式3可用于多機通信。詳見教材。6.2實訓(xùn)22串行數(shù)據(jù)傳送6.2.1實訓(xùn)目的

通過本節(jié)實訓(xùn),主要學(xué)習(xí)下面內(nèi)容:串行數(shù)據(jù)傳送的工作原理。通過實例理解串行通信的含義。理解波特率的概念。6.2.2實訓(xùn)要求將片內(nèi)RAM20H中的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),送到接在P1.0腳上的發(fā)光二極管顯示,其波特率為1位/秒。

6.2.3實訓(xùn)器材MCS-51單片機開發(fā)系統(tǒng)、發(fā)光二極管6.2.4硬件電路原理圖并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)實訓(xùn)電路如圖6-8所示。

6.2籮.5庫實訓(xùn)步斤驟(1)按燙硬件原理尊圖6-8魂連接電路毀,將發(fā)光蹄二極管與年8031胃的P1.劃0

腳相遭連。(2)確理解程磨序,給誘每條指委令加注蒼釋,并們畫出程例序流程青圖。(3)凡將程序餓機器碼再送入單翅片機開婆發(fā)系統(tǒng)脾中,并端檢查程饒序是否緒正確。(4)預(yù)倉先為片內(nèi)掃RAM涉20H單扁元送入一被個數(shù)據(jù),災(zāi)如(20拆H)=5停5H。連賀續(xù)執(zhí)行程敢序,觀察甩發(fā)光二極如管的亮滅杠變化,是假否與傳送經(jīng)的數(shù)據(jù)相銀符。6.2.盾6實訓(xùn)壩程序并行數(shù)據(jù)撕轉(zhuǎn)換成串怒行數(shù)據(jù)輸巨出實訓(xùn)程蒙序見表6贊-2所示然。存儲地址機器碼行號源程序注釋20001ORG2000H20007F082MOVR7,#82002E5203MOVA,20H2004C34CLRC產(chǎn)生起始位200592905MOVP1.0,C20071220176LCALLDELY200A337A1:RLCA200B92908MOVP1.0,C200D1220179LCALLDELY2010DFF810DJNZR7,A12012D311SETBC產(chǎn)生停止位2013929012MOVP1.0,C201580FE13SJMP$20177C0414DELY:MOVR4,#420197EFA15LL3:MOVR6,#250201B7D6416LL2:MOVR5,#100201D0017LL1:NOP201E0018NOP201F0019NOP2020DDFB20DJNZR5,LL12022DEF721DJNZR6,LL22024DCF322DJNZR4,LL320262223RET24END6.2寒.7緊分析與突思考(1)亭將單字享節(jié)數(shù)據(jù)哨傳送程齊序修改世成16桑字節(jié)數(shù)樣據(jù)傳送意程序,沈執(zhí)行并勞觀察。(2)銜修改數(shù)號據(jù)傳送甩時間即蒼波特率誦,觀察窩數(shù)據(jù)傳喝送情況飯。提示:當(dāng)發(fā)送幸“1”見時,發(fā)鑰光二極謹(jǐn)管被點續(xù)亮,但懇若連續(xù)親傳送多央個“1富”時,過其一直淋亮。而令發(fā)送多門個連續(xù)戶“0”掠時,其茂一直熄都滅。發(fā)送10知1010潛10B或傻0101蘆0101藥B時,最升便于觀察瘋其傳送的值波特率。6.3賣實訓(xùn)2火3串現(xiàn)行接口擴煙展輸出I世/O口6.3外.1央實訓(xùn)目智的通過本節(jié)籠實訓(xùn),主漠要學(xué)習(xí)下電面內(nèi)容:串行口擴販展輸出I梅/O口的準(zhǔn)方法。串行接口畢編程控制念。串行數(shù)據(jù)困轉(zhuǎn)換成并眼行數(shù)據(jù)輸粘出。并行數(shù)據(jù)變轉(zhuǎn)換成串情行數(shù)據(jù)輸平出。6.3柿.2誦實訓(xùn)要片求串口方聲式0輸愁出。用尖單片機李串口通皺過串入露/并出膛芯片7券4LS他164趣擴展8盼位輸出襖口,并搜將片內(nèi)綠RAM夏30帖H單元炭的數(shù)據(jù)鉤輸出到釘接在7礙4LS轟164踩上的發(fā)形光二極嘉管顯示陽。多字節(jié)太傳送。稱將片內(nèi)篩RAM鴨30級H~3吩FH共過10個傻字節(jié)單泡元中的梢并行數(shù)暴據(jù)轉(zhuǎn)換寧成串行珠數(shù)據(jù),昆送到接防在P1至.0腳銹上的發(fā)墻光二極躍管顯示明,其波酒特率為于1位/煉秒。6.3.普3實訓(xùn)筆器材MCS救-51臺單片機炕開發(fā)系畫統(tǒng)、7伸4LS什164碗、發(fā)光鉗二極管6.3.途4硬件押電路原理收圖串口擴展血輸出口實饑訓(xùn)電路如啞圖6-9售所示。8031

P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02732

A11A10A9A8A7A6A5A4A3A2A1A0

0××××000000000000

0××××000000000001

0××××000000000010

0××××000000000011

0××××1111111111118031

P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02732

A11A10A9A8A7A6A5A4A3A2A1A0

0××××000000000000

0××××000000000001

0××××000000000010

0××××000000000011

0××××1111111111118031

P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02732

A11A10A9A8A7A6A5A4A3A2A1A0

0××××000000000000

0××××000000000001

0××××000000000010

0××××000000000011

0××××1111111111118031

P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02732

A11A10A9A8A7A6A5A4A3A2A1A0

0××××000000000000

0××××000000000001

0××××000000000010

0××××000000000011

0××××111111111111C

P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02732

A11A10A9A8A7A6A5A4A3A2A1A0

0××××000000000000

0××××000000000001

0××××000000000010

0××××000000000011

0××××111111111111C

P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02732

A11A10A9A8A7A6A5A4A3A2A1A0

0××××000000000000

0××××000000000001

0××××000000000010

0××××000000000011

0××××111111111111C

P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02732

A11A10A9A8A7A6A5A4A3A2A1A0

0××××000000000000

0××××000000000001

0××××000000000010

0××××000000000011

0××××111111111111C

P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02732

A11A10A9A8A7A6A5A4A3A2A1A0

0××××000000000000

0××××000000000001

0××××000000000010

0××××000000000011

0××××111111111111C

P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02732

A11A10A9A8A7A6A5A4A3A2A1A0

0××××000000000000

0××××000000000001

0××××000000000010

0××××000000000011

0××××1111111111116.3.帽5實訓(xùn)軍步驟(1)按禮硬件電路略原理圖連梢接電路。(2)蜓理解程釋序,給她每條指陵令加注唱釋,并斗畫出程尤序流程茅圖。(3)曲分別將謹(jǐn)實訓(xùn)程燈序機器點碼送入導(dǎo)單片機滔開發(fā)系據(jù)統(tǒng)中,淡并檢查零程序是差否正確茂。(4)夢預(yù)先為唱片內(nèi)R隸AM概30H耀單元送抽入一個問數(shù)據(jù),茄如(3翁0H)層=AA藏H。連箭續(xù)執(zhí)行燈程序,須觀察發(fā)才光二極應(yīng)管的亮猾滅變化安,是否觀與傳送同的數(shù)據(jù)本相符。6.3旦.6置實訓(xùn)程冊序串口方式五0擴展輸姥出口實訓(xùn)驕程序見表史6-3、綁表6-4當(dāng)、表6-傍5所示。存儲地址機器碼行號源程序注釋20001ORG2000H2000E5302STRT:MOVA,30H2002F43CPLALED共陽時使用20037598004MOVSCON,#00H2006F5995MOVSBUF,A20083099FD6A1:JNBTI,A1200BC2997CLRTI8END存儲地址機器碼行號源程序注釋00001ORG0000H00000220002LJMPMAIN00233ORG0023H00230220504LJMPZD20005ORG2000H2000E5306MAIN:MOVA,30H2002F47CPLA20037598008MOVSCON,#00H20037598008MOVSCON,#00H2006F5999MOVSBUF,A2008D2AF10SETBEA200AD2AC11SETBES200CD2BC12SETBPS200E80FE13SJMP$205014ORG2050H205053980015ZD:ANLSCON,#00H205385984016MOV40H,SCON20563217RETI18END存儲地址機器碼行號源程序注釋30001ORG3000H30007F0A2STAT:MOVR7,#10循環(huán)次數(shù)300278303MOVR0,#30H30047598004MOVSCON,#00H3007E65SEND:MOVA,@R03008F5996MOVSBUF,A300A3099FD7A1:JNBTI,A1300D5398008ANLSCON,#00H30101230199LCALLD1S30130810INCR03014DFF111DJNZR7,SEND301602300012LJMPSTAT30197C0413D1S:MOVR4,#4延時1秒子程序301B7EFA14LL3:MOVR6,#250301D7D6415LL2:MOVR5,#100301F0016LL1:NOP30200017NOP30210018NOP3022DDFB19DJNZR5,LL13024DEF720DJNZR6,LL23026DCF321DJNZR4,LL330282222RET23END6.3釀.7拔分析與競思考表6-繳3查詢孫方式實如訓(xùn)程序器中第3購行指令之CPL旅A譽在本程蠶序中是熔否合適夕?為什天么?提示:在使用聞串行口軌方式0塞外接串陵入并出商的移位袖寄存器倘擴展并壘行輸出茅口時,暗一般要腎求移位揭寄存器老帶有輸垂出允許壘控制端囑,避免刷數(shù)據(jù)在劣串行輸勿出時,黎并行輸路出端出蜂現(xiàn)不穩(wěn)割定的輸船出。輸出口炒最好再娘連接一幼個寄存象器或鎖午存器,噸以免在必輸出門碼關(guān)閉時申(ST古B=0薦),輸胸出又發(fā)吸生變化毀。6.4供實訓(xùn)2喬4串運行接口擴蝴展輸入I斯/O口6.4網(wǎng).1跌實訓(xùn)目末的通過本果節(jié)實訓(xùn)休,主要睡學(xué)習(xí)下隸面內(nèi)容搶:通過串行湊口擴展輸騰入I/O施口的方法間。串行接勤口編程杠控制。并行數(shù)據(jù)薯轉(zhuǎn)換成串扛行數(shù)據(jù)存趙儲。6.4.在2實訓(xùn)蒼要求串行口釣方式0素輸入。服用單片違機串行旺口通過瓦并入/績串出芯山片74逐LS1宋65擴碌展8位近輸入口攜,外接啞輸入設(shè)扛備,并棵將輸入惡的數(shù)據(jù)衰送到片儲內(nèi)RA飾M2挨0H單診元。6.4.反3實訓(xùn)扇器材MCS-口51單片櫻機開發(fā)系棚統(tǒng)、74絲式LS16單5、8路仁開關(guān)6.4相.4慚硬件電徑路原理易圖串行口擴泡展輸入I鍋/O口實槽訓(xùn)電路如鈴圖6-1發(fā)0所示。6.4脆.5匪實訓(xùn)步穩(wěn)驟(1)攝按硬件亞電路原講理圖6滋-10竟連接電榮路。(2)岸理解程厲序,給跪每條指軟令加注割釋,并錯畫出程步序流程毒圖。(3)分嘴別將實訓(xùn)付程序機器亂碼送入單貌片機開發(fā)塌系統(tǒng)中,辜并檢查程驢序是否正透確。(4)維預(yù)先撥槳動開關(guān)癢,然后秩連續(xù)執(zhí)釋行程序宿,檢查寧片內(nèi)R辭AM福20H戶單元內(nèi)雕容是否攔與開關(guān)捐狀態(tài)相織符。6.4.迷6實訓(xùn)鳴程序串口方興式0擴縱展輸入往I/O燭口實訓(xùn)概程序見預(yù)表6-騎6、表壤6-7等所示。存儲地址機器碼行號源程序注釋30001ORG3000H300078202MOVR0,#20H3002C2903CLRP1.03004D2904SETBP1.030067598105MOVSCON,#10H30093098FD6A1:JNBRI,A1300C5398007ANLSCON,#00H300FE5998MOVA,SBUF3011F69MOV@R0,A301280FE10SJMP$11END存儲地址機器碼行號源程序注釋00001ORG0000H00000230002LJMPMAIN00233ORG0023H00230230504LJMPZD30005ORG3000H300078206MAIN:MOVR0,#20H3002C2907CLRP1.03004D2908SETBP1.030067598109MOVSCON,#10H3009D2AF10SETBEA300BD2AC11SETBES300DD2BC12SETBPS300FE59913MOVA,SBUF3011F614MOV@R0,A301280FE15SJMP$305016ORG3050H305053980017ZD:ANLSCON,#00H305385983018MOV30H,SCON30563219RETI20END提示:通過中斷蠻方式擴展并輸入I/體O口時,碎注意串行呆口中斷源矮入口地址種必須為0著023H莖。CPU響款應(yīng)串行口除中斷后,得必須由用債戶通過程華序清0。6.5六實鍋訓(xùn)25貴雙私機通信6.5.命1實訓(xùn)汁目的通過本節(jié)蚊實訓(xùn),主繩要學(xué)習(xí)下靠面內(nèi)容:單片機串控行口的工回作原理以嘆及接收/冰發(fā)送控制煤過程。單片機蛋串行通儲信程序潑設(shè)計過梅程。6.5醋.2叮實訓(xùn)要勸求將主單片足機片外R靈AM50夫00H開戲始的16呀個字節(jié)單抹元的內(nèi)容斗傳送至從券機片外R文AM50戲00H開鋒始的單元烤中。6.5.簡3實訓(xùn)緣瑞器材MCS冰-51偏單片機齊開發(fā)系包統(tǒng)2臺掏、故導(dǎo)線通信協(xié)星議為保證眾串行通永信成功挺,主機范、從機理雙方必刺須在軟倍件上約五定,稱溝為協(xié)議揮。本通啟信的協(xié)曬議如下棄:雙方均采亭用240奇0波特的吳速率傳送堅,采用全凝雙工通信攻方式。主機發(fā)雷送,從銳機接收典。開始時,幕主機發(fā)送逃一個呼叫鉆信號06脈H,詢問嫩從機是否馳可以接收火。從機收齡到呼叫映信號后腥,若同役意接收寨,則發(fā)編給主機論00H助信號作蘿為應(yīng)答竭;若不屈同意接桶收則發(fā)扛回0F累H信號暗。主機只有晌收到從機億發(fā)來的0青0H后,圖才能將片牌外RAM千500棒0H單元昌開始的數(shù)信據(jù)發(fā)送給國從機;否雞則,繼續(xù)議呼叫,直贊到從機同育意接收為抗止。雙方約優(yōu)定發(fā)送意數(shù)據(jù)的劑格式為畢:從機根據(jù)乞接收到的蝴校驗和,粉判斷已接騰收到的數(shù)車據(jù)是否正嘩確:若接收晶正確,聰則向主甲機發(fā)送才0FH甲。若接收撫錯誤,名則向主草機發(fā)送縱F0H歉;主機只有奮接收到0疤FH,才待算完成發(fā)牲送任務(wù),回被調(diào)底用的程床序。否蝴則,繼膠續(xù)呼叫拐,重發(fā)捏據(jù)。字節(jié)數(shù)數(shù)據(jù)位累加校驗和6.5.歡5程序毯設(shè)計思想1.主機調(diào)發(fā)送程序室的編制波特率設(shè)蔑置初始化寨:設(shè)置定時周器T1工等作在方式趣2,電源愿控制寄存普器PCO條N的SM討OD位為滾“1”,海則要實現(xiàn)呼2400記波特的波疾特率傳送哄數(shù)據(jù),則促定時器T尼1初始值侵為:波特率=絞2SMO病D×T1治的溢出率土/32T1的溢傍出率=1嘩/[(2曉8-T礦1初始值京)×2μ抖S]即:24料00=2辣1/32?!?/[仙(28-損T1初始醉值)×2濁μS]T1初始鍵值=24姿3=F3琴H8031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02764

A12A11A10A9A8A7A6A5A4A3A2A1A0

0000000000000000

00011111111111118031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02764

A12A11A10A9A8A7A6A5A4A3A2A1A0

0000000000000000

00011111111111118031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02764

A12A11A10A9A8A7A6A5A4A3A2A1A0

0000000000000000

00011111111111118031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02764

A12A11A10A9A8A7A6A5A4A3A2A1A0

0000000000000000

00011111111111118031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A02764

A12A11A10A9A8A7A6A5A4A3A2A1A0

0000000000000000

0001111111111111串行口遷初始化晶:設(shè)置串清行口方太式1,遷允許發(fā)俘送。片內(nèi)RA察M和工作訴寄存器的猾設(shè)置:規(guī)定片漲內(nèi)RA信M31楚H、3汁0H存衛(wèi)放發(fā)送貫數(shù)據(jù)塊物的首地勁址;2拔FH存準(zhǔn)放發(fā)送贏數(shù)據(jù)塊況的長度譜;工作母寄存器睛R6為建累加校畫驗和寄賄存器。2.從淹機接收脊程序的所編制:波特率進初始化氏:與主環(huán)機發(fā)送雜程序相辦同。串行口初蛙始化:設(shè)憤置串行口慨方式1,盡允許接收脂。片內(nèi)RA根M和工作柱寄存器的肆設(shè)置:規(guī)定片內(nèi)鵝RAM奏31H、圖30H存年放接收數(shù)撤據(jù)塊的首蓮地址;工瞧作寄存器株R7存放技數(shù)據(jù)塊長鞭度;R6芝為累加校誕驗和寄存沸器。從機應(yīng)友答主機嬸的狀態(tài)皂信息:00H責(zé)—同意臺接收宅0孩FH—領(lǐng)接收正縱常步F0此H—傳戚送出錯6.5安.6性硬件電睡路原理妙圖雙機通美信實訓(xùn)燭硬件電及路如圖碼6-1割1所示煎。6.5瘦.7臣實訓(xùn)步閑驟(1)將飼兩臺單片亞機用三條薯導(dǎo)線如圖車6-11蛙形式連接(2)陜將主機咱發(fā)送實凝訓(xùn)程序效和從機怎接收程厭序分別火送入兩厭臺單片耀機中。(3)將爆主機、從綿機的片內(nèi)醫(yī)RAM茅(2FH仿)=10勸H,(3真0H)=旺00H,搞(31H劍)=50五H。(4)意先將著主機片致外RA趴M從5落000賓H開始呀的16拳個字節(jié)虹單元分艱別送入屋00H聾、11飯H、2牲2H、東……F橫FH。(5)運伯行程序:彼先運行從攤機程序,祝再運行主逮機程序。(6)準(zhǔn)檢查、類對比主因機、從距機的片忍外RA鳴M50鏟00H熱~50昆0FH擔(dān)單元內(nèi)違容是否大一致。6.5.蔥8程序夠流程圖主機發(fā)送填程序流程框及細化流紐奉程如圖6乏-12、賢圖6-1朗3所示。帝從機接收最程序流程珍及細化流畢程如圖6賀-14、父圖6-1楚5所示。戚在此從略峽.存儲地址機器碼行號源程序注釋20001ORG2000H20007589202START:MOVTMOD,#20HT1方式22003758DF33MOVTH1,#0F3HT1初值,波特率2400波特2006758BF34MOVTL1,#0F3H2009D28E5SETBTR1啟動T1200B7598506MOVSCON,#50H串口方式1接收200E7587807MOVPCON,#80H波特率倍增20118531838FMT_RAM:MOVDPH,31H設(shè)置外部RAM地址,存于31H30H20148530829MOVDPL,30H2017AF2F10MOVR7,2FH數(shù)據(jù)塊長度8031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06116

A10A9A8A7A6A5A4A3A2A1A0

0××××00000000000

0××××00000000001

0××××00000000010

0××××00000000011

0××××111111111118031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06116

A10A9A8A7A6A5A4A3A2A1A0

0××××00000000000

0××××00000000001

0××××00000000010

0××××00000000011

0××××111111111118031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06116

A10A9A8A7A6A5A4A3A2A1A0

0××××00000000000

0××××00000000001

0××××00000000010

0××××00000000011

0××××111111111118031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06116

A10A9A8A7A6A5A4A3A2A1A0

0××××00000000000

0××××00000000001

0××××00000000010

0××××00000000011

0××××111111111118031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06116

A10A9A8A7A6A5A4A3A2A1A0

0××××00000000000

0××××00000000001

0××××00000000010

0××××00000000011

0××××111111111118031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06116

A10A9A8A7A6A5A4A3A2A1A0

0××××00000000000

0××××00000000001

0××××00000000010

0××××00000000011

0××××111111111118031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06116

A10A9A8A7A6A5A4A3A2A1A08031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06116

A10A9A8A7A6A5A4A3A2A1A08031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06116

A10A9A8A7A6A5A4A3A2A1A0

0××××00000000000

0××××00000000001

0××××00000000010

0××××00000000011

0××××111111111118031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06116

A10A9A8A7A6A5A4A3A2A1A0

0××××00000000000

0××××00000000001

0××××00000000010

0××××00000000011

0××××1111111111120197E0011MOVR6,#00H清累加校驗和201B740612TX_ACK:MOVA,#06H呼叫信號201DF59913MOVSBUF,A發(fā)送201F10990214WAIT1:JBCTI,RX_YES發(fā)完否?202280FB15SJMPWAIT1未完,繼續(xù)發(fā)202410980216RX_YES:JBCRI,NEXT1收到否?202780FB17SJMPRX_YES未收到,繼續(xù)收2029E59918NEXT1:MOVA,SBUF收到,傳于ACC202BB400ED19CJNEA,#00H,TX_ACK接收到00H嗎?202EEF20TX_BYTES:MOVA,R7是00H,傳塊長202FF59921MOVSBUF,A發(fā)送20312E22ADDA,R6校驗2032FE23MOVR6,A203310990224WAIT2:JBCTI,TX_NEWS發(fā)完否?203680FB25SJMPWAIT2未完,繼續(xù)發(fā)2038E026TX_NEWS:MOVXA,@DPTR發(fā)送數(shù)據(jù)2039F59927MOVSBUF,A203B2E28ADDA,R6校驗203CFE29MOVR6,A203DA330INCDPTR取下一單元203E10990231WAIT3:JBCTI,NEXT2數(shù)據(jù)發(fā)完否?204180FB32SJMPWAIT3未完?繼續(xù)發(fā)2043DFF333NEXT2:DJNZR7,TX_NEWS全部發(fā)完否?2045EE34TX_SUM:MOVA,R6全部發(fā)完,發(fā)送校驗數(shù)據(jù)2046F59935MOVSBUF,A204810990236WAIT4:JBCTI,RX_0FH校驗發(fā)完否?204B80FB37SJMPWAIT4未完?繼續(xù)204D10980238RX_0FH:JBCRI,IF_0FH發(fā)完,接收0FH205080FB39SJMPRX_0FH未收到,繼續(xù)2052E59940IF_0FH:MOVA,SBUF接收2054B40FBA41CJNEA,#0FH,FMT_RAM收到是0FH?否,重來。是,從頭開始。205702200042LJMPSTART43END存儲地址機器碼行號源程序注釋20001ORG2000H20007589202START:MOVTMOD,#20HT1方式22003758DF33MOVTH1,#0F3HT1初值,波特率2400波特2006758BF34MOVTL1,#0F3H2009D28E5SETBTR1啟動T1200B7598506MOVSCON,#50H串口方式1接收200E7587807MOVPCON,#80H波特率倍增20118531838FMT_RAM:MOVDPH,31H設(shè)置外部RAM地址,存于31H30H20148530829MOVDPL,30H20177E0010MOVR6,#00H清累加校驗和201910980211RX_ACK:JBCRI,IF_06H收到06H信號?201C80FB12SJMPRX_ACK未收到,繼續(xù)201EE59913IF_06H:MOVA,SBUF接收2020B4060914CJNEA,#06H,TX_15H接收是06H?2023740015TX_00H:MOVA,#00H是,發(fā)00H應(yīng)答2025F59916MOVSBUF,A202710990E17WAIT1:JBCTI,RX_BYTES發(fā)完?202A80FB18SJMPWAIT1未完,繼續(xù)202C741519TX_15H:MOVA,#15H收到非06H信號,發(fā)15H應(yīng)答202EF59920MOVSBUF,A203010990221WAIT2:JBCTI,HAVE1發(fā)完否?203380FB22SJMPWAIT2未完,繼續(xù)203502201923HAVE1:LJMPRX_ACK未收到06H,重新發(fā)送203810980224RX_BYTES:JBCRI,HAVE2收到06H否?203B80FB25SJMPRX_BYTES未完,繼續(xù)發(fā)203DE59926HAVE2:MOVA,SBUF接收字節(jié)數(shù)203FFF27MOVR7,A暫存2040FE28MOVR6,A204110980229RX_NEWS:JBCRI,HAVE3收完否?204480FB30SJMPRX_NEWS未完?繼續(xù)2046E59931HAVE3:MOVA,SBUF收完,接收數(shù)據(jù)2048F032MOVX@DPTR,A存于片外RAM2049A333INCDPTR修改指針204A2E34ADDA,R6校驗數(shù)據(jù)204BFE35MOVR6,A204CDFF336DJNZR7,RX_NEWS全部接收完?204E10980237RX_SUM:JBCRI,HAVE4RI=1?205180FB38SJMPRX_SUM否,繼續(xù)2053E59939HAVE4:MOVA,SBUF接收2055B5060940CJNEA,06H,TX_ERR是(06H)?2058740F41TX_RIGHT:MOVA,#0FH是,發(fā)0FH信號205AF59942MOVSBUF,A205C10990E43WAIT3:JBCTI,GOOD接收到?205F80FB44SJMPWAIT3未收到,繼續(xù)206174F045TX_ERR:MOVA,#0F0H接收錯,發(fā)送出錯信息F0H2063F59946MOVSBUF,A206510990247WAIT4:JBCTI,AGAIN發(fā)完否?206880FB48SJMPWAIT4未完,繼續(xù)206A02201149AGAIN:LJMPFMT_RAM完成,轉(zhuǎn)206D02200050GOOD:LJMPSTART重新開始51END6.5.嫂10分間析與思考利用圖庫6-1工6電路駝,編寫猾單片機瞎串行口則自發(fā)自早收程序餐,實現(xiàn)矮串行通湖信的自把發(fā)自收亭。1.實替訓(xùn)練習(xí)謙電路如蹈圖6-炒16所何示。8031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06264

A12A11A10A9A8A7A6A5A4A3A2A1A0

0010000000000000

0010000000000001

0010000000000010

00111111111111118031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06264

A12A11A10A9A8A7A6A5A4A3A2A1A0

0010000000000000

0010000000000001

0010000000000010

00111111111111118031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06264

A12A11A10A9A8A7A6A5A4A3A2A1A0

0010000000000000

0010000000000001

0010000000000010

00111111111111112.實賣訓(xùn)練習(xí)航參考程架序?qū)嵱?xùn)練響習(xí)參考撿程序見中表6-惜10所或示。存儲地址機器碼行號源程序注釋20001ORG2000H20007589202START:MOVTMOD,#20H2003758DCC3MOVTH1,#0CCH2006758BCC4MOVTL1,#0CCH2009D28E5SETBTR1200B7598506MOVSCON,#50H200EC2997A1:CLRTI20107590FE8MOVP1,#0FEH201311269ACALLDAY201574FF10MOVA,#0FFH2017F59911MOVSBUF,A20193098FD12JNBRI,$201CC29813CLRRI201EE59914MOVA,SBUF2020F59015MOVP1,A2022112616ACALLDAY202480E817SJMPA120267FFF18DAY:MOVR7,#0FFH20287FFF19DAL:MOVR7,#0FFH202ADFFE20DJNZR7,$202CDEFA21DJNZR6,DAL202E2222RET23END提示:如果不能盒傳送,則星檢查通信丟線路是否勺連接正確哥、線路是譯否過長、貌雙方波特離率是否一冷致,甚至侍考慮更換正另一臺機賄器等。有關(guān)波抓特率的耳設(shè)計請稱參閱相砍關(guān)教材條。6.6毯實枯訓(xùn)26勾多兆機通信6.6區(qū).1龜實訓(xùn)目筑的通過本麥節(jié)實訓(xùn)名,主要灰學(xué)習(xí)下嚷面內(nèi)容臥:單片機付串行口亡的工作攝原理以佛及接收崇/發(fā)送章控制過酒程。單片機多堡機串行通隨信程序設(shè)嘩計過程。6.6若.2盤實訓(xùn)要筋求編程將蔑主機片弄內(nèi)RA頭M50蘆H~5磁FH單洋元內(nèi)容假傳送到傍各從機腔片內(nèi)5藝0H~梳5FH量單元中旗。6.6.泰3實訓(xùn)吃器材MCS-迅51單片酬機開發(fā)系姓統(tǒng)5臺6.6.確4硬件擱電路原理辮圖將5臺單我片機器連繡接成一個顛網(wǎng)絡(luò)系統(tǒng)洗。實現(xiàn)一俘機與多機賀通信。采抽用主從方端式:一臺哈作為主機殲,其余為付從機。主慎機負(fù)責(zé)控黨制,發(fā)送頌數(shù)據(jù),從狹機服從主虹機調(diào)度、后支配,接壞收數(shù)據(jù)。油串行通信圓采用串口云方式2。專實訓(xùn)硬件淹電路如圖搞6-17穿所示。6.6披.5磨程序流男程圖主機、從檢機流程及餡細化流程殊分別如圖玻6-18國、圖6-布19、圖跡6-20兔和圖6-么21所示美。開始接收主機發(fā)來的地址聯(lián)絡(luò)成功?發(fā)送數(shù)據(jù)繼續(xù)聯(lián)絡(luò)發(fā)送完成否?指向下一個從機YNYN開始接收主機發(fā)來的地址繼續(xù)聯(lián)絡(luò)接收數(shù)據(jù)聯(lián)絡(luò)成功?YN6.6腔.6實撫訓(xùn)步驟(1)嬌將5臺沈單片機吹按照硬厭件電路末如圖6搞-17渾形式連蝕接。(2)閱趨讀并理解土程序,填

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論