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