基于AVR單片機(jī)與上位機(jī)的通信系統(tǒng)設(shè)計(jì)精要_第1頁(yè)
基于AVR單片機(jī)與上位機(jī)的通信系統(tǒng)設(shè)計(jì)精要_第2頁(yè)
基于AVR單片機(jī)與上位機(jī)的通信系統(tǒng)設(shè)計(jì)精要_第3頁(yè)
基于AVR單片機(jī)與上位機(jī)的通信系統(tǒng)設(shè)計(jì)精要_第4頁(yè)
基于AVR單片機(jī)與上位機(jī)的通信系統(tǒng)設(shè)計(jì)精要_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、摘摘 要要 本論文主要闡述的是基于單片機(jī)與上位機(jī)的通信系統(tǒng)設(shè)計(jì),實(shí)現(xiàn) 上位機(jī)與 avr 單片機(jī)之間數(shù)據(jù)的傳輸。第一部分詳細(xì)說(shuō)明了系統(tǒng)的結(jié) 構(gòu)框圖和系統(tǒng)中各個(gè)重要模塊的設(shè)計(jì)方案,并根據(jù)情況的不同選擇了 不同的方案。第二部分是系統(tǒng)中下位機(jī)各部分的原理及具體硬件電路 圖的設(shè)計(jì),并使用了 protel 99se 輔助軟件繪制原理圖。這部分包括 溫度檢測(cè)、液晶顯示等,可以通過(guò)串口將當(dāng)前溫度值傳遞給上位機(jī)。 第三部分是串口通信的說(shuō)明及通信協(xié)議的制定。第四部分是系統(tǒng)上位 機(jī)用戶(hù)界面的設(shè)計(jì)和實(shí)現(xiàn)。這里應(yīng)用了 visual basic 6.0 編程軟件設(shè) 計(jì)操作界面。用戶(hù)可以根據(jù)需要設(shè)置串口,發(fā)送指令并可以在操

2、作界 面顯示。第五部分說(shuō)明了本設(shè)計(jì)的程序軟件流程圖,具體說(shuō)明了程序 的運(yùn)行流程,說(shuō)明了軟件設(shè)計(jì)思想。 本系統(tǒng)綜合單片機(jī)原理及接口技術(shù)、串口傳輸技術(shù)、上位機(jī)控制 等技術(shù)設(shè)計(jì)出基于 avr 單片機(jī)與上位機(jī)的通信系統(tǒng)。該系統(tǒng)可以用于 簡(jiǎn)單的數(shù)據(jù)傳輸,檢測(cè)控制等。具有較好實(shí)用價(jià)值。 關(guān)鍵字關(guān)鍵字:上位機(jī) 串行通信 通信協(xié)議 abstract this paper mainly expounds the single chip microcomputer and computer communication system design, realization between scm and pc av

3、r micro data transmission. the first part detailed explanation of the system structure diagram and system design scheme of various important modules, and according to the situation of different choice different scheme. the second part is the system of machine parts below the principle and specific h

4、ardware circuit design, and using the protel 99se auxiliary software rendering diagram. this section includes temperature detection, lcd display, etc, can be passed through serial current value to pc. the third part is the serial communication and communication agreement. the fourth part is the syst

5、em pc user interface design and realization. here the visual basic 6.0 programming application software design interface. users can set according to need, can send instructions and serial interface display in. the fifth part of the program design shows the software flow chart, the procedure of the o

6、peration process, the software design thought. this system integrated scm principle and interface technology, serial transmission technology, computer control technology is designed based on avr scm and pc communications system. this system can be used in the simple data transmission, test and contr

7、ol, etc. have good practical value. key words: pc serial communication communications protocol i 目錄目錄 第一章第一章 緒緒 論論.1 1.11.1 系統(tǒng)設(shè)計(jì)介紹系統(tǒng)設(shè)計(jì)介紹.1 1.21.2 系統(tǒng)設(shè)計(jì)意義系統(tǒng)設(shè)計(jì)意義.1 1.11.1 系統(tǒng)下位機(jī)設(shè)計(jì)系統(tǒng)下位機(jī)設(shè)計(jì).3 .1 數(shù)據(jù)顯示數(shù)據(jù)顯示 .3 .2 溫度檢測(cè)溫度檢測(cè) .4 1.21.2 系統(tǒng)通信方式系統(tǒng)通信方式.4 1.31.3 系統(tǒng)上位機(jī)設(shè)計(jì)系統(tǒng)上位機(jī)設(shè)計(jì).5 第二章第二章 系統(tǒng)下位機(jī)硬件設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)下位

8、機(jī)硬件設(shè)計(jì)與實(shí)現(xiàn).6 2.12.1 控制電路控制電路.6 2.22.2 電源電源.7 2.32.3 ds18b20ds18b20 溫度檢測(cè)溫度檢測(cè).8 2.42.4 單片機(jī)顯示單片機(jī)顯示.9 第三章第三章 串口通信串口通信.12 3.13.1 異步串行通信原理異步串行通信原理.12 3.2 同步同步/異步串行收發(fā)器異步串行收發(fā)器 usart.12 3.33.3 rs-232rs-232 串行通信串行通信.14 3.43.4 本設(shè)計(jì)的通信協(xié)議本設(shè)計(jì)的通信協(xié)議.17 第四章第四章 系統(tǒng)上位機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)上位機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn).19 4 4. .1 1 初初識(shí)識(shí) v visualisual b

9、basicasic.19 4.24.2 v visualisual b basicasic 串行通信控件串行通信控件 mscmscommomm介紹介紹.21 .1 mscommmscomm 控件的引用控件的引用 .21 .2 mscommmscomm 控件工作方式控件工作方式 .22 .3 mscommmscomm 控件控制原則控件控制原則 .23 .4 mscommmscomm 控件屬性說(shuō)明控件屬性說(shuō)明 .23 4.34.3 上位機(jī)系統(tǒng)操作界面的設(shè)計(jì)與實(shí)現(xiàn)上位機(jī)系統(tǒng)操作界面的設(shè)計(jì)與實(shí)現(xiàn).24 第五章第五章 系統(tǒng)程序編寫(xiě)與設(shè)計(jì)系統(tǒng)

10、程序編寫(xiě)與設(shè)計(jì).26 5.15.1 下位機(jī)部分主程序下位機(jī)部分主程序.26 5.25.2 上位機(jī)部分主程序上位機(jī)部分主程序.26 ii 總結(jié)總結(jié).28 致謝致謝.29 參考文獻(xiàn)參考文獻(xiàn).30 附錄附錄 a a:程序:程序.31 (1 1)上位機(jī)部分程序)上位機(jī)部分程序.31 (2 2)單片機(jī)部分程序)單片機(jī)部分程序.34 附錄附錄 b b:電路圖:電路圖.40 (1 1)系統(tǒng)總體電路圖)系統(tǒng)總體電路圖.40 (2 2)電源部分電路圖)電源部分電路圖.41 1 第一章第一章 緒緒 論論 1.11.1 系統(tǒng)設(shè)計(jì)介紹系統(tǒng)設(shè)計(jì)介紹 本課題是基于 avr 單片機(jī)與上位機(jī)通信系統(tǒng)的設(shè)計(jì),此設(shè)計(jì)包括 下位機(jī)

