單片機的雙機串口通信-課程設計_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  單片機課程設計報告</b></p><p>  項目名稱:單片機的雙機串口通信</p><p>  項目組成員:(1)姓名: 學號: </p><p> ?。?)姓名: 學號: </p><p>  (3)姓名: 學號: <

2、/p><p><b>  專業(yè)班級: </b></p><p>  日 期: 2012年12月10日 </p><p><b>  目 錄</b></p><p><b>  第一章 緒論</b></p><p>  1.1 課題簡介-----

3、-----------------------------------------------------------------------------------------------------2</p><p>  1.2 設計目的--------------------------------------------------------------------------------------

4、--------------------2</p><p>  1.3 設計任務----------------------------------------------------------------------------------------------------------2</p><p>  1.4 設計方法----------------------------

5、------------------------------------------------------------------------------3</p><p>  第二章 設計內容與所用器件-------------------------------------------------------------------------------4</p><p>  第三

6、章 方案論證與比較 </p><p>  3.1數據傳輸方案比較與選擇 ------------------------------------------------------------------------------5</p><p>  3.2控制部分的設計方案論證與選擇-------------------------------------------------

7、--------------------------6</p><p>  第四章 硬件系統(tǒng)設計</p><p>  4.1 時鐘電路----------------------------------------------------------------------------------------------------------7</p><p>

8、  4.2 復位電路----------------------------------------------------------------------------------------------------------7</p><p>  4.3單片機串行通信功能------------------------------------------------------------------

9、--------------------8</p><p>  4.4采用MAX232芯片控制電平轉換電路------------------------------------------------------------------10</p><p>  4.5 利用集成的LED數碼管(一位)-------------------------------------------

10、------------------------------11</p><p>  4.6整體連接原理圖 ----------------------------------------------------------------------------------------------11</p><p><b>  第五章 軟件設計 </b></p

11、><p>  5.1 程序設計思路---------------------------------------------------------------------------------------------------12</p><p>  5.2 雙機串口通信程序設計-----------------------------------------------------

12、---------------------------------12</p><p>  5.2.1 串口通信軟件實現------------------------------------------------------------------------------------12</p><p>  5.2.2 程序流程圖----------------------------

13、------------------------------------------------------------------13</p><p>  5.3 LED顯示原理------------------------------------------------------------------------------------------------------14</p>&l

14、t;p>  第六章 系統(tǒng)調試與存在的問題</p><p>  6.1 軟件調試----------------------------------------------------------------------------------------------------------15</p><p>  第七章 總 結---------------------------

15、----------------------------------------------------------------------------16</p><p>  參考文獻----------------------------------------------------------------------------------------------------------17</p

16、><p><b>  附錄</b></p><p>  附錄一 元件清單---------------------------------------------------------------------------------------------18</p><p>  附錄二:源程序-----------------------

17、-----------------------------------------------------------------------------19</p><p><b>  第一章 緒論</b></p><p><b>  1.1 課題簡介</b></p><p>  單片機行業(yè)已經有了很久的歷史,隨著科學

18、技術的進步和社會的發(fā)展,單片機行業(yè)更加迅速的發(fā)展起來。不論在工業(yè)還是民也上都有很好的發(fā)展和應用,得到大家很好的認可和高度的評價。單片機的通信接口是各臺儀表之間或儀表與計算機之間進行信息交換和傳輸的聯(lián)絡裝置。主要有五種類型,串行通信接口、并行通信接口、USB接口、現場總線接口以及以太網接口。</p><p>  串行通信按同步方式可分為異步通信和同步通信兩種基本通信方式。它是在數字化的基礎上用微處理器裝備起來,是計

19、算機技術與電子儀器相結合的產物。它具有數據存儲、運算、邏輯判斷能力,能根據被測參數的變化自選量程,可自動校正,自動補償,自尋故障等,可以做一些需要人類的智慧才能完成的工作,既具備了一定的智能,故稱為智能儀器。人們習慣將這種內含微型計算機并帶有GP-IB等通信接口的電子儀器稱為智能儀器。</p><p>  本課程設計就是利用兩片單片機實現串口通訊數據的發(fā)送和接收,該系統(tǒng)可采用max232進行串口通訊數據傳送??捎?/p>

