0522單片機實訓教程電子教案第6章_第1頁
0522單片機實訓教程電子教案第6章_第2頁
0522單片機實訓教程電子教案第6章_第3頁
0522單片機實訓教程電子教案第6章_第4頁
0522單片機實訓教程電子教案第6章_第5頁
已閱讀5頁,還剩152頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

….

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

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

串行接口中的特殊功能寄存器串行口控制寄存器SCON:SCON是一個8位的特殊功能寄存器,其字節地址為98H。用于控制和管理串行口的工作方式、多機通信以及串口中斷標志。具體如下: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,表示允許多機通信,然后根據接收到的第9位數據的值來決定從機是否接收主機的信號。REN:允許串行接收位。當REN=1時,允許串行接收;REN=0時,禁止串行接收。TB8:方式2或方式3中要發送的第9位數據。需要時可由軟件置位或復位。RB8:方式2或方式3中要接收的第9位數據。需要時可由軟件置位或復位。方式0中不使用該位。方式1中,若SM2=0,則RB8是接收到的停止位。TI:串口發送中斷標志位。由硬件在方式0串行發送第8位結束時置“1”,或在其它方式串行發送停止位的開始時置“1”。必須由軟件清“0”。

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

方式1 圖6-7中,方式1的數據傳送字符格式為:

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

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

6.2.3實訓器材MCS-51單片機開發系統、發光二極管6.2.4硬件電路原理圖并行數據轉換成串行數據實訓電路如圖6-8所示。

6.2.5實訓步驟(1)按硬件原理圖6-8連接電路,將發光二極管與8031的P1.0

腳相連。(2)理解程序,給每條指令加注釋,并畫出程序流程圖。(3)將程序機器碼送入單片機開發系統中,并檢查程序是否正確。(4)預先為片內RAM20H單元送入一個數據,如(20H)=55H。連續執行程序,觀察發光二極管的亮滅變化,是否與傳送的數據相符。6.2.6實訓程序并行數據轉換成串行數據輸出實訓程序見表6-2所示。

存儲地址機器碼行號源程序注釋20001ORG2000H20007F082MOVR7,#82002E5203MOVA,20H2004C34CLRC產生起始位200592905MOVP1.0,C20071220176LCALLDELY200A337A1:RLCA200B92908MOVP1.0,C

200D1220179LCALLDELY2010DFF810DJNZR7,A12012D311SETBC產生停止位2013929012MOVP1.0,C201580FE13SJMP$20177C0414DELY:MOVR4,#420197EFA15LL3:MOVR6,#250201B7D6416LL2:MOVR5,#100201D0017LL1:NOP201E0018NOP

201F0019NOP2020DDFB20DJNZR5,LL12022DEF721DJNZR6,LL22024DCF322DJNZR4,LL320262223RET24END6.2.7分析與思考(1)將單字節數據傳送程序修改成16字節數據傳送程序,執行并觀察。(2)修改數據傳送時間即波特率,觀察數據傳送情況。提示:當發送“1”時,發光二極管被點亮,但若連續傳送多個“1”時,其一直亮。而發送多個連續“0”時,其一直熄滅。發送10101010B或01010101B時,最便于觀察其傳送的波特率。6.3實訓23串行接口擴展輸出I/O口6.3.1實訓目的

通過本節實訓,主要學習下面內容:串行口擴展輸出I/O口的方法。串行接口編程控制。串行數據轉換成并行數據輸出。并行數據轉換成串行數據輸出。6.3.2實訓要求串口方式0輸出。用單片機串口通過串入/并出芯片74LS164擴展8位輸出口,并將片內RAM30H單元的數據輸出到接在74LS164上的發光二極管顯示。多字節傳送。將片內RAM30H~3FH共10個字節單元中的并行數據轉換成串行數據,送到接在P1.0腳上的發光二極管顯示,其波特率為1位/秒。6.3.3實訓器材 MCS-51單片機開發系統、74LS164、發光二極管6.3.4硬件電路原理圖串口擴展輸出口實訓電路如圖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××××111111111111