11、 avr 單片機(jī)檢測(cè),串口通信,上位機(jī)用戶(hù)操作界面部分等。 下位機(jī)部分包括 avr 單片機(jī)、溫度檢測(cè)、液晶顯示和串口傳輸?shù)?功能,溫度傳感器 ds18b20 檢測(cè)外界溫度傳給 avr 單片機(jī),avr 單片 機(jī)處理數(shù)據(jù),可以通過(guò) lcd1602 顯示當(dāng)前溫度值。上位機(jī)部分利用輔 助軟件 visual basic 6.0 設(shè)計(jì)了操作界面,用戶(hù)可以根據(jù)需要自行設(shè) 置,當(dāng)上位機(jī)接收到數(shù)據(jù)之后可以顯示于窗口之中。上位機(jī)和下位機(jī) 之間通過(guò)串口傳輸數(shù)據(jù)進(jìn)行通信。 系統(tǒng)中上位機(jī)用戶(hù)操作界面可以和下位機(jī) avr 單片機(jī)之間的數(shù)據(jù) 傳輸,并可以將數(shù)據(jù)顯示在操作界面之上,實(shí)現(xiàn)了 avr 單片機(jī)和上位 機(jī)之間的通信。

12、 1.21.2 系統(tǒng)設(shè)計(jì)意義系統(tǒng)設(shè)計(jì)意義 單片機(jī)已廣泛地應(yīng)用于軍事、工業(yè)、家用電器、智能玩具、便 攜式智能儀表和機(jī)器人制作等領(lǐng)域,使產(chǎn)品功能、精度和質(zhì)量大幅 度提升,且電路簡(jiǎn)單,故障率低,可靠性高。 avr 單片機(jī)具有 簡(jiǎn)便 易學(xué),費(fèi)用低廉 ;高速、低耗、保密 ;i/o 口功能強(qiáng),具有 a/d 轉(zhuǎn) 換等電路;有功能強(qiáng)大的定時(shí)器 /計(jì)數(shù)器及通訊接口 等優(yōu)點(diǎn),所以 在很多制作和創(chuàng)新中成為首選。 avr 單片機(jī)與上位機(jī)的通信系統(tǒng)是人與單片機(jī)應(yīng)用系統(tǒng)之間的交 互界面,在單片機(jī)應(yīng)用系統(tǒng)中,人們常常需要通過(guò)輸入設(shè)備來(lái)輸入特 定的信息,如電信號(hào)、語(yǔ)音信號(hào)、光信號(hào)等,系統(tǒng)對(duì)輸入的信號(hào)進(jìn)行 分析處理后輸出結(jié)果。

13、系統(tǒng)的這些輸出通過(guò)電、聲、光、圖像等方式 表現(xiàn)出來(lái),人們?cè)俑鶕?jù)系統(tǒng)的輸出來(lái)決定下一步工作,實(shí)現(xiàn)人與系統(tǒng) 之間的交互。 隨著信息技術(shù)的普及和發(fā)展,尤其是跨入 21 世紀(jì)以后,通信技術(shù) 2 得到了迅速的發(fā)展,已經(jīng)滲透到國(guó)民經(jīng)濟(jì)的各行各業(yè)和人們生活的方 方面面,在工業(yè)自動(dòng)化、生產(chǎn)過(guò)程控制、信號(hào)的采集與處理、 、安全防 范、家用電器控制及日常生活等各個(gè)方面都得到了廣泛的應(yīng)用。 本系統(tǒng)綜合單片機(jī)原理及接口技術(shù)、串口傳輸技術(shù)、上位機(jī)控制 等技術(shù)設(shè)計(jì)出基于 avr 單片機(jī)與上位機(jī)的通信系統(tǒng)。該系統(tǒng)可以應(yīng)用 于簡(jiǎn)單的數(shù)據(jù)傳輸,檢測(cè)控制等領(lǐng)域,具有較好實(shí)用價(jià)值。 3 第一章第一章 系統(tǒng)的方案設(shè)計(jì)系統(tǒng)的方案設(shè)計(jì)

14、根據(jù)題目要求,整個(gè)設(shè)計(jì)系統(tǒng)可以劃分為幾個(gè)基本模塊,系統(tǒng)框 圖如圖 1 所示。對(duì)各模塊的實(shí)現(xiàn)分別有以下不同的設(shè)計(jì)方案。 圖 1 體統(tǒng)總體框圖 本設(shè)計(jì)中,下位機(jī)系統(tǒng)可以檢測(cè)外界環(huán)境溫度,并顯示在顯示模 塊中。上位機(jī)系統(tǒng)可以通過(guò)串口發(fā)送指令給下位機(jī),下位機(jī)可以將數(shù) 據(jù)通過(guò)串口傳遞給上位機(jī),并顯示于上位機(jī)的設(shè)計(jì)窗口中。 1.11.1 系統(tǒng)下位機(jī)設(shè)計(jì)系統(tǒng)下位機(jī)設(shè)計(jì) 系統(tǒng)下位機(jī)部分包括溫度檢測(cè)、顯示模塊等。溫度檢測(cè)模塊實(shí)時(shí) 檢測(cè)外界環(huán)境溫度,傳遞給 avr 單片機(jī) atmega16l 分析處理后可以通 過(guò)顯示模塊顯示數(shù)據(jù)。下位機(jī)系統(tǒng)可以通過(guò)上位機(jī)發(fā)送的指令執(zhí)行既 定程序,收發(fā)數(shù)據(jù)等。 .1

15、 數(shù)據(jù)顯示數(shù)據(jù)顯示 方案一方案一:采用 avr 單片機(jī) atmega16l 控制液晶 lcd1602 顯示數(shù)據(jù)。 lcd1602 為字符型液晶顯示模塊,2 行輸出,每行 16 個(gè)字符。液晶顯 示屏具有微功耗、體積小、重量輕、可靠性高等特點(diǎn)。它超薄輕巧, 可以滿(mǎn)足不同需要,顯示內(nèi)容.豐富,接口簡(jiǎn)單方便。 串 口 單 片 機(jī) 控 制 系 統(tǒng) 顯 示 溫度檢測(cè) 按 鍵 下位機(jī)部分 顯示模塊pc 機(jī) 操 作 界 面 數(shù)據(jù)輸出/入 設(shè) 置 上位機(jī)部分 4 方案二方案二:采用 avr 單片機(jī) atmega16l 控制七段數(shù)碼管顯示數(shù)據(jù)。 單片機(jī)動(dòng)態(tài)掃描 4 位七段數(shù)碼管,根據(jù)顯示數(shù)碼位數(shù)的需要把時(shí)間分 成

16、若干等分,某一時(shí)刻僅驅(qū)動(dòng)一位或幾位數(shù)碼管,選擇一定的掃描頻 率,使得人看起來(lái)沒(méi)有閃爍的感覺(jué)。此種方法占用的 i/o 接口較多。 綜合考慮,選用方案一,不僅簡(jiǎn)化了接口,使電路的硬件結(jié)構(gòu)優(yōu) 化,而且控制容易。 .2 溫度檢測(cè)溫度檢測(cè) 方案一方案一:采用 ds18b20 溫度傳感器。ds18b20 數(shù)字溫度傳感器是 單總線器件,具有耐磨耐碰,使用方便 ,線路簡(jiǎn)單,體積小的特點(diǎn)。 測(cè)量溫度范圍在55到125之間。實(shí)際應(yīng)用中不需要任何外部元 器件即可實(shí)現(xiàn)測(cè)溫。 方案二方案二:采用 pt100 溫度傳感器。pt100 溫度傳感器為正溫度系 數(shù)熱敏電阻傳感器,測(cè)量范圍可達(dá)200到850,具有