20、LED顯示發(fā)送的相應據。</p><p><b>  1.2 設計目的</b></p><p>  單片機課程設計作為獨立的數學環(huán)節(jié),是自動化及相關專業(yè)集中實踐性環(huán)節(jié)系列之一,是學習完《單片機原理及應用》課程后,并在進行相關課程設計基礎上進行的一次綜合練習。在本課題的設計過程中,我們通過查閱資料、接口設計、程序設計、安裝調試等環(huán)節(jié),完成一個基于MCS-51系列單片機,

21、涉及多種資源應用,并具有綜合功能的小應用系統(tǒng)設計。讓我們不僅將課堂上學到的理論知識與實際應用結合起來,而且能夠對電子電路、電子元器件等方面的知識進一步加深認識,同時在軟件編程、調試、相關儀器設備和相關軟件的使用技能等方面得到較全面的鍛煉和提高。讓我們增加了對單片機的感性認識,加深對單片機理論方面的理解,同時也加深單片機的內部功能模塊的應用。使我們了解和掌握單片機應用系統(tǒng)的軟硬件設計過程、方法及實現,強化單片機應用電路的設計與分析能力。提

22、高我們在單片機應用方面的實踐技能和科學作風;培育我們綜合運用理論知識解決問題的能力等。</p><p><b>  1.3 設計任務</b></p><p>  在本次課程設計中,主要完成如下方面的設計任務:</p><p>  1、簡要闡述單片機技術發(fā)展的國內外現狀及LED動態(tài)顯示的基本原理;</p><p>  2、

23、掌握MCS-51系列某種產品(例如8051)的最小電路的設計方法;</p><p>  3、用串行口的全雙共數據傳送法實現兩機互相通信。發(fā)送端將0~f循環(huán)發(fā)送到接收端,并在接收端顯示;</p><p>  4、完成主要功能模塊的硬件電路設計及必要的參數確定;</p><p>  5、用protel軟件完成雙機通信的原理電路圖的繪制及仿真;</p>&l

24、t;p><b>  1.4 設計方法</b></p><p>  本次設計,對于兩片89C51,采用RS232進行雙機通信。發(fā)送方的數據由串行口TXD段輸出,經過電平轉換芯片MAX232將TTL電平轉換為RS232電平輸出,經過傳輸線將信號傳送到接收端。接收方也使用MAX232芯片進行電平轉換后,信號到達接收方串行口的接收端。接收方接收后,在數碼管上顯示接收的信息。為提高抗干擾能力,還

25、可以在輸入輸出端加光耦合進行光電隔離。</p><p>  軟件部分,通過通信協(xié)議進行發(fā)送接收,主機先送AAH給從機,當從機接收到AAH后,向主機回答B(yǎng)BH。主機收到BBH后就把數碼表TAB[16]中的10個數據送給從機,并發(fā)送檢驗和。從機收到16個數據并計算接收到數據的檢驗和,與主機發(fā)送來的檢驗和進行比較,若檢驗和相同則發(fā)送00H給主機;否則發(fā)送FFH給主機,重新接受。從機收到16個正確數據后送到一個數碼管顯示

26、。串口通訊的設計原理框圖如圖1所示。</p><p>  第二章 設計內容與所用器件</p><p><b>  基本功能:</b></p><p>  兩片單片機之間進行串行通信,發(fā)送端將0~f循環(huán)發(fā)送到接收端,并在接收端顯示。</p><p><b>  原理圖:</b></p>

27、<p>  圖1 串口通訊的設計原理框圖</p><p><b>  所用器件件附錄1</b></p><p><b>  方案論證與比較</b></p><p>  3.1.數據傳輸方案比較與選擇</p><p>  在串行通信中,數據是在兩個站之間傳送的。按照數據傳送方向,串行

28、通信可采用三種方案。</p><p><b>  方案一:單工制式</b></p><p>  單工制式是指甲乙雙方通信只能單向傳送數據。單工制式如圖2</p><p><b>  圖2 單工制式</b></p><p><b>  方案二:半雙工制式</b></p&g

29、t;<p>  半雙工制式是指通信雙方都具有發(fā)送器和接收器,雙方既可發(fā)送也可接收,但接收和發(fā)送不能同時進行,即發(fā)送時就不能接收,接收時就不能發(fā)送。半雙工制式如圖3</p><p><b>  圖3 半雙工制式</b></p><p><b>  方案三:全雙工制式</b></p><p>  全雙工制式是指

