智能電表;51單片機(jī);V9881D;精確測量_第1頁
智能電表;51單片機(jī);V9881D;精確測量_第2頁
智能電表;51單片機(jī);V9881D;精確測量_第3頁
智能電表;51單片機(jī);V9881D;精確測量_第4頁
智能電表;51單片機(jī);V9881D;精確測量_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

緒論設(shè)計(jì)背景伴隨我國經(jīng)濟(jì)的飛速發(fā)展,電力已經(jīng)成為國家的不可或缺的能源。然而目前的用電管理方式太過落后,始終采用先裝表用電然后抄表付費(fèi)的傳統(tǒng)作業(yè)模式,并且絕大部分的電表都是分散的。但是這種管理方式對用戶和管理人員來說,十分不方便,而且有一定的弊端。為了適應(yīng)現(xiàn)代智能電網(wǎng)的發(fā)展要求,保證用戶安全、方便、合理的用電,必須改進(jìn)傳統(tǒng)的電表和用電方式,使之符合現(xiàn)代智能電網(wǎng)的發(fā)展。很長一段時間來,我國主要生產(chǎn)感應(yīng)式機(jī)械交流電表,雖然近幾年開始生產(chǎn)使用簡單的數(shù)字式電能表,但抄表絕大部分仍采用人工的方式。我們的社會正在逐漸步入信息化,網(wǎng)絡(luò)化時代,電力系統(tǒng)也逐漸變得更加智能化,人工抄表對電力系統(tǒng)智能化管理的阻礙逐漸顯現(xiàn)。對電力系統(tǒng)而言,除了用電終端還沒實(shí)現(xiàn)與網(wǎng)絡(luò)對接外,發(fā)電、輸電、配電等。此次設(shè)計(jì)的電能表,減少了電表功耗,計(jì)量更加準(zhǔn)確,十分簡便快捷,工作效率大大提高,最大程度上滿足現(xiàn)代智能電網(wǎng)的要求。傳統(tǒng)電能表電能表的背景電能表在我國電工儀表行業(yè)中占很大比重。伴隨電力系統(tǒng)的發(fā)展,電能表經(jīng)歷了很多階段:從感應(yīng)電能表到脈沖電能表再到純電子式電能表。感應(yīng)電能表:電能表的金屬圓盤在磁場中會感應(yīng)出電流,與磁場相互作用就會產(chǎn)生力,正是這個力驅(qū)動電表工作。感應(yīng)電能表:工作元件與感應(yīng)電能表的很相似,不過其電能脈沖轉(zhuǎn)換是由光電傳感器達(dá)成,脈沖轉(zhuǎn)換后通過電子電路處理,最終可以得到電能數(shù)據(jù)。純電子式電能表:電能計(jì)量全部由電子電路完成,所以電子式電能表的共同特點(diǎn)是都使用到乘法器。管理智能化要求訪問電能表的電參數(shù)逐漸增多,還需要與電能表實(shí)現(xiàn)雙向?qū)崟r通訊,數(shù)字乘法器型電能表的核心是微處理器,因此其功能擴(kuò)展容易,和配電自動化系統(tǒng)集成也就容易。在本世紀(jì)初,工商業(yè)用表的主流逐漸成為電子式電能表,不再是感應(yīng)式電表。智能電表加強(qiáng)了用電管理智能化的能力。目前復(fù)費(fèi)率表技術(shù)發(fā)展迅速,預(yù)付費(fèi)技術(shù)也日漸完善,尤其是IC卡和非接觸式卡等技術(shù)的使用,大大提高了預(yù)付費(fèi)表的安全性和可靠性。電能表的發(fā)展方向隨著國家城鄉(xiāng)電網(wǎng)改造,電工儀表行業(yè)有了一個飛速的發(fā)展,但是改造完成后,電工儀器儀表行業(yè)發(fā)展逐漸平穩(wěn),進(jìn)入發(fā)展低潮,但發(fā)展沒有停止。在高新技術(shù)尤其是電子信息技術(shù)快速發(fā)展下,要求電表不僅僅能完成電量的簡單計(jì)量,還能實(shí)現(xiàn)管理、自動抄表等若干功能。電能表發(fā)展的主流將會是純電子式,測量精度高、功能多樣化、費(fèi)率多樣化、網(wǎng)絡(luò)化、抄表自動化等,而且在未來,這種發(fā)展趨勢會越來越明顯。智能電能表智能電表的概念智能電表,顧名思義就是把傳統(tǒng)電表智能化,除了能夠?qū)崿F(xiàn)簡單的計(jì)量外,還能實(shí)現(xiàn)電功率、電能等電參數(shù)的準(zhǔn)確實(shí)時計(jì)量,與上位機(jī)實(shí)時通訊,用電管理等功能。智能電表技術(shù)主要應(yīng)用微機(jī)技術(shù)、通訊技術(shù)等技術(shù),把智能芯片作為核心。智能電能表的一般結(jié)構(gòu)硬件部分主要由數(shù)據(jù)采集電路,電能計(jì)量芯及相關(guān)電路,單片機(jī)及相關(guān)電路,通信接口電路。數(shù)據(jù)采集電路實(shí)現(xiàn)模擬信號和數(shù)字信號的轉(zhuǎn)換。單片機(jī)及其外圍電路實(shí)現(xiàn)程序和數(shù)據(jù)的存儲并完成相關(guān)的程序、數(shù)據(jù)運(yùn)算和處理。人與儀表的相互“交流”,主要通過液晶顯示屏,上位機(jī)等。通信接口電路將儀表和計(jì)算機(jī)聯(lián)系在一起,實(shí)現(xiàn)儀表和計(jì)算機(jī)信息的實(shí)時交換。軟件部分主要分為兩部分,一部分主要針對鍵盤、單片機(jī)I/O接口、存儲器和顯示器等,控制協(xié)調(diào)他們正常工作,另一部分主要針對通信接口,控制協(xié)調(diào)儀表和計(jì)算機(jī)通信。比如操作鍵盤可以輸入并存儲電表的相關(guān)功能、操作方式以及工作參數(shù);控制單片機(jī)I/O接口電路完成數(shù)據(jù)采集;控制存儲器可以把電表的各種狀態(tài),測量的電能數(shù)據(jù)分時實(shí)時地存儲;控制液晶顯示器可以把電表的各種狀態(tài),測量的電能數(shù)據(jù)通過圖形、字符、數(shù)字等形式顯示給用戶。控制通信接口接收和分析來自通信總線的各種程序操作碼,并根據(jù)計(jì)算機(jī)的遠(yuǎn)程命令,通過通信接口將電表的工作狀態(tài)和測量的電能數(shù)據(jù)等輸出到上位機(jī),或者完成計(jì)算機(jī)要求的相應(yīng)的動作。智能電表的主要特點(diǎn)1.測量精度高,2.可以間接測量難以測量的參數(shù),如無功功率、功率因數(shù)等。3.具有簡單的控制功能,如過負(fù)荷控制。4.具有按鍵查詢功能,通過按鍵可以查詢顯示電量參數(shù),設(shè)定儀表的處置參數(shù)。5.具有通信接口,可以對智能電表遠(yuǎn)程控制,使其具有自動抄表功能,還可以與計(jì)算機(jī)或其他儀表組合使用,構(gòu)成功能多樣的測量系統(tǒng)。系統(tǒng)方案設(shè)計(jì)系統(tǒng)設(shè)計(jì)的基本思路通過電壓、電流采樣電路,將模擬信號輸入計(jì)量芯片V9881D,電能計(jì)量芯片V9881D經(jīng)過一系列的操作,輸出相應(yīng)的脈沖。單片機(jī)STC89C51可以測量瞬時有功功率,完成對功率、電能及其他電參量的精確測量,設(shè)定時間參數(shù)后,還可以實(shí)現(xiàn)分時計(jì)量和存儲等功能。單片機(jī)STC89C51還可以上位機(jī)實(shí)時通訊,完成電量信息和控制指令的交互。具體設(shè)計(jì)任務(wù)測量相關(guān)的電參量,即采集電壓信號和電流信號輸入到計(jì)量芯片V9811D中。設(shè)計(jì)出系統(tǒng)結(jié)構(gòu)框圖,完成系統(tǒng)硬件電路的設(shè)計(jì),具體包括電壓、電流采樣等計(jì)量電路的設(shè)計(jì),計(jì)量芯片和單片機(jī)的接口電路設(shè)計(jì),單片機(jī)外圍電路的設(shè)計(jì)以及數(shù)據(jù)存儲模塊、時鐘模塊、顯示模塊、電源模塊和通信接口電路的設(shè)計(jì)。電能測量原理在物理上,電能就是電源流向負(fù)載的能量流。通過在一定時間內(nèi)用戶消耗的電能的速度可以被稱為瞬時功率,在數(shù)學(xué)上也可以被看作是瞬時電壓和電流瞬時值的乘積,所有這些“即時”的電能消耗全部加在一起就是電能消耗的總數(shù)。因此,該產(chǎn)品的有功功率的電壓和電流的瞬時值的積分時間的表達(dá)式如下:設(shè)在t時刻I的表達(dá)式為:得平均有功功率P為一個T內(nèi)的電能W為總能量就是三個分相能量相加的和值:在現(xiàn)實(shí)電網(wǎng)中,電壓電流信號是由50Hz頻率分量的正弦信號荷很多諧波信號組成的。事實(shí)上,我們可以清楚地察覺到直流分量和高頻分量的信號被包含在瞬時功率信號之內(nèi),從長遠(yuǎn)的角度來看,但凡頻率不為0的頻率分量和時間積分沒有任何的聯(lián)系,它們互不干擾。為了獲得直流分量,需要對瞬時功率信號進(jìn)行檢測。系統(tǒng)結(jié)構(gòu)框圖系統(tǒng)結(jié)構(gòu)圖是系統(tǒng)硬件電路設(shè)計(jì)的基礎(chǔ)系統(tǒng)結(jié)構(gòu)框圖本次設(shè)計(jì)的單相電能表核心芯片是V9881D計(jì)量芯片和STC89C52單片機(jī),利用單片機(jī)定時/計(jì)數(shù)器T0端對V9881D輸出的脈沖計(jì)數(shù),再根據(jù)計(jì)量芯片V9881D的計(jì)量原理,就可以測得有功、無功等電參量。單片機(jī)利用AT24C02芯片對電參量的定時存儲,利用按鍵進(jìn)行電參量的查詢,利用1602液晶顯示器進(jìn)行電參量的顯示,利用RS232總線把電參量進(jìn)行遠(yuǎn)程傳送,傳送到電腦上位機(jī)。DS1302時鐘芯片可以為電表計(jì)量存儲提供時間參數(shù),同時可以作為數(shù)字時鐘。電源模塊可以采用電源插座直接供電。本章小結(jié)本章首先介紹了系統(tǒng)設(shè)計(jì)的基本思路,通過電壓、電流采樣電路,將模擬信號輸入計(jì)量芯片,輸出相應(yīng)的脈沖。單片機(jī)可以完成對功率、電能及其他電參量的精確測量,設(shè)定時間參數(shù)后,還可以實(shí)現(xiàn)分時計(jì)量和存儲等功能。其次分析了具體的設(shè)計(jì)任務(wù),最后研究了系統(tǒng)結(jié)構(gòu)框圖。硬件設(shè)計(jì)系統(tǒng)硬件電路設(shè)計(jì)本章節(jié)主要是對硬件電路進(jìn)行說明,通過劃分各個功能模塊,選擇相關(guān)的芯片。設(shè)計(jì)了V9881D外圍電路,包括電壓、電流采樣電路的設(shè)計(jì),計(jì)量芯片V9881D與單片機(jī)接口電路的設(shè)計(jì),同時闡述了電能計(jì)量的一般原理和相關(guān)電路參數(shù)計(jì)算;設(shè)計(jì)了STC89C52外圍電路,包括單片機(jī)最小系統(tǒng)以及外圍相關(guān)模塊的電路設(shè)計(jì)。計(jì)量芯片V9881DV9811D的特點(diǎn)是高性能、低功耗,他由集成模擬前端、電能計(jì)量模塊、增強(qiáng)型內(nèi)核、WDT、Flash、RTC、SRAM和LCD驅(qū)動等功能模塊組成。V9881D的主要特點(diǎn)5V電源供電,電壓輸入范圍:2.5V~5.5V。低功耗設(shè)計(jì):全速工作時,芯片典型工作電流:5.5mA。休眠時,芯片典型工作電流:10μA?;鶞?zhǔn)電壓:1.185V(10ppm/°C),外部電容漏電時產(chǎn)生中斷支持靈活的防竊電應(yīng)用支持LQFP-100/64、TQFP-48和SSOP-24封裝工作溫度:-40~+85°C儲存溫度:-40~+125°C引腳分布圖電壓采集通道設(shè)計(jì)在電路理論方面上說,電壓采集通道電路要首先保證輸入計(jì)量芯片ADE7757電壓通道中的電壓信號處于芯片的工作范圍內(nèi),所以電壓采集通道可以采用電阻分壓電路來實(shí)現(xiàn)。通常電能表工作的環(huán)境是不定的,而且電能表元件參數(shù)也會存在一定的誤差,因此在分壓電路中,設(shè)計(jì)一個電阻調(diào)整網(wǎng)絡(luò),這樣便可以使電壓信號大小在一定范圍內(nèi)改變,從而可以校驗(yàn)計(jì)量芯片ADE7757輸出脈沖的頻率,調(diào)整電能表的精確度,所以分壓電路又有校驗(yàn)的作用。如圖,改變跳線J就可以短接R,從而調(diào)整整個電阻網(wǎng)絡(luò)的總電阻,有調(diào)整和校驗(yàn)的作用。電壓采集通道電流采集通道設(shè)計(jì)電流采集通道電路相當(dāng)于一個PGA可編程差動放大電路,外圍電路的目的是抗混頻濾波,圖中的R3C5和R4C7組成了兩個一階低通濾波器,把電流通道中的高頻成分濾除。因此為了減少誤差,抗混頻濾波器選取的電容器和電阻器必須為精密的。電流通道單片機(jī)外圍電路設(shè)計(jì)及器件選擇單片機(jī)STC89C52概述STC89C52是生產(chǎn)于宏晶科技公司,它運(yùn)行的速度快,抗干擾的能力強(qiáng),功耗低,和傳統(tǒng)單片機(jī)相比較,是新一代的單片機(jī)。而且在多了很多新功能與特性的同時,他的指令代碼等也可以和傳統(tǒng)的8051單片機(jī)完全兼容。不僅如此,它的兩種工作機(jī)器周期,包括12時鐘/機(jī)器周期和6時鐘/機(jī)器周期,并且使用者可以任選以上兩周中期其一來配合自己的實(shí)際使用。該單片機(jī)提供的應(yīng)用程序的存儲空間足足有8K字節(jié),同時還具有512字節(jié)的RAM。I/O口多為通用的,一共有32個。該型號的單片機(jī)可以編程的環(huán)境也很廣泛,包括在系統(tǒng)中完成編程的,也還可以在應(yīng)用中完成編程。因此對它編程通過串口RxD和TxD即P3.0和P3.1端口即可完成,也就省去了專門編程使用的編程器,當(dāng)然也是不需要特別的專業(yè)的仿真器,這樣就加快了下載用戶程序的速度,只需短短幾秒便可以完成。他的一個16位定時器\計(jì)數(shù)器,便是他與傳統(tǒng)的單片機(jī)的差距了,傳統(tǒng)8051單片機(jī)并沒有16位的定時計(jì)數(shù)器,所以STC89C52一共存在3個16位定時器\計(jì)數(shù)器,即定時器T0、T1、T2。它外部有4路可以由下降沿或低電平觸發(fā)的外部中斷,它還具有通用的異步串行口(UART),如果使用定時器軟件,就可實(shí)現(xiàn)多個通用的異步串行口。STC89C52RC單片機(jī)的正常工作模式加上掉電模式還有空閑模式。這就是該單片機(jī)的三種工作模式。其中正常工作模式的功耗是很低的,掉電模式的功耗更低,功耗通常小于0.1μA,單片機(jī)在這種模式下工作,如果一旦出現(xiàn)了外部中斷,就會被立即喚醒,當(dāng)中斷返回之后,就會繼續(xù)執(zhí)行原程序,因此這種模式通常在水表、電表、氣表等由電池供電的系統(tǒng)及便攜設(shè)備中使用??臻e模式的功耗通常為2mA。下圖即是STC89C52單片機(jī)的引腳配置,STC89C52的引腳配置圖STC89C52RC主要引腳功能說明如下表所示,STC89C52RC主要引腳功能說明