17、抗振動(dòng)、 穩(wěn)定性好、線性度好、準(zhǔn)確度高、耐高壓等優(yōu)點(diǎn)。但相對(duì)來(lái)說(shuō) pt100 溫度傳感器價(jià)格較高。 綜合實(shí)際考慮,采用方案一。采用 ds18b20 溫度傳感器不僅設(shè)計(jì) 的電路簡(jiǎn)單,而且降低了設(shè)計(jì)成本。 1.21.2 系統(tǒng)通信方式系統(tǒng)通信方式 方案一方案一:采用異步串行通信方式。串行通信,是指構(gòu)成一個(gè)字符 或數(shù)據(jù)的每一位按時(shí)間先后一位一位地傳輸,占用較少通信線。異步 通信,是指數(shù)據(jù)傳送以字符為單位,字符與字符間的傳送是完全異步 的,位與位之間的傳送基本上是同步的。串行通信常作為計(jì)算機(jī)與外 設(shè)或計(jì)算機(jī)之間傳輸信息之用,使成本降低。 方案二方案二:采用并行通信方式。并行通信即構(gòu)成一個(gè)字符或數(shù)據(jù)的 每

18、一位同時(shí)傳送。每一位都占用一條通信線,另外還需聯(lián)絡(luò)線以保證 微處理器能與外圍設(shè)備協(xié)調(diào)地工作。并行通信具有較高的傳輸速度, 但由于在長(zhǎng)線上驅(qū)動(dòng)和接收信號(hào)較困難,驅(qū)動(dòng)和接收電路較復(fù)雜,因 而并行通信的傳輸距離受到限制。 5 綜合考慮,采用方案一異步串行通信方式。 1.31.3 系統(tǒng)上位機(jī)設(shè)計(jì)系統(tǒng)上位機(jī)設(shè)計(jì) 方案一方案一:采用 visual basic 程序設(shè)計(jì)語(yǔ)言編寫(xiě)。visual basic 是 一種面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,可以將程序代碼和數(shù)據(jù)是為對(duì)象。因此 可以將引用的窗體或是窗體的控件以及整個(gè)應(yīng)用程序是為一個(gè)對(duì)象。 由對(duì)象的概念引申出于對(duì)象相關(guān)的屬性、事件、和方法。從而大大簡(jiǎn) 化了整個(gè)程序設(shè)計(jì)

19、的步驟和難度。 方案二方案二:采用 visual c+ 程序設(shè)計(jì)語(yǔ)言編寫(xiě)。vc+是完全面向?qū)?象的編程工具,是完全編譯語(yǔ)言。vc+效率高,封裝性好,繼承性高, 編譯后得到的程序可直接運(yùn)行。利用 vc+設(shè)計(jì)上位機(jī)不僅需要對(duì)面向 對(duì)象的編程技術(shù)有扎實(shí)的理解,而且需要充分了解 windows 編程所涉 及的方方面面。 vc+的可視化沒(méi)有 vb 的好,vb 功能沒(méi)有 vc 強(qiáng)大,但是很容易掌 握,而 vc+學(xué)起來(lái)有難度。綜合實(shí)際考慮,采用采用方案一,利用 visual basic 設(shè)計(jì)上位機(jī)界面。 6 第二章第二章 系統(tǒng)下位機(jī)硬件設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)下位機(jī)硬件設(shè)計(jì)與實(shí)現(xiàn) 系統(tǒng)的下位機(jī)部分主要包括控制模塊、溫

20、度檢測(cè)模塊、顯示模塊 等。下位機(jī)控制模塊采用 atmega16l 作為主控芯片,溫度檢測(cè)模塊采 用 ds18b20 溫度傳感器檢測(cè)外界溫度,并傳遞給單片機(jī),單片機(jī)控制 顯示模塊 lcd1602 顯示外界環(huán)境的實(shí)時(shí)溫度。當(dāng)上位機(jī)發(fā)出指令,要 求下位機(jī)傳遞數(shù)據(jù)時(shí),通過(guò)串口,下位機(jī)可以將此時(shí)的外界環(huán)境溫度 傳遞給上位機(jī),實(shí)現(xiàn)上位機(jī)與單片機(jī)的通信。 2.12.1 控制電路控制電路 atmega16l 是基于增強(qiáng)的 avr risc 結(jié)構(gòu)的低功耗 8 位 cmos 微控制 器。由于其先進(jìn)的指令集一級(jí)單時(shí)鐘周期指令執(zhí)行時(shí)間,atmega16l 的數(shù)據(jù)吞吐率高達(dá) 1mips/mhz,從而可以減緩系統(tǒng)在功耗和

21、處理速度 之間的矛盾。圖 2 為 atmega16l 引腳分布圖。 圖 2 atmega16l 引腳分布圖 atmega16l 的 pa7 引腳用來(lái)檢測(cè)外界溫度,接 ds18b20;pb 口用 來(lái) 控制顯示模塊,pb0-pb7 分別外接 lcd1602 的 7-17 引腳。ds18b20 檢 7 測(cè)到外界的溫度,傳遞給單片機(jī),單片機(jī)送數(shù)據(jù)給 lcd1602 實(shí)現(xiàn)顯示 功能。 atmega16l 芯片的主要特性: 32 個(gè) 8 位通用工作寄存器; 4 通道 pwm; 8 路 10 位 adc; 兩個(gè)可編程的串行 usart; 可工作于主機(jī)/叢集模式的 spi 串行接口; 具有獨(dú)立片內(nèi)振蕩器的可編

22、程看門(mén)狗定時(shí)器; 片內(nèi)模擬比較器; 6 中睡眠模式:空閑、adc 噪聲抑制、省電、掉電、standby 模式 以 及擴(kuò)展的 standby 模式; 32 個(gè)可編程的 i/o 口; 工作電壓:2.7-5.5v; 速度等級(jí)最高可達(dá) 8mhz。 2.22.2 電源電源 avr 單片機(jī) atmega16l 芯片的供電電壓為 2.7v-5.5v,本設(shè)計(jì)中采 用電壓穩(wěn)定的 5v 直流穩(wěn)壓電源供電。直流穩(wěn)壓電源主要由電源變壓器、 整流、濾波和穩(wěn)壓電路等四個(gè)部分組成。穩(wěn)壓電源原理圖如圖 3 所示。 圖 3 直流穩(wěn)壓電源結(jié)構(gòu)原理圖 模擬電源工作原理是由變壓器把交流電網(wǎng)電壓 220v 變成整流電路 要求的交流電壓