6.3.5實訓步驟(1)按硬件電路原理圖連接電路。(2)理解程序,給每條指令加注釋,并畫出程序流程圖。(3)分別將實訓程序機器碼送入單片機開發系統中,并檢查程序是否正確。(4)預先為片內RAM30H單元送入一個數據,如(30H)=AAH。連續執行程序,觀察發光二極管的亮滅變化,是否與傳送的數據相符。6.3.6實訓程序串口方式0擴展輸出口實訓程序見表6-3、表6-4、表6-5所示。

存儲地址機器碼行號源程序注釋20001ORG2000H2000E5302STRT:MOVA,30H2002F43CPLALED共陽時使用20037598004MOVSCON,#00H2006F5995MOVSBUF,A20083099FD6A1:JNBTI,A1200BC2997CLRTI8END

存儲地址機器碼行號源程序注釋00001ORG0000H00000220002LJMPMAIN00233ORG0023H00230220504LJMPZD20005ORG2000H2000E5306MAIN:MOVA,30H2002F47CPLA20037598008MOVSCON,#00H

20037598008MOVSCON,#00H2006F5999MOVSBUF,A2008D2AF10SETBEA200AD2AC11SETBES200CD2BC12SETBPS200E80FE13SJMP$205014ORG2050H205053980015ZD:ANLSCON,#00H205385984016MOV40H,SCON20563217RETI18END

存儲地址機器碼行號源程序注釋30001ORG3000H30007F0A2STAT:MOVR7,#10循環次數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查詢方式實訓程序中第3行指令CPLA在本程序中是否合適?為什么?提示:在使用串行口方式0外接串入并出的移位寄存器擴展并行輸出口時,一般要求移位寄存器帶有輸出允許控制端,避免數據在串行輸出時,并行輸出端出現不穩定的輸出。輸出口最好再連接一個寄存器或鎖存器,以免在輸出門關閉時(STB=0),輸出又發生變化。6.4實訓24串行接口擴展輸入I/O口6.4.1實訓目的通過本節實訓,主要學習下面內容:通過串行口擴展輸入I/O口的方法。串行接口編程控制。并行數據轉換成串行數據存儲。

6.4.2實訓要求串行口方式0輸入。用單片機串行口通過并入/串出芯片74LS165擴展8位輸入口,外接輸入設備,并將輸入的數據送到片內RAM20H單元。6.4.3實訓器材MCS-51單片機開發系統、74LS165、8路開關6.4.4硬件電路原理圖串行口擴展輸入I/O口實訓電路如圖6-10所示。

6.4.5實訓步驟(1)按硬件電路原理圖6-10連接電路。(2)理解程序,給每條指令加注釋,并畫出程序流程圖。(3)分別將實訓程序機器碼送入單片機開發系統中,并檢查程序是否正確。(4)預先撥動開關,然后連續執行程序,檢查片內RAM20H單元內容是否與開關狀態相符。6.4.6實訓程序串口方式0擴展輸入I/O口實訓程序見表6-6、表6-7所示。

存儲地址機器碼行號源程序注釋30001ORG3000H300078202MOVR0,#20H3002C2903CLRP1.03004D2904SETBP1.030067598105MOVSCON,#10H30093098FD6A1:JNBRI,A1300C5398007ANLSCON,#00H300FE5998MOVA,SBUF3011F69MOV@R0,A301280FE10SJMP$11END

存儲地址機器碼行號源程序注釋00001ORG0000H00000230002LJMPMAIN00233ORG0023H00230230504LJMPZD30005ORG3000H300078206MAIN:MOVR0,#20H3002C2907CLRP1.03004D2908SETBP1.030067598109MOVSCON,#10H3009D2AF10SETBEA

300BD2AC11SETBES300DD2BC12SETBPS300FE59913MOVA,SBUF3011F614MOV@R0,A301280FE15SJMP$305016ORG3050H305053980017ZD:ANLSCON,#00H305385983018MOV30H,SCON30563219RETI20END

