2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  LabView與單片機(jī)通信設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  虛擬儀器是現(xiàn)代計(jì)算機(jī)技術(shù)同儀器技術(shù)深層次結(jié)合的全新概念儀器,實(shí)質(zhì)是利用計(jì)算機(jī)顯示器的顯示功能模擬傳統(tǒng)儀器的控制面板,以多種形式表達(dá)輸出測(cè)量結(jié)果,利用計(jì)算機(jī)強(qiáng)大的軟件功能實(shí)現(xiàn)信號(hào)數(shù)據(jù)的運(yùn)算、分析和處理,完成各種測(cè)試功能的一種計(jì)算機(jī)儀器系統(tǒng)。</p&

2、gt;<p>  本文介紹了利用LabView語言來實(shí)現(xiàn)上、下位機(jī)之間通信的方法,并從軟、硬件兩個(gè)方面闡述了設(shè)計(jì)思想。在簡要介紹圖形化虛擬儀器平臺(tái)LabView的基礎(chǔ)上,分析STC12C5A60S2單片機(jī)與LabView之間的串口通信模式,并結(jié)合該設(shè)計(jì)中設(shè)計(jì)的溫度檢測(cè)系統(tǒng)給出串口通信的軟、硬件設(shè)計(jì)。</p><p>  應(yīng)用先進(jìn)的虛擬儀器軟件LabView,大大降低了串口通訊復(fù)雜程度,減小了軟件設(shè)計(jì)

3、的工作量,能夠大大降低投資成本。在實(shí)際應(yīng)用中有巨大的使用價(jià)值。</p><p>  關(guān)鍵詞:單片機(jī),LabView,串口通信</p><p>  Design of MCU Serial Communication</p><p>  Based on LabView</p><p><b>  ABSTRACT</b>

4、</p><p>  Virtual instrument is the modern computer technology combined with the instrumentation of the new concept of deep-level instrument, in real terms is the use of analog computer monitors display cont

5、rol panel, traditional instruments, in various forms to express the output measurements, using computer software features to achieve a strong signal Operation data, analysis and processing, to complete a variety of testi

6、ng capabilities of a computer instrument system. </p><p>  This article describes the use of LabView to implement the language, the next method of communication between the crew and from the software and

7、hardware are two aspects of the design. Based on simple introduction of LabView dummy instruments platform,analyses the mode of serial communication between STC12C5A60S2 MCU and LabView,and gives its software and hardwar

8、e design with an example of a system of Temp-Watch.</p><p>  The application of advanced virtual instrument software LabView, greatly reduces the complexity of serial communication, reduce the software desig

9、n can greatly reduce the investment cost. In practice, there is tremendous value in use.</p><p>  KEY WORDS:MCU, LabView, Serial Communication</p><p><b>  目 錄</b></p><p&g

10、t;<b>  前 言1</b></p><p><b>  第1章 緒論3</b></p><p>  §1.1 研究的背景及意義3</p><p>  §1.1.1 課題研究背景3</p><p>  §1.1.2 課題研究意義3</p>

11、<p>  §1.2 課題發(fā)展?fàn)顩r4</p><p>  §1.3 設(shè)計(jì)任務(wù)5</p><p>  第2章 系統(tǒng)總體設(shè)計(jì)6</p><p>  §2.1 系統(tǒng)方案設(shè)計(jì)6</p><p>  §2.2 系統(tǒng)硬件選擇6</p><p>  第3章 系統(tǒng)硬件設(shè)計(jì)7

12、</p><p>  §3.1 元器件的介紹7</p><p>  §3.1.1 主控制器(STC12C5A60S2)7</p><p>  §3.1.2溫度傳感器介紹(DS18B20)10</p><p>  §3.1.3PL2303HX簡介13</p><p>  &

13、#167;3.2 硬件電路圖設(shè)計(jì)13</p><p>  §3.2.1主板電路13</p><p>  §3.2.2溫度檢測(cè)電路14</p><p>  §3.2.3鍵盤電路15</p><p>  §3.2.4LED燈控制電路15</p><p>  §3.

14、2.5串口通信電路16</p><p>  第4章 系統(tǒng)軟件設(shè)計(jì)17</p><p>  §4.1 單片機(jī)接口程序設(shè)計(jì)17</p><p>  §4.2 LabView串口設(shè)置及 HMI設(shè)計(jì)18</p><p>  §4.2.1 VISA簡介18</p><p>  §

15、4.2.2 串口通訊函數(shù)18</p><p>  §4.2.3 HMI設(shè)計(jì)19</p><p>  §4.3上位機(jī)PC機(jī)LabView串口通信實(shí)現(xiàn)19</p><p>  §4.4單片機(jī)串口通訊協(xié)議22</p><p><b>  結(jié) 論23</b></p><

16、;p><b>  參考文獻(xiàn)24</b></p><p><b>  致 謝25</b></p><p><b>  附 錄26</b></p><p><b>  前 言</b></p><p>  此次畢業(yè)設(shè)計(jì)的主要研究內(nèi)容以單片機(jī)為核心,

17、設(shè)計(jì)溫度檢測(cè)電路,LED燈控制電路,開關(guān)輸入檢測(cè)電路,串行通信接口電路,并編寫相關(guān)控制程序。設(shè)計(jì)基于串行通信的協(xié)議,實(shí)現(xiàn)和LabView的通信功能。</p><p>  LabView是一種用圖標(biāo)代替文本行創(chuàng)建應(yīng)用程序的圖形化編程語言。與Visual C++、Visual Basic等計(jì)算機(jī)編程語言相比,圖形化編程工具LabView有一個(gè)重要的不同點(diǎn):不采用基于文本的語言產(chǎn)生代碼行,而使用圖形化編程語言G編寫程序

18、;產(chǎn)生的程序是框圖的形式,用框圖代替了傳統(tǒng)的程序代碼。因而可在很短的時(shí)間內(nèi)被掌握并應(yīng)用到實(shí)踐中去,特別適合硬件工程師、實(shí)驗(yàn)室技術(shù)人員、生產(chǎn)線工藝技術(shù)人員的學(xué)習(xí)和使用。但其功能并沒有因圖形化編程而受到限制,依然具有通用編程系統(tǒng)的特點(diǎn)。LabView有一個(gè)可完成任何編程任務(wù)的龐大的函數(shù)庫。該函數(shù)庫,包括數(shù)據(jù)采集、GPIB、串口控制、數(shù)據(jù)分析、數(shù)據(jù)顯示及數(shù)據(jù)存儲(chǔ)等。LabView還有一個(gè)特點(diǎn)是模塊化,體現(xiàn)在兩個(gè)方面。首先,LabView中使用