23、,再經(jīng)由 4 只整流二極管組成的整流橋得到直流電壓, 通過(guò)電容濾波達(dá)到比較平穩(wěn)的直流電壓,最后接入穩(wěn)壓電路,維持輸 電源變壓器整流電路濾波電路穩(wěn)壓電路 8 出電壓的穩(wěn)定。穩(wěn)壓電路由輸出極性不同的 4 片集成穩(wěn)壓器 lm7812、lm7912、lm7905、lm7805 構(gòu)成,輸出端即可輸出 12v、5v 的電壓,輸出電流為 500ma 1a,使用示波器測(cè)試輸出 電壓穩(wěn)定。電路圖如圖 4 所示。 1 2 3 4 1n4007x4 d2 c3 0.33uf c4 0.33uf vin 1 gnd 2 vout 3 ic1lm7812 vin 1 gnd 2 vout 3 ic2lm7912 c5

24、0.1uf c6 0.1uf vd1 vd2 led1 led2 c7 0.33uf c8 0.33uf vin 1 gnd 2 vout 3 ic4lm7905 vin 1 gnd 2 vout 3 ic3lm7805 led3 led4 c9 0.1uf c10 0.1uf d4 d3 t trans5 c1 2200uf c2 2200uf r4 560 r3 560 r1 560 r2 560 -5v -12v +5v +12v 220v 圖 4 直流穩(wěn)壓電源原理圖 2.32.3 ds18b20ds18b20 溫度檢測(cè)溫度檢測(cè) 本系統(tǒng)中下位機(jī)的溫度檢測(cè)模塊采用 ds18b20。ds18

25、b20 數(shù)字溫度 計(jì)是 dallas 公司生產(chǎn)的 1wire,即單總線器件,具有線路簡(jiǎn)單,體 積小的特點(diǎn)。因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在一根 通信線,可以?huà)旌芏噙@樣的數(shù)字溫度計(jì),十分方便。ds18b20 內(nèi)部結(jié) 構(gòu)主要由 4 部分構(gòu)成,64 位光刻 rom、溫度傳感器、非揮發(fā)的溫度報(bào) 警觸發(fā)器 th 和 tl、配置寄存器。to92 封裝的 ds18b20 的引腳排列 及引腳功能描述見(jiàn)圖 5,其見(jiàn)下圖。 9 圖 5 ds18b20 的引腳排列及功能 ds18b20ds18b20 產(chǎn)品的特點(diǎn):產(chǎn)品的特點(diǎn): 只要求一個(gè)端口即可實(shí)現(xiàn)通信。 在 ds18b20 中的每個(gè)器件上都有獨(dú)一無(wú)二的

26、序列號(hào)。 實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測(cè)溫。 測(cè)量溫度范圍在55。c 到125。c 之間。 數(shù)字溫度計(jì)的分辨率用戶(hù)可以從 9 位到 12 位選擇。 內(nèi)部有溫度上、下限告警設(shè)置。 ds18b20 的數(shù)據(jù)輸入/輸出端連接于 atmega16l 的 pa7 引腳,電路 原理如圖 6 所示。 agnd 31 x1 13 x2 12 reset 9 pd2 (int0) 16 pd3 (int1) 17 pd4 (oc1b) 18 pd5 (oc1a) 19 pb0 (t 0) 1 pb1 (t 1) 2 pb2 (ain0) 3 pb3 (ain1) 4 pb4 (ss) 5 pb5 (mo

27、si) 6 pb6 (miso) 7 pb7 (sck) 8 (adc0) pa0 40 (adc1) pa1 39 (adc2) pa2 38 (adc3) pa3 37 (adc4) pa4 36 (adc5) pa5 35 (adc6) pa6 34 (adc7) pa7 33 pc0 22 pc1 23 pc2 24 pc3 25 pc4 26 pc5 27 (tosc1) pc6 28 (tosc2) pc7 29 pd7 (t osc2) 21 pd6 (icp) 20 avcc 30 aref 32 pd1 (t xd) 15 pd0 (rxd) 14 gnd 11 vcc 10

28、 atmega16l 1 2 3 ds18b20 r 4.7k vcc vcc c1 0.1uf c2 0.1uf c3 0.1uf l 10uf r 0 vccavcc 1gnd 電源地 2dq 數(shù)字信號(hào)輸入/輸出 端 3vdd 外接供電電源輸入 端 1 2 3 ds18b20 132 底視圖 10 圖 6 溫度檢測(cè)部分電路原理圖 2.42.4 單片機(jī)顯示單片機(jī)顯示 設(shè)計(jì)中的顯示模塊采用 lcd1602。lcd1602 通用型液晶模塊可以顯 示 2 行 16 個(gè)字符,有 8 位數(shù)據(jù)總線 d0-d7,和 rs、r/w、e 三個(gè)控制 端口,工作電壓為 5v,并且?guī)в凶址麑?duì)比度調(diào)節(jié)和背光。現(xiàn)在字符

29、型 液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件。 lcd1602 的引腳個(gè)功能見(jiàn)表 1 所示。 表 1: 編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明 1vss 電源地 9d2 雙向數(shù)據(jù)口 2vdd 電源正極 10d3 雙向數(shù)據(jù)口 3vl 對(duì)比度調(diào)節(jié) 11d4 雙向數(shù)據(jù)口 4rs 數(shù)據(jù)/命令選擇 12d5 雙向數(shù)據(jù)口 5r/w 讀/寫(xiě)選擇 13d6 雙向數(shù)據(jù)口 6e 模塊使能端 14d7 雙向數(shù)據(jù)口 7d0 雙向數(shù)據(jù)口 15bla 背光源正極 8d1 雙向數(shù)據(jù)口 16blk 背光源地 引腳功能及使用說(shuō)明: vl:lcd 對(duì)比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為 05v。接正電源時(shí)對(duì)比 度最弱,接地電源時(shí)對(duì)

30、比度最高,通常使用一個(gè) 10k 的電位器來(lái)調(diào)整 對(duì)比度,或者直接串接一個(gè)電阻到地; rs:mcu 寫(xiě)入數(shù)據(jù)或者指令選擇端。mcu 要寫(xiě)入指令時(shí),使 rs 為 低電平;mcu 要寫(xiě)入數(shù)據(jù)時(shí),使 rs 為高電平; r/w:讀寫(xiě)控制端。r/w 為高電平時(shí),讀取數(shù)據(jù);r/w 為低電平時(shí),寫(xiě) 入數(shù)據(jù); e:lcd 模塊使能信號(hào)控制端。寫(xiě)數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊。 d0d7:8 位數(shù)據(jù)總線,三態(tài)雙向。如果 mcu 的 i/o 口資源緊張的 11 話(huà),該模塊也可以只使用 4 位數(shù)據(jù)線 d4d7 接口傳送數(shù)據(jù)。本設(shè)計(jì)就 是采用 4 位數(shù)據(jù)傳送方式; bla: led 背光正極。需要背光時(shí),bla 串接一個(gè)限

31、流電阻接 vdd,blk 接地,實(shí)測(cè)該模塊的背光電流為 50ma 左右; blk: led 背光地端。 液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定 要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示 字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示。1602 液 晶模塊內(nèi)部顯示地址如表 2 所示 : 表 2: 01234567891 0 1 1 1 2 1 3 1 4 1 5 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 a 0 b 0 c 0 d 0 e 0 f 第 一 行 4 0 4 1 4 3 4 3 4 4 4 5 4

