久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3016|回復: 0
打印 上一主題 下一主題
收起左側

PC機與8031單片機模式3的RS485多機通信課程設計(論文)

[復制鏈接]
跳轉到指定樓層
樓主
ID:300215 發表于 2018-4-9 21:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

沈陽航空航天大學
課程設計
(論文)
題目 單片機與PC機RS-485的串行通信設計
班       級      
學       號   
學 生 姓 名         
指 導 教 師         
目    錄
0        前言        1
1  總體方案設計        2
2  硬件電路設計        2
2.1 AT89C51單片機        2
2.2 時鐘電路        4
2.3 按鍵復位電路        4
2.4 MAX485轉換芯片        4
2.5 PC機RS-485 通信的接口電路        5
3  軟件設計        6
4  調試分析        8
5  結論及進一步設想        8
參考文獻        8
課設體會        10
附錄1  電路原理圖        11
附錄2  程序清單        12


單片機與PC機RS-485串行通訊設計
摘要:本文提出了一種PC機與單片機進行串行通信的方案,該方案通過PC機的RS232串口、485總線實現與51單片機的串口通信,PC機送出的信號進行電平轉換后送到485總線,單片機則接受MAX485芯片轉換得到的信號,從而進行串行通信。該系統的特點是電路設計簡單可行、通信穩定、實用性強。
關鍵詞:PC機;單片機;串口通信;MAX485芯片;
0 前言
在計算機測控領域經常會采用一臺PC 機與一個或多個單片機組成小型的測控網絡, 這種測控系統充分發揮了單片機功能強, 抗干擾性能好, 溫度適應范圍寬,面向控制的優點, 同時又可以利用計算機彌補單片機在數據處理和交互性等方面的不足。在測控系統中一般是以PC 機作為主控機,采用串行通訊定時掃描以單片機為核心的智能控制器(從機) 以便采集數據或發送信號。PC機的串口一般采用RS—232的總線標準,但由于RS—232接口標準發布較早,難免有不足之處,主要體現在以下四點:1、接口信號的電平值較高,已損壞接口電路芯片,又因為與TTL電平不兼容故需使用電平轉換電路方能與TTL電路連接;2、傳送速率較低,在異步傳送時,波特率為20Kbps;3、接口使用一根信號線和一根信號返回線而構成共地的傳輸形式,這種共地傳輸容易產生共模干擾,所以抗噪聲干擾性弱;4、傳輸距離有限,最大傳輸距離標準為50英尺,實際上也只能用在50m左右。
針對RS-232的不足, 于是先后又出現了一些新的接口標準RS-485 就是其中之一。RS—485總線標準是美國電氣工業協會(EIA)公布的平衡電壓數字接口電路的電氣性能標準,是為改善RS-232標準的電氣特性,又參考RS-232兼容而制定的。RS-485標準與RS-232標準相比具有以下優點:1、RS-485的電氣性能:邏輯“1”以兩線間的電壓差為+(0.2-6)V表示;邏輯“0”以兩線間的電壓差為-(0.2-6)V表示。接口信號電平比RS-232降低了,就不易損壞接口電路芯片,且該電平與TTL電平兼容,可方便與TTL電路連接。2、RS-485的數據最高傳送速率為10Mbps。3、RS-485接口是采用平衡驅動器和和差分接收器的組合,抗共模干擾能力強,抗噪聲干擾性好。4、RS-485最大的通信距離約為1219m,傳輸速率與傳輸距離成反比,在100kb/s的傳輸速率下才可以達到最大的通信距離,如需傳輸更長的距離,需加485中繼器。RS-485總線最大支持32節點。由于RS-485接口具有良好的抗干擾性,較長的傳輸距離和多站通信能力等優點,使其成為首選的串行接口。RS-485接口組成的半雙工網絡,一般只需兩根連線,所以RS-485總線接口均采用雙絞線傳輸。
1  總體方案設計
針對本課題的設計任務,進行分析得到:本次設計用RS-485標準進行單片機與PC機的串行通信,PC機發出的數據經過RS-232/485轉化器后發送,再經過單片機端的MAX485芯片把信號轉換成TTL電平送給單片機,單片機接收到PC機發來的數據后再回送給PC機。
該串行通信系統設計,在總體上大致可分為以下幾個部分組成:1、RS-232/RS-485轉換電路,TTL電平轉換芯片,單片機最小系統。系統原理框圖如圖1所示。
圖1  系統原理框圖
2  硬件電路設計
2.1 單片機介紹  
圖2  AT89C51   
引腳說明
VCC:接+5V電壓,
GND:接信號地。
I/O口部分   
P0口:(P0.0~P0.7)P0口為一個8位雙向I/O口,在不接片外存儲器和不擴展I/O口時,可作為準雙向輸入/輸出口。在接片外存儲器或擴展I/O口時,P0口分時復用為地8位地址總線和雙向數據總線。  
P1口:(P1.0~P1.7)P1口是一個8位雙向I/O口。  
P2口:(P2.0~P2.7)P2口為8位準雙向I/O口,在接有片外存儲器或擴展I/O口且尋址范圍超過256B時,P2口用作高8位地址總線。
P3口:(P3.0~P3.7)P3口是一個8位雙向I/O口。它還有第二功能如表1所示。
表1  P3口第二功能表
管腳
   