19、的基本節(jié)點(diǎn)和函數(shù)等就是一個(gè)個(gè)小的模塊,可以直接使用;另外,由LabView編寫的程序——即虛擬儀器模塊,除了作為獨(dú)立程序運(yùn)行外,還可作為另一個(gè)虛擬儀器模塊的子模塊(即子VI)供其他模塊程序使用。</p><p>  圖0-1 LabView軟件總體結(jié)構(gòu)框圖</p><p>  LabView沒有常規(guī)儀器的控制面板,而是利用計(jì)算機(jī)強(qiáng)大的圖形環(huán)境,采用可視化的圖形編程語言和平臺(tái),以在計(jì)算機(jī)屏

20、幕上建立圖形化的軟面板來替代常規(guī)的傳統(tǒng)儀器面板。軟面板上具有與實(shí)際儀器相似的旋鈕、開關(guān)、指示燈及其他控制部件。在操作時(shí),用戶通過鼠標(biāo)或鍵盤操作軟面板,來檢驗(yàn)儀器的通信和操作。</p><p>  而利用LabView設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng),可模擬采集各種實(shí)際信號(hào),并對(duì)其疾行分析得出有用信息,然后將測(cè)量結(jié)果和應(yīng)用程序進(jìn)行分享。通過開放的LabView環(huán)境和與之無縫集成的硬件,能夠方便地將設(shè)計(jì)從理論階段、完成系統(tǒng)辨識(shí)、控

21、制設(shè)計(jì)、動(dòng)態(tài)系統(tǒng)仿真以及實(shí)時(shí)系統(tǒng)實(shí)現(xiàn)。利用LabView作仿真界面既可直觀表達(dá)儀表儀器亦達(dá)到美觀效果,與其他仿真軟件相比較,其優(yōu)勢(shì)是很明顯的。</p><p><b>  第1章 緒 論</b></p><p>  §1.1 研究的背景及意義</p><p>  §1.1.1 研究的背景</p><p&g

22、t;  目前以計(jì)算機(jī)為上位機(jī)和以單片機(jī)為下位機(jī)的集散式控制系統(tǒng)被廣泛的應(yīng)用于工業(yè)檢測(cè)和控制系統(tǒng)中。由于PC機(jī)的分析處理能力強(qiáng),處理速度快,而單片機(jī)價(jià)格低廉、體積小、使用靈活方便,所以主機(jī)一般采用PC機(jī),而從機(jī)則采用單片機(jī)。串行通信是一種常用的數(shù)據(jù)傳輸方法,雖然它的傳輸速度慢,但它占用的通信線路少,成本低,在工程的通信方式上仍有重要地位。通過PC機(jī)的RS-232串行接口與單片機(jī)之間串行通信是主要的通信手段。</p><

23、p>  虛擬儀器在那些發(fā)達(dá)國家中設(shè)計(jì)、生產(chǎn)、使用已經(jīng)十分普及。在美國,虛擬儀器系統(tǒng)及其圖形編程語言,已成為各大學(xué)理工科學(xué)生的一門必修課程,而在我國虛擬儀器的設(shè)計(jì)、生產(chǎn)、使用正在起步。國內(nèi)專家預(yù)測(cè),未來的幾年內(nèi),我國將有50%的儀器為虛擬儀器。屆時(shí),國內(nèi)將有大批企業(yè)使用虛擬儀器系統(tǒng)對(duì)生產(chǎn)設(shè)備的運(yùn)行狀況進(jìn)行實(shí)時(shí)監(jiān)測(cè)。隨著微型計(jì)算機(jī)的發(fā)展,各種有關(guān)軟件不斷誕生,虛擬儀器將會(huì)逐步取代傳統(tǒng)的測(cè)試儀器而成為測(cè)試儀器的主流。</p>

24、<p>  §1.1.2 課題研究意義</p><p>  虛擬儀器與傳統(tǒng)儀器技術(shù)不同,虛擬儀器在通用計(jì)算機(jī)平臺(tái)上通過數(shù)據(jù)采集設(shè)備,然后根據(jù)用戶的實(shí)際需求就可以構(gòu)建起不同的系統(tǒng)。所以虛擬儀器實(shí)際上是一個(gè)按照用戶的實(shí)際需求組成的數(shù)據(jù)采集系統(tǒng)。虛擬儀器采用了通用的硬件,各種儀器的差異主要是軟件,它主要使用計(jì)算機(jī)顯示器的顯示功能來顯示模擬傳統(tǒng)儀器的控制面板,這就可以用多種形式輸出檢測(cè)結(jié)果,即實(shí)用

25、又美觀。目前,計(jì)算機(jī)和儀器的密切結(jié)合并且結(jié)合的越來越緊密是儀器發(fā)展的一個(gè)重要方向。虛擬儀器系統(tǒng)可以歸納為圖1-1。</p><p>  圖1-1 虛擬儀器系統(tǒng)</p><p>  具體來說,虛擬儀器有以下特點(diǎn):</p><p>  虛擬儀器利用了計(jì)算機(jī)豐富的軟件資源。這樣就可以使部分儀器的硬件軟件化,增加了系統(tǒng)靈活性,并且節(jié)省了資源。另外,計(jì)算機(jī)還能實(shí)時(shí)、直接地對(duì)

26、測(cè)試數(shù)據(jù)進(jìn)行各種分析與處理。</p><p>  (2) 因?yàn)樘摂M儀器融合了計(jì)算機(jī)的硬件資源,計(jì)算機(jī)來直接處理這些應(yīng)用,這樣就大大的增強(qiáng)了傳統(tǒng)儀器的功能,突破了傳統(tǒng)儀器在數(shù)據(jù)處理、顯示、傳輸、存儲(chǔ)等方面的限制。</p><p>  (3) 虛擬儀器基于計(jì)算機(jī)總線和模塊化儀器的總線,這樣就使儀器的硬件實(shí)現(xiàn)了模塊化,就可以方便地構(gòu)建模塊化的虛擬儀器。</p><p> 

27、 (4) 當(dāng)今世界的計(jì)算機(jī)技術(shù)和相關(guān)的技術(shù)發(fā)展十分迅速,虛擬儀器也是建立在此基礎(chǔ)上的,因此虛擬儀器隨著計(jì)算機(jī)更新的速度快,功能越來與強(qiáng)大。</p><p>  (5) 由于計(jì)算機(jī)的體系是開放式的,所以虛擬儀器的硬件和軟件都具有開放性、可重復(fù)使用的特點(diǎn)。因此,用戶可根據(jù)自己的需要,選用不同廠家的產(chǎn)品,而且硬件還可以互換,這樣就使虛擬儀器系統(tǒng)更為靈活。</p><p>  而我們通過研究這樣的