30、通信雙方均設有發(fā)送器和接收器,并且將信道劃分為發(fā)送信道和接收信道,兩端數據允許同時收發(fā),因此通信效率比前兩種高。全雙工制式如下圖4:</p><p><b>  圖4 全雙工制式</b></p><p>  因此,本課設采用方案三全雙工制式</p><p>  3.2.控制部分的設計方案論證與選擇</p><p>  

31、對于主控系統(tǒng)電路的選擇有以下三種方案。</p><p>  方案一:采用專用芯片實現。用專用芯片進行設計并編程實現。這種設計方案計算效率高、速度快、而且成本也相對較低,是進行串口通信的最佳方案。但是由于對專用芯片掌握的不夠,還不足以實現設計,所以這個方案不可取。</p><p>  方案二:采用FPGA(現場可編程門陣列)作為系統(tǒng)的控制器。FPGA將所有器件集成到一塊芯片上,節(jié)省空間,穩(wěn)定

32、性高;直接面向用戶,具有極大的靈活性和通用性,硬件測試和實現快捷,開發(fā)效率高,工作可靠性好。適合于大規(guī)模實時系統(tǒng)控制核心,本設計對數據處理速度的要求不是很高,FPGA的高速處理的優(yōu)勢得不到充分的體現,由于其集成度高,使其成本偏高,同時由于芯片的引腳較多,實物電路板布線復雜,加重了電路設計和實際焊接的工作。所以,不建議采用此方案。</p><p>  方案三:用單片機實現。由于單片機集成了運算器電路、控制電路、存儲

33、器、中斷系統(tǒng)、定時器/計數器以及輸入/輸出口電路等,所以用單片機設計控制電路省去了很多分立元器件。由于單片機是可編程芯片,并且它可以運用C語言編寫,對于一些復雜的計算功能,可以調用C語言庫函數。使編寫程序變得非常簡單。且經過本學期對課程學習,我們對單片機的應用比較熟悉,運用靈活,所以該課題用單片機實現。</p><p>  第四章 硬件系統(tǒng)設計</p><p>  硬件系統(tǒng)是指構成微機系統(tǒng)

34、的實體和裝置,通常由運算器、控制器、存儲器、輸入接口電路和輸入設備、輸出接口電路和輸出設備等組成。單片機實質上是一個硬件的芯片,在實際應用中,通常很難直接和被控對象進行電氣連接,必須外加各種擴展接口電路、外部設備、被控對象等硬件和軟件,才能構成一個單片機應用系統(tǒng)。本設計選用以89C51單片機為主控單元。顯示部分:采用8段LED數碼管動態(tài)顯示。 </p><p><b>  4.1 時鐘電路</b&

35、gt;</p><p>  時鐘電路用于產生單片機工作所需要的時鐘信號,單片機本身就是一個復雜的同步時序電路,為了保證同步工作方式的實現,電路應在唯一的時鐘信號控制下嚴格地按時序進行工作。</p><p>  在MCS-51芯片內部有一個高增益反相放大器,其輸入端為芯片引腳X1,輸出端為引腳X2,在芯片的外部跨接晶體振蕩器和微調電容,形成反饋電路,就構成了一個穩(wěn)定的自激振蕩器。 此電路采用

36、12MHz的石英晶體。時鐘電路如下圖5</p><p><b>  圖5 時鐘電路</b></p><p><b>  4.2 復位電路</b></p><p>  復位是單片機的初始化操作,進入系統(tǒng)的正常初始化之外,當由于程序運行出錯或操作錯誤是系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需要按復位鍵以重新啟動。RST引腳是單片

37、機復位信號的輸入端,復位信號是高電平有效,其有效時間應持續(xù)24個振蕩周期(即2個機器周期)以上,若使用頻率為12MHz的晶振,則復位信號持續(xù)時間應超過4 s才能完成復位操作。復位操作有上電自動復位和按鍵手動復位兩種方式。上電自動復位是通過外部復位電路的電容充電來實現的。按鍵電平復位是通過使復位端經電阻與Vcc電源接通而實現的。</p><p>  在本設計中采用了按鍵電平方式如下圖6</p><

38、;p>  圖6 按鍵電平的連接方式</p><p>  4.3 單片機串行通信功能</p><p>  51單片機的串行接口是一個全雙工的接口,它可以作為UART(通用異步接受和發(fā)送器)用,也可以作為同步移位寄存器用。51單片機串行接口的結構如下:</p><p>  圖7 51單片機串行接口的結構</p><p>  (1)