提示:通過中斷方式擴展輸入I/O口時,注意串行口中斷源入口地址必須為0023H。CPU響應串行口中斷后,必須由用戶通過程序清0。

6.5實訓25雙機通信

6.5.1實訓目的

通過本節實訓,主要學習下面內容:單片機串行口的工作原理以及接收/發送控制過程。單片機串行通信程序設計過程。

6.5.2實訓要求將主單片機片外RAM5000H開始的16個字節單元的內容傳送至從機片外RAM5000H開始的單元中。6.5.3實訓器材MCS-51單片機開發系統2臺、導線通信協議

為保證串行通信成功,主機、從機雙方必須在軟件上約定,稱為協議。本通信的協議如下:雙方均采用2400波特的速率傳送,采用全雙工通信方式。主機發送,從機接收。開始時,主機發送一個呼叫信號06H,詢問從機是否可以接收。從機收到呼叫信號后,若同意接收,則發給主機00H信號作為應答;若不同意接收則發回0FH信號。主機只有收到從機發來的00H后,才能將片外RAM5000H單元開始的數據發送給從機;否則,繼續呼叫,直到從機同意接收為止。雙方約定發送數據的格式為:從機根據接收到的校驗和,判斷已接收到的數據是否正確:若接收正確,則向主機發送0FH。若接收錯誤,則向主機發送F0H;主機只有接收到0FH,才算完成發送任務,回被調用的程序。否則,繼續呼叫,重發據。字節數數據位累加校驗和6.5.5程序設計思想

1.主機發送程序的編制波特率設置初始化:設置定時器T1工作在方式2,電源控制寄存器PCON的SMOD位為“1”,則要實現2400波特的波特率傳送數據,則定時器T1初始值為: 波特率=2SMOD×T1的溢出率/32 T1的溢出率=1/[(28-T1初始值)×2μS] 即:2400=21/32×1/[(28-T1初始值)×2μS] T1初始值=243=F3H8031P2.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串行口初始化:設置串行口方式1,允許發送。片內RAM和工作寄存器的設置:規定片內RAM31H、30H存放發送數據塊的首地址;2FH存放發送數據塊的長度;工作寄存器R6為累加校驗和寄存器。2.從機接收程序的編制:波特率初始化:與主機發送程序相同。串行口初始化:設置串行口方式1,允許接收。片內RAM和工作寄存器的設置:規定片內RAM 31H、30H存放接收數據塊的首地址;工作寄存器R7存放數據塊長度;R6為累加校驗和寄存器。從機應答主機的狀態信息:00H—同意接收0FH—接收正常F0H—傳送出錯

6.5.6硬件電路原理圖

雙機通信實訓硬件電路如圖6-11所示。6.5.7實訓步驟(1)將兩臺單片機用三條導線如圖6-11形式連接(2)將主機發送實訓程序和從機接收程序分別送入兩臺單片機中。(3)將主機、從機的片內RAM(2FH)=10H,(30H)=00H,(31H)=50H。(4)先將主機片外RAM從5000H開始的16個字節單元分別送入00H、11H、22H、……FFH。(5)運行程序:先運行從機程序,再運行主機程序。(6)檢查、對比主機、從機的片外RAM5000H~500FH單元內容是否一致。

6.5.8程序流程圖主機發送程序流程及細化流程如圖6-12、圖6-13所示。從機接收程序流程及細化流程如圖6-14、圖6-15所示。在此從略.

存儲地址機器碼行號源程序注釋20001ORG2000H20007589202START:MOVTMOD,#20HT1方式22003758DF33MOVTH1,#0F3HT1初值,波特率2400波特2006758BF34MOVTL1,#0F3H2009D28E5SETBTR1啟動T1200B7598506MOVSCON,#50H串口方式1接收200E7587807MOVPCON,#80H波特率倍增20118531838FMT_RAM:MOVDPH,31H設置外部RAM地址,存于31H30H20148530829MOVDPL,30H2017AF2F10MOVR7,2FH數據塊長度

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發送201F10990214WAIT1:JBCTI,RX_YES發完否?202280FB15SJMPWAIT1未完,繼續發202410980216RX_YES:JBCRI,NEXT1收到否?202780FB17SJMPRX_YES未收到,繼續收2029E59918NEXT1:MOVA,SBUF收到,傳于ACC202BB400ED19CJNEA,#00H,TX_ACK接收到00H嗎?202EEF20TX_BYTES:MOVA,R7是00H,傳塊長202FF59921MOVSBUF,A發送

