




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、徐州工程學院單片機原理及應用課程設計 單片機原理與應用課程設計報告 課程設計:單片機串行多機通信 專業班級: 學生姓名: 學 號: 指導教師: 設計時間: 成 績: 信 電 工 程 學 院目 錄1.緒論11.1串行通信簡介11.2串行多機通信背景與研究意義11.3 課題設計主要研究目的12系統整體方案設計32.1系統的基本方案32.2各模塊方案選擇32.2.1 單片機的選擇32.2.2 鍵盤的選擇32.2.3 顯示模塊的選擇43系統的硬件設計與實現53.1系統硬件概述53.2主機電路模塊53.2.1 單片機53.2.2矩陣鍵盤電路63.2.3控制電路73.2.4復位電路模塊73.3從機電路模塊
2、84.系統的軟件設計94.1軟件設計應用環境與設計語言94.2軟件設計流程94.2.1主機軟件設計流程圖94.2.2 從機軟件設計流程圖104.3串口通信105系統仿真設計135.1 Proteus 軟件介紹135.2 Proteus 仿真圖135.3 硬件調試145.4調試結果146結論15參考文獻16附錄17附錄1:元件清單與硬件圖17附錄2:C語言源程序18附錄3:電路原理圖241.緒論1.1串行通信簡介串行通信可以分為同步通信和異步通信兩類。同步通信是一種連續串行傳送數據的通信方式,一次通信只傳送一幀信息。這里的信息幀與異步通信中的字符幀不同,通常含有若干個數據字符。它們均由同步字符、
3、數據字符和校驗字符組成。其中同步字符位于幀開頭,用于確認數據字符的開始。數據字符在同步字符之后,個數沒有限制,由所需傳輸的數據塊長度來決定;校驗字符有1到2個,用于接收端對接收到的字符序列進行正確性的校驗。同步通信的缺點是要求發送時鐘和接收時鐘保持嚴格的同步。異步通信中,在異步通行中有兩個比較重要的指標:字符幀格式和波特率。數據通常以字符或者字節為單位組成字符幀傳送。字符幀由發送端逐幀發送,通過傳輸線被接收設備逐幀接收。發送端和接收端可以由各自的時鐘來控制數據的發送和接收,這兩個時鐘源彼此獨立,互不同步。接收端檢測到傳輸線上發送過來的低電平邏輯"0"(即字符幀起始位)時,確
4、定發送端已開始發送數據,每當接收端收到字符幀中的停止位時,就知道一幀字符已經發送完畢。1.2串行多機通信背景與研究意義 隨著近代電子科技的飛速發展,單片機作為電子領域的新興產品廣泛應用于工業控制、智能儀器儀表,機電一體化等領域,在各行各業中起著重要作用,由于單片機的使用,越來越多的系統開始向智能化方向發展。多機串行通信也是單片機的一個重要方面。利用單片機的串口通信可以實現多單片機之間的數據的遠程傳輸、數據分析與系統綜合控制功能,尤其是在數據量比較大的場合下,利用一個主機向各個從機發送控制指令是一個很好的解決方案,在這個過程中,串口通信是實現單片機與單片機之間通信的關鍵串行通信作為單片機之間常用
5、的通信方法之一, 由于其通信編程靈活、硬件簡潔并遵循統一的標準, 因此其在工業控制領域得到了廣泛的應用。單片機家族龐大,種類豐富,體積小,功耗低,使用靈活方便,控制能力強,其中流行的單片機有Atmel公司的51系列單片機等,AT8951系列單片機由于廉價,品種豐富而得到了廣泛使用。1.3 課題設計主要研究目的 單片機的多機通信系統通常采用主從模式,用一個單片機作為主機,其他單片機作為從機與主機進行通信。利用現代虛擬仿真技術可對設計進行仿真實驗,與單片機仿真聯系緊密的為proteus仿真,利用keil軟件設計單片機控制系統,然后與proteus進行聯合調試,可對設計的正確性進行檢驗。此次課題是三
6、個單片機實現主從式串行通信的系統,主機發送數據到從機,并在LED數碼管上顯示。并且通過接在主機上的鍵盤輸入數據,通過主機發送到從機。2系統整體方案設計2.1系統的基本方案本次設計通過使用三塊AT89C51單片機芯片實現主從式單片機多機通信,主機通過鍵盤讀取鍵值,并發送給指定的從機,從機根據接收到的地址信息判斷是否接收數據,若接收數據,則通過數碼管顯示。系統設計框圖如圖2-1所示: 圖2.1 系統設計框圖 主機P1口與4X4鍵盤相連,用來讀取數據,通過P0口確定要接收數據的從機的地址。每個從機連接一位共陽極數碼管,P1.0和P1.1分別接地,用來作為地址選擇信號。,每個從機P3.2口連接LED,
7、LED的點亮標志該從機工作。主機的TXD接口分別與從機1和從機2的RXD口相連,主機的RXD接口分別與從機1和從機2的TXD口相連,作為通信線路2.2各模塊方案選擇2.2.1 單片機的選擇采用STC89C51單片機,它是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得STC89C51為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。2.2.2 鍵盤的選擇采用4*4矩陣式鍵來控制,把按鍵按行列組成矩陣,在行列交點上都對應有一個鍵,這樣使用的按鍵要少,為判定有無鍵被按下以及被按鍵的位置,這種稱
8、為鍵掃描法。這樣雖然提高了編程難度,但是節約了單片機大量的I/O 口,免去了上拉電阻為焊接帶來了方便,提高了整塊電路板的美觀度。2.2.3 顯示模塊的選擇采用八段數碼管顯示模塊,同從機地址與主機地址符合時,相應的發光二極管點亮。 3系統的硬件設計與實現3.1系統硬件概述本設計包括主機部分和從機兩個部分,單片機之間通過串口進行通信,主機通過按鍵來選擇要進行通信的從機,進而通過按鍵控制從機的數碼管顯示數字;同時從機可以通過按鍵控制主機連接的LED燈。 數碼管與單片機的連接方式采用并行連接方式。其中用到的硬件有單片機,矩陣鍵盤,發光二極管等。3.2主機電路模塊3.2.1 單片機 AT89C51單片機
9、內部主要由9個部件組成:1個8位中央處理器;4KBFlash存儲器;128B的數據存儲器;32條I/O口線;2個定時器/計數器;1個具有6個中斷源、4個優先級的中斷嵌套結構;用于多處理機通信、I/O擴展或全雙工UART的串行口;特殊功能寄存器;1個片內振蕩器和時鐘電路。AT89S51系列單片機完全繼承了MCS-51的指令系統,共有111條指令,按其功能可分為五大類:數據傳送類指令、算術運算類指令、邏輯運算類指令、控制轉移類指令、布爾操作。AT89C51單片機引腳如圖3-1所示。 圖3.1 AT89C51單片機引腳圖 管腳說明:P0口:8位、漏極開路的雙向I/O口。P0能夠用于外部程序數據存儲器
10、。它可以被定義為數據/地址的第八位。P0口在應用時必須外接上拉電阻,作為輸入時,首先應將引腳置1。P1口:8位雙向I/O口,內部含上拉電阻。作為輸入時,應先將引腳置高;若負載為低電平,則通過內部上拉電阻向外輸出電流。P2口:8位雙向I/O口,內部含上拉電阻。作為輸入時,應先將引腳置高;若負載為低電平,則通過內部上拉電阻向外輸出電流。P3口:8位雙向I/O口,內部含上拉電阻。作為輸入時,應先將引腳置高;若負載為低電平,則通過內部上拉電阻向外輸出電流。P3口除了通用I/O口功能外,還有第二功能。P3口的第二功能定義如表3-1所示。表3.1 P3口第二功能定義引腳定義功能引腳定義功能P3.0-RXD
11、串行輸入口P3.1-TXD串行輸出口P3.2-外部中斷0P3.3-外部中斷1P3.4-T0計時器0外部輸入P3.5-T1計時器1外部輸入P3.6-外部數據存儲器寫選通P3.7-外部數據存儲器讀選通RST:復位輸入,低電平有效。ALE/PROG:地址鎖存允許信號輸出。在正常操作狀態下,該引腳端口輸出恒定頻率的脈沖。其頻率為晶振頻率的1/6,可用作外部定時或其他觸發信號。如果需要,可通過SFR的第0位置禁止ALE操作,但ALE的禁止位不影響對外部存儲器的訪問。:片外程序存儲器選通信號,低電平有效。當AT89S51執行來自外部程序存儲器的指令代碼時,PSEN/每個機器周期兩次有效。在訪問外部數據存儲
12、器時,PSEN/無效。:片外程序存儲器訪問允許信號,低電平有效。XTAL1:外接晶振。在單片機內部是反相放大器的輸入及端。XTAL2:外接晶振。在單片機內部是反相放大器的輸出端,輸入到內部時鐘發生器。3.2.2矩陣鍵盤電路矩陣鍵盤電路如圖3-2所示。單片機的P1口控制矩陣鍵盤。本設計采用4*4矩陣鍵盤。矩陣鍵盤的行線接P1.0-P1.3引腳,列線接P1.4-P1.7引腳。將P1.0-P1.3引腳置為高電平,P1.4-P1.7引腳依次置為低電平,當按鍵沒有按下時,P1.0-P1.3口各引腳狀態不變,一旦有按鍵按下,則P1.0-P1.3就會有引腳變為低電平,這樣,通過讀入P1.0-P1.3的狀態就
13、可得知是哪一個按鍵按下了,然后單片機根據該按鍵代表的功能執行相應的程序。 圖3-2矩陣鍵盤電路原理圖3.2.3控制電路 單片機的時鐘的頻率直接影響著單片機的速度和系統的穩定性。AT89S51片內由一個反相放大器構成振蕩器,可以通過XTAL1和XTAL2產生時鐘。常用的單片機產生時鐘的方法有兩種:內部時鐘方式和外部時鐘方式。本設計選用外部時鐘方式,單片機內部XTAL1引腳為高增益反向放大器的輸入端,XTAL2為輸出端,在這2個引腳之間接石英晶振和電容,就可以構成一個穩定的自激振蕩器。本設計選用的12MHz的晶振。電路原理圖如圖3-3所 11.0592 圖3-3時鐘電路3.2.4復位電路模塊復位是
14、單片機的初始化操作,復位信號是高電平有效,復位操作有上電自動復位、按鍵電平復位、外部脈沖復位和自動復位四種方式。在本設計中復位采用7上電自動復位,當接通電源的瞬間,RST端與Vcc同電位,隨著電容的電壓逐漸上升,RST端的電壓也逐漸下降,于是在RST端便形成了一個正脈沖,只要該正脈沖的寬度持續兩個周期的高電平,就可以實現系統的自動復位,復位電路原理圖如圖3-4所示 圖3-3 上電復位電路 3.3從機電路模塊本設計共設置2路從機,2路從機的電路設計和實現的功能是一樣的,所以這里只介紹其中一路從機的電路設計。從機的P0口連接共陽極數碼管。P0口的07引腳分別接數碼管的adp引腳。數碼管采用靜態工作
15、方式。數碼管引腳圖與接線原理圖如圖3-5和圖3-6所示。 圖3-5 數碼管引腳圖 圖3-6 數碼管連線圖 4.系統的軟件設計4.1軟件設計應用環境與設計語言本設計軟件的設計是在Keil C51的環境下編譯的。Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。Keil C51標準C編譯器為8051微控制器的軟件開發提供了C語言環境,同時保留了匯編代碼高效、快速的特點。4.2軟件設計流程4.2.1主機軟件設計流程圖主機軟件設計流程圖如圖4-1所示。 開始初始化 按鍵掃描 主機發送地
16、址幀YN從機是否應答?通過串口向從機發送數據 從機接收數據 結束圖4.1 主機軟件設計流程圖4.2.2 從機軟件設計流程圖從機軟件設計流程圖如圖4-2所示。 開始 初始化按鍵選中從機N地址是否符合?YLED點亮,允許主從通信數碼管送顯N是否有鍵按下?Y從機接收數據從機數碼管顯示數據 結束圖4.2 從機軟件設計流程圖 4.3串口通信 AT89S51的串行口是一個全雙工的異步串行通信口,可以同時進行接收數據和發送數據,因為口內的接受緩沖器和發送緩沖器在物理上是隔離的,即是完全獨立的。可以通過訪問特殊功能寄存器SBUF,來訪問接收緩沖器和發送緩沖器。接收緩沖器還具有雙緩沖的功能,即它在接收第一個數據
17、字節后,能接受第二個數據字節,但是,在它完成接收第二個數據字節之后,若第一個字節仍未取走,那么該字節數據將丟失。對串行口的控制主要包括對狀態控制寄存器SCON、控制寄存器PCON、和串行數據寄存器SBUF的設置。1、 狀態控制寄存器SCON:SCON是一個逐位定義的8位寄存器,由它控制串行通信的方式選擇、接收和發送,指示串行口的狀態。寄存器SCON既可字節尋址也可位尋址,字節地址為98H,位地址為98H-9FH。其格式如下表4-1所示:表4.1 SCON地址格式位地址9FH9EH9DH9CH9BH9AH99H98H位功能SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行口工作方式
18、選擇位;SM2:允許方式2、3中的多處理機通信位;REN:允許串行接收位,置位時,允許串行接收,清除時,禁止串行接收,可用軟件置位/清除;TB8:方式2和方式3中要發送的第9位數據,可用軟件置位/清除;RB8:方式3和方式3中接收的第9位數據。方式1中接收的是停止位,方式0中不使用這一位。TI:發送中斷標志位,硬件置位,軟件清除。方式0中,在發送第8位末尾置位,在其他方式時,在發送停止位開始時設置;RI:接收中斷標志位。硬件置位,軟件清除。方式0中,在接收第8位末尾置位,在其他方式時,在接收停止位中間設置。2、 控制寄存器PCON:PCON是一個逐位定義的8位寄存器,目前僅有幾位有定義,其中僅
19、最高位SMOD與串行口控制有關,其他位與掉電方式有關,其格式如表4-2所示。表4.2 PCON地址格式D7D6D5D4D3D2D1D0SMOD-GF1GF0PDIDLSMOD:串行通信波特率系數控制位,當SMOD=1時,使波特率加倍。寄存器PCON的地址為87H,只能字節尋址。3、 串行數據寄存器SBUF:SBUF包含在物理上隔離的兩個8位寄存器:發送數據寄存器和接受數據寄存器,但是它們共用一個地址99H,其格式如下表4-3所示。表4.3 數據寄存器格式D7D6D5D4DD2D1D0SD7SD6SD5SD4SD3SD2SD1SD0 串行口控制寄存器SCON中的SM2為方式2或方式3的多機通信控
20、制位,當串行口以方式2或方式3工作時,若SM2程控位為1,此時只有當串行口就收到的第9位數據RB8=1時,才置1中斷標志RI,若接收到的RB8=0,則不產生中斷標志,應用MCS-51串行口的這個標志,便可實現多機通信。在一個多機系統中有一個主機和二個從機組成的多機系統,從機的地址分別為00H,01H,從機系統由初始化程序將串行口編程為方式2或方式3接收,即9位異步通信方式,且置“1”SM2和REN,允許串行口中斷。在主機和某一個從機通信之前,先將從機地址發送給各個從機系統。接著才傳送數據或命令,主機發出的地址信息的第9位為1,數據(包括命令)信息的第9位為0,當主機向各從機發送地址時,各從機的
21、串行口接收到的第9位的信息RB8為1,置“1”RI中斷標志位,各從機80C51響應中斷,執行中斷服務程序。在中斷服務程序中,判斷主機送來的地址是否和本機地址相符合,若為本機的地址,則清“0”SM2位,準備接收主機的數據或命令;若地址不相符,則保持SM2=1狀態。接著主機發送數據,此時各個從機串行口接收到的RB8=0;只有與前面地址相符合的從機系統(即已清“0”SM2位的從機)才能激活中斷標志位RI,從而進入中斷服務程序,在中斷服務程序中接收主機的數據或執行主機的命令,實現和主機的信息傳送;其他的從機因SM2保持為1,又RB8=0不激活中斷標志RI,所接收的數據丟失不作處理,從而保證了主機和從機
22、間通信的正確性。本次設計多機系統為主從式,由主機控制多機之間的通信,從機和從機之間的通信只能經主機才能實現。 5系統仿真設計5.1 Proteus 軟件介紹 Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。在PROTEUS繪制好原理圖后,調入已編譯好的目標代碼文件:*.HEX,可以在PRO
23、TEUS的原理圖中看到模擬的實物運行狀態和過程。 使用Proteus 軟件進行單片機系統仿真設計,是虛擬仿真技術和計算機多媒體技術相結合的綜合運用,有利于培養學生的電路設計能力及仿真軟件的操作能力; 實踐證明,在使用 Proteus 進行系統仿真開發成功之后再進行實際制作,能極大提高單片機系統設計效率。因此,Proteus 有較高的推廣利用價值。 5.2 Proteus 仿真圖 圖5-1 串行多機通信軟件仿真圖5.3 硬件調試所有器件按電路原理圖焊接完成后,接上導線,放入三節電池,接通電源,按下開關。相應的從機對應的發光二極管點亮,按下鍵盤,相應數碼管上顯示鍵值。調試過程中先檢查pcb版各個點
24、是否焊接錯,連線正確,確保線沒有繞道一起。調試途中由于兩從機1.0口同時接地,通過修改第一從機1.0口接地,第二從機1,1口接地。顯示結果正確。5.4調試結果剛開始調試并不是很順利,雖然很小心但調試過程中仍出現了很多的問題,首先電路比較難焊接,必須再加小心以免出現問題難以排查。還有電路中需接電源正負極的線比較多也要很仔細的去焊接。剛開始調試兩個按鍵同事控制兩個發光二極管而不是各自控制,經過同學幫忙大家努力后終于正確的調試出了結果 。 6結論本次課程設計是設計單片機行多機通信,這次課程設計不光是要掌握模單片機書本上的理論基礎,還需要我們鍛煉自己的動手能力。這次課程設計用時2周,需要用到Prote
25、us ISIS繪圖,同時也用到keil編程,仿真驗證程序正確。軟件對女生而言還好一點,最后一步焊接硬件有點困難,因為平時沒練過焊接,剛開始的矩陣鍵盤就焊錯了,之后又重新用吸錫器吸掉,列線掃描用導線代替了。焊接過程遇到許多問題,終于焊接完成后,又發現從機兩個燈只受一個開關控制,剛開始以為開關那塊中斷函數出現問題,又返回去重新改程序,給單片機刷入程序第2次驗證,還是沒有調試正確。最后終于發現了問題,原來是硬件焊接時,想當然的兩從機的P1.0口都接地,于是回去將第2個從機P1.1口接地,果然調試正確。調試成功后真的很開心,因為第一次焊接,所以外表不太美觀,課件,各個元器件的布局真的很重要。第一次做單
26、片機硬件,確實讓我學到了很多東西,很感謝這次的實踐機會。這次實驗從開始準備到焊接硬件完成,雖然短短一點時間,但是它充實了我們的生活,讓我們增長了知識,提高了學習能力,一些軟件的使用,芯片的管教,電解電容的正負極,等等一些細微的東西,都需要自己去圖書館或者網上找相應的資料。這次小課程設計對以后的課程設計都有幫助,提前鍛煉了我們的能力,同時也感謝實驗室的同學的指導以及高老師的指導,讓我順利的完成了課程設計。這次實驗很充實。 參考文獻【1】 高玉芹 單片機原理與應用及C51編程技術 【M】.北京:機械工業出版社。【2】劉泉溪 單片機原理與應用實驗教程 【M】北京航空航天大學出版社。【3】 孫育才.
27、MCS-51系列單片微型計算機及其應用【M】 東南大學出版社,附錄附錄1:元件清單與硬件圖1.元件清單:發光二極管LED-green*2個晶振CRYSTAL,12MHz*3個排阻RESPACK-8 *1個AT89C51芯片*3片按鍵Button* 16個電解電容10uf*3個8段數碼管 * 2個電 容 30p * 3個電 阻 2k * 3個開 關 * 2個2.硬件實物圖:附錄2:C語言源程序主機程序:#include <reg51.h>#include <string.h>#define uchar unsigned charuchar buf;uchar addr,g
28、et_key,key;void delay(uchar t)uchar i;while(t-)for (i=0;i<125;i+); uchar keyscan(void)uchar scancode,tmpcode;P1 = 0xf0; if (P1&0xf0)!=0xf0)delay(10);if (P1&0xf0)!=0xf0)scancode = 0xfe;while(scancode&0x10)!=0)P1 = scancode;if (P1&0xf0)!=0xf0)tmpcode = (P1&0xf0)|0x0f;return(scan
29、code)+(tmpcode);else scancode = (scancode<<1)|0x01;return(0);void senddata(uchar buf)TI = 0;TB8 = 0;SBUF =buf;while(!TI);TI = 0;void Getkey() switch(get_key) case 0x11:/ 1行1列,數字0 key=0xc0; break;case 0x21:/ 1行2列,數字1 key=0xf9;break;case 0x41:/ 1行3列,數字2key=0xa4;break; case 0x81:/ 1行4列,數字3key=0xb
30、0;break;case 0x12:/ 2行1列,數字4 key=0x99;break;case 0x22:/ 2行2列,數字5 key=0x92;break;case 0x42:/ 2行3列,數字6 key=0x82;break;case 0x82:/ 2行4列,數字7 key=0xf8;break;case 0x14:/ 3行1列,數字8 key=0x80; break;case 0x24:/ 3行2列,數字9 key=0x90;break;case 0x44:/ 3行3列,10 key=0x88;break;case 0x84:/ 3行4列,11 key=0x83;break;case 0x18:/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區化糞池出售合同協議
- 工作坊合同協議
- 小區內設立食堂合同協議
- 屋頂改造合同協議書范本
- 小院設計加施工合同協議
- 工地乳膠漆合同協議
- 工會職工勞動合同協議
- 就業協議簽試用合同
- 小學出租合同協議
- 小區開發商合同協議
- 綜合性學習之對聯-中考語文二輪復習
- GB/T 19845-2005機械振動船舶設備和機械部件的振動試驗要求
- 實驗室生物安全程序文件
- 企業融資方式介紹課件
- 藥品生產監督管理辦法
- 福建省普通高中學生綜合素質學期評價表
- 五年級下冊數學課件 -4.1 用數對確定位置 ︳青島版 (共20張PPT)
- 柏拉圖分析案例
- 二襯帶模注漿施工方案
- 《英語委婉語與忌語》PPT課件.ppt
- 調查問卷設計-課件PPT
評論
0/150
提交評論