單片機雙機串口通信_第1頁
單片機雙機串口通信_第2頁
單片機雙機串口通信_第3頁
單片機雙機串口通信_第4頁
單片機雙機串口通信_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

...wd......wd......wd...單片機原理及接口技術課程設計報告設計題目:兩個單片機通信,甲乙可以相互控制學號:姓名:指導教師:信息與電氣工程學院二零一四年六月單片機串口通信設計單片機行業(yè)已經有了很久的歷史,隨著科學技術的進步和社會的開展,單片機行業(yè)更加迅速的開展起來。不管在工業(yè)還是民也上都有很好的開展和應用,得到大家很好的認可和高度的評價。單片機的通信接口是各臺儀表之間或儀表與計算機之間進展信息交換和傳輸?shù)穆?lián)絡裝置。主要有五種類型,串行通信接口、并行通信接口、USB接口、現(xiàn)場總線接口以及以太網接口。串行通信按同步方式可分為異步通信和同步通信兩種根本通信方式。它是在數(shù)字化的根基上用微處理器裝備起來,是計算機技術與電子儀器相結合的產物。它具有數(shù)據(jù)存儲、運算、邏輯判斷能力,能根據(jù)被測參數(shù)的變化自選量程,可自動校正,自動補償,自尋故障等,可以做一些需要人類的智慧才能完成的工作,既具備了一定的智能,故稱為智能儀器。人們習慣將這種內含微型計算機并帶有GP-IB等通信接口的電子儀器稱為智能儀器。1.設計任務結合實際情況,基于AT89C51單片機設計一個兩個單片機通信系統(tǒng)。該系統(tǒng)應滿足的功能要求為:(1)統(tǒng)一用Proteus軟件進展仿真,統(tǒng)一用C語言編程,并且每段程序必須要有注解;硬件仿真圖必須準確無誤,作圖標準;(2)單片機任意選擇,但必須是51或者AVR中的一種;(3)甲機控制乙機的LED亮滅,同時乙機控制甲機的LED亮滅。主要硬件設備:AT89C51單片機、撥碼開關、LED燈、11.0592M晶振、假設干電容和電阻。2.整體方案設計根本功能:兩片單片機之間進展串行通信,發(fā)送端將0~f循環(huán)發(fā)送到接收端,并在接收端顯示。復位電路復位電路原理圖:單片機乙TXDRXD單片機甲RXDTXDP1口LED顯示復位電路復位電路單片機乙TXDRXD單片機甲RXDTXDP1口LED顯示P0口LED顯示對P1口進展輸入晶振電路晶振電路對P2口進展輸入對P2口進展輸入2.1.數(shù)據(jù)傳輸方案比擬與選擇在串行通信中,數(shù)據(jù)是在兩個站之間傳送的。按照數(shù)據(jù)傳送方向,串行通信可采用三種方案。1〕方案一:單工制式單工制式是指甲乙雙方通信只能單向傳送數(shù)據(jù)。單工制式如圖2發(fā)送器A發(fā)送器B發(fā)送器A發(fā)送器B圖2-1-1單工制式2〕方案二:半雙工制式半雙工制式是指通信雙方都具有發(fā)送器和接收器,雙方既可發(fā)送也可接收,但接收和發(fā)送不能同時進展,即發(fā)送時就不能接收,接收時就不能發(fā)送。半雙工制式如圖3B端發(fā)送B端發(fā)送接收A端發(fā)送接送圖2-1-2半雙工制式3〕方案三:全雙工制式全雙工制式是指通信雙方均設有發(fā)送器和接收器,并且將信道劃分為發(fā)送信道和接收信道,兩端數(shù)據(jù)允許同時收發(fā),因此通信效率比前兩種高。全雙工制式如以下列圖4:B端接收B端接收發(fā)送A端發(fā)送接送圖2-1-3全雙工制式因此,本課設采用方案三全雙工制式3.系統(tǒng)硬件電路設計3.1.時鐘電路時鐘電路用于產生單片機工作所需要的時鐘信號,單片機本身就是一個復雜的同步時序電路,為了保證同步工作方式的實現(xiàn),電路應在唯一的時鐘信號控制下嚴格地按時序進展工作。在MCS-51芯片內部有一個高增益反相放大器,其輸入端為芯片引腳X1,輸出端為引腳X2,在芯片的外部跨接晶體振蕩器和微調電容,形成反響電路,就構成了一個穩(wěn)定的自激振蕩器。此電路采用11.0592MHz的石英晶體。時鐘電路如以下列圖5圖3-1時鐘電路3.2.復位電路復位是單片機的初始化操作,進入系統(tǒng)的正常初始化之外,當由于程序運行出錯或操作錯誤是系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需要按復位鍵以重新啟動。RST引腳是單片機復位信號的輸入端,復位信號是高電平有效,其有效時間應持續(xù)24個振蕩周期〔即2個機器周期〕以上,假設使用頻率為12MHz的晶振,則復位信號持續(xù)時間應超過4s才能完成復位操作。復位操作有上電自動復位和按鍵手動復位兩種方式。上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的。按鍵電平復位是通過使復位端經電阻與Vcc電源接通而實現(xiàn)的。在本設計中采用了按鍵電平方式如以下列圖6。圖3-2按鍵電平的連接方式3.3單片機串行通信功能51單片機的串行接口是一個全雙工的接口,它可以作為UART〔通用異步承受和發(fā)送器〕用,也可以作為同步移位存放器用。51單片機串行接口的構造如下:圖3-351單片機串行接口的構造〔1〕數(shù)據(jù)緩沖器〔SBUF〕承受或發(fā)送的數(shù)據(jù)都要先送到SBUF緩存。有兩個,一個緩存,另一個承受,用同一直接地址99H,發(fā)送時用指令將數(shù)據(jù)送到SBUF即可啟動發(fā)送;接收時用指令將SBUF中接收到的數(shù)據(jù)取出?!?〕串行控制存放器〔SCON〕SCON用于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式選擇位,串行接口工作方式可有以下四種工作方式:SM0SM1工作方式功能波特率0008位同步移位存放器〔用于I/O擴展〕fORC/1201110位異步串行通信〔UART〕可變〔T1溢出率*2SMOD/32〕10211位異步串行通信〔UART〕fORC/64或fORC/3211311位異步串行通信〔UART〕可變〔T1溢出率*2SMOD/32〕定時器TI溢出率=(fosc/12)*(1/〔2^k-初值〕)式中T1計數(shù)率=fORC/12,〔2^k-初值〕為生溢產出所需機器周期數(shù),K為定時器位數(shù),與定時器設定工作方式有關:方式0時K=13;方式1時K=16;方式2時K=8。SM2:多機通信控制位。主要用于方式2,3.當SM2=1時可以利用收到的RB8來控制是否激活RI〔RB8=1時收到數(shù)據(jù)進入數(shù)據(jù)緩存器,并激活RI在中斷服務中將數(shù)據(jù)讀走;RB8=0時受到信息丟棄〕;當SM2=0時均可以將數(shù)據(jù)送入緩存器,并激活RI。REN:接收允許控制位。軟件置1允許接收;軟件置0制止接收。TB8:方式2或3時,TB8為要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0,可以用作數(shù)據(jù)奇偶效驗位,或在多機通信中作地址幀/數(shù)據(jù)幀標志位。RB8:在方式2或3時,RB8位接收到的第9位數(shù)據(jù),實際為主機發(fā)送的第9位數(shù)據(jù)TB8,使從機根據(jù)這一位來判斷主機發(fā)送的時呼叫地址還是要傳送的數(shù)據(jù)。TI:發(fā)送中斷標志。發(fā)送完一幀數(shù)據(jù)后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)發(fā)送。RI:接收中斷標志。接收完一幀數(shù)據(jù)后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)接收?!?〕輸入移位存放器接收的數(shù)據(jù)先串行進入輸入移位存放器,8位數(shù)據(jù)全移入后,再并行送入接收SBUF中?!?〕波特率發(fā)生器波特率發(fā)生器用來控制串行通信的數(shù)據(jù)傳輸速率的,51系列單片機用定時器T1作為波特率發(fā)生器,T1設置在定時方式。波特率是用來表示串行通信數(shù)據(jù)傳輸快慢程度的物理量,定義為每秒鐘調制信號變化的次數(shù)?!?〕電源控制存放器PCON其最高位為SMOD即波特率倍增位,當SMOD=1時波特率提高一倍,復位時,SMOD=0。3.4輸出接LED燈圖3-43.5.由撥碼開關控制輸入圖3-53.6.總體硬件圖4.系統(tǒng)程序設計4.1主程序流程圖〔1〕發(fā)送端程序流程圖圖4-1發(fā)送端程序流程圖圖4-1發(fā)送端程序流程圖主程序開場從機是否答復BBH程序初始化主機發(fā)送AAHN主機發(fā)送數(shù)據(jù),檢驗和輸出完成N去除標志位(2)接收方程序流程圖主程序開場主程序開場檢驗和相等程序初始化接收數(shù)據(jù),計算檢驗和N發(fā)送00H至主機接收完成N去除標志位發(fā)送FFH,重新接收顯示圖4-2接收方程序流程圖5.系統(tǒng)調試5.1Proteus軟件仿真調試全高電平時輸入時TXD與RXD波形單片機甲為01010101,單片機乙為1111000全為低電平輸入時TXD與RXD波形5.2硬件調試6.程序清單#include"reg51.h"#defineuintunsignedint#defineucharunsignedcharucharstate_1;voidsend(ucharstate){ SBUF=state; //裝進緩存區(qū) while(TI==0); //TI=0執(zhí)行空語句等待 TI=0; //發(fā)送軟件清零}voidreceive(){while(RI==0); //RI=0時空語句 state_1=SBUF; //讀數(shù)據(jù) RI=0; //接送清零}voidSCON_init(void){SCON=0x50;//方式1雙機串行通信SM0=0 SM1=1REN=1允許串行接送位TMOD=0x20;//T1定時/計數(shù)器1設置為工作方式2PCON=0x00;//波特率倍增位TH1=0xfd;//設置波特率//9600=11.0592*1000000/12/(0x100-0xfd)/32TL1=0xfd;//裝初值時鐘11.0592MTI=0; //TI:發(fā)送中斷標志位,RI:接收中斷標志位。TI=1表示幀發(fā)送完畢,RI=1表示幀接收完成RI=0;TR1=1; //啟動定時器1ES=1; //串口中斷允許位}voidmain(){ P1=0xff; SCON_init(); while(1){ send(P1); //發(fā)送P1 receive(); //發(fā)送數(shù)據(jù) P0=state_1;//接收放入P0}}7.小結這次單片機課程設計是十分有意義的。我們在課堂上掌握的僅僅是理論知識,那么如何去鍛煉我們的實踐能力如何把我們所學的專業(yè)根基課理論知識運用到實踐中去呢我想做課程設計就為我們提供了良好的實踐平臺,現(xiàn)在終于將它完成了,感到受益頗多。第一,這是一份考驗我們自覺性、動手能力與協(xié)作意識的任務。這次單片機課程設計不僅穩(wěn)固了以前所學過的知識,而且學到了很多在書本上沒有學到過的知識,掌握了一種系統(tǒng)的研究方法,可以進展一些簡單的編程。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,從而提高自己的實際動手能力和獨立思考的能力。同時在設計的過程中發(fā)現(xiàn)了自己的缺乏之處,例如對以前所學過的知識理解得不夠深刻,掌握得不夠結實,學習了單片機C語言。第二,未知并不可怕,可怕的是因未知而止步。我們在課堂上所學的知識是非常有限的,這次的課程設計就是個很好的表達。在做本次課程設計的過程中,我感觸最深的當屬查閱大量的設計資料了,無論是課本上的還是網上的都瀏覽了不少相關的程序,從中也借鑒了別人的思想,開闊了自己的思路。做單片機課程設計,對設計者對軟硬件的理解和掌握的要求都比擬高。在設計程序之前,設計者必學對所用單片機的內部構造有一個系統(tǒng)的了解,知道該單片機內有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設計

溫馨提示

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

評論

0/150

提交評論