基于485總線的PC機與多片單片機的通信_畢業(yè)設(shè)計._第1頁
基于485總線的PC機與多片單片機的通信_畢業(yè)設(shè)計._第2頁
基于485總線的PC機與多片單片機的通信_畢業(yè)設(shè)計._第3頁
基于485總線的PC機與多片單片機的通信_畢業(yè)設(shè)計._第4頁
基于485總線的PC機與多片單片機的通信_畢業(yè)設(shè)計._第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、武漢工程大學(xué)郵電與信息工程學(xué)院畢業(yè)設(shè)計 論 文 說明書論文題目 PC機與多臺單片機之間的串行通信 學(xué) 號 6402021113 學(xué)生姓名 李鵬 專業(yè)班級 06電子科技1班 指導(dǎo)教師 陳裕國_副教授_ 總評成績 2010 年 5 月 29 日目 錄摘 要Abstract 第一章 緒論 1第二章 課題實施方案 2第三章 硬件電路設(shè)計 53.1 80C51單片機結(jié)構(gòu)及其串行通信原理 53.2 串行接口及其差分轉(zhuǎn)換電路173.3 Protel DXP 2004原理圖設(shè)計20第四章 軟件電路設(shè)計 294.1 系統(tǒng)的通信協(xié)議 294.2 C51編程實現(xiàn)PC機與單片機之間的串行通信 294.3 Window

2、s集成開發(fā)環(huán)境uVision2 33總結(jié) 39致謝 41參考文獻(xiàn) 42摘要本文詳細(xì)介紹了基于RS-485總線的PC機與多臺單片機間的串行通信原理、實現(xiàn)方法和相應(yīng)的通信硬件、軟件設(shè)計。該設(shè)計是由PC機與單片機組成的主從控制系統(tǒng),其中PC機做為上位機對下位單片機是實現(xiàn)控制和監(jiān)視功能。它包括通信和控制兩個功能模塊。單片機作為下位機在整個系統(tǒng)中屬于附屬地位,主要用來接收上位機的命令。由于此通信的PC接口是RS232的9針接口,且下位機數(shù)目有限32臺。所以本設(shè)計采用了RS485總線以及RS232轉(zhuǎn)RS485的協(xié)議芯片以滿足長距離多機通信,本文討論了總線接口轉(zhuǎn)換、主從式通信協(xié)議設(shè)計方法,給出了采用中斷式處

3、理的通信過程流程圖,并表達(dá)了設(shè)計過程中必備的繪圖軟件Protel DXP的應(yīng)用,以及編輯源代碼軟件keil uVision2的應(yīng)用,實現(xiàn)了PC機對多個單片機組成采集終端的通信與管理。關(guān)鍵詞: PC機 單片機 RS-485 通信AbstractThe communication 、realized method and corresponding design of hardware and software between PC and multiple MCUs based on RS-485 is described in detai in the article. This design

4、 instroduces a pincipal and subordinate control system which is composed of PC and single chip. Divided from its function, it includes two parts: communication and control, in which PC is used as master, and MCUs is used as slave so as to receive the single order from the master.The bus interface co

5、nversion and the design of master-slave communication protocol is introduced and The program flowchart of communication with interrupt process is also given. In the process of design, the use of unnecessary painter software and code editor software is depicted so that realize the communication and a

6、dministration between PC and multiple MCUs which composed collection terminal.Keywords: PC MCUs RS-485 communication第一章 緒論單片機由于其具有控制功能強、設(shè)計靈活和性能價格比高的特點。因此在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用,在工業(yè)控制領(lǐng)域,計算機的數(shù)量有一臺變?yōu)槎嗯_,多臺計算機組成了多機系統(tǒng),計算機分布關(guān)系可以分為緊密耦合和松散耦合,主從控制系統(tǒng)是一種松散式的多機系統(tǒng),計算機之間由通信協(xié)議來聯(lián)系。此時往往需要組成上位機對下位機的通訊系統(tǒng),由一臺上位機去控制多臺下位機。主從控制就是一

7、臺功能較強的主機和32臺左右的從機組成的多機系統(tǒng)。上位機一般是PC機,下位機一般是單片機系統(tǒng),執(zhí)行單片機與PC機串行通信的問題。本課題計算機的通信由上位機主機控制。主機向各個從機發(fā)送命令或者接受從機反應(yīng)的信息,主機有權(quán)修改從機的參數(shù),接受從機的數(shù)據(jù),還可以查看從機的狀態(tài),可以說主機是主從控制的大腦。在本設(shè)計中主機用來監(jiān)視或查看從機的狀態(tài),并向從機發(fā)送命令,在系統(tǒng)中起著主導(dǎo)地位。我們通過查看主機界面的狀態(tài)即可響應(yīng)的控制發(fā)送與接收。從機在系統(tǒng)中處于附屬地位,是命令的執(zhí)行者。從機之間不能直接聯(lián)系,它們之間必須有主機這個橋梁聯(lián)系。在設(shè)計中我們選用了PC機作為我們的主機,從機為單片機我們本著可得,性價比

8、采用此選擇。但在選擇中出現(xiàn)了通訊接口的問題,我們是串型通訊,在PC機和單片機之間,我們需要電平轉(zhuǎn)換,而且考慮到工業(yè)運用問題我們需要考慮總的選用,在常用的RS232和RS485中,不能使用雙端信號,因此要求使用較高的輸出電壓,而且其傳輸距離僅為15米1200m,傳輸速度可達(dá)1Mbps比擬上面的數(shù)據(jù),考慮工業(yè)要求,我們采用了RS485方式。第二章 課題實施方案 系統(tǒng)硬件設(shè)計PC機的串行接口為RS-232或USB總線,現(xiàn)階段應(yīng)用更多的是將RS-232接口轉(zhuǎn)換成RS-485接口,然后采用RS-485進行長距離、高速的串行異步通信。單片機采用RS-485進行串行通信,只需要將TTL電平的串行接口通過芯片

9、轉(zhuǎn)換為RS-485串行接口,這種轉(zhuǎn)換比擬簡單,本系統(tǒng)采用的是MAX485芯片。利用PC現(xiàn)有的RS-232接口,系統(tǒng)中采用專用的RS-232/485標(biāo)準(zhǔn)轉(zhuǎn)換芯片MAX3162E來實現(xiàn)。此轉(zhuǎn)換芯片一邊與RS-232標(biāo)準(zhǔn)9針接口相連,另一邊與RS-485總線相連,原理圖如圖2-1所示。P C機db9RS-232/RS-485 標(biāo)準(zhǔn)轉(zhuǎn)換芯片RS-485RS-485RS-485Rxd Txd8051Rxd Txd8051Rxd Txd8051圖2-1 系統(tǒng)結(jié)構(gòu)圖在多媒體網(wǎng)絡(luò)播送系統(tǒng)中,利用PC機與單片機夠成的多機通信系統(tǒng),采用主從式結(jié)構(gòu):主從控制多個從機,作為從機的單片機不主動發(fā)送命令或數(shù)據(jù),一切都由主

