畢業設計(論文)基于單片機的雙機通信_第1頁
畢業設計(論文)基于單片機的雙機通信_第2頁
畢業設計(論文)基于單片機的雙機通信_第3頁
畢業設計(論文)基于單片機的雙機通信_第4頁
畢業設計(論文)基于單片機的雙機通信_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 基于單片機的雙機通信摘 要 雙機通信是單片機的一個重要應用。本次課程設計就是要利用單片機來完成一個系統,實現兩個單片機之間的有序通信。本文詳細介紹了關于基于單片機at89c51實現的雙機之間的通信的設計。軟件部分采用c語言編程實現接收部分和發射部分的功能,用protues進行仿真。軟件設計完成后,將程序燒入單片機。通信的結果實用數碼管進行顯示,數碼管采用查表方式顯示。在通信過程中,使用通信協議進行通信。關 鍵 詞 51單片機;串行通信;接口two-machine communication based on single chip abstract dual machine communic

2、ation is an important application of single chip. this course is designed to using single chip computer to complete a system, realize the orderly communication between two single-chip microcomputer. this paper introduces the realization based on single-chip microcomputer at89c51 about the dual machi

3、ne for communication between the design. software part adopts the c programming language realization receiving part and emission, part of the protues function, through simulation. the software design is completed, the procedure spread microcontroller. communication results and practical to display,

4、digital digital tube pipe, adopting look-up table display. in communication process, uses communication protocol to communicate.key words 51 scm; serial communication; interface 不要刪除行尾的分節符,此行不會被打印- 28 -通 信 工 程 專 業 課 程 設 計 目 錄基于單片機的雙機通信itwo-machine communication based on single chipii緒 論21.課題背景31.1 雙

5、機通信簡介 31.1.1 雙機通信接口的基本特點 31.2 雙機通信原理 41.3 系統網絡協議 42.設計方案63.單片機與通信芯片介紹73.1 單片機技術介紹 73.2 maz232芯片103.3 4×4鍵盤介紹113.3.1 4×4矩陣鍵盤工作原理113.3.2數碼動態掃描顯示電路123.4數碼管工作原理134.設計步驟144.1 keil和proteus介紹和聯調144.1.1 proteus的介紹144.1.2 keil的介紹154.2 軟件設計164.3 硬件設計16結 論17致 謝18參考文獻19附 錄i20附錄ii27附錄iii28緒 論 單片機作為微型計算

6、機的一個分支,具有功能強、體積小、應用靈活等諸多優點,在工業控制、儀器儀表、通信、家用電器和國防科技等各個領域得到廣泛的應用。隨著集成電路技術的不斷發展,單片機的性能也在不斷的提高,其應用的范圍必將越來越寬廣。然而,隨著單片機在工業自動化控制、智能儀器儀表中的廣泛應用,單機已經逐漸不能滿足需要,雙機協同工作已經成為一個重要的發展趨勢,雙機應用的關鍵就在于雙機之間的互相通訊、互傳數據信息。單片機和計算機的共同發展下,單片機的應用從獨立的單片機向網絡發展,由計算機和單片機構成的雙機網絡系統也是單片機技術發展的一個方向。單片機雙機通信是指由兩臺單片機組成的網絡結構,可以通過串行通信方式實現對某一過程

7、的最終控制。隨著計算機技術的發展,雙機通訊技術也在不斷的發展,現在發展比較成熟的還有光纖通信等。由于計算機的飛速發展和控制系統的復雜化,雙機機通信已經越來越成為人們熱門的話題之一單片機雙機機通信是指由兩臺單片機組成的網絡結構, 可以通過串行通信方式共同實現對某一過程的最終控制。目前,單片機多機通信的形式較多,但通常可分為星型、環型、串行總線型和主從式多機型四種。隨著單片機和計算機技術的不斷發展,單片機的應用也從獨立的單機向網絡發展。由計算機和單片機構成的多機網絡系統已成為單片機技術發展的一個方向。二者的結合,充分發揮單片機在實時數據采集和數據管理上的優點。單片機在計算機的網絡通訊與數據傳輸、工

