基于單片機(jī)的多路輸入電壓表的設(shè)計畢業(yè)設(shè)計_第1頁
基于單片機(jī)的多路輸入電壓表的設(shè)計畢業(yè)設(shè)計_第2頁
基于單片機(jī)的多路輸入電壓表的設(shè)計畢業(yè)設(shè)計_第3頁
基于單片機(jī)的多路輸入電壓表的設(shè)計畢業(yè)設(shè)計_第4頁
基于單片機(jī)的多路輸入電壓表的設(shè)計畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、(基于單片機(jī)的多路輸入電壓表的設(shè)計) 摘要:摘要:在工業(yè)控制領(lǐng)域中,電壓是一個十分重要的參考量,準(zhǔn)確而實時的控制 電壓對于我們的工作有事半功倍的效果。隨著微電子技術(shù)、計算機(jī)技術(shù)、通信技術(shù) 和自動化技術(shù)的高速發(fā)展,過去我們所采用的一些傳統(tǒng)的電壓測控系統(tǒng),存在著功 能單一、速度慢、精度低、數(shù)據(jù)無法長期存儲等問題,己經(jīng)漸漸不能滿足工業(yè)自動 化和實際測量工作中多樣性、多功能的需要,在這種背景下,人們對電壓測控系統(tǒng) 的檢測速度、準(zhǔn)確度以及儀表的檢測功能等方面又提出了新的要求,而尋求這些問 題的解決方案成為當(dāng)前研究的焦點。 關(guān)鍵詞:關(guān)鍵詞:電壓表;a/d 轉(zhuǎn)換;tlc1543;編寫程序 (the desi

2、gn of the multi-channel input voltmeter based on scm) abstract:abstract: in the field of industrial control, voltage is an important reference, accurate and real-time control voltage for our job has twice the result with half the effort. with microelectronics technology, computer technology, communi

3、cation technology and automation technology, the rapid development of the past we use some of the traditional voltage measurement and control system, there is a single function, slow speed and low accuracy, data cannot be stored for a long time, has been gradually cannot meet the practical measureme

4、nt in industrial automation and the needs of the diversity, multi-function, under this background, the detection speed and accuracy of voltage measurement and control system and instrument detection, etc, and puts forward new requirements, and to seek solutions to these problems become the focus of

5、current research. keykey words:words: voltmeter; a/d conversion; tlc1543; write a program 目 錄 1 前 言.1 1.1 本次畢業(yè)設(shè)計課題的目的、意義 .1 1.2 設(shè)計系統(tǒng)的發(fā)展與狀況.1 1.3 智能儀器的發(fā)展趨勢.3 2 系統(tǒng)的結(jié)構(gòu)及原理組成框圖.5 2.1 系統(tǒng)結(jié)構(gòu)及原理組成框圖.5 2.2 傳感器 .5 2.3 模數(shù)轉(zhuǎn)換器 tlc1543 的簡介 .5 2.4 at89c51 系列單片機(jī)簡介 .7 2.5 顯示電路設(shè)計 .11 3 系統(tǒng)的硬件 .13 3.1 系統(tǒng)硬件設(shè)計 .13 3.2 繪制系

6、統(tǒng)硬件電路圖了解其工作原理 .13 4 系統(tǒng)的軟件.17 4.1 tlc1543 與 at89c51 接口程序 .17 4.2 系統(tǒng)程序流程圖及主程序 .21 4.3 延時子程序 .24 4.4 模數(shù)轉(zhuǎn)換程序 .24 5 結(jié)論 .26 參考文獻(xiàn).28 致 謝.28 外文翻譯.29 附 件.38 1 1 前前 言言 1.1 本次畢業(yè)設(shè)計課題的目的、意義 在工業(yè)控制領(lǐng)域中,電壓是一個十分重要的參考量,準(zhǔn)確而實時的控制電壓對 于我們的工作有事半功倍的效果。隨著微電子技術(shù)、計算機(jī)技術(shù)、通信技術(shù)和自動 化技術(shù)的高速發(fā)展,過去我們所采用的一些傳統(tǒng)的電壓測控系統(tǒng),存在著功能單一、 速度慢、精度低、數(shù)據(jù)無法長

7、期存儲等問題,己經(jīng)漸漸不能滿足工業(yè)自動化和實際 測量工作中多樣性、多功能的需要,在這種背景下,人們對電壓測控系統(tǒng)的檢測速 度、準(zhǔn)確度以及儀表的檢測功能等方面又提出了新的要求,而尋求這些問題的解決 方案成為當(dāng)前研究的焦點。 近年來,形式多樣的數(shù)字化儀器、儀表已被廣泛應(yīng)用于電子及電工測量、工業(yè) 自動化儀表、自動測試系統(tǒng)等智能化測量領(lǐng)域中,顯示出了強(qiáng)大的生命力。為使電 壓表的測試系統(tǒng)也得到長足的數(shù)字化研究與開發(fā),使我們的電壓檢測技術(shù)實現(xiàn)快速、 可靠、低成本、數(shù)字化與網(wǎng)絡(luò)化,以推動電壓表的測量技術(shù)往更科學(xué)的水平發(fā)展, 把電量及非電量測量提高到嶄新的技術(shù),本文考慮運用 at89c51 單片機(jī)和 tlc1

8、543a/d 轉(zhuǎn)換芯片,根據(jù)數(shù)據(jù)采集的工作原理,設(shè)計實現(xiàn)了一個基于單片機(jī)原理的 多路輸入電壓測控系統(tǒng),該系統(tǒng)可以進(jìn)行遠(yuǎn)程多路電壓采集、控制、數(shù)字傳送與顯 示,具有測壓誤差小、測量精度高、分辨率高、抗干擾能力強(qiáng)、可擴(kuò)展性強(qiáng)、集成 方便、可進(jìn)行數(shù)據(jù)存儲、打印、還可與 pc 進(jìn)行實時通信等優(yōu)點,是研制和開發(fā)具有 高性價比的新一代電壓測控系統(tǒng)的核心器件,所以這種類型的電壓表無論在功能和實 際應(yīng)用上,都具有傳統(tǒng)指針式電壓表無法比擬的特點,這使得它的開發(fā)和應(yīng)用具有良 好的前景。 1.2 設(shè)計系統(tǒng)的發(fā)展與狀況 回顧電子儀器的發(fā)展歷程,我們可以發(fā)現(xiàn),從儀器使用的器件來看大致經(jīng)歷了三 個階段,即真空管時代、晶體

9、管時代、集成電路時代。若從儀器的工作原理來看,又 可以分為以下幾代: 模擬儀器、分立元件式儀器、數(shù)字化儀器、智能儀器。目前電 壓表測試領(lǐng)域應(yīng)用比較廣泛的是模擬儀器和數(shù)字化儀器,智能化儀器在部分測試場 合和測試參數(shù)中有所應(yīng)用,本設(shè)計系統(tǒng)是以智能式儀表為主,設(shè)計一個多路輸入電 壓表。 第一代-模擬儀器;這類儀器在一些實驗室多能看到,是以電磁感應(yīng)基本定 律為基礎(chǔ)的指針式儀器,借助指針來顯示最終結(jié)果,儀器應(yīng)用和處理的信號均為模 擬量,這類儀表的特點是:價格低廉、體積大、功能簡單、響應(yīng)速度慢,雖然測量精 度低,但目前還是使用的相當(dāng)普遍。 第二代-分立元件式儀器;當(dāng)20世紀(jì)50年代出現(xiàn)電子管,20世紀(jì)60