10、PC機控制;并且在一個多級系統(tǒng)中,只有一臺主機,各臺從機之間不能相互通信,即使有信息交換也必須通過主從轉(zhuǎn)發(fā)。采用RS-485構(gòu)成的多機通信系統(tǒng)原理框圖、在總線末端接一個匹配電阻,吸收總線上的反射信號,使得正常傳輸信號無毛刺。匹配電阻的取值應(yīng)該與總線的特性阻抗相當(dāng)。在總線上沒有信號傳輸時,總線處于懸浮狀態(tài),容易受干擾信號的影響。將總線上的差分信號的正端A+和負(fù)端B-之間接一網(wǎng)絡(luò)。當(dāng)總線上沒有傳輸時,正端A+的電平大約為3.2V,負(fù)端B-的電平大約為1.6V,即使有干擾信號,也很難產(chǎn)生串行通信的起始信號0,從而增加了總線抗干擾的能力。在該系統(tǒng)中,由于采用MAX487差分平衡收發(fā)器芯片,半雙工傳輸方

11、式,因此驅(qū)動器可接的下位機根據(jù)需要最多可擴展至128個。 系統(tǒng)軟件設(shè)計一通信協(xié)議設(shè)計為保證通信進行,首先做到單片機的串行口與主控機串行口的設(shè)置保持一致,即數(shù)據(jù)格式一致、通信波特率相同。如果是多點通信,每個從機要分配一個地址碼。系統(tǒng)中協(xié)議有三種幀格式:呼叫幀、應(yīng)答幀和數(shù)據(jù)幀。呼叫幀由主機發(fā)出。應(yīng)答幀只能由從機發(fā)出。當(dāng)從機收到呼叫幀后,把本機地址和當(dāng)前狀態(tài)回發(fā)給主機。設(shè)置開機自檢、自診斷程序,機器不能帶病工作;如果需要,還可以設(shè)置在工作空閑時或定時自檢程序。 PC機與單片機構(gòu)成的多機通信系統(tǒng)采用主從結(jié)構(gòu)。數(shù)據(jù)通信總是有主機發(fā)起。主機處于發(fā)送狀態(tài)“說時從機總是處于“聽狀態(tài)。假設(shè)主機發(fā)送的地址信息與本

12、地從機相符,那么接受該數(shù)據(jù),否那么,繼續(xù)“聽總線上的數(shù)據(jù)。假設(shè)從機需要發(fā)送數(shù)據(jù),那么必須等到主機輪詢本地從機時,才可以提出請求。這種網(wǎng)絡(luò)模式下從機不會“偵聽其他從機對主機的響應(yīng),這樣就不會對其他從機產(chǎn)生錯誤的響應(yīng)。主從式多機通信協(xié)議中,通信速率設(shè)為19.2kbps。系統(tǒng)上電或復(fù)位后,使所有從機的SM2位置1處于只接收地址幀監(jiān)聽狀態(tài)。主機向從機發(fā)送一幀地址信息,從機接收到地址幀后,將其與本地地址比擬,判斷是否一致。假設(shè)與本地地址相符,那么去除SM2,同時發(fā)送應(yīng)答幀,進入通信狀態(tài);其他與本地地址不相符的從機那么保持SM2位不變,繼續(xù)監(jiān)聽。主從機均以中斷方式進行通信,程序流程如圖2-2所示:開始系統(tǒng)

13、初始化發(fā)從機地址接收從機的應(yīng)答幀響應(yīng)正確? 否允許串行中斷返回圖2-2 通信流程圖 二多機發(fā)送是的分時說、聽 多機傳送時,通信協(xié)議要合理地協(xié)調(diào)總線的分時公用,通信波特率的計算要有冗余。采用RS-485總線連接的多個站點,由于485總線是異步半雙工的通信總線,在某一個時刻,總線只可能呈現(xiàn)一種狀態(tài),即任一時刻只有一個站點在“說,那么數(shù)據(jù)將在通信總線里碰撞,結(jié)果是處于接受狀態(tài)的站點不能收到正確的數(shù)據(jù)。在RS-485總線通信網(wǎng)絡(luò)中,必須控制好每個站點的“聽、“說狀態(tài),即收、發(fā)狀態(tài),對總線的使用權(quán)必須進行分配,以使各個從機的發(fā)送控制信號在時間上完全隔離,保證能及時、正確地傳輸數(shù)據(jù)。要做到總線上設(shè)備在時序

14、上的嚴(yán)格配合,必須要遵從一下幾點:1.復(fù)位時,主從機都應(yīng)該處于接受狀態(tài)。2.控制端RE、DE的信號有效脈沖寬應(yīng)該大于發(fā)送或接收一幀信號的寬度。 3.總線上所連接的各從機的發(fā)送控制信號在時序上完全隔開。通信方式一般是主節(jié)點循環(huán)輪詢各個從節(jié)點。各個從節(jié)點都有自己的網(wǎng)絡(luò)通信識別號,即本機地址。當(dāng)朱節(jié)點的輪詢信息中包含自己的網(wǎng)絡(luò)通信識別號,此從節(jié)點對此幀進行應(yīng)答,其他節(jié)點那么忽略此幀,不做處理。第三章 硬件電路設(shè)計3.1 80C51單片機結(jié)構(gòu) MCS-51單片機內(nèi)部結(jié)構(gòu)在MCS-51系列里,所有產(chǎn)品都是以8051為核心電路開展起來的,它們都具有8051的根本結(jié)構(gòu)和軟件特征。從制造工藝來看,MCS-51

15、系列中的器件根本上可分為HMOS和CMOS兩類。CMOS器件的特點是電流小和功耗低掉電方式下消耗10uA電流,但對電平要求高高電平大于4.5V,低電平小于0.45V,HMOS對電平要求低高電平大于2.0V,低電平小于0.8V,但是功耗大。 8051單片機內(nèi)部包含了作為微型計算機所必須的根本功能部件,各功能部件相互獨立而融為一體,集成在同一塊芯片上。8051內(nèi)部結(jié)構(gòu)如圖3-1所示: 圖3-1 單片機內(nèi)部結(jié)構(gòu)圖一 CPU結(jié)構(gòu)一算術(shù)邏輯部件ALU8051的ALU是一個性能極強的運算器,能進行加、減、乘、除四那么運算,也可進行與、或、非等邏輯運算,還可以實現(xiàn)數(shù)據(jù)傳送、移位、判斷和程序轉(zhuǎn)移等功能。二定時