8、業自動化過程的實時控制和數據處理等都有廣泛地應用,已滲透到我們生活的各個領域。許多應用都涉及到單片機雙機通信。然而單片機對網絡數據的處理方式不同于通用計算機系統尤其是有的單片機只提供2位的數據收發接口,這在一定程度上阻礙了單片機在網絡方面的應用。因此,采用單片機技術與計算機網絡技術相結合的辦法,對單片機雙機通信系統進行研究在設計單片機網絡的通信協議的基礎上,系統網絡拓撲結構采用總線型網絡接el電路采用端el轉發的形式,實現了2位單片機雙機通信。1.課題背景1.1 雙機通信簡介mcs-51系列單片機上有一個通用異步接收發送器uart,通過引腳rxdp3o和txdp31可與外音b電路進行全雙工的串

9、行異步通信,發送數據時由txd端送出,接收時數據由rxd端輸入。本文將具體介紹單片機串口的特點和編程方法,并且在最后給出一個實用的單片機與計算機通過串口通信的程序。1.1.1 雙機通信接口的基本特點mcs-51單片機的串行端口有4種基本工作方式,通過編程設置,可以使其工作在任一方式,以滿足不同場合的需要。其中,方式0主要用于外接移位寄存器,以擴展單片機的io電路;工作方式1多用于雙機之間或與外設電路的通信;方式2、3除有方式1的功能外,還可以作多機通信,以構成分布式多微機系統。 串行端口有兩個控制寄存器scon、pcon,用于設置工作方式、發送或接收的狀態、特征位、數據傳送波特率每秒傳送的位數

10、以及作為中斷標志等。串行端口有一個數據寄存器sbuf在特殊功能寄存器中的字節地址為99h,該寄存器為發送和接收所共用。串行端口的波特率可以用程序來控制。在不同工作方式中,由時鐘振蕩頻率的分頻值或由定時器t1的定時溢出時間確定,使用十分方便靈活。 1、串口控制寄存器(1) 方式1輸入:在(ren)=1時,串行口采樣rxd引腳,當采樣到1至o的跳變時,確認是串行發送來的一幀數據的開始位0,從而開始接收一幀數據。只有當8位數據接收完,并檢測到高電平停止位后,只有滿足(r1)=0;(sm2)=0或接收到的第9位數據為1時,停止位才進入rb8,8位數據才能進入接收寄存器,并由硬件置位中斷標志r

11、i;否則信息丟失。所以在方式1接收時,應先用軟件清零ri和sm2標志。 (2)方式2  方式2為固定波特率的11位uart方式。它比方式1增加了一位可程控為1或0的第9位數據。  輸出:發送的串行數據由txd端輸出一幀信息為11位,附加的第9位來自scon寄存器的tb8位,用軟件置位或復位。它可作為多機通訊中地址數據信息的標志位,也可以作為數據的奇偶校驗位。當cpu執行一條數據寫入subf的指令且ti=0時,就啟動發送器發送。發送一幀信息后,置位中斷標志ti。輸入:在(ren)=1時,串行口采樣rxd引腳,當采樣到1至o的跳變時,確認是串行發送來的一幀數據的開始位

12、0,從而開始接收一幀數據。在接收到附加的第9位數據后,當滿足(ri):0;(sm2)=0或接收到的第9位數據為1時,第9位數據才進入rb8,8位數據才能進入接收寄存器,并由硬件置位中斷標志ri;否則信息丟失。且不置位ri。(3)工作方式3方式3為波特率可變的11位uart方式。除波特率外,其余與方式2相同。波特率的選擇  如前所述,在串行通訊中,收發雙方的數據傳送率(波特率)要有一定的約定。在mcs-51串行口的四種工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可變的,由定時器t1的溢出率控制。1方式o:方式0的波特率固定為主振頻率  的1/12。