39、數據緩沖器(SBUF)</p><p>  接受或發(fā)送的數據都要先送到SBUF緩存。有兩個,一個緩存,另一個接受,用同一直接地址99H,發(fā)送時用指令將數據送到SBUF即可啟動發(fā)送;接收時用指令將SBUF中接收到的數據取出。</p><p> ?。?)串行控制寄存器(SCON)</p><p>  SCON用于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:&l

40、t;/p><p>  SM0,SM1:串行接口工作方式選擇位,串行接口工作方式可有以下四種工作方式:</p><p>  定時器TI溢出率=(fosc/12)*(1/(2^k-初值)) 式中T1計數率= fORC/12,(2^k-初值)為生溢產出所需機器周期數,K為定時器位數,與定時器設定工作方式有關:方式0時 K=13;方式1時 K=16;方式2時 K=8。</p><p

41、>  SM2:多機通信控制位。主要用于方式2,3.當SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=1時收到數據進入數據緩存器,并激活RI在中斷服務中將數據讀走;RB8=0時受到信息丟棄);當SM2=0時均可以將數據送入緩存器,并激活RI。</p><p>  REN:接收允許控制位。軟件置1允許接收;軟件置0禁止接收。</p><p>  TB8:方式2或3時,TB8為

42、要發(fā)送的第9位數據,根據需要由軟件置1或清0,可以用作數據奇偶效驗位,或在多機通信中作地址幀/數據幀標志位。</p><p>  RB8:在方式2或3時,RB8位接收到的第9位數據,實際為主機發(fā)送的第9位數據TB8,使從機根據這一位來判斷主機發(fā)送的時呼叫地址還是要傳送的數據。</p><p>  TI:發(fā)送中斷標志。發(fā)送完一幀數據后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)發(fā)送。

43、</p><p>  RI:接收中斷標志。接收完一幀數據后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)接收。</p><p> ?。?)輸入移位寄存器</p><p>  接收的數據先串行進入輸入移位寄存器,8位數據全移入后,再并行送入接收SBUF中。</p><p><b> ?。?)波特率發(fā)生器</b><

44、;/p><p>  波特率發(fā)生器用來控制串行通信的數據傳輸速率的,51系列單片機用定時器T1作為波特率發(fā)生器,T1設置在定時方式。波特率是用來表示串行通信數據傳輸快慢程度的物理量,定義為每秒鐘調制信號變化的次數。</p><p> ?。?)電源控制寄存器PCON</p><p>  其最高位為SMOD即波特率倍增位,當SMOD=1時波特率提高一倍,復位時,SMOD=0。

45、</p><p>  4.4 采用MAX232芯片控制電平轉換電路 </p><p>  用89C51串行接口通信,如果兩臺89C51單片機之間的距離很近(不超過1.5m),可以采用直接將兩臺89C51單片機的串行接口直接相連,利用其自身的TTL電平(0-5V)直接傳輸數據信息。如果傳輸距離較遠(超過1.5m),由于傳輸線的阻抗與分布電容,會產生電平損耗和波形畸變,以至于檢測不出數據或

46、數據出錯。此時可利用 RS232標準總線接口,將單片機輸出的TTL電平轉換為RS232標準電平(邏輯1為-15—-5V;邏輯0為+5-—+15V)。用RS232可將傳輸距離提高到15m,如果想遠距離傳輸,可以采用RS422或者RS485。</p><p>  電平轉換芯片MAX232是美信公司(MAXIM)生產,專用于進行將TTL電平轉換為RS232電平的芯片,MAX232內部有泵電源,能將+5V電源電壓在芯片內

47、提高到RS232電平所需的+10V或者-10V電平。引腳介紹:</p><p>  第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構成。功能是產生+12v和-12v兩個電源,提供給RS-232串口電平的需要。 </p><p>  第二部分是數據轉換通道。由7、8、9、10、11、12、13、14腳構成兩個數據通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN

48、)、14腳(T1OUT)為第一數據通道。 8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數據通道。 TTL/CMOS數據從T1IN、T2IN輸入轉換成RS-232數據從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數據從R1IN、R2IN輸入轉換成TTL/CMOS數據后從R1OUT、R2OUT輸出。</p><p>  第三部分是供電。15腳GND、16腳V

49、CC(+5v) 圖7 MAX232芯片</p><p>  4.5 利用集成的LED數碼管(一位)</p><p>  P1.7——P1.0口分別接DP G F E D C B A</p><p>  4.6 整體連接原理圖</p><p>  圖8 整體連接原理圖</p><p><