16、控制部件OSC OSC是控制器的核心,能為控制器提供時鐘脈沖。三專用存放器組程序計數(shù)器PC是一個二進制16位程序地址存放器編碼范圍為0000HFFFFH,共64KB,專門用來存放下一條需要執(zhí)行的指令的內(nèi)存地址,能自動加1。 累加器ACC是一個專門用來存放操作數(shù)或運算結(jié)果的8位存放器。 通用存放器B是專門為乘法和除法設(shè)置的8位存放器,通常用來存放積的高8位或除法的余數(shù)。 程序狀態(tài)字PSW是用來存放指令執(zhí)行后有關(guān)狀態(tài)的8位標(biāo)志存放器,其各位的定義如圖3-2所示:PSW0PSW1PSW2PSW3PSW4PSW5PSW6PSW7CyACF0RS1RS0OV-P圖3-2 程序狀態(tài)字各位定義SP是一個8位

17、存放器,能自動加、減1,專門用來存放堆棧的棧頂?shù)刂贰W裱跋冗M后出,后進先出的規(guī)律。DPTR是一個16位的存放器,由兩個八位存放器DPH和DPL拼裝而成。主要用來存放存儲器的地址,DPH用來存放高8位,DPL用來存放低8位。二 ROM存儲器8051內(nèi)部僅有4KB ROM存儲器,地址范圍為0000H0FFFH。8051可外接ROM,但一定保證片內(nèi)和片外之和不能超過64KB即8051有64KB的尋址區(qū)0000HFFFFH,在4KB地址范圍為0000H0FFFH里還可供片外使用,其取決于控制線EA,如圖3-3所示 外部ROM1000H-FFFFH片內(nèi)ROMEA=1片外ROMEA=00000H-0FF

18、FH 圖3-3 程序存儲器地址分配三 I/O端口I/O段口是MCS-51單片機對外部實現(xiàn)控制和信息交換的必經(jīng)之路,是一個過渡的集成電路,用于信息傳送過程中的速度匹配和增強他的負(fù)載能力。并行I/O端口8051有四個并行I/O端口,分別命名為P0、P1、P2和P3,在這四個并行I/O端口中,每個端口都有雙向I/O功能。每個端口內(nèi)部都有一個八位數(shù)據(jù)輸出鎖存器和一個八位數(shù)據(jù)輸入緩沖器。四個并行I/O端口作為通用I/O使用是,共有寫端口、讀端口和讀引腳三種操作方式。寫端口就是輸出數(shù)據(jù),是把累加器A或其他存放器中數(shù)據(jù)傳送到端口鎖存器中,然后由端口自動從端口引腳線上輸出,讀端口是把端口鎖存器中輸出數(shù)據(jù)讀到C

19、PU的累加器。讀引腳是輸入外部數(shù)據(jù)的操作,是從端口引腳線上讀入外部的輸入數(shù)據(jù)。串行I/O端口8051有一個全雙工的可編程串行I/O端口。這個串行I/O端口既可以在程序控制下把CPU的八位并行數(shù)據(jù)變成串行數(shù)據(jù)一位一位地從發(fā)送數(shù)據(jù)線Txd發(fā)送出去,也可以把串行接收到數(shù)據(jù)變成八位并行數(shù)據(jù)送給CPU,而且這種串行發(fā)送和串行接受可以單獨進行,也可以同步進行。8051串行發(fā)送和串行接收利用了P3口的第二功能,即P引腳作為串行數(shù)據(jù)的發(fā)送線Txd和P引腳作為串行數(shù)據(jù)的接收線Rxd。串行I/O口的電路結(jié)構(gòu)還包括串行口控制存放器SCON、電源及波特率選擇存放器PCON和串行數(shù)據(jù)緩沖器SBUF等。四 定時器/計數(shù)器

20、 8051內(nèi)部有兩個16位可編程的定時器/計數(shù)器,命名為T0和T1,都由兩個8位存放器TH和TL拼裝而成。定時器/計數(shù)器T0和T1有定時器和計數(shù)器兩種工作模式。 在定時模式下,T0、T1的計數(shù)脈沖可以有單片機時鐘脈經(jīng)12分頻后提供,故定時時間和單片機時鐘頻率有關(guān)。在計數(shù)模式下,T0、T1的計數(shù)脈沖可以從P和P引腳上輸入。五 中斷系統(tǒng)中斷是指CPU暫停原程序執(zhí)行轉(zhuǎn)而為外部設(shè)備效勞執(zhí)行中斷效勞程序,并在效勞完后回到原程序執(zhí)行的過程。中斷系統(tǒng)是指能夠處理上述中斷過程所需要的那局部電路。8051有三個內(nèi)部中斷源和兩個外部中斷源內(nèi)部中斷源是指兩個定時器/計數(shù)器中斷源和一個串行口中斷源,串行口中斷源是在串

21、行口每發(fā)送完一個八位二進制數(shù)據(jù)或接受到一組輸入數(shù)據(jù)八位后自動向中斷系統(tǒng)提出的。外部中斷源通常指外部設(shè)備其產(chǎn)生的中斷請求信號可以從P和P即INT0和INT1引腳上輸入。3. MCS-51單片機引腳功能及其連接一 MCS-51單片機引腳功能引腳如圖3-4所示 圖3-4 單片機引腳圖一端口線4*8=32條1. P0口PP:功能a:不帶片外存儲器,P0可以作為通用I/O口使用,PP用于傳送CPU的輸入/輸出數(shù)據(jù),此時,輸入緩沖、輸出鎖存,不須外接專用鎖存器。功能b:帶片外存儲器,PP在CPU訪問片外存儲器時顯示用于傳送片外存儲器的低8位,然后傳送CPU對片外存儲器的讀寫數(shù)據(jù)。1口PP:通用I/O口,用

22、于傳送CPU的輸入/輸出數(shù)據(jù)。2口PP:功能a:通用I/O口,用于傳送CPU的輸入/輸出數(shù)據(jù)。功能b:與P0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址,共同選中片外存儲器單元,但并不能像P0口那樣還可以傳送存儲器的讀寫數(shù)據(jù)。4. P3口PP:功能a:通用I/O口,用于傳送CPU的輸入/輸出數(shù)據(jù)。功能b:控制功能端如下表:P3.0 RXD (串行口輸入)P3.1 TXD (串行口輸出)P3.2 INT0 (外部中斷0輸入)P3.3 INT1 (外部中斷1輸入) T0 (定時計數(shù)器0的外部輸入)P3.5 T1 (定時計數(shù)器1的外部輸入)P3.6 WR (片外數(shù)據(jù)存儲器寫選通)P3.7