32、6 4 7 4 8 4 9 4 a 4 b 4 c 4 d 4 e 4 f 第 二 行 lcd1602 的數(shù)據(jù) i/o 口連接于 atmega16l 的 pb 引腳,電路原理如 圖 7 所示。 12 agnd 31 x1 13 x2 12 reset 9 pd2 (int0) 16 pd3 (int1) 17 pd4 (oc1b) 18 pd5 (oc1a) 19 pb0 (t 0) 1 pb1 (t 1) 2 pb2 (ain0) 3 pb3 (ain1) 4 pb4 (ss) 5 pb5 (mosi) 6 pb6 (miso) 7 pb7 (sck) 8 (adc0) pa0 40 (ad

33、c1) pa1 39 (adc2) pa2 38 (adc3) pa3 37 (adc4) pa4 36 (adc5) pa5 35 (adc6) pa6 34 (adc7) pa7 33 pc0 22 pc1 23 pc2 24 pc3 25 pc4 26 pc5 27 (tosc1) pc6 28 (tosc2) pc7 29 pd7 (t osc2) 21 pd6 (icp) 20 avcc 30 aref 32 pd1 (t xd) 15 pd0 (rxd) 14 gnd 11 vcc 10 atmega16l vcc c1 0.1uf c2 0.1uf c3 0.1uf l 10uf

34、 r 0 vccavcc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 lcd1602 r10k vcc_5v 圖 7 顯示部分電路原理圖 13 第三章第三章 串口通信串口通信 3.13.1 異步串行通信原理異步串行通信原理 異步串行數(shù)據(jù)通信以幀為傳輸單位,每一幀包含 1 位起始位“0”、 8 或者 9 位數(shù)據(jù)、1 位奇偶校驗(yàn)位和 1 位停止位“1”。異步串行通信 規(guī)定了數(shù)據(jù)的傳送格式,如圖 8 所示。 圖 8 數(shù)據(jù)傳輸幀格式 異步通信數(shù)據(jù)幀的第一位是開(kāi)始位,在通信線上沒(méi)有數(shù)據(jù)傳送時(shí) 處于邏輯“1”狀態(tài)。當(dāng)發(fā)送設(shè)備要發(fā)送一個(gè)字符數(shù)據(jù)時(shí),首先發(fā)出一 個(gè)邏輯“0”信

35、號(hào),這個(gè)邏輯低電平就是起始位。起始位通過(guò)通信線傳 向接收設(shè)備,當(dāng)接收設(shè)備檢測(cè)到這個(gè)邏輯低電平后,就開(kāi)始準(zhǔn)備接收 數(shù)據(jù)位信號(hào)。因此,起始位所起的作用就是表示字符傳送開(kāi)始。 當(dāng)接收設(shè)備收到起始位后,緊接著就會(huì)收到數(shù)據(jù)位。在字符數(shù)據(jù) 傳送過(guò)程中,數(shù)據(jù)位從最低位 d0 開(kāi)始傳輸。數(shù)據(jù)發(fā)送完之后,可以發(fā) 送奇偶校驗(yàn)位。奇偶校驗(yàn)位用于有限差錯(cuò)檢測(cè),通信雙方在通信時(shí)需 約定一致的奇偶校驗(yàn)方式。就數(shù)據(jù)傳送而言,奇偶校驗(yàn)位是冗余位, 但它表示數(shù)據(jù)的一種性質(zhì),這種性質(zhì)用于檢錯(cuò),雖有限但很容易實(shí)現(xiàn)。 在奇偶位或數(shù)據(jù)位之后發(fā)送的是停止位,停止位是一個(gè)字符數(shù)據(jù)的結(jié) 束標(biāo)志。 在異步通信中,字符數(shù)據(jù)以圖所示的格式一個(gè)一個(gè)

36、地傳送。在發(fā) 送間隙,即空閑時(shí),通信線路總是處于邏輯“1”狀態(tài),每個(gè)字符數(shù)據(jù) 的傳送均以邏輯“0”開(kāi)始。 3.23.2 同步同步/ /異步串行收發(fā)器異步串行收發(fā)器 usartusart 起始位 校驗(yàn)位 停止位 數(shù)據(jù)位 0d0d1d2d3d4d5d6d7n1 14 usart 收發(fā)模塊一般分為三大部分:時(shí)鐘發(fā)生器、數(shù)據(jù)發(fā)送器和 接收器。控制寄存器為所有的模塊共享。 時(shí)鐘發(fā)生器由同步邏輯電路(在同步從模式下由外部時(shí)鐘輸入驅(qū) 動(dòng))和波特率發(fā)生器組成。發(fā)送時(shí)鐘引腳 xck 僅用于同步發(fā)送模式下, 發(fā)送器部分由一個(gè)單獨(dú)的寫(xiě)入緩沖器(發(fā)送 udr)、一個(gè)串行移位寄 存器、校驗(yàn)位發(fā)生器和用于處理不同湞結(jié)構(gòu)的

37、控制邏輯電路構(gòu)成。使 用寫(xiě)入緩沖器,實(shí)現(xiàn)了連續(xù)發(fā)送多湞數(shù)據(jù)無(wú)延時(shí)的通信。 接收器是 usart 模塊最復(fù)雜的部分,最主要的是時(shí)鐘和數(shù)據(jù)接收 單元。數(shù)據(jù)接收單元用作異步數(shù)據(jù)的接收。除了接收單元,接收器還 包括校驗(yàn)位校驗(yàn)器、控制邏輯、移位寄存器和兩級(jí)接收緩沖器(接收 udr)。接收器支持與發(fā)送器相同的楨結(jié)構(gòu),同時(shí)支持楨錯(cuò)誤、數(shù)據(jù)溢 出和校驗(yàn)錯(cuò)誤的檢測(cè)。 usart 支持 4 中模式的時(shí)鐘:正常的異步模式、倍速的異步模式、 主機(jī)同步模式、從機(jī)同步模式。usart 控制位 umsel 和狀態(tài)寄存器 c 用于選擇異步模式和同步模式。倍速的異步模式(只是用于異步模式) 受控于 ucsra 寄存器的 u2x

