雙機(jī)通信課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  雙機(jī)通信系統(tǒng)設(shè)計(jì)</b></p><p><b>  一、設(shè)計(jì)要求:</b></p><p>  編程實(shí)現(xiàn)兩片AT89C52芯片近距離通信,一臺(tái)為發(fā)送方,另一臺(tái)為接收方。采用單片機(jī)直接交叉連接的方式,一方發(fā)送由串行口TXD輸出,直接由另一方的串行口數(shù)據(jù)接收端RXD接收。</p><p><

2、;b>  二、設(shè)計(jì)方案分析</b></p><p><b>  1、方案設(shè)計(jì):</b></p><p>  (1)設(shè)計(jì)思路:串行數(shù)據(jù)通信要解決兩個(gè)關(guān)鍵問(wèn)題,一個(gè)是數(shù)據(jù)轉(zhuǎn)換,另一個(gè)是數(shù)據(jù)傳送。所謂數(shù)據(jù)以什么形式傳送。所謂數(shù)據(jù)轉(zhuǎn)換就是指單片機(jī)在接收數(shù)據(jù)時(shí),如何把接收到串行數(shù)據(jù)進(jìn)行發(fā)送。為此編制了兩個(gè)匯編語(yǔ)言程序:其一,為數(shù)據(jù)發(fā)送程序;其二,為數(shù)據(jù)接收程序

3、。為了確保每個(gè)字符發(fā)送出去,并且被接收,發(fā)送接收雙方的波特率設(shè)置一致,并且均采取查詢方式進(jìn)行下一步操作。接收數(shù)據(jù)只需執(zhí)行一次,即駐留在內(nèi)存中,此后,只要二號(hào)單片機(jī)有數(shù)據(jù)要發(fā)送,則一號(hào)機(jī)隨時(shí)接收并顯示在數(shù)碼管上;反之一號(hào)機(jī)發(fā)送,二號(hào)機(jī)接收并顯示。</p><p> ?。?)原因:由于是近距離的雙機(jī)通信,我們采用單片機(jī)直接交叉連接的方式,上位機(jī)發(fā)送的數(shù)據(jù)由串行口TXD端輸出,直接由下位機(jī)的串行口數(shù)據(jù)接收端RXD接收。

4、需要注意的是一定要保證主從機(jī)相同的數(shù)據(jù)傳輸速率,即要求設(shè)置相同的波特率。</p><p>  單片機(jī)串行通信口,串行結(jié)構(gòu)如下:</p><p>  數(shù)據(jù)緩沖器(SBUF)</p><p>  接受或發(fā)送的數(shù)據(jù)都要先送到SBUF緩存。有兩個(gè),一個(gè)緩存,另一個(gè)接受,用同一直接地址99H,發(fā)送時(shí)用指令將數(shù)據(jù)送到SBUF即可啟動(dòng)發(fā)送;接收時(shí)用指令將SBUF中接收到的數(shù)據(jù)取出

5、。</p><p>  b)串行控制寄存器(PCON):SCON用于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:</p><p>  SM0,SM1:串行接口工作方式選擇位,這兩位組合成00,01,10,11對(duì)應(yīng)于工作方式0、1、2、3。串行接口工作方式特點(diǎn)見(jiàn)下表1.2.1.</p><p>  表1.2.1 串行口工作方式表</p><

6、;p>  SM2:多機(jī)通信控制位。</p><p>  REN:接收允許控制位。軟件置1允許接收;軟件置0禁止接收。</p><p>  TB8:方式2或3時(shí),TB8為要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0。</p><p>  RB9:在方式2或3時(shí),RB8位接收到的第9位數(shù)據(jù),實(shí)際為主機(jī)發(fā)送的第9位數(shù)據(jù)TB8,使從機(jī)根據(jù)這一位來(lái)判斷主機(jī)發(fā)送的時(shí)呼叫地

7、址還是要傳送的數(shù)據(jù)。</p><p>  TI:發(fā)送中斷標(biāo)志。發(fā)送完一幀數(shù)據(jù)后由硬件自動(dòng)置位,并申請(qǐng)中斷。必須要軟件清零后才能繼續(xù)發(fā)送。</p><p>  RI:接收中斷標(biāo)志。接收完一幀數(shù)據(jù)后由硬件自動(dòng)置位,并申請(qǐng)中斷。必須要軟件清零后才能繼續(xù)接收。</p><p><b>  c)輸入移位寄存器</b></p><p&g

8、t;  接收的數(shù)據(jù)先串行進(jìn)入輸入移位寄存器,8位數(shù)據(jù)全移入后,再并行送入接收SBUF中。</p><p><b>  d)波特率發(fā)生器</b></p><p>  波特率發(fā)生器用來(lái)控制串行通信的數(shù)據(jù)傳輸速率的,51系列單片機(jī)用定時(shí)器T1作為波特率發(fā)生器,T1設(shè)置在定時(shí)方式。波特率時(shí)用來(lái)表示串行通信數(shù)據(jù)傳輸快慢程度的物理量,定義為每秒鐘傳送的數(shù)據(jù)位數(shù)。</p>

