電子工程畢業(yè)設(shè)計(jì)---雙機(jī)之間的串行通信設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p><b>  一、 引言2</b></p><p><b>  二、 方案設(shè)計(jì)2</b></p><p><b>  1. 方案一2</b></p><p><b>  2.

2、方案二3</b></p><p><b>  三、總體設(shè)計(jì)4</b></p><p>  1.單片機(jī)串行口通信5</p><p>  2. MAX232芯片5</p><p><b>  五、軟件設(shè)計(jì)5</b></p><p>  六、整體電路設(shè)計(jì)6&

3、lt;/p><p><b>  七、結(jié)論6</b></p><p><b>  八、附錄7</b></p><p><b>  1、發(fā)送程序7</b></p><p><b>  2、接收程序8</b></p><p><

4、b>  3、整體電路圖9</b></p><p><b>  九、參考文獻(xiàn)10</b></p><p>  雙機(jī)之間的串行通信設(shè)計(jì)</p><p><b>  引言</b></p><p>  由于MCS51系列單片機(jī)具有性能穩(wěn)定、工作可靠、價(jià)格低廉等特點(diǎn),因此其應(yīng)用相當(dāng)廣泛。

5、一個(gè)MCS51系列的單片機(jī)(如Atmel89c**)內(nèi)部包含有RAM、FLASH ROM、兩個(gè)或者三個(gè)16位的定時(shí)器/計(jì)數(shù)器、一個(gè)通用異步串行通信控制器(UART)等多種資源。在這種情況下,一個(gè)系統(tǒng)中就使用了兩個(gè)或兩個(gè)以上的單片機(jī),而單片機(jī)之間就要通過(guò)互連來(lái)進(jìn)行數(shù)據(jù)通信。MCS51系列的單片機(jī)(以下簡(jiǎn)稱單片機(jī))都帶有串口,利用串口進(jìn)行互連通信極為方便,其各種連接方式在許多書籍和資料上都有介紹,在此不再重述。但如果系統(tǒng)要求擴(kuò)充的資源是對(duì)外

6、連接的串口,或?qū)ο嗷ブg的數(shù)據(jù)傳送有一定的速度要求,則單片機(jī)的串口就不能用作系統(tǒng)內(nèi)兩單片機(jī)的通信接口了。所幸的是,單片機(jī)的并行端口也能相互連接來(lái)進(jìn)行數(shù)據(jù)通信。根據(jù)單片機(jī)端口內(nèi)部結(jié)構(gòu)的特點(diǎn),這些端口的端口線可以直接相連,從而使兩單片機(jī)之間并行通信接口的實(shí)現(xiàn)不用另外的硬件電路設(shè)備。</p><p><b>  方案設(shè)計(jì)</b></p><p><b>  1 方

7、案一</b></p><p>  本方案采用單片機(jī)AT89C51作為軟件程序的載體,并采用并行通信方式。并行通信是指數(shù)據(jù)各位同時(shí)并行傳送的通信方式。 如果只需要一個(gè)單片機(jī)向另一個(gè)單片機(jī)傳送數(shù)據(jù),則可以采用單向并行通信接口方式,這種方式較為簡(jiǎn)單。單片機(jī)A為數(shù)據(jù)發(fā)送方,單片機(jī)B為數(shù)據(jù)接收方,8位端口可以是P0?3的任何一個(gè)。數(shù)據(jù)傳送的流程是:?jiǎn)纹瑱C(jī)A將數(shù)據(jù)送到端口后,通過(guò)STB信號(hào)中斷單片機(jī)B。單片機(jī)B進(jìn)

8、入中斷并從端口讀取數(shù)據(jù),讀完后,在LED燈上顯示。原理圖如圖1-1。</p><p><b>  圖1-1</b></p><p><b>  2、方案二 </b></p><p>  本次設(shè)計(jì),對(duì)于兩片89C51,采用RS232進(jìn)行雙機(jī)通信。發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過(guò)電平轉(zhuǎn)換芯片MAX232將TTL電平轉(zhuǎn)換為