20312E22ADDA,R6校驗2032FE23MOVR6,A203310990224WAIT2:JBCTI,TX_NEWS發完否?203680FB25SJMPWAIT2未完,繼續發2038E026TX_NEWS:MOVXA,@DPTR發送數據2039F59927MOVSBUF,A203B2E28ADDA,R6校驗203CFE29MOVR6,A203DA330INCDPTR取下一單元203E10990231WAIT3:JBCTI,NEXT2數據發完否?204180FB32SJMPWAIT3未完?繼續發2043DFF333NEXT2:DJNZR7,TX_NEWS全部發完否?2045EE34TX_SUM:MOVA,R6全部發完,發送校驗數據2046F59935MOVSBUF,A204810990236WAIT4:JBCTI,RX_0FH校驗發完否?204B80FB37SJMPWAIT4未完?繼續

204D10980238RX_0FH:JBCRI,IF_0FH發完,接收0FH205080FB39SJMPRX_0FH未收到,繼續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設置外部RAM地址,存于31H30H20148530829MOVDPL,30H20177E0010MOVR6,#00H清累加校驗和

201910980211RX_ACK:JBCRI,IF_06H收到06H信號?201C80FB12SJMPRX_ACK未收到,繼續201EE59913IF_06H:MOVA,SBUF接收2020B4060914CJNEA,#06H,TX_15H接收是06H?2023740015TX_00H:MOVA,#00H是,發00H應答2025F59916MOVSBUF,A202710990E17WAIT1:JBCTI,RX_BYTES發完?202A80FB18SJMPWAIT1未完,繼續202C741519TX_15H:MOVA,#15H收到非06H信號,發15H應答202EF59920MOVSBUF,A203010990221WAIT2:JBCTI,HAVE1發完否?203380FB22SJMPWAIT2未完,繼續203502201923HAVE1:LJMPRX_ACK未收到06H,重新發送203810980224RX_BYTES:JBCRI,HAVE2收到06H否?203B80FB25SJMPRX_BYTES未完,繼續發203DE59926HAVE2:MOVA,SBUF接收字節數203FFF27MOVR7,A暫存2040FE28MOVR6,A204110980229RX_NEWS:JBCRI,HAVE3收完否?204480FB30SJMPRX_NEWS未完?繼續2046E59931HAVE3:MOVA,SBUF收完,接收數據2048F032MOVX@DPTR,A存于片外RAM2049A333INCDPTR修改指針

204A2E34ADDA,R6校驗數據204BFE35MOVR6,A204CDFF336DJNZR7,RX_NEWS全部接收完?204E10980237RX_SUM:JBCRI,HAVE4RI=1?205180FB38SJMPRX_SUM否,繼續2053E59939HAVE4:MOVA,SBUF接收2055B5060940CJNEA,06H,TX_ERR是(06H)?2058740F41TX_RIGHT:MOVA,#0FH是,發0FH信號205AF59942MOVSBUF,A205C10990E43WAIT3:JBCTI,GOOD接收到?205F80FB44SJMPWAIT3未收到,繼續206174F045TX_ERR:MOVA,#0F0H接收錯,發送出錯信息F0H2063F59946MOVSBUF,A206510990247WAIT4:JBCTI,AGAIN發完否?206880FB48SJMPWAIT4未完,繼續206A02201149AGAIN:LJMPFMT_RAM完成,轉206D02200050GOOD:LJMPSTART重新開始51END6.5.10分析與思考利用圖6-16電路,編寫單片機串行口自發自收程序,實現串行通信的自發自收。1.實訓練習電路如圖6-16所示。