38、。使用同步模式(umsel=1)時(shí),xck 的數(shù) 據(jù)方向寄存器(ddr_xck)決定時(shí)鐘源是由內(nèi)部產(chǎn)生(主機(jī)模式)還是 由外部產(chǎn)生(從機(jī)模式)。表 3 給出了計(jì)算波特率(位/秒)以及計(jì)算 每一種使用內(nèi)部時(shí)鐘源工作模式的 ubrr 值的公式。 表 3: 使用模式波特率計(jì)算公式ubrr 值計(jì)算公式 異步正常模式 (u2x=0)) 1(16 ubrr f baud osc 1 16 baud f ubrr osc 異步倍速模式 (u2x=1)) 1(8 ubrr f baud osc 1 8 baud f ubrr osc 同步主機(jī)模式 ) 1(2 ubrr f baud osc 1 2 baud

39、f ubrr osc baud波特率(bps); 15 系統(tǒng)時(shí)鐘頻率; osc f ubrrubrrh 和 ubrrl 的數(shù)值(0-4095) 串行數(shù)據(jù)幀由數(shù)據(jù)字加上同部位(開(kāi)始位與停止位)以及用于糾 錯(cuò)的奇偶校驗(yàn)位構(gòu)成。usart 接收一下 30 種組合的數(shù)據(jù)幀格式: 起始位:1 位 數(shù)據(jù)位:5、6、7、8 或 9 位 校驗(yàn)位:無(wú)校驗(yàn)位、奇校驗(yàn)位、偶校驗(yàn)位 停止位:1 或 2 位 數(shù)據(jù)幀以起始位開(kāi)始,緊接著是數(shù)據(jù)字的最低位,數(shù)據(jù)字最多可 以有 9 個(gè)數(shù)據(jù)位,以數(shù)據(jù)的最高位結(jié)束。如果使能了校驗(yàn)位,校驗(yàn)位 將緊接著數(shù)據(jù)位,最后是結(jié)束位。當(dāng)一個(gè)完整的數(shù)據(jù)幀傳輸后,可以 立即傳輸下一個(gè)新的數(shù)據(jù)幀,或

40、是傳輸線處于空閑狀態(tài)。 進(jìn)行通信之前首先要對(duì) usart 進(jìn)行初始化。初始化過(guò)程包括波特 率的設(shè)定,幀結(jié)構(gòu)的設(shè)定,以及根據(jù)需要使能接收器或發(fā)送器。 3.33.3 rs-232rs-232 串行通信串行通信 在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè) 備可以方便地連接起來(lái)進(jìn)行通訊。rs-232-c 接口(又稱(chēng) eiars-232- c)是目前最常用的一種串行通訊接口。嚴(yán)格的講 rs-232 接口是 dte(數(shù)據(jù)終端設(shè)備)和 dce(數(shù)據(jù)通信設(shè)備)之間的一個(gè)接口。rs-232 接 口引腳定義見(jiàn)表 4: 表 4: 25 芯9 芯信號(hào)方向來(lái)源縮寫(xiě)描述名 23pctxd 發(fā)送數(shù)據(jù) 32 調(diào)

41、制解調(diào)器 rxd 接收數(shù)據(jù) 47pcrts 請(qǐng)求發(fā)送 58 調(diào)制解調(diào)器 cts 允許發(fā)送 66 調(diào)制解調(diào)器 dsr 通信設(shè)備準(zhǔn)備 好 75gnd 信號(hào)地 81 調(diào)制解調(diào)器 cd 載波檢測(cè) 16 1 6 2 7 3 8 4 9 5 dsr rts cts ri dcd rxd txd dtr sg 204pcdtr 數(shù)據(jù)終端準(zhǔn)備 好 229 調(diào)制解調(diào)器 ri 響鈴指示器 目前 rs-232 是 pc 機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。 rs-232 被定義為一種在低速率串行通訊中增加通訊距離的單端標(biāo)準(zhǔn)。 rs-232 采取不平衡傳輸方式,即所謂單端通訊。 pc 主機(jī)上的 rs-232 接口

42、的電氣電平以-12v 代表邏輯電平“1” , +12v 代表邏輯電平“0” ,稱(chēng)為 eia 電平。而單片機(jī)的接口電平為 ttl 電平,要實(shí)現(xiàn)單片機(jī)與上位機(jī)的串口通信,必須轉(zhuǎn)換雙方的信號(hào)電平。 本設(shè)計(jì)中采用 max232 實(shí)現(xiàn) ttl 電平與 eia 電平的轉(zhuǎn)換。max232 芯片 是美信公司專(zhuān)門(mén)為電腦的 rs-232 標(biāo)準(zhǔn)串口設(shè)計(jì)的接口電路 ,使用 +5v 單電源供電。電路原理圖如圖 9 所示。 cap 1+ 1 rr-in2 8 cap- 6 cap 2- 5 cap 1- 3 cap + 2 cap 2+ 4 rt-out2 7 r-out 2 9 t-in2 10 t-in1 11 r-

43、out 1 12 rr-in1 13 rt-out1 14 gnd 15 vcc 16 u2 m ax232 agnd 31 x1 13 x2 12 reset 9 pd2 (int0) 16 pd3 (int1) 17 pd4 (oc1b) 18 pd5 (oc1a) 19 pb0 (t 0) 1 pb1 (t 1) 2 pb2 (ain0) 3 pb3 (ain1) 4 pb4 (ss) 5 pb5 (m osi) 6 pb6 (m iso) 7 pb7 (sck) 8 (adc0) pa0 40 (adc1) pa1 39 (adc2) pa2 38 (adc3) pa3 37 (adc

44、4) pa4 36 (adc5) pa5 35 (adc6) pa6 34 (adc7) pa7 33 pc0 22 pc1 23 pc2 24 pc3 25 pc4 26 pc5 27 (tosc1) pc6 28 (tosc2) pc7 29 pd7 (t osc2) 21 pd6 (icp) 20 avcc 30 aref 32 pd1 (t xd) 15 pd0 (rxd) 14 gnd 11 vcc 10 atm ega16l vcc c1 0.1uf c2 0.1uf c3 0.1uf l 10uf r 0 vccavcc c2 0.1uf c1 0.1uf 1 6 2 7 3 8

45、 4 9 5 db9 c3 0.1uf c4 0.1uf d1 red d2 green r1 330 r2 330 vcc 圖 9 電平轉(zhuǎn)換電路 rs232 的引腳線可分為控制信號(hào)線、數(shù)據(jù)輸送和接收線、接地線等 3 類(lèi)。圖 10 為 9 針 d 型串口連接器外形。 1.控制信號(hào)線 (1)dsr 數(shù)據(jù)裝置準(zhǔn)備好 ( data set ready ) 有效時(shí) on 狀態(tài),表明 modem 處于可以使用狀態(tài)。 17 (2)dtr 數(shù)據(jù)終端準(zhǔn)備好 ( data set raady ) 有效時(shí) on 狀態(tài),表明數(shù)據(jù)終端處于可以使用狀態(tài)。 這兩個(gè)信號(hào)有時(shí)連到電源上,一上電 就立即有效。只表明設(shè)備本身可用

46、,并不說(shuō)明通信鏈路可以開(kāi)始通信, 能否開(kāi)始通信要由下面的控制信號(hào)決定。 (3)rts 請(qǐng)求發(fā)送 ( request to send )求 dte 請(qǐng)求 dce 發(fā) 送數(shù)據(jù),有效 on。用來(lái)控制 modem 是否要進(jìn)入發(fā)送狀態(tài)。 (4)cts 允許請(qǐng)求 ( clear to send )dce 準(zhǔn)備好接收 dte 發(fā)來(lái)的數(shù)據(jù),有效 on。是對(duì) rts 的響應(yīng)信號(hào)。當(dāng) modem 準(zhǔn)備好接收終 端傳來(lái)的數(shù)據(jù),并向前發(fā)送,使該信號(hào)有效,通知終端開(kāi)始開(kāi)始沿發(fā) 送數(shù)據(jù)線 txd 發(fā)送數(shù)據(jù)。 rts/cts 請(qǐng)求應(yīng)答用于半雙工 modem 系統(tǒng)中發(fā)送方式和接收方式 切換,在全雙工系統(tǒng)配置雙向通道,不需要

47、rts/cts。 2.數(shù)據(jù)傳送和接收線 (1)txd 發(fā)送數(shù)據(jù) ( transmitted data )通過(guò) txd 接收 線,將串行數(shù)據(jù)傳送到 modem (dtedce)。 (2)rxd 接收數(shù)據(jù) ( received data )通過(guò) rxd 接收線, 接收從 modem 發(fā)出的串行數(shù)據(jù)(dcedte)。 3.地線 分別是信號(hào)地 sg 和保護(hù)地 dg,無(wú)方向。只有當(dāng) dsr、dtr 都處于 on 狀態(tài)時(shí),才能在 dte 和 dce 之間進(jìn)行傳送操作。若 dte 要發(fā)送數(shù)據(jù), 則預(yù)先將 dtr 線置有效 on,等 cts 線上收到有效 on 回答后,才能在 txd 線上發(fā)送串行數(shù)據(jù)。 圖