50、b>  第五章 軟件設計</b></p><p><b>  5.1程序設計思路</b></p><p>  通過通信協(xié)議進行發(fā)送接收,主機先送AAH給從機,當從機接收到AAH后,向主機回答B(yǎng)BH。主機收到BBH后就把數碼表TAB[16]中的16個數據依次發(fā)送給從機,并發(fā)送檢驗和。從機收到16個數據并計算接收到數據的檢驗和,與主機發(fā)送來的檢驗和進行比

51、較,若檢驗和相同則發(fā)送00H給主機;否則發(fā)送FFH給主機,重新接受。從機收到16個正確數據后送到一個數碼管依次顯示。</p><p>  5.2雙機串口通信程序設計</p><p>  1.串行通信軟件實現</p><p> ?。?)串行口工作于方式1;用定時器1產生9600bit/s的波特率,工作于方式2,即TMOD=0x20。</p><p&

52、gt;  (2)功能:將本機ROM中數碼表TAB[16]中的16個數發(fā)送到從機,并保存在從機內部ROM中,從機收到這16個數據后送到一個數碼管循環(huán)顯示。</p><p> ?。?)通信協(xié)議:主機首先發(fā)送連絡信號(AAH),從機接收到之后返回一個連絡信號(BBH)表示從機已準備好接收。</p><p> ?。?)通信過程使用校驗和校驗。從機接收到16個數據后,進行校驗和檢查,若數據沒有錯誤,

53、則返回00H,否則返回FFH。</p><p> ?。?)主機發(fā)送一個數據后,等待從機返回數據;若為00H,則繼續(xù)發(fā)送下一個數據,若為FFH,則重新發(fā)送數據。</p><p><b>  2.程序流程圖</b></p><p> ?。?)發(fā)送端程序流程圖</p><p>  (2)接收方程序流程圖</p>

54、<p>  圖8 接收方程序流程圖</p><p>  5.3 LED顯示原理</p><p>  LED多數情況用于顯示數字,對于十六進制的,要將0~F的數字用7段顯示,必須將數字轉換為LED對應七段碼的信息,比如,要顯示“0”,就是讓a、b、c、d、e和f段發(fā)光,顯示“1”,讓b和c段發(fā)光,等等如表所示。然后根據LED是共陰極還是共陽極接法確定LED各輸入端應接邏輯1還是

55、邏輯0,我選用的是共陰接法,要顯示“0” 時,a、b、c、d、e和f段就要輸入邏輯1,即其段碼為3F, 通過從機的P1口將編碼輸出給LED</p><p>  第六章 系統(tǒng)調試與存在的問題</p><p>  系統(tǒng)的硬件、軟件獨調和系統(tǒng)調試是系統(tǒng)最后的步驟也是系統(tǒng)特別重要的環(huán)節(jié),因為設計和開發(fā)出的系統(tǒng)是否成功,功能是否完善只有在這里才能顯現出來。所以為了保證設計系統(tǒng)能夠正常工作,

56、必須對軟件和硬件部分的每一個部分進行調試和分析。由于本次課程設計未進行硬件連接,因此略去硬件測試步驟</p><p><b>  6.1 軟件調試</b></p><p>  本設計軟件采用的是keil和Proteus軟件實現仿真和電路圖設計和,Proteus軟件與Keil軟件聯(lián)合使用,實現設計要求。</p><p>  在Keil軟件中創(chuàng)建新

57、文件,輸入所編寫的c語言程序并保存,在編譯源程序無誤后,會產出相應的”.HEX”文件;將所生成的”.HEX”文件加載到已繪制好的Proteus原理圖中,使Proteus與Keil真正連接起來,實現聯(lián)合調試。調試結果如圖所示:可以看到,接收端已將接受到的數據完整的顯示了出來。</p><p><b>  圖9.仿真圖</b></p><p>  1、軟件的測試首先是檢查

58、電路的邏輯線路是否正確,如果正確再檢查原理圖的線路連接是否正確,電路的布局安排是否合理等等。</p><p>  2、程序中有個別地方將“=”與“==”混淆,造成結果不準確,解決辦法,仔細查找,將混淆出更正。</p><p>  在軟件調試過程中,對出現的錯誤進行了認真的分析和修改,多次調試成功后,能夠很好的達到既定的設計效果。</p><p><b> 