23、RD (片外數(shù)據(jù)存儲器讀選通)二電源線2條Vcc為+5V電源線,Vss為接地線。三控制線6條1. ALE/PROG:地址鎖存允許/編程線,配合P0口引腳的第二功能使用。在訪問片外存儲器是,8051CPU在PP引腳線上輸出片外存儲器低8位地址的同時還在ALE/PROG線上輸出一個高電位脈沖,用于把這個片外存儲器第8位地址鎖存到外部專用地址鎖存器,一邊空出PP引腳線去傳送隨后而來的片外存儲器讀寫數(shù)據(jù)。在不訪問片外存儲器時,8051自動在ALE/PROG線上輸出頻率為fosc/6的脈沖序列。2. EA/VPP:允許訪問片外存儲器/編程電源線。3. PSEN:片外ROM選通線,在執(zhí)行訪問片外ROM的指

24、令MOVC時,8051自動在PSEN線上產(chǎn)生一個負(fù)脈沖,用于為片外ROM芯片的選通。4. RST/VPD:復(fù)位/備用電源線,可以使8051處于復(fù)位工作狀態(tài)。5. XTAL1和XTAL2:片內(nèi)振蕩電路輸入線。如圖3-5所示二 單片機地址輸入的連接方式 由于單片機的P2口和P0口具有第二功能即分別輸入上下地址,故運用此功能來確定從機的地址,在地址開關(guān)與單片機之間還需要添加74LS244進行緩沖具體連接如圖3-6所示:圖3-5 單片機3個控制端的常用連接方法和參數(shù) P-P P-P 8051 PSENEA RD WR74LS244多路選擇開關(guān)圖3-6 單片機地址控制圖 MCS-51 中斷系統(tǒng) 中斷是指

25、計算機暫時停止原程序執(zhí)行轉(zhuǎn)而為外部設(shè)備效勞,并在效勞完后自動返回原程序執(zhí)行的過程。中斷由中斷源產(chǎn)生,中斷源在需要時可以向CPU提出“中斷請求。“中斷請求通常是一種電信號,CPU一旦對這個電信號進行檢測和響應(yīng)便可自動轉(zhuǎn)入該中斷源的中斷效勞程序執(zhí)行,并在執(zhí)行完后自動返回原程序繼續(xù)執(zhí)行,并且中斷源不同中斷效勞程序的功能也不同。中斷系統(tǒng)是指能夠?qū)崿F(xiàn)中斷功能的那局部硬件電路和軟件程序,對于MCS-51單片機,大局部中斷電路都是集成在芯片內(nèi)部的即內(nèi)部中斷,包括定時器溢出中斷源2個和串行口中斷源,只有INT0和INT1中斷輸入線上的中斷請求信號產(chǎn)生電路才分散在各中斷源電路或接口芯片電路里即外部中斷。而本工程

26、中使用的是串行口中斷源。3.1.4 MCS-51的串行通信 串行通信是一種能把二進制數(shù)據(jù)按位傳送的通信,故它所需傳輸線條數(shù)極少,特別適用于遠(yuǎn)程通信之中。一 串行通信根底一異步通信中的字符幀字符幀也叫數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗位和停止位等四局部組成。在串行通信中,發(fā)送端一幀一幀發(fā)送信息,接收端一幀一幀接收信息。兩相鄰字符幀之間可以無空閑位,也可以由假設(shè)干空閑位,自行定義。圖3-7表示每一幀的結(jié)構(gòu): 8位數(shù)據(jù)起始位奇偶校驗 停止位0D0D1D2D3D4D5D6D70/11 第n字符幀共11位圖3-7 幀結(jié)構(gòu)二波特率 定義是每秒傳送二進制數(shù)碼的位數(shù),單位是bps位/秒,用于表征數(shù)據(jù)傳輸?shù)乃俣?/p>

27、,波特率越高,數(shù)據(jù)傳輸速度越快。而實際的字符傳輸速率是以幀/秒來衡量。三通信制式1.半雙工制式:A、B只能是一個發(fā)送,一個接收,即一條信號線和一條接地線。 2.全雙工制式:A、B兩站間有兩個獨立的通信回路,兩站都可以同時發(fā)送和接收數(shù)據(jù),其兩站間至少需要三條傳輸線:一條用于發(fā)送,一條用于接收和一條用于信號地。二 MCS-51的串行接口(一) 串行口控制存放器SCON和PCONMCS-51對串行口的控制是通過SCON實現(xiàn)的,也和電源控制存放器PCON有串行口控制存放器SCON決定串行口通信工作方式,控制數(shù)據(jù)的接收和發(fā)送,并標(biāo)示串行口的工作狀態(tài)等。其位格式為圖3-8所示:SM0 SM1相應(yīng)工作方式說

28、 明所用波特率0 0方式0同步移位存放器fosc/120 1方式110位異步收發(fā)由定時器控制1 0方式211位異步收發(fā)fosc/32或 fosc/641 1方式311位異步收發(fā)由定時器控制圖3-8 特殊功能存放器SCON其中fosc為晶振頻率SM2:多機通訊控制位。在方式0時,SM2一定要等于0。在方式1中,當(dāng)SM2=1那么只有接收到有效停止位時,RI才置1。在方式2或方式3當(dāng)SM2=1且接收到的第九位數(shù)據(jù)RB8=0時,RI才置1。REN:接收允許控制位。由軟件置位以允許接收,又由軟件清0來禁止接收。TB8: 是要發(fā)送數(shù)據(jù)的第9位。在方式2或方式3中,要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清

29、0。例如,可約定作為奇偶校驗位,或在多機通訊中作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)志位。RB8:接收到的數(shù)據(jù)的第9位。在方式0中不使用RB8。在方式1中,假設(shè)SM2=0,RB8為接收到的停止位。在方式2或方式3中,RB8為接收到的第9位數(shù)據(jù)。TI:發(fā)送中斷標(biāo)志。在方式0中,第8位發(fā)送結(jié)束時,由硬件置位。在其它方式的發(fā)送停止位前,由硬件置位。TI置位既表示一幀信息發(fā)送結(jié)束,同時也是申請中斷,可根據(jù)需要,用軟件查詢的方法獲得數(shù)據(jù)已發(fā)送完畢的信息,或用中斷的方式來發(fā)送下一個數(shù)據(jù)。TI必須用軟件清0。RI:接收中斷標(biāo)志位。在方式0,當(dāng)接收完第8位數(shù)據(jù)后,由硬件置位。在其它方式中,在接收到停止位的中間時刻由硬件置