13、2方式2:方式2的波特率由pcon中的選擇位smod來決定,可表示為:波特率=2smod×fosc64也就是當smod=1時,波特率為132×fosc,當smod=0時,波特率為164×fosc。 3方式1和方式3 定時器t1作為波特率發生器,其公式如下:波特率=2smod32×定時器t1溢出率t1溢出率=t1計數率產生溢出所需的周期數  式中t1計數率取決于它工作在定時器狀態還是計數器狀態。當工作于定時器狀態時,t1計數率為fosc/2:當工作于計數器狀態時,t1計數率為外部輸入頻率,此頻率應小于fosc/24。產生溢出所需周期與定

14、時器t1的工作方式、t1的預置值有關。定時器t1工作于方式o:溢出所需周期數=8192-×定時器t1工作于方式1:溢出所需周期數=65536-x定時器t1工作于方式2:溢出所需周期數=256-x  因為方式2為自動重裝入初值的8位定時器計數器模式,所以用它來做波特率發生器最恰當。這種方式下,t1的溢出率次秒計算式可以表示為:t1溢出率=fsoc12256-x1.2 雙機通信原理雙機通訊對單片機而言意義重大,不但可以實現將單片機的數據傳輸到計算機端,而且也能實現計算機對單片機的控制。由于其所需電纜線少,接線簡單,所以在較遠距離傳輸中,得到了廣泛的運用。1.3 系統網

15、絡協議通信協議是通信設備在通信前的約定。單片機、計算機有了協議這種約定,通信雙方才能明白對方的意圖,以進行下一步動作。假定我們需要在pc機與單片機之間進行通信,在雙方程式設計過程中,有如下約定:     0xa1:單片機讀取p0端口數據,并將讀取數據返回pc機;     0xa2:單片機從pc機接收一段控制數據;     0xa3:單片機操作成功信息。在系統工作過程中,單片機接收到pc機數據信息后,便查找協議,完成相應的操作。當單片機接收到0xa1時,讀取p0端口數據,并將讀

16、取數據返回pc機;當單片機接收到0xa2時,單片機等待從pc機接收一段控制數據;當pc接收到0xa3時,就表明單片機操作已經成功。2.設計方案 本次設計,對于兩片89c51,采用rs232進行雙機通信。發送方的數據由串行口txd段輸出,經過電平轉換芯片max232將ttl電平轉換為rs232電平輸出,經過傳輸線將信號傳送到接收端。接收方也使用max232芯片進行電平轉換后,信號到達接收方串行口的接收端。接受方接收后,在數碼管上顯示接收的信息。為提高抗干擾能力,還可以在輸入輸出端加光耦合進行光電隔離。軟件部分,通過通信協議進行發送接收,主機先送aah給從機,當從機接收到aah后,向主機回答bbh

17、。主機收到bbh后就把數碼表tab16中的10個數據送給從機,并發送檢驗和。從機收到16個數據并計算接收到數據的檢驗和,與主機發送來的檢驗和進行比較,若檢驗和相同則發送00h給主機;否則發送ffh給主機,重新接受。從機收到16個正確數據后送到一個數碼管顯示。3.單片機與通信芯片介紹3.1 單片機技術介紹1974年12月,美國著名的仙童公司推出了世界上第一臺單片機f8。該機由兩快集成電路芯片組成,結構新穎,并具有與眾不同的指令系統,深受民用電器和儀器儀表領域的歡迎和重視。從此單片機開始迅速發展,應用范圍也在不斷擴大,現已成為微型計算機的重要分支。單片機的發展大致經歷了外圍集成、總線完善、功能集成