28、一個(gè)課題,可以更好地了解應(yīng)用虛擬儀器,不斷地改進(jìn),使它融入到生活中的各個(gè)方面。</p><p>  §1.2 課題發(fā)展的狀況</p><p>  在虛擬儀器出現(xiàn)之前,傳統(tǒng)儀器設(shè)備就是普通的模擬測(cè)量設(shè)備。每一種儀器就是一種完全封閉的專用系統(tǒng)。如果想存儲(chǔ)或者進(jìn)一步處理數(shù)據(jù),就需要人工繼續(xù)操作。虛擬儀器從最初的概念提出到現(xiàn)在日趨成熟的技術(shù),這些都離不開計(jì)算機(jī)技術(shù)的飛速。簡單來說,隨著計(jì)

29、算機(jī)技術(shù)的發(fā)展,虛擬儀器的發(fā)展大致經(jīng)歷了以下幾個(gè)階段。</p><p>  第一階段是使用計(jì)算機(jī)增強(qiáng)傳統(tǒng)儀器的功能。由于計(jì)算機(jī)技術(shù)的長足發(fā)展和接口的統(tǒng)一,計(jì)算機(jī)和外界通信成為可能,只要把儀器和計(jì)算機(jī)通過特定的接口相連接,用戶就可以通過計(jì)算機(jī)控制儀器的功能,這使得用計(jì)算機(jī)控制測(cè)控儀器成為一種趨勢(shì)。</p><p>  第二階段是開放式的通用接口和儀器硬件構(gòu)成。隨著時(shí)代的發(fā)展,儀器的硬件出現(xiàn)了

30、技術(shù)進(jìn)步:插入式的計(jì)算機(jī)數(shù)據(jù)采集卡和儀器總線標(biāo)準(zhǔn)的確立。這些新的技術(shù)使儀器的構(gòu)成和接口得以統(tǒng)一和不斷開放,這樣就慢慢地消除了原來由用戶定義和供應(yīng)商定義的儀器功能的區(qū)別。</p><p>  第三階段,虛擬儀器構(gòu)架和結(jié)構(gòu)得到了廣泛認(rèn)同和采用。在硬件和軟件領(lǐng)域產(chǎn)生許多行業(yè)標(biāo)準(zhǔn),有幾個(gè)虛擬儀器平臺(tái)已經(jīng)得到廣泛的應(yīng)用并有趨勢(shì)逐漸成為虛擬儀器行業(yè)標(biāo)準(zhǔn)。然后用戶可以把許多儀器的功能通過軟件編寫的方式封裝起來用虛擬儀器實(shí)現(xiàn)。&

31、lt;/p><p>  第四階段,虛擬儀器編程的行業(yè)標(biāo)準(zhǔn)產(chǎn)生了,接口、總線、傳輸?shù)榷加型ㄟ^統(tǒng)一的標(biāo)準(zhǔn),虛擬儀器的作者只要把大部分精力放在程序的開發(fā)和儀器功能的設(shè)計(jì)上就可以了,就不需要考慮這些問題。</p><p>  在以上階段中,可以看出在虛擬儀器技術(shù)發(fā)展中有兩個(gè)特別突出的標(biāo)志:一個(gè)是各種總線標(biāo)準(zhǔn)的建立和應(yīng)用,它從硬件標(biāo)準(zhǔn)上為虛擬儀器鋪平了道路;另一個(gè)是圖形化編程語言的出現(xiàn),用戶不再面對(duì)枯燥

32、的代碼,這就使用戶把更多的精力放在程序的流程和效率上面。</p><p><b>  §1.3 設(shè)計(jì)任務(wù)</b></p><p>  設(shè)計(jì)單片機(jī)及其相關(guān)電路,編寫控制程序</p><p>  設(shè)計(jì)基于串行通信的協(xié)議,實(shí)現(xiàn)和LabView的通信功能</p><p>  編寫LabView程序,通過串行通信實(shí)現(xiàn)對(duì)單

33、片機(jī)系統(tǒng)的溫度值,輸入開關(guān)狀態(tài)的讀取,實(shí)現(xiàn)對(duì)LED的控制。</p><p>  第2章 系統(tǒng)方案設(shè)計(jì)</p><p>  §2.1系統(tǒng)總體方案設(shè)計(jì)</p><p>  系統(tǒng)由溫度傳感器、LED燈、開關(guān)、串口通信電路、STC12C5A60S2單片機(jī)、上位機(jī)筆記本電腦一臺(tái)。單片機(jī)對(duì)溫度和開關(guān)量進(jìn)行采集,經(jīng)過處理,通過串口通信傳輸?shù)缴衔粰C(jī)中,由上位機(jī)LabVie

34、w軟件進(jìn)行編程將信息處理并呈現(xiàn)在用戶面前,既能實(shí)現(xiàn)人機(jī)對(duì)話,也能實(shí)現(xiàn)遠(yuǎn)程控制下位機(jī)功能。</p><p>  §2.2 系統(tǒng)硬件的選擇</p><p>  傳感器采用傳統(tǒng)的DS18B20傳感器,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。開關(guān)量輸入采用開關(guān)量輸入,選用獨(dú)立按鍵開關(guān)??刂破鬟x用STC12C5A60S2,該單片機(jī)具有8路10位

35、AD,雙串口,該單片機(jī)有1024字節(jié)的擴(kuò)展RAM,同時(shí),該單片機(jī)采用了不分頻執(zhí)行機(jī)器周期,同晶振頻率下,運(yùn)行速度是普通51單片機(jī)的12倍,可不用進(jìn)行初始化設(shè)置,就可進(jìn)行在常用波特率下的串口通信。</p><p>  第3章 系統(tǒng)硬件設(shè)計(jì)</p><p>  §3.1 元器件的介紹</p><p>  §3.1.1主控制器(STC12C5A60S2

36、)</p><p>  STC12C5A60S2單片機(jī)中包含中央處理器(CPU)、程序存儲(chǔ)器(Flash)、數(shù)據(jù)存儲(chǔ)器(SRAM)、定時(shí)/計(jì)數(shù)器、UART串口、串口2、I/O接口、告訴A/D轉(zhuǎn)換、SPI接口、PCA、看門狗及片內(nèi)R/C振蕩器和外部晶體振蕩電路等模塊。STC12C5A6060S2系列單片機(jī)幾乎包含了數(shù)據(jù)采集和控制中所需的所有單元模塊,可稱得上一個(gè)偏上系統(tǒng)。下圖為該系列單片機(jī)引腳圖:</p>

37、;<p>  圖3-1 STC12C5A60S2單片機(jī)引腳圖</p><p>  STC12C5A60S2是STC生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速、低功耗、超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換,針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合。</p><p>  1、

38、增強(qiáng)型8051CPU,1T(1024G),單時(shí)鐘/機(jī)器周期</p><p>  2、工作電壓 5.5-3.5V</p><p>  3、1280字節(jié)RAM</p><p>  4、通用I/O口,復(fù)位后為:準(zhǔn)雙向口/弱上拉</p><p>  可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,強(qiáng)推挽/強(qiáng)上拉,僅為輸入/高阻,開漏</p><