10、年代出現(xiàn) 晶體管時,便產(chǎn)生了以電子管或晶體管電子電路為基礎(chǔ)的第二代測試儀器。 第三代-數(shù)字化儀器;隨著集成電路的出現(xiàn),誕生了以集成芯片為基礎(chǔ)的第 三代儀器,這類儀器目前相當(dāng)普及,如數(shù)字電話、數(shù)字式測溫儀、數(shù)字頻率計等。 它們的基本工作原理是將模擬信號的測量轉(zhuǎn)化為數(shù)字信號的測量,并以數(shù)字形式輸 出顯示,適用于快速響應(yīng)和較高準(zhǔn)確度的測量。數(shù)字式電子儀器與第一代模擬式電 子儀器相比,具有精度高,速度快,讀數(shù)清晰,直觀的特點,其結(jié)果既能以數(shù)字形式輸 出顯示,還可以通過打印機(jī)打印輸出。此外,由于數(shù)字信號便于遠(yuǎn)距離傳輸, 因此數(shù) 字式電子儀器又適用于遙測遙控。 第四代-智能儀器;智能儀器是由數(shù)字化儀器進(jìn)一

11、步發(fā)展而來的,它是一類 新型的,內(nèi)部裝有微處理器或單片機(jī)的微機(jī)化電子儀器,具有數(shù)據(jù)存儲,運算和邏輯 判斷的能力,能根據(jù)被測參數(shù)的變化自動校正,自動補償,自尋故障,以及遠(yuǎn)距離傳輸 數(shù)據(jù),遙測遙控等功能,可取代部分腦力勞動,也就是說, 這種儀器具備了一定的智 能, 故稱為智能儀器。其缺點是它的功能塊都以硬件的形式存在,無論是開發(fā)還是 針對應(yīng)用,都缺乏靈活性。 本設(shè)計系統(tǒng)是以智能式儀表為主,智能式儀表與模擬儀表相比,已經(jīng)從測量的 本質(zhì)上發(fā)生了根本的改變,我們前面談到模擬儀表是實時地測量被測信號,時間上 是連續(xù)的沒有間斷點,而智能式儀表是由數(shù)字式儀表進(jìn)一步發(fā)展而來的,如同數(shù)字 式儀表一樣,從時間的連續(xù)

12、性上看,此種測量方式出現(xiàn)了信號時間上的斷點,且由 于利用了現(xiàn)代模擬電子技術(shù)改進(jìn)了測量原理,所以通常這類儀表的準(zhǔn)確度較高。從 某種意義上講,數(shù)字化儀表將測量過程分成兩個階段:對信號的“采樣(取樣、采 集)”階段和內(nèi)部轉(zhuǎn)換處理階段,而智能式儀表除完成上兩個階段外,還需經(jīng)過內(nèi) 部裝有的微處理器或單片機(jī)進(jìn)行數(shù)據(jù)的運算、分析和判斷控制等功能。由于信號 (dc)變化很緩慢,所以人們充分利用了信號的這一特性,用采樣測量的方法來代 替過去傳統(tǒng)的連續(xù)測量方法,盡管現(xiàn)代模擬電子技術(shù)發(fā)展到了相當(dāng)高的水平,但用 模擬的方式設(shè)計某些電路還是相當(dāng)困難的。 追溯過去,人們普遍采用的是模擬儀器,隨著計算機(jī)(微處理器)以及數(shù)字

13、信 號處理軟、硬件的飛速發(fā)展,人們開始改變對事物的觀察手段、分析方法及對事物 的處理方式,整個世界都開始進(jìn)入“數(shù)字化”時代,數(shù)字電話、數(shù)字電視、數(shù)字音 響、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)等數(shù)字設(shè)備令人眼花繚亂。人們發(fā)現(xiàn)許多以往難以做到 的事情,利用計算機(jī)(微處理器)來實現(xiàn)則變得非常簡單、方便,如乘法器,對計 算機(jī)而言僅僅是執(zhí)行一條乘法指令,運算速度和運算結(jié)果的準(zhǔn)確度毫無任何問題, 所以我們可以將許多復(fù)雜的處理交給計算機(jī)來完成,當(dāng)時遇到唯一的問題是計算機(jī) 無法直接與模擬世界打交道。 為對溫度、壓力、流量、速度、位移等模擬物理量進(jìn)行測量和控制,人們采用傳感 器把上述模擬量轉(zhuǎn)換成能模擬物理量的電信號,即模擬電

14、信號,再將模擬電信號經(jīng) 過 adc 處理轉(zhuǎn)換成計算機(jī)能識別的數(shù)字量,送進(jìn)計算機(jī),構(gòu)成數(shù)據(jù)的采集。依據(jù)這 個采集定理,我們知道如何保證信息不會丟失,因此數(shù)據(jù)采集技術(shù)成為了計算機(jī)與 模擬世界打交道的重要環(huán)節(jié),人們開始把更多的注意力集中放在了如何設(shè)計更好的 數(shù)據(jù)采集單元及更好的數(shù)字信號處理方法上,同時,智能儀器技術(shù)正好符合這個發(fā) 展趨勢,大大的推動或帶動了數(shù)字化測量的進(jìn)一步發(fā)展,即進(jìn)入了智能儀器時代, 人們開始不太關(guān)心各種物理量與測量的關(guān)系,這些由傳感器制造商來完成,他們更 為關(guān)心的是如何將信號(傳感器的輸出)準(zhǔn)確的變換為計算機(jī)可識別的數(shù)據(jù)及如何 設(shè)計信號處理軟件,這種數(shù)據(jù)采集+軟件分析、處理的模式

15、引發(fā)了測試、測量領(lǐng)域的 一場大革命。現(xiàn)在我們知道智能儀器的工作過程是:外部的輸入信號(被測量)先經(jīng)過 輸入電路進(jìn)行變換,放大,整形和補償?shù)忍幚?然后再經(jīng)模擬量通道的 a/d 轉(zhuǎn)換接口轉(zhuǎn) 換成數(shù)字量信號, 送入單片機(jī),單片機(jī)對輸入數(shù)據(jù)進(jìn)行加工處理,分析,計算等一系 列工作, 并將運算結(jié)果存入數(shù)據(jù)存儲器 ram 中,同時,可通過顯示器接口送至顯示器 顯示,或打印機(jī)接口送至微型打印機(jī)打印輸出,也可以將輸出的數(shù)字量經(jīng)模擬量通道 的 d/a 轉(zhuǎn)換接口轉(zhuǎn)換成模擬量信號輸出,并經(jīng)過驅(qū)動與執(zhí)行電路去控制被控對象, 還 可以通過通信接口(例如 rs-232, gpib 等)實現(xiàn)與其他智能儀器的數(shù)據(jù)通信,完成更