18、、全方位發展等技術發展階段,至今走過了四代的歷程。第一代:單片機探索階段。主要有通用cpu 68xx系列和專用cpumcs-48系列。第二代:單片機完善階段。表現在:1.面對對象,突出控制功能,專用cpu滿足嵌入功能;2.尋址范圍16位或8位;3.規范的總線結構,有8位數據線,16位地址線及多功能異步串行口(uart);4.特殊功能寄存器(sfr)的集中管理模式;5.海量位地址空間,提供位尋址及位操作功能;6.指令系統突出功能。第三代:微控制器形成階段。這一階段已經形成系列產品:以8051系列為代表,如8031、8032、8051和8052等。第四代:微控制器百花齊放。表現在:1.電氣商、半導

19、體商廣泛加入;2.滿足最低層電子技術的應用(玩具、小家電);3.大力發展專用型單片機;4.致力于提高單片機的綜合品質。由于單片機在整個設計中占據著重要的地方,首先介紹一下單片機的相關知識。單片機at89s52具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統的設計需要。mcs-51單片機內部結構8051是mcs-51系列單片機的典型產品,我們以這一代表性的機型進行系統的講解。 8051單片機包含中央處理器、程序存儲器(rom)、數據存儲器(ram)、定時/計數器、并行接口、串行接口和中斷系統等幾大單元及數據總線、地址總線和控制總線等三大總線,現在分別加以說明:中央處理

20、器:中央處理器(cpu)是整個單片機的核心部件,是8位數據寬度的處理器,能處理8位二進制數據或代碼,cpu負責控制、指揮和調度整個單元系統協調的工作,完成運算和控制輸入輸出功能等操作。數據存儲器(ram):8051內部有128個8位用戶數據存儲單元和128個專用寄存器單元,它們是統一編址的,專用寄存器只能用于存放控制指令數據,用戶只能訪問,而不能用于存放用戶數據,所以,用戶能使用的ram只有128個,可存放讀寫的數據,運算的中間結果或用戶定義的字型表。 圖3.1 8051 內部結構程序存儲器(rom):8051共有4096個8位掩膜rom,用于存放用戶程序,原始數據或表格。定時/計數器:805

21、1有兩個16位的可編程定時/計數器,以實現定時或計數產生中斷用于控制程序轉向。并行輸入輸出(i/o)口:8051共有4組8位i/o口(p0、 p1、p2或p3),用于對外部數據的傳輸。全雙工串行口:8051內置一個全雙工串行通信口,用于與其它設備間的串行數據傳送,該串行口既可以用作異步通信收發器,也可以當同步移位器使用。中斷系統:8051具備較完善的中斷功能,有兩個外中斷、兩個定時/計數器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優先級別選擇。時鐘電路:8051內置最高頻率達12mhz的時鐘電路,用于產生整個單片機運行的脈沖時序,但8051單片機需外置振蕩電容。單片機的結構有兩種類

22、型,一種是程序存儲器和數據存儲器分開的形式,即哈佛(harvard)結構,另一種是采用通用計算機廣泛使用的程序存儲器與數據存儲器合二為一的結構,即普林斯頓(princeton)結構。intel的mcs-51系列單片機采用的是哈佛結構的形式,而后續產品16位的mcs-96系列單片機則采用普林斯頓結構。 圖3.2 mcs-51結構框圖mcs-51的引腳說明:mcs-51系列單片機中的8031、8051及8751均采用40pin封裝的雙列直接dip結構,圖2.3是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個i/o口,中斷口線與p3口線復用。現在我們對這

23、些引腳的功能加以說明:圖3.3 51單片機引腳圖pin9:reset/vpd復位信號復用腳,當8051通電,時鐘電路開始工作,在reset引腳上出現24個時鐘周期以上的高電平,系統即初始復位。初始化后,程序計數器pc指向0000h,p0-p3輸出口全部為高電平,堆棧指針寫入07h,其它專用寄存器被清“0”。reset由高電平下降為低電平后,系統即從0000h地址開始執行程序。然而,初始復位不改變ram(包括工作寄存器r0-r7)的狀態,8051的初始態。8051的復位方式可以是自動復位,也可以是手動復位,如圖(2.4)。此外,reset/vpd還是一復用腳,vcc掉電其間,此腳可接上備用電源,