第二功能
P3.0
   
RXD(串行輸入口)
P3.1
   
TXD(串行輸出口)  
P3.2
   
(外部中斷0)
P3.3
   
(外部中斷1)
P3.4
   
T0(定時/計數器0計數脈沖輸入端)
P3.5
   
T1(定時/計數器1計數脈沖輸入端)
P3.6
   
(外部數據存儲器寫選通信號輸出端)
P3.7
   
(外部數據存儲器讀選通信號輸出端)
控制與復位部分
RST:復位信號。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
ALE/:地址鎖存允許輸出。當訪問外部程序存儲器或數據存儲器時,ALE輸出脈沖用于鎖存地址的低8位字節。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。
:外部程序存儲器的選通信號。當讀外部ROM時,有效,實現從片外程序存儲器的讀操作。
/V:為片外程序存儲器選用端。當保持低電平時,只選用片外部程序存儲器。否則,單片機上電或復位后選用片內程序存儲器。
外接晶振部分 
XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。   
XTAL2:反向振蕩器的輸出。
2.2 時鐘電路  
圖3  時鐘電路
外接晶振X1以及電容C1、C2構成并聯諧振電路,內部振蕩器產生自激振蕩,一般晶振可在2~12MHz之間任選,本系統選用的晶振頻率為12MHz。對外接電容值雖然沒有嚴格的要求,但電容的大小多少會影響振蕩頻率的高低、振蕩器的穩定性、起振的快速性和溫度的穩定性,根據經驗本系統所接電容C1、C2為22pF如圖3所示。
2.3 按鍵復位電路  
圖4  復位電路
上電自動復位是通過給電容充電進而給RST引腳一個高電平信號,此信號隨著VCC對電容C的充電過程而逐漸回落,即RST引腳上的高電平持續時間取決于電容C充電時間,為保證系統可靠復位,RST引腳上的高電平必須維持足夠長的時間,按鍵復位由此產生,當按下復位按鈕,電容對R1迅速放電,RST端變為高電平,按鈕松開后,電容通過電阻R2進行充電,使RST端恢復低電平,本系統采用按鍵復位電路如圖4所示。                                          
2.4 MAX485轉換芯片
圖5  MAX485芯片
MAX485接口芯片是Maxim公司的一種RS-485芯MAX485是專用于RS-485 通訊的小功率收發器, 它采用8 腳DIP/SO 封裝, 內含一個驅動器和一個發送器。其驅動器采用限斜率設計, 這樣可以將電磁干擾(EMI)減至最小,并減小因電纜不匹配而產生的影響, 因此, 能夠以高達250kb/s 的速率無誤差地傳送數據。當RE為低電平時,MAX485數據輸入有效;當DE為高電平時,MAX485數據輸出有效。在半雙工使用中,通常可以將這兩個腳直接相連,然后由PC或者單片機輸出的高低電平就使MAX485在接收和發送狀態之間轉換了。MAX485芯片采用單一電源+5 V工作,額定電流為300 μA,采用半雙工通訊方式。A端和B端分別為接收和發送的差分信號端,當A引腳的電平高于B時,代表發送的數據為1;當A的電平低于B端時,代表發送的數據為0。在與單片機連接時接線非常簡單,只需要一個信號控制MAX485的接收和發送即可,同時將A和B端之間加匹配電阻,一般可選100Ω的電阻。
2.5 PC 機RS-485 通信的接口電路
圖6  PC 機RS-485通信的接口電路
在上圖中,MAX485是通過兩個引腳RE(2腳)和DE(3腳)來控制數據的輸入和輸出。當RE為低電平時,MAX485數據輸入有效;當DE為高電平時,MAX485數據輸出有效。在半雙工使用中,通常可以將這兩個引腳直接相連,然后由PC或者單片機輸出的高低電平就可以讓MAX485在接收和發送狀態之間轉換了。本電路使用TX線和MAX232的另外一個通道來控制MAX485的狀態切換。平時MAX232的9腳輸出低電平,使MAX485的RE和DE為低電平而處于數據接收狀態。當PC機發送數據時,MAX232的9腳輸出高電平,使MAX485的RE和DE為高電平而處于數據發送狀態。
3  軟件設計
89C51單片機是本次設計的核心部分,所有的程序都將寫入到單片機里。在本次的設計中,單片機的在電路中的主要目的就是對PC機發來的的數據在回送給pc機,在串口調試助手中顯示,其中數據的流向是通過單片機控制MAX485芯片來實現的。
設計單片機通信程序時,必須充分發揮單片機的效率,由于單片機多應用于實時性較強的控制場合,因此, 應將及時響應和控制對象的動作放在優先考慮的位置,以盡量減少通信等輔助性操作所占用的CPU時間。基于上述考慮,在設計單片機通信程序時,將通信程序分為發送處理程序、接收中斷處理程序,從而構成整個單片機的通信程序。當系統上電后,單片機程序初始化芯片的端口及變量初始化賦值, 串口中斷發生時,自動進入中斷服務程序,其主程序的流程圖如圖7所示。
                                           N
                        
                                  Y                     
      
                 