59、 總 結</b></p><p>  最初選擇串行通信這個實驗時,由于從未接觸過這類設計,感到新鮮的同時不乏焦慮。我覺得做單片機課程設計是十分有意義的,而且是十分必要的。在已度過的大學時間里,我們大多數接觸的是專業(yè)課。我們在課堂上掌握的僅僅是專業(yè)課的理論知識,如何去鍛煉我們的實踐能力?如何把我們所學的專業(yè)基礎課理論知識運用到實踐中去呢?我想做類似的課程設計就為我們提供了良好的實踐平臺現在終于將它完成了

60、,感到受益頗多。</p><p>  第一,這是一份考驗我們自覺性、動手能力與協(xié)作意識的任務。在長達一個月的時間里,我們不斷發(fā)現自身不足也不斷自我完善。這次單片機課程設計不僅鞏固了以前所學過的知識,而且學到了很多在書本上沒有學到過的知識,掌握了一種系統(tǒng)的研究方法,可以進行一些簡單的編程。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得

61、出結論,從而提高自己的實際動手能力和獨立思考的能力。同時在設計的過程中發(fā)現了自己的不足之處,例如對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,學習了單片機C語言。</p><p>  第二,未知并不可怕,可怕的是因未知而止步。我們在課堂上所學的知識是非常有限的,這次的課程設計就是個很好的體現。在做本次課程設計的過程中,我感觸最深的當屬查閱大量的設計資料了,無論是課本上的還是網上的都瀏覽了不少相關的程序,從中也

62、借鑒了別人的思想,開闊了自己的思路。做單片機課程設計,對設計者對軟硬件的理解和掌握的要求都比較高。在設計程序之前,設計者必學對所用單片機的內部結構有一個系統(tǒng)的了解,知道該單片機內有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設計程序時,不能妄想一次就將整個程序設計好,反復修改、不斷改進是程序設計的必經之路;要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現功能,而應該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供

63、了方便;在設計課程過程中遇到問題是很正常的,但我們應該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。</p><p>  第三,團結就是力量一點都不假,三個臭皮匠頂一個諸葛亮。在團組合作時我們更便于互相取長補短,相互討論,效果很好。通過本次課設,我不僅學到了關于單片機技術方面的許多專業(yè)知識,同時也讓我感覺到團隊合作的重要性。其實如何有效和快速的找到資料也是課設給我的啟發(fā),利用好圖書館和網絡,使資

64、源得到最好的利用。與他人交流思想是取得成功的關鍵,在交流中,不僅強化了自己原有的知識體系,也擴展了自己的思維。課設是一個通過思考、發(fā)問、自己解惑并動手、提高的過程。我會在以后的學習中不斷學習,積累經驗,完善自己。</p><p><b>  參考文獻</b></p><p>  [1]譚浩強. 《C語言程序設計》清華大學出版社1999.12 2</p>

65、<p>  [2]楊恢先 黃輝先著.單片機原理與應用.人民郵電出版,2009.7</p><p>  [3]朱定華著.單片機原理與接口技術.電子工業(yè)出版社,2001.4 </p><p>  [4]王威著.HCS12微控制器原理及應用.北京航空航天大學出版社,2007.10 </p><p>  [5]龔運新著.單片機C語言開發(fā)技術.北京清華大學出版社,2

66、006.10 </p><p>  [6]胡洪波著.單片機原理與應用實驗教程.湘潭大學出版社,2009.7</p><p>  [7]汪道輝著.單片機系統(tǒng)設計與實踐.電子工業(yè)出版社,2006.5</p><p><b>  附 錄</b></p><p>  附錄一 元件清單:</p><p>

67、<b>  附錄二:源程序</b></p><p><b>  主機發(fā)送程序</b></p><p>  #include <reg51.h> //頭文件</p><p>  #define uchar unsigned char //定義數據類型</p><

68、;p>  void init(); //定義子程序</p><p>  void send();</p><p>  ucharTAB[16] ={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

69、 //定義數碼表</p><p>  uchar i,sum; //定義變量</p><p><b>  int j;</b></p><p>  main() //主程序</p><p>  { init();</p

70、><p><b>  send();</b></p><p><b>  } </b></p><p>  void init(void) //程序初始化</p><p>  { EA=1; //開CPU中斷&l

71、t;/p><p>  ES=1; //允許串行口中斷</p><p>  TMOD=0x20; //設定時器T1為方式2</p><p>  TH1=0xfd; //賦初值</p><p><b&g