9、RS232電平輸出,經(jīng)過(guò)傳輸線將信號(hào)傳送到接收端。接收方也使用MAX232芯片進(jìn)行電平轉(zhuǎn)換后,信號(hào)到達(dá)接收方串行口的接收端。接受方接收后,在數(shù)碼管上顯示接收的信息。 軟件部分,通過(guò)通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送AAH給從機(jī),當(dāng)從機(jī)接收到AAH后,向主機(jī)回答B(yǎng)BH。主機(jī)收到BBH后就把數(shù)碼表TAB[16]中的10個(gè)數(shù)據(jù)送給從機(jī),并發(fā)送檢驗(yàn)和。從機(jī)收到16個(gè)數(shù)據(jù)并計(jì)算接收到數(shù)據(jù)的檢驗(yàn)和,與主機(jī)發(fā)送來(lái)的檢驗(yàn)和進(jìn)行比較,若檢驗(yàn)和相同則發(fā)送00H

10、給主機(jī);否則發(fā)送FFH給主機(jī),重新接受。從機(jī)收到16個(gè)正確數(shù)據(jù)后送到一個(gè)數(shù)碼管顯示。如圖1-2</p><p><b>  圖1-2</b></p><p><b>  3方案論證</b></p><p>  方案一中的傳輸?shù)姆€(wěn)定性明顯不如的方案二中采用串行方式。由于有多根傳輸線并行傳輸數(shù)據(jù),因此傳送速度快、通信速率高。一

11、般而言,串行通信的傳送速度明顯將低于并行通信。但當(dāng)多位數(shù)據(jù)遠(yuǎn)程傳輸時(shí),傳輸線路的開(kāi)銷就成為突出問(wèn)題。由于串行通信只需一對(duì)傳輸線,并且可以利用電話線等有通信信道作為傳輸介質(zhì),因而可以大大降低傳輸線路的成本。所以此報(bào)告結(jié)合實(shí)際,采用串行通信方式,即方案二。很容易看出,采用方案二,電路比較的簡(jiǎn)單穩(wěn)定,將接受到的數(shù)據(jù)顯示出來(lái)。</p><p><b>  總體設(shè)計(jì)</b></p>&l

12、t;p>  最終設(shè)計(jì)電路如下圖3所示,發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過(guò)電平轉(zhuǎn)換芯片MAX232將TTL電平轉(zhuǎn)換為RS232電平輸出,經(jīng)過(guò)傳輸線將信號(hào)傳送到接收端。接收方也使用MAX232芯片進(jìn)行電平轉(zhuǎn)換后,信號(hào)到達(dá)接收方串行口的接收端。接受方接收后,通過(guò)P1口在數(shù)碼管上顯示接收的信息。</p><p>  單元電路(或軟件模塊)設(shè)計(jì)</p><p>  1.單片機(jī)串行通信功能&

13、lt;/p><p>  圖1-4 AT89C51</p><p>  51單片機(jī)的串行接口是一個(gè)全雙工的接口,它可以作為UART(通用異步接受和發(fā)送器)用,也可以作為同步移位寄存器用。數(shù)據(jù)緩沖器(SBUF)接受或發(fā)送的數(shù)據(jù)都要先送到SBUF緩存。有兩個(gè),一個(gè)緩存,另一個(gè)接受,用同一直接地址99H,發(fā)送時(shí)用指令將數(shù)據(jù)送到SBUF即可啟動(dòng)發(fā)送;接收時(shí)用指令將SBUF中接收到的數(shù)據(jù)取出。</p

14、><p>  2.MAX232芯片</p><p>  用8051串行接口通信,如果兩臺(tái)8051單片機(jī)之間的距離很近(不超過(guò)1.5m),可以采用直接將兩臺(tái)8051單片機(jī)的串行接口直接相連,利用其自身的TTL電平(0-5V)直接傳輸數(shù)據(jù)信息。如果傳輸距離較遠(yuǎn)(超過(guò)1.5m),由于傳輸線的阻抗與分布電容,會(huì)產(chǎn)生電平損耗和波形畸變,以至于檢測(cè)不出數(shù)據(jù)或數(shù)據(jù)出錯(cuò)。此時(shí)可利用 RS232標(biāo)準(zhǔn)總線接口,將