48、11 為串行通信拓?fù)浣Y(jié)構(gòu)。 圖 10 連接器外形 dtedce signal ground control signals rxd txd 18 圖 11 串行通信拓?fù)浣Y(jié)構(gòu) 3.43.4 本設(shè)計(jì)的通信協(xié)議本設(shè)計(jì)的通信協(xié)議 串口通信協(xié)議最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校 驗(yàn),對(duì)于兩個(gè)進(jìn)行通行的端口,這些參數(shù)必須匹配 。本設(shè)計(jì)的通信 數(shù)據(jù)幀格式采用波特率 9600pbs,數(shù)據(jù)位 8 位,無(wú)校驗(yàn)方式進(jìn)行傳 輸。 為了保證通信的可靠性,本設(shè)計(jì)在傳遞數(shù)據(jù)的過(guò)程中,又增加了 自己的通信通信協(xié)議。 通信過(guò)程中,在傳遞有效數(shù)字之前加發(fā)一個(gè)頭數(shù)據(jù),在有效數(shù)據(jù) 之后加發(fā)一個(gè)校驗(yàn)數(shù)據(jù)。 頭數(shù)據(jù)是用戶(hù)自己定

49、義的,校驗(yàn)數(shù)據(jù)采用 求和校驗(yàn)方式。當(dāng) 接收設(shè)備接收到頭數(shù)據(jù)、有效數(shù)據(jù)、校驗(yàn)數(shù)據(jù)后, 均存放于暫存器中,接收設(shè)備接收完全后進(jìn)行運(yùn)算,將頭數(shù)據(jù)和有 效數(shù)據(jù)相加與校驗(yàn)數(shù)據(jù)位數(shù)據(jù)進(jìn)行比較, 比較后相等,則說(shuō)明接收 到的數(shù)據(jù)正確,可以應(yīng)用;如果比較后的結(jié)果不相等,則說(shuō)明接收 到的數(shù)據(jù)不正確,接收設(shè)備可以發(fā)送請(qǐng)求重發(fā)命令,發(fā)送設(shè)備接收 到請(qǐng)求重發(fā)命令后重新發(fā)送有效數(shù)據(jù)給接收設(shè)備, 重新發(fā)送的過(guò)程 同上。 例如:設(shè)下位機(jī)發(fā)送有效數(shù)據(jù) 0 x55h 給上位機(jī),則下位機(jī)將要 發(fā)送的數(shù)據(jù)有 3 個(gè):頭數(shù)據(jù) 0 x01h,有效數(shù)據(jù) 0 x55h,求和校驗(yàn)數(shù)據(jù) 0 x56h。下位機(jī)存放數(shù)據(jù) 于數(shù)組 tx_buf 中,

50、發(fā)送給上位機(jī),上位機(jī) 接收到的數(shù)據(jù)存放于 rx_buf 中,當(dāng) rx_buf 中的數(shù)據(jù)接收完全后, 進(jìn)行運(yùn)算。 若 rx_buf = 0 x01h,0 x55h,0 x56h ,將接收到的第一位數(shù) 據(jù) 0 x01h 與第二位數(shù)據(jù) 0 x55h 相加,結(jié)果和第三位數(shù)據(jù) 0 x56h 相比 較,比較結(jié)果相同,則說(shuō)明接收的數(shù)據(jù)正確,取其中的第二位有效 數(shù)據(jù)。 若 rx_buf = 0 x01h,0 x57h,0 x56h ,將接收到的第一位數(shù) 據(jù) 0 x01h 與第二位數(shù)據(jù) 0 x57h 相加,結(jié)果和第三位數(shù)據(jù) 0 x56h 相比 較,因?yàn)?0 x58h0 x56h,即比較結(jié)果不相同,則上位機(jī)發(fā)送

51、請(qǐng)求重 19 發(fā)命令給下位機(jī),則下位機(jī)重新發(fā)送數(shù)據(jù)給上位機(jī),過(guò)程如上。程 序流程圖見(jiàn)圖 12 圖 12 下位機(jī) tx_buf 數(shù) 組中存入數(shù)據(jù) d0,d1,d2 下位機(jī)發(fā)送數(shù)據(jù) d0、d1、d2 上位機(jī)準(zhǔn)備好接 收數(shù)據(jù)? 上位機(jī)將接收數(shù)據(jù) d0+d1 與 d2 相比 較 取 d1 位有效數(shù)據(jù) 去 d0 + d1 = d2 ? 上位機(jī)好接收數(shù) 據(jù)完全? 數(shù)據(jù)發(fā)送錯(cuò)誤, 請(qǐng)求從發(fā) 否 是 20 第四章第四章 系統(tǒng)上位機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)上位機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn) 上位機(jī)就是人可以直接發(fā)出操 作命令的計(jì)算機(jī) ,屏幕上顯示各 種信號(hào)的變化,如液壓、水位、溫度等。上位機(jī)發(fā)出的命令首先給 下位機(jī),下位機(jī)再根據(jù)此

52、命令解釋成相應(yīng)時(shí)序信號(hào)直接控制相應(yīng)設(shè) 備。 本設(shè)計(jì)中上位機(jī)要通過(guò)串口實(shí)現(xiàn)和下位機(jī)的通信,下位機(jī)傳遞 即時(shí)的溫度值給上位機(jī),并顯示于上位機(jī)的窗口中。 4 4. .1 1 初初識(shí)識(shí) visualvisual basicbasic 安裝完成 visual basic 開(kāi)發(fā)環(huán)境后,打開(kāi)“visual basic 6.0”應(yīng)用程序,即可看到如圖 13 所示的窗口。 圖 13 進(jìn)入 visual basic 開(kāi)發(fā)環(huán)境窗口 看到此窗口后 ,打開(kāi)一個(gè)標(biāo)準(zhǔn)的新工程執(zhí)行文件 “standard exe” 。單擊“打開(kāi)”按鈕,進(jìn)入 visual basic 的開(kāi)發(fā)環(huán)境窗口。在 這個(gè)開(kāi)發(fā)環(huán)境中,提供了所有程序設(shè)所需的

53、資源和功能。如圖 14 所示。 21 圖 14 visual basic 開(kāi)發(fā)環(huán)境窗口 為了了解 visual basic 的集成開(kāi)發(fā)環(huán)境,介紹幾種常用窗體的 功能。 (1)工具箱窗口。工具箱內(nèi)的工具類(lèi)型很多,每 一個(gè)都是一種控件對(duì)象。如果要在窗體內(nèi)引用工具箱 內(nèi)的控件,可 直接點(diǎn)擊該工具按鈕,并在編輯窗體中 適當(dāng)位置拖拽 鼠標(biāo),調(diào)整其大小 ,松開(kāi)鼠標(biāo),就成功 的使用工具箱 建立了對(duì)象。 如圖 15 所示。 (2)屬性窗口。讀者可以查看屬性窗口,可以看 到當(dāng)前所建控件的屬性,如圖所示。讀者可以在屬性 窗口中更改建 立控件的屬性。 如圖 16 所示 (3)工程資源管理器。 visual basi