引腳號名稱功能40引腳VCC電源電壓20引腳VSS接地39~32引腳P0端口(P0.0~P0.7)通用I/O口1~8引腳P1端口(P1.0~P1.7)21~28引腳P2端口(P2.0~P2.7)21~28引腳P3端口(P3.0~P3.7)9引腳RST復(fù)位輸入30引腳ALE地址鎖存控制信號19引腳XTAL1振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端18引腳XTAL2振蕩器反相放大器的輸入端P1.0和P1.1端口除了作為一般的準(zhǔn)雙向I/O口使用外,還可以作為外部計(jì)數(shù)輸入端口,從而為定時器/計(jì)數(shù)器服務(wù)。下表便是其引腳的復(fù)用功能。

引腳號功能特性P1.0T2(定時器/計(jì)數(shù)器2外部計(jì)數(shù)輸入),時鐘輸出

P1.1T2EX(定時器/計(jì)數(shù)器2捕獲/重裝觸發(fā)和方向控制)

P3口除作為一般I/O口外,還有許多復(fù)用功能,其引腳復(fù)用功能具體參見下表,

引腳號復(fù)用功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(定時器0的外部輸入)P3.5T1(定時器1的外部輸入)P3.6(外部數(shù)據(jù)存儲器寫選通)P3.7(外部數(shù)據(jù)存儲器讀選通)單片機(jī)控制電路最小系統(tǒng)單片機(jī)控制電路最小系統(tǒng)如圖所示,單片機(jī)控制電路最小系統(tǒng)復(fù)位電路單片機(jī)具有系統(tǒng)上電復(fù)位和在系統(tǒng)運(yùn)行過程中,通過人工按鈕復(fù)位,這兩種復(fù)位的方式。由于系統(tǒng)在實(shí)際運(yùn)行過程中,人工按鈕復(fù)位是最通用的,這就是本設(shè)計(jì)中采用該上電按鈕復(fù)位的原因。晶振電路單片機(jī)晶振電路單片機(jī)內(nèi)部存在這一個反相放大器,其輸入端為XTAL1,輸出端為XTAL2,該反相放大器可以用作構(gòu)成內(nèi)部振蕩器。本次設(shè)計(jì)中,內(nèi)部時鐘接法是本次單片機(jī)的晶振電路的接法,具體接線如上圖所示。LCD顯示器模塊設(shè)計(jì)LCD顯示器工作原理簡介LCD液晶顯示器是一種應(yīng)用非常廣泛的顯示器,分為字段顯示和字符顯示兩種。因此在便攜式儀表和低功耗的高檔儀器儀表廣泛采用LCD液晶顯示器。其字段顯示與LED顯示相似,只要送對應(yīng)的信號到相應(yīng)的管腳就能顯示。字符顯示是根據(jù)需要顯示基本字符。本設(shè)計(jì)采用的是字符型顯示。系統(tǒng)中采用LCD1602作為顯示器件輸出信息。與傳統(tǒng)的LED數(shù)碼管顯示器件相比,液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等優(yōu)點(diǎn),而且不需要外加驅(qū)動電路,現(xiàn)在液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的顯示器件了。LCD1602可以顯示2行16個漢字。芯片1602簡介芯片1602的引腳圖如下圖所示芯片1602管腳圖芯片1602引腳功能說明引腳號名稱功能1腳VSS地電源2腳VDD5V正電源3腳VL液晶顯示器對比度調(diào)整端4腳RS寄存器選擇端5腳R/W讀寫信號線6腳E端使能端7~14腳D0~D78位雙向數(shù)據(jù)線15腳背光源正極16腳背光源負(fù)極當(dāng)RS和R/W接不同電平時,芯片會有不同的操作,具體操作如表所示,RSR/W功能低電平低電平寫入指令或者顯示地址低電平高電平讀忙信號高電平低電平寫入數(shù)據(jù)數(shù)據(jù)存儲模塊設(shè)計(jì)芯片24C02簡介24C02芯片由CATALYST公司生產(chǎn)的,他的內(nèi)部含有8位字節(jié)多達(dá)256個,同時24C02芯片操作簡單,他在實(shí)際使用中的優(yōu)點(diǎn)還是非常明顯的,比如與400KHzI2C總線完美兼容,工作電壓范圍大,從1.8到6.0伏都可以,由于CMOS技術(shù),其功耗很低,具有寫保護(hù)功能,芯片的管腳圖如下圖所示,芯片24C02的管腳圖各管腳功能存儲模塊電路設(shè)計(jì)圖存儲模塊電路圖如下圖所示,存儲模塊電路圖