39、;p>  每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20mA,但整個(gè)芯片最大不要超過120mA</p><p>  5、有EEPROM功能</p><p><b>  6、看門狗</b></p><p>  7、內(nèi)部集成MAX810專用復(fù)位電路</p><p>  8、外部掉電檢測(cè)電路</p><p> 

40、 9、時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部R/C振蕩器</p><p>  常溫下內(nèi)部R/C振蕩器頻率為:5.0V單片機(jī)為:11~17MHz</p><p>  3.3V 單片機(jī)為:8~12MHz</p><p>  10、4個(gè)16位定時(shí)器</p><p>  兩個(gè)與傳統(tǒng)8051兼容的定時(shí)器/計(jì)數(shù)器,16位定時(shí)器T0和T1</p>

41、<p>  11、3個(gè)時(shí)鐘輸出口,可由T0的溢出在P3.4/T0輸出時(shí)鐘,可由T1的溢出在P3.5/T1輸出時(shí)鐘,獨(dú)立波特率發(fā)生器可以在P1.0口輸出時(shí)鐘</p><p>  12、外部中斷I/O口7路,傳統(tǒng)的下降沿中斷或電平觸發(fā)中斷,并新增支持上升沿中斷的PCA模塊,Power Down模式可由外部中斷喚醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,C

42、CP0/P1.3,CCP0/P1.3</p><p><b>  13、PWM2路</b></p><p>  14、A/D轉(zhuǎn)換,10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S</p><p>  15、通用全雙工異步串行口(UART)</p><p>  16、雙串口,RxD2/P1.2,TxD2/P1.3<

43、/p><p>  17、工作范圍:-40~85</p><p>  18、封裝:LQFP-48,LQFP-44,PDIP-40,PLCC</p><p><b>  管腳說明</b></p><p>  P0.0~P0.7 P0:P0口既可以作為輸入/輸出口,也可以作為地址/數(shù)據(jù)復(fù)用總線使用。當(dāng)P0口作為輸入/輸出口時(shí),P

44、0是一個(gè)8位準(zhǔn)雙向口,內(nèi)部有弱上拉電阻,無需外接上拉電阻。當(dāng)P0作為地址/數(shù)據(jù)復(fù)用總線使用時(shí),是低8位地址線A0~A7,數(shù)據(jù)線D0~D7</p><p>  P1.0/ADC0/CLKOUT2</p><p>  標(biāo)準(zhǔn)IO口、ADC輸入通道0、獨(dú)立波特率發(fā)生器的時(shí)鐘輸出</p><p><b>  P1.1/ADC1</b></p>

45、<p>  P1.2/ADC2/ECI/RxD2</p><p>  標(biāo)準(zhǔn)IO口、ADC輸入通道2、PCA計(jì)數(shù)器的外部脈沖輸入腳,第二串口數(shù)據(jù)接收端</p><p>  P1.3/ADC3/CCP0/TxD2</p><p>  外部信號(hào)捕獲,高速脈沖輸出及脈寬調(diào)制輸出、第二串口數(shù)據(jù)發(fā)送端</p><p>  P1.4/ADC4

46、/CCP1/SS非</p><p>  SPI同步串行接口的從機(jī)選擇信號(hào)</p><p>  P1.5/ADC5/MOSI</p><p>  SPI同步串行接口的主出從入(主器件的輸入和從器件的輸出)</p><p>  P1.6/ADC7/SCLK</p><p>  SPI同步串行接口的主入從出</p>

47、;<p><b>  P2.0~P2.7</b></p><p>  P2口內(nèi)部有上拉電阻,既可作為輸入輸出口(8位準(zhǔn)雙向口),也可作為高8位地址總線使用。</p><p><b>  P3.0/RxD</b></p><p>  標(biāo)準(zhǔn)IO口、串口1數(shù)據(jù)接收端</p><p>  P3

48、.1/INT0非</p><p>  外部中斷0,下降沿中斷或低電平中斷</p><p><b>  P3.3/INT1</b></p><p>  P3.4/T0/INT非/CLKOUT0</p><p>  定時(shí)器計(jì)數(shù)器0外部輸入、定時(shí)器0下降沿中斷、定時(shí)計(jì)數(shù)器0的時(shí)鐘輸出</p><p>&

49、lt;b>  A/D轉(zhuǎn)換器的結(jié)構(gòu)</b></p><p>  STC12C5A60AD/S2系列帶A/D轉(zhuǎn)換的單片機(jī)的A/D轉(zhuǎn)換口在P1口,有8路10位高速A/D轉(zhuǎn)換器,速度可達(dá)到250KHz(25萬次/秒)。8路電壓輸入型A/D,可做溫度檢測(cè)、電池電壓檢測(cè)、按鍵掃描、頻譜檢測(cè)等。上電復(fù)位后P1口為弱上拉型IO口,用戶可以通過軟件設(shè)置將8路中的任何一路設(shè)置為A/D轉(zhuǎn)換,不須作為A/D使用的口可繼

50、續(xù)作為IO口使用。</p><p>  單片機(jī)ADC由多路開關(guān)、比較器、逐次比較寄存器、10位DAC、轉(zhuǎn)換結(jié)果寄存器以及ADC_CONTER構(gòu)成。</p><p>  該單片機(jī)的ADC是逐次比較型ADC。主次比較型ADC由一個(gè)比較器和D/A轉(zhuǎn)換器構(gòu)成,通過逐次比較邏輯,從最高位(MSB)開始,順序地對(duì)每一輸入電壓與內(nèi)置D/A轉(zhuǎn)換器輸出進(jìn)行比較,經(jīng)過多次比較,使轉(zhuǎn)換所得的數(shù)字量逐次逼近輸入模

51、擬量對(duì)應(yīng)值。逐次比較型A/D轉(zhuǎn)換器具有速度高,功耗低等優(yōu)點(diǎn)。</p><p>  需作為AD使用的口先將P1ASF特殊功能寄存器中的相應(yīng)位置為‘1’,將相應(yīng)的口設(shè)置為模擬功能。</p><p>  §3.1.2 溫度傳感器(DS18B20)</p><p>  DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的

52、熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:</p><p>  ●獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;</p><p>  ●多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;</p><p><b>  ●無須外部器件;</b>&

53、lt;/p><p>  ●可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;</p><p><b>  ●零待機(jī)功耗;</b></p><p>  ●溫度以9或12位數(shù)字;</p><p>  ●用戶可定義報(bào)警設(shè)置;</p><p>  ●報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;&

54、lt;/p><p>  ●負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作; </p><p>  DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖4所示。頭2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置寄存器,它的

55、內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3-2所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。</p><p>  圖3-2 DS18B20字節(jié)定義</p><p>  由表1

56、可見,DS18B20溫度轉(zhuǎn)換的時(shí)間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。</p><p>  高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。</p><p>  當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以