24、以保證單片機內部ram的數據不丟失。 圖2.4 復位電路圖pin30:ale/當訪問外部程序器時,ale(地址鎖存)的輸出用于鎖存地址的低位字節。而訪問內部程序存儲器時,ale端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以當作一個時鐘向外輸出。更有一個特點,當訪問外部程序存儲器,ale會跳過一個脈沖。如果單片機是eprom,在編程其間,將用于輸入編程脈沖。pin29:當訪問外部程序存儲器時,此腳輸出負脈沖選通信號,pc的16位地址數據將出現在p0和p2口上,外部程序存儲器則把指令數據放到p0口上,由cpu讀入并執行。pin31:ea/vpp程序存儲器的內外部選

25、通線,8051和8751單片機,內置有4kb的程序存儲器,當ea為高電平并且程序地址小于4kb時,讀取內部程序存儲器指令數據,而超過4kb地址則讀取外部指令數據。如ea為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內部無程序存儲器的8031,ea端必須接地。3.2 maz232芯片用8051串行接口通信,如果兩臺8051單片機之間的距離很近(不超過1.5m),可以采用直接將兩臺8051單片機的串行接口直接相連,利用其自身的ttl電平(0-5v)直接傳輸數據信息。如果傳輸距離較遠(超過1.5m),由于傳輸線的阻抗與分布電容,會產生電平損耗和波形畸變,以至于檢測不出數據或數據出錯。

26、此時可利用 rs232標準總線接口,將單片機輸出的ttl電平轉換為rs232標準電平(邏輯1為-15-5v;邏輯0為+5-+15v)。用rs232可將傳輸距離提高到15m,如果想遠距離傳輸,可以采用rs422或者rs485。電平轉換芯片max232是美信公司(maxim)生產,專用于進行將ttl電平轉換為rs232電平的芯片,max232內部有泵電源,能將+5v電源電壓在芯片內提高到rs232電平所需的+10v或者-10v電平。圖2.電平轉換芯片max2323.3 4×4鍵盤介紹3.3.1 4×4矩陣鍵盤工作原理矩陣鍵盤又稱為行列式鍵盤,它是用4條i/o線作為行線,4條i/

27、o線作為列線組成的鍵盤。在行線和列線的每一個交叉點上,設置一個按鍵。這樣鍵盤中按鍵的個數是4×4個。這種行列式鍵盤結構能夠有效地提高單片機系統中i/o口的利用率。圖3.4為me300b矩陣鍵盤電路圖,行線接p1.4p1.7,列線接p1.0p1.3。圖3.4 矩陣鍵盤電路 圖2 按鍵排列3.3.2數碼動態掃描顯示電路在me300b開發系統中,采用了8位數碼管動態掃描顯示。它將所有數碼管的8個段線相應地并接在一起,并接到 at89s51的p0口,由p0口控制字段輸出。而各位數碼管的共陽極由at89s51的p2口控制q20q27來實現8位數碼管的位輸出控制。這樣,對于一組數碼管動態掃描顯示

28、需要由兩組信號來控制:一組是字段輸出口輸出的字形代碼,用來控制顯示的字形,稱為段碼;另一組是位輸出口輸出的控制信號,用來選擇第幾位數碼管工作,稱為位碼。由于各位數碼管的段線并聯,段碼的輸出對各位數碼管來說都是相同的。因此,同一時刻如果各位數碼管的位選線都處于選通狀態的話,8位數碼管將顯示相同的字符。若要各位數碼管能夠顯示出與本位相應的字符,就必須采用掃描顯示方式。即在某一時刻,只讓某一位的位選線處于導通狀態,而其它各位的位選線處于關閉狀態。同時,段線上輸出相應位要顯示字符的字型碼。這樣同一時刻,只有選通的那一位顯示出字符,而其它各位則是熄滅的,如此循環下去,就可以使各位數碼管顯示出將要顯示的字