16、復(fù)雜的測量與控制任務(wù)。 1.3 智能儀器的發(fā)展趨勢 1. 微型化 智能儀器的微型化是指將微電子技術(shù),微機(jī)械技術(shù),信息技術(shù)等綜合應(yīng)用于智能 儀器的設(shè)計與生產(chǎn)中,從而使儀器成為體積較小,功能齊全的智能化儀器.它能夠完成 信號采集, 線性化處理,數(shù)字信號處理,控制信號的輸出,放大,與其他儀器接口以及 與人交互等功能.微型智能儀器隨著微電子技術(shù), 微機(jī)械技術(shù)的不斷發(fā)展,其技術(shù)不 斷成熟,價格不斷降低, 因此其應(yīng)用領(lǐng)域也必將不斷擴(kuò)大.它不但具有傳統(tǒng)儀器的功 能, 而且能在自動化技術(shù),航天,軍事,生物技術(shù),醫(yī)療等領(lǐng)域起到獨特的作用. 2. 多功能化 多功能本身就是智能儀器的一個特點.例如,為了設(shè)計速度較快

17、和結(jié)構(gòu)較復(fù)雜的 數(shù)字系統(tǒng),儀器生產(chǎn)廠家制造了具有脈沖發(fā)生器, 頻率合成器和任意波形發(fā)生器等多 種功能合一的函數(shù)發(fā)生器.這種多功能的綜合型產(chǎn)品不但在性能上(如準(zhǔn)確度)比專用 脈沖發(fā)生器和頻率合成器高,而且在各種測試功能上提供了較好的解決方案. 3. 人工智能化 人工智能是計算機(jī)應(yīng)用的一個嶄新領(lǐng)域,利用計算機(jī)模擬人的智能,用于機(jī)器人, 醫(yī)療診斷,專家系統(tǒng),推理證明等各個方面.智能儀器的進(jìn)一步發(fā)展將含有一定的人工 智能,即代替人的一部分腦力勞動,從而在視覺(圖形及色彩辨讀), 聽覺(語音識別及 語言領(lǐng)悟),思維(推理,判斷,學(xué)習(xí)與聯(lián)想)等方面具有一定的能力.這樣,智能儀器可 以無需人的干預(yù)而自主地完

18、成檢測或控制功能.顯然,人工智能在現(xiàn)代儀器中的應(yīng)用, 使我們不僅可以解決用傳統(tǒng)方法很難解決的一類問題,而且還可望解決用傳統(tǒng)方法根 本不能解決的一些問題. 4. 部分結(jié)構(gòu)虛擬化 測試儀器的主要功能都是由數(shù)據(jù)采集,數(shù)據(jù)分析和數(shù)據(jù)顯示等三大部分組成的. 隨著計算機(jī)應(yīng)用技術(shù)的不斷發(fā)展, 人們利用pc機(jī)強(qiáng)大的圖形環(huán)境和在線幫助功能,建 立了圖形化的虛擬儀器面板,完成了對儀器控制,數(shù)據(jù)采集,數(shù)據(jù)分析和數(shù)據(jù)顯示等功 能.因此,只要額外提供一定的數(shù)據(jù)采集硬件,就可以與pc機(jī)組成測量儀器.這種基于 pc機(jī)的測量儀器稱之為虛擬儀器.在虛擬儀器中,使用同一個硬件系統(tǒng), 只要使用不 同的軟件編程, 就可以得到功能完全

19、不同的測量儀器.可見,軟件系統(tǒng)是虛擬儀器的 核心,因此,也有人稱軟件就是儀器. 5. 通信與控制網(wǎng)絡(luò)化 系統(tǒng)編程技術(shù)(insystem programming,簡稱isp技術(shù))是對軟件進(jìn)行修改、組 態(tài)或重組的一種最新技術(shù)。isp技術(shù)消除了傳統(tǒng)技術(shù)的某些限制和連接弊病,有利于 在板設(shè)計,制造與編程。isp硬件靈活且易于軟件修改,便于設(shè)計開發(fā)。由于isp器件 可以像任何其他器件一樣在印刷電路板(pcb)上處理,因此編程isp器件不需要專門的 編程器和較復(fù)雜的流程,只要通過pc機(jī),嵌入式系統(tǒng)處理器,甚至internet遠(yuǎn)程網(wǎng)就可 進(jìn)行編程。 2 2 系統(tǒng)的結(jié)構(gòu)及原理組成框圖系統(tǒng)的結(jié)構(gòu)及原理組成框圖

20、2.1 系統(tǒng)結(jié)構(gòu)及原理組成框圖 多路輸入電壓表主要是由三大功能構(gòu)成:多路信號的采集與控制、信號的分析與 處理、結(jié)果的輸出與顯示,通常方案都是用51單片機(jī)+a/d轉(zhuǎn)換芯片,本設(shè)計考慮運 用at89c51單片機(jī)和tlc1543a/d轉(zhuǎn)換芯片及數(shù)碼顯示管來完成,首先通過傳感器將被 測量的連續(xù)變化的模擬電壓轉(zhuǎn)換成模擬電信號送入tlc1543a/d轉(zhuǎn)換芯片中,由模數(shù) 轉(zhuǎn)換器組成的模數(shù)轉(zhuǎn)換控制電路對輸入的模擬電信號進(jìn)行取樣、轉(zhuǎn)換,再將轉(zhuǎn)換的 數(shù)字量送進(jìn)單片機(jī),通過對單片機(jī)進(jìn)行的程序設(shè)計來進(jìn)行數(shù)據(jù)處理,從而實現(xiàn)控制 電路;最后的顯示電路主要用于顯示數(shù)據(jù)轉(zhuǎn)換后的測量結(jié)果。 系統(tǒng)的原理組成框圖如圖1所示。 2.

21、2 傳感器 傳感器是將被測信號轉(zhuǎn)換為檢測系統(tǒng)能識別的電信號。在電壓表測量系統(tǒng)中, 被控制或測量對象往往是連續(xù)變化的模擬量,而單片機(jī)所加工的信息都是數(shù)字量, 這就需要通過傳感器先將這些模擬信號轉(zhuǎn)換成模擬電信號,送入a/d轉(zhuǎn)換器中再轉(zhuǎn)換 成數(shù)字量。傳感器的主要技術(shù)要求如下: (1)具有將被測量轉(zhuǎn)換為后續(xù)電路可用電量的功能,轉(zhuǎn)換范圍與被測量實際變 化范圍(變化幅度范圍、變化頻率范圍)相一致。 (2)轉(zhuǎn)換精度符合整個測試系統(tǒng)根據(jù)總精度要求而分配給傳感器的精度指標(biāo) (一般應(yīng)優(yōu)先于系統(tǒng)精度的十倍左右),轉(zhuǎn)換速度應(yīng)符合整機(jī)要求。 (3)能滿足被測介質(zhì)和使用環(huán)境的特殊要求,如耐高溫、耐高壓、防腐、抗振、 防爆