57、16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。</p><p>  當(dāng)符號(hào)位S=0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S=1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。</p><p>  表3-1 DS18B2

58、0溫度轉(zhuǎn)換時(shí)間表</p><p>  DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若T>TH或T<TL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。</p><p>  在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(CRC)。主機(jī)ROM的前56位來計(jì)算CRC值,并和存

59、入DS18B20的CRC值作比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。</p><p>  DS18B20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)

60、數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。</p><p>  減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0

61、時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測(cè)溫度值。</p><p>  另外,由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。&l

62、t;/p><p>  §3.1.3 PL2303HX簡介</p><p>  PL2303是Prolific公司生產(chǎn)的一種高度集成的RS232-USB接口轉(zhuǎn)換器,可提供一個(gè)RS232全雙工異步串行通信裝置與USB功能接口便利聯(lián)接的解決方案。</p><p>  該器件內(nèi)置USB功能控制器、USB收發(fā)器、振蕩器和帶有全部調(diào)制解調(diào)器控制信號(hào)的UART,只需外接幾只

63、電容就可實(shí)現(xiàn)USB信號(hào)與RS232信號(hào)的轉(zhuǎn)換,能夠方便嵌入到手持設(shè)備。</p><p>  該期間作為USB/RS232雙向轉(zhuǎn)換器,一方面從主機(jī)接受USB數(shù)據(jù)并將其轉(zhuǎn)換為RS232信息流格式發(fā)送給外設(shè);另一方面,從RS232外設(shè)接收數(shù)據(jù)轉(zhuǎn)換為USB數(shù)據(jù)格式傳送回主機(jī)。這些工作全部由器件自動(dòng)完成,開發(fā)者無需考慮固件設(shè)計(jì)。</p><p>  通過利用USB塊傳輸模式,利用龐大的數(shù)據(jù)緩沖器和自

64、動(dòng)流量控制,PL2303HX能夠?qū)崿F(xiàn)更高的吞吐量比傳統(tǒng)的UART(通用異步收發(fā)器)端口,高達(dá)115200bps的波特率可用于更高的性能使用。</p><p>  §3.2 硬件電路圖設(shè)計(jì)</p><p>  §3.2.1 主板電路</p><p>  系統(tǒng)整體硬件電路包括,溫度檢測(cè)電路,LED燈控制電路,開關(guān)輸入檢測(cè)電路,串行通訊接口電路,單片機(jī)

65、主板電路等,如圖3-3所示。</p><p>  圖3-3 系統(tǒng)主板電路</p><p>  §3.2.2 溫度檢測(cè)電路</p><p>  溫度檢測(cè)電路包括滑動(dòng)變阻器2個(gè),以及A/D轉(zhuǎn)換。而單片機(jī)STC12C5A60S2可以在其內(nèi)部進(jìn)行A/D轉(zhuǎn)換,如圖3-4所連P1口為A/D轉(zhuǎn)換接口。前面介紹了溫度傳感器,為了方便期間,可將溫度傳感器傳來的數(shù)據(jù)簡化為電壓

66、值,經(jīng)過A/D轉(zhuǎn)換傳入上位機(jī)中。</p><p>  圖3-4 溫度檢測(cè)電路</p><p>  §3.2.3 鍵盤電路</p><p>  鍵盤電路設(shè)計(jì)采用8個(gè)獨(dú)立按鍵來對(duì)應(yīng)8個(gè)LED燈,S1~S8對(duì)應(yīng)L1~L8,電路原理圖如圖7所示。按鍵連在單片機(jī)上的P0.0~P0.7引腳。</p><p><b>  圖3-5 鍵盤

67、電路</b></p><p>  §3.2.4 LED燈控制電路</p><p>  LED燈一共八個(gè),分別是白色、黃色、綠色和紅色各兩個(gè)。它們連在P2引腳上。用來對(duì)實(shí)現(xiàn)上位機(jī)與下位機(jī)通信做一個(gè)直觀的控制顯示。</p><p>  圖3-6 LED燈控制電路</p><p>  §3.2.5 串口通信電路<

68、;/p><p>  串口通信電路采用的是USB接口與上位機(jī)通信。USB是英文Universal Serial BUS的縮寫,中文含義是“通用串行總線”。它不是一種新的總線標(biāo)準(zhǔn),而是應(yīng)用在PC領(lǐng)域的接口技術(shù)。</p><p>  USB是在1994年底由英特爾、康柏、IBM、Microsoft等多家公司聯(lián)合提出的。USB是一個(gè)外部總線標(biāo)準(zhǔn),用于規(guī)范電腦與外部設(shè)備的連接和通訊。USB接口支持設(shè)備的

69、即插即用和熱插拔功能。除此之外,電路中用到了上文提到的PL2303轉(zhuǎn)換器,引腳TXD接單片機(jī)RXD引腳,而PL2303的RXD引腳接單片機(jī)TXD引腳。</p><p>  圖3-7 串口通信電路</p><p>  第4章 系統(tǒng)軟件設(shè)計(jì)</p><p>  §4.1 單片機(jī)接口程序設(shè)計(jì)</p><p>  單片機(jī)接口程序采用C51語

70、言編寫,這是專門為51系列單片機(jī)設(shè)計(jì)的高效率C語言編譯器,符合ANSI標(biāo)準(zhǔn),生成的程序代碼運(yùn)行速度極高,所需要的存儲(chǔ)器空間極小,匯編語言更簡單易用。接口程序編寫時(shí),首先進(jìn)行串口的初始化,即在SCON寄存器中賦值#050H,將波特率設(shè)置為9600,用定時(shí)器1產(chǎn)生波特率,串口工作在方式2。</p><p>  下面為串口通信程序流程圖。</p><p>  圖4-1 下位機(jī)串口通信流程圖<

71、;/p><p>  只有上位機(jī)能夠主動(dòng)發(fā)命令。也就是說在下位機(jī)接收到上位機(jī)的命令后,才進(jìn)行發(fā)數(shù)據(jù)或進(jìn)行相關(guān)的動(dòng)作,它不能主動(dòng)向上位機(jī)發(fā)送數(shù)據(jù)。單片機(jī)在接收到上位機(jī)的數(shù)字后,返回這個(gè)數(shù)字,并由PC顯示出來。數(shù)字的起始符是數(shù)字00,結(jié)束符是數(shù)字FF。</p><p>  §4.2LabView串口設(shè)置及HMI設(shè)計(jì)</p><p>  §4.2.1 VIS

72、A簡介</p><p>  虛擬儀器軟件體系結(jié)構(gòu)(VISA,Virtual Instrument Software Architecture),采用通用的I/O口標(biāo)準(zhǔn),具有與儀器硬件接口和具體計(jì)算機(jī)無關(guān)的特性,即VISA是面向器件功能,而不是面向接口總線的,在控制VXI,GPIB,RS232等儀器時(shí),不必考慮接口總線類型。</p><p>  §4.2.2 串口通訊函數(shù)</