30、位例外情況見于SM2的說明。RI置位表示一幀數(shù)據(jù)接收完畢,可用查詢的方法獲知或者用中斷的方法獲知。RI也必須用軟件清0。1. 方式0 在方式0下,串行口的SBUF是作為同步的移位存放器用的。在串行口發(fā)送時,“SBUF發(fā)送相當(dāng)于一個并入串出的移位存放器,由MCS-51的內(nèi)部總線并行接收8位數(shù)據(jù),并從TxD線串行輸出,此時是在TI=0下進行的CPU通過指令給“SBUF發(fā)送送出發(fā)送字符后,RxD線上即可發(fā)出8位數(shù)據(jù),8位數(shù)據(jù)發(fā)送完后TI由硬件置位,并可向CPU請求中斷,CPU響應(yīng)中斷后先用軟件使TI清零,然后再給“SBUF發(fā)送送下一幀的數(shù)據(jù)。在接收操作時,“SBUF接收相當(dāng)于一個串入并出的移位存放器

31、,從RxD線接收一幀串行數(shù)據(jù)并把它并行的送入內(nèi)部總線,此時RI=0且REN=1,接收電路接收到8位數(shù)據(jù)后,RI自動置1并發(fā)出串行口中斷請求,CPU響應(yīng)后RI由軟件復(fù)位。2. 方式1 在方式1下,串行口設(shè)定為10位異步通信方式,字符幀中除8位數(shù)據(jù)外,還可有一位起始位和一位停止位。發(fā)送操作時,TI=0,執(zhí)行指令后,發(fā)送電路就自動在8位發(fā)送字符前后分別添加一位起始位和一位停止位,并在移動脈沖作用下在TxD線上依次發(fā)送一幀信息,發(fā)送完后自動維持TxD線高電平。TI也由硬件在發(fā)送停止位時置位,并由軟件將它復(fù)位。接收操作時,RI=0且REN=1,接收電路對高電平的RxD線采樣,當(dāng)接收電路連續(xù)8次采樣到Rx

32、D線為低電平時,相應(yīng)的檢測器便可確認(rèn)RxD線上有了起始位,在接收數(shù)據(jù)第9位時,當(dāng)RI=0和SM2=0或接收到的停止位為1,才能把接收到的8位字符存入“SBUF接收中,把停止位送入RB8,并使RI=1和發(fā)出串行口中斷請求,假設(shè)上述條件不滿足,那么數(shù)據(jù)被舍去。3. 方式2和方式3方式2和方式3都是11位異步收發(fā)。兩者的差異僅在于通信波特率有所不同方式2的波特率由MCS-51主頻fosc經(jīng)32或64分頻后提供;方式3的波特率有定時器T1或T2的溢出率經(jīng)32分頻后提供,故它的波特率是可調(diào)的。方式2和方式3的發(fā)送過程和接收過程類似于方式1,只是在發(fā)送數(shù)據(jù)第9位時,將之預(yù)先裝入SCON的TB8中,而第9位

33、可由用戶自定義。一幀數(shù)據(jù)發(fā)送完后,TI=1,CPU便可通過查詢TI來以同樣方法發(fā)送下一個字符幀。 方式2和方式3的接收過程也和方式1類似。所不同的是:方式1時RB8中存放的是停止位,方式2和方式3時RB8中存放的是數(shù)據(jù)第9位。因此,方式2和方式3時必須滿足接收有效字符的條件變?yōu)椋篟I=0和SM2=0或者收到的第9位為1,只有上述條件同時滿足時接收到的字符才能送入SBUF,第9位數(shù)據(jù)位才能裝入RB8中,并使RI=1。電源控制存放器PCON中只有一位SMOD與串行口工作有關(guān),它的位格式為圖3-9所示:圖3-9電源控制存放器PCONSMOD:波特率倍增位。串行口工作在方式1、方式2、方式3時,假設(shè)S

34、MOD=1,那么波特率提高一倍;假設(shè)SMOD=0,那么波特率不提高一倍。(二) 串行口的通信波特率串行口的通信波特率恰好反映串行口傳輸數(shù)據(jù)的速率。通信波特率的選用,不僅和所選通信設(shè)備、傳輸距離有關(guān),還受傳輸線狀況所制約。波特率設(shè)計 1、方式0的波特率 工作方式0時,移位脈沖由機器周期的第6個狀態(tài)周期S6給出,每個機器周期產(chǎn)生一個移位脈沖,發(fā)送或接收一位數(shù)據(jù)。因此,波特率是固定的,為振蕩頻率的1/12,不受PCON存放器中SMOD的影響。用公式表示為: 工作方式0的波特率=fosc/12 式 2、方式2的波特率 工作方式2時,移位脈沖由振蕩頻率fosc的第二節(jié)拍P2時鐘即fosc/2給出,所以,

35、方式2波特率取決于PCON中的SMOD位的值,當(dāng)SMOD=0時,波特率為fosc的1/64;當(dāng)SMOD=1時,波特率為fosc的1/32,用公式表示為; 工作方式2波特率=2SMOD/64fosc 式 3、工作方式1和方式3的波特率 在這兩種方式下,串行口波特率是由定時器的溢出率決定的,因而波特率也是可變的。相應(yīng)公式為: 波特率=2SMOD/32*定時器T1溢出率 式 定時器T1溢出率=fosc/12* 1/2k 初值 式實際上定時器T1通常采用方式2,因為定時器T1在方式2下工作,TH1和TL1分別設(shè)定為兩個8位重裝計數(shù)器。表3-1 固定波特率與存放器狀態(tài)波特率foscSMOD定時器T1C/

36、T所選方式相應(yīng)初值6Mhz* *6Mhz 1* * *6Mhz 10 2FEH6Mhz 102FDH6Mhz002FDH6Mhz002FAH6Mhz002F4H6Mhz002E8H1106Mhz00272H556Mhz002FEEBH(三) 串口工作方式2、3的發(fā)送接收時序串口工作方式2、3的發(fā)送、接收時序如圖3-11所示。圖3-11發(fā)送接收時序圖3.2 串行接口及其電平轉(zhuǎn)換電路串行接口RS232結(jié)構(gòu)與引腳功能RS232是個人計算機上的通信接口之一,由電子工業(yè)協(xié)會(Electronic Industries Association,EIA) 所制定的異步傳輸標(biāo)準(zhǔn)接口。通常 RS-232 接口以

37、9個引腳 (DB-9) 或是25個引腳 (DB-25) 的型態(tài)出現(xiàn)如圖3-12所示。這里我們運用DB-9,其針孔意義如圖3-13所示 在多數(shù)情況下主要使用主通道,對于一般雙工通信,僅需幾條信號線就可實現(xiàn),如一條發(fā)送線、一條接收線及一條地線。 RS-232標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸速率為每秒150、300、600、1200、2400、4800、9600、19200波特。RS-232 標(biāo)準(zhǔn)規(guī)定,驅(qū)動器允許有2500pF的電容負(fù)載,通信距離將受此電容限制,例如,采用150pF/m的通信電纜時,最大通信距離為15m;假設(shè)每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號傳送,

