版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘要隨著電子技術的發(fā)展和微處理器技術的應用,帶有單片機的智能型測控系統(tǒng)的應用越來越廣泛,多個單片機系統(tǒng)之間數(shù)據傳輸已經應用于工業(yè)、科研、農業(yè)等領域,而單片機之間的數(shù)據通信最常用的就是串口通信方式,串口通信可以在使用一根線發(fā)送數(shù)據的同時利用另一根線接收數(shù)據,使用簡單且能實現(xiàn)遠距離通信。本文介紹了一種單片機多機通信的設計方法,主機與從機之間通過串口實現(xiàn)通信,主機通過按鍵來選擇要進行通信的從機,然后通過數(shù)字矩陣鍵盤控制從機的數(shù)碼管顯示數(shù)字0-9,同時該從機可以通過按鍵控制主機連接的LED燈亮滅,實現(xiàn)全雙工通信。本文介紹的方法簡單易懂,通過仿真基本上實現(xiàn)了上述功能,操作簡單,性能穩(wěn)定,可廣泛應用于各種
2、多機通信系統(tǒng)中。關鍵字:單片機;多機通信;串口;數(shù)碼管;LEDAbstractWith the development of electronic technology and the application of microprocessor technology, intelligent measurement and control system with a microcontroller application is more extensive, data transfer between multiple MCU system has been used in industria
3、l, research, agriculture and other fields, while the microcontroller the most commonly used for data communications between the serial communication, serial communication can use a line to send data at the same time use another line to receive data, using simple and can achieve long-distance communi
4、cations.This article describes the design method of a single-chip multi-machine communication via the serial communication between the host and slave, to communicate from machine host keys to select, from the machines digital tube display digital and digital matrix keyboard control -9, while the sla
5、ve can be the key control of the host to connect the LED lights brightly to extinguish, to achieve full-duplex communication.This article describes the method is simple and easy to understand, basically through simulation software to achieve the above functionality, simple operation, stable performa
6、nce, can be widely used in a variety of multi-machine communication system.Key word: Microcontroller;Multi Communication;Serial Port;Nixie tube;LE目 錄1引言11.1本課題選取的目的及意義11.2本系統(tǒng)的主要研究內容22系統(tǒng)分析32.1串行通信簡介32.2系統(tǒng)構成42.3系統(tǒng)工作原理43系統(tǒng)硬件設計53.1電路設計應用環(huán)境簡介53.2系統(tǒng)硬件總體設計方案53.3主機電路模塊63.3.1 單片機63.3.2 矩陣鍵盤電路83.3.3 主機控制電路93.
7、4從機電路模塊103.5電源電路模塊113.6元件清單124系統(tǒng)軟件設計124.1軟件設計應用環(huán)境與設計語言124.2軟件設計流程144.3按鍵程序設計154.4串口通信164.5從機數(shù)碼管顯示程序設計195Protues ISIS軟件仿真195.1Protues仿真軟件簡介195.2Proteus功能仿真215.3Proteus仿真結果226結論25參考文獻26附錄127附錄228單片機課程設計1引言隨著電子技術的不斷發(fā)展,單片機的應用范圍越來越廣泛,在工業(yè)控制、家電控制、數(shù)據采集等多個領域都有著十分重要的作用,由于單片機的使用,越來越多的系統(tǒng)開始向智能化方向發(fā)展。而單片機自帶的串口功能可以
8、實現(xiàn)其與其他外設MCU或PC機之間的通信,這樣就使得控制系統(tǒng)更加的方便實用,利用單片機的串口通信可以實現(xiàn)多單片機之間的數(shù)據的遠程傳輸、數(shù)據分析與系統(tǒng)綜合控制功能,尤其是在數(shù)據量比較大的場合下,利用一個主機向各個從機發(fā)送控制指令是一個很好的解決方案,在這個過程中,串口通信是實現(xiàn)單片機與單片機之間通信的關鍵?,F(xiàn)在多處理器通信已經在工業(yè)、科研、農業(yè)等領域廣泛地應用。串行通信是指計算機主機與外設之間以及主機系統(tǒng)與主機系統(tǒng)之間數(shù)據的串行傳送。使用串口通信時,發(fā)送和接收到的每一個字符實際上都是一次一位的傳送的,每一位為1或者為0。串行通信只使用一條數(shù)據線,將數(shù)據一位一位地依次傳輸,每一位數(shù)據占據一個固定的
9、時間長度。其只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息。基于以上原因本文介紹了一種基于單片機的多機通信設計,實現(xiàn)單片機與單片機之間通過串口進行數(shù)據傳輸?shù)墓δ堋?.1本課題選取的目的及意義目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數(shù)據傳輸,工業(yè)自動化過程的實時控制和數(shù)據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄相機、攝相機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫(yī)療器械了。單片機廣泛應用于儀器儀表、家用電器、醫(yī)用設備、航空航
10、天、專用設備的智能化管理及過程控制等領域隨著計算機技術的發(fā)展及工業(yè)自動化水平的提高,在許多場合采用單機控制已不能滿足現(xiàn)場要求,因而必須采用多機控制的形式,而多機控制主要通過多個單片機之間的串行通信實現(xiàn)。串行通信作為單片機之間常用的通信方法之一, 由于其通信編程靈活、硬件簡潔并遵循統(tǒng)一的標準, 因此其在工業(yè)控制領域得到了廣泛的應用。構成較大規(guī)模的檢測、控制系統(tǒng),經常要采用多個單片機,組成可以通信的多機系統(tǒng)。MCS一51系列單片機為實現(xiàn)多機通信聯(lián)網設計了方便的串行通信接口功能。將多個MCS一51單片機組成串行總線形式的相互通道,通過寫單片機的串行控制方式寄存器,將串行口置成方式2或方式3,就可以實
11、現(xiàn)主機與分機之間的串行通信。這種多機系統(tǒng)結構簡單,應用廣泛,但它只能實現(xiàn)由主機呼叫分機,然后實現(xiàn)主機與分機之間的全雙工串行通信。我們在監(jiān)控系統(tǒng)中要求既有主機與分機主動通信,又有分機與主機主動通信,這種結構的多機系統(tǒng)就無法滿足要求。多機協(xié)同工作已是單片機發(fā)展的一個重要趨勢,目前單片機多機通信的主要方式仍然是主從式多機通信系統(tǒng)。單片機多機通信的目的是實現(xiàn)分布式處理系統(tǒng),單片機多機通信的方式有很多種,應用前景廣闊,非常具有研究意義!1.2本系統(tǒng)的主要研究內容本文在研究傳統(tǒng)的多機通信系統(tǒng)的基礎上,設計了一種基于MCS51系列單片機AT89C51的多機通信系統(tǒng)。打開proteus仿真電路圖,按下軟件下方
12、的“開始”圖標,啟動系統(tǒng),按下“1號機”按鍵,主機與從機1接通,通過主機外接的4*4矩陣鍵盤控制從機1的數(shù)碼管,按下標號為0-9的按鍵時,對應從機1的數(shù)碼管顯示0-9,按下從機1外接的8個開關,可以控制的主機外接的8個LED發(fā)光二極管,實現(xiàn)全雙工通信。按下“2號機”按鍵,機與從機2接通,通過主機外接的4*4矩陣鍵盤控制從機2的數(shù)碼管,按下標號為0-9的按鍵時,對應從機2的數(shù)碼管顯示0-9,按下從機2外接的8個開關,可以控制的主機外接的8個LED發(fā)光二極管,也可以實現(xiàn)全雙工通信。2系統(tǒng)分析2.1串行通信簡介串行通信可以分為同步通信和異步通信兩類。同步通信是一種連續(xù)串行傳送數(shù)據的通信方式,一次通信
13、只傳送一幀信息。這里的信息幀與異步通信中的字符幀不同,通常含有若干個數(shù)據字符。它們均由同步字符、數(shù)據字符和校驗字符(CRC)組成。其中同步字符位于幀開頭,用于確認數(shù)據字符的開始。數(shù)據字符在同步字符之后,個數(shù)沒有限制,由所需傳輸?shù)臄?shù)據塊長度來決定;校驗字符有1到2個,用于接收端對接收到的字符序列進行正確性的校驗。同步通信的缺點是要求發(fā)送時鐘和接收時鐘保持嚴格的同步。異步通信中,在異步通行中有兩個比較重要的指標:字符幀格式和波特率。數(shù)據通常以字符或者字節(jié)為單位組成字符幀傳送。字符幀由發(fā)送端逐幀發(fā)送,通過傳輸線被接收設備逐幀接收。發(fā)送端和接收端可以由各自的時鐘來控制數(shù)據的發(fā)送和接收,這兩個時鐘源彼此
14、獨立,互不同步。接收端檢測到傳輸線上發(fā)送過來的低電平邏輯0(即字符幀起始位)時,確定發(fā)送端已開始發(fā)送數(shù)據,每當接收端收到字符幀中的停止位時,就知道一幀字符已經發(fā)送完畢。串口通信最重要的參數(shù)是波特率、起始位、數(shù)據位、停止位和奇偶校驗。波特率:是一個衡量通信速度的參數(shù),表示每秒鐘傳送的bit的個數(shù)。起始位:當通信線上沒有數(shù)據被傳送時處于邏輯“1”狀態(tài),當發(fā)送設備要發(fā)送一個數(shù)據時,先發(fā)送一個邏輯“0”信號,這個低電平就是起始位,起始位通過通信線傳向接收設備,接收端檢測到這個低電平后,就確認開始接收數(shù)據了。起始位的作用是使通信雙方在傳送數(shù)據前協(xié)調同步。數(shù)據位:是衡量通信中實際數(shù)據位的參數(shù),當計算機發(fā)送
15、一個信息包,實際的數(shù)據不會是8位的,標準的值是5、7或8位,如何設置取決于要傳送的信息。每個包是指一個字節(jié),包括開始/停止位、數(shù)據位和奇偶校驗位,由于實際數(shù)據位取決于通信協(xié)議的選取,術語“包”指任何通信的情況。停止位:用于表示單個包的最后一位。典型的值為1、1.5和2位,它是一個數(shù)據的結束標志,接收端接收到停止位后,通信線路上會回復邏輯“1”的狀態(tài),知道下一個起始位的到來。奇偶校驗位:在串行通信中一種簡單的檢錯方式,有四種方式:偶、奇、高和低。對于偶和檢驗的情況,串口會設置檢驗位,用一個值確保傳輸?shù)臄?shù)據有偶個或者奇?zhèn)€邏輯高位。高位和低位不真正的檢查數(shù)據,簡單置位邏輯高或者邏輯低校驗,這樣使得接
16、收設備能夠知道一個位的狀態(tài),有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據是否不同步。2.2系統(tǒng)構成主機控制電路顯示電路串口從機1從機2控制電路顯示電路顯示電路控制電路圖2.1 系統(tǒng)設計框圖2.3系統(tǒng)工作原理打開proteus仿真電路圖,按下軟件下方的“開始”圖標,啟動系統(tǒng),按下“1號機”按鍵,主機與從機1接通,通過主機外接的4*4矩陣鍵盤控制從機1的數(shù)碼管,按下標號為0-9的按鍵時,對應從機1的數(shù)碼管顯示0-9,按下從機1外接的8個開關,可以控制的主機外接的8個LED發(fā)光二極管,實現(xiàn)全雙工通信。按下“2號機”按鍵,機與從機2接通,通過主機外接的4*4矩陣鍵盤控制從機2的數(shù)碼管,按下標號
17、為0-9的按鍵時,對應從機2的數(shù)碼管顯示0-9,按下從機2外接的8個開關,可以控制的主機外接的8個LED發(fā)光二極管,也可以實現(xiàn)全雙工通信。3系統(tǒng)硬件設計3.1電路設計應用環(huán)境簡介Protel電子線路設計軟件是在TANGO基礎上改進的電路CAD軟件,它在原理圖文件格式、印制板文件格式、原理圖器件庫文件格式、印制板封裝庫文件格式、原理圖編譯和網絡表轉換與檢查等方面保持了與TANGO版本一致或兼容的前提下,對原TANGO版本做了一些改動。Protel電子線路設計軟件由原理圖編輯、印制板設計、原理圖輸出、印制板輸出、原理圖器件庫編輯和其他應用程序組成。電路原理圖的設計是印制電路板設計中的第一步,也是非
18、常重要的一步。電路原理圖設計得好壞將直接影響到后面的工作。首先,原理圖的正確性是最基本的要求,因為在一個錯誤的基礎上所進行的工作是沒有意義的;其次,原理圖應該布局合理,這樣不僅可以盡量避免出錯,也便于讀圖、便于查找和糾正錯誤;最后,在滿足正確性和布局合理的前提下應力求原理圖的美觀。進行原理圖設計步驟:一、建立數(shù)據庫。打開Protel軟件后,在“文件”標題欄里選擇“新建”選項,在彈出的對話框里選擇Document Folder,然后點擊OK即可。二、打開Documents,選擇“文件”標題欄里選擇“新建”選項,在彈出的對話框里選擇“Schematic Document”選項,建立原理圖文件,并給
19、原理圖文件命名。三、設計電路原理圖。利用Protel里的元器件庫完成電路原理圖的繪制。四、檢查原理圖電性能可靠性。選擇工具(Tools)下面的電氣規(guī)則檢查,在“Rule Matrix”中選擇要進行電氣檢查的項目,設置好各項后,在“Setup Electrical Rlues Check”對話框上選擇“OK”即可運行電氣規(guī)則檢查,檢查結果將被顯示到界面上。3.2系統(tǒng)硬件總體設計方案本設計單片機之間通過串口進行通信,主機通過按鍵來選擇要進行通信的從機,進而通過按鍵控制從機的數(shù)碼管顯示數(shù)字;同時從機可以通過按鍵控制主機連接的LED燈。 數(shù)碼管與單片機的連接方式采用并行連接方式。系統(tǒng)設計框圖如圖3-1
20、所示:主機單片機矩陣鍵盤LED發(fā)光二極管串口從機1單片機從機2單片機按鍵數(shù)碼管數(shù)碼管按鍵圖3.1 系統(tǒng)整體電路圖3.3主機電路模塊3.3.1 單片機AT89C51單片機內部主要由9個部件組成:1個8位中央處理器;4KBFlash存儲器;128B的數(shù)據存儲器;32條I/O口線;2個定時器/計數(shù)器;1個具有6個中斷源、4個優(yōu)先級的中斷嵌套結構;用于多處理機通信、I/O擴展或全雙工UART的串行口;特殊功能寄存器;1個片內振蕩器和時鐘電路。AT89S51系列單片機完全繼承了MCS-51的指令系統(tǒng),共有111條指令,按其功能可分為五大類:數(shù)據傳送類指令、算術運算類指令、邏輯運算類指令、控制轉移類指令、
21、布爾操作。AT89C51單片機引腳如圖3-1所示。圖3.1 AT89C51單片機引腳圖管腳說明:P0口:8位、漏極開路的雙向I/O口。P0能夠用于外部程序數(shù)據存儲器。它可以被定義為數(shù)據/地址的第八位。P0口在應用時必須外接上拉電阻,作為輸入時,首先應將引腳置1。P1口:8位雙向I/O口,內部含上拉電阻。作為輸入時,應先將引腳置高;若負載為低電平,則通過內部上拉電阻向外輸出電流。P2口:8位雙向I/O口,內部含上拉電阻。作為輸入時,應先將引腳置高;若負載為低電平,則通過內部上拉電阻向外輸出電流。P3口:8位雙向I/O口,內部含上拉電阻。作為輸入時,應先將引腳置高;若負載為低電平,則通過內部上拉電
22、阻向外輸出電流。P3口除了通用I/O口功能外,還有第二功能。P3口的第二功能定義如表3-1所示。引腳定義功能引腳定義功能P3.0-RXD串行輸入口P3.1-TXD串行輸出口P3.2-外部中斷0P3.3-外部中斷1P3.4-T0計時器0外部輸入P3.5-T1計時器1外部輸入P3.6-外部數(shù)據存儲器寫選通P3.7-外部數(shù)據存儲器讀選通表3.1 P3口第二功能定義RST:復位輸入,低電平有效。ALE/PROG:地址鎖存允許信號輸出。在正常操作狀態(tài)下,該引腳端口輸出恒定頻率的脈沖。其頻率為晶振頻率的1/6,可用作外部定時或其他觸發(fā)信號。如果需要,可通過SFR的第0位置禁止ALE操作,但ALE的禁止位不
23、影響對外部存儲器的訪問。:片外程序存儲器選通信號,低電平有效。當AT89S51執(zhí)行來自外部程序存儲器的指令代碼時,PSEN/每個機器周期兩次有效。在訪問外部數(shù)據存儲器時,PSEN/無效。:片外程序存儲器訪問允許信號,低電平有效。XTAL1:外接晶振。在單片機內部是反相放大器的輸入及端。XTAL2:外接晶振。在單片機內部是反相放大器的輸出端,輸入到內部時鐘發(fā)生器。3.3.2 矩陣鍵盤電路矩陣鍵盤電路如圖3-2所示。單片機的P1口控制矩陣鍵盤。本設計采用4*4矩陣鍵盤。矩陣鍵盤的行線接P1.0-P1.3引腳,列線接P1.4-P1.7引腳。將P1.0-P1.3引腳置為高電平,P1.4-P1.7引腳依
24、次置為低電平,當按鍵沒有按下時,P1.0-P1.3口各引腳狀態(tài)不變,一旦有按鍵按下,則P1.0-P1.3就會有引腳變?yōu)榈碗娖?,這樣,通過讀入P1.0-P1.3的狀態(tài)就可得知是哪一個按鍵按下了,然后單片機根據該按鍵代表的功能執(zhí)行相應的程序。圖3.2 矩陣鍵盤電路3.3.3 主機控制電路該部分電路設計如圖3-3所示。單片機的時鐘的頻率直接影響著單片機的速度和系統(tǒng)的穩(wěn)定性。AT89S51片內由一個反相放大器構成振蕩器,可以通過XTAL1和XTAL2產生時鐘。常用的單片機產生時鐘的方法有兩種:內部時鐘方式和外部時鐘方式。本設計選用外部時鐘方式,單片機內部XTAL1引腳為高增益反向放大器的輸入端,XTA
25、L2為輸出端,在這2個引腳之間接石英晶振和電容,就可以構成一個穩(wěn)定的自激振蕩器。本設計選用的12MHz的晶振。復位是單片機的初始化操作,復位信號是高電平有效,復位操作有上電自動復位、按鍵電平復位、外部脈沖復位和自動復位四種方式。在本設計中復位電路采用按鍵電平方式,使RST引腳經過10u電解電容與VCC電源接通,同時經過電阻與地連接而實現(xiàn),按下按鍵時,RST引腳置高,實現(xiàn)復位功能。單片機的P1口控制矩陣鍵盤電路,P2口控制8路LED燈,從機可以向主機發(fā)送指令來控制LED燈的亮滅。當單片機串口接收到從機發(fā)送來的指令時,判斷其控制的是哪一路LED燈,再用單片機引腳控制該路LED燈。圖3.3 主機控制
26、電路3.4從機電路模塊本設計共設置2路從機,2路從機的電路設計和實現(xiàn)的功能是一樣的,所以這里只介紹其中一路從機的電路設計。從機電路如圖3-4所示。單片機的P1口控制8路按鍵,這8路按鍵用于實現(xiàn)控制主機的8路LED燈的亮滅;P2口控制數(shù)碼管顯示。半導體數(shù)碼管的每個線段都是一個發(fā)光二極管(Light Emitting Diode,簡稱LED),因而也把它叫做LED數(shù)碼管或LED七段顯示器。半導體數(shù)碼管不僅具有工作電壓低、體積小、壽命長、可靠性高等優(yōu)點,而且響應時間短(一般不超過0.1us),亮度也比較高。LED數(shù)碼管由八只發(fā)光二極管組成,編號是a、b、c、d、e、f、g、h,分別和同名管腳相連,當
27、發(fā)光二極管導通時發(fā)光。每個二極管就是一個筆劃,若干個二極管發(fā)光時,就構成一個顯示字符。若將單片機的I/O口與數(shù)碼管的a-g和h相連,高電平(對應共陰極數(shù)碼管)或低電平(對應共陽極數(shù)碼管)的位對應的發(fā)光二極管就會亮,這樣,I/O口輸出不同的代碼就可以控制數(shù)碼管顯示不同的字符。由于本設計只用了一個數(shù)碼管顯示數(shù)字0-9,所以直接將數(shù)碼管的8個段碼引腳連接至單片機的引腳上,利用單片機的引腳輸出要顯示的數(shù)字的代碼。圖3.4 從機電路3.5電源電路模塊電源部分提供整個電路所需各種電壓,由電源變壓器、整流電路、濾波電路及輔助穩(wěn)壓輸出構成,電源變壓器的功率由需要輸出的電流大小決定,確保有充足功率余量。交流電經
28、過二極管整流之后,方向單一了,但是大?。娏鲝姸龋┻€是處在不斷地變化之中。這種脈動直流一般是不能直接用來給無線電裝供電的。要把脈動直流變成波形平滑的直流,還需要再做一番“填平取齊”的工作,這便是濾波。換句話說,濾波的任務,就是把整流器輸出電壓中的波動成分盡可能地減小,改造成接近恒穩(wěn)的直流電。直流電壓紋波的大小與濾波電路的電解電容的關系是電容越大紋波越小,小功率電路一般應滿足:R*C=2T(R是負載電阻的阻值,C是濾波電容的容值,T是被濾波交流信號的周期)。濾波電路主要分為以下幾種:一、電容濾波:電容器兩端電壓不能突變的特性,正好可以用來承擔濾波的任務,電容量越大,濾波效果越好,輸出波形越趨于平
29、滑,輸出電壓也越高,適于各種整流電路。整流濾波電路對電容器的容量和耐壓值要求不是太高,一般根據輸出電流大小估算電容器的容量,輸出電流大,容量就大;電流小,容量就小。二、電感濾波:利用電感對交流阻抗大而對直流阻抗小的特點,可以用帶鐵芯的線圈做成濾波器。電磁濾波輸出電壓較低,相輸出電壓波動小,隨負載變化也很小,適用于負載電流較大的場合。三、復式濾波器:把電容按在負載并聯(lián)支路,把電感或電阻接在串聯(lián)支路,可以組成復式濾波器,達到更佳的濾波效果。這種電路的形狀很像字母,所以又叫型濾波器;電磁與電容組成的LC濾波器,其濾波效能很高,幾乎沒有直流電壓損失,適用于負載電流較大、要求紋波很小的場合。但是,這種濾
30、波器由于電感體積和重量大(高頻時可減?。容^笨重,成本也較高,一般情況下使用得不多;由電阻與電容組成的RC濾波器這種復式濾波器結構簡單,能兼起降壓、限流作用,濾波效能也較高,是最常用的一種濾波器。上述兩種復式濾波器,由于接有電容,帶負載能力都較差。穩(wěn)壓電路有分立元件穩(wěn)壓電路和集成穩(wěn)壓電路兩種,其中集成穩(wěn)壓電路主要用于低電壓小電流的整流電路,具有體積小,電路簡單,穩(wěn)壓精度高,使用調試方便等特點。本設計中的供電電源電路如圖3-5所示。220V市電先經過變壓器降壓至9V,降壓后的交流電經過1N4007組成的二極管整流橋進行整流,再經大電解電容和小無極電容濾波進入到穩(wěn)壓塊LM7805中,LM7805
31、的輸出是+5V,可供電路中元器件的供電使用。圖3.5 供電電源電路3.6元件清單單片機AT89C513按鍵Button32發(fā)光二極管LED-RED8數(shù)碼管7SEG2其他4系統(tǒng)軟件設計4.1軟件設計應用環(huán)境與設計語言本設計軟件的設計是在Keil C51的環(huán)境下編譯的。Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調試工具,全Windows界面。Keil C51標準C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時保留了匯編代碼高效、快速的特點。C51編譯器的功能不斷增強,使你可以更加貼近CPU本身,
32、及其它的衍生產品。C51已被完全繼承到Vsion2的集成開發(fā)環(huán)境中,這個集成開發(fā)環(huán)境包含:編譯器、匯編器、實時操作系統(tǒng)、項目管理器、調試器。Vsion2 IDE可為它們提供單一而靈活的開發(fā)環(huán)境。C51 V7版本是目前最高效、靈活的8051開發(fā)平臺。它可以支持所有8051的衍生產品,也可以支持所有兼容的仿真器,同時支持其它第三方開發(fā)工具。因此,C51 V7版本無疑是8051開發(fā)用戶的最佳選擇。Keil C51編譯器在遵循ANSI標準的同時,為8051微控制器系列特別設計,語言上的擴展能讓用戶使用應用中的所有資源。一、存儲器和特殊功能寄存器的存取。C51編譯器可以實現(xiàn)對8051系列所有資源的操作。
33、SFR的存取由sfr和sbit兩個關鍵字來提供。變量可旋轉到任一個地址空間。用關鍵字-at-還能把變量放入固定的存儲器。存儲模式決定了變量的存儲類型。連接定位器支持的代碼區(qū)可達32個,這就允許用戶在原有64K ROM的8051基礎上擴展程序。在V2的編譯器和許多高性能仿真器中,可以支持應用程序的調試。二、中斷功能。C51允許用戶使用C語言編寫中斷服務程序,快速進、出代碼和寄存器區(qū)的轉換功能使C語言中斷功能更加高效??稍偃牍δ苁怯藐P鍵字來定義呃。多任務、中斷或非中斷的代碼要求必須具備可再入功能。三、靈活的指針。C51提供了靈活高效的指針。通用指針用3個字節(jié)來存儲存儲器類型及目標地址,可以在805
34、1的任意存儲區(qū)內存取任何變量。特殊指針在聲明的同時已制定了存儲器類型,指向某一特定的存儲區(qū)域。由于地址的存儲只需1-2字節(jié),因此,指針存取非常迅速。本設計采用C語言來完成程序設計的,C語言有以下特點:1、語言簡潔、緊湊、使用方便、靈活。C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示,壓縮了一切不必要的成分。2、運算符豐富。C的運算符包含的范圍很廣泛,共有34種運算符,使得C的運算類型極其豐富,表達式類型多樣化,靈活使用各種運算符可以實現(xiàn)在其他高級語言中難以實現(xiàn)的運算。3、數(shù)據結構豐富,具有現(xiàn)代化語言的各種數(shù)據結構,能用來實現(xiàn)各種復雜的數(shù)據結構的運算。4、具有結構化的
35、控制語句,用函數(shù)作為程序的模塊單位,便于實現(xiàn)程序的模塊化。5、語法限制不太嚴格,程序設計自由度大。6、C語言能進行位操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作。因此,C既具有高級語言的功能,又具有低級語言的許多功能,可用來寫系統(tǒng)軟件。C語言的這種雙重性,使它既是成功的系統(tǒng)描述語言,又是通用的程序設計語言。7、生成目標代碼質量高,程序執(zhí)行效率高。8、用C語言寫的程序可移植性好?;旧喜挥眯薷木湍苡糜诟鞣N型號的計算機和各種操作系統(tǒng)。對操作系統(tǒng)和系統(tǒng)實用程序以及需要對硬件進行操作的場合,用C語言明顯地優(yōu)勢于其他高級語言,有的大型應用軟件也用C語言來編寫。4.2軟件設計流程系統(tǒng)軟件分為兩
36、個部分,主機軟件設計和從機軟件設計。主機軟件設計流程圖如圖4-1所示。結束開始初始化確認從機編號掃描數(shù)字鍵通過串口向從機發(fā)送數(shù)據掃描按鍵接收從機發(fā)來的數(shù)據控制相應LED燈圖4.1 主機軟件設計流程圖從機軟件設計流程圖如圖4-2所示。結束開始初始化數(shù)碼管送顯通過串口向主機發(fā)送數(shù)據接收串口數(shù)據有按鍵按下?YN圖4.2 從機軟件設計流程圖4.3按鍵程序設計單片機讀取按鍵值的方法有兩種:查詢方式和中斷方式。查詢方式是利用鍵盤程序不斷查詢是否有按鍵按下,有按下則進入相應按鍵的子程序進行數(shù)據處理,沒有則一直循環(huán)查詢;中斷方式是將按鍵動作與單片機的中斷系統(tǒng)聯(lián)系起來,有按鍵按下時,就引起單片機中斷,使系統(tǒng)進入
37、中斷處理程序。本設計采用查詢方式來處理讀取按鍵值程序。設計按鍵程序時,首先應注意的是按鍵的機械觸點效應,原理上,按鍵按下時,單片機端口為低電平,但是由于按鍵的機械觸點效應,按鍵在斷開和閉合瞬間會有抖動過程,這個過程會出現(xiàn)一系列的負脈沖,這樣會讓單片機引起誤判,因地,必須才需措施去掉按鍵抖動的影響。去按鍵抖動常用的有兩種方法:硬件方法和軟件方法。硬件方法一般是并接電容,或者加R-S觸發(fā)器;軟件去抖動一般采用延時的方法,按鍵抖動的過程一般持續(xù)5-10ms的時間,在判斷按鍵狀態(tài)時,只要加一個5-10ms的延時程序,再次判斷按鍵是否狀態(tài)不變,即可實現(xiàn)去抖動的作用。本設計中選用軟件延時的方法去按鍵抖動。
38、延時子程序如下:void delay(uint tt) uchar i; for(;tt0;tt-) for(i=0;i2;i+); 4.4串口通信AT89S51的串行口是一個全雙工的異步串行通信口,可以同時進行接收數(shù)據和發(fā)送數(shù)據,因為口內的接受緩沖器和發(fā)送緩沖器在物理上是隔離的,即是完全獨立的。可以通過訪問特殊功能寄存器SBUF,來訪問接收緩沖器和發(fā)送緩沖器。接收緩沖器還具有雙緩沖的功能,即它在接收第一個數(shù)據字節(jié)后,能接受第二個數(shù)據字節(jié),但是,在它完成接收第二個數(shù)據字節(jié)之后,若第一個字節(jié)仍未取走,那么該字節(jié)數(shù)據將丟失。對串行口的控制主要包括對狀態(tài)控制寄存器SCON、控制寄存器PCON、和串行
39、數(shù)據寄存器SBUF的設置。1、狀態(tài)控制寄存器SCON:SCON是一個逐位定義的8位寄存器,由它控制串行通信的方式選擇、接收和發(fā)送,指示串行口的狀態(tài)。寄存器SCON既可字節(jié)尋址也可位尋址,字節(jié)地址為98H,位地址為98H-9FH。其格式如下表4-1所示:位地址9FH9EH9DH9CH9BH9AH99H98H位功能SM0SM1SM2RENTB8RB8TIRI表4.1 SCON地址格式SM0,SM1:串行口工作方式選擇位;SM2:允許方式2、3中的多處理機通信位;REN:允許串行接收位,置位時,允許串行接收,清除時,禁止串行接收,可用軟件置位/清除;TB8:方式2和方式3中要發(fā)送的第9位數(shù)據,可用軟
40、件置位/清除;RB8:方式3和方式3中接收的第9位數(shù)據。方式1中接收的是停止位,方式0中不使用這一位。TI:發(fā)送中斷標志位,硬件置位,軟件清除。方式0中,在發(fā)送第8位末尾置位,在其他方式時,在發(fā)送停止位開始時設置;RI:接收中斷標志位。硬件置位,軟件清除。方式0中,在接收第8位末尾置位,在其他方式時,在接收停止位中間設置。2、控制寄存器PCON:PCON是一個逐位定義的8位寄存器,目前僅有幾位有定義,其中僅最高位SMOD與串行口控制有關,其他位與掉電方式有關,其格式如表4-2所示。D7D6D5D4D3D2D1D0SMOD-GF1GF0PDIDL表4.2 PCON地址格式SMOD:串行通信波特率
41、系數(shù)控制位,當SMOD=1時,使波特率加倍。寄存器PCON的地址為87H,只能字節(jié)尋址。3、串行數(shù)據寄存器SBUF:SBUF包含在物理上隔離的兩個8位寄存器:發(fā)送數(shù)據寄存器和接受數(shù)據寄存器,但是它們共用一個地址99H,其格式如下表4-3所示。D7D6D5D4DD2D1D0SD7SD6SD5SD4SD3SD2SD1SD0表4.3 數(shù)據寄存器格式串口發(fā)送數(shù)據程序如下:void send_buf(void) SBUF=D_ADDR; while(!TI); TI=0; SBUF=key_bpard; while(!TI); TI=0; delay(3000);單片機讀取串口數(shù)據程序如下:void d
42、ushu(void) interrupt 4 using 1/串口接收中斷 while(RI=0); P2=SBUF; RI=0;串行口控制寄存器SCON中的SM2為方式2或方式3的多機通信控制位,當串行口以方式2或方式3工作時,若SM2程控位為1,此時只有當串行口就收到的第9位數(shù)據RB8=1時,才置1中斷標志RI,若接收到的RB8=0,則不產生中斷標志,應用MCS-51串行口的這個標志,便可實現(xiàn)多機通信。在一個多機系統(tǒng)中有一個主機和二個從機組成的多機系統(tǒng),從機的地址分別為00H,01H,從機系統(tǒng)由初始化程序將串行口編程為方式2或方式3接收,即9位異步通信方式,且置“1”SM2和REN,允許串
43、行口中斷。在主機和某一個從機通信之前,先將從機地址發(fā)送給各個從機系統(tǒng)。接著才傳送數(shù)據或命令,主機發(fā)出的地址信息的第9位為1,數(shù)據(包括命令)信息的第9位為0,當主機向各從機發(fā)送地址時,各從機的串行口接收到的第9位的信息RB8為1,置“1”RI中斷標志位,各從機80C51響應中斷,執(zhí)行中斷服務程序。在中斷服務程序中,判斷主機送來的地址是否和本機地址相符合,若為本機的地址,則清“0”SM2位,準備接收主機的數(shù)據或命令;若地址不相符,則保持SM2=1狀態(tài)。接著主機發(fā)送數(shù)據,此時各個從機串行口接收到的RB8=0;只有與前面地址相符合的從機系統(tǒng)(即已清“0”SM2位的從機)才能激活中斷標志位RI,從而進
44、入中斷服務程序,在中斷服務程序中接收主機的數(shù)據或執(zhí)行主機的命令,實現(xiàn)和主機的信息傳送;其他的從機因SM2保持為1,又RB8=0不激活中斷標志RI,所接收的數(shù)據丟失不作處理,從而保證了主機和從機間通信的正確性。本次設計多機系統(tǒng)為主從式,由主機控制多機之間的通信,從機和從機之間的通信只能經主機才能實現(xiàn)。4.5從機數(shù)碼管顯示程序設計根據數(shù)碼管的驅動方式不同,數(shù)碼管送顯方式有兩種:靜態(tài)送顯和動態(tài)送顯。靜態(tài)顯示驅動:靜態(tài)驅動也稱直流驅動,在靜態(tài)顯示驅動方式下,數(shù)碼管的共陰極或共陽極共同接地或接電源,每個數(shù)碼管的段選線與8位的單片機并口連接。靜態(tài)顯示驅動方式占用的單片機I/O端口比較多,一般在實用中不采用
45、。動態(tài)顯示驅動:數(shù)碼管動態(tài)顯示方式是將所有的段選線并聯(lián)在一起,由一個8位I/O口來控制,再利用單片機的其他I/O口來作為數(shù)碼管的位選線。當單片機輸出顯示數(shù)字的譯碼時,哪個數(shù)碼管顯示由單片機對位選通電路的控制來選擇,所以將欲顯示的數(shù)碼管的位選通端選通,該數(shù)碼管就會顯示,其它數(shù)碼管均不會亮。通過輪流控制各個數(shù)碼管的選通端使數(shù)碼管輪流顯示。在顯示過程中,每個數(shù)碼管的顯示時間為1-2ms,由于人們的視覺暫留現(xiàn)象及發(fā)光二極管的余暉效應,只要掃描的速度夠快,給人的印象就是同時點亮的,而且不會有閃爍感。本設計中只需要1位數(shù)碼管顯示攝像機參數(shù)的編號,采用靜態(tài)顯示方式控制比較簡單。子程如下:while(1) K
46、EY_BORD=P1; delay(2); P2=tabrbuf1; 5Protues ISIS軟件仿真5.1Protues仿真軟件簡介仿真軟件采用 Proteus。在國外有包括斯坦福、劍橋等在內的幾千家高校將Proteus作為電子工程學位的教學和實驗平臺;在國內也有眾多大學正在體驗Proteus的獨一無二的功能并申報大學計劃。該方法具有普遍意義。通過實際應用發(fā)現(xiàn),采用該方法可以大大簡化硬件電路測試和系統(tǒng)調試通過程中電路板制作、元器件安裝、焊接等過程。很明顯,使用該方法可以提高開發(fā)效率、降低開發(fā)成本、提升開發(fā)速度,對單片機系統(tǒng)開發(fā)具有指導意義。Proteus軟件是來自英國Labcenter e
47、lectronics公司的EDA工具軟件,Proteus軟件有十多年的歷史,在全球廣泛使用,除了其具有和其它EDA工具一樣的原理布圖、PCB自動或人工布線及電路仿真的功能外,其革命性的功能是:將電路仿真和微處理器仿真進行協(xié)同,直接在基于原理圖的虛擬原型上進行處理器編程調試,并進行功能驗證,通過動態(tài)器件如電機、LED、LCD、開關等,實時看到運行后的輸入、輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,Proteus為我們建立了完備的電子設計開發(fā)環(huán)境。Proteus軟件由ISIS和ARES兩個軟件構成,其中ISIS是原理圖編輯與仿真軟件,ARES是布線編輯軟件。本設計用的是ISIS軟件
48、。ISIS是電路分析與實物仿真軟件,可以仿真、分析(SPICE)各種模擬器件和集成電路,主要特性有:1、實現(xiàn)了單片機仿真和SPICE電路仿真相結合。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS-232動態(tài)仿真、I2C調試器、SPI調試器、鍵盤和LCD系統(tǒng)仿真的功能,有各種虛擬儀器如示波器、邏輯分析儀、信號發(fā)生器等。2、支持主流單片機系統(tǒng)的仿真。3、提供軟件調試功能。在硬件仿真系統(tǒng)中也具有全速、單步、設置斷點等調試功能。同時,還可以觀察各個變量、寄存器等的當前狀態(tài),因此在該軟件仿真系統(tǒng)中也具有這些功能。同時,還支持第三方的軟件編譯和調試環(huán)境,如Keil C51等軟件。
49、4、具有強大的原理圖繪制功能。Proteus ISIS的工作界面是一種標準的Windows界面,如圖所示。包括:標題欄、主菜單、標準工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預覽對象方位控制按鈕、仿真進程控制按鈕、預覽窗口、對象選擇器窗口、圖形編輯窗口。運行Proteus程序后,進入軟件的主界面。通過左側工具欄中的P(從庫中選擇元件命令)命令,在Pick Devices 左側窗口中選擇所需元件的關鍵字,然后放置元件并調整方向和位置以及參數(shù)設置,最后進行連線。圖5.1 Proteus ISIS的工作界面5.2Proteus功能仿真Proteus仿真時,單片機需要加載程序,加載程序為.HEX文件。
50、本設計利用Keil Vision2,在新建Keil項目時選擇AT89C52單片機作為CPU,將C語言源程序導入,在“Options For Target”對話窗口中,選中“Output”選項中的“Create HEX File”,編譯鏈接后就可以生成 .HEX文件。在Proteus ISIS中,選中AT89C51并單擊鼠標左鍵,對AT89C51進行設置,設置單片機時鐘頻率為12MHz,按照正確的文件路徑加載.HEX文件。對單片機設置完畢后就可以開始仿真了。仿真過程中如有硬件問題可在Proteus ISIS中直接修改,如有軟件問題可在Keil Vision2中直接修改,通過Keil與Proteu
51、s的聯(lián)合調試就可以得到滿意的結果。最后載入hex文件后可以進行模擬仿真,可以全速運行也可以單步調試運行。單擊Play按鈕,進入仿真狀態(tài)仿真按鈕如圖5-2所示,其中按鈕1為開始運行,按鈕2為step,按鈕3為暫停,按鈕4為停止。單擊運行按鈕,啟動 Proteus ISIS 仿真。圖5.2 仿真按鈕5.3Proteus仿真結果首先根據電路原理圖利用Protues軟件畫出仿真圖。打開proteus軟件,將所需要用到的元器件添加到左側的元器件列表DEVICE中。單擊按鈕“P”,即可彈出元器件庫對話框,可以從中選擇元器件。輸入元器件名稱,可以選擇所用元器件,選中后,單擊“OK”即可。選完元器件后,在元器
52、件列表里回顯示出來。按照電路原理圖將仿真圖畫好,如圖5.3所示。圖5.3 系統(tǒng)總體仿真圖運行后,按下主機1號鍵,開始主機與1號從機通信。再按下數(shù)字1,從機數(shù)碼管顯示1。效果如圖5.4所示。按下從機按鍵P1.0引腳控制的按鍵,可控制主機D1燈,實現(xiàn)了從機控制主機LED燈的功能,效果如圖5.5所示。2號從機與主機的通信與1號從機是一樣的,效果圖如圖5.6和圖5.7所示。圖5.4 主機控制1號從機顯示仿真效果圖圖5.5 1號從機控制主機LED燈仿真效果圖圖5.6 主機控制2號從機顯示仿真效果圖圖5.7 2號從機控制主機LED燈仿真效果圖6結論在本次畢業(yè)設計,我通過基于典型單片機AT89C51的設計和
53、應用,對于單片機工作原理、功能有了宏觀的了解,并對單片機匯編程序的應用有了新的、進一步的認識。在本次設計的過程中,我發(fā)現(xiàn)很多的問題,給我的感覺就是下手很難,很不順手,看似很簡單的電路,要動手把它給設計出來,是很難的一件事,主要原因是我們沒有經常動手設計過電路。另外單片機系統(tǒng)的知識似懂非懂,而且很多知識當時弄明白了,現(xiàn)在要用的時候又不記得,造成我用了大量的時間去查閱各種資料和程序命令,因此整個過程時間安排不合理。由于設計的計劃沒有安排好,設計的時間極為倉促,尤其是在硬件調試的過程中出現(xiàn)了很大的問題。另外資料的查找也是一大難題,這就要求我們在以后的學習中,應該注意到這一點,更重要的是我們要學會把從
54、書本中學到的知識和實際的電路聯(lián)系起來,這不論是對我們以后的就業(yè)還是學習,都會起到很大的促進和幫助。本文介紹了一種基于單片機的多機通信的設計方法,論文首先介紹了多機通信的應用及研究現(xiàn)狀、串口通信的概念,主要是串口通信的方式和重要的數(shù)據位說明,接著提出了利用串口通信實現(xiàn)多機通信的可行的設計方案,并從硬件電路設計和軟件程序設計兩個方面詳細介紹了整個設計的原理及設計過程,最后完成了系統(tǒng)的仿真調試,可成功運行,從而驗證了方案的可行性。當然,本設計還有很多不足之處,功能上還不夠完善,在此基礎上還可以進行系統(tǒng)擴展,以使整個設計的功能更加完善。36參考文獻1 謝沅清,解月珍.電子技術基礎.人民郵電出版社,1999.2 何立民. 單片機應用技術選編. 北京航空航天大學出版社,2006.3 譚浩強.C程序設計(第二版).清華大學出版社,2001.1.4 張毅剛,彭喜源.MCS-51單片機應用設計.哈爾濱工業(yè)大學出版社,1997.5 胡漢才.單片機原理及接口技術.清華
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療美容招投標服務質量表
- 2024年羊毛收購合同3篇
- 高鐵項目招投標文件模板
- 工業(yè)自動化系統(tǒng)工程委托施工合同
- 傳媒團副總經理招聘合同范例
- 旅游景區(qū)宣傳舞蹈演員聘請合同
- 辦公大樓建設項目合同樣本
- 2025年度鋁合金門窗產品研發(fā)、生產與安裝一體化合同3篇
- 員工心理健康輔導
- 醫(yī)療急救通道建設打路施工合同
- Web前端框架應用之微商城項目教學介紹課件
- 如何降低住院病人壓瘡的發(fā)生率PDCA-任亮亮
- 教育學 (202220232)學習通超星課后章節(jié)答案期末考試題庫2023年
- 單位紅頭文件模板(各類通知、任命通知公函紅頭文件)
- 精神壓力分析系統(tǒng)心率變異分析系統(tǒng)-健康管理師團隊課件
- 正說藏傳佛教課件
- 物業(yè)承接查驗移交資料清單
- 2022年聯(lián)勤保障部隊招考專業(yè)技能崗位文職人員(332人)筆試備考題庫及答案解析
- 蒸汽壓力流速流量管徑關系
- 水墨中式中國風書香校園PPT模板
- 2023年新教材人教版高中生物選擇性必修3《生物技術與工程》全冊各章節(jié)課時練習題及章末檢測含答案解析
評論
0/150
提交評論