73、p><p>  本章節(jié)用到的主要串口通訊調(diào)用函數(shù)為:Functions InstrumentI/O VISA Advanced Interface Specific Serial。</p><p>  該函數(shù)主要用于串口的初始化,其主要參數(shù)的意義如下:</p><p>  VISA resource name:VISA資源名稱,在這里指串口號(hào);</p>

74、<p>  Baund rate:波特率,默認(rèn)為9600;</p><p>  Data bits:一幀信息中的位數(shù),LabVIEW中允許5~8位數(shù)據(jù),默認(rèn)值為8位;</p><p>  Stop bits:一幀信息中的停止位的位數(shù),可為1位、1位半或2位;</p><p>  Parity:奇偶校驗(yàn)設(shè)置??芍^無校驗(yàn)、奇校驗(yàn)或偶校驗(yàn);</p>

75、<p>  Flow control:該參數(shù)數(shù)據(jù)類型為簇,用于串口通訊中的握手方式。</p><p>  VISA Write模塊把Write buffer中的字符串寫入指定的設(shè)備.返回實(shí)際傳送的字節(jié)數(shù)。VISA Read根據(jù)指定讀取的字節(jié)數(shù)讀入設(shè)備中的數(shù)據(jù),返回實(shí)際傳送的字節(jié)數(shù)。VISA CIose關(guān)閉與指定設(shè)備的通訊過程.釋放系統(tǒng)資源。</p><p>  本文在實(shí)現(xiàn)Lab

76、VIEW與STC12C5A60S2單片機(jī)串口通信的串口通訊設(shè)置上.采用波特率為9600,無奇偶校驗(yàn).8位數(shù)據(jù)位.1位停止位.禁止軟、硬件握手。</p><p>  §4.2.3 HMI設(shè)計(jì)</p><p>  LabView中的前面板就是圖形化用戶界面,用于設(shè)置數(shù)值輸入和輸出量觀察。以STC12C5A60S2單片機(jī)實(shí)現(xiàn)溫度檢測(cè)為例.設(shè)計(jì)了 LabView串口設(shè)置及HMI界面,如圖

77、10所示。通過設(shè)置與STC12C5A60S2單片機(jī)串口通信匹配的波特率、串口號(hào)、數(shù)據(jù)位和停止位,實(shí)現(xiàn)labView與STC12C5A60S2單片機(jī)串口通信,并用數(shù)值顯示控件和溫度檢測(cè)單片機(jī)測(cè)得的數(shù)值,實(shí)現(xiàn)了LED燈的控制,開關(guān)量的控制。如圖,圖中的開關(guān)量一對(duì)一控制單片機(jī)的LED燈電路,單片機(jī)上的開關(guān)量控制HMI界面上的燈,達(dá)到通訊目的。</p><p>  圖4-2 LabView HMI設(shè)計(jì)</p>

78、<p>  §4.3上位機(jī)PC機(jī)LabView串口通訊的實(shí)現(xiàn)</p><p>  在程序的開始階段首先需要調(diào)用VISA Configure Serial Port完成串口參數(shù)的設(shè)置,包括波特率、數(shù)據(jù)位、停止位、校驗(yàn)位等等。本次設(shè)計(jì)統(tǒng)一設(shè)計(jì)為波特率為9600、數(shù)據(jù)位為8、校驗(yàn)位無,為0、停止位為1。</p><p>  圖4-3 串口初始化</p>&l

79、t;p>  圖4-4 主程序框圖</p><p>  當(dāng)系統(tǒng)啟動(dòng)時(shí),通過VISA Write向單片機(jī)發(fā)送“發(fā)送請(qǐng)求命令”,由于LabView的串行通信子V1只允許對(duì)字符串類型的數(shù)值進(jìn)行讀寫,因此在數(shù)據(jù)處理時(shí),必須進(jìn)行字符串與數(shù)字的轉(zhuǎn)換,可以采用字符串到數(shù)字的轉(zhuǎn)換函數(shù)來實(shí)現(xiàn),本次設(shè)計(jì)的發(fā)送數(shù)據(jù)格式設(shè)定成16進(jìn)制,而在LabView中字符串直接有十六進(jìn)制的顯示方式,所里在這里就不需要添加字符轉(zhuǎn)換函數(shù)。</

80、p><p>  在接到計(jì)算機(jī)發(fā)送來的請(qǐng)求信號(hào)后,單片機(jī)則回應(yīng)應(yīng)答信號(hào),計(jì)算機(jī)通過VISA Read.vi節(jié)點(diǎn)讀取單片機(jī)的應(yīng)答信號(hào),并且判斷是否收到來控制順序結(jié)構(gòu)中的While循環(huán)。當(dāng)發(fā)送和接收的數(shù)據(jù)相等時(shí),通信狀態(tài)區(qū)條件結(jié)構(gòu)選擇真,顯示通信正常,當(dāng)發(fā)送和接收的數(shù)據(jù)不相等時(shí),通信狀態(tài)區(qū)條件結(jié)構(gòu)選擇假,顯示通信異常。</p><p>  程序設(shè)計(jì)的步驟如下:</p><p>

81、;<b>  1.建立新VI程序</b></p><p>  啟動(dòng)NI LabView程序,選擇新建選項(xiàng)中的VI項(xiàng),建立一個(gè)新VI程序。</p><p><b>  2.程序前面板設(shè)計(jì)</b></p><p>  在前面板設(shè)計(jì)區(qū)空白處單擊鼠標(biāo)右鍵,顯示控件選板。</p><p> ?。?)添加一個(gè)字

82、符串輸入控件:控件→新式→字符串與路徑→字符串輸入控件,將標(biāo)簽改為“發(fā)送數(shù)據(jù)(十六進(jìn)制)”,在該控件上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“十六進(jìn)制顯示”。</p><p> ?。?)添加一個(gè)字符串顯示控件:控件→新式→字符串與路徑→字符串顯示控件,將標(biāo)簽改為“返回?cái)?shù)據(jù)(十六進(jìn)制)”,在該控件上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“十六進(jìn)制顯示”。</p><p> ?。?)添加一個(gè)字符顯

83、示控件:控件→新式→字符串與路徑→字符串顯示控件,將標(biāo)簽改為“通信狀態(tài)”。</p><p> ?。?)添加一個(gè)串口資源檢測(cè)控件:控件→新式→I/O→VISA資源名稱;單擊控件箭頭,選擇串口號(hào),如ASRL1:或COM1。</p><p> ?。?)添加一個(gè)確定按鈕控件:控件→新式→布爾→確定按鈕,將標(biāo)題改為“發(fā)送”。</p><p> ?。?)添加一個(gè)停止按鈕控件:控