54、c 在設(shè)計(jì)一個(gè) 功能時(shí),通常會(huì)打開(kāi)一個(gè)工程。在 visual basic 中,提 供了圖所示的“工程資源管理器 ” 。它列出了目前執(zhí)行 的工程所包含 的窗體,讓設(shè)計(jì)者在使用和編輯時(shí)一目 圖 15 22 了然。工程資源管理器中包含 “查看程序代碼 ” 、 “產(chǎn)看對(duì)象”和 “切換文件夾”這 3 個(gè)按鈕,設(shè)計(jì) 者可在設(shè)計(jì)過(guò)程中方便切換。如圖 17 所示。 4.24.2 visualvisual basicbasic 串行通信控件串行通信控件 mscommmscomm 介紹介紹 visual basic 是一個(gè)可視化的窗口開(kāi)發(fā)環(huán)境,visual basic 開(kāi)發(fā) 的應(yīng)用程序非常多,它廣泛應(yīng)用在教育軟件

55、、計(jì)算機(jī)字典軟件及各種 控制系統(tǒng)中。visual basic 的系統(tǒng)內(nèi)置及外掛很多控件,其中, mscomm 通信控件可以讓我們完成串行通信的設(shè)計(jì)。 .1 mscommmscomm 控件的引用控件的引用 通信應(yīng)用程序的編寫(xiě)比較困難,因?yàn)楸仨毾纫?mscomm 控件才能 進(jìn)一步開(kāi)始執(zhí)行通信傳輸工作。 由于 visual basic 串行通信組件不會(huì)主動(dòng)出現(xiàn)在工具箱中,所 以需要將對(duì)鏈接和嵌入控件添加到工具箱中,步驟如下: (1)單擊【project】菜單。 (2)在 project 菜單下選擇【components】命令。 (3)打開(kāi) components 對(duì)話(huà)框,選中“mic

56、rosoft comm control 圖 16 圖 17 23 6.0”復(fù)選框,如圖 18 所示。 (4)單擊“應(yīng)用”或“確定”按鈕后,在工具箱中可以看到 “mscomm 控件”圖標(biāo)。可以使用此控件進(jìn)行通信,如圖 19 所示。 .2 mscommmscomm 控件工作方式控件工作方式 使用 mscomm 控件的目的是為了讓用戶(hù)設(shè)計(jì)一個(gè)系統(tǒng),此系統(tǒng)可以 和串行端口進(jìn)行通信及發(fā)送數(shù)據(jù),因此信息會(huì)在其硬件電路上流動(dòng), 此控件提供了以下兩種方式來(lái)處理信息的流動(dòng)。 事件驅(qū)動(dòng)(event-driven)是處理連接端口通信的一種有效方法。 在許多情況下,在事件發(fā)生時(shí),程序希望被告知。如有一

57、個(gè)字符到達(dá) 或發(fā)生一個(gè)變化時(shí)。不管是否發(fā)生通信事件或錯(cuò)誤,程序都可以利用 mscomm 控件來(lái)檢測(cè)并處理這些通信事件及通信錯(cuò)誤。 程序通過(guò)檢查 commevent 屬性的值來(lái)輪詢(xún)事件和錯(cuò)誤。如果應(yīng)用 程序不大,這種方法可能比較好。例如,對(duì)一個(gè)簡(jiǎn)單的電話(huà)撥號(hào)程序 來(lái)說(shuō),并沒(méi)有必要接收每一個(gè)字符都生成事件,因?yàn)槲ㄒ恍杞邮盏淖?符就是調(diào)制解調(diào)器的 ok 相應(yīng)。固定的向設(shè)備查詢(xún)狀態(tài)時(shí),也以這個(gè)方 圖 18 圖 19 24 式較佳。 .3 mscommmscomm 控件控制原則控件控制原則 在使用 visual basic 所提供的串行通信功能之前,必須先了解 visual basic

58、的 mscomm 控件,以便可以套用串行通信的觀念。 對(duì)象:我們要使用 mscomm 控件對(duì)外進(jìn)行串行通信,因此在工具箱 中選擇了 mscomm 控件的圖標(biāo)后,便可以在窗體上安置一個(gè) mscomm 控 件,如同在畫(huà)面上安裝一個(gè)和串行端口通信的渠道。 屬性:每個(gè)控件的屬性都相當(dāng)多,但是通過(guò)屬性值的設(shè)置,我們 可以指定硬件以一定的方式工作。當(dāng)用戶(hù)在窗體上安置一個(gè) mscomm 控 件后,可以按下 f4 鍵調(diào)出其相應(yīng)的屬性表,其中列出了所有可在設(shè)計(jì) 階段更改的屬性。屬性欄將各個(gè)屬性都列出來(lái),用戶(hù)可在選擇相應(yīng)的 項(xiàng)目后,進(jìn)行屬性的設(shè)置。 .4 mscommmscomm 控件屬性說(shuō)明控件

59、屬性說(shuō)明 mscomm 控件屬性很多,重要屬性做如下說(shuō)明: commport 屬性:用來(lái)設(shè)置或返回通信連接端口號(hào)碼。程序必須指 定所要使用的串行端口號(hào)碼,windows 系統(tǒng)會(huì)使用所設(shè)置的通信端口 與外界進(jìn)行通信,程序也可借助此屬性返回所使用的連接端口號(hào)碼。 在此設(shè)置的通信連接端口號(hào)由 1 開(kāi)始遞增,最大值為 16。 例如: mscomm1.commport=1 設(shè)置 com1 進(jìn)行通信傳輸。 settings 屬性:設(shè)置串行傳輸?shù)臉?biāo)準(zhǔn)格式。這個(gè)屬性設(shè)置的參數(shù) 就是串行傳輸端口設(shè)置。其中包含傳送速度、奇偶校驗(yàn)、數(shù)據(jù)位、停 止位等 4 個(gè)參數(shù)。其格式為“bbbb,p,d,s”,其中,bbbb 表

60、示聯(lián)機(jī)速 率、p 表示奇偶校驗(yàn)方式、d 為數(shù)據(jù)位數(shù)、s 則為停止位數(shù)。默認(rèn)值是 “9600,n,8,1” ,它表示所使用的通信端口是以每秒 9600 位的速率 進(jìn)行傳輸,不進(jìn)行奇偶校驗(yàn)檢查,數(shù)據(jù)單元是 8 位,停止位為 1 位。 合法的奇偶校驗(yàn)位設(shè)置如表 5 所示。這 4 個(gè)參數(shù)必須按順序排列,不 可前后對(duì)調(diào)。通過(guò) settings 屬性設(shè)置后,傳送和接收雙方必須遵循傳 輸協(xié)定,否則無(wú)法傳送和接收。 例如:mscomm1.settings=“9600,n,8,1” 25 表 5 合法的奇偶校驗(yàn)位設(shè)置 設(shè)置 emosnnone 說(shuō)明偶數(shù)記號(hào)奇數(shù)空白默認(rèn)值無(wú)奇偶校驗(yàn) portopen 屬性:在開(kāi)始

溫馨提示

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

評(píng)論

0/150

提交評(píng)論