




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、專業 課程設計任務書 2013 2014 學年 第 2 學期 第 16 周 19 周 題目 基于 RS-485 的單片機通信系統設計 內容及要求 1. 利用 RS485實現單片機的雙向通訊; 2. 通過鍵盤實現從機的選擇、發送數據的輸入; 3.主機顯示發送的數據及從機編號。 4 提高要求:通過鍵盤實現循環工作模式、指定從機這 2 種工作方式的切換。 進度安排 16 周:查找資料,進行系統硬件設計、軟件方案設計; 17 周:硬件制作、軟件的分模塊調試; 19 周:系統聯調; 19 周:設計結果驗收,報告初稿的撰寫。 學生姓名: 11042104 萬嬌 11042109 趙佳慧 指導時間:周一、周
2、三、周五 指導地點: E 樓 610 室 任務下達 2014 年 6 月 3 日 任務完成 2014 年 6 月 27 日 考核方式 1. 評閱 2. 答辯 3. 實際操作 4.其它 指導教師 張小林 系(部)主任 注:1、此表一組一表二份,課程設計小組組長一份;任課教師授課時自帶一份 備查。 2、課程設計結束后與“課程設計小結”、“學生成績單”一并交院教務存 摘要 串口通信是一種廣泛應用于各個領域的通信方式,在遠距離數據傳輸和控 制系統中,可以根據 RS-485 協議實現遠距離傳輸。 此次課設即利用 MAX485 芯片實現半雙工串行通信的雙向通信系統。系統 主要由主機控制模塊、通信模塊、數據
3、輸入模塊、數據顯示模塊和模數轉換模 塊五個部分組成,實現了 利用 RS-485 實現單片機的雙向通信,通過鍵盤實現 從機的選擇、發送數據,主機顯示發送的數據及從機編號,通過鍵盤實現循環 工作模式、指定從機這兩種工作方式的切換。 此系統具有使用方便、操作簡單、便于實現、成本低、可靠性高、可拓展 性強、易于維護等特點,具有較廣泛的應用前景。 關鍵字:單片機; RS-485總線;串行通信;數模轉換 目錄 前言 1. . 第一章 設計內容及要求 2. 1.1 設計內容 2. . 1.2 設計要求 2. . 第二章 系統組成及工作原理 3. 2.1 系統組成 3. . 2.2 工作原理 3. . 第三章
4、 硬件電路方案設計 4. . 3.1 主機控制模塊 4. 3.2 數據顯示模塊 5. 3.3 模數轉換模塊 6. 3.4 鍵盤輸入模塊 7. 3.5 通信模塊 8. . 3.5.1 RS485 通信協議 8. 3.5.2 RS485 通信格式 9. 3.6 從機控制模塊 1.0 3.6.1 單片機最小系統 1.0 3.6.2 顯示模塊 1.1 第四章 軟件設計 1.2. 4.1 通信協議 1.2. 4.1.1 串行通信協議的比較 RS232 RS422 RS48.51 2 4.1.2 通信過程 1.4 4.2 主機程序 1.4. 4.2.1 主程序流程圖 1.4 4.2.2 矩陣鍵盤輸入子程序
5、 1.5 4.2.3 數碼管顯示子程序 1.6 4.2.4 傳輸模塊子程序 1.7 4.3 從機程序 1.7. 4.3.1 從機總流程圖 1.7 4.3.2 接收并顯示子程序 1.8 第五章 實驗調試和測試結果與分析 1.9 第六章 結論 2.0. 第七章 參考文獻 2.1. 附錄一 電路圖 2.2. 附錄二 程序代碼 2.3. 前言 單片機是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處 理能力的中央處理器 CPU、隨機存儲器 RAM 、只讀存儲器 ROM、多種 I/O 口 和中斷系統、定時器 /計數器等功能(可能還包括顯示驅動電路、脈寬調制電 路、模擬多路轉換器、 A/D 轉換器
6、等電路)集成到一塊硅片上構成的一個小而 完善的微型計算機系統。 而在以單片機為基礎的數據采集和實時控制中,通過計算機中的RS-232 接 口進行計算機與單片機之間的命令和數據傳送,就可以對現場進行監測和控 制。由于計算機上的 RS-232 所傳送的距離不超過 30m,所以在遠距離數據傳送 和控制時,可以利用 MAX485 的接口芯片將 RS232協議轉換成 RS-485 協議進 行遠距離傳送。 RS-485 是雙向、半雙工通信協議,允許多個驅動器和接收器掛接在總線 上,其中每個驅動器都能夠脫離總線。接收器輸入靈敏度為 200mV ,這就意 味著若要識別符號或者間隔狀態,接收端電壓必須高于 +2
7、00mV 或者低于 - 200mV。最小接收器輸入阻抗為 12K,驅動器輸出電壓為 1.5V (最小值)、 5V (最大值)。 第一章 設計內容及要求 1.1 設計內容 設計一個基于 RS-485的單片機通信系統。 1.2 設計要求 1. 通過鍵盤輸入數據和顯示要傳輸的數據; 2通過串口利用 RS-485總線,將數據發給單片機主機,并顯示 單片機 1 RS-485 RS-485 單片機 2 圖 1.1 系統設計方案圖 第二章 系統組成及工作原理 2.1 系統組成 系統主要由主機控制模塊、通信模塊、數據輸入模塊、數據顯示模塊和數 模轉換模塊五個部分組成。其系統框圖如下: 數據顯示 鍵 數模 盤
8、轉換 數據輸入 通信主機 通信從機 數 據 顯 示 圖 2.1 系統框圖 在本系統中,通信主機是核心部分,主要完成對數據的處理、操作和運 算;數據輸入模塊主要完成數據的輸入,所有人機交換的數據都從該模塊中輸 入;數據顯示模塊完成了通信雙方的數據顯示;通信模塊即完成數據的接受和 發送,實現數據遠距離傳輸。 2.2 工作原理 基于 RS-485 的單片機通信系統設計的原理是:利用數模轉換模塊或者鍵盤 輸入模塊通過 P3口或者 P1 口將數據輸入到 C51單片機主機里, C51單片機主 機通過程序來控制共陰數碼管顯示數據并利用 MAX485芯片將數據傳輸到 C51單 片機從機中, C51 單片機從機
9、再通過程序控制另一個共陰數碼管顯示傳輸過來 的數據。 第三章 硬件電路方案設計 3.1 主機控制模塊 圖 3.1 主機控制模塊 89C51 是一種帶 4K 字節閃爍可編程可擦除只讀存儲器( FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓、高性能 CMOS8 位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除 100 次。該器件采用 ATMEL高密度非易失存儲器制造技術制造,與工業標準的 MCS-51指令集和輸出管腳相兼容。由于將多功能8 位 CPU和閃爍存儲器組合 在單個芯片中, ATMEL的 89C51 是一種
10、高效微控制器。 a. 數據存儲器 片內為 128個字節,片外最多可外擴至 64k 字節,用來存儲程序在運行期 間的工作變量、運算的中間結果、數據暫存和緩沖、標志位等,所以稱為數據 存儲器。 b. 程序存儲器 由于受集成度限制,片內只讀存儲器一般容量較小,如果片內的只讀存儲 器的容量不夠,則需用擴展片外的只讀存儲器,片外最多可外擴至 64k 字節。 c. 中斷系統 具有 5個中斷源, 2級中斷優先權。 d. 定時器 / 計數器 片內有 2個 16位的定時器 /計數器, 具有四種工作方式。 e. 串行口 1 個全雙工的串行口,具有四種工作方式。可用來進行串行通訊,擴展并 行 I/O 口,甚至與多個
11、單片機相連構成多機系統,從而使單片機的功能更強且 應用更廣。 P1口、 P2口、 P3口、 P4口為 4個并行 8位 I/O 口。 f. 特殊功能寄存器 共有 21 個,用于對片內的個功能的部件進行管理、控制、監視。實際上是 一些控制寄存器和狀態寄存器,是一個具有特殊功能的 RAM區。 g. 微處理器 該單片機中有一個 8 位的微處理器,與通用的微處理器基本相同,同樣包 括了運算器和控制器兩大部分,只是增加了面向控制的處理功能,不僅可處理 數據,還可以進行位變量的處理。 由于集成度的限制,最小應用系統只能用作一些小型的控制單元。其應用 特點: (1)有可供用戶使用的大量 I/O 口線。 (2)
12、內部存儲器容量有限。 (3)應用系統開發具有特殊性。 3.2 數據顯示模塊 本次課設采用八段共陰極數碼管顯示,利用 51 單片機程序來控制數碼管的 顯示。 圖 3.2 數據顯示模塊 3.3 模數轉換模塊 本次課設利用 ADC0832來實現數模轉換 圖3.3 模數轉換模塊 6 ADC0832是 美國國家半導體公司是生產的一種 8 位分辨率、雙通道 A/D 轉換芯片。其分辨率可達 256級,芯片轉換時間僅為 32 S,轉換速度快且穩定性 強,其芯片如下圖所示: 圖 3.4 ADC0832 芯片 其中各管腳功能為: CS片選使能,低電平芯片使能。 CH0 模擬輸入通道 0,或作為 IN+/- 使用。
13、 CH1 模擬輸入通道 1,或作為 IN+/- 使用。 GND 芯片參考 0 電位(地)。 DI 數據信號輸入,選擇通道控制。 DO 數據信號輸出,轉換數據輸出。 CLK 芯片時鐘輸入。 Vcc/REF 電源輸入及參考電壓輸入(復用)。 3.4 鍵盤輸入模塊 圖 3.5 鍵盤輸入模塊 本次課設采用矩陣式鍵盤,其突出優點是 I/O 端口利用率高,可循環操 作,而且掃描鍵盤時占用 CPU時間少, 操作靈活,矩陣鍵盤控制狀態多,編寫程 序較方便,故此模塊采用矩陣式鍵盤。 3.5 通信模塊 圖3.6 通信模塊 MAX485接口芯片是 Maxim公司的一種 RS-485芯片。 MAX485是用于 RS-
14、485 與 RS-422 通信的低功耗收發器,器件中都具有一個驅動器和一個接收器。其驅 動器擺率不受限制,可以實現最高 2.5Mbps 的傳輸速率。 采用單一電源 +5 V 工作,額定電流為 300 A,采用半雙工通訊方式。它 完成將 TTL電平轉換為 RS485 電平的功能。 MAX485芯片的結構和引腳都非常簡單 , 內部含有一個驅動器和接收器。 RO 和 DI 端分別為接收器的輸出和驅動器的輸入端,與單片機連接時只需分別與單 片機的 RXD和 TXD相連即可; RE和 DE端分別為接收和發送的使能端,當 RE 為邏輯 0時,器件處于接收狀態;當 DE為邏輯 1 時,器件處于發送狀態,因為
15、 MAX485工作在半雙工狀態,所以只需用單片機的一個管腳控制這兩個引腳即 可;A端和 B端分別為接收和發送的差分信號端 ,當 A引腳的電平高于 B時,代 表發送的數據為 1;當 A 的電平低于 B 端時,代表發送的數據為 0。在與單片機 連接時接線非常簡單。只需要一個信號控制 MAX485的接收和發送即可。同時將 A和 B端之間加匹配電阻,一般可選 100的電阻。兩個 RS485的 1腳和 4腳接 在對應的單片機上以實現功能。 3.5.1 RS485 通信協議 由于 RS485 通訊是一種半雙工通訊,發送和接收共用同一物理信道。在 任意時刻只允許一臺單機處于發送狀態。因此要求應答的單機必須在
16、偵聽到總 線上呼叫信號已經發送完畢,并且沒有其它單機發出應答信號的情況下,才能 應答。半雙工通訊對主機和從機的發送和接收時序有嚴格的要求。如果在時序 上配合不好,就會發生總線沖突,使整個系統的通訊癱瘓,無法正常工作。要 做到總線上的設備在時序上的嚴格配合,必須要遵從以下幾項原則; 1) 復位時,主從機都應該處于接收狀態。 SN75176芯片的發送和接收功能轉換是由芯片的 RET,DE端控制的。 RET=1,DE=1時,SN75176發送狀態; RET=0,DE=0時, SN75176處于接收狀 態。一般使用單片機的一根口線連接 RET,DE端。在上電復位時,由于硬件電 路穩定需要一定的時間,并
17、且單片機各端口復位后處于高電平狀態,這樣就會 使總線上各個分機處于發送狀態,加上上電時各電路的不穩定,可能向總線發 送信息。因此,如果用一根口線作發送和接收控制信號,應該將口線反向后接 入 SN75176的控制端,使上電時 SN75176處于接收狀態。 另外,在主從機軟件上也應附加若干處理措施,如:上電時或正式通訊之 前,對串行口做幾次空操作,清除端口的非法數據和命令。 2) 控制端 RET,DE的信號的有效脈寬應該大于發送或接收一幀信號的寬 度。 在 RS232,RS422 等全雙工通訊過程中,發送和接收信號分別在不同的 物理鏈路上傳輸,發送端始終為發送端,接收端始終為接收端,不存在發送、
18、接收控制信號切換問題。在 RS485 半雙工通訊中,由于 SN75176的發送和接 收都由同一器件完成,并且發送和接收使用同一物理鏈路,必須對控制信號進 行切換。控制信號何時為高電平,何時為低電平,一般以單片機的 TI,RI 信號 作參考。 發送時,檢測 TI 是否建立起來,當 TI 為高電平后關閉發送功能轉為接收 功能; 接收時,檢測 RI 是否建立起來,當 RI 為高電平后,接收完畢,又可以轉為發 送。 3.5.2 RS485 通信格式 RSS485協議的信息格式如下: (1) 編碼格式;二進制代碼。 (2) 波特率: 9600 b s。 (3) 通信方式:半雙工。 (4) 每個字符由 u
19、 位組成; 1 位:起始位 (0) ; 8 位:數據位; l 位:停止位 (1) 。 (5) 主機詢問的一般格式如下: 從機地址碼 命令碼 數據個數數據 校驗和 (6) 從機應答的一 表 3.1 主機詢問的一般格式 般格式如下: 返回地址碼 命令碼 數據個數數據 校驗和 表 3.2 從機應答的一般格式 按照要求,只需要實現雙機通信即可,并無要求主從機特定地位,但是原 理是相同的 3.6 從機控制模塊 3.6.1 單片機最小系統 圖 3.7 單片機最小系統 單片機最小系統主要包括電源、復位電路和時鐘電路等。 10 單片機復位電路原理是在單片機的復位引腳 RST上外接電阻和電容,實現 上電復位。當
20、復位電平持續兩個機器周期以上時復位有效。復位電平的持續時 間必須大于單片機的兩個機器周期。具體數值可以由RC電路計算出時間常 數。 復位電路由按鍵復位和上電復位兩部分組成。 (1)上電復位: STC89系列單片及為高電平復位,通常在復位引腳 RST上 連接一個電容到 VCC,再連接一個電阻到 GND,由此形成一個 RC充放電回路保 證單片機在上電時 RST腳上有足夠時間的高電平進行復位,隨后回歸到低電平 進入正常工作狀態,這個電阻和電容的典型值為 10K和 10uF。 (2)按鍵復位:按鍵復位就是在復位電容上并聯一個開關,當開關按下時 電容被放電、 RST也被拉到高電平,而且由于電容的充電,會
21、保持一段時間的 高電平來使單片機復位。 單片機時鐘電路是由方向放大器構成。 XTAL1為時鐘電路的輸入端, XTAL2 為時鐘電路的輸出端。 3.6.2 顯示模塊 從機的顯示模塊與主機原理一致,這里就不再次敘述。 11 第四章 軟件設計 4.1 通信協議 4.1.1 串行通信協議的比較 RS232 RS422 RS485 RS-232、RS-422 與 RS-485標準只對接口的電氣特性做出規定,而不涉及 接插件、電纜或協議,在此基礎上用戶可以建立自己的高層通信協議。例如: 視頻服務器都帶有多個 RS422 串行通訊接口,每個接口均可通過 RS422通訊線 由外部計算機控制實現記錄與播放。 視
22、頻服務器除提供各種控制硬件接口外, 還提供協議接口,如 RS422接口除支持 RS422的 Profile 協議外,還支 持 Louth、Odetics 、BVW 等通過 RS422控制的協議。 RS-232、RS-422 與 RS-485都是串行數據接口標準,都是由電子工業協會 ( EIA )制訂并發布的, RS-232在 1962年發布。 RS-422由 RS-232發展而來, 為改進 RS-232 通信距離短、速率低的缺點, RS-422定義了一種平衡通信接 口,將傳輸速率提高到 10Mbps,傳輸距離延長到 4000 英尺(速率低于 100Kbps時),并允許在一條平衡總線上連接最多
23、10個接收器。 RS-422是一種 單機發送、多機接收的單向、平衡傳輸規范,被命名為 TIA/EIA-422-A 標準。 為擴展應用范圍, EIA 又于 1983年在 RS-422基礎上制定了 RS-485 標準,增加 了多點、雙向通信能力,即允許多個發送器連接到同一條總線上,同時增加了 發送器的驅動能力和沖突保護特性,擴展了總線共模范圍,后命名為 TIA/EIA- 485-A 標準。 1. RS-232 串行接口標準 目前 RS-232是 PC 機與通信工業中應用最廣泛的一種串行接口。 RS-232被 定義為一種在低速率串行通訊中增加通訊距離的單端標準。 RS-232 采取不平衡 傳輸方式,
24、即所謂單端通訊。收、發端的數據信號是相對于信號地。典型的 RS-232信號在正負電平之間擺動,在發送數據時,發送端驅動器輸出正電平在 +5+15V,負電平在 -5-15V 電平。當無數據傳輸時,線上為 TTL ,從開始傳送 數據到結束,線上電平從 TTL 電平到 RS-232 電平再返回 TTL 電平。接收器典 型的工作電平在 +3+12V 與-3-12V 。由于發送電平與接收電平的差僅為 2V 至 3V 左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最 大為約 15 米,最高速率為 20Kbps。RS-232 是為點對點(即只用一對收、發設 備)通訊而設計的,其驅動器負載為
25、 3k7k 。所以 RS-232 適合本地設備之 間的通信。 12 2. RS-422與 RS-485串行接口標準 (1)平衡傳輸 RS-422、RS-485 與 RS-232不一樣,數據信號采用差分傳輸方式,也稱作 平衡傳輸,它使用一對雙絞線,將其中一線定義為 A ,另一線定義為 B。通常 情況下,發送驅動器 A、B 之間的正電平在 +2+6V,是一個邏輯狀態,負電平 在-2V6V ,是另一個邏輯狀態。另有一個信號地 C,在 RS-485中還有一“使 能”端,而在 RS-422 中這是可用可不用的。“使能”端是用于控制發送驅動器 與傳輸線的切斷與連接。當“使能”端起作用時,發送驅動器處于高阻
26、狀態, 稱作“第三態”,即它是有別于邏輯“ 1”與“ 0”的第三態。 (2)RS-422電氣規定 由于接收器采用高輸入阻抗和發送驅動器比 RS232 更強的驅動能力,故允 許在相同傳輸線上連接多個接收節點,最多可接 10 個節點。即一個主設備 (Master),其余為從設備( Salve),從設備之間不能通信,所以 RS-422 支持 點對多的雙向通信。 RS-422 四線接口由于采用單獨的發送和接收通道,因此不 必控制數據方向,各裝置之間任何必須的信號交換均可以按軟件方式 ( XON/XOFF 握手)或硬件方式(一對單獨的雙絞線)實現。 RS-422 的最大傳 輸距離為 4000英尺(約 1
27、219 米),最大傳輸速率為 10Mbps。其平衡雙絞線的 長度與傳輸速率成反比,在 100Kbps 速率以下,才可能達到最大傳輸距離。只 有在很短的距離下才能獲得最高速率傳輸。一般 100 米長的雙絞線上所能獲得 的最大傳輸速率僅為 1Mbps。RS-422 需要一終接電阻,要求其阻值約等于傳輸 電纜的特性阻抗。在矩距離傳輸時可不需終接電阻,即一般在300 米以下不需 終接電阻。終接電阻接在傳輸電纜的最遠端。 (3)RS-485電氣規定 由于 RS-485是從 RS-422基礎上發展而來的,所以 RS-485 許多電氣規定與 RS-422 相仿。如都采用平衡傳輸方式、都需要在傳輸線上接終接電
28、阻等。RS- 485 可以采用二線與四線方式,二線制可實現真正的多點雙向通信。 RS-485總 線,在要求通信距離為幾十米到上千米時,廣泛采用 RS-485 串行總線標準。 RS-485采用平衡發送和差分接收,因此具有抑制共模干擾的能力。加上總線收 發器具有高靈敏度,能檢測低至 200mV 的電壓,故傳輸信號能在千米以外得到 恢復。 RS-485 采用半雙工工作方式,任何時候只能有一點處于發送狀態,因 此,發送電路須由使能信號加以控制。 RS-485 用于多點互連時非常方便,可以 13 省掉許多信號線。應用 RS-485 可以聯網構成分布式系統,其允許最多并聯 32 臺驅動器和 32臺接收器。
29、 RS-485與 RS-422的不同還在于其共模輸出電壓是不 同的, RS-485是-7V 至+12V 之間,而 RS-422在-7V 至+7V 之間;RS-485滿足所 有 RS-422的規范,所以 RS-485 的驅動器可以用在 RS-422 網絡中應用。 RS-485 與 RS-422一樣,其最大傳輸距離約為 1219 米,最大傳輸速率為 10Mbps。平衡 雙絞線的長度與傳輸速率成反比,在 100Kbps 速率以下,才可能使用規定最長 的電纜長度。只有在很短的距離下才能獲得最高速率傳輸。一般 100 米長雙絞 線最大傳輸速率僅為 1Mbps。 4.1.2 通信過程 一次完整的通信過程分
30、為 3 個階段:發送機處理輸入數據、通信和接收機 顯示輸入數據。第一階段,發送機判斷輸入的鍵值,將其打包處理;通信階 段,把打包處理好的數值發送給寄存器,再從寄存器發送給接收機;接收機顯 示階段,把打包好的數據處理后還原原來的數據,通過查表以數碼管的形式顯 示;此時接收機清除接收緩沖區及相關變量,準備與主機下次通信。任何一次 完整的通信過程都是由發送機方發起的,兩個單片機在無鍵值輸入的情況下都 處在接收狀態。 4.2 主機程序 4.2.1 主程序總流程圖 多級雙向通信的軟件設計主要分為:系統初始化、確定主從及關系、雙方 進行握手、主機發送數據和從機接收數據等六大部分;每個功能米快快對于通 信雙
31、方都是必不可缺的,只有這樣主機才能很好的對外部的信息進行采集、分 析和解決。 系統初始化:系統初始化包括串口初始化和顯示模塊初始化。主要實現串 口中斷的開啟、總中斷的開啟、定時器的選擇及其工作方式的選擇、串口工作 方式的選擇和顯示模塊初始化等功能。 有鍵按下:通信雙方進行通信時需確定雙方的主從關系,然后通過鍵盤按 下,顯示所傳輸的數據。 鍵值處理:在該部分中,通信逐句會發送握手信號給從機,主機發送的數 據通過處理再傳送給從機。 送顯數據:所發送的數據通過處理之后再發送給從機并顯示。 14 據即可。 從機接收數據: 圖 4.1 主程序流程圖 4.2.2 矩陣鍵盤輸入子程序 初始化后程序不斷檢測矩
32、陣鍵盤狀況,一旦檢測到有鍵按下,消抖后即時 開始處理輸入的數據。先以行為單位確定按下的鍵在哪一行,然后再提取該行 的數據,以相與的方式確定是該行的第幾個鍵按下了,由此確定按下的到底是 哪個鍵。確定了之后,用比較方便傳輸的 16 進制的數值來代替。 15 4.2.3 圖 4.2 矩陣鍵盤程序流程圖 數碼管顯示子程序 返回 圖 4.3 數碼管顯示子程序流程圖 16 4.2.4 傳輸模塊子程序 所接收的數據經過處理之后發送給從機 圖 4.4 傳輸模塊子程序流程圖 4.3 從機程序 4.3.1 從機總流程圖 初始化 鍵值處理 從機顯示數據 圖 4.5 從機主流程圖 17 4.3.2 接收并顯示子程序
33、從機接收到主機傳來的信息,經過處理之后在從機的數碼管上顯示。顯示 部分與主機顯示部分相似 Y 開始 打開接受 讀緩存區的值 調用顯示子程序 返回 圖 4.6 接收部分流程圖 18 第五章 實驗調試和測試結果與分析 先利用 Proteus 進行仿真,看能否滿足要求,若滿足要求后,再將寫好的 主機程序和從機程序分別燒錄進兩個單片機里,兩個單片機的P3.0 、P3.1 控制 RS485使能端,再接上數據輸入輸出兩根導線,打開電源之后,兩個單片機的 數碼管顯示模塊都處于顯示的狀態;將采集電壓開關閉合,按下其中任意一個 鍵時,在釋放的瞬間兩個單片機的數碼管顯示模塊都全部顯示了矩陣鍵盤輸入 的鍵值,而改變
34、滑動電阻器的阻值時,數碼管顯示模塊的數值并不發生變化; 當采集電壓開關關閉時,改變滑動電阻器的阻值,兩個單片機的數碼管顯示模 塊都全部顯示了滑動變阻器輸入的阻值所對應的數值,但是按下任意矩陣鍵盤 的鍵值,數碼管的顯示模塊的數值不改變,證明串行通信成功。通過幾次按鍵 輸入和模擬輸入,確認單片機可以以半雙工的方式串行通信。 19 第六章 結論 本次課設的內容是是 RS485 總線雙機通信系統設計,本設計在單片機網絡 的通信的基礎上,實現單片機雙機通信。用 RS485接口來實現單片機與單片機 之間的通信。采用主從式,即在數個單片機中,有一個是主機,其余的是從 機,從機要服從主機的調度、支配。利用 8
35、0C51 單片機的串行口方式來實現這 種主從式的通信結構。同時利用了 Keil 和 Proteus軟件來實現單片機的 C 語言 編程,然后在 proteus 仿真軟件中設計電路。 本次課設整個過程包括通過理論設計,仿真軟件仿真,確定具體方案,安 裝實際電路,調試電路、測試結果等多個方面的內容。這就要求我們充分利用 所學的知識進行思考、借鑒。可以說,本次課設是針對前面所學的知識進行的 一次比較綜合的檢驗。 本次課設用時 3 個星期,成功的完成了任務。總結我這次課設之所以能成 功的原因主要就是做好了充分準備,即熟練地掌握課本上的理論知識、做好仿 真并打印出來和充分了解自己將要用到的芯片。這樣才能對
36、試驗中出現的問題 進行分析和解決。 雖然最后還是出現了正確的結果,但我這次的設計還是存在很大的不足。 一是程序略有繁瑣;二是其實沒有很好的顯示出 RS485的特別的功能。 忽略這些不足,本次設計基本達到了實驗要求。 20 第七章 參考文獻 1 譚浩強. C 程序設計 . 北京:清華大學出版社, 2009. 2 張先庭.單片機原理、接口與 C51應用程序設計 .北京:國防工業出版 社, 2011. 3 張毅剛.單片機原理及應用 M. 高等教育出版社, 2008. 4 郭天祥.51 單片機 C語言教程 . 電子工業出版社 ,2011. 5 張涵芳,徐愛卿 . 單片微型計算機及其應用 M. 北京:北
37、京航空航天大 學出版社, 1991. 21 附錄一 電路圖 22 附錄二 程序代碼 主機程序 /* 函數功能:AD 轉換子程序入口參數 :CH出口參數 :dat*/ #include #include #define uchar unsigned char #define uint unsigned int uchar code table= 0 x3f,0 x06,0 x5b,0 x4f, 0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71; sbit anjia=P32; sbit CS=P34
38、; sbit Clk=P35; sbit DATI=P33; uchar a,key,num; uchar dat=0 x00; uchar CH; uchar matrixkeyscan(); void put(uchar); void display(uchar); void delayms(uint z) uint i,j; for(i=z;i0;i-) for(j=110;j0;j-); unsigned char adc0832(unsigned char CH) unsigned char i,test,adval; 23 adval=0 x00; test=0 x00; Clk=
39、0;/ 初始化 DATI=1; _nop_(); CS=0; _nop_(); Clk=1; _nop_(); if(CH=0 x00)/ 通道選擇 Clk=0; DATI=1; / 通道的第一位 _nop_(); Clk=1; _nop_(); Clk=0; DATI=0;/ 通道的第二位 _nop_(); Clk=1; else Clk=0; DATI=1;/ 通道的第一位 _nop_(); Clk=1; _nop_(); Clk=0; DATI=1;/ 通道的第二位 24 _nop_(); Clk=1; Clk=0; DATI=1; for(i=0;i8;i+)/ 讀取前位的值 adva
40、l=1; Clk=1; _nop_(); Clk=0; if(DATI) adval|=0 x01; else adval|=0 x00; for(i=0;i=1; if(DATI) test|=0 x80; else test|=0 x00; _nop_(); Clk=1; _nop_(); Clk=0; 25 if(adval=test)/ 比較前位與后位的值,如果不相同舍去。若一直 出現顯示為零,請將該行去掉 ? dat=test; _nop_(); CS=1;/ 釋放 ADC0832 DATI=1; Clk=1; return dat; void put(uchar c) SBUF=c
41、; while(!TI); TI=0; void init() TMOD=0X20; TH1=0XFD; TL1=0XFD; TR1=1; SCON=0X50; EA=1; ES=1; /EX0=1; /IT0=0; void ser() interrupt 4 26 if(RI=1) RI=0; a=SBUF; /* void display(uchar num) P2=tablenum; / 顯示函數只送段選數據 /* uchar matrixkeyscan() uchar temp; P1=0 xfe; temp=P1; temp=temp if(temp!=0 xf0) delayms
42、(10); temp=P1; temp=temp if(temp!=0 xf0) temp=P1; switch(temp) 27 case 0 xee:key=0;break; case 0 xde:key=1;break; case 0 xbe:key=2;break; case 0 x7e:key=15;break; while(temp!=0 xf0) / 等待按鍵釋放 temp=P1; temp=temp / display(key); P1=0 xfd; temp=P1; temp=temp if(temp!=0 xf0) delayms(10); temp=P1; temp=temp if(temp!=0 xf0) temp=P1; switch(temp) case 0 xed:key=3;break; case 0 xdd:key=4;break; case 0 xbd:key=5;b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年教師類考試學科知識與教學能力押題試卷高頻考點解析
- 二級MySQL考試內容結構及試題及答案
- 2025年企業培訓師職業資格考試真題卷(培訓師角色認知篇)
- 2025年老年能力評估師考試試題集(老年人生活質量評估指標)及解析
- 2025年南京市小學四年級英語聽力故事理解能力測試卷
- 2025年專升本藝術概論模擬試卷:藝術審美心理在藝術批評中的作用試題
- 部編版初中語文九年級上冊同步講練測九年級上冊第二單元03鞏固練(2份原卷版+解析版)
- 安徽省鼎尖教育聯考2024-2025學年高二上學期開學考試政治試題
- 腹膜后腫瘤超聲診斷
- 2025年消防執業資格考試題庫-消防標準化建設消防安全評估實施試題
- 2025屆湖南省邵陽市高三下學期第三次聯考數學試卷(含答案)
- 2025年北京市朝陽區高三二模考試語文試卷(含答案)
- 2025四川綿陽交發實業有限責任公司及下屬子公司招聘人力資源管理等崗位5人筆試參考題庫附帶答案詳解
- 2025年中考數學復習難題速遞之投影與視圖(2025年4月)
- 湖北省鄂東南2025年春季高三年級五月模擬考物理試題及答案
- 游戲室電競椅行業跨境出海戰略研究報告
- 2025年心理咨詢師考試試題及答案
- 初二下學期期中家長會發言稿
- 2025年中考第一次模擬考試卷:生物(廣西卷)(解析版)
- 《計算機網絡基礎》課件
- 四川省資陽市樂至縣2025年三年級數學第二學期期末達標檢測試題含解析
評論
0/150
提交評論