84、件→新式→布爾→停止按鈕,將標(biāo)題改為“關(guān)閉”。</p><p>  圖4-5 下位機(jī)向單片機(jī)輸送數(shù)據(jù)框圖</p><p>  上位機(jī)將處理后的數(shù)據(jù)輸送到下位機(jī)中,從而實(shí)現(xiàn)上、下位機(jī)的通訊整個(gè)過程。</p><p>  圖4-6 停止程序框圖</p><p>  此處的停止為2種情況下都停止,正常按鍵按下停止鍵整個(gè)虛擬器會(huì)停止,第二種情況為:若

85、出現(xiàn)錯(cuò)誤數(shù)據(jù)情況則會(huì)停止運(yùn)作,圖中設(shè)有一個(gè)“或”門。</p><p>  §4.4 單片機(jī)串口通訊協(xié)議</p><p>  單片機(jī)通過串口每次向上位機(jī)傳送3個(gè)有效數(shù)據(jù):AD1、AD2、8位按鍵。為保證接收時(shí)上位機(jī)能正確識(shí)別其順序,這里在每次發(fā)送數(shù)據(jù)前加發(fā)一個(gè)0x00作為起始位。然后把AD1、AD2的值均加1。再加上按鍵值一次發(fā)送4個(gè)字節(jié)的數(shù)據(jù)。上位機(jī)接收時(shí)檢測(cè)到0時(shí),即將其后的第

86、1~2位減1,然后和其后第3位一并作為AD1、AD2、8位按鍵的值。</p><p>  由此可見,上位機(jī)顯示的AD值最高為參考值的254/255,另外由于按鍵按下為0,這個(gè)協(xié)議將會(huì)在8個(gè)按鍵全按下的時(shí)候出錯(cuò)。但這種情況不多見。如果一定要保證協(xié)議的可靠性,可以屏蔽一個(gè)按鍵,只使用7個(gè)按鍵。</p><p><b>  結(jié) 論</b></p><p

87、>  在虛擬儀器領(lǐng)域,當(dāng)前最引人注目的開發(fā)語言是NI公司的LabView。LabView作為一個(gè)專為測(cè)試測(cè)量設(shè)計(jì)的編程語言,使用了工程師們最熟悉的圖形化的編程方式,能夠幫助用戶高效和快速的開發(fā)測(cè)試應(yīng)用。串口是常用的計(jì)算機(jī)與外部串行設(shè)備之間的數(shù)據(jù)傳輸通道,通過USB串口總線與PC計(jì)算機(jī)組成虛擬儀器系統(tǒng),是目前虛擬儀器的構(gòu)成方式之一,它具有接口簡單,使用方便的特點(diǎn)。本次設(shè)計(jì)為PC與單片機(jī)串口通信,課題完成的工作總結(jié)如下:</p&

88、gt;<p>  進(jìn)行了系統(tǒng)的硬件和軟件方面的設(shè)計(jì),設(shè)計(jì)的主要內(nèi)容包括USB串口的連接,STC12C5A60S2單片機(jī)連接和數(shù)據(jù)傳輸,Labview串口程序設(shè)計(jì),C語言程序的設(shè)計(jì)等等。</p><p>  采用USB串口數(shù)據(jù)線連接PC機(jī)與單片機(jī),用LabVIEW8.0作為開發(fā)環(huán)境,實(shí)現(xiàn)了上位機(jī)PC機(jī)與下位機(jī)單片機(jī)之間的串口通信。連接PC和單片機(jī)構(gòu)成單片機(jī)應(yīng)用系統(tǒng),PC發(fā)送數(shù)據(jù)給單片機(jī),并將數(shù)據(jù)返還回

89、來,PC接收并驗(yàn)證返還的數(shù)據(jù)。</p><p>  實(shí)踐證明應(yīng)用先進(jìn)的虛擬儀器軟件LabView,大大降低了串口通訊復(fù)雜程度,減小了軟件設(shè)計(jì)的工作量,大大降低了投資成本。本次設(shè)計(jì)實(shí)現(xiàn)了LabView下的串口通信,達(dá)到了預(yù)期的目標(biāo)。</p><p>  然而,本次設(shè)計(jì)還有一定的不足之處。用LabView軟件強(qiáng)大的編輯功能,配合下位機(jī)智能儀器,能夠?qū)崿F(xiàn)數(shù)據(jù)的傳輸功能。在這次設(shè)計(jì)中,只是初步的研

90、究了PC機(jī)和單片機(jī)之間的通信方法,實(shí)現(xiàn)簡單的數(shù)據(jù)發(fā)送和接收。對(duì)于復(fù)雜數(shù)據(jù)的傳輸和更強(qiáng)大功能的開發(fā)還有待發(fā)掘。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 胡漢才,單片機(jī)原理及其接口技術(shù)[M].清華大學(xué)出版社,1996.</p><p>  [2] JEFFREYTRAVIS.LabVIEW大學(xué)實(shí)用教程[M].電子工

91、業(yè)出版社,2008.</p><p>  [3] 趙亮,侯國銳.單片機(jī)C語言編程與實(shí)例[M].人民郵電出版社,2003.</p><p>  [4] 張毅剛.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2003.</p><p>  [5] 何立民.單片機(jī)與嵌入式系統(tǒng)應(yīng)用.北京航空航天出版社,2003.</p><p>  [6] 張桐,陳

92、國順,王正林.精通LabVIEW 程序設(shè)計(jì)[M].電子工業(yè)出版社,2008.</p><p>  [7]袁新艷.計(jì)算機(jī)外設(shè)與接口技術(shù)[M].高等教育出版社,2009.</p><p>  [8]張迎新.《單片微型計(jì)算機(jī)原理》、《及接口技術(shù)》.北京:國防工業(yè)出版社</p><p>  [9]張靖武,周靈彬.《單片機(jī)系統(tǒng)的PROTEUS設(shè)計(jì)與仿真》[M]. 北京:電子工

93、業(yè)出版社,2007</p><p>  [10]孫踐知.PC硬件技術(shù)基礎(chǔ)教程[M].北京:科技出版社,2003.</p><p>  [11]何立民,單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京: 北京航空航天大學(xué)出版社,1993.</p><p>  [12]戴勝華,等.單片機(jī)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2005.</p><p>  [13

94、]周向紅.《51系列單片機(jī)應(yīng)用與實(shí)踐教程》.北京:北京航天航空大學(xué)出版社</p><p>  [14]郭天祥.《新概念51單片機(jī)C語言教程》.北京:電子工業(yè)出版社</p><p>  [15]馬淑華,王鳳文,張美金.《單片機(jī)原理與接口技術(shù)》[M].北京:北京郵電大學(xué)出版社2007.</p><p><b>  致 謝</b></p>