38、存在共地噪聲和不能抑制共模干擾等問題,因此一般用于15m以內(nèi)的通信。同時RS232是點對點即只用一對收、發(fā)設(shè)備的通信,因此PC機無法直接對多個下位機進行遠(yuǎn)距離通信。圖3-12 9針、25針接口 圖3-13 9針管腳意義RS232的電器特性、邏輯電平和各種信號線功能的規(guī)定。 在TxD和RxD上:邏輯1:-3V -15V 邏輯0:+3V+15V 發(fā)送數(shù)據(jù)(TxD)通過TxD終端將串行數(shù)據(jù)發(fā)送到MODEM,(DTEDCE)。 接收數(shù)據(jù)(RxD)通過RxD線終端接收從MODEM發(fā)來的串行數(shù)據(jù),(DCEDTE)。 以上規(guī)定說明了RS232標(biāo)準(zhǔn)對邏輯電平的定義。對于數(shù)據(jù)信息碼:邏輯“1的電平低于-3V,邏

39、輯“0的電平高于+3V。也就是當(dāng)傳輸電平的絕對值大于3V時,電路可以有效地檢查出來,介于-3+3V之間的電壓無意義,低于-15V或高于+15V的電壓也認(rèn)為無意義,因此,實際工作時,應(yīng)保證電平在(315)V之間。 RS232與TTL轉(zhuǎn)換: RS232是用正負(fù)電壓來表示邏輯狀態(tài),與TTL以上下電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機接口或終端的TTL器件連接,必須在EIA RS-232C 與TTL電路之間進行電平和邏輯關(guān)系的變換。實現(xiàn)這種變換的方法可用分立元件,也可用集成電路芯片。今使用MAX3162芯片以實現(xiàn)電平間的轉(zhuǎn)換。 RS485接口的通信原理圖3-14 MAX485引腳圖 在圖3

40、-14中顯示出了RS-485的引腳圖。RS485采用差分信號負(fù)邏輯,2V6V表示“0,- 6V- 2V表示“1。RS485有兩線制和四線制兩種接線,四線制只能實現(xiàn)點對點的通信方式,現(xiàn)很少采用,現(xiàn)在多采用的是兩線制接線方式,這種接線方式為總線式拓樸結(jié)構(gòu)在同一總線上最多可以掛接32個結(jié)點。在RS485通信網(wǎng)絡(luò)中一般采用的是主從通信方式,即一個主機帶多個從機。很多情況下,連接RS-485通信鏈路時只是簡單地用一對雙絞線將各個接口的“A、“B端連接起來。 RS485RS485RS485從單片 機 1從單片 機 2從單片 機 32主單片機機圖3-15 兩線制總線拓?fù)涫浇Y(jié)構(gòu)與RS232相比擬RS485有以

41、下幾個特點:1. RS-485的電氣特性:邏輯“1以兩線間的電壓差為+26 V表示;邏輯“0以兩線間的電壓差為-26V表示。接口信號電平比RS-232-C降低了,就不易損壞接口電路的芯片, 且該電平與TTL電平兼容,可方便與TTL 電路連接。 2. RS-485的數(shù)據(jù)最高傳輸速率為10Mbps 3. RS-485接口是采用平衡驅(qū)動器和差分接收器的組合,抗共模干能力增強,即抗噪聲干擾性好。 4. RS-485最大的通信距離約為1219M,最大傳輸速率為10Mb/S,傳輸速率與傳輸距離成反比,在100Kb/S的傳輸速率下,才可以到達(dá)最大的通信距離,如果需傳輸更長的距離,需要加485中繼器。RS-4

42、85總線一般最大支持32個節(jié)點,如果使用特制的485芯片,可以到達(dá)128個或者256個節(jié)點,最大的可以支持到400個節(jié)點。因RS-485接口具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等上述優(yōu)點就使其成為首選的串行接口。 由于RS485接口組成的半雙工網(wǎng)絡(luò),一般只需二根連線,所以RS485接口均采用屏蔽雙絞線傳輸。 MAX3162E電平轉(zhuǎn)換芯片 由于PC機默認(rèn)的只帶有RS232接口,有一種方法可以得到PC上位機的RS485電路即通過RS232/RS485轉(zhuǎn)換芯片將PC機串口RS232信號轉(zhuǎn)換成RS485信號,即采用MAXIM公司生產(chǎn)的MAX3162E協(xié)議轉(zhuǎn)換接口芯片,實現(xiàn)RS232與RS48

43、5協(xié)議轉(zhuǎn)換的接口電路。圖3-16 RS232/RS485協(xié)議轉(zhuǎn)換接口電路 MAX3162E功能分為四局部:兩路RS232電平信號到TTL電平信號的轉(zhuǎn)換19腳10腳、20腳9腳,15腳為使能端;兩路TTL電平信號到RS232電平信號的轉(zhuǎn)換21腳8腳、24腳5腳,16腳為使能端;一路TTL邏輯電壓信號到RS485差分信號的轉(zhuǎn)換23腳6腳、7腳,22腳為使能端。使能端無效時,6腳、7腳呈高阻態(tài);一路RS485差分信號到TTL邏輯電壓信號的轉(zhuǎn)換17腳、18腳11腳,12腳為使能端。使能端無效時,11腳呈高阻態(tài)。在圖2中利用了RS232的RTS信號來控制總線的方向。當(dāng)RTS為邏輯電平112V時,9腳輸出

44、為TTL的邏輯電平15V,使能端DE48522腳有效,這樣TXD端發(fā)送的RS232電平信號就可以由19腳10腳23腳6腳、7腳變?yōu)镽S485差分信號輸出;當(dāng)RTS為邏輯電平012V時,9腳輸出為TTL的邏輯電平00V,使能端RE48512腳有效,這樣RS485輸入的差分信號就可以由17腳、18腳11腳24腳5腳變?yōu)镽S232電平信號輸出,RXD端就可以接收數(shù)據(jù)。3.3 Protel DXP 2004原理圖設(shè)計3.3.1 Protel 2004的根本操作一 設(shè)置文檔選項在繪制原理圖之前,應(yīng)該設(shè)置圖紙的相關(guān)參數(shù),包括圖紙方向、圖紙尺寸,邊框及標(biāo)題欄等。 在Protel 2004中,為自定義圖紙大小

45、,執(zhí)行File/New/Schematic sheet/Design /Document Options 命令,翻開如下圖對話框。 在Custom Style選項組中的Use Custom Style中設(shè)置文本框的高度和寬度如圖3-17箭頭標(biāo)記所示:二 使用元器件庫原理圖設(shè)計的根本構(gòu)件是元器件,為了便于管理,元器件都封裝在元器件庫中。Protel 2004提供的庫很多,并且已預(yù)裝了兩個常用元器件庫,即和Miscellaneous Connectors. IntLib。圖3-17 Document Options查找元器件: 在原理圖的設(shè)計過程中,為通過元器件庫管理器查找需要的元器件,Prote