22、、抗電磁干擾、體積小、質(zhì)量輕和不耗電或耗電少等。 (4) 能滿足用戶對可靠性和可維護(hù)性的要求。 目前傳感器技術(shù)正向著系統(tǒng)化和智能化的方向發(fā)展,它不再是一個單獨的測量 元件,而是微機(jī)械與微電子技術(shù)、計算機(jī)技術(shù)、信號處理技術(shù)、電路與系統(tǒng)、傳感 技術(shù)、神經(jīng)網(wǎng)絡(luò)技術(shù)、模糊控制技術(shù)、虛擬儀器技術(shù)等多學(xué)科的綜合性產(chǎn)物。 傳感器是能夠感受物體運動并將物體的運動轉(zhuǎn)換成模擬電信號的一種靈敏的換 能元件。傳感器的種類很多,且有不同的分類方法。 2.3 模數(shù)轉(zhuǎn)換器 tlc1543 的簡介 tlc1543 是美國 ti 公司生產(chǎn)的多通道、低價格的模數(shù)轉(zhuǎn)換器。采用串行通信接 口,具有輸入通道多、性價比高、易于和單片機(jī)接

23、口的特點,可廣泛應(yīng)用于各種數(shù) 據(jù)采集系統(tǒng) 。 tlc1543 為 20 腳 dip 裝的 cmos 10 位開關(guān)電容逐次 a/d 逼近模數(shù)轉(zhuǎn)換器,引腳 排列如圖 2 所示,a0-a10 是 11 個模擬輸入端,輸入轉(zhuǎn)換電壓;vcc 與 gnd 分別是 電源引腳,ref+和 ref-為參考電源的正負(fù)引腳, ref-通常接系統(tǒng)的地;gnd 接地, 作為模數(shù)轉(zhuǎn)換時的參考點,其余引腳是 tlc1543 與 cpu 的接口,cs 為片選端,低電 平有效,此電路中,在 cs 端的一個下降沿變化將復(fù)位內(nèi)部計數(shù)器并控制和使用 address(17 腳)、i/o clock (18 腳)和 data out(1

24、6 腳)使能。注意 tlc1543 芯片內(nèi)部有一個 14 通道多路選擇器,可選擇 11 個模擬輸入通道或 3 個內(nèi)部自測電 壓中的任意一個進(jìn)行測試,芯片內(nèi)設(shè)有采樣-保持電路,在轉(zhuǎn)換結(jié)束時,eoc(19 腳) 輸出端變高表明轉(zhuǎn)換完成,內(nèi)部轉(zhuǎn)換器具有高速(10s 轉(zhuǎn)換時間),高精度(10 位 分辨率,最大1lsb 不可調(diào)整誤差)和低噪聲的特點。 tlc1543 工作時序 tlc1543 工作時序如圖 3 示,其工作過程分為兩個周期:訪問周期和采樣周期 (采樣、保持)。工作狀態(tài)由 cs 使能或禁止,工作時 cs 必須置低電平,cs 為高電 平時,i/o clock、address 端被禁止,同時 d

25、ata out 為高阻狀態(tài)。當(dāng) cpu 使 cs 變 低時,tlc1543 開始數(shù)據(jù)轉(zhuǎn)換,i/o clock、address 使能,data out 脫離高阻狀態(tài), 隨后,cpu 向 address 提供 4 位通道地址,控制 14 個模擬通道選擇器從 11 個外部 模擬輸入和 3 個內(nèi)部自測電壓中選通 1 路送到采樣電路,與此同時,i/o clock 輸 入時鐘時序,cpu 從 data out 端接收前一次 a/d 轉(zhuǎn)換結(jié)果。i/o clock 從 cpu 接收 10 個時鐘長度的時鐘序列,前 4 個時鐘用 4 位地址從 address 端裝載地址寄存器, 用來選擇所需的模擬通道,后 6

26、個時鐘對模擬輸入的參量提供采樣控制時序,即模 擬輸入的采樣起始于第 4 個 i/o clock 下降沿,而采樣一直持續(xù) 6 個 i/o clock 周 期,即一直保持到第 10 個 i/o clock 下降沿。轉(zhuǎn)換過程中,cs 的下降沿使 data out 引腳脫離高阻狀態(tài)并起動一次 i/o clock 工作過程。cs 上升沿終止這個過程并 在規(guī)定的延遲時間內(nèi)使 data out 引腳返回到高阻狀態(tài),經(jīng)過兩個系統(tǒng)時鐘周期后禁 止 i/o clock 和 address 端。 軟件設(shè)計中,應(yīng)注意區(qū)分 tlc1543 的 11 個模擬輸入通道和 3 個內(nèi)部測試電壓地 址。附表為模擬通道和內(nèi)部電壓測

27、試地址。程序軟件編寫應(yīng)注意 tlc1543 通道地址 必須為寫入字節(jié)的高四位,而 cpu 讀入的數(shù)據(jù)是芯片上次 a/d 轉(zhuǎn)換完成的數(shù)據(jù)。在 本文后附的程序中對此有詳細(xì)的說明。 2.4 at89c51 系列單片機(jī)的簡介 所謂單片機(jī),是一種集成電路芯片,采用超大規(guī)模技術(shù)把具有數(shù)據(jù)處理能力(如 算術(shù)運算,邏輯運算、數(shù)據(jù)傳送、中斷處理等)的微處理器集于一個芯片而成,用單 片機(jī)改造原有的測量、控制儀表,能促進(jìn)儀表向數(shù)字化、智能化、多功能化、綜合 化、柔性化發(fā)展,本節(jié)簡要介紹 at89c51 單片機(jī)。 at89c51 是美國 atmel 公司生產(chǎn)的低電壓,高性能 cmos8 位單片機(jī),片內(nèi)含 4k byt

28、es 的可反復(fù)擦寫的只讀程序存儲器(perom)和 128 bytes 的隨機(jī)存取數(shù)據(jù)存儲 器(ram) ,器件采用 atmel 公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) mcs- 51 指令系統(tǒng),片內(nèi)置通用 8 位中央處理器(cpu)和 flash 存儲單元,功能強(qiáng)大。 at89c51 單片機(jī)可靈活應(yīng)用于各種控制領(lǐng)域,它與 mcs-51 系列單片機(jī)相比有兩 大優(yōu)勢:第一,片內(nèi)存儲器采用閃速存儲器,使程序的寫入更加方便;第二,提供 了更小尺寸的芯片,使整個硬件電路的體積更小。下面簡要介紹 at89c51 單片機(jī)的 主要性能、內(nèi)部結(jié)構(gòu)及引腳功能。 主要性能: at89c51 是 atmel