圖7  系統主程序流圖
當程序寫好后,通過燒寫器完成程序的調試工作,然后就是用串口線將實驗板和PC機相連起來,同時給實驗板接上電源,然后就是通過PC機軟件來發數據了,要在PC機上向串口發送數據一定要借助相應軟件,串口調試軟件,它設置方便、靈活,界面簡潔明。串口調試助手支持常用的300bps~115200bps波特率,能設置校驗、數據位和停止位,能以ASCII碼或十六進制接收或發送任何數據或字符。
為了能夠在計算機端看到單片機發出的數據,我們必須借助一個WINDOWS軟件進行觀察,這里利用計算機串口調試軟件來觀察如圖8所示。
圖8  串口調試軟件  
這里我們需要設置一下串口通訊的參數,將波特率調整為9600,串口選擇為COM1,校驗位:無;數據位:8位;停止位:1位;當然AT89C51單片機實驗板的串口也要和電腦的COM1連接,將燒寫程序的單片機插入單片機實驗板的萬能插座中,并接通AT89C51單片機實驗板的電源這樣就可以實現PC機與單片機的串口通信了。
4  調試分析
PC機的串口調試助手無任何顯示。這是因為燒寫的程序出現了錯誤,應在發送程序中把TI清零。
PC機的串口調試助手出現亂碼,不能正確的收到單片機發送的字符。這是因為選取的波特率不匹配,或控制MAX485芯片的單片機引腳發出的控制命令時間太短,芯片來不及轉換狀態,解決方法是選擇相匹配的波特率,適當增加延時函數。
5  結論及進一步設想
根據實驗結果,本設計基本完成了設計要求,但由于系統存在內部和外部的各種電氣干擾、焊接硬件時的不牢固、外部環境條件等影響,數據流可能會有誤碼,嚴重時可能會使控制狀態失靈。如果時間允許我會自己設計一個PCB板來承載各種元件,這樣元件連接的靠性就會大大增加,出錯的概率也會減少。
參考文獻
[1] 劉復華.單片機及其應用系統.北京:清華大學出版社,1992
[2] 李朝青.PC機及單片機數據通信技術[M],北京航空航天大學出版社,2002
[3] 王仲文.精通串行口通訊[M] ,北京電子工業出版社,1995
[4] 李華.MCS-51系列單片機實用接口技術[J],北京航空航天大學出版社,1993
[5] 李響初.數字電路基礎與應用[M],機械工業出版社,2008
課設體會
經過一段時間的收集資料,我的課程設計終于完成,看著自己的成果,有說不出的感觸。通過這段時間的努力,對我這學期的學習有了系統的總結。
本設計利用AT89C52單片機串行口,實現與PC機通訊。本設計中包括了單片機通訊的編制,串行通訊的硬件環境,數據格式的協議,數據交換的協議等多方面的知識,在這個單片機串行口與PC機通訊設計中,用一個相對簡單的實驗來實現這個功能。其次,在連接各個模塊編譯程序的時候一定要注意各個變量的定義和功能,因為每個定義和功能不一樣的,會影響實驗結果,再者就是程序需規范化,語法不能出錯,編譯才能通過,試驗才能成功。
在測試通訊時,遇到了很多的困難,想要的結果總是不能正確的顯示,后來,在多次的修改程序,調試電路之后,才發現是因為延時函數的時間太長了。經過屢次調試,終于找到了比較合適的輸入數值,終于成功了。通過此實驗,讓我看到了自己的水平和差距,雖然我有還很多不足,但是在我的努力下,彌補了我的缺憾。此次學習使我受益匪淺。從中學到很多以前沒有接觸到的知識,及其解決辦法和一些程序的設計方法。增加了自己在編程方面的功底。
通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。同時讓我學會了分析問題、處理問題的方法,可以說達到了舉一反三的目的,為以后工作、學習都打下了堅實的基礎。
[2013年7月 12日完成]
附錄1  電路原理圖
附錄2  程序清單
#include <REG52.H>
#include <stdio.h>
sbit RE=P2^7;   //定義485的使能腳
sbit DE=P2^6;
bit SendFlag;
unsigned int ReData,SenData;
/**************************************
            延時程序
**************************************/
void delay(unsigned char i)
{
        unsigned char j;
        for(i; i > 0; i--)
                for(j = 200; j > 0; j--);
}
void main (void)
{
        SCON = 0x50;      //REN=1允許串行接受狀態,串口工作模式1                 
            TMOD= 0x20;      //定時器1工作方式2                                                                              
                TH1  = 0xFD;     //                  波特率9600、數據位8、停止位1。效驗位無 (12M)
            TL1 = 0xFD;      
                TR1  = 1;         //開定時器                                                   
                ES   = 1;        //開串口中斷                  
                EA   = 1;        // 開總中斷
        while(1)
    {
          if (SendFlag==1)    // max485(半雙工通信) RE/DE定義 RE=0為接受狀態  DE=1為發送狀態
      {    RE=1;                //   DE=1為發送狀態               
DE=1;
              SBUF=SenData;           //發送數據
                  delay(50);
       }
         else
          {
             RE=0;              //接收狀態
                 DE=0;
          }
}
}
/****************************************************
               串口中斷程序
******************************************************/
void ser_int (void) interrupt 4  //4為中斷號
{
if(TI == 1)
{
        TI = 0;                   //發送中斷標志位置零
        SendFlag = 0;
}
if(RI == 1)        //RI接受中斷標志
{
        RI = 0;                    //清除RI接受中斷標志
        ReData = SBUF;  //SUBF接受/發送緩沖器
        SenData=ReData;
        SendFlag = 1;
}
}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日噜噜噜夜夜爽爽狠狠视频, | 日韩在线视频观看 | 伊人天堂网 | 五月婷婷色 | 国产第1页 | 亚洲一区成人 | 伊人性伊人情综合网 | 99re在线视频 | 亚洲a在线观看 | 国产一区二区在线播放 | 欧美成人hd | 日韩视频在线一区 | 亚洲精品一| 国产精品日产欧美久久久久 | 一区二区三区四区在线视频 | 精品一区在线看 | 日韩国产免费观看 | 国产美女精品 | 日本欧美视频 | 国产精品免费一区二区三区四区 | 欧美色性 | 91在线一区 | 久久久精品一区二区三区四季av | 国产69精品久久99不卡免费版 | 涩涩视频大全 | 天堂网中文 | 久久久久久久av | 国产精品视频偷伦精品视频 | 日韩三级一区 | 欧美一级免费片 | 美女中文字幕视频 | 高清国产一区二区 | 成人免费看黄网站在线观看 | 国产精品久久国产精品 | 亚卅毛片 | 欧美一级免费 | 91一区| 国产在线一区二 | 日韩午夜网站 | www.啪啪.com | 欧美在线一区二区三区 |