8031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06264

A12A11A10A9A8A7A6A5A4A3A2A1A0

0010000000000000

0010000000000001

0010000000000010

00111111111111118031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06264

A12A11A10A9A8A7A6A5A4A3A2A1A0

0010000000000000

0010000000000001

0010000000000010

00111111111111118031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06264

A12A11A10A9A8A7A6A5A4A3A2A1A0

0010000000000000

0010000000000001

0010000000000010

0011111111111111

2.實訓練習參考程序實訓練習參考程序見表6-10所示。存儲地址機器碼行號源程序注釋20001ORG2000H20007589202START:MOVTMOD,#20H2003758DCC3MOVTH1,#0CCH2006758BCC4MOVTL1,#0CCH2009D28E5SETBTR1200B7598506MOVSCON,#50H200EC2997A1:CLRTI

20107590FE8MOVP1,#0FEH201311269ACALLDAY201574FF10MOVA,#0FFH2017F59911MOVSBUF,A20193098FD12JNBRI,$201CC29813CLRRI201EE59914MOVA,SBUF2020F59015MOVP1,A2022112616ACALLDAY202480E817SJMPA120267FFF18DAY:MOVR7,#0FFH20287FFF19DAL:MOVR7,#0FFH202ADFFE20DJNZR7,$202CDEFA21DJNZR6,DAL202E2222RET23END提示:如果不能傳送,則檢查通信線路是否連接正確、線路是否過長、雙方波特率是否一致,甚至考慮更換另一臺機器等。有關波特率的設計請參閱相關教材。

6.6實訓26多機通信

6.6.1實訓目的

通過本節實訓,主要學習下面內容:單片機串行口的工作原理以及接收/發送控制過程。單片機多機串行通信程序設計過程。

6.6.2實訓要求編程將主機片內RAM50H~5FH單元內容傳送到各從機片內50H~5FH單元中。6.6.3實訓器材MCS-51單片機開發系統5臺6.6.4硬件電路原理圖將5臺單片機器連接成一個網絡系統。實現一機與多機通信。采用主從方式:一臺作為主機,其余為從機。主機負責控制,發送數據,從機服從主機調度、支配,接收數據。串行通信采用串口方式2。實訓硬件電路如圖6-17所示。

6.6.5程序流程圖

主機、從機流程及細化流程分別如圖6-18、圖6-19、圖6-20和圖6-21所示。

開始接收主機發來的地址聯絡成功?發送數據繼續聯絡發送完成否?指向下一個從機YNYN

開始接收主機發來的地址繼續聯絡接收數據聯絡成功?YN6.6.6實訓步驟(1)將5臺單片機按照硬件電路如圖6-17形式連接。(2)閱讀并理解程序,填加注釋。(3)將主機發送實訓程序和從機接收程序分別送入單片機中。(4)為主機的片內RAM50H~5FH單元分別送入16個數。(5)運行程序:先運行從機程序,再運行主機程序。(6)檢查、對比主機、從機的片內RAM50H~5FH單元內容是否一致。

6.6.7實訓程序

主機發送程序和從機接收程序見表6-11、表6-12所示。存儲地址機器碼行號源程序注釋20001ORG2000H20007598982MAIN:MOVSCON,#98H

20037599023M1:MOVSBUF,#02H20061099034L1:JBCTI,L220090220065LJMPL1200C1098036L2:JBCRI,S1200F02200C7LJMPL2

2012E5998S1:MOVA,SBUF201464029XRLA,#02H2016600C10JZRIG201875990011ERR:MOVSBUF,#00H201B10990312L3:JBCTI,ER1201E02201B13LJMPL3202102200314ER1:LJMPM12024C29B15RIG:CLRTB82026785016MOVR0,#50H

20287F1017MOVR7,#10H202AE618LOOP:MOVA,@R0202BF59919MOVSBUF,A202D10990320WA:JBCTI,CON203002202D21LJMPWA20330822CON:INCR02034DFF423DJNZR7,LOOP203602200024LJMPMAIN25END