時鐘模塊設(shè)計(jì)DS1302簡介DS1302的管腳配置如下圖所示,DS1302管腳配置圖DS1302引腳功能引腳號名稱功能1腳VCC2主電源8腳VCC1后備電源2/3腳X1、X2振蕩源,外接32.768kHz晶振4腳GND地端5腳RST復(fù)位/片選線6腳I/O串行數(shù)據(jù)輸入輸出端7腳SCLK時鐘輸入端時鐘電路設(shè)計(jì)下圖為時鐘電路圖設(shè)計(jì)圖,時鐘電路圖通信模塊設(shè)計(jì)單片機(jī)通信方式并行數(shù)據(jù)傳送,顧名思義,就是同一時間內(nèi)多個數(shù)據(jù)位并行同時傳送,因此提高了傳輸效率,傳送的速度也就比較快,但是快速的傳輸速度是以高成本為代價,因?yàn)椴⑿袛?shù)據(jù)傳送有多少數(shù)據(jù)位就需要多少根線,只有這樣才能實(shí)現(xiàn)同一時間內(nèi)多個數(shù)據(jù)位并行同時傳送。并行數(shù)據(jù)傳送對于長距離的數(shù)據(jù)傳送來說,成本較高,它通常適用于短距離的數(shù)據(jù)傳送。串行數(shù)據(jù)傳送,顧名思義,數(shù)據(jù)傳送按位的順序依次進(jìn)行,前一數(shù)據(jù)位傳送完畢后一數(shù)據(jù)位才可以傳送,因此他的傳輸速度比較慢,但是傳輸成本低,因?yàn)榇袛?shù)據(jù)傳送最少只需要一根傳輸線。串行數(shù)據(jù)傳送比較適用于傳輸距離從幾米到幾千米的長距離的數(shù)據(jù)傳送。綜上所述,結(jié)合電表的實(shí)際使用,本次設(shè)計(jì)的智能電表的數(shù)據(jù)傳送采用串行數(shù)據(jù)傳送。通常,串行數(shù)據(jù)傳送又稱為串行通信。8051單片機(jī)的串行通信,具有四種工作方式,這些四種工作方式可以在實(shí)際使用中通過設(shè)置單片機(jī)的相應(yīng)端口根據(jù)實(shí)際使用情況,任意選擇。RS232串行口標(biāo)準(zhǔn)簡介RS232是由美國電子工業(yè)協(xié)會于1962年指定的一種串行通信接口標(biāo)準(zhǔn)。通信設(shè)備雙方只有同時遵守這一標(biāo)準(zhǔn),雙方才可以進(jìn)行通信,它是異步串行通信中應(yīng)用最廣泛的總線標(biāo)準(zhǔn)。這一標(biāo)準(zhǔn)規(guī)定了在串行通信中通信設(shè)備之間連接電路的電氣特性,約定了他們之間的通信格式,以及其他通信約定。接口電路設(shè)計(jì)通信模塊電路圖設(shè)計(jì)如圖所示,通信模塊電路圖本章小結(jié)本章我首先介紹了系統(tǒng)硬件電路,計(jì)量芯片V9881D,其次設(shè)計(jì)了電流采集通道,電壓采集通道,單片機(jī)外圍電路設(shè)計(jì)及器件選擇,LCD顯示器模塊設(shè)計(jì),顯示電路設(shè)計(jì),數(shù)據(jù)存儲模塊設(shè)計(jì),最后介紹了時鐘模塊設(shè)計(jì),通信模塊設(shè)計(jì)。軟件設(shè)計(jì)系統(tǒng)軟件程序流程圖本次軟件設(shè)計(jì)的主要思路采用的是嵌套的方法,在主程序中嵌套各種中斷程序,避免程序冗雜,影響程序正常運(yùn)行。首先設(shè)計(jì)系統(tǒng)軟件的主程序,它是系統(tǒng)軟件部分的基礎(chǔ),它可以啟動系統(tǒng)軟件各個功能部分,完成初始化。中斷程序是針對各種事件的處理,例如按鍵處理、數(shù)據(jù)通信等。主程序設(shè)計(jì)框圖主程序流程圖如圖所示系統(tǒng)主程序流程圖功率計(jì)量流程圖由于本次設(shè)計(jì)中的計(jì)量芯片儀表參數(shù)是6400imp/Kmh,因此16個脈沖相當(dāng)于16/6400=0.0025kwh的電量或0.0025*3600000=9000J的電量。時間t由兩部分num0和num1記錄,將TH0的初值設(shè)置為56,則每(256-56)*1us=200us產(chǎn)生一次中斷。這時num自動加1,當(dāng)計(jì)滿16個脈沖后,將num的值賦給num0,num1則為計(jì)滿16個脈沖那一刻TH0的值。因此有時間t=(num0*200+(num1-56))us。所以功率P=電量/時間=9000*1000000/(num0*200+(num1-56))。其流程圖如圖所示:功率計(jì)量流程圖按鍵查詢流程圖中斷程序流程圖如圖所示:中斷程序流程圖本章小結(jié)本章我首先介紹了主程序設(shè)計(jì)框圖,其次設(shè)計(jì)了功率計(jì)量流程圖,最后完成了按鍵查詢流程圖。結(jié)論經(jīng)過一個多月的緊張工作,我在老師和同學(xué)的幫助下,基本上完成了智能電表的設(shè)計(jì)。但是本次設(shè)計(jì)由于時間緊張,自己水平能力有限以及各種外部條件的限制,并沒有達(dá)到自己預(yù)想的水平。硬件部分設(shè)計(jì)主要包括電壓、電流等數(shù)據(jù)采集輸入、輸出電路的設(shè)計(jì),電能計(jì)量芯片及相關(guān)電路的設(shè)計(jì),單片機(jī)及外圍相關(guān)電路的設(shè)計(jì),比如存儲模塊、時鐘模塊、顯示模塊、電源模塊、通信模塊等各個功能模塊的電路設(shè)計(jì)。軟件部分的流程圖設(shè)計(jì),主要包括主程序設(shè)計(jì)框圖,功率計(jì)量流程圖,按鍵查詢流程圖。但是本次設(shè)計(jì)總體還是有可借鑒之處,比如本次設(shè)計(jì)選取的計(jì)量芯片是V9811D是一款高性能、低功耗的單相電能計(jì)量SoC芯片,可提供提供各種數(shù)據(jù),測量精度±1°C電池電壓/外部電壓可為單相多功能電能表提供單芯片解決方案??傊@次設(shè)計(jì)的收獲還是比較大的,通過這次設(shè)計(jì)我充分了解了傳統(tǒng)電表的發(fā)展以及弊端,知道了智能電表的概念以及其未來的巨大優(yōu)勢。通過查閱相關(guān)資料,認(rèn)識了專門的電能計(jì)量芯片V9811D。同時加深了本科所學(xué)知識的理解,比如單片機(jī)的知識,微機(jī)原理的知識等。這是自己第一次真正意義上做設(shè)計(jì)寫論文,大大增強(qiáng)了我的自主學(xué)習(xí)能力,自己不懂知識自己到圖書管查閱資料,或到網(wǎng)上搜索,為今后的學(xué)習(xí)生活打下了良好基礎(chǔ)。不管最后自己的畢業(yè)論文成績?nèi)绾?,我相信這都是我大學(xué)最后美好的回憶。致謝經(jīng)過長時間的不斷努力,為期兩個月的畢業(yè)設(shè)計(jì)終于在此時此刻完成了。這時候感覺整個人都輕松了很多,并且感到一定的成就感。畢業(yè)設(shè)計(jì)能夠直接體現(xiàn)我們的實(shí)踐能力,并且它會涉及到很多方面的知識。這次設(shè)計(jì),讓我在設(shè)計(jì)方面的技能和知識的到了一定的提高,并提高了我在單片機(jī)方面的知識水平。同時我也培養(yǎng)了正確設(shè)計(jì)的方法和想法,以及獨(dú)立解決實(shí)際應(yīng)用中遇到的問題的工作能力。本次設(shè)計(jì)還提高了我獲取資料和分析問題的能力,同時也提高了我在設(shè)計(jì)計(jì)算、原理圖繪制、c語言、書面表達(dá)等方面的能力,為我以后進(jìn)入社會工作打下良好的基礎(chǔ)。在這里要特別感謝我的指導(dǎo)老師,雖然在畢業(yè)設(shè)計(jì)的期間,我們很少見面,我們都知道現(xiàn)在科技發(fā)達(dá),通過畢業(yè)交流群來進(jìn)行交流完全可以。每當(dāng)有新的關(guān)于畢業(yè)設(shè)計(jì)的消息,她都會第一時間通過群來告訴我們,而且每當(dāng)問她問題時她都耐心的回答我們,因?yàn)橛辛怂闹笇?dǎo)我才能按時完成我的畢業(yè)設(shè)計(jì);同時也要感謝同學(xué)們的幫助,有時候遇到不懂的東西,通常是先找同學(xué)們討論,沒有結(jié)果才問老師。最后要我要再次感謝這四年對我培養(yǎng)的所有老師,很難說再見,但是又不得不說再,你們是我最好的朋友,謝謝你們。參考文獻(xiàn)[1]趙偉,龐海波.電能表的發(fā)展歷史[J].電測與儀表,1999,8(2):9-11.[2]譚紹瓊.淺談電能計(jì)量裝置的發(fā)展[J].機(jī)械管理開發(fā),2007,6(5):3-8.[3]王毅.電能計(jì)量裝置介紹[J].電力自動化設(shè)備,2007,5(11):6-10.[4]鄭文,趙偉.電能自動抄表技術(shù)及相關(guān)思考[J].電測與儀表,2011,3(4):12-14.[5]黃偉.電能計(jì)量技術(shù)[M].北京:中國電力出版社,2004.65-76.[6]閻士琦.電能計(jì)量裝置接線分析200例[M].北京:中國電力出版社,2008.34-36.[7]李全利,仲偉峰,徐軍.單片機(jī)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2006.77-91.[8]劉樂善.微型計(jì)算機(jī)接口技術(shù)原理及應(yīng)用[M].武漢:華中科技大學(xué)出版社,2005.66-89.[9]謝瑞和.串行技術(shù)大全[M].北京:清華大學(xué)出版社,2003.122-139.[10]陳龍三.8051單片機(jī)C語言控制與應(yīng)用[M].北京:清華大學(xué)出版社,1999.34-57.[11]張培仁.基于C語言編程:MCS-51單片機(jī)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2003.54-67.[12]譚浩強(qiáng).C語言程序設(shè)計(jì).北京:清華大學(xué)出版社,2000:45-123.[13]Stiqer.Ruth.Meter-readingmethodschangeslowly[J].GasUtilitymanage,2004,48(4):26-28.[14]Lucn,Zhangbu-han,LuYi-min.Automaticmeterreadingsystemsolutionanditsrealization[J].ElectricpowerAutomationEquipment,2003,23(6):68-70[15]Satanic.D.Influenceofthetransmissionmediumqualityontheautomaticmeterreadingsystemcapacity[J].ElectricPowerAutomationEquipment,2003,23(6):68-70.附錄1單片機(jī)控制電路附錄2程序源文件#include<reg52.h> #include<intrins.h>#include<stdio.h>#defineucharunsignedchar#defineuintunsignedintsfrT2MOD=0xc9;//T2MOD在reg52.h中沒有定義,這里進(jìn)sbitd1=P2^6;sbitscl=P2^1;sbitsda=P2^0;sbitRS=P2^2;sbitRW=P2^3;sbitE=P2^4;sbitBF=P0^7;sbitfmq=P2^7;sbitSCLK=P1^6;sbitDATA=P3^6;sbitRST=P3^7;sbitkey=P3^2;sbitkey1=P3^3;sbitjdq=P1^3;floatnum=0.0,num0=0.0,num1=0.0,eng=0.00,pow=0.00;xdatauchari=0,j=0;bitflag=1;ucharcodestring[]={"POW"};ucharcodestring1[]={"ENG"};ucharstring2[10];ucharstring3[10];ucharcodedigit[10]={"0123456789"};//定義字符數(shù)組顯示數(shù)字uchara1;voiddelaynus(unsignedcharn){unsignedchari;for(i=0;i<n;i++);}voiddelay1ms(){unsignedchari,j;for(i=0;i<10;i++)for(j=0;j<33;j++);}voiddelaynms(unsignedcharn){unsignedchari;for(i=0;i<n;i++)delay1ms();}voiddelay(unsignedintn);voidWrite_com(unsignedchardictate);bitBusyTest(void);voidWriteAddress(unsignedcharx){Write_com(x|0x80);}voidWrite_com(unsignedchardictate){while(BusyTest()==1);RS=0;RW=0;E=0;_nop_();_nop_();P0=dictate;_nop_();_nop_();_nop_();_nop_();E=1;_nop_();_nop_();_nop_();_nop_();E=0;}voidWriteData(unsignedchary){while(BusyTest()==1);RS=1;RW=0;E=0;P0=y;_nop_();_nop_();_nop_();_nop_();E=1;_nop_();_nop_();_nop_();_nop_();E=0;}voidLcdInt(void){delay(15);Write_com(0x38);delay(5);Write_com(0x38);delay(5);Write_com(0x38);delay(5);Write_com(0x0c);delay(5);Write_com(0x06);delay(5);Write_com(0x01);delay(5);}/*****************************************************函數(shù)功能:向1302寫一個字節(jié)數(shù)據(jù)入口參數(shù):x***************************************************/voidWrite1302(unsignedchardat){unsignedchari;SCLK=0;//拉低SCLK,為脈沖上升沿寫入數(shù)據(jù)做好準(zhǔn)備delaynus(2);//稍微等待,使硬件做好準(zhǔn)備for(i=0;i<8;i++)//連續(xù)寫8個二進(jìn)制位數(shù)據(jù){DATA=dat&0x01;//取出dat的第0位數(shù)據(jù)寫入1302低位在前,高位在后delaynus(2);//稍微等待,使硬件做好準(zhǔn)備SCLK=1;//上升沿寫入數(shù)據(jù)delaynus(2);//稍微等待,使硬件做好準(zhǔn)備SCLK=0;//重新拉低SCLK,形成脈沖dat>>=1;//將dat的各數(shù)據(jù)位右移1位,準(zhǔn)備寫入下一個數(shù)據(jù)位}}/*****************************************************函數(shù)功能:根據(jù)命令字,向1302寫一個字節(jié)數(shù)據(jù)入口參數(shù):Cmd,儲存命令字;dat,儲存待寫的數(shù)據(jù)***************************************************/voidWriteSet1302(unsignedcharCmd,unsignedchardat){RST=0;//禁止數(shù)據(jù)傳遞SCLK=0;//確保寫數(shù)居前SCLK被拉低RST=1;//啟動數(shù)據(jù)傳輸delaynus(2);//稍微等待,使硬件做好準(zhǔn)備Write1302(Cmd);//寫入命令字Write1302(dat);//寫數(shù)據(jù)SCLK=1;//將時鐘電平置于高電平狀態(tài)RST=0;//禁止數(shù)據(jù)傳遞}/*****************************************************函數(shù)功能:從1302讀一個字節(jié)數(shù)據(jù)入口參數(shù):x***************************************************/unsignedcharRead1302(void){unsignedchari,dat;delaynus(2);//稍微等待,使硬件做好準(zhǔn)備for(i=0;i<8;i++)//連續(xù)讀8個二進(jìn)制位數(shù)據(jù){dat>>=1;if(DATA==1)//如果讀出的數(shù)據(jù)是1dat|=0x80;//將1取出,寫在dat的最高位SCLK=1;//將SCLK置于高電平,為下降沿讀出delaynus(2);//稍微等待SCLK=0;//拉低SCLK,形成脈沖下降沿delaynus(2);//稍微等待}returndat;//將讀出的數(shù)據(jù)返回}/*****************************************************函數(shù)功能:根據(jù)命令字,從1302讀取一個字節(jié)數(shù)據(jù)入口參數(shù):Cmd***************************************************/unsignedcharReadSet1302(unsignedcharCmd){unsignedchardat;RST=0;//拉低RSTSCLK=0;//確保寫數(shù)居前SCLK被拉低RST=1;//啟動數(shù)據(jù)傳輸Write1302(Cmd);//寫入命令字dat=Read1302();//讀出數(shù)據(jù)SCLK=1;//將時鐘電平置于已知狀態(tài)RST=0;//禁止數(shù)據(jù)傳遞returndat;//將讀出的數(shù)據(jù)返回}/*****************************************************函數(shù)功能:1302進(jìn)行初始化設(shè)置***************************************************/voidInit_DS1302(void){WriteSet1302(0x8E,0x00);//根據(jù)寫狀態(tài)寄存器命令字,寫入不保護(hù)指令WriteSet1302(0x80,((00/10)<<4|(0%10)));//根據(jù)寫秒寄存器命令字,寫入秒的初始值WriteSet1302(0x82,((00/10)<<4|(0%10)));//根據(jù)寫分寄存器命令字,寫入分的初始值WriteSet1302(0x84,((00/10)<<4|(0%10)));//根據(jù)寫小時寄存器命令字,寫入小時的初始值WriteSet1302(0x86,((00/10)<<4|(0%10)));//根據(jù)寫日寄存器命令字,寫入日的初始值WriteSet1302(0x88,((00/10)<<4|(0%10)));//根據(jù)寫月寄存器命令字,寫入月的初始值WriteSet1302(0x8c,((00/10)<<4|(0%10)));//根據(jù)寫年寄存器命令字,寫入年的初始值WriteSet1302(0x8E,0x80);//根據(jù)寫狀態(tài)寄存器命令字,寫入保護(hù)指令}voidDisplaySecond(unsignedcharx){unsignedchari,j;//j,k分別儲存十位和個位i=x/10;//取十位j=x%10;//取個位WriteAddress(0x49);//寫顯示地址,將在第2行第7列開始顯示W(wǎng)riteData(digit[i]);//將百位數(shù)字的字符常量寫入LCDWriteData(digit[j]);//將十位數(shù)字的字符常量寫入LCDdelaynms(50);//延時1ms給硬件一點(diǎn)反應(yīng)時間}/*****************************************************函數(shù)功能:顯示分鐘入口參數(shù):x***************************************************/voidDisplayMinute(unsignedcharx){unsignedchari,j;//j,k十位和個位i=x/10;//取十位j=x%10;//取個位WriteAddress(0x46);//寫顯示地址,將在第2行第7列開始顯示W(wǎng)riteData(digit[i]);//將百位數(shù)字的字符常量寫入LCDWriteData(digit[j]);//將十位數(shù)字的字符常量寫入LCDdelaynms(50);//延時1ms給硬件一點(diǎn)反應(yīng)時間}/*****************************************************函數(shù)功能:顯示小時入口參數(shù):x***************************************************/voidDisplayHour(unsignedcharx){unsignedchari,j;//j,k十位和個位i=x/10;//取十位j=x%10;//取個位WriteAddress(0x43);//寫顯示地址,將在第2行第7列開始顯示W(wǎng)riteData(digit[i]);//將百位數(shù)字的字符常量寫入LCDWriteData(digit[j]);//將十位數(shù)字的字符常量寫入LCDdelaynms(50);//延時1ms給硬件一點(diǎn)反應(yīng)時間}/*****************************************************函數(shù)功能:顯示日入口參數(shù):x***************************************************/voidDisplayDay(unsignedcharx){unsignedchari,j;//j,k十位和個位i=x/10;//取十位j=x%10;//取個位WriteAddress(0x0c);//寫顯示地址,將在第2行第7列開始顯示W(wǎng)riteData(digit[i]);//將十位數(shù)字的字符常量寫入LCDWriteData(digit[j]);//將個位數(shù)字的字符常量寫入LCDdelaynms(50);//延時1ms給硬件一點(diǎn)反應(yīng)時間}/*****************************************************函數(shù)功能:顯示月入口參數(shù):x***************************************************/voidDisplayMonth(unsignedcharx){unsignedchari,j;//j,k分別儲存十位和個位i=x/10;//取十位j=x%10;//取個位WriteAddress(0x09);//寫顯示地址,將在第2行第7列開始顯示W(wǎng)riteData(digit[i]);//將十位位數(shù)字的字符常量寫入LCDWriteData(digit[j]);//將個位數(shù)字的字符常量寫入LCDdelaynms(50);//延時1ms給硬件一點(diǎn)反應(yīng)時間}/*****************************************************函數(shù)功能:顯示年入口參數(shù):x***************************************************/voidDisplayYear(unsignedcharx){unsignedchari,j;//j,k分別儲存十位和個位i=x/10;//取十位j=x%10;//取個位WriteAddress(0x06);//寫顯示地址,將在第2行第7列開始顯示W(wǎng)riteData(digit[i]);//將十位位數(shù)字的字符常量寫入LCDWriteData(digit[j]);//將個位數(shù)字的字符常量寫入LCDdelaynms(50);//延時1ms給硬件一點(diǎn)反應(yīng)時間}voiddelay(unsignedintn){unsignedinti,y;for(i=0;i<n;i++)for(y=115;y>0;y--);}bitBusyTest(void){bitresult;RS=0;RW=1;E=1;_nop_();_nop_();_nop_();_nop_();result=BF;E=0;returnresult;}voidmain(void){intm1,m2;jdq=0;LcdInt();delay(10);TMOD=0x16;TH1=(65536-200)/256;TL1=(65536-200)%256;TH0=(65536-16)/256;TL0=(65536-16)%256;TR0=1;TR1=1;EA=1;ET0=1;ET1=1;/*外部中斷定義*/EX0=1;EX1=1;IT0=1;IT1=1;T2CON=0x34;//定義串口收發(fā)模式RCAP2H=0xff;RCAP2L=0xdc;//RCAP2H一定給0XFF,RCAP2L的值:把fosc/baud/32的值換成16進(jìn)制,用10000h-這個值,后面2個數(shù)SCON=0x50;//方式1,10位異步收發(fā),8位數(shù)據(jù),無奇偶校驗(yàn)位TR2=1;Init_DS1302();//將1302初始化while(1){WriteData(a+48);WriteData('.');WriteData(c+48);WriteData(d+48);*/i=0;while(m1--){WriteData(string2[i]);i++;delay(100);}WriteAddress(0x40);i=0;while(string[i]!='\0'){WriteData(string[i]);i++;delay(100);}WriteAddress(0x45);delay(5);i=0;while(m2--){WriteData(string3[i]);i++;delay(100);}}for(i=0;i<5;i++){SBUF=string2[i];while(!TI);TI=0;delay(13);}SBUF='!';while(!TI);TI=0;delay(10);}}voidt0()interrupt1{eng+=16.0/3200;num0=num;num1=TL1;TH0=(65536-16)/256;TL0=(65536-16)%256;if(num0==0&&num1==0)pow=0;else{pow=1*18000*1000000/(num0*200+(num1-65336));num=0;}d1=0;del

溫馨提示

  • 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

提交評論