15、單片機(jī)輸出的TTL電平轉(zhuǎn)換為RS232標(biāo)準(zhǔn)電平(邏輯1為-15—-5V;邏輯0為+5-—+15V)。用RS232可將傳輸距離提高到15m,如果想遠(yuǎn)距離傳輸,可以采用RS422或者RS485。</p><p>  電平轉(zhuǎn)換芯片MAX232是美信公司(MAXIM)生產(chǎn),專用于進(jìn)行將TTL電平轉(zhuǎn)換為RS232電平的芯片,MAX232內(nèi)部有泵電源,能將+5V電源電壓在芯片內(nèi)提高到RS232電平所需的+10V或者-10V電

16、平。</p><p>  圖1-5電平轉(zhuǎn)換芯片MAX23</p><p><b>  五、軟件設(shè)計(jì)</b></p><p>  通過(guò)通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送AAH給從機(jī),當(dāng)從機(jī)接收到AAH后,向主機(jī)回答B(yǎng)BH。主機(jī)收到BBH后就把數(shù)碼表TAB[16]中的10個(gè)數(shù)據(jù)送給從機(jī),并發(fā)送檢驗(yàn)和。從機(jī)收到16個(gè)數(shù)據(jù)并計(jì)算接收到數(shù)據(jù)的檢驗(yàn)和,與主機(jī)發(fā)

17、送來(lái)的檢驗(yàn)和進(jìn)行比較,若檢驗(yàn)和相同則發(fā)送00H給主機(jī);否則發(fā)送FFH給主機(jī),重新接受。從機(jī)收到16個(gè)正確數(shù)據(jù)后送到一個(gè)數(shù)碼管顯示。</p><p><b>  六、電路整體測(cè)試</b></p><p>  在protues上進(jìn)行仿真實(shí)驗(yàn)。首先使用KeilC將編寫完成的程序編譯生成HEX文件,將HEX文件燒錄到兩片單片機(jī)中,進(jìn)行仿真實(shí)驗(yàn),結(jié)果如下圖所示,可以看到,接收端

18、已將接受到的數(shù)據(jù)完整的顯示了出來(lái)。</p><p><b>  結(jié)論</b></p><p>  經(jīng)過(guò)繁忙而又緊張的課程設(shè)計(jì),終于順利的完成了設(shè)計(jì)任務(wù)。雖然在這段時(shí)間里每天都那么繁忙,但是在這忙碌的過(guò)程中卻得到了許多的收獲。經(jīng)過(guò)課程設(shè)計(jì),在查閱資料的過(guò)程中,學(xué)習(xí)了基于單片機(jī)的C語(yǔ)言程序設(shè)計(jì),了解了單片機(jī)串行通信的基本知識(shí),對(duì)于以后的學(xué)習(xí)和工作都有很大的益處。在學(xué)習(xí)的過(guò)

19、程中,也遇到了一些困難,比如開(kāi)始的時(shí)候,由于發(fā)送端和接收端的通信協(xié)議沒(méi)有做好,導(dǎo)致數(shù)據(jù)不能正確的傳輸,在解決問(wèn)題的過(guò)程中,對(duì)于通信協(xié)議的實(shí)現(xiàn)有了深刻的認(rèn)識(shí)。通過(guò)這次課程設(shè)計(jì),鍛煉了自己獨(dú)立思考的能力。</p><p><b>  附錄</b></p><p><b>  1、主機(jī)發(fā)送程序</b></p><p>  #in

20、clude <reg51.h></p><p>  #define uchar unsigned char </p><p>  void init();</p><p>  void send();</p><p>  ucharTAB[16] ={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x0