存儲地址機器碼行號源程序注釋20001ORG2000H200078502MOVR0,#50H

20027F103MOVR7,#16

20047598B04SI:MOVSCON,#0B0H20071098035SR1:JBCRI,SR2200A0220076LJMPSR1200DE5997SR2:MOVA,SBUF200F64028XRLA,#02H

201170F49JNZSR12013C29D10CLRSM2201575990211MOVSBUF,#02H201810990312WT:JBCTI,SR3201B02201813LJMPWT201E10980314SR3:JBCRI,SR4202102201E15LJMPSR32024309A0516SR4:JNBRB8,RIG

2027D29D17SETBSM2202902200718LJMPSR1202CE59919RIG:MOVA,SBUF202EF620MOV@R0,A202F0821INCR02030DFEC22DJNZR7,SR3203202200423LJMPSI24END提示:如果不能傳送,則檢查通信線路是否連接正確、線路是否過長、雙方波特率是否一致,甚至考慮更換另一臺機器等。多機通信時,主機、從機必須共地。通信線路不能過長,以1米以內為宜。

習題6.1說明下列概念:(1)串行通信 (2)并行通信(3)異步通信 (4)同步通信(5)波特率 (6)單工通信方式(7)半雙工通信方式 (8)全雙工通信方式6.2MCS-51單片機串行口具有多機通信功能。簡述多機通信的設置和工作過程。

6.3已知異步通信接口的禎格式由一個起始位、七個數據位、一個奇偶校驗位和一個停止位組成。當該接口每分鐘傳送2400個字符時,計算其傳送波特率。6.4試設計一個發送程序,將片內RAM30H~3FH中的數據從串行口輸出。要求將串行口定義為工作方式2,TB8作為奇偶校驗位。6.5設計一個8051單片機的雙機通信系統,并編寫程序將主機片外RAM4000H~4050H的數據塊通過串行口傳送到從機的片外RAM5000H~5050H單元中去。謝謝觀看/歡迎下載BYFAITHIMEANAVISIONOFGOODONECHERISHESANDTHEENTHUSIASMTHATPUSHESONETOSEEKITSFULFILLMENTREGARDLESSOFOBSTACLES.BYFAITHIBYFAITH房地產基礎知識培訓請在此輸入您的副標題LOGO新員工入職培訓系列課程培訓目標請在此輸入您的副標題LOGO1、熟悉房地產相關基本知識2、了解房地產相關的建筑知識3、熟悉房地產銷售基本知識1房地產基本概念2土地及地產知識概要4房地產銷售知識與案例分析3住宅、建筑工程概論課程:房地產基礎知識房地產房地產又稱不動產,是房產與地產的總稱,是指土地、建筑物、地上的附著物及其附帶的各種權利,在經濟學上也叫不動產包括:1、土地2、建筑物及地上附著物3、房地產物權注:房地產物權除所有權外,還有所有權衍生的租賃權、抵押權、土地使用權、典當權等。房產是指房屋的經濟形態,在法律上有明確的權屬關系,在不同的所有者和使用者之間可以進行出租出售或作其他用途的房屋。【第一節:房地產基本概念】【第一節:房地產基本概念】地產是指能夠為其權利人帶來收益或滿足其權利人工作或生活需要的土地資產。地產與土地的根本區別在于有無權屬關系:地產在法律上有著明確的權屬關系,而土地則沒有明確的權屬關系,它是一個統稱。房產、地產兩者間的關系房產與地產之間存在著客觀的、必然的聯系,主要包括幾個方面:1、實物形態上看,房產與地產密不可分2、從價格構成上看,房產價格不論是買賣價格還是租賃價格都包含地產價格3、從權屬關系看,房產所有權和地產所有權是聯系在一起的。【第一節:房地產基本概念】房地產的經濟特性1、生產周期長2、資金密集性3、相互影響性4、易受政策限制性5、房地產的保值增值性

房地產的特性

房地產的自然特性

1、位置的固定性2、使用的耐久性3

溫馨提示

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

評論

0/150

提交評論