95、;<p>  時(shí)間如梭,轉(zhuǎn)眼畢業(yè)在即?;叵朐诖髮W(xué)求學(xué)的四年,心中充滿無限感激和留戀之情。感謝母校為我們提供良好學(xué)習(xí)環(huán)境,使我們能夠在此專心學(xué)習(xí),陶冶情操。在此論文撰寫過程中,要特別感謝我的導(dǎo)師xx老師的指導(dǎo)與督促,同時(shí)感謝他的諒解與包容。在進(jìn)行論文撰寫的時(shí)候,我的指導(dǎo)老師給予了很大的幫助,介紹了很多很有參考價(jià)值的資料,他淵博的專業(yè)知識(shí),嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng),育人求實(shí)的工作態(tài)度都體現(xiàn)在這次設(shè)計(jì)的指導(dǎo)中;另外系上其他老師和同學(xué)都給了

96、我大力支持和幫助,對(duì)這些老師和同學(xué)表示誠摯的謝意;求學(xué)歷程是艱苦的,但又是快樂的。感謝我的班主任以及各位任課老師,謝謝您們?cè)谶@四年中為我們?nèi)嗨龅囊磺?,您們不求回?bào),無私奉獻(xiàn)的精神很讓我感動(dòng),再次向您們表示由衷的感謝。在這四年的學(xué)期中結(jié)識(shí)的各位生活和學(xué)習(xí)上的摯友讓我得到了人生最大的一筆財(cái)富。在此,也對(duì)他們表示衷心感謝。</p><p>  通過這次畢業(yè)設(shè)計(jì)不僅提高了我獨(dú)立思考問題解決問題的能力而且培養(yǎng)了認(rèn)真嚴(yán)謹(jǐn)

97、,一絲不茍的學(xué)習(xí)態(tài)度。由于經(jīng)驗(yàn)匱乏,能力有限,設(shè)計(jì)中難免有許多考慮不周全的地方,希望各位老師多加指教。</p><p><b>  附 錄</b></p><p><b>  單片機(jī)硬件電路總圖</b></p><p>  圖附-1 電路原理圖</p><p><b>  程序代碼<

98、;/b></p><p>  #include <REG52.H></p><p>  #include <INTRINS.H></p><p>  #include <STRING.H></p><p>  #define NOP5 _nop_();_nop_();_nop_();_nop_();

99、_nop_();</p><p>  unsigned char adc_res[2],key;</p><p>  unsigned char chl=0;</p><p>  unsigned char Rcv = 0; </p><p>  unsigned char temp1,temp2;</p><p>&

100、lt;b>  /*</b></p><p>  void waitnms(char x)</p><p><b>  {</b></p><p><b>  int i,k;</b></p><p>  for(k=0;k<x;k++)</p><p&g

101、t;  for(i=0;i<12000;i++);</p><p><b>  }</b></p><p>  void waitns(char x)</p><p><b>  {</b></p><p><b>  int i;</b></p><

102、;p>  for(i=0;i<x;i++)</p><p>  waitnms(1000); </p><p><b>  }</b></p><p><b>  */</b></p><p>  void Uart_SendChar(unsigned char dat)</p&

103、gt;<p><b>  {</b></p><p>  SBUF = dat; //待發(fā)送的數(shù)據(jù)寫入緩沖區(qū)</p><p>  while(!TI); //等待發(fā)送完成</p><p>  TI = 0; //清零發(fā)送標(biāo)志位</p><p><b>  }</b></p>

104、<p>  void ADCX_start(char x)</p><p><b>  {</b></p><p><b>  switch(x)</b></p><p><b>  {</b></p><p>  case 0:ADC_CONTR=0x88;NO

105、P5;break;</p><p>  case 1:ADC_CONTR=0x89;NOP5;break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void send(void)</p><p><b> 

106、 {</b></p><p>  unsigned char i;</p><p>  Uart_SendChar(0x00);</p><p>  for(i=0;i<2;i++)</p><p>  if(adc_res[i]==0xff)</p><p>  Uart_SendChar(0xff

107、);</p><p><b>  else</b></p><p>  Uart_SendChar(adc_res[i]+1);</p><p>  Uart_SendChar(key);</p><p><b>  }</b></p><p>  void main()&l

108、t;/p><p><b>  {</b></p><p>  P1ASF=0xff; //P1口8路全部作為AD用</p><p>  AUXR1&=0xfb; //11111011</p><p>  AUXR=0x00; //定時(shí)器、串口全部用傳統(tǒng)8051的速度</p><

109、p>  EADC=1; //采取中斷方式采樣</p><p>  PADC=1; </p><p>  SCON = 0x50; //串口工作方式為1,串行允許接收</p><p><b>  //SM0=0;</b></p><p><b>  //SM1=1;<

110、/b></p><p><b>  //REN=1;</b></p><p>  TMOD = 0x20; //定時(shí)器1 工作在方式2</p><p>  //PCON = 0x80; //SMOD = 1; 波特率加倍</p><p>  TH1 = 0xfd; //波特率 9600bps fosc="

111、11".0592MHz</p><p>  TL1 = 0xfd;</p><p>  ES = 1; //開串口中斷</p><p>  TR1 = 1; //允許定時(shí)器1工作</p><p>  EA = 1; //開總中斷</p><p>  ADCX_start(chl); </p>

112、<p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(key!=P0)</p><p><b>  key=P0;</b></p><p><b>  send();</b></p&

113、gt;<p>  //waitnms(100);</p><p><b>  P2=Rcv;</b></p><p><b>  } </b></p><p><b>  }</b></p><p>  void INT_UartRcv(void) inter

114、rupt 4</p><p><b>  {</b></p><p>  //if(RI) //查詢接收標(biāo)志位(有數(shù)據(jù)發(fā)送過來時(shí)置為1)</p><p><b>  {</b></p><p>  RI = 0; //接收標(biāo)志位清零</p><p>  Rcv = SB

115、UF; //存儲(chǔ)緩沖區(qū)的數(shù)據(jù)</p><p>  //P2 = Rcv;</p><p>  //Uart_SendChar(Rcv); </p><p><b>  }</b></p><p><b>  }</b></p><p>  void int_ADC() i

116、nterrupt 5 //這個(gè)就是采樣完后的程序,要做的只是把數(shù)值存到你要的變量里,然后要重新啟動(dòng)AD</p><p><b>  {</b></p><p>  adc_res[chl]=ADC_RES;</p><p><b>  chl=!chl;</b></p><p>  ADCX

117、_start(chl); //重新啟動(dòng)AD</p><p><b>  }</b></p><p><b>  外文資料翻譯</b></p><p>  虛擬儀器(LabVIEW)</p><p>  虛擬儀器是一種高效用于構(gòu)建數(shù)據(jù)采集與監(jiān)測(cè)系統(tǒng)圖形化編程語言。使用虛擬儀器,您快速創(chuàng)建

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論