




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 單片機(jī)串行通信功能設(shè)計(jì) 摘 要 現(xiàn)代的單片機(jī)測(cè)控系統(tǒng)中通常以 pc 機(jī)作為控制中心,單片機(jī) 將采集到的數(shù)據(jù)通過(guò)串口送給 pc 機(jī)進(jìn)行各種處理,為保證數(shù)據(jù)傳 送的及時(shí)性和正確性,就必須建立可靠的通訊。在開(kāi)發(fā)控制系統(tǒng)時(shí), 信號(hào)的測(cè)控及采集均由單片機(jī)系統(tǒng)自行完成,然后通過(guò)異步串行通 信口將信號(hào)實(shí)時(shí)地傳送給 pc 機(jī)進(jìn)行處理。上位 pc 機(jī)使用 vb 進(jìn)行 串口通信的編程,下位單片機(jī)使用 c51 進(jìn)行編程。本文詳述了使用 vb 和 c51 實(shí)現(xiàn) pc 機(jī)和單片機(jī)串行通信的開(kāi)發(fā)方法,并簡(jiǎn)要地介紹 了 vb 通訊控件及其使用方法,給出了調(diào)試程序。 采用將置于現(xiàn)場(chǎng) mcs 一 51 單片機(jī)應(yīng)用系統(tǒng)掛在主機(jī)
2、 pc 的串 行通信上,通過(guò)串行通信電路及系統(tǒng)控制軟件與 pc 機(jī)和單片機(jī)進(jìn) 行數(shù)據(jù)交換的方式,實(shí)現(xiàn)了對(duì)現(xiàn)場(chǎng)數(shù)據(jù)的接收與發(fā)送。串行通信系 統(tǒng)主機(jī)采用標(biāo)準(zhǔn)接口。該系統(tǒng)的通信是由 pc 機(jī)主動(dòng)進(jìn)行發(fā)信訪(fǎng)問(wèn), 各個(gè) mcs 一 51 單片機(jī)處于被動(dòng)通信狀態(tài),對(duì) pc 機(jī)與單片機(jī)數(shù)據(jù) 通信的校驗(yàn)采用奇校驗(yàn)方式。 關(guān)鍵詞關(guān)鍵詞: 單片機(jī);串行通信; vb 程序設(shè)計(jì); 上位機(jī) abstract modern microcontroller measure-control system usually regard pc as the control center, the microcontroller
3、will send the collected data to a pc for a serial port, to ensure that the transmission of all the timeliness and accuracy data, it must establish reliable communication. in the development of the control system, signal control and collection of microcomputer system itself, then through asynchronous
4、 serial communication to the real-time signal transmitted pc.pc using vb programming for serial communication, scm c51 use for programming. the paper describes using vb c51 and pc machine and mcu development method of serial communication, and briefly introduces the method of using vb communication
5、control is presented, and debugging. using placed on site mcs a 51 scm system in the pc host hanging on the serial communication, through serial communication circuit and control system software and pc and mcu exchange data on site, receiving and sending data. serial communication system is using st
6、andard interface host. the system of communication by the pc is active on a visit each mcs kindhearted passive communication 51-series microcomputer. for pc and calibration adopts single-chip data communications parity. keywords: single chip; serial communication; vb program design; host computer 目
7、錄 第一章第一章 緒論緒論.1 1.1 單片機(jī)技術(shù)介紹.1 1.2 課題背景與意義.2 1.3 課題研究?jī)?nèi)容.3 第二章第二章 串行通信基礎(chǔ)串行通信基礎(chǔ).4 2.1 串行通信協(xié)議.4 2.2 通信方式.5 2.2.1 串行通信.5 2.2.2 并行通信.6 2.3 串行通信方式.6 2.3.1 異步串行通信方式.6 2.3.2 同步串行通信方式.7 2.4 串行通信的制式.8 2.4.1 單工.8 2.4.2 半雙工.8 2.4.3 全雙工.9 2.5 波特率.9 2.6 串行通信的錯(cuò)誤校驗(yàn).10 2.6.1 奇偶校驗(yàn).10 2.6.2 代碼和校驗(yàn).10 2.6.3 循環(huán)冗余校驗(yàn).10 2.7
8、 串行通信的工作方式.11 2.7.1 方式 0.11 2.7.2 方式 1.12 2.7.3 方式 2 和方式 3.13 2.8 本章小結(jié).14 第三章第三章 系統(tǒng)開(kāi)發(fā)基礎(chǔ)系統(tǒng)開(kāi)發(fā)基礎(chǔ).15 3.1 系統(tǒng)硬件.15 3.1.1 微處理器芯片 89c51.15 3.1.2 顯示芯片 hd7279a.17 3.1.3 串行通信芯 max232.18 3.2 軟件工具及編程語(yǔ)言.19 3.2.1 選用 vb 開(kāi)發(fā)上位機(jī)軟件.19 3.2.2 mscomm 控件的主要屬性、事件.19 3.2.3 編程小結(jié).20 33 系統(tǒng)方案設(shè)計(jì).21 第四章第四章 系統(tǒng)方案實(shí)施系統(tǒng)方案實(shí)施.22 4.1 接口設(shè)計(jì)
9、.22 4.1.1 系統(tǒng)連接電路.22 4.1.2 串行通信電路.23 4.2 軟件設(shè)計(jì).24 4.2.1 顯示 hd7279 顯示程序.24 4.2.2 串行口通信.25 4.2.3 vb 通信程序.26 4.3 小結(jié).27 第五章第五章 結(jié)束語(yǔ)結(jié)束語(yǔ).28 致致 謝謝.29 參考文獻(xiàn)參考文獻(xiàn).30 第一章 緒論 1.11.1 單片機(jī)單片機(jī)技術(shù)介紹技術(shù)介紹 單片機(jī)也被稱(chēng)為 微控制器(microcontroller unit) ,常用英文字母的縮 寫(xiě) mcu 表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有 cpu 的專(zhuān)用處理器發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和 cpu
10、集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成為復(fù)雜的而對(duì)體 積要求嚴(yán)格的控制設(shè)備當(dāng)中。 自單片機(jī)出現(xiàn)至今,單片機(jī)技術(shù)已走過(guò)了近 20 年的發(fā)展路程??v觀 20 年 來(lái)單片機(jī)發(fā)展歷程可以看出,單片機(jī)技術(shù)的發(fā)展以微處理器(mpu)技術(shù)及超大 規(guī)模集成電路技術(shù)的發(fā)展為先導(dǎo),以廣泛的應(yīng)用領(lǐng)域?yàn)槔瓌?dòng),表現(xiàn)出較微處理 器更具個(gè)性的發(fā)展趨勢(shì)。與此同時(shí)在市場(chǎng)上以單片機(jī)為核心控制器的產(chǎn)品更是 層出不窮,各種家用電器、智能儀器儀表、醫(yī)療器械、機(jī)電一體化、實(shí)時(shí)工業(yè) 控制、交通領(lǐng)域無(wú)不用到單片機(jī)。從目前單片機(jī)的發(fā)展趨勢(shì)來(lái)看,單片機(jī)控制 技術(shù)已成為電子設(shè)計(jì)技術(shù)及計(jì)算機(jī)技術(shù)不可缺少的一個(gè)重要部分,因此單片機(jī) 系統(tǒng)在電子
11、世界里有著較好的前景,進(jìn)行單片機(jī)的系統(tǒng)開(kāi)發(fā)設(shè)計(jì)在當(dāng)今電子領(lǐng) 域有著重大的意義。 單片機(jī)又稱(chēng)單片微控制器 ,它不是完成某一個(gè)邏輯功能的芯片 ,而是把一 個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比, 單片機(jī)只缺少了 i/o 設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體 積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。同時(shí),學(xué) 習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。 它是一種在線(xiàn)式實(shí)時(shí)控制計(jì)算機(jī),在線(xiàn)式就是現(xiàn)場(chǎng)控制,需要的是有較 強(qiáng)的抗干擾能力,較低的成本,這也是和離線(xiàn)式計(jì)算機(jī)的(比如家用pc) 的主要區(qū)別。 單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過(guò)不同
12、的程序?qū)崿F(xiàn)不同的功 能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到 的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國(guó) 50 年代開(kāi)發(fā)的 74 系列,或者 60 年代的 cd4000 系列這些純硬件來(lái)搞定的 話(huà),電路一定是一塊大 pcb 板!但是如果要是用美國(guó) 70 年代成功投放市 場(chǎng)的系列單片機(jī),結(jié)果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)的通過(guò)你編寫(xiě)的程序 可以實(shí)現(xiàn)高智能,高效率,以及高可靠性! 由于單片機(jī)對(duì)成本是敏感的,所以目前占統(tǒng)治地位的軟件還是最低級(jí) 匯編語(yǔ)言,它是除了二進(jìn)制機(jī)器碼以上最低級(jí)的語(yǔ)言了,既然這么低級(jí)為什 么還要用呢?很多高級(jí)的語(yǔ)言已經(jīng)達(dá)到了可視化編
13、程的水平為什么不用呢? 原因很簡(jiǎn)單,就是單片機(jī)沒(méi)有家用計(jì)算機(jī)那樣的cpu,也沒(méi)有像硬盤(pán)那樣 的海量存儲(chǔ)設(shè)備。一個(gè)可視化高級(jí)語(yǔ)言編寫(xiě)的小程序里面即使只有一個(gè)按鈕, 也會(huì)達(dá)到幾十 k 的尺寸!對(duì)于家用 pc 的硬盤(pán)來(lái)講沒(méi)什么,可是對(duì)于單片機(jī) 來(lái)講是不能接受的。 單片機(jī)在硬件資源方面的利用率必須很高才行,所以 匯編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計(jì)算機(jī)上的操作 系統(tǒng)和應(yīng)用軟件拿到家用 pc 上來(lái)運(yùn)行,家用 pc 的也是承受不了的。 1.21.2 課題背景與意義課題背景與意義 計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行 通訊二種方式。由于串行通訊方式具有使用線(xiàn)路少
14、、成本低,特別是在遠(yuǎn)程傳 輸時(shí),避免了多條線(xiàn)路特性的不一致而被廣泛采用。 在串行通訊時(shí),要求通訊 雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同 的設(shè)備可以方便地連接起來(lái)進(jìn)行通訊。 rs-232-c 接口(又稱(chēng) eia rs-232-c)是目前最常用的一種串行通訊接口。 它是在 1970 年由美國(guó)電子工業(yè)協(xié)會(huì)(eia)聯(lián)合貝爾系統(tǒng)、 調(diào)制解調(diào)器廠家及計(jì) 算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo) 準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè) 備(dte)和數(shù)據(jù)通訊設(shè)備(dce)之間 串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”該標(biāo)準(zhǔn) 規(guī)定采用一個(gè) 25 個(gè)腳的 db25 連接器,對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī) 定,還對(duì)各種信 號(hào)的電平
15、加以規(guī)定。 隨著計(jì)算機(jī)技術(shù)尤其是單片微型機(jī)技術(shù)的發(fā)展,人們已越來(lái)越多地采用單 片機(jī)來(lái)對(duì)一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數(shù)進(jìn)行檢測(cè)和控制。pc 機(jī)具有強(qiáng)大的監(jiān)控和管理功能,而單片機(jī)則具有快速及靈活的控制特點(diǎn),通過(guò) pc 機(jī)的 rs-232 串行接口與外部設(shè)備進(jìn)行通信,是許多測(cè)控系統(tǒng)中常用的一種 通信解決方案。因此如何實(shí)現(xiàn) pc 機(jī)與單片機(jī)之間的通訊具有非常重要的現(xiàn)實(shí)意 義。 1.31.3 課題研究?jī)?nèi)容課題研究?jī)?nèi)容 設(shè)計(jì)要求實(shí)現(xiàn)如下功能 (1)完成最小系統(tǒng)設(shè)計(jì); (2)設(shè)計(jì)串行通信接口,實(shí)現(xiàn)與 pc 機(jī)的通信; (3)具有人機(jī)對(duì)話(huà)功能,可通過(guò)鍵盤(pán)進(jìn)行輸入。 具有串行通信功能的數(shù)據(jù)采集模塊為
16、通用化模塊設(shè)計(jì),下位機(jī) a/d 芯片可 采集工業(yè)現(xiàn)場(chǎng)的標(biāo)準(zhǔn)信號(hào),經(jīng)單片機(jī)數(shù)據(jù)量化能夠?qū)崟r(shí)上傳給 pc 機(jī),靈活組 網(wǎng),使用十分方便?;趩纹瑱C(jī)技術(shù)的發(fā)展,隨著其成本的降低,這種通過(guò) rs232 串口與外圍數(shù)據(jù)采集設(shè)備的通信模式將會(huì)更大地發(fā)揮其市場(chǎng)價(jià)值。下章 先介紹串行通信基礎(chǔ)知識(shí)。 第二章 串行通信基礎(chǔ) 2.12.1 串行通信協(xié)議串行通信協(xié)議 最被人們熟悉的串行通信技術(shù)標(biāo)準(zhǔn)是eia232、eia-422 和 eia485,也就是以前所稱(chēng)的 rs-232、rs-422 和 rs-485。由于 eia 提出 的建議標(biāo)準(zhǔn)都是以 “rs”作為前綴,所以在工業(yè)通信領(lǐng)域,仍然習(xí)慣將上述標(biāo) 準(zhǔn)以 rs 作前
17、綴稱(chēng)謂。 eia232、eia-422 和 eia485 都是串行數(shù)據(jù)接口標(biāo)準(zhǔn),最初都是由 電子工業(yè)協(xié)會(huì)( eia)制訂并發(fā)布的, eia-232 在 1962 年發(fā)布,后來(lái)陸續(xù) 有不少改進(jìn)版本,其中最常用的是eia-232-c 版。 (1)eia-232 目前 eia-232 是 pc 機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。 eia-232 被定義為一種在低速率串行通信中增加通信距離的單端標(biāo)準(zhǔn)。 eia-232 采取不平衡傳輸方式,即所謂單端通信。標(biāo)準(zhǔn)規(guī)定,eia232 的 傳送距離要求可達(dá) 50 英尺(約 15 米) ,最高速率為 20kbps。 (2)eia-422 由于 eia-23
18、2 存在傳輸距離有限等不足,于是 eia-422 誕生了。eia- 422 標(biāo)準(zhǔn)全稱(chēng)是“平衡電壓數(shù)字接口電路的電氣特性 ”,它定義了一種平衡通 信接口,將傳輸速率提高到 10mbps,傳輸距離延長(zhǎng)到 4000 英尺(約 1219 米) ,并允許在一條平衡總線(xiàn)上連接最多10 個(gè)接收器。當(dāng)然, eia422 也 有缺陷: 因?yàn)槠淦胶怆p絞線(xiàn)的長(zhǎng)度與傳輸速率成反比,所以在100kbps 速 率以?xún)?nèi),傳輸距離才可能達(dá)到最大值,也就是說(shuō),只有在很短的距離下才能 獲得最高傳輸速率。一般在 100 米長(zhǎng)的雙絞線(xiàn)上所能獲得的最大傳輸速率僅 為 1mbps。另外有一點(diǎn)必須指出,在 eia-422 通信中,只有一個(gè)
19、主設(shè)備 (master) ,其余為從設(shè)備( salve) ,從設(shè)備之間不能進(jìn)行通信,所以eia- 422 支持的是點(diǎn)對(duì)多點(diǎn)的雙向通信。 (3)eia-485 為擴(kuò)展應(yīng)用范圍, eia 于 1983 年在 eia-422 基礎(chǔ)上制定了 eia-485 標(biāo) 準(zhǔn),增加了多點(diǎn)、雙向通信能力,即允許多個(gè)發(fā)送器連接到同一條總線(xiàn)上, 同時(shí)增加了發(fā)送器的驅(qū)動(dòng)能力和沖突保護(hù)特性,擴(kuò)展了總線(xiàn)共模范圍,后命 名為 tia/eia-485-a 標(biāo)準(zhǔn)。 由于 eia-485 是從 eia-422 基礎(chǔ)上發(fā)展而來(lái)的,所以 eia-485 許多電 氣規(guī)定與 eia-422 相仿,如都采用平衡傳輸方式、都需要在傳輸線(xiàn)上接終接
20、 電阻、最大傳輸距離約為 1219 米、最大傳輸速率為 10mbps 等。但是, eia-485 可以采用二線(xiàn)與四線(xiàn)方式,采用二線(xiàn)制時(shí)可實(shí)現(xiàn)真正的多點(diǎn)雙向通 信,而采用四線(xiàn)連接時(shí),與 eia-422 一樣只能實(shí)現(xiàn)點(diǎn)對(duì)多點(diǎn)通信,但它比 eia-422 有改進(jìn), 無(wú)論四線(xiàn)還是二線(xiàn)連接方式總線(xiàn)上可接多達(dá)32 個(gè)設(shè)備。 由于 eia-232、eia-422 與 eia-485 標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定, 而不涉及接插件、電纜或協(xié)議,標(biāo)準(zhǔn)內(nèi)容規(guī)定比較簡(jiǎn)單,在此標(biāo)準(zhǔn)基礎(chǔ)上, 用戶(hù)可以建立自己的高層通信協(xié)議。因此,這些串行通信技術(shù)應(yīng)用很廣,如 錄像機(jī)、計(jì)算機(jī)以及許多工業(yè)控制設(shè)備上都配備有eia232
21、串行通信接 口。 2.22.2 通信方式通信方式 通信方式分為并行通信方式和串行通信方式兩種 2.2.12.2.1 串行通信串行通信 所謂串行通信是指將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線(xiàn)上逐個(gè) 地傳送,此時(shí)只需要一條數(shù)據(jù)線(xiàn),外加一條公共信號(hào)地線(xiàn)和若干控制信號(hào)線(xiàn)。 因此一次只能傳輸一位,所以對(duì)于一個(gè)字節(jié)的數(shù)據(jù),至少要分8位才能傳送完 畢。串行通信的必要過(guò)程是:發(fā)送時(shí),要把并行數(shù)據(jù)變成串行數(shù)據(jù)發(fā)送到線(xiàn)路 上去,接受時(shí),要把串行信號(hào)再變成并行數(shù)據(jù),這樣才能被計(jì)算機(jī)及其他設(shè)備 處理。如圖 2.1 所示1。 發(fā)送設(shè)備接收設(shè)備 8 位順次傳送 gnd 停止位起始位 11 000 11 0001 d7d
22、6d5d4d3d2d1d0 圖 2.1 串行通信方式 串行通訊方式,由于高速率的要求,處于計(jì)算機(jī)內(nèi)部的cpu與串口之間 的通訊仍然采用并行的通訊方式,所以串行口的本質(zhì)就是實(shí)現(xiàn)cpu與外圍數(shù) 據(jù)設(shè)備的數(shù)據(jù)格式轉(zhuǎn)換(或者稱(chēng)為串并轉(zhuǎn)換器),即當(dāng)數(shù)據(jù)從外圍設(shè)備輸入計(jì) 算機(jī)時(shí),數(shù)據(jù)格式由位 (bit)轉(zhuǎn)化為字節(jié)數(shù)據(jù);串行端口的本質(zhì)功能是作為 cpu和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從 cpu經(jīng)過(guò)串行端口發(fā)送出去時(shí), 字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位。在接收數(shù)據(jù)時(shí),串行的位被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。反之, 當(dāng)計(jì)算機(jī)發(fā)送下行數(shù)據(jù)到外圍設(shè)備時(shí),串口又將字節(jié)數(shù)據(jù)轉(zhuǎn)化為位數(shù)據(jù)。 2.2.22.2.2 并行通信并行通信 通信有并行和串
23、行兩種方式。并行通訊通常是將數(shù)據(jù)的各位用多條數(shù)據(jù)線(xiàn) 同時(shí)進(jìn)行傳輸,并由傳輸?shù)臄?shù)據(jù)位數(shù)線(xiàn)外加地址線(xiàn)和通信控制線(xiàn)。優(yōu)點(diǎn)是傳輸 速率高,缺點(diǎn)是長(zhǎng)距離傳輸成本高,可靠性差,只適用于近距離傳輸。 2.32.3 串行通信方式串行通信方式 串行通信又有兩種方式:異步串行通信和同步串行通信。 2.3.12.3.1 異步串行通信方式異步串行通信方式 異步串行通信方式是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的 發(fā)送和接收過(guò)程。為使雙方收、發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時(shí)鐘盡可能一 致。 異步串行通信的字符物格式所謂異步串行通信是指具有不規(guī)則數(shù)據(jù)段傳 送特性的串行數(shù)據(jù)傳輸 。 異步通信數(shù)據(jù)幀的第一位是開(kāi)始位,在
24、通信線(xiàn)上沒(méi)有數(shù)據(jù)傳送時(shí)處于邏 輯“1”狀態(tài)。當(dāng)發(fā)送設(shè)備要發(fā)送一個(gè)字符數(shù)據(jù)時(shí),首先發(fā)出一個(gè)邏輯“0”信 號(hào),這個(gè)邏輯低電平就是起始位。起始位通過(guò)通信線(xiàn)傳向接收設(shè)備,當(dāng)接收 設(shè)備檢測(cè)到這個(gè)邏輯低電平后,就開(kāi)始準(zhǔn)備接收數(shù)據(jù)位信號(hào)。因此,起始位 所起的作用就是表示字符傳送開(kāi)始。 當(dāng)接收設(shè)備收到起始位后,緊接著就會(huì)收到數(shù)據(jù)位。數(shù)據(jù)位的個(gè)數(shù)可以 是5,6,7或8位的數(shù)據(jù)。在字符數(shù)據(jù)傳送過(guò)程中,數(shù)據(jù)位從最低位開(kāi)始 傳輸。數(shù)據(jù)發(fā)送完之后,可以發(fā)送奇偶校驗(yàn)位。奇偶校驗(yàn)位用于有限差錯(cuò)檢 測(cè),通信雙方在通信時(shí)需約定一致的奇偶校驗(yàn)方式。就數(shù)據(jù)傳送而言,奇偶 校驗(yàn)位是冗余位,但它表示數(shù)據(jù)的一種性質(zhì),這種性質(zhì)用于檢錯(cuò),雖
25、有限但 很容易實(shí)現(xiàn)。在奇偶位或數(shù)據(jù)位之后發(fā)送的是停止位,可以是1位、 15位或2位。停止位是一個(gè)字符數(shù)據(jù)的結(jié)束標(biāo)志。 在異步通信中,字符數(shù)據(jù)以圖所示的格式一個(gè)一個(gè)地傳送。在發(fā)送間隙, 即空閑時(shí),通信線(xiàn)路總是處于邏輯 “1”狀態(tài),每個(gè)字符數(shù)據(jù)的傳送均以邏輯 “0”開(kāi)始2,如圖 2.2.1 所示。 停 止 位數(shù)據(jù)位 校 驗(yàn) 位 起 始 位 lsbmsb 空 閑 下一字符 起始位 空 閑 一個(gè)字符幀 圖 2.2 異步串行通信字符幀格式 異步通信的特點(diǎn):不要求收發(fā)雙方時(shí)鐘的嚴(yán)格一致,實(shí)現(xiàn)容易,設(shè)備開(kāi)銷(xiāo) 較小,但每個(gè)字符要附加23位,用于起止位,校驗(yàn)位和停止位,各幀之間還 有間隔,因此傳輸效率不高。 在
26、單片機(jī)與單片機(jī)之間,單片機(jī)與計(jì)算機(jī)之間通信時(shí),通常采用異步串行 通信。 2.3.22.3.2 同步串行通信方式同步串行通信方式 同步通信時(shí)要建立發(fā)送方時(shí)鐘對(duì)接收方時(shí)鐘的直接控制,使雙方完全達(dá)到 完全同步。此時(shí),傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時(shí)傳送 的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對(duì)接收 方的同步可以通過(guò)外同步和自同步兩種方法實(shí)現(xiàn)。如圖 2.2.2 所示 snysny數(shù)據(jù) 1數(shù)據(jù) 2數(shù)據(jù) n.crc1crc2 二個(gè)同步字符連續(xù)幾個(gè)數(shù)據(jù)2 字節(jié)校驗(yàn)碼 圖 2.3 同步串行通信數(shù)據(jù)格式 2.42.4 串行通信的制式串行通信的制式 2.4.12.4.1
27、單工單工 單工是指數(shù)據(jù)傳輸僅能沿一個(gè)方向,不能實(shí)現(xiàn)反方向傳輸3。如圖 2.3.1 所 示。 發(fā)送設(shè)備接收設(shè)備 數(shù)據(jù)流 通信連接 圖 2.4 單工 2.4.22.4.2 半雙工半雙工 半雙工是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行。如圖 2.3.2 所示。 發(fā)送設(shè)備 接收設(shè)備接收設(shè)備 發(fā)送設(shè)備 數(shù)據(jù)流 通信連接 圖 2.5 半雙工 2.4.32.4.3 全雙工全雙工 全雙工是指數(shù)據(jù)可以同時(shí)進(jìn)行雙向傳輸。如圖 2.3.3 所示。 發(fā)送設(shè)備 接收設(shè)備接收設(shè)備 發(fā)送設(shè)備 數(shù)據(jù)流 通信連接 圖 2.6 全雙工 2.52.5 波特率波特率 數(shù)據(jù)的傳輸速度可以用波特率表示。波特率是美妙傳輸二進(jìn)制代碼的位數(shù)
28、, 單位:位/s。在異步通訊中,接收方和發(fā)送方應(yīng)使用相同的波特率,才能成功 傳輸數(shù)據(jù)。 波特率的計(jì)算 在串行通信中,收發(fā)雙方對(duì)發(fā)送或接收數(shù)據(jù)的速率要有約定。通過(guò)軟件可 對(duì)單片機(jī)串行口編程為四種工作方式,其中方式 0 和方式 2 的波特率是固定的, 而方式 1 和方式 3 的波特率是可變的,由定時(shí)器 t1 的溢出率來(lái)決定。 串行口的四種工作方式對(duì)應(yīng)三種波特率。由于輸入的移位時(shí)鐘的來(lái)源不同, 所以,各種方式的波特率計(jì)算公式也不相同4。 方式 0 的波特率 = fosc/12 方式 2 的波特率 =(2smod/64) fosc 方式 1 的波特率 =(2smod/32)(t1 溢出率) 方式 3
29、的波特率 =(2smod/32)(t1 溢出率) 當(dāng) t1 作為波特率發(fā)生器時(shí),最典型的用法是使 t1 工作在自動(dòng)再裝入的 8 位定 時(shí)器方式(即方式 2,且 tcon 的 tr1=1,以啟動(dòng)定時(shí)器) 。這時(shí)溢出率取決于 th1 中的計(jì)數(shù)值。如公式 2-1 所示。 t1 溢出率 = fosc /12256 (th1) (2-1) 2.62.6 串行通信的錯(cuò)誤校驗(yàn)串行通信的錯(cuò)誤校驗(yàn) 2.6.12.6.1 奇偶校驗(yàn)奇偶校驗(yàn) 在傳送數(shù)據(jù)時(shí),數(shù)據(jù)位尾隨的 1 位為奇偶校驗(yàn)位(1 或 0) ,奇校驗(yàn)時(shí),數(shù) 據(jù)中 1 的個(gè)數(shù)與校驗(yàn)位 1 的個(gè)數(shù)之和應(yīng)為奇數(shù);偶校驗(yàn)時(shí),數(shù)據(jù)中 1 的個(gè)數(shù)與 校驗(yàn)位 1 的個(gè)
30、數(shù)之和應(yīng)為偶數(shù)。接收字符時(shí),對(duì) 1 的個(gè)數(shù)進(jìn)行校驗(yàn),若發(fā)現(xiàn)不 一致,則說(shuō)明傳輸數(shù)據(jù)過(guò)程中出現(xiàn)了差錯(cuò)5。 2.6.22.6.2 代碼和校驗(yàn)代碼和校驗(yàn) 代碼和校驗(yàn)是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或) ,產(chǎn)生一個(gè)字節(jié)的 校驗(yàn)字符(校驗(yàn)和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)時(shí)同時(shí)對(duì)數(shù)據(jù)塊(除 校驗(yàn)字節(jié)外)求和(或各字節(jié)異或) ,將所得的結(jié)果與發(fā)送方的“校驗(yàn)和”進(jìn)行比 較,相符則無(wú)差錯(cuò),否則即認(rèn)為傳送過(guò)程中出現(xiàn)了差錯(cuò)。 2.6.32.6.3 循環(huán)冗余校驗(yàn)循環(huán)冗余校驗(yàn) 這種校驗(yàn)是通過(guò)某種數(shù)學(xué)運(yùn)算實(shí)現(xiàn)有效信息與校驗(yàn)位之間的循環(huán)校驗(yàn),常 用于對(duì)磁盤(pán)信息的傳輸,存儲(chǔ)區(qū)的完整性校驗(yàn)等。這種校驗(yàn)方法糾錯(cuò)能力強(qiáng),
31、廣泛應(yīng)用于同步通信中。 2.72.7 串行通信的工作方式串行通信的工作方式 串行接口可由 scon 中的 sm0 和 sm1 設(shè)置 4 種工作方式。 2.7.12.7.1 方式方式 0 0 方式 0 時(shí),串行口為同步移位寄存器的輸入輸出方式。主要用于擴(kuò)展并行 輸入或輸出口。數(shù)據(jù)由 rxd(p3.0)引腳輸入或輸出,同步移位脈沖由 txd(p3.1)引腳輸出。發(fā)送和接收均為 8 位數(shù)據(jù),低位在先,高位在后。波 特率固定為 fosc/12。 (1)方式 0 輸出 圖 2.7 方式 0 輸出時(shí)序 (2)方式 0 輸入 圖 2.8 方式 0 輸入時(shí)序 d0 d1 d2 d3 d4 d5 d6 d7 寫(xiě)
32、入sbuf rxd(數(shù)據(jù)) txd(移位脈沖) ti(中斷標(biāo)志) ren=1 rxd(數(shù)據(jù)輸入) txd(移位脈沖) ri=0 d0d1d2d3 d4 d5d6d7 方式 0 接收和發(fā)送電路,如圖 圖 2.9 全雙工 2.7.2 方式方式 1 (1)方式 1 輸出 圖 2.10 方式 1 輸出時(shí)序 (2)方式 1 輸入 圖 2.11 方式 1 輸入時(shí)序 用軟件置 ren 為 1 時(shí),接收器以所選擇波特率的 16 倍速率采樣 rxd 引 腳電平,檢測(cè)到 rxd 引腳輸入電平發(fā)生負(fù)跳變時(shí),則說(shuō)明起始位有效,將其 移入輸入移位寄存器,并開(kāi)始接收這一幀信息的其余位。接收過(guò)程中,數(shù)據(jù)從 輸入移位寄存器右
33、邊移入,起始位移至輸入移位寄存器最左邊時(shí),控制電路進(jìn) 行最后一次移位。當(dāng) ri=0,且 sm2=0(或接收到的停止位為 1)時(shí),將接收到 的 9 位數(shù)據(jù)的前 8 位數(shù)據(jù)裝入接收 sbuf,第 9 位(停止位)進(jìn)入 rb8,并置 ri=1,向 cpu 請(qǐng)求中斷。 74ls164 rxd txd p1.0 80c51 clrclk a b gnd 74ls165 rxd txd p1.0 80c51 s/lclk q gnd d0 d1 d2 d3 d4 d5 d6 d7 停止位 rxd ri(中斷標(biāo)志) 起始 位采樣脈沖 d0 d1 d2 d3 d4 d5 d6 d7 寫(xiě)入sbuf 停止位 tx
34、d ti(中斷標(biāo)志) 起始 2.7.32.7.3 方式方式 2 2 和方式和方式 3 3 方式 2 或方式 3 時(shí)為 11 位數(shù)據(jù)的異步通信口。txd 為數(shù)據(jù)發(fā)送引腳, rxd 為數(shù)據(jù)接收引腳 。 圖 2.12 異步通信字符幀格式 方式 2 和方式 3 時(shí)起始位 1 位,數(shù)據(jù) 9 位(含 1 位附加的第 9 位,發(fā)送時(shí) 為 scon 中的 tb8,接收時(shí)為 rb8) ,停止位 1 位,一幀數(shù)據(jù)為 11 位。方式 2 的波特率固定為晶振頻率的 1/64 或 1/32,方式 3 的波特率由定時(shí)器 t1 的溢出 率決定。 (1)方式 2 和方式 3 輸出 圖 2.13 方式 2 和方式 3 的發(fā)送時(shí)
35、序 發(fā)送開(kāi)始時(shí),先把起始位 0 輸出到 txd 引腳,然后發(fā)送移位寄存器的輸出 位(d0)到 txd 引腳。每一個(gè)移位脈沖都使輸出移位寄存器的各位右移一位, 并由 txd 引腳輸出。 第一次移位時(shí),停止位“1”移入輸出移位寄存器的第 9 位上 ,以后每次移 位,左邊都移入 0。當(dāng)停止位移至輸出位時(shí),左邊其余位全為 0,檢測(cè)電路檢測(cè) 到這一條件時(shí),使控制電路進(jìn)行最后一次移位,并置 ti=1,向 cpu 請(qǐng)求中斷。 (2)方式 2 和方式 3 輸入 停 止 位數(shù)據(jù)位9位 起 始 位 lsbmsb 空 閑 空 閑 d0 d7 1幀共11位 rb8/tb8 d0 d1 d2 d3 d4 d5 d6 d
36、7 寫(xiě)入sbuf 停止位 txd ti(中斷標(biāo)志) 起始 tb8 ri(中斷標(biāo)志) 位采樣脈沖 d0 d1 d2 d3 d4 d5 d6 d7 停止位 rxd 起始 rb8 圖 2.14 方式 2 和方式 3 的接收時(shí)序 接收時(shí),數(shù)據(jù)從右邊移入輸入移位寄存器,在起始位 0 移到最左邊時(shí),控 制電路進(jìn)行最后一次移位。當(dāng) ri=0,且 sm2=0(或接收到的第 9 位數(shù)據(jù)為 1) 時(shí),接收到的數(shù)據(jù)裝入接收緩沖器 sbuf 和 rb8(接收數(shù)據(jù)的第 9 位) ,置 ri=1,向 cpu 請(qǐng)求中斷。如果條件不滿(mǎn)足,則數(shù)據(jù)丟失,且不置位 ri,繼續(xù) 搜索 rxd 引腳的負(fù)跳變。 2.82.8 本章小結(jié)本
37、章小結(jié) 本章介紹了串行口的通信協(xié)議,通信方式,串行口的通信制式,串行口的 工作方式,串行通信的錯(cuò)誤校驗(yàn),串行通信的波特率,等串行通信的基礎(chǔ)知識(shí), 接下來(lái)將從具體的軟件來(lái)實(shí)現(xiàn)計(jì)算機(jī)與單片機(jī)的之間的通信。 第三章 系統(tǒng)開(kāi)發(fā)基礎(chǔ) 3.13.1 系統(tǒng)硬件系統(tǒng)硬件 3.1.13.1.1 微處理器芯片微處理器芯片 89c5189c51 (1)89c51組成:89c51由 8 個(gè)部件組 成,即微處理器(cpu) ,數(shù)據(jù)存儲(chǔ)器(ram) , 程序存儲(chǔ)器(eeprom),i/o口 (p0,p1,p2,p3) ,串行口,定時(shí)器計(jì)數(shù)器, 中斷系統(tǒng)及特殊功能寄存器(sfr) 數(shù)據(jù)存儲(chǔ)器:片內(nèi)為 128 個(gè)字節(jié),片外
38、最多可外擴(kuò) 64k字節(jié); 程序存儲(chǔ)器:片內(nèi)為4k eerpom,片 外最多可外擴(kuò) 64k字節(jié); 中斷系統(tǒng):具有 5 個(gè)中斷源,2 級(jí)中斷 優(yōu)先權(quán); 定時(shí)器/計(jì)數(shù)器:2 個(gè) 16 位的定時(shí)器/計(jì) 數(shù)器,具有四種工作方式; 串行口:1 個(gè)全雙工的串行口,具有四種工作方式; p0,p1,p2,p3:為 4 個(gè)并行i/o口; 特殊功能寄存器(sfr):共有 21 個(gè),用于對(duì)片內(nèi)各功能模塊進(jìn)行管 理,控制,監(jiān)視。實(shí)際上是一些控制寄存器和狀態(tài)寄存器,是一個(gè)特殊功能的 ram區(qū)。 微處理器(cpu):為 8 位的cpu,且內(nèi)含一個(gè) 1 位cpu(位處理器) 。 (2)引腳及功能: 電源及時(shí)鐘引腳 vcc(4
39、0):接+5v 直流電源 vss(20):接地 xtal1(19):接外部晶體的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一個(gè)反向 圖 3.1 89c51 單片機(jī)引腳圖 放大器的輸入端; xtal2(18):接外部晶體的一個(gè)引腳。在單片機(jī)內(nèi)部接到內(nèi)部反相器 的輸出端; 控制引腳 rst/vpd(9):當(dāng)震蕩器運(yùn)行時(shí),在此引腳加上兩個(gè)機(jī)器周期的高電平 將使單片機(jī)復(fù)位(rst) 。掉電期間,此引腳可接上備用電源(vpd) ,以保持 內(nèi)部ram的數(shù)據(jù),當(dāng)vcc下降到低于規(guī)定的值,而vpd在其規(guī)定的電壓范 圍 內(nèi)(5+0.5v)時(shí),vpd就向內(nèi)部ram提供備用電源; ale/prog(30):當(dāng)訪(fǎng)問(wèn)單片機(jī)外部存儲(chǔ)器
40、時(shí),ale(地址鎖存允許) 輸出脈沖的負(fù)跳沿,用于 16 位地址的低 8 位的鎖存信號(hào)。即使不訪(fǎng)問(wèn)外部存儲(chǔ) 器,ale端仍有正脈沖信號(hào)輸出,此頻率為始終震蕩器頻率的 1/6。ale端 可以驅(qū)動(dòng) 8 個(gè)ttl負(fù)載。對(duì)于eprom型單片機(jī)(8751) ,在eprom編程 期間,此引腳用來(lái)輸入編程脈沖(prog) ; psen(29):此腳的輸出是單片機(jī)訪(fǎng)問(wèn)外部程序存儲(chǔ)器的讀選通信號(hào)。 在由外部程序存儲(chǔ)器取指令(或常數(shù))期間,每個(gè)機(jī)器周期psen兩次有效。 psen可以驅(qū)動(dòng) 8 個(gè)lsttl負(fù)載; ea/vpp(31):當(dāng) ea 端保持高電平時(shí),單片機(jī)訪(fǎng)問(wèn)內(nèi)部程序存儲(chǔ)器, 但在pc值超過(guò)0ffffh
41、,將自動(dòng)轉(zhuǎn)向執(zhí)行外部程序存儲(chǔ)器內(nèi)的程序。當(dāng)ea 保持低電平時(shí),只訪(fǎng)問(wèn)外部程序存儲(chǔ)器。對(duì)于89c51,因其片內(nèi)有 4kffprom,故該腳接高電平。在ffprom編程期間,vpp編程電壓為 +12v或+5v。 i/o口引腳 p0口(39-32):雙向 8 位三態(tài)i/o口,此口為地址總線(xiàn)(低 8 位)及數(shù) 據(jù)總線(xiàn)分時(shí)復(fù)用口,可帶 8 個(gè)lsttl負(fù)載; p1口(1-8):8 位準(zhǔn)雙向i/o口,可帶 4 個(gè)lsttl負(fù)載; p2口(21-28):8 位準(zhǔn)雙向i/o口,與地址總線(xiàn)(高 8 位)復(fù)用,可帶 4 個(gè)lsttl 負(fù)載; p3口(10-17):8 位準(zhǔn)雙向i/o口,雙功能復(fù)用口。 3.1.23
42、.1.2 顯示芯片顯示芯片 hd7279ahd7279a (1)hd7279a是鍵盤(pán)/顯示器的串行控制芯片,能同時(shí)驅(qū)動(dòng) 8 位共陰極 led數(shù)碼管或 64 個(gè)獨(dú)立的led發(fā)光二極管以及 64 鍵的鍵盤(pán)(8*8 鍵盤(pán)矩陣)。 (2)引腳及功能: 28 腳雙列直插式封裝,單一+5v供電。 圖 3.2 hd7279 引腳圖 表 21 hd7279 引腳說(shuō)明 引腳名稱(chēng)說(shuō)明 1,2 vcc+5v 電源 3,5nc懸空 4vss接地 6cs片選信號(hào),低電平有效 7clk同步時(shí)鐘輸入端 8data串行數(shù)據(jù)寫(xiě)入/讀出端 9key接鍵有效輸出端 10-16sg-saled 的 g-a 段驅(qū)動(dòng)輸出 17dp小數(shù)點(diǎn)
43、驅(qū)動(dòng)輸出端 18-25dig0-dig7led 驅(qū)動(dòng)輸出端 26clko振蕩輸出端 27rcrc 振蕩器連接端 28reset復(fù)位端,低電平有效 3.1.33.1.3 串行通信芯串行通信芯 max232max232 (1)通常pc機(jī)的主板會(huì)提供一個(gè)打印機(jī)輸出并行端口(lpt),兩個(gè)串行 口(com1、com2),并行口主要進(jìn)行短距離的數(shù)據(jù)傳送,至少需要8根數(shù)據(jù) 線(xiàn)同時(shí)進(jìn)行數(shù)據(jù)的傳送,因而傳送速率較快6。而長(zhǎng)距離的數(shù)據(jù)傳送只能采用串 行口,串行口只需要一根數(shù)據(jù)線(xiàn)進(jìn)行數(shù)據(jù)傳送,傳送距離較長(zhǎng),投資較少,但 傳送速率較低。rs232c也是人們常用的網(wǎng)絡(luò)通信接口。此處,pc 機(jī)與單片 機(jī)的通信便采用該接
44、口。 (2)接口電路 為了能使單片機(jī)與pc機(jī)之間通信,必須使二者遵循相同的通信協(xié)議。由于 下位機(jī)的8031芯片串行口,輸入輸出為 ttl 邏輯電平,高電平為3.8 v左右, 低電平為0.3 v左右,這種以ttl電平傳送數(shù)據(jù)的方式,抗干擾性較差。而 上位機(jī)的rs232c串行口則采用+12 v和-12 v電平方式,使0信號(hào)和1 信號(hào)的電平差別增大,從而增強(qiáng)了抗干擾性。為了解決這一矛盾,可采用一個(gè) rs232c電平轉(zhuǎn)換器。它由發(fā)送器1488和接收器1489組成(見(jiàn)圖 3.13)。 10 11 20 8031 3 2 7 pc com1 1488 txd rxd gnd rxd txd 圖 3.3 串
45、行口連接電路 (3)在+5v電源供電情況下降ttl電平轉(zhuǎn)換為10v的rs-232電平,完全 可以替代傳統(tǒng)的mc-1488、mc-1489芯片的功能,簡(jiǎn)化了電路設(shè)計(jì),因此得到 了廣泛應(yīng)用。 引腳及功能: vcc:電源; gnd:接地 t1in,t2in:ttl/cmos輸入引腳 r1out,r2out:ttl/cmos輸出引腳 t1out:rs-232輸出口 r1in:rs-232輸入口 圖3.4 max232引腳圖 3.23.2 軟件工具及編程語(yǔ)言軟件工具及編程語(yǔ)言 3.2.13.2.1 選用選用 vbvb開(kāi)發(fā)開(kāi)發(fā)上位機(jī)軟件上位機(jī)軟件 visual basic(簡(jiǎn)稱(chēng)vb)是windows操作系
46、統(tǒng)下簡(jiǎn)單,易學(xué),高效的應(yīng) 用軟件開(kāi)發(fā)工具,已廣泛地應(yīng)用于各個(gè)領(lǐng)域,在微機(jī)串口方面也有很強(qiáng)的功能。 很多情況下我們需要把工程技術(shù)領(lǐng)域中系統(tǒng)采集的數(shù)據(jù)交給計(jì)算機(jī)來(lái)處理,或 者需要讓計(jì)算機(jī)發(fā)送指令來(lái)控制我們的系統(tǒng)。而大多數(shù)的微處理器都帶用串口, 這個(gè)時(shí)候需要編寫(xiě)一個(gè)界面良好的上位機(jī)軟件來(lái)和微處理器進(jìn)行通信。顯然, 選擇vb來(lái)開(kāi)發(fā)上位機(jī)軟件是一個(gè)不錯(cuò)的主意。 3.2.23.2.2 mscomm 控件的主要屬性、事件控件的主要屬性、事件 在 visual basic 中有一個(gè)名為 microsoft communication control(簡(jiǎn)稱(chēng) mscomm)的通信控件,利用這個(gè)控件我們可以很方便的
47、編寫(xiě)一個(gè)與單片機(jī)通信 的上位機(jī)7。 (1)mscomm 的屬性 由于 mscomm 控件屬性很多,在此筆者僅介紹與實(shí)現(xiàn)串口通信密切相關(guān) 的核心屬性。 commport:設(shè)置通信所占用的串口號(hào)。如設(shè)成 1(默認(rèn)值),表示對(duì) corn1 進(jìn)行操作。 setting:對(duì)串口通信的相關(guān)參數(shù)。包括串口通信的比特率,奇偶校驗(yàn),數(shù) 據(jù)位長(zhǎng)度、停止位等。其默認(rèn)值是“9600,n,8,1”,表示串口比特率是 9600bits,不作奇偶校驗(yàn),8 位數(shù)據(jù)位,1 個(gè)停止位。 portopen:設(shè)置串口狀態(tài),值為 true 時(shí)打開(kāi)串口,值為 false 時(shí)關(guān)閉串口。 input:從輸入寄存器讀取數(shù)據(jù),返回值為從串口讀取
48、的數(shù)據(jù)內(nèi)容,同時(shí)輸 入寄存器將被清空。 oupout:發(fā)送數(shù)據(jù)到輸出寄存器。 inbuffer count:設(shè)置輸入寄存器所存儲(chǔ)的字符數(shù),當(dāng)將其值設(shè)為 0 時(shí),則 輸入寄存器將被清空。 input mode:設(shè)置從輸入寄存器中讀取數(shù)據(jù)的形式。若值為 0,則表示以文 本形式讀?。恢禐?1,則表示以二進(jìn)制形式讀取。 out buffer count:設(shè)置輸出寄存器所存儲(chǔ)的字符數(shù),當(dāng)將其值設(shè)為 0 時(shí), 則輸出寄存器將被清空。 rthreshold:設(shè)置在 mscomm 控件設(shè)置 commevent 屬性為 comev receive 并產(chǎn)生 oncomm 事件之前要接受的字符數(shù)。 commeven
49、t 屬性:返回最近的通訊事件或錯(cuò)誤。通過(guò)對(duì)它具體屬性值的查 詢(xún),我們就可以獲得通訊事件和通訊錯(cuò)誤的完整信息。當(dāng)其值是 comevreceive 時(shí)表示接收到數(shù)據(jù)。 (2)mscomm 的事件 除了公共事件之外,mscomm 只有一個(gè) oncomm 事件。當(dāng) commevent 屬 性值變化時(shí)將發(fā)生 oncomm 事件,指示發(fā)生一個(gè)通信事件或錯(cuò)誤8。當(dāng)我們?cè)O(shè) 置 rtheshold 屬性值為 0 時(shí),將使得捕獲 comevreceive 事件無(wú)效。 3.2.33.2.3 編程小結(jié)編程小結(jié) 單片機(jī)要發(fā)送和接收的操作其實(shí)都是對(duì)串行數(shù)據(jù)緩沖器(sbuf)進(jìn)行調(diào)用。 串行數(shù)據(jù)緩沖器sbuf用來(lái)存放需發(fā)送
50、和接收的數(shù)據(jù),它由兩個(gè)獨(dú)立的寄存器組 成,一個(gè)是發(fā)送緩沖器,另一個(gè)是接收緩沖器,例如: (1)date=sbuf;表示單片機(jī)接收到數(shù)據(jù)data。 (2)sbuf=date;表示單片機(jī)發(fā)送數(shù)據(jù)到上位機(jī)。 3 33 3 系統(tǒng)方案設(shè)計(jì)系統(tǒng)方案設(shè)計(jì) 系統(tǒng)方框圖如圖 3.5 所示。 圖圖 3.53.5 系統(tǒng)方框圖系統(tǒng)方框圖 系統(tǒng)方框圖中可以看出用此方案設(shè)計(jì)的系統(tǒng)由電源電路、數(shù)據(jù)采集放大電 路、a/d轉(zhuǎn)換電路、d/a轉(zhuǎn)換電路、max232串行接口電路、單片機(jī)外圍電路、 led顯示電路、鍵盤(pán)電路等部分組成。此方案的特點(diǎn)是:硬件電路的實(shí)現(xiàn)較為 簡(jiǎn)單、所用元器件也較少、系統(tǒng)可以配上外部的各種傳感器采集電路作為系
51、統(tǒng) 的被測(cè)對(duì)象的模擬輸入信號(hào)來(lái)源,如壓力、溫度、濕度的采集等等;配上相應(yīng) 的模擬采集電路和軟件就可以實(shí)現(xiàn)各種不同的功能、還能用led數(shù)碼管十進(jìn)制 顯示相應(yīng)的測(cè)量數(shù)據(jù),如可以顯示測(cè)得的壓力、溫度、濕度;還可以實(shí)現(xiàn)和pc 機(jī)串行通信和isp編程下載功能。 pc 機(jī) max232 電平轉(zhuǎn)換 電路 電源電路 控 制 器 單片機(jī) at89s52 led 顯 示電路 按鍵 電路 外部存 儲(chǔ)器 d/a 轉(zhuǎn) 換電路 a/d 轉(zhuǎn) 換電路 外部采 集電路 第四章 系統(tǒng)方案實(shí)施 4.14.1 接口設(shè)計(jì)接口設(shè)計(jì) 4.1.14.1.1 系統(tǒng)連接電路系統(tǒng)連接電路 系統(tǒng)連接電路如圖 4.1 所示。 1 6 2 7 3 8
52、4 9 5 j1 d b9 r1 in 13 r2 in 8 t1 in 11 t2 in 10 gnd 15 v+ 2 v- 6 vcc 16 r1 out 12 r2 out 9 t1 out 14 t2 out 7 c1+ 1 c1 - 3 c2+ 4 c2 - 5 u 1 m a x 232ew e(16) c 3 0.1f c 4 0.1f c 2 0.1f c 1 0.1f rxd/p 3.0 txd/p 3.1 vcc 12 34 56 78 910 j1 is p vcc d 1 r 1 1k p 1.5 p 1.6 p 1.7 rese t 圖 4.1 單片機(jī)與 pc 機(jī)串行
53、通信接口的電路 串行通信部分主要是由 max232 電平轉(zhuǎn)換電路和 isp 編程下載電路組成, 其原理是:max232 芯片把單片機(jī)引腳的 coms 電平(05v)轉(zhuǎn)換為 rs232 電平(-12v +12v) ,at89s52 單片機(jī)有一個(gè)全雙工的串行通信口,而 pc 機(jī) 有一個(gè) rs232 的通信接口。只要用 rs232 d 型 9 針的引腳的雙邊母頭接到 pc 機(jī)上,而另一頭和 max232 相連接,max232 的輸出再和 at58s52 相連就可 以實(shí)現(xiàn)單片機(jī)和 pc 機(jī)的串行通信1。具體連線(xiàn)如上圖 8 所示,at89s52 的串 行通信引腳的 txd 和 rxd 分別接到 max2
54、32 的 t1in 和 t1out 上,max232 的 r1out 和 r1in 分別接到 rs232 的 2、3 上,rs232 的 5 腳接地。max232 外圍元件只有四個(gè)電容,根據(jù) max232 的典型應(yīng)用電路,可取 0.1f 50v 的電 解電容。isp 編程口和 at89s52 的連線(xiàn)為:at89s52 的 p1.5、p1.6 p1.7、reset 分別連接到 isp 的 3、4、5、7 腳上,isp 的 1、2 腳聯(lián)合接電源 9、10 腳聯(lián)合接地即可.直接從上位機(jī)上下載可執(zhí)行的二進(jìn)制代碼文件,無(wú)須外 加寫(xiě)讀器。d1 為下載指示燈,r1 為限流電阻,發(fā)光二極管的壓降為 2v,電流
55、 取 5ma,其阻值為:r1=5-2/0.005=600,考慮到和 isp 一起共電,在此取 1k。 4.1.24.1.2 串行通信電路串行通信電路 單片機(jī)除了具有四個(gè) 8 位并行口外,還具有串行接口。該串行接口是一個(gè) 全雙工串行通信接口,既能同時(shí)進(jìn)行串行發(fā)送和接收。它可以作 uart(通用 異步接收和發(fā)送器)用,也可以作為同步位移寄存器用。應(yīng)用串行接口可以實(shí) 現(xiàn) 89c51 單片機(jī)系統(tǒng)之間點(diǎn)對(duì)點(diǎn)的單片機(jī)通信、多機(jī)通信和 89c51 與系統(tǒng)機(jī) (如 ibm-pc 機(jī)等)的單機(jī)或多機(jī)通信。mcs-51 串行口的輸入輸出均為 ttl 電平。這種以 ttl 電平傳輸數(shù)據(jù)的方式,抗干擾性差,傳輸距離短
56、。為 了提高通訊距離,工程技術(shù)人員一般采用標(biāo)準(zhǔn)串行接口,如 rs-232、rs- 422a、rs-485 等標(biāo)準(zhǔn)串行接口來(lái)進(jìn)行串行通訊。其中 rs-232 是異步串行通 訊中應(yīng)用最廣泛的標(biāo)準(zhǔn)總線(xiàn),它包含了按位串行傳輸?shù)碾姎夂蜋C(jī)械方面的規(guī)定。 適用于數(shù)據(jù)終端設(shè)備(dce)和數(shù)據(jù)傳輸設(shè)備(dce)之間的接口。 rs-232 是美國(guó)電子工業(yè)協(xié)會(huì)正式公布的串行總線(xiàn)標(biāo)準(zhǔn),也是目前最常用的 串行接口標(biāo)準(zhǔn),主要用來(lái)實(shí)現(xiàn)計(jì)算機(jī)與計(jì)算機(jī)之間、計(jì)算機(jī)與外設(shè)之間的數(shù)據(jù) 通訊。rs-232 串行通信是雙工的,可以同時(shí)接收和發(fā)送。其邏輯電平與 ttl、cmos 電平完全不同:邏輯“0”規(guī)定為+5v+15v;邏輯“1”規(guī)
57、定為-5v- 15v 之間。由于 rs-232 發(fā)送和接收之間有公共地,傳輸采用非平衡模式,因此 共模噪聲會(huì)耦合到信號(hào)系統(tǒng)中,其標(biāo)準(zhǔn)建議的最大通信距離為 15 米。但實(shí)際應(yīng) 用中在 300bit/s 的速率下可達(dá)到 300 米,并且最大傳輸速率為 20kbps8。 由于 rs-232 規(guī)定的電平和一般任意微處理器的邏輯電平不一致,故必須進(jìn) 行電平轉(zhuǎn)換。本次設(shè)計(jì)選用 max232 芯片實(shí)現(xiàn) ttl 與 232 電平之間的轉(zhuǎn)換, 與 max232 相連的一側(cè)是 at89c51 單片機(jī),另一側(cè)是 gprs 模塊,由它們來(lái) 實(shí)現(xiàn)數(shù)據(jù)的無(wú)線(xiàn)傳輸。rs-232 通訊電路如圖 4.2 所示: c1+ 1 v
58、+ 2 c1- 3 c2+ 4 c2- 5 v- 6 2co ut 7 2ci n 8 251 out 9 25 1in 10 151 in 11 151 out 12 1c in 13 1co ut 14 gn d 15 vc c 16 m a x232 u4 m a x232 1 6 2 7 3 8 4 9 5 rs2 32 1.0 uf 1.0 uf 1.0 uf 1.0 uf 0.1 uf +5v rx d tx d +5v 圖 4.2 rs-232 通訊電路 4.24.2 軟件設(shè)計(jì)軟件設(shè)計(jì) 4.2.14.2.1 顯示顯示 hd7279hd7279 顯示程序顯示程序 用單片機(jī)驅(qū)動(dòng) le
59、d 數(shù)碼管有很多方法,按顯示方式分為靜態(tài)顯示和動(dòng)態(tài)顯 示;按譯碼方式可分為硬件譯碼和軟件譯碼9。靜態(tài)顯示就是顯示驅(qū)動(dòng)電路具 有輸出鎖存功能,單片機(jī)將所要顯示的數(shù)據(jù)送出后就不再管,直到下一次顯示 數(shù)據(jù)需要更新時(shí)再傳送一次新數(shù)據(jù),所有數(shù)碼管都是一直亮著的,這樣顯示數(shù) 據(jù)穩(wěn)定,占用很少的處理時(shí)間。動(dòng)態(tài)顯示需要單片時(shí)刻對(duì)顯示器件進(jìn)行數(shù)據(jù)刷 新,數(shù)碼管一位一位地輪流被點(diǎn)亮,對(duì)每一個(gè)數(shù)碼管來(lái)說(shuō),它是每隔一段時(shí)間 亮一次,利用人的視覺(jué)暫留功能可以看到整個(gè)顯示,但必須保證掃描的速度足 夠快,字符才不閃爍。一般來(lái)說(shuō),靜態(tài)顯示的功耗較大,動(dòng)態(tài)顯示的功耗較少, 但靜態(tài)顯示占用單片機(jī)的處理時(shí)間少,動(dòng)態(tài)顯示占用單片機(jī)的處理時(shí)間多。硬 件譯碼就是顯示的段碼完全由硬件完成,單片機(jī)只要送出標(biāo)準(zhǔn)的 bcd 碼即可, 硬件接線(xiàn)有一定標(biāo)準(zhǔn)。軟件譯碼是用軟件來(lái)完成硬件的功能。硬件簡(jiǎn)單,接線(xiàn) 靈活,顯示段碼完全由軟件來(lái)處理,是目前常用的顯示驅(qū)動(dòng)方式。 本次設(shè)計(jì)采用 led 數(shù)碼管動(dòng)態(tài)顯示,因?yàn)?led 是動(dòng)態(tài)顯示,所以每一次 程序循環(huán)過(guò)程中只能點(diǎn)亮一位數(shù)碼管,程序流程圖如圖 4.3 所示。 進(jìn)入定時(shí)顯示中斷 關(guān)顯示 數(shù)碼管位數(shù)n=n+1%8 n=1嗎? 閃爍嗎? n=2嗎? 點(diǎn)亮led1 n=7嗎? 本位亮嗎? 閃爍嗎? 本位亮嗎? 點(diǎn)亮led8 退出定時(shí)顯示中斷 n
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題開(kāi)題報(bào)告:當(dāng)代文化發(fā)展繁榮與文化立法的關(guān)系研究
- 課題開(kāi)題報(bào)告:傳統(tǒng)工藝精神與設(shè)計(jì)專(zhuān)業(yè)學(xué)生技能培養(yǎng)
- 課題開(kāi)題報(bào)告:殘疾人高等教育專(zhuān)業(yè)設(shè)置優(yōu)化改革研究
- 健康檢查協(xié)議書(shū)
- 園林景觀再生塑料元素行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢(xún)報(bào)告
- 二零二五年度餐飲行業(yè)保潔臨時(shí)用工管理協(xié)議
- 二零二五年度房產(chǎn)投資風(fēng)險(xiǎn)評(píng)估協(xié)議
- 土壤重金屬淋洗設(shè)備行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢(xún)報(bào)告
- 仿制藥臨床試驗(yàn)數(shù)據(jù)管理系統(tǒng)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025年度股東間利益平衡與公司品牌建設(shè)合同
- 包扎(三角巾)課件
- 外科學(xué)第八版手外傷以及斷指再植
- 高校助學(xué)貸款結(jié)清憑證
- 產(chǎn)業(yè)園規(guī)劃建筑設(shè)計(jì)說(shuō)明
- 內(nèi)蒙體育職院《體育傳播學(xué)》教案第1章 傳播與傳播學(xué)
- 戶(hù)政知識(shí)技能比武大練兵考試題庫(kù)(完整版)
- 瑪莎拉蒂路演執(zhí)行手冊(cè)升級(jí)版
- 《建筑工程資料管理規(guī)程》DB34T918-2019
- 小班數(shù)學(xué)掛燈籠教案反思
- 美術(shù)課件:水印版畫(huà)
- LED驅(qū)動(dòng)電源基礎(chǔ)知識(shí)(課堂PPT)
評(píng)論
0/150
提交評(píng)論