9、;<p>  e)電源控制寄存器PCON,其最高位為SMOD。</p><p><b>  f)波特率計(jì)算</b></p><p>  當(dāng)定時(shí)器T1工作在定時(shí)方式的時(shí)候,定時(shí)器T1溢出率=(T1計(jì)數(shù)率)/(產(chǎn)生溢出所需機(jī)器周期)。由于是定時(shí)方式,T1計(jì)數(shù)率= fORC/12。產(chǎn)生溢出所需機(jī)器周期數(shù)=模M-計(jì)數(shù)初值X。</p><p&g

10、t;<b> ?。?)框圖:</b></p><p>  (4)器材選擇:89C52單片機(jī),四位一體數(shù)碼管,晶振,三極管,八位開(kāi)關(guān)DSW,電容,電阻,按鍵開(kāi)關(guān)以及若干導(dǎo)線等等。</p><p>  2、背景知識(shí)介紹:所涉及的背景知識(shí)如單片機(jī)相關(guān)知識(shí)、電機(jī)調(diào)速方法、PID算法、MATLAB建模和仿真方法等。</p><p>  串行通信是單片機(jī)的

11、一個(gè)重要應(yīng)用。本設(shè)計(jì)就是利用單片機(jī)來(lái)完成一個(gè)系統(tǒng),實(shí)現(xiàn)雙片單片機(jī)串行通信。隨著計(jì)算機(jī)技術(shù)的快速發(fā)展和廣泛應(yīng)用,從智能家用電器到工業(yè)上的控制系統(tǒng)都采用了上位機(jī)與下位機(jī)基于串行通信的主從工作方式,這樣就充分利用了微機(jī)分析處理能力強(qiáng)、速度快的特點(diǎn)及下位機(jī)(單片機(jī))面向控制、使用靈活方便的優(yōu)勢(shì)。</p><p><b>  三、硬件設(shè)計(jì):</b></p><p>  整個(gè)雙機(jī)

12、通信系統(tǒng)以89C52單片機(jī)為主控制器,由數(shù)碼管為核心的數(shù)據(jù)顯示模塊、主機(jī)校驗(yàn)指示模塊、以及單片機(jī)最小系統(tǒng)構(gòu)成。</p><p>  1.以89C51為核心的單片機(jī)最小系統(tǒng)</p><p>  89C51單片機(jī)的最小系統(tǒng)采用內(nèi)部時(shí)鐘方式:以XTAL1和XTAL2引腳外接晶振,構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào),然后給晶振的每個(gè)腳分別外接一個(gè)30PF的電容,以此使晶振快速起振并且達(dá)

13、到約11.0592MHZ的穩(wěn)定頻率。而在單片機(jī)的RST腳接上按鍵開(kāi)關(guān)以及適當(dāng)?shù)碾娮?、電容便?gòu)成按鍵與斷電兩用的復(fù)位電路。具體電路如圖1-1所示:</p><p>  圖1-1單片機(jī)最小系統(tǒng)</p><p><b>  2.?dāng)?shù)碼管顯示模塊</b></p><p>  設(shè)計(jì)中,我們使用的是共陽(yáng)的四位一體數(shù)碼管并使用P0口控制數(shù)碼管段選信號(hào),P2口選

14、取四位為位選信號(hào)控制端。拿到數(shù)碼管后,我們借助萬(wàn)用表進(jìn)行測(cè)試,最終確定為共陽(yáng)型數(shù)碼管,進(jìn)一步測(cè)試便得出了該數(shù)碼管對(duì)應(yīng)的管腳分布圖。</p><p>  3.主機(jī)校驗(yàn)指示模塊</p><p>  主機(jī)接收從機(jī)應(yīng)答信號(hào)進(jìn)行校驗(yàn),成功后點(diǎn)亮P1口的指示燈并保持一段時(shí)間,然后進(jìn)入等待狀態(tài),然后開(kāi)始下一次數(shù)據(jù)傳送。這種握手模式是單片機(jī)在串行編程中使用的提高數(shù)據(jù)傳輸準(zhǔn)確性的有效方法。</p>

15、;<p><b>  四、軟件設(shè)計(jì):</b></p><p> ?。?) 軟件設(shè)計(jì)思路:在主機(jī)編程中,我們?cè)黾恿酥梦蝗?shù)標(biāo)志的編程思路,即通過(guò)查詢?nèi)?shù)標(biāo)志實(shí)現(xiàn)在主函數(shù)回送應(yīng)答并執(zhí)行相應(yīng)服務(wù)程序,如此一來(lái),很好的避免了中斷程序的冗長(zhǎng),提高了程序?qū)崿F(xiàn)的效率。</p><p>  串行通信程序設(shè)計(jì)包括:1)初始化程序:對(duì)特殊功能寄存器SCON和PEON的設(shè)置,