29、公司生產(chǎn)的帶 4k 字節(jié)閃速可編程可擦除只讀存儲器的 8 位單 片機(jī),具有如下主要特性: 1) 與 mcs-51 兼容; 2) 4k 字節(jié)可重擦寫 flash 閃速存儲器; 3) 數(shù)據(jù)保留時間長(通常為 10 年) ; 4) 工作電壓范圍為 2.7-6v; 5) 壽命為 1000 次擦/寫循環(huán); 6) 全靜態(tài)工作頻率為 0-24mhz; 7) 2 個 16 位定時器/計數(shù)器; 8) 6 個中斷源; 9) 可編程全雙工串行通道; 10)直接對 led 驅(qū)動輸出; 11)32 條可編程 i/o 線; 12)片內(nèi)精確的模擬比較器; 13)片內(nèi)震蕩器和時鐘電路; 14)低功耗的休眠和掉電模式等; 15

30、)128x8 位內(nèi)部 ram; 16)三級加密程序存儲器。 內(nèi)部結(jié)構(gòu)及引腳功能: at89c51 單片機(jī)的內(nèi)部結(jié)構(gòu)如圖 4 所示,從圖中可以看出,其內(nèi)部結(jié)構(gòu)與 8051 單片機(jī)的內(nèi)部結(jié)構(gòu)基本一致,區(qū)別只是增加了一個模擬比較器,下圖 4 為它的結(jié)構(gòu) 框圖,大家可作為簡要了解。 at89c51 內(nèi)部結(jié)構(gòu) 其引腳配置如圖 5,功能描述如下: 圖 5 at89c51 芯片引腳圖 vcc:電源電壓 gnd:接地 p0 口:8 位雙向 io 口,即地址數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位 能吸收電流的方式驅(qū)動 8 個 ttl 邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。 在訪問外部數(shù)據(jù)存儲器或程序存儲

31、器時,這組口線分時轉(zhuǎn)換地址(低 8 位)和數(shù)據(jù) 總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。 p1 口:p1 是一個帶內(nèi)部上拉電阻的 8 位雙向 io 口,p1 的輸出緩沖級可驅(qū) 動(吸收或輸出電流)4 個 ttl 邏輯門電路。對端口寫“1” ,通過內(nèi)部的上拉電阻 把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻, 某個引腳被外部信號拉低時會輸出一個電流(iil) 。fiash 編程和程序校驗期間, p1 接收低 8 位地址。 p2 口:p2 是一個帶有內(nèi)部上拉電阻的 8 位雙向 io 口,p2 的輸出緩沖級可 驅(qū)動(吸收或輸出電流)4 個 ttl 邏輯門電路。對端口寫“1”

32、,通過內(nèi)部的上拉電 阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻, 某個引腳被外部信號拉低時會輸出一個電流(iil) 。在訪問外部程序存儲器或 16 位 地址的外部數(shù)據(jù)存儲器(例如執(zhí)行 movxdptr 指令)時,p2 口送出高 8 位地址數(shù)據(jù)。 在訪問 8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行 movxri 指令)時,p2 口線上的內(nèi)容 (也即特殊功能寄存器(sfr)區(qū)中 r2 寄存器的內(nèi)容) ,在整個訪問期間不改變。 flash 編程或校驗時,p2 亦接收高位地址和其它控制信號。 p3 口:p3 口是一組帶有內(nèi)部上拉電阻的 8 位雙向 io 口。p3 口輸出緩沖級 可

33、驅(qū)動(吸收或輸出電流)4 個 ttl 邏輯門電路。對 p3 口寫入“1”時,它們被內(nèi) 部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的 p3 口將用上拉電阻 輸出電流(iil) 。 p3 口除了作為一般的 io 口線外,更重要的用途是它的第二功能,如下表所 示: 端口引腳第二功能 p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 int0(外中斷 0) p3.3 int1(外中斷 1) p3.4 t0(定時計數(shù)器 0 外部輸入) p3.5 t1(定時計數(shù)器 1 外部輸入) p3.6 wr(外部數(shù)據(jù)存儲器寫選通) p3.7 rd(外部數(shù)據(jù)存儲器讀選通) p3 口還

34、接收一些用于 flash 閃速存儲器編程和程序校驗的控制信號。 rst:復(fù)位輸入。當(dāng)振蕩器工作時,rst 引腳出現(xiàn)兩個機(jī)器周期以上高電平將 使單片機(jī)復(fù)位。 ale/prog:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ale(地址鎖存允許)輸 出脈沖用于鎖存地址的低 8 位字節(jié)。即使不訪問外部存儲器,ale 仍以時鐘振蕩頻 率的 l/6 輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意 的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個 ale 脈沖。 psen:程序儲存允許, (psen)輸出是外部程序存儲器的讀選通信號,當(dāng) at89c51 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次

35、 psen 有效,即 輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,這兩次有效的 psen 信號不出現(xiàn)。 ea/vpp:外部訪問允許。欲使 cpu 僅訪問外部程序存儲器(地址為 0000hffffh) ,ea 端必須保持低電平(接地) 。需注意的是:如果加密位 lb1 被編程, 復(fù)位時內(nèi)部會鎖存 ea 端狀態(tài)。 如 ea 端為高電平(接 vcc 端) ,cpu 則執(zhí)行內(nèi)部程序存儲器中的指令。 flash 存儲器編程時,該引腳加上+12v 的編程允許電源 vpp,當(dāng)然這必須是該 器件是使用 12v 編程電壓 vpp。 xtal1:振蕩器反相放大器的內(nèi)部時鐘發(fā)生器的輸入端。 xtal2:振蕩器反相

36、放大器的內(nèi)部時鐘發(fā)生器的輸出端。 2.5 顯示電路設(shè)計 根據(jù)技術(shù)要求須將測量結(jié)果顯示出來,at89c51單片機(jī)的p2口的高6位輸出的地 址碼經(jīng)三極管接數(shù)碼管的公共端,作為6位數(shù)碼管顯示的地址線進(jìn)行分時選通,采用 動態(tài)掃描方式,數(shù)碼顯示電路的作用是實現(xiàn)六位數(shù)碼管的數(shù)值顯示,即顯示測量輸 入電壓,測量數(shù)據(jù)在顯示時需經(jīng)過轉(zhuǎn)換,使其成為十進(jìn)制bcd碼。 這里使用的是普通 led 數(shù)碼管時,工作電流選擇在 10ma 左右(一般情況都如此), 這樣既保證亮度適中,又不會損壞器件,注意使用時必須在數(shù)碼管的每段串接一適 當(dāng)阻值的限流電阻。電路圖如下: 圖 9 顯示電路 vcc r2 r3 r4 r5 r6 r

37、7 r8 r9 r10 r11 r12 r14 r15 r13 p00 p01 p02 p03 p04 p05 p06 p07 w13 w14 w15 w16 w12 w11 q2 q4q5q3q6 w13 w14 w15 w16 w2 w3 w4 w5 w6 1 a f 2 3 b e d h c g 4 a b 2 f 5 4 3 2 1 6 1 2 3 4 5 7 8 9 10 11 12 6 7 8 9 10 c h e d g w1 w2 w3 w5 w6 p01 p05 p00 p04 p03 p02 p07 w4 p06 p02 p07 p04 p03 p06 p01 p00 p