72、t;  TL1=0xfd;</b></p><p>  PCON=0x00; //令SMOD=0波特率不倍增</p><p>  SCON=0x50; //串行口為方式1</p><p>  TR1=1; //啟動T

73、1</p><p><b>  } </b></p><p>  void send(void) //發(fā)送子程序</p><p><b>  {do</b></p><p>  { SBUF=0xaa; //主機送AAH給從

74、機</p><p>  while(!TI); //等待一幀發(fā)送結束</p><p>  TI=0; //發(fā)送完后清零</p><p>  while(!RI); //等待一幀接收結束</p><p>  RI=0;

75、 //接收完后清零</p><p><b>  }</b></p><p>  while((SBUF^0xbb)!=0); //等待從機回答,返回BBH后繼續(xù)</p><p><b>  do</b></p><p>  { sum

76、=0; //清校驗和</p><p>  for(i=0;i<=15;i++)</p><p>  { SBUF=TAB[i]; //主機發(fā)送數據</p><p>  sum+=TAB[i]; //求檢驗和</p><p> 

77、 while(!TI);</p><p><b>  TI=0;</b></p><p><b>  }</b></p><p>  SBUF=sum; //發(fā)送校驗和</p><p>  while(!TI);</p><p>&l

78、t;b>  TI=0;</b></p><p>  while(!RI);</p><p><b>  RI=0;</b></p><p><b>  }</b></p><p>  while(SBUF!=0); //等待</p>

79、<p><b>  }</b></p><p><b>  從機接收程序</b></p><p>  #include<reg51.h> //頭文件</p><p>  #define uchar unsigned char //定義數據類型<

80、;/p><p>  #define uint unsigned int</p><p>  void delay(int ); //定義子程序</p><p>  void receive(void) ;</p><p>  void init(void);</p><p>  ucha

81、r i,sum;</p><p><b>  int j;</b></p><p>  ucharTAB[16] ={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //定義數碼表</p>

82、<p>  void main() //主程序</p><p><b>  { init();</b></p><p>  receive();</p><p><b>  }</b></p><p>  void init(void)

83、 //程序初始化</p><p><b>  { EA=1;</b></p><p><b>  ES=1;</b></p><p>  TMOD=0x20;</p><p><b>  TH1=0xfd;</b></p><p

84、><b>  TL1=0xfd;</b></p><p>  PCON=0x00;</p><p>  SCON=0x50;</p><p><b>  TR1=1;</b></p><p><b>  } </b></p><p>  void

85、delay(int x) //延時子程序</p><p>  {int i,j;</p><p>  for(i=0;i<x;i++)</p><p>  for(j=1;j<=150;j++ );</p><p><b>  }</b></p><p>

86、  void receive(void)</p><p>  { uchar TABS[16];</p><p><b>  do</b></p><p>  { while(!RI);RI=0; }</p><p>  while((SBUF^0xaa)!=0); //等待主機發(fā)送AAH</

87、p><p>  SBUF=0xbb; //從機收到BBH后向主機回復BBH</p><p>  while(!TI);TI=0;</p><p><b>  while(1)</b></p><p><b>  { sum=0;</b></p>

88、<p>  for(i=0;i<=15;i++)</p><p>  { while(!RI);RI=0;</p><p>  TABS[i]=SBUF; //接收數據保存</p><p>  sum+=TABS[i]; //求接收校驗和</p><p><b>  }&l

89、t;/b></p><p>  while(!RI);RI=0;</p><p>  if((SBUF^sum)==0) //判斷發(fā)送與接收的校驗和是否相等</p><p>  { SBUF=0x00; //校驗和相等發(fā)送00H給主機</p><p>  while(

90、!TI);</p><p><b>  TI=0;</b></p><p>  break; //跳出接收循環(huán)</p><p><b>  }</b></p><p><b>  else</b></p><p&

91、gt;  { SBUF=0xff; //校驗和不等,發(fā)送FFH給主機</p><p>  while(!TI);</p><p>  TI=0; //發(fā)送成功,清零,進入下一次接收循環(huán)</p><p><b>  }</b></p><

92、;p><b>  }</b></p><p>  while(1) //顯示輸出</p><p>  { for(i=0;i<=15;i++)</p><p>  { P1=TABS[i];</p><p>  delay(500);</p>

溫馨提示

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

評論

0/150

提交評論