16、來(lái)選擇串行口的工作方式,設(shè)置通信波特率。由于設(shè)計(jì)采用了中斷方式,則還要對(duì)中斷系統(tǒng)進(jìn)行設(shè)置;2)發(fā)送數(shù)據(jù)的程序:51單片機(jī)串口發(fā)送數(shù)據(jù)的條件是串行口已準(zhǔn)備好,此時(shí)標(biāo)志位TI狀態(tài)為“1”,則需將待發(fā)數(shù)據(jù)傳送到發(fā)送數(shù)據(jù)緩沖期SBUF,即啟動(dòng)一次發(fā)送;3)接收數(shù)據(jù)的程序:51單片機(jī)串行口接收數(shù)據(jù)的條件是SCON中的RI置“1”,表明串行口已收到一個(gè)字節(jié)數(shù)據(jù),此時(shí)即可置位取數(shù)標(biāo)志;4)通信控制程序:用來(lái)控制發(fā)送和接收的進(jìn)行。</p>

17、<p><b> ?。?)流程介紹:</b></p><p><b>  MAIN:</b></p><p>  LOOP: MOV A, P1</p><p>  ACALL DISPLAY_OUT</p><p>  MOV PCON, #80H ;串行口的工作方式的設(shè)定,波特

18、率的設(shè)定</p><p>  MOV SCON, #90H</p><p><b>  MOV A, P1</b></p><p>  MOV SBUF, A;把數(shù)據(jù)送入緩沖區(qū)</p><p>  LOOP1: MOV A, SBUF; 發(fā)聯(lián)絡(luò)信號(hào)</p><p>  ACALL DISPLAY

19、_IN; 調(diào)用顯示數(shù)據(jù)輸入程序</p><p>  CLR RI; 允許再接受</p><p><b>  JMP LOOP</b></p><p><b>  SJMP $</b></p><p>  DISPLAY_OUT:</p><p>  MOV B, #16;采

20、用16進(jìn)制顯示</p><p><b>  DIV AB</b></p><p><b>  MOV R1, B</b></p><p><b>  MOV R2, A</b></p><p>  MOV R3, #10</p><p><b>

21、;  LOOP2:</b></p><p><b>  MOV A, R2</b></p><p>  SETB P2.2;選擇輸出片選信號(hào)控制端</p><p>  ACALL DISPLAY;采用查詢方式</p><p>  ACALL DL1;調(diào)用延時(shí)程序</p><p><

22、;b>  CLR P2.2</b></p><p><b>  MOV A, R1</b></p><p><b>  SETB P2.3</b></p><p>  ACALL DISPLAY</p><p><b>  ACALL DL1</b></

23、p><p><b>  CLR P2.3</b></p><p>  DJNZ R3, LOOP2</p><p><b>  RET</b></p><p>  DISPLAY_IN:</p><p>  MOV B, #16;采用16進(jìn)制輸入顯示</p><

24、;p><b>  DIV AB</b></p><p><b>  MOV R1, B</b></p><p><b>  MOV R2, A</b></p><p>  MOV R3, #10</p><p><b>  LOOP3:</b><

25、;/p><p><b>  MOV A, R2</b></p><p>  SETB P2.0;選擇片選信號(hào)控制端</p><p>  ACALL DISPLAY;采用查詢方式</p><p>  ACALL DL1;調(diào)用延時(shí)程序</p><p><b>  CLR P2.0</b&g

26、t;</p><p><b>  MOV A, R1</b></p><p><b>  SETB P2.1</b></p><p>  ACALL DISPLAY</p><p><b>  ACALL DL1</b></p><p><b>

27、;  CLR P2.1</b></p><p>  DJNZ R3, LOOP3</p><p><b>  RET</b></p><p><b>  DISPLAY:</b></p><p>  MOV DPTR, #TABLE;設(shè)置數(shù)據(jù)指針地址初值</p><p

28、>  MOVC A,@A+DPTR;根據(jù)有效地址查詢</p><p>  MOV P0, A; 結(jié)果傳送到輸出口P0</p><p><b>  RET</b></p><p>  DL1: MOV R7, #2;延時(shí)4us子程序</p><p>  DL: MOV R6, #100</p><

29、;p><b>  NOP</b></p><p>  DL6: DJNZ R6, DL6</p><p>  DJNZ R7, DL</p><p><b>  RET</b></p><p>  TABLE: DB 0C0H, 0F9H, 0A4H, 0B0H</p><

30、p>  DB 99H, 92H, 82H, 0F8H</p><p>  DB 80H, 90H, 88H, 83H</p><p>  DB 0C6H, 0A1H, 86H, 8EH</p><p><b>  END </b></p><p>  五、測(cè)試數(shù)據(jù)及設(shè)計(jì)結(jié)果:</p><p&g

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論