29、符。雖然這些字符是在不同時刻出現的,而且同一時刻,只有一位顯示,其它各位熄滅,但由于數碼管具有余輝特性和人眼有視覺暫留現象,只要每位數碼管顯示間隔足夠短,給人眼的視覺印象就會是連續穩定地顯示。管的亮度將亮些,若顯示的時間間隔短,顯示時數碼管的亮度將暗些。若顯示的時間間隔過長的話,數碼管顯示時將產生閃爍現象。所以,在調整顯示的時間間隔時,即要考慮到顯示時數碼管的亮度,又要數碼管顯示時不產生閃爍現象。在me300b單片機開發系統中使用數碼管來顯示信息時,要將jp2的2、3端短接。見圖3.6。圖3.63.4數碼管工作原理 共陽極數碼管的8個發光二極管的陽極(二極管正端)連接在一起。通常,公共陽極接高

30、電平(一般接電源),其它管腳接段驅動電路輸出端。當某段驅動電路的輸出端為低電平時,則該端所連接的字段導通并點亮。根據發光字段的不同組合可顯示出各種數字或字符。此時,要求段驅動電路能吸收額定的段導通電流,還需根據外接電源及額定段導通電流來確定相應的限流電阻。 共陰極數碼管的8個發光二極管的陰極(二極管負端)連接在一起。通常,公共陰極接低電平(一般接地),其它管腳接段驅動電路輸出端。當某段驅動電路的輸出端為高電平時,則該端所連接的字段導通并點亮,根據發光字段的不同組合可顯示出各種數字或字符。此時,要求段驅動電路能提供額定的段導通電流,還需根據外接電源及額定段導通電流來確定相應的限流電阻.4.設計步

31、驟 基于單片機的雙機通信的設計包括軟件設計和硬件設計兩部分。軟硬件設計都包括發射部分和接收部分的設計。軟件設計主要是c語言程序和匯編語言程序的編寫和運用proteus軟件進行仿真。4.1 keil和proteus介紹和聯調4.1.1 proteus的介紹1、proteus是一種低投資的電子設計自動化軟件,提供schematic drawing、spice仿真與pcb設計功能,這一點proteus 與 multisim比較類似,只不過它可以仿真單片機和周邊設備,可以仿真51系列、avr,pic等常用的mcu,與keil和mplab不同的是它還提供了周邊設備的仿真,只要給出電路圖就可以仿真,例如3

32、73,led,示波器,proteus提供了大量的元件庫,有ram,rom,鍵盤,馬達,led,lcd,ad/da,部分spi器件,部分iic器件,編譯方面支持keil和mplab,里面有大量的例子參考. 2、proteus可提供仿真元件資源 ,proteus軟件提供了可仿真數字和模擬、交流和直流等數千種元器件達30多個元件庫。 3、proteus可提供的仿真儀表資源包括擬儀器儀表的數量、類型和質量,是衡量仿真軟件實驗室是否合格的一個關鍵因素。在proteus軟件中,理論上同一種儀器可以在一個電路中隨意的調用。 除了現實存在的儀器外,proteus還提供了一個圖形顯示功能,可以將線路上變化的信號

33、,以圖形的方式實時地顯示出來,其作用與示波器相似但功能更多。這些虛擬儀器儀表具有理想的參數指標,例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對測量結果的影響。 4、proteus可提供的調試手段 proteus提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數字信號。 proteus 與其它單片機仿真軟件不同的是,它不僅能仿真單片機cpu 的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調試時,關心的不再是某些語句執行時單片機寄存器和存儲器內容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結果。對于這樣的仿真實驗