46、l 2004提供了查找原理圖元器件的4種方式,即按元器件的名稱、按元器件描述欄中的資料、按元器件模塊的名稱和按元器件模塊的類型查找,一般情況下是按元器件的名稱查找。 在原理圖設(shè)計環(huán)境中執(zhí)行Design/Browse Library命令彈出Libraries對話框,如下圖。單擊Search按鈕翻開Search Libraries 對話框,在Results選項卡中顯示搜索結(jié)果。如圖3-19所示。三 元器件操作電路元器件是構(gòu)成電路原理圖的根本組成局部,通過元器件的操作可了解原理圖繪制的根本方法和步驟,如下框圖3-18所示:陣列式粘貼排列于對齊選擇元器件編輯屬性移動和拖動圖3-18 元器件操作流程單擊

47、此處并拖至放置地點在此處直接輸入待查元器件的名稱圖3-19 元器件搜索界面繪制原理圖一 放置元器件放置元器件是指將元器件放在原理圖的所需位置,并且設(shè)置元器件的屬性。單擊所需元器件名稱并拖入指定地區(qū),如圖3-20所示圖3-20 放置元器件二 連接原理圖線路通過導(dǎo)線可以連接元器件,形成一個完整的電路原理圖。圖3-21 原理圖連接方式三 放置標(biāo)注和元件命名1放置標(biāo)注單擊此處即可引出標(biāo)號符號圖3-22 放置標(biāo)注2元器件命名電路原理圖有時需要放置一些說明性的文字或文本及網(wǎng)絡(luò)標(biāo)號。在此處為元件命名和標(biāo)注圖3-23 輸入元件名制作芯片原理圖庫由于本原理圖中MAX3261芯片無法在庫中無法找出,故需要自行制作

48、芯片原理圖。在Protel 2004界面中工具欄找到“元件繪制工具如圖3-24元件繪制工具圖3-24 元件制作繪制步驟:(1) 新建原理圖庫文件來啟動原理圖庫文件編輯器 Protel 2004設(shè)計系統(tǒng)的主界面上執(zhí)行菜單命令File/New/Library/Schematic Library此時將會新建一個原理圖庫文件。(2)單擊工具欄中的按鈕,系統(tǒng)彈出保存文件對話框。(3)在文件名一欄中填入“My SchLib,單擊按鈕,此時在工程【Projects】面板中會出現(xiàn)剛剛保存的元器件原理圖庫文件名,如圖3-25所示庫文件編輯器面板簽新建的庫文件圖3-25 新建的庫文件(4)在上圖中單擊原理圖庫文件

49、編輯器面板【SCH Library】標(biāo)簽,翻開原理圖庫文件編輯器面板。(5)在元器件原理圖庫中新建元器件:單擊add按鈕,并為元器件設(shè)置名稱。(6)開始在元器件繪制工作區(qū)進行元器件原理圖符號的繪制工作。 eq oac(,1)用戶需對所要繪制的元器件的管腳按照他們在實際元器件中的位置進行編號 eq oac(,2)單擊繪制原器件工具欄中的按鈕,繪制MAX3162原理圖符號的外部輪廓。Tab eq oac(,3)單擊繪制元器件工具欄中的放置引腳按鈕,根據(jù)實際元器件的管腳名稱和分布位置,在芯片外觀輪廓上添加管腳,單擊該按鈕后按 鍵系統(tǒng)彈出管腳屬性設(shè)置對話框,如圖3-26所示 eq oac(,4)設(shè)置完

50、畢后單擊ok按鈕,元器件輪廓上適當(dāng)位置,單擊鼠標(biāo)左鍵放置該管腳,用相同的方法,放置其余的管腳,并根據(jù)需要調(diào)整管腳位置,之后元器件原理圖符號的外形圖如圖3-37所示。圖3-26 原件管腳命名 圖3-27 MAX3162E引腳 eq oac(,5)最后執(zhí)行菜單命令File/Save即可將新建的元件“MAX3162保存在當(dāng)前的元件庫文件“My SchLib. SchLib中串行通信原理圖設(shè)計與繪制系統(tǒng)結(jié)構(gòu)圖:RS485RS485RS485從單片 機 1從單片 機 2從單片 機 3主控制pc機RS232/RS485轉(zhuǎn)換電路圖3-28系統(tǒng)結(jié)構(gòu)圖系統(tǒng)全局圖:8051單片機串行接口是一個可編程的全雙工串行通

51、信接口。它可用作異步通信方式UART,與串行傳送信息的外部設(shè)備相連接,或用于通過標(biāo)準(zhǔn)異步通信協(xié)議進行全雙工的8051多機系統(tǒng)也能通過同步方式,使用TTL或CMOS移位存放器來擴充I/O口。8051單片機通過管腳RXD,串行數(shù)據(jù)接收端和管腳TXD,串行數(shù)據(jù)發(fā)送端與外界通信。SBUF是串行口緩沖存放器,包括發(fā)送存放器和接收存放器。它們有相同名字和地址空間,但不會出現(xiàn)沖突,因為它們兩個一個只能被CPU讀出數(shù)據(jù),一個只能被CPU寫入數(shù)據(jù)圖3-29系統(tǒng)全局圖第四章 軟件電路設(shè)計 系統(tǒng)的通信協(xié)議 在主從時多機系統(tǒng)中,只有一臺主機,但從機可以有多臺。主機發(fā)送的信息可以傳送到各個從機或指定從機,從機發(fā)送的信息

52、只能為主機所接收,個從機之間不能直接通信。 主機發(fā)送并為從機接收的信息由兩類:一類是地址,用于指示需要和主機通信的從機地址,由串行數(shù)據(jù)第9位為“1標(biāo)志;另一類是數(shù)據(jù),由串行數(shù)據(jù)第9位為“0標(biāo)志。由于所有從機的SM2=1,故每個從機總能在RI=0時收到主機發(fā)來的地址因為串行數(shù)據(jù)的第9位為“1,并進入各自的中斷效勞程序。在中斷效勞程序中,每臺從機把接收到的從機地址和他的本機地址系統(tǒng)設(shè)計時所分配進行比擬。所有比擬不相等的從機均從各自的中斷效勞程序中退出SM2仍然等于1,只有比擬成功的從機才是被主機尋址通信的從機。被尋址從機在程序中使SM2=0,以便接收隨之而來的數(shù)據(jù)。歸結(jié)起來如下:(1) 所有從機的