38、05 1 q1 w11 w12 w1 3 3 系統(tǒng)的硬件系統(tǒng)的硬件 3.1 系統(tǒng)硬件設(shè)計 設(shè)計方案的確定 在廣泛的自動控制領(lǐng)域中,人們對越來越多的儀表開始實現(xiàn)智能化要求。大家 都知道,傳統(tǒng)的指針式電壓表在檢測速度、準(zhǔn)確度以及儀表的檢測功能等方面已經(jīng) 不能滿足現(xiàn)代化發(fā)展的要求,所以本設(shè)計考慮在數(shù)字化的基礎(chǔ)上設(shè)計一個多路輸入 電壓表,該系統(tǒng)可進(jìn)行多路電壓采集、控制、數(shù)字傳送與顯示,并具有測壓誤差小、 測量精度高、分辨率高、抗干擾能力強(qiáng)、集成方便、數(shù)據(jù)可存儲等優(yōu)點,以便更智 能化的進(jìn)行電壓測量控制。 綜上所述,本設(shè)計系統(tǒng)可概括為主要由三大功能構(gòu)成:多路信號的采集與控制、 信號的分析與處理、結(jié)果的輸出

39、與顯示,通常方案都是用 51 單片機(jī)+a/d 轉(zhuǎn)換芯片, 這里選用 at89c51 單片機(jī)和 tlc1543a/d 轉(zhuǎn)換芯片及 6 位數(shù)碼顯示管來完成,前面對 其組成部分的功能特點已有所描述,這里不再追述。方案見圖 6,首先通過傳感器 將被測量的連續(xù)變化的模擬電壓轉(zhuǎn)換成模擬電信號送入 tlc1543a/d 轉(zhuǎn)換芯片中,由 模數(shù)轉(zhuǎn)換器組成的模數(shù)轉(zhuǎn)換控制電路對輸入的模擬電信號進(jìn)行取樣、轉(zhuǎn)換,再將轉(zhuǎn) 換的數(shù)字量送進(jìn)單片機(jī),通過對單片機(jī)進(jìn)行的程序設(shè)計來完成數(shù)據(jù)的分析處理,從 而得到控制電路的實現(xiàn),最后由顯示電路顯示轉(zhuǎn)換后的測量結(jié)果,即進(jìn)行程序控制, 使其在六位數(shù)碼管的后四位數(shù)碼管上輪流顯示 tlc15

40、43 各通道的測量值,同時用十 六進(jìn)制表示的通道號顯示在第 1 位數(shù)碼管上。注意,這里 tlc1543 模數(shù)轉(zhuǎn)換器采用 了串行接口,這使得這類芯片與單片機(jī)的硬件連接變得相對簡單,但同時帶來了軟 件編制的復(fù)雜性,因此要尤為注意。 at89c51 單片機(jī) 驅(qū)動 電路 led 顯示 按鍵 tlc1 543a /d 轉(zhuǎn)換 輸 入 電 壓 3.2 繪制系統(tǒng)硬件電路圖了解其工作原理 結(jié)合以上各部分單元電路的功能分析,對照系統(tǒng)技術(shù)要求進(jìn)行全面分析,得出 系統(tǒng)硬件電路圖,電路如圖 9 所示。 按鍵 k1、k2、k3、k4 分別控制 int0(中斷 0) 、int1(中斷 1) 、t0(計數(shù)/定 時 0) 、t

41、1(計數(shù)/定時 1)接口,即控制外部中斷和外部定時/計數(shù)的兩種請求輸入 端。x1、x2 為內(nèi)部時鐘發(fā)生器的輸入、輸出端,外接晶振電路,p1 口具有通用輸入 輸出功能,在此訪問外部存儲器,作為輸入地址總線用,p1.0、p1.1、p1.2、p1.3 和 p1.4 分別與 eoc、時鐘、地址、數(shù)據(jù)、片選端分別相連。vcc 與 gnd 分別是電源 引腳,ref+(14 引腳,通常為 vcc)和 ref-為參考電源的正負(fù)引腳,電阻 r1 和穩(wěn) 壓二極管 t1 組成分壓電路,連接至 tlc1543 的 ref+端,作為其輔助參考電壓, ref-(13 引腳)通常接系統(tǒng)的地,達(dá)到一點接地的要求,以減少干擾,

42、gnd 接地, 作為模數(shù)轉(zhuǎn)換時的參考點,其余引腳是 tlc1543 與 cpu 的接口,cs 為片選端,低電 平有效,此電路中,工作狀態(tài)由 cs 使能或禁止,cs 為高電平時,i/o clock、address 被禁止,同時 data out 為高阻狀態(tài)。當(dāng) cpu 使 cs 變低時, tlc1543 開始數(shù)據(jù)轉(zhuǎn)換,i/o clock、address 使能,data out 脫離高阻狀態(tài),隨后, cpu 向 address 提供 4 位通道地址,控制 14 個模擬通道選擇器從 11 個外部模擬輸 入和 3 個內(nèi)部自測電壓中選通 1 路送到采樣電路,與此同時,i/o clock 輸入時鐘 時序,

43、cpu 從 data out 端接收前一次 a/d 轉(zhuǎn)換結(jié)果。i/o clock 從 cpu 接收 10 個 時鐘長度的時鐘序列,前 4 個時鐘用 4 位地址從 address 端裝載地址寄存器,選擇 所需的模擬通道,后 6 個時鐘對模擬輸入的參量提供采樣控制時序,即模擬輸入的 采樣起始于第 4 個 i/o clock 下降沿,而采樣一直持續(xù) 6 個 i/o clock 周期,即一 直保持到第 10 個 i/o clock 下降沿。轉(zhuǎn)換過程中,cs 的下降沿使 data out 引腳脫 離高阻狀態(tài)并起動一次 i/o clock 工作過程。cs 上升沿終止這個過程并在規(guī)定的延 遲時間內(nèi)使 dat

44、a out 引腳返回到高阻狀態(tài),經(jīng)過兩個系統(tǒng)時鐘周期后禁止 i/o clock 和 address 端。工作過程如下: 開始,進(jìn)行初始化設(shè)置,p0、p1、p2 端口全置 1,禁止各芯片使能,關(guān)閉顯示 器,設(shè)置定時器工作方式, (此選 t0,使用方式 1)啟動 t0,開總允許中斷, ,開啟 t0 中斷,計數(shù)器清零,將第 2 個顯示器消隱,不使用。先選取一通道,將通道地址 送入,調(diào)用模數(shù)轉(zhuǎn)換子程序,片選端置低,tlc1543 工作狀態(tài)變?yōu)槭鼓荛_始轉(zhuǎn)換, 取出 a 中所存地址的高四位裝載輸入地址寄存器,同時設(shè)置 4 個時鐘脈沖,即時鐘 從 cpu 接收 4 個時鐘長度的時鐘序列,后補 6 個時鐘脈沖