34、,從某種意義上講,是彌補了實驗和工程應用間脫節的矛盾和現象。4.1.2 keil的介紹keil是德國開發的一個51單片機開發軟件平臺,最開始只是一個支持c語言和匯編語言的編譯器軟件。后來隨著開發人員的不斷努力以及版本的不斷升級,使它已經成為了一個重要的單片機開發平臺,不過keil的界面并不是非常復雜,操作也不是非常困難,很多工程師的開發的優秀程序都是在keil的平臺上編寫出來的。可以說它是一個比較重要的軟件,熟悉他的人很多很多,用戶群極為龐大,要遠遠超過偉福等廠家軟件用戶群,操作有不懂的地方只要找相關的書看看,到相關的單片機技術論壇問問,很快就可以掌握它的基本使用了。 1、keil的µ

35、;vision2可以進行純粹的軟件仿真(仿真軟件程序,不接硬件電路);也可以利用硬件仿真器,搭接上單片機硬件系統,在仿真器中載入項目程序后進行實時仿真;還可以使用µvision2的內嵌模塊keil monitor-51,在不需要額外的硬件仿真器的條件下,搭接單片機硬件系統對項目程序進行實時仿真。 2、uvision2調試器具備所有常規源極調試,符號調試特性以及歷史跟蹤,代碼覆蓋,復雜斷點等功能。dde界面和shift語言支持自動程序測試。    3、虛擬實驗的構建及調試;單片機的理論教學和實驗中,內容一般包括了四方面,即單片機系統資源;硬件電路的設計、組

36、裝、調試;應用軟件的編制、調試;總調,即應用軟件的鏈接調試,程序固化,軟、硬件結合的應用系統。因此教師在進行教學時,應該充分考慮課程的特點并作合理的模塊劃分,在每次實驗課程前作適當的準備工作,以使教學任務能集中和突出。 (1)系統資源的實驗教學 任何一種單片機均提供了一定的系統資源。對于51系列單片機來講,其所提供的資源是以寄存器和存儲器的方式體現出來的。對于寄存器內容的查看,可以采用多種可以模擬仿真51單片機的軟件來實現。對于keil軟件來講,c51編譯器可以實現對51系列單片機所有資源的操作。 (2)硬件電路的設計、組裝、調試 硬件電路的設計包含兩部分內容:一是系統擴展,即單片機自身的功能

37、單元如rom、ram、i/o口、定時器/計數器等容量不能滿足應用系統的需要時,必須在片外進行擴展,選擇適當的芯片,設計相應的電路;二是系統配置,即按照系統的要求配置外圍設備,如鍵盤、顯示器、打印機、a/d轉換器、d/a轉換器等,要設計合適的接口電路。 很多常用的硬件電路的設計可在proteus軟件中實現,學生通過proteus軟件的使用,不當可以實現教材上的大部分實驗。而且可以學到硬件電路設計的方法。 (3)應用軟件的編制、調試; 使用keil 軟件工具時,項目開發流程和其它軟件開發項目的流程極其相似。   創建一個項目,從器件庫中選擇目標器件,配置工具設置。   

38、; 用c語言或匯編語言創建源程序。 用項目管理器生成應用。   修改源程序中的錯誤。   測試,連接應用。 通過使用keil 軟件工具編制、調試應用軟件,可以學到單片機各種指令,也可以學到單片機軟件開發的步驟、方法和技巧。 (4)總調,即應用軟件的鏈接調試,程序固化,軟、硬件結合的應用系統 軟硬件聯合仿真系統由一個硬件執行環境和一個軟件執行環境組成,通常軟件環境和硬件環境都有自己的除錯和控制界面,keil與proteus的整合調試可以實現系統的總調,在該系統中,keil作為軟件調試界面,proteus作為硬件仿真和調試界面,下面說一下如何在keil中調用proteus進行m