53、SM2=1;以便接收主機發(fā)來的地址。(2) 主機給從機發(fā)送地址時,第9數(shù)據(jù)上發(fā)送1,以指示從機接收這個地址。(3) 有從機在SM2=1、RB8=1和RI=0時,接收主機發(fā)來的從機地址,進入相應(yīng)中斷效勞程序,并和本機地址比擬以確認(rèn)是否為被尋從機。(4)被尋址從機通過指令去除SM2,以正常接收數(shù)據(jù),并向主機發(fā)回接收到的從機地址,供主機核對,未被尋址從機保持SM2=1,并退出各自中斷效勞程序。(5)完成主機和被尋址從機之間的數(shù)據(jù)通信,被尋址從機在通信完成后,重新使SM2=1,并退出中斷效勞程序,等待下次通信。 在多機通信中,主機通常把從機地址作為8位數(shù)據(jù)發(fā)送的第9位為1,因此,MCS-51構(gòu)成的多機

54、通信系統(tǒng)最多允許255臺從機地址為00HFEH,F(xiàn)FH作為一條控制命令由主機發(fā)送給從機,以便使被尋址從機SM2=1。4.2 C51編程實現(xiàn)PC機與單片機之間的串行通信單片機通信程序單片機的通信程序采用C51編程2,通信以中斷的方式進行。單片機處于從機地位,每臺單片機被分配一個節(jié)點地址。單片機每收到一個PC機送給本節(jié)點的命令幀,那么根據(jù)命令幀中的命令代碼向PC機回送一個響應(yīng)幀。其系統(tǒng)主程序流圖如圖4-1所示:開始單片機接收中斷初始化串口和波特率接收到PC機發(fā)送的數(shù)據(jù)? N N Y 將接收到的數(shù)據(jù)發(fā)送回PC機單片機發(fā)送中斷結(jié)束 圖4-1 系統(tǒng)主程序流圖單片機接收中斷效勞流程:中段開始接收上位機發(fā)送

55、的地址同本機地址相符?N發(fā)送本機地址 N上位機發(fā)送數(shù)據(jù)中斷返回圖4-2 系統(tǒng)中斷效勞流圖以下是單片機的通信程序。#define NODE_ADDR 1 / 定義本節(jié)點地址#define rcv_ snd_COUNT 12 /定義接收發(fā)送緩沖區(qū)大小unsigned char data rcv_snd_bufferrcv_ snd_COUNT;unsigned char data * rcv_snd_pointer; /定義接收發(fā)送指針void main() SCON=0 x50;TMOD=0 x20;TH1=0 xfd; / 初始化串口和波特率TR1=1;ET1=0;ES=1;EA=1;rcv_

56、snd_pointer=rcv_snd_buffer; / 初始化接收發(fā)送指針 void comm(void) interrupt 4 using 1 / 通信中斷效勞函數(shù)if(RI=1) /接收中斷 RI=0; *rcv_snd_pointer=SBUF; if(*rcv_snd_pointer = *)/接收的字符為結(jié)束字符if(toint(rcv_snd_buffer1)*10+toint(rcv_snd_buffer 2)=NODE_ADDR) /收到的命令幀是發(fā)送給本站的/校驗 switch(rcv_buffer3) /收到不同命令代碼對應(yīng)不同的程序段 case R:/位置監(jiān)測 /將

57、回送信息填入發(fā)送緩沖區(qū) rcv_snd_pointer=rcv_snd_buffer; SBUF=*rcv_snd_pointer;/發(fā)送第一個字符 break;case W:/參數(shù)設(shè)置break; else /收到的命令幀不是發(fā)送給本站的,初始化指針 rcv_snd_pointer=rcv_snd_buffer; else rcv_snd_pointer+;/繼續(xù)接收 if(rcv_snd_pointer (&rcv_snd_bufferrcv_ snd_COUNT-1) /收到過多的字符,初始化接收指針rcv_snd_pointer=rcv_snd_buffer; else /發(fā)送中斷TI

58、=0; if(*rcv_snd_pointer=*) /本次通信結(jié)束,準(zhǔn)備下次通信rcv_snd_pointer=rcv_snd_buffer;return; SBUF=*+rcv_snd_pointer;/繼續(xù)發(fā)送 4.3 Windows集成開發(fā)環(huán)境uVision24.啟動uVision2 uVision2是KEIL公司關(guān)于8051系列MCU的開發(fā)工具,可以用來編譯C源碼、匯編源程序、連接和重定位目標(biāo)文件和庫文件、創(chuàng)立HEX文件、調(diào)試目標(biāo)程序等。uVision2提供了一個多功能的文件操作環(huán)境,如圖4-3所示,其中包含一個內(nèi)藏式編輯器,他是標(biāo)準(zhǔn)的Windows文件編輯器,具有十分強大的文件編輯

59、功能,它支持鼠標(biāo)操作,也有快捷鍵。編輯器中不僅有許多預(yù)定義熱鍵,而且用戶還可以根據(jù)自己的喜好對熱鍵進行從新定義。在uVision2中,用戶可以同時翻開多個窗口,對多個不同的文件進行處理,這一特性有利于使用C51進行結(jié)構(gòu)化的多模塊程序設(shè)計。在模塊化編程時,如果同時翻開多個不同文件,可以在uVision2中對他們分別進行編輯處理,文件編輯完成后,可以直接在該環(huán)境下進行編譯連接。如果編譯連接過程中發(fā)現(xiàn)錯誤,將自動彈出錯誤窗口并顯示出相應(yīng)的錯誤信息。用鼠標(biāo)左鍵雙擊錯誤信息,將自動跳轉(zhuǎn)到產(chǎn)生錯誤的文件位置,一邊可以容易的修改程序文件中的錯誤。圖4-3 啟動uVision24.創(chuàng)立程序創(chuàng)立工程uVisio

60、n2包括一個工程管理器,它可以使你的8051應(yīng)用系統(tǒng)設(shè)計變得簡單。要創(chuàng)立一個應(yīng)用,你需要按以下步驟進行操作:啟動uVision2,新建一個工程文件并從器件庫中選擇一個器件。新建一個源文件并把它參加到工程中。增加并配置你選擇的器件的啟動代碼。針對目標(biāo)硬件設(shè)置工具選項。編譯工程并生成可以編程PROM的HEX文件。這里將一步一步的進行描述,從而指引你如何去創(chuàng)立一個簡單的uVision2工程。一啟動uVision2并創(chuàng)立一個工程uVision2是一個標(biāo)準(zhǔn)Windows應(yīng)用程序,直接點擊程序圖標(biāo)就可以啟動它。要新建一個工程文件,從uVision2的Project菜單中選擇New Project,這將翻開

溫馨提示

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

最新文檔

評論

0/150

提交評論