45、,對數(shù)據(jù)進(jìn)行采樣控制時 序用,使其完成轉(zhuǎn)換之后,片選端置高,終止轉(zhuǎn)換。再次啟動轉(zhuǎn)換,芯片使能,此 時數(shù)據(jù)輸出端置 1,啟動輸出,第二輪第一個脈沖開始,轉(zhuǎn)換后輸出一位(d10), 第二個時鐘脈沖開始, 轉(zhuǎn)換輸出端輸出第二位(d9),保存數(shù)據(jù)至r0中,后8個時鐘脈沖,輸出轉(zhuǎn)換后數(shù) 據(jù)的低8位,存入r1中,片選端置1,關(guān)閉,禁止芯片使能 , 調(diào)用十進(jìn)制轉(zhuǎn)換程序?qū)?轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行調(diào)整 ,十進(jìn)制調(diào)整后數(shù)據(jù)變?yōu)?6位,取低8位中的低四位由第3個 顯示器顯示,高4位由第4個顯示器顯示,高8位的高4位有第6個顯示器顯示,低4位 由第5個顯示器顯示。通道號送至第1個數(shù)碼顯示管。如此完成在六位數(shù)碼管的后四 位數(shù)

46、碼管上輪流顯示tlc1543 各通道的測量值,同時用十六進(jìn)制表示的通道號顯示 在第1 位數(shù)碼管上的功能。 圖 9 使用 tlc1543 制作多路輸入電壓表電路圖 4 4 系統(tǒng)的軟件系統(tǒng)的軟件 4.1 tlc1543 與 89c51 接口程序 tlc1543 與 at89c51 接口程序應(yīng)完全依照 tlc1543 的工作時序編寫,主要由 conveter 子程序組成。由于轉(zhuǎn)換完成的數(shù)據(jù)為 10 位,軟件編寫時將數(shù)據(jù)的高位字 節(jié)存放在 2eh 單元中,低位字節(jié)存放在 2fh 單元中。其中 r1、r2 寄存器存放 a/d 轉(zhuǎn) 換結(jié)果,r3 設(shè)置轉(zhuǎn)換后先輸出數(shù)據(jù)的高 8 位,r4 存放通道地址,dou

47、t 為轉(zhuǎn)換數(shù)據(jù) 輸出端,本例程序中 89c51 晶振為 11.0592mhz。其程序清單如下: org 0000h ;起始指令 ajmp main ;引向主程序入口 0rg 0100h ;起始指令,指明后面程序的起始地址 main: mov sp,#60h ;主程序,指針指向當(dāng)前 60h 單元 mov a,#0ffh ;把 0ff 送入 a,即 a 內(nèi)容全置 1 mov r4,#00h ;賦 a/d 通道地址初值 mov r5,#15 ;采樣的通道總數(shù),因模數(shù)轉(zhuǎn)換為上次數(shù)據(jù),故設(shè) 置 15 個 mov r1,#30h ;設(shè)置 r1 的初始單元為 30h mov r2,#31h ;設(shè)置 r2 的

48、初始單元為 31h repeat: mov p1,#04h ; clr clk ;初始化,i/o clock 清零,禁止使能 setb cs ;片選端 cs 置高,禁止使能 setb dout ;初始化,轉(zhuǎn)換數(shù)據(jù)輸出端置高,禁止使能 mov a,#0ffh ;把 0ffh 送入 a,即 a 內(nèi)容全置 1 lcall convter ;調(diào)用轉(zhuǎn)換子程序 mov r1,2fh ;2fh 中存入的轉(zhuǎn)換后數(shù)據(jù)的低位送入 30h 單元中 mov r2,2eh ;2eh 中存入的轉(zhuǎn)換后數(shù)據(jù)的高位送入 31h 單元中 mov a,r4 ;把 r4 存放的通道地址送入 a 中 add a,#10h ;通道地址加

49、 1,指向下一通道地址(a1), 注意是高 4 位加 1 xch a,r4 ;a 內(nèi)容與 r4 內(nèi)容互換,a4 存通到地址 inc r1 inc r1 ;r1 兩次加 1,指向 32h 地址單元 inc r2 inc r2 ;r2 兩次加 1,指向 33h 地址單元 lcall delay ;調(diào)延時子程序 djna r5,repeat ;所有通道轉(zhuǎn)換結(jié)束后,等待循環(huán),否則轉(zhuǎn) repeat 繼續(xù)執(zhí)行 ajmp $ ;暫停 轉(zhuǎn)換子程序 convter: push acc ;將 a 內(nèi)容推入 61h 中 clr cs ;cs 置低,1543 芯片啟動,開始使能 mov a,r4 ;送入通道地址,開始

50、采樣 nop ;等待 mov r3,#8 ;設(shè)置轉(zhuǎn)換后先輸出數(shù)據(jù)的高 8 位 loop: mov c,dout ;轉(zhuǎn)換輸出端輸出一位 nop ; 等待 mov addr,c ;將輸出的一位裝載到地址寄存器中 setb clk ;時鐘置高,啟動一個時鐘脈沖 nop ;等待 clr clk ;時鐘置低,一個時鐘脈沖完畢 djnz r3,loop ;等待數(shù)據(jù)的高 8 位輸出完畢 mov c,dout ;轉(zhuǎn)換輸出端再輸出一位,即數(shù)據(jù)第 9 位 mov b.1,c ;將此位存入 b.1 中 setb clk ;時鐘置高 nop ;等待 clr clk ;時鐘置低,第九個時鐘脈沖結(jié)束 mov c,dout

51、 ;繼續(xù)輸出數(shù)據(jù)第十位(最低位) mov b.0,c ;把此位存放到 b.0 中 setb clk ;時鐘置高 nop ;等待 clr clk ;時鐘置低,第十個時鐘脈沖結(jié)束 clr dout ;轉(zhuǎn)換數(shù)據(jù)輸出端 dout 清零 rl a ;a 內(nèi)容左移一位 rl a ;將 a 內(nèi)容高兩位移置 acc.1 與 acc.0 中 mov c,acc.1 ;取 acc.1 內(nèi)容,即原數(shù)據(jù)最高位 mov b.2,c ;把其放入 b.2 中 mov c,acc.0 ;取 acc.0 內(nèi)容,即原數(shù)據(jù)的第 2 個高位 mov b.3,c ;把其放入 b.3 中 mov c,b.1 ;取 b.1 內(nèi)容,即原數(shù)據(jù)

52、第 9 位 mov acc.1,c ;把其放入 acc.1 中 mov c,b.0 ;取 b.0 內(nèi)容,即數(shù)據(jù)第 10 位(最低位) mov acc.0,c ;把其放入 acc.0 中 mov 2fh,a ;轉(zhuǎn)換后數(shù)據(jù)的低 8 位存至 2fh 單元中 mov c,b.2 ;取 b.2 內(nèi)容,即原數(shù)據(jù)最高位 mov b.1,c ;把其放到 b.1 中 mov c,b.3 ;取 b.3 內(nèi)容,即原數(shù)據(jù)的第 2 個高位 mov b.0,c ;把其放入 b.0 中 anl b,#00000011b ;清 b 的高六位,取低兩位 mov 2eh,b ;將轉(zhuǎn)換后數(shù)據(jù)的高 2 位存入 2eh 單元中 pop