39、cu外圍器件的仿真。 4.2 軟件設計1、源程序設計首先,根據發送端和接收端的功能要求分別編寫源代碼。源程序由c語言編程實現,具體如附錄i。所實現的功能是用4×4鍵盤進行手動控制發送端的數字信號進行發送。然后,調試源程序直到無錯誤出現。最后,運行源程序。2、原理圖設計利用proteus仿真軟件畫出原理圖并將程序嵌入其中,直到仿真成功。3、將程序分別燒入控制發送端和接收端的at89c51中,仿真結果如附錄ii。4.3 硬件設計按照原理圖將器件一一插入面包板。首先,將各個芯片插入合適的位置。接著把相應的器件插入面包板。接下來連接導線。分別給發送端和接收端接上5v電源,即可觀察設計結果,硬

40、件實現如附錄iii。千萬不要刪除行尾的分節符,此行不會被打印。“結論”以前的所有正文內容都要編寫在此行之前。結 論為期3周的通信專業課程設計,我們很好的完成了設計任務。期間,我學到了很多寶貴的經驗和相關的通信技術知識。在這次的雙機通信系統設計中,c語言程序和匯編語言程序的編寫以及原理圖的設計占了很重要的部分。對于零散的芯片,通過編程、仿真、硬件電路搭建,才能形成一個完整的系統。我們必須深入到工程實踐中,畢竟實踐出真知。同時,在本次課程設計中,我們還必須將書本中的知識很好的應用到實踐中去。經過課程設計,在查閱資料的過程中,學習了基于單片機的c語言程序設計,了解了單片機串行通信的基本知識,對于以后

41、的學習和工作都有很大的益處。在學習的過程中,也遇到了一些困難,比如開始的時候,由于發送端和接收端的通信協議沒有做好,導致數據不能正確的傳輸,在解決問題的過程中,對于通信協議的實現有了深刻的認識。現在課程設計已經結束,但它的影響卻留存長久,它讓我們自己動手,品嘗成功的喜悅,激發了我們對實踐的興趣和熱情,在很大程度上鼓舞了我們的學習決心,增強了我們的自信心,讓我們以更大的勇氣面對以后的學習和人生他,它給了我們開拓進取的動力。通過這次的課程設計我深刻的認識到了,理論知識和實踐相結合是教學環節中相當重要的一個環節,只有這樣才能提高自己的實際操作能力,并且從中培養自己獨立思考、用于克服困難、團隊協作的精

42、神。不要自己寫,要利用word來自動生成。詳情請看最后一頁致 謝持續緊張和忙碌三周的課程設計終于完了,在此我特別感謝帶我的指導老師-王老師,在這次畢業設計中對我的的耐心指導和幫助。還有各位領導在此期間對我的幫助和鼓勵,使我在設計的時候信心十足。感謝學校給我門這次畢業設計的機會和其它的幫助。還有一同討論、幫助我設計的同學表示感謝。在這次課程設計中,老師的教導和同學們的協作,使我受益匪淺。感謝幾位舍友在我幾次弄丟資料的情況下幫助我共同完成任務。沒有老師和他們的幫助、查找資料。對于我一個對單片機知識理解不是很深入的人來說要想在短短的幾周的時間里學習到網絡知識并完成課程論文是很困難的事情。所以,謝謝指

43、導老師和幾位舍友,謝謝你們!參考文獻1 胡漢才. 單片機原理機接口技術m. 北京:北京清華大學出版社,2004.3.2 薛曉書. 單片微型計算機原理及應用. 西安交通大學出版社,2007.3 秦實宏,周龍,肖忠. 單片機原理與應用技術. 中國水利水電出版社,2005.附 錄i發送端程序:#ifndef_pmpdatat_h #define_pmpdatat_h#include <reg51.h>#include <string.h>#define uchar unsigned char#define uint unsigned int#define succ 0x2a#

44、define err 0xf0#define maxlen 64 uchar buf;uchar addr,get_key,key;#endif#include "pmpdatat.h"sbit led=p34;uchar num=0;void delay(uint t)uint 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(scancode)+(tmpcode);else scancode = (scancode<<1)|0x01;/ ÐÐɨÃèÂë×óÒÆÒ»Î»return(0);void sendda

溫馨提示

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

評論

0/150

提交評論