21、7,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};</p><p>  uchar i,sum;</p><p><b>  int j;</b></p><p><b>  main()</b></p><p>  { init();</p>&

22、lt;p><b>  send();</b></p><p><b>  } </b></p><p>  void init(void)</p><p><b>  { EA=1;</b></p><p><b>  ES=1;</b></p

23、><p>  TMOD=0x20;</p><p><b>  TH1=0xfd;</b></p><p><b>  TL1=0xfd;</b></p><p>  PCON=0x00;</p><p>  SCON=0x50;</p><p><

24、b>  TR1=1;</b></p><p><b>  } </b></p><p>  void send(void)</p><p><b>  {do</b></p><p>  { SBUF=0xaa;</p><p>  while(!TI);&

25、lt;/p><p><b>  TI=0;</b></p><p>  while(!RI);</p><p><b>  RI=0;</b></p><p><b>  }</b></p><p>  while((SBUF^0xbb)!=0);</

26、p><p><b>  do</b></p><p><b>  { sum=0;</b></p><p>  for(i=0;i<=15;i++)</p><p>  { SBUF=TAB[i];</p><p>  sum+=TAB[i];</p><

27、;p>  while(!TI);</p><p><b>  TI=0;</b></p><p><b>  }</b></p><p><b>  SBUF=sum;</b></p><p>  while(!TI);</p><p><b

28、>  TI=0;</b></p><p>  while(!RI);</p><p><b>  RI=0;</b></p><p><b>  }</b></p><p>  while(SBUF!=0);</p><p><b>  }<

29、/b></p><p><b>  2、從機(jī)接收程序</b></p><p>  #include<reg51.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>

30、;  void delay(int );</p><p>  void receive(void) ;</p><p>  void init(void);</p><p>  uchar i,sum;</p><p><b>  int j;</b></p><p>  ucharTAB[16]

31、 ={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};</p><p>  void main()</p><p><b>  { init();</b></p><p>  receive();</p><p

32、><b>  }</b></p><p>  void init(void)</p><p><b>  { EA=1;</b></p><p><b>  ES=1;</b></p><p>  TMOD=0x20;</p><p><b&

33、gt;  TH1=0xfd;</b></p><p><b>  TL1=0xfd;</b></p><p>  PCON=0x00;</p><p>  SCON=0x50;</p><p><b>  TR1=1;</b></p><p><b> 

34、 } </b></p><p>  void 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>&l

35、t;/p><p>  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);</p&g

36、t;<p>  SBUF=0xbb;</p><p>  while(!TI);TI=0;</p><p><b>  while(1)</b></p><p><b>  { sum=0;</b></p><p>  for(i=0;i<=15;i++)</p>

37、<p>  { while(!RI);RI=0;</p><p>  TABS[i]=SBUF;</p><p>  sum+=TABS[i];</p><p><b>  }</b></p><p>  while(!RI);RI=0;</p><p>  if((SBUF^sum)=

38、=0)</p><p>  { SBUF=0x00;</p><p>  while(!TI);</p><p><b>  TI=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p>

39、<p><b>  else</b></p><p>  { SBUF=0xff;</p><p>  while(!TI);</p><p><b>  TI=0;</b></p><p><b>  }</b></p><p><

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

41、;/b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  系統(tǒng)電路圖</b></p><p><b>  九、參考文獻(xiàn)</b></p><p>  [1] 趙茂泰.智

42、能儀器原理及應(yīng)用.北京: 電子工業(yè)出版社,2004.7</p><p>  [2] 張毅剛,劉杰.MCS—51單片機(jī)原理及應(yīng)用.哈爾濱: 哈爾濱工業(yè)大學(xué)出版社,2004.6</p><p>  [3] 何立民.單片機(jī)應(yīng)用技術(shù)選編.北京: 北京航天航空大學(xué)出版,2002.5</p><p>  [4] 張軍,梅麗鳳.單片機(jī)原理接口技術(shù).北京交通大學(xué)出版社,2006.5

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論