53、 acc ;61h 單元中的內(nèi)容推出 ret ;返回 repeat 程序 delay: mov 51h,#200 delay1: djnz 51h,delay1 ret end 由 tlc1543 構(gòu)成的上述數(shù)據(jù)采集系統(tǒng)作為一個大型數(shù)據(jù)監(jiān)控系統(tǒng)的分系統(tǒng)已成 功地應(yīng)用在某通信領(lǐng)域,實踐證明,該系統(tǒng)具有采樣精度高、轉(zhuǎn)換速度快的特點, 具有較高的性價比,可廣泛適用于各種數(shù)據(jù)采集領(lǐng)域。以上程序的編寫,將有助于 我們更好的進(jìn)行多路輸入電壓表的軟件設(shè)計。 4.2 系統(tǒng)程序流程圖 程序流程圖則是程序的結(jié)構(gòu)和各種功能模塊的連接,也是整個程序的核心部分, 在本系統(tǒng)中,首先要確定的是程序的總體構(gòu)成,其主要功能應(yīng)包

54、括:數(shù)據(jù)采集、信 號分析和處理、數(shù)據(jù)文件存儲、顯示等。 根據(jù)設(shè)計要求結(jié)合硬件電路,在編寫程序中要編寫一段數(shù)據(jù)調(diào)整程序,對轉(zhuǎn)換 輸出的數(shù)據(jù)進(jìn)行調(diào)整,以便于驅(qū)動數(shù)碼顯示管;其中還應(yīng)注意硬件顯示電路采用了 動態(tài)掃描顯示,在動態(tài)掃描顯示方式中,動態(tài)掃描的頻率有一定的要求,頻率太低, 數(shù)碼管 led 將會出現(xiàn)閃爍現(xiàn)象,通常在數(shù)碼管點亮?xí)r間間隔一段均取 5ms 左右為宜, 這就要求在編寫程序時,使其點亮并保持一定時間,所以在程序編寫時還要考慮到 顯示子程序??偨Y(jié)以上所分析,程序流程圖如圖 6 所示。 圖圖 6 6 流程圖流程圖 主程序: 定義各引腳: gcoun;通道計數(shù)器 addr;地址端 cs;片選端

55、 clk;時鐘端 dout;數(shù)據(jù)輸出端 hidden;消隱碼 counter;顯示程序用計數(shù)器 dispbuf;顯示器 r2;存放通道號 org 0000h ;起始指令,指定后面程序的首地址 jmp start ;開始程序入口 org 000bh ;使用定時器t0中斷 jmp disp ;顯示程序入口 org 30h start: mov sp,#60h ;初始化程序,sp指針指向當(dāng)前60h單元 mov p1,#0ffh ;初始化,p1口禁止使能 mov p0,#0ffh ;關(guān)閉數(shù)碼管顯示器 mov p2,#0ffh ;同上 mov tmod,#01h ;設(shè)置定時器的工作方式,當(dāng)前選定時器t0

56、,使 用方式1 mov th0,#f4h ;賦t0初值高8位 mov tl0,#48h ;賦t0初值低8位 setb tr0 ;啟動t0 setb ea ;開總允許中斷 setb et0 ;開t0中斷 mov counter,#0 ;顯示程序用計數(shù)器清零 mov dispbuf+1,#hidden ;將第2個顯示器消隱,不使用 mov gcoun,#0 ;通道計數(shù)器清零,指向通道0 loop: call delay ;調(diào)用延時子程序,延時1s mov r2,gcoun ;將計數(shù)器所記數(shù)目作為通道號送至r2中 call adconver ;調(diào)用模數(shù)轉(zhuǎn)換子程序 mov a,r0 ;把轉(zhuǎn)換后輸出數(shù)據(jù)

57、的高2位先存入a中 mov r6,a ;再把a內(nèi)容送至r6中,即高2位存入r6中 mov a,r1 ;把轉(zhuǎn)換后輸出數(shù)據(jù)的剩余8位存入a中 mov r7,a ;a中內(nèi)容再存入r7,即剩余8位存入r7中 call hb2 ;調(diào)用十進(jìn)制轉(zhuǎn)換程序進(jìn)行調(diào)整 mov a,r4 ;十進(jìn)制調(diào)整后的數(shù)據(jù)低8位置r4中傳至a anl a,#0f0h ;清a中數(shù)據(jù)的低4位,即取其高4位 swap a ;高低4位互換 mov dispbuf+2,a ;把a中的低4位存入第3個顯示器中 mov a,r4 ;再次將十進(jìn)制調(diào)整后的數(shù)據(jù)低8位置r4中 傳至a anl a,#0fh ;清a中數(shù)據(jù)的高4位,即取其低4位 mov

58、dispbuf+3,a ;把a中的低4位存入第4個顯示器中 mov a,r5 ;十進(jìn)制調(diào)整后的數(shù)據(jù)高8位置r5中傳至a anl a,#0f0h ;清a中數(shù)據(jù)的低4位,即取其高4位 swap a ;高低4位互換 mov dispbuf+4,a ;把此時a中的低4位存入第5個顯示器中 mov a,r5 ;再次將十進(jìn)制調(diào)整后的數(shù)據(jù)高8位置r5中 傳至a anl a,#0fh ;清a高4位,取低4位 mov dispbuf+5,a ;把a中的低4位存入第6個顯示器中 ;以上程序段將壓縮bcd碼轉(zhuǎn)換成非壓縮bcd碼并送顯示緩沖區(qū) mov dispbuf,gcoun ;將通道號送入第1個顯示器的顯示緩沖區(qū)

59、 inc gcoun ;通道號加1 mov a,gcoun ;將加1后的gcoun通道號送至a中 cjne a,#11,loop ;判斷是否到11了 mov gcoun,#0 ;到則回零 jmp loop ;主程序到此結(jié)束 4.3 延時子程序: delay: mov r8,#200 ;延遲 1 秒 delay1: mov r9,#255 djnz r9,$ djnz r8,delay1 ret 4.4 模數(shù)轉(zhuǎn)換程序: adconver: clr clk ;初始化,時鐘端置低,禁止使能 clr cs ;片選端置低,tlc1543工作狀態(tài)變?yōu)槭鼓?,開 始轉(zhuǎn)換 mov a,r2 ;將r2所存通道號送

60、入a中 nop ;等待 mov r7,#4 ;設(shè)置4個時鐘脈沖,即時鐘從cpu接收4個時鐘 長度的時鐘序列,裝載地址寄存器用的 cl1: rlc a ;將a中存放的通道地址帶進(jìn)位標(biāo)志循環(huán)左移 一位,即提出數(shù)據(jù)的第8位 mov addr,c ;將a數(shù)據(jù)的第8位送入地址寄存器進(jìn)行裝 載 setb clk ;時鐘端置高,一個i/o clock時鐘脈沖 nop nop ;等待 clr clk ;時鐘置低,第一個時鐘脈沖完畢 djnz r7,cl1 ;等待a寄存器所存地址的高4位從addr端裝載 完畢,指向?qū)⒁蓸拥耐ǖ?mov r7,#6 ;補6 個脈沖 cl2: setb clk ;時鐘置高,第5個

溫馨提示

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

評論

0/150

提交評論