畢業(yè)設(shè)計基于STC89C52單相電度表的測量的設(shè)計_第1頁
畢業(yè)設(shè)計基于STC89C52單相電度表的測量的設(shè)計_第2頁
畢業(yè)設(shè)計基于STC89C52單相電度表的測量的設(shè)計_第3頁
畢業(yè)設(shè)計基于STC89C52單相電度表的測量的設(shè)計_第4頁
畢業(yè)設(shè)計基于STC89C52單相電度表的測量的設(shè)計_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 基于基于 stc89c52stc89c52 單相電度表的測量的設(shè)計單相電度表的測量的設(shè)計摘摘 要要隨著城農(nóng)網(wǎng)改造的逐步深入,各種各樣的計量工具不斷出現(xiàn)在市場上。各種不同的計量工具所使用的計量方法也不一樣。該系統(tǒng)由前端電路調(diào)理模塊,電能表芯片cs5460 模塊,單片機(jī) stc89c52 模塊,顯示模塊,存儲模塊等組成。cs5460 實現(xiàn)功率測量和用 stc89c52 單片機(jī)實現(xiàn)電能計量的方法是當(dāng)下比較成熟的計算方法。cs5460 是一種帶有串行接口的單向雙向功率電能集成電路芯片,用它可以方便的組成多功能電子式電度表和分布式電能計量管理系統(tǒng)。其中使用 cs5460 芯片設(shè)計的簡單單相電度表可以用

2、于工業(yè)現(xiàn)場的電量數(shù)據(jù)采集和簡單的功率計算,使用 cs5460 芯片設(shè)計的數(shù)字電表適用于住宅用電計量的最精確,并具成本效益的電表方案,打開了電表設(shè)計的新領(lǐng)域,是下一代民用電表的理想產(chǎn)品和最好的工業(yè)解決方案。目前我國高校學(xué)生公寓普遍采用限電措施來控制學(xué)校電能利用,公寓管理社會化后,限制學(xué)生用電將改為鼓勵學(xué)生安全用電,從而將采用限制安全功率、限制基本電費、超量收費的形式。 關(guān)鍵詞:關(guān)鍵詞:cs5460cs5460 芯片芯片;stc89c52;stc89c52 單片機(jī);液晶顯示模塊;單片機(jī);液晶顯示模塊;c51c51 程序程序 cs5460 single-phase meter based on th

3、e design of the measurementabstractwith the gradual deepening of rural power grids city, a variety of measurement tools continue to emerge on the market. a variety of different measurement tools are not the same measurement method used. the system consists of front-end circuit conditioning module, c

4、s5460 chip energy meter module, microcontroller stc89c52 modules, display modules, memory modules and other components. cs5460 power measurement and the realization of single chip with stc89c52 energy measurement method is to present a more mature method. cs5460 is a single bi-directional serial int

5、erface with power power integrated circuit chip, it can be easily formed with multi-function electronic power meter and distributed energy metering management system. cs5460 chip design which uses a simple single-phase watt-hour meter can be used to power industrial field data collection and simple

6、power calculation, using the cs5460 digital chip design for residential electricity meter measures the most accurate and cost-effective meter program, designed to open new areas of the meter, the meter is ideal for the next generation of civilian products and the best industrial solutions. at presen

7、t, china university student apartment commonly used power rationing measures to control energy use of schools, apartment management outsourcing, the restrictions on students use of electricity will be changed to encourage students to safe use of electricity, which will use the safe power limit, rest

8、rict basic electricity, excess charges form.key words:cs5460 chips; stc89c52 scm; lcd module;c51 program 目 錄一 引言11.1 電度表的作用11.2 電度表的發(fā)展11.3 電度表的發(fā)展前景1二系統(tǒng)的總體設(shè)計思路2三系統(tǒng)硬件組成及介紹3 3.1 cs5460 簡介3 3.2 cs5460 引腳分配及功能53.3 cs5460 的功能.63.4 cs5460 寄存器配置.83.5 cs5460 的工作過程.10四硬件電路設(shè)計11 4.1 前端電路調(diào)理模塊13 4.2 電能芯片 cs5460 模

9、塊14 4.3 單片機(jī) stc89c52 模塊15 4.4 液晶顯示模塊17五程序設(shè)計19 5.1 單片機(jī) c51 程序設(shè)計的優(yōu)點11 5.2 程序設(shè)計思路125.3 cs5460 驅(qū)動程序135.4 cs5460 的設(shè)置和啟動15 5.5 讀寫 cs5460165.6 結(jié)果顯示程序17六 總結(jié)23謝辭參看文獻(xiàn)附錄 一引言1.1 電度表的作用電能表是我國電工儀表行業(yè)中產(chǎn)量最大的產(chǎn)品。近幾年,國家連續(xù)出臺的多項與電能表行業(yè)發(fā)展相關(guān)的政策以及房地產(chǎn)產(chǎn)業(yè)的迅速發(fā)展,為電能表需求的上升及保持行業(yè)發(fā)展的相對穩(wěn)定起到了一定的保障作用。目前我國高校學(xué)生公寓普遍采用限電措施來控制學(xué)校電能利用,公寓管理社會化后

10、,限制學(xué)生用電將改為鼓勵學(xué)生安全用電,從而將采用限制安全功率、限制基本電費、超量收費的形式。住宅用電計量的最精確,并具成本效益的電表方案,打開了電表設(shè)計的新領(lǐng)域,是下一代民用電表的理想產(chǎn)品和最好的工業(yè)解決方案。隨著高新技術(shù)尤其是電子信息技術(shù)的快速發(fā)展,電子式、多功能、高精度、多費率、自動抄表等產(chǎn)品的優(yōu)勢突顯,且已經(jīng)逐步成為電能表發(fā)展的主流,在未來幾年里,這種趨勢將更加明顯。1.2 電度表的發(fā)展作為測量電能的專用儀表電能表,自誕生至今已有 100 多年的歷史。隨著電力系統(tǒng)及其相關(guān)產(chǎn)業(yè)的發(fā)展以及電能管理系統(tǒng)的不斷完善,電能表的結(jié)構(gòu)和性能也經(jīng)歷了不斷更新、優(yōu)化的發(fā)展過程:由最初的感應(yīng)電能表,發(fā)展到后

11、來的感應(yīng)系統(tǒng)脈沖電能表,直至現(xiàn)在的純電子式電能表。感應(yīng)系電能表是利用處于交變磁場的金屬圓盤中的感應(yīng)電流與有關(guān)磁場形成力的原理制成的。感應(yīng)系統(tǒng)脈沖電能表仍采用感應(yīng)系電能表的測量機(jī)構(gòu)作為工作援建,由光電傳感器完成電能脈沖轉(zhuǎn)換,然后靜電子電路對脈沖進(jìn)行處理,從而實現(xiàn)對電能的測量。純電子式電能表的原理是采用電子電路來實現(xiàn)電能計量,所以電子式電能表的共同特點是采用乘法器,根據(jù)所依托的乘法器為模擬的還是數(shù)字的分為模擬乘法器型電子電能表和數(shù)字乘法器型電子電能表。隨著電能管理的現(xiàn)代化,需要訪問電能表很多信息,同事決策還要與電能表進(jìn)行雙向通訊,由于數(shù)字乘法器型電能表是以微處理器為核心,所以功能容易擴(kuò)展,易和配電

12、自動化系統(tǒng)集成,cs5460 是一種帶有串行接口的單相雙向功率電能集成電路芯片。1.3 電度表的發(fā)展前景城鄉(xiāng)電網(wǎng)改造,使電工儀器儀表行業(yè)步入了快速發(fā)展的軌道,同時也為行業(yè)企業(yè)提供了一個科技創(chuàng)新的平臺,電工儀器儀表生產(chǎn)企業(yè)抓住機(jī)遇,通過對國外先進(jìn)技術(shù)的兼收并蓄,并高標(biāo)準(zhǔn)、高起點自主開發(fā)了一系列高技術(shù)產(chǎn)品。 電力用戶是我國電工儀器儀表最大的用戶群體,需求量占整個市場需求量的 90%,對該類產(chǎn)品的銷售起著決定性作用。國家城鄉(xiāng)電網(wǎng)改造結(jié)束后,電工儀器儀表行業(yè)進(jìn)入了平穩(wěn)過渡期,出現(xiàn)了短暫的低潮,但行業(yè)的發(fā)展并未停滯,以華立集團(tuán)、寧波三星、林洋電子等為代表的行業(yè)企業(yè)在低谷中不斷拓寬服務(wù)領(lǐng)域,尋求新的發(fā)展空

13、間,從而在競爭中提高企業(yè)的核心競爭力.經(jīng)過國內(nèi)外市場的凈化和洗禮,產(chǎn)品也發(fā)生了質(zhì)的變化,開始從單純量的增長向技術(shù)創(chuàng)新過渡,并步入高質(zhì)量、高技術(shù)、高附加值時代,生產(chǎn)模式逐步向集約化大規(guī)模轉(zhuǎn)變,核心競爭力不斷增強(qiáng),產(chǎn)品出口主要以電能表、便攜式電表為主,出口輻射到幾十個國家。特別是近幾年,一些企業(yè)還通過在國外建廠等形式消化國內(nèi)的市場,出口創(chuàng)匯不斷攀升二系統(tǒng)的整體設(shè)計思路 cs5460 可用于單相 2 線或 3 線功率/電能測量中應(yīng)用。本次系統(tǒng)主要由前端電路調(diào)理模塊,電能表芯片 cs5460 模塊,單片機(jī) stc89c52 模塊,液晶顯示模塊。前端調(diào)理模塊采用由電阻 r1,r2 構(gòu)成的電阻分壓器測量作

14、用于負(fù)載上的電壓,當(dāng)然該電壓必須為芯片所能允許的 150mv 的電壓范圍內(nèi),故對電阻 r1,r2 的比值需做要求,經(jīng)變換的信號以差模電壓的形式直接加到電能表的芯片 cs5460 上,用 rs 測量流過負(fù)載的電流然后以差模電流的形式加到 cs5460 芯片端上(如圖 2.1) ,通過輸入的瞬時電壓值和瞬時電流值得到電壓和電流的有效值,單片機(jī)從 cs5460 中讀取的瞬時電壓、瞬時電流和瞬時功率等數(shù)據(jù)經(jīng)處理后存在存儲器內(nèi), 上電后單片機(jī)從存儲器內(nèi)讀數(shù)據(jù)到內(nèi)存中,再通過顯示模塊的液晶屏正常顯示所測電壓,電流,功率。 引言文本框的格式。 三三系統(tǒng)硬件組成介紹系統(tǒng)硬件組成介紹3.1 cs5460 簡介c

15、s5460 是 crystal 公司最新推出的帶有串行接口的單相雙向功率/電能計量集成電路芯片,該芯片比目前比較流行的電子電度表芯片如 ad7750、ad7755 更容易實現(xiàn)與微處理器的連接。用 cs5460 可以方便的組成多功能電子式電度表和分布電度表和分布式電能計量管理系統(tǒng)。cs5460 是一個高度集成的數(shù)模轉(zhuǎn)換器,它將兩個數(shù)模轉(zhuǎn)換單元,一個高速能量計算單元和一個芯片上的串行接口結(jié)合起來,他可以用于精確的測量和計算儀器,單相兩線或三線電能表的應(yīng)用程序的能量,瞬時功率,irms 和vrms。cs5460 具有低成本分流或變壓器測量電流接口,與測量電壓的電阻分壓器或變壓器。該 cs5460 具

16、有雙向串行接口與微控制器連接和一個固定寬度的可編程頻率輸出同樣能量。該產(chǎn)品初始化并完全根據(jù)電功能,并包括設(shè)施系統(tǒng)級控制校準(zhǔn)用戶程序的。該 cs5460 旨在從單一經(jīng)營+5v 電源或雙2.5v 電源供電,提供一個 30mvrms 至150mv 范圍通道,并提供一個范圍為 150mvrms 電壓通道。由于是單供應(yīng),cs5460 適用于一般模式信號。cs5460 的內(nèi)部組成模塊如下:一個電流通道可編程增益放大器,其增益為 10 和 50 可選;一個電壓通道固定增益放大器,其增益為 10;兩個同時采樣的模數(shù)轉(zhuǎn)換器;兩個高速數(shù)字濾波器;兩個可選用的高通濾波器;一個功率計算引擎;一個 2.5v 片內(nèi)電壓基

17、準(zhǔn);一個可以檢測電力不足或電源故障的電源監(jiān)視器; 一個持續(xù)監(jiān)視串口通訊的看門狗;一個內(nèi)部時鐘發(fā)生器;一個串行接口;一個電能/脈沖變換器;一個校準(zhǔn)用其內(nèi)部組成模塊如圖 1 所示。 圖 2.1 cs5460 內(nèi)部組成模塊3.23.2 cs5460cs5460 的引腳分配及功能的引腳分配及功能 cs5460 的主要技術(shù)指標(biāo):差分電壓輸入范圍:150mv;溫度系數(shù):60ppm/;功率消耗:10mw;電能計量精度:在 300動態(tài)范圍以上每秒讀取0.1;電壓測量精度:讀數(shù)的 0.1;電流測量精度:讀數(shù)的 0.1;瞬時功率測量精度:讀數(shù)的 0.1。3.3 cs5460的功能cs5460 可以在單+5v 電源

18、或雙2.5v 電源下運行,電流通道輸入范圍可為30mvrms 或 150mvrms,電壓通道輸入范圍 150mvrms。cs5460 可以測量瞬間電流,瞬間電壓,瞬間功率,能量,rms 電流和 rms 電壓。測量的結(jié)果是以 24 位有符號或無符號數(shù)據(jù)形式輸出的,同滿量程的百分比形式一樣。當(dāng)接收到一個開始轉(zhuǎn)換命令時,測量開始進(jìn)行。當(dāng)計算周期結(jié)束時,狀態(tài)和屏蔽寄存器的 drdy 被置位。加電后,該芯片被初始化后開始工作,電流通道和電壓通道的信號被片內(nèi)放大器放大后,通過內(nèi)部模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,再通過高通濾波器消除了信號中的直流成分,將之送到能量計算引擎中算出功率和能量值,并存入 cs5460

19、的寄存器中,然后通知 cpu 計算完畢,由 cpu 將功率和能量值取走,同時也可輸出可編程的輸出可編程的輸出頻率來。1)中斷引腳名稱引腳功能1xout晶體振蕩器輸出2cpuclk:cpu 時鐘輸出3vd+數(shù)字電路電源正極4dgnd數(shù)字地5sclk 串行時鐘輸入6sdo串行數(shù)據(jù)輸出7cs片選8nc空腳9vin+差分電壓正輸入端10vin-差分電壓負(fù)輸入端11vrefout參考電壓輸出12vrefin參考電壓輸入13va-模擬地14va+模擬電源正極15iin-差分電流負(fù)輸入端16iin+差分電流正輸入端17pfmon電源掉電監(jiān)視輸出18nc空腳19reset復(fù)位輸入20int中斷輸出21eout

20、電能脈沖輸出22edir功率方向指示輸出23sdi:串行數(shù)據(jù)輸入24xin晶體振蕩器輸入 管腳用來指示轉(zhuǎn)換器發(fā)生了值得注意的事件。這些事件通知系統(tǒng)運行的狀態(tài)和內(nèi)部誤差狀態(tài)。通過把狀態(tài)寄存器與屏蔽寄存器組合產(chǎn)生信號。當(dāng)狀態(tài)寄存器的一個位有效,并且屏蔽寄存器相應(yīng)的位是邏輯 1,信號被激活。當(dāng)狀態(tài)寄存器的這一位恢復(fù)為無效時,中斷狀態(tài)被清除。2)清除狀態(tài)寄存器與其它的寄存器不同,狀態(tài)寄存器的位只能被清除(設(shè)置為邏輯 0) 。當(dāng)向狀態(tài)寄存器寫入字時,字中的任何 1 都可以清除狀態(tài)寄存器相應(yīng)的位,其它位保持不變。這可以在不清楚其它位的情況下,清除特定位。這種機(jī)制方便了信號交換,并將丟失未處理事件的危險性減

21、到最小。3)激活狀態(tài)激活由配置寄存器的 si1 和 si0 位控制,管腳可以被置為低電平(缺?。?,置為高電平,恢復(fù)邏輯 0(上升沿) ,或恢復(fù)邏輯 1(下降沿) 。4)看門狗看門狗(wdt)提供一種警告系統(tǒng)與微控制器的通訊可能崩潰的手段,通過允許wdt 產(chǎn)生中斷,微控制器可以從死機(jī)狀態(tài)跳出來。超時被編程為大約 5 秒。每次能量寄存器被讀取,遞減計數(shù)都重新啟動。在典型情況下,每秒能量寄存器都被讀取,因此,wdt 不會超時。在將看門狗用在其他方面時,必須能夠保證能量寄存器至少每 5 秒讀取一次。接地接地圖 2.2 cs5460 與 stc89c52 單片機(jī)接口電路圖cs5460 可以在單+5v

22、電源或雙2.5v 電源下運行,電流通道輸入范圍可為30mvrms 或 150mvrms,電壓通道輸入范圍 150mvrms。cs5460 可以測量瞬間電流,瞬間電壓,瞬間功率,能量,rms 電流和 rms 電壓。測量的結(jié)果是以 24 位有符號或無符號數(shù)據(jù)形式輸出的,同滿量程的百分比形式一樣。當(dāng)接收到一個開始轉(zhuǎn)換命令時,測量開始進(jìn)行。當(dāng)計算周期結(jié)束時,狀態(tài)和屏蔽寄存器的 drdy 被置位。加電后,該芯片被初始化后開始工作,電流通道和電壓通道的信號被片內(nèi)放大器放大后,通過內(nèi)部模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,再通過高通濾波器消除了信號中的直流成分,將之送到能量計算引擎中算出功率和能量值,并存入 cs546

23、0 的寄存器中,然 后通知 cpu 計算完畢,由 cpu 將功率和能量值取走,同時也可輸出可編程的輸出可編程的輸出頻率來。3.43.4 scs5460scs5460 寄存器配置寄存器配置cs5460 內(nèi)部集成了包括偏置寄存器,增益寄存器,脈沖速率寄存器和參數(shù)寄存器等 16 個寄存器,還集成了串行口發(fā)送寄存器,串行口接受寄存器和一個命令解釋狀態(tài)機(jī),用于完成 cs5460 的設(shè)置,采集數(shù)據(jù)的存儲和串行輸入輸出的控制,圖 2.3 為內(nèi)部寄存器分配圖。此命令通知狀態(tài)機(jī),一個寄存器的訪問是必需的。在讀取地址教育署到輸出緩沖區(qū),由 sclk 時鐘了。在寫數(shù)據(jù)移入輸入緩沖器到第 24sclk 的處理登記。w

24、/ r 寫入/讀控制0 =讀寄存器1 =寫入寄存器注冊地址位。二進(jìn)制編碼的 0 到 31。所有寄存器都是 24 位地址名稱的說明00000 配置寄存器00001 電流偏移校準(zhǔn)00010 電流增益校準(zhǔn)00011 電壓偏移校準(zhǔn)00100 電壓增益校準(zhǔn)00101 數(shù)轉(zhuǎn)換整合以上(n)00110 脈沖率用于校準(zhǔn)/規(guī)模的能量頻率00111 最后電壓值01000 最后權(quán)價值 01001 最后的總能量值01011 rms 電流值01100 rms 電壓值01101 定時基校正01110 內(nèi)部只使用01111 狀態(tài)寄存器10000 保留10111 保留11000 內(nèi)部只使用11001 內(nèi)部專用11010 中斷

25、屏蔽寄存器11011 內(nèi)部專用11100 保留11111 保留3.53.5 cs5460cs5460 的工作過程的工作過程在 cs5460 執(zhí)行的是瞬時電流,瞬時電壓,瞬時電力,能量,rms 電流和 rms 電壓的測量。這些測量是以 24 位有符號和完整規(guī)模的無符號數(shù)據(jù)格式作為輸出。 圖 2.5 寫時序 圖 2.6 讀時序寄存器讀寫命令如下:其中,wr 為 0 讀寄存器,為 1 寫寄存器,ra(04)寄存器地址說明如下:00000:配置寄存器,00001:電流偏移校準(zhǔn),00010:電流增益校準(zhǔn),00011:電壓偏移校準(zhǔn),00010:電壓增益校準(zhǔn),00101:轉(zhuǎn)換次數(shù),00110:能量,0011

26、1:最新電流,01000:最新電壓,01001:最新功率,01111:狀態(tài)寄存器,10000:交流電流偏移寄存器,10001:交流電壓偏移寄存器cs5460 實現(xiàn)瞬時電壓、瞬時電流、瞬時功率的測量, 電壓和電流通道輸入信號被送到 cs5460 功率計算單元,由輸入的瞬時電壓值和瞬時電流值計算得到瞬時功率值,同時還可以通過輸入的瞬時電壓值和瞬時電流值得到電壓和電流的有效值。cs5460 的串行接口部分集成了一個帶有發(fā)送接收緩沖器的狀態(tài)機(jī),狀態(tài)機(jī)在sclk 上升沿解釋 8 位命令字。根據(jù)對命令的解碼,狀態(tài)機(jī)將執(zhí)行相應(yīng)的操作,或者, 為把尋址的內(nèi)部寄存器的數(shù)據(jù)傳送到發(fā)送緩沖區(qū),寫操作在數(shù)據(jù)傳輸前要等

27、 24 個 sclk周期。通過寄存器讀寫命令,數(shù)據(jù)可被寫入或從 cs5460a 中讀出,圖 2、圖 3 為讀、寫時序。數(shù)據(jù)的讀、寫通過向串口 sdi 引腳寫入相應(yīng)的 8 位命令字(高位在前)來啟動。需要注意的是:一些命令字在執(zhí)行時受周期計數(shù)寄存器和配置寄存器內(nèi)容的影響,需要先對周期計數(shù)器和配置寄存器內(nèi)容進(jìn)行正確設(shè)置。寄存器寫指令后必須跟 24 位數(shù)據(jù),先寫命令字啟動寫操作,然后隨著 24 個連續(xù)的串行時鐘脈沖,cs5460a 將從串行輸入引腳 sdi 接收串行數(shù)據(jù),一旦收到數(shù)據(jù),狀態(tài)機(jī)便將數(shù)據(jù)寫入配置寄存器并返回到命令模式。寄存器讀指令可以終止在 8 位的邊界上。通過 sdi 引腳寫入命令后,

28、可從 sdo 引腳讀出數(shù)據(jù) 電壓、電流有效值可直接從電壓有效值寄存器、電流有效值寄存器中讀取。而由于計算周期設(shè)為 1s,電能寄存器中的電能值即為有功功率值,因此有功功率值可直接從電能寄存器中讀出。功率因數(shù)可由公式 cos=p/(ui)得出。 頻率的測量:將循環(huán)計數(shù)寄存器的 n 值改變?yōu)?1,此時電壓、電流瞬時值數(shù)據(jù)的刷新率為 4000hz,這就為通過軟件進(jìn)行信號過零判斷創(chuàng)造了條件。頻率測量的具體方法是:通過一個過零函數(shù)來記錄電壓信號正向過零次數(shù),并同時記下讀取數(shù)據(jù)次數(shù),如果取 10個周期的平均時間為實測周期時間,那么當(dāng)記到第 11 次正向過零時,停下來算出每個周期內(nèi)讀取數(shù)據(jù)次數(shù),默認(rèn)兩次讀取數(shù)

29、據(jù)的時間差為 250,便可算出頻率。四硬件電路設(shè)計四硬件電路設(shè)計4.14.1 單相電度表的工作原理:單相電度表的工作原理: (1)前端電路調(diào)理模塊把所輸入的大電壓電流信號轉(zhuǎn)變成 cs5460 可接受的小電壓信號,以差模電壓或電流的形式輸入進(jìn)去。(2)由 vin+ , vin - 輸入的差模電壓模擬信號由 模擬數(shù)字轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,獲得瞬時電壓,轉(zhuǎn)換后的數(shù)字信號被送入功率計算器。由 vin + , vin- 輸入的差模電流模擬信號同樣由 模擬數(shù)字轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換, 獲得瞬時電流,轉(zhuǎn)換后的信號也被送入功率計算器。 3)cs5460 根據(jù)采樣電路輸入的瞬時電壓、瞬時電流計算出瞬時功率,然后把瞬時電壓、瞬

30、時電流及瞬時功率由雙向串行接口傳送給單片機(jī) stc89c52。4)單片機(jī)根據(jù)程序指令顯示測量結(jié)果,也可輸入程序通過累加計算出能量。該系統(tǒng)各個模塊芯片引腳連接情況如下圖所示: cs5460stc89c52 液晶顯示 4.24.2 前端電路調(diào)理模塊前端電路調(diào)理模塊 cs5460 的 iin+,iin-接分流器的兩端 rs 的兩端,借助 rs 測量流過負(fù)載的電流。rs 的選取須保證在最大允許電流負(fù)荷下,其采樣電壓值不超過正負(fù) 150mv。cs5460 的vin+,vin-接由 r1,r2 組成的電阻分壓器 r1 的兩端,將被測信號電壓通過電阻 r1,r2的阻值比不同,將其換算到不超過正負(fù) 150mv

31、 的電壓范圍內(nèi),從而以差模信號的形式加到 cs5460 芯片的差模信號輸入端。本電路圖中取 r1=200,r2=500k,得到其變比系數(shù)為 2500。類似,取 rs=110k,將電流以差模電流的形式輸入到 cs5460 芯片中。如圖 4.1所示。 n n l l 圖 4.1 前端電路調(diào)理模塊4.34.3 電能芯片電能芯片 cs5460cs5460 模塊模塊 經(jīng)調(diào)理電路的調(diào)理的電壓信號,電流信號通過 iin+,iin-,vin+,vin-接口送入電能表芯片 cs5460,芯片被初始化后開始工作,電流電壓通道的采樣信號被片內(nèi)放大器放大,經(jīng)內(nèi)部模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,在通過高通濾波器消除直流分量,

32、并由計算引擎計算出瞬時功率,在此過程中也可以算出瞬時電壓,瞬時電流,根據(jù)采樣頻率的設(shè)定值可以計算出電能值,電流有效值,電壓有效值,并將其存入相應(yīng)的寄存器中,然后將單片機(jī)與其相連,從而將芯片寄存器中的電能值,電壓有效值,電流有效值讀出,并送于液晶顯示單片機(jī)與 cs5460 的連接圖如圖 4.1 所示: cs5460cs5460 stc89c52stc89c52 圖 4.1 單片機(jī) stc89c52 與 cs5460 的連接圖4.4 單片機(jī) stc89c52 模塊 本次系統(tǒng)設(shè)計中采用的是 c52 單片機(jī),是 c51 單片機(jī)的增強(qiáng)版,其引腳及其功能 與 c51 單片機(jī)類似,其引腳圖如下所示 stc8

33、9c524.5 液晶顯示模塊 本次設(shè)計的單相電度表中,單片機(jī)通過液晶的串口向液晶寄存器寫命令,進(jìn)而實現(xiàn)對液晶顯示的控制,圖 4.2 是單片機(jī)與液晶模塊連接圖。該模塊用于顯示電壓,電流和功率。通過讀取顯示的數(shù)值再乘以變比系數(shù)則可以得到被測器件真實的電壓,電流和功率值。在本次設(shè)計系統(tǒng)中 五程序設(shè)計五程序設(shè)計5.15.1 單片機(jī)單片機(jī) c51c51 程序設(shè)計的優(yōu)點程序設(shè)計的優(yōu)點 因為本次系統(tǒng)設(shè)計中雖然采用 c52 單片機(jī),但鑒于其二者引腳功能基本一致,故采用 c51 的編程方法即可。現(xiàn)在有許多可以對 80c51 單片機(jī)硬件進(jìn)行操作的 c 語言,它們通常統(tǒng)稱為 c51。當(dāng)系統(tǒng)規(guī)模較大時,設(shè)計人員都趨于

34、采用 c 語言,這是因為 c 語言具有良好的可讀性、易維護(hù)性、可移植性和硬件操作能力。采用 c51 進(jìn)行單片機(jī)應(yīng)用系統(tǒng)的程序開發(fā),編譯器能自動完成變量的存儲單元的分配,編程者可以專注于應(yīng)用程序的設(shè)計,可以對常用的接口芯片編寫通用的驅(qū)動函數(shù),對常用的功能模塊和算法編寫相應(yīng)的函數(shù),可以方便地進(jìn)行信號處理算法和程序的移植等等,從而加快了單片機(jī)應(yīng)用系統(tǒng)的開發(fā)速度。目前,c51 的代碼長度已經(jīng)達(dá)到了匯編程度水平的 1.2 倍-1.5 倍。當(dāng)代碼長度超過4kb 以上時,c51 比匯編語言具有較為明顯的優(yōu)勢。另外,還可以借助于仿真器,對應(yīng)用程序的關(guān)鍵代碼進(jìn)一步進(jìn)行優(yōu)化,以減少代碼的長度,提高運行的速度。同時

35、,由于單片機(jī)生產(chǎn)工藝的發(fā)展,單片機(jī)的運行速度和內(nèi)部存儲器容量都有了較大的提高,這些都為 c51 應(yīng)用程序的應(yīng)用創(chuàng)造了更為有利的條件。 5.25.2 程序設(shè)計思路:程序設(shè)計思路: stc89c52 的 into 接到 cs5460 的 int 端,當(dāng)有中斷申請時,通過讀取內(nèi)部狀態(tài)寄存器,以獲得 cs5460 的工作情況,經(jīng)判斷執(zhí)行相應(yīng)的處理程序。5.35.3 cs5460cs5460 驅(qū)動程序驅(qū)動程序 5.45.4cs5460cs5460的設(shè)置和啟動的設(shè)置和啟動步驟:1)復(fù)位cs546,對cs5460的復(fù)位腳發(fā)復(fù)位脈沖,脈沖不少于10ms。2)寫同步控制命令字。3)從外部存儲器讀原來保存的校準(zhǔn)值

36、,并將讀出的值寫入相應(yīng)的校準(zhǔn)寄存器。4)寫控制寄存器,設(shè)置各寄存器參數(shù)。5)清狀態(tài)寄存器。6)啟動cs5460a開始轉(zhuǎn)換。7)讀cs5460a的ad轉(zhuǎn)換值或計算結(jié)果。5.55.5 讀寫讀寫 cs5460cs5460 步驟:1)讀能量寄存器。2)讀電流有效值寄存器。3)讀電壓有效值寄存器。4)讀狀態(tài)寄存器,回寫狀態(tài)寄存器。5)設(shè)置中斷。寫cs5460void wr5460(uchar command,uchar wh_byte,uchar wm_byte,uchar wl_byte)cs=0;wr5460byte(command);wr5460byte(wh_byte);wr5460byte(w

37、m_byte);wr5460byte(wl_byte);cs=1;寫cs5460一個字節(jié)void wr5460byte(uchar wrbyte)uchar i;for (i=0;i8;i+)sclk=0;if(wrbyte & 0 x80) = 0 x80)sdi=1;else sdi=0;wrbyte=wrbyte 1;sclk=1;sclk=0;sdi=1;讀cs5460 void rd5460(uchar command)cs=0;wr5460byte(command);rh_byte=rd5460byte();rm_byte=rd5460byte();rl_byte=rd54

38、60byte();cs=1;讀cs5460一個字節(jié)uchar rd5460byte(void)uchar i,val;val=0;for (i=0;i8;i+)val=val1;if(sdo)val=val | 0 x01;if (i=7)sdi=0;else sdi=1;sclk=1;_nop_();sclk=0;_nop_();return(val);5.65.6結(jié)果顯示程序結(jié)果顯示程序步驟:1)將顯示緩存清零。2)初始化單片機(jī)。3)設(shè)置時鐘。 4)六位數(shù)碼管顯示程序。顯示程序代碼:void display(void) /六位數(shù)碼管顯示程序,disdat是要顯示的內(nèi)容(是09的數(shù)字),xs

39、d是在那一位顯示小數(shù)點uchar i,disa,disb,disc;disb = 0 x00;/顯示第n位for (i=0;i6;i+)/共顯示6個數(shù)據(jù)disa = disdati; /顯示數(shù)據(jù)if (disa 10)p2 = disb;disc = tabdisa; /顯示段碼if (xsd != 5) & (xsd = i)disc = disc | 0 x80;/增加小數(shù)點顯示p0 = disc;/送顯示delay ();/延時p0 = 0 x0;disb+;/下一個要顯示的位置p2 = 0 xff;總 結(jié)cs5460 代表了新一代的電能專用芯片,用它設(shè)計出來的專用電度表具有成本

40、低,精度高,調(diào)教簡單,與微處理器接口方便等優(yōu)點,使電量管理者能夠獲得更有用的數(shù)據(jù),且用戶投入費用低,具有廣闊的市場前景。本文所研究的基于 cs5460 的單相電度表測量系統(tǒng)設(shè)計就是一個高精度芯片和單片機(jī)的應(yīng)用。系統(tǒng)以 89c52 單片機(jī)和芯片cs5460 為核心,利用該芯片及外圍電路實現(xiàn)信號的模擬-數(shù)字轉(zhuǎn)換和功率計量,并通過單片機(jī)的程序設(shè)置很好的完成了數(shù)據(jù)的累加,從而計算得到總的能量。本系統(tǒng)有兩個主要模塊組成:第一個是數(shù)據(jù)采樣及功率的計算,主要由芯片 cs5460 和外圍電路組成。外圍電路將輸入電壓信號轉(zhuǎn)換為 cs5460 可以接受的 小電壓信號。cs5460 則完成電壓信號的采樣及功率計算,

41、并將結(jié)果通過串行接口輸入給單片機(jī)。第二個是結(jié)果顯示模塊,它主要由單片機(jī)及數(shù)碼管及外圍電路組成。該模塊將第一個模塊得到的結(jié)果 顯示到數(shù)碼管上,并存入存儲器內(nèi),同時累計得到電能,再乘以相應(yīng)的比例系數(shù)則可以得到所測的真實值。本設(shè)計的主要難點:1)前端調(diào)理模塊中外圍電路電阻阻值的選取,電阻阻值應(yīng)盡量精確,且阻值的選取應(yīng)很好的滿足 cs5460 對輸入電壓信號大小的要求。2)程序的編寫。本設(shè)計中的程序包括芯片 cs5460 的參數(shù)設(shè)置、cs5460 內(nèi)部寄存器的讀寫,數(shù)碼管顯示函數(shù)等。雖然我們系統(tǒng)的學(xué)習(xí)了,對 51 系列單片機(jī)有了一定的了解,但在實驗中多數(shù)應(yīng)用匯編語言進(jìn)行程序的編寫,現(xiàn)在用 c 語言編寫

42、程序有一定的困難,最后參考老師所給程序才能很好的完成本次設(shè)計。謝 辭時光匆匆飛逝,四年多的努力與付出,本設(shè)計的完成既為大學(xué)四年劃上了一個完美的句號,也為將來的人生之路做了一個很好的鋪墊。 本設(shè)計得以完成,要感謝的人實在太多了,首先要感謝龍海南老師,因為本設(shè)計是在龍老師的悉心指導(dǎo)下完成的。龍老師淵博的專業(yè)知識、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、一絲不茍的作風(fēng)、誨人不倦的高尚師德對我影響深遠(yuǎn),一直是我工作、學(xué)習(xí)中的榜樣,他的循循善誘的教導(dǎo)和不拘一格的思路也給予了我無盡的啟迪。在整個設(shè)計過程中,龍老師每星期都定時與我們交流,聽取我們的設(shè)計進(jìn)展,為我們解答設(shè)計過程中遇到的各種問題,并安排布置下一步的設(shè)計任務(wù)。在我做畢業(yè)

43、設(shè)計的三個月里,龍老師指導(dǎo)我完成了外文文獻(xiàn)的翻譯、開題報告、中期報告的撰寫等等,每次他都認(rèn)真地給我們修改,指出其中的不當(dāng)之處。龍老師要指導(dǎo)很多同學(xué)的畢業(yè)設(shè)計,加上本來就有的教學(xué)任務(wù),工作量之大可想而知。三個多月的畢業(yè)設(shè)計即將結(jié)束,在龍老師的悉心指導(dǎo)和幫助下,加上我個人的努力,完成了本課題的設(shè)計與論文撰寫。在完成設(shè)計的過程中,我綜合運用四年來所學(xué)的專業(yè)知識,并且翻閱了大量的參考資料。通過查資料和搜集有關(guān)的文獻(xiàn),培養(yǎng)了我的自學(xué)能力和動手能力,并且由原先的被動地接受知識轉(zhuǎn)換為主動地尋求知識,這可以說是學(xué)習(xí)方法上有了很大的突破。同時,我學(xué)會了如何將學(xué)到的知識真正轉(zhuǎn)化為自己的東西,怎么更好地處理理論和實

44、踐相結(jié)合的問題。四年的大學(xué)學(xué)習(xí)生活即將結(jié)束,在論文即將完成之際,向四年來辛勤培養(yǎng)、教育、關(guān)心和幫助過我的老師們表示最誠摯的敬意和感謝!同時,設(shè)計的順利完成也離不開各位同學(xué)和朋友的關(guān)心和幫助,他們積極的幫助我查資料和提供有利于本設(shè)計的建議和意見,使得本設(shè)計在一定程度上得到完善。我也從各位同學(xué)身上學(xué)到了很多東西,在此也向他們表示最誠摯的謝意!參看文獻(xiàn) 1 李全利,仲偉峰,徐軍單片機(jī)原理及應(yīng)用北京:清華大學(xué)出版社,2006, 2 陳龍三8051 單片機(jī) c 語言控制與應(yīng)用北京:清華大學(xué)出版社,19993 張培仁基于 c 語言編程:mcs-51 單片機(jī)原理與應(yīng)用北京:清華大學(xué)出版社,20034 譚浩強(qiáng)

45、c 語言程序設(shè)計北京:清華大學(xué)出版社,20005 鄭文,趙偉等,電能自動抄表技術(shù)及相關(guān)思考、電測與儀表【j】 、20016 趙偉,龐海波等,電能表的發(fā)展歷史、電測和儀表j,19997 劉樂善,微型計算機(jī)接口技術(shù)原理及應(yīng)用m,華中理工大學(xué)出版社,19998 付先學(xué),智能電力監(jiān)測系統(tǒng)設(shè)計方案j,電測與儀表,20049 henzinger t, kirsch c, majumdar r, et al. time-safety checking for embedded programes. in proc.of the intl. workshop on embedded software of l

46、ecture notes in computer science, 2002.10 henzinger a thomas, benjamin horowitz, christoph meyer kirsch. embedded control systems development with giotto. the proceedings of the acm workshop on languages, compliers and tools for embedded systems (lctes), 2001.附附 錄錄附錄 1 附錄 2程序源代碼:#pragma db oe#includ

47、e #include #include #include #include #include #define uint unsigned int#define uchar unsigned char#define ulong unsigned longvoid wr5460(uchar command,uchar wh_byte,uchar wm_byte,uchar wl_byte);void rd5460(uchar command); void wr5460byte(uchar wrbyte);uchar rd5460byte(void);void delay(uint n);void

48、initport(void);uchar rh_byte;uchar rm_byte;uchar rl_byte;sbit sclk = p10;sbit sdo = p11;sbit sdi = p12;sbit cs = p13;sbit reset= p14;sbit int= p32;void initport(void)reset=0;/cs5460 復(fù)位delay(100);reset=1;int=1;sdo=1;ea=0;wr5460(0 xff,0 xff,0 xff,0 xfe); /*同步*/wr5460(0 x40,0,0,1); /*配置寄存器*/wr5460(0 x5

49、e,0 xff,0 xff,0 xff); /*清狀態(tài)寄存器*/wr5460(0 x74,0 x80,0 x00,0 x00); /*寫中斷屏蔽寄存器*/rd5460(0 x1e); /*讀狀態(tài)寄存器*/wr5460(0 x5e,rh_byte,rm_byte,rl_byte); /*回寫狀態(tài)寄存器*/cs=0;wr5460byte(0 xe8); /*啟動轉(zhuǎn)換*/ cs=1;/*寫 cs5460*/void wr5460(uchar command,uchar wh_byte,uchar wm_byte,uchar wl_byte) cs=0;wr5460byte(command);wr54

50、60byte(wh_byte);wr5460byte(wm_byte);wr5460byte(wl_byte);cs=1;/*讀 cs5460*/void rd5460(uchar command)cs=0;wr5460byte(command);rh_byte=rd5460byte();rm_byte=rd5460byte();rl_byte=rd5460byte();cs=1;/*寫 cs5460 一個字節(jié)*/void wr5460byte(uchar wrbyte)uchar i;for (i=0;i8;i+)sclk=0;if(wrbyte & 0 x80) = 0 x80)s

51、di=1;else sdi=0;wrbyte=wrbyte 1;sclk=1;sclk=0; sdi=1;/*讀 cs5460 一個字節(jié)*/uchar rd5460byte(void)uchar i,val;val=0;for (i=0;i8;i+)val=val1;if(sdo)val=val | 0 x01;if (i=7)sdi=0;else sdi=1;sclk=1;_nop_();sclk=0;_nop_();return(val);/*延時程序 延時時間n*15 us*/void delay(uint n)do_nop_();_nop_();_nop_();_nop_(); _no

52、p_(); /5_nop_();_nop_();_nop_();_nop_();_nop_(); /10_nop_();/_nop_();/_nop_();n-;while (n);#pragma db oe#include #include #include #include #include #include #define uint unsigned int#define uchar unsigned char#define ulong unsigned longextern void yj_init(void);extern void yj_clrtext(void);extern v

53、oid yj_clrgraph(void);extern void dishz(uchar x,uchar y,uchar *a);extern void dishzf(uchar x,uchar y,uchar *a);extern void diszf(uchar x,uchar y,char a);extern void diszff(uchar x,uchar y,char a);/extern void yj_lines(uchar x,uchar y,uchar cd,uchar zx);extern void yj_lineh(uchar x,uchar y,uchar cd,u

54、char zx);extern void yj_clxy(uchar x,uchar y,uchar cd,uchar kd);extern void yj_hz2424(uchar x,uchar y,uchar cod); extern void wr5460(uchar command,uchar wh_byte,uchar wm_byte,uchar wl_byte);extern void rd5460(uchar command);extern void wr5460byte(uchar wrbyte);extern uchar rd5460byte(void);extern vo

55、id delay(uint n);extern void initport(void);extern uchar rh_byte;extern uchar rm_byte;extern uchar rl_byte;void initsiu(void);void hm0(void);void cjdat(void);void hm1(void);uchar pyg_h,pyg_m,pyg_l;uchar irms_h,irms_m,irms_l;uchar vrms_h,vrms_m,vrms_l;float xdata pyg,irms,vrms;uchar xdata zfbuf20;uch

56、ar xdata recbuf100;uchar mljsw,rspoint;union dualchar auc4;long ans;union dual var;sbit intcs= p32;main() uchar j; initsiu();initport();/*端口初始化*/yj_init();hm0(); docjdat();hm1();while (1);void cjdat(void)_nop_();while (intcs !=0);rd5460(0 x14);pyg_h=rh_byte;pyg_m=rm_byte;pyg_l=rl_byte; /*讀能量寄存器*/rd5

57、460(0 x16); irms_h=rh_byte;irms_m=rm_byte;irms_l=rl_byte; /*讀電流有效值寄存器*/rd5460(0 x18); vrms_h=rh_byte;vrms_m=rm_byte;vrms_l=rl_byte; /*讀電壓有效值寄存器*/rd5460(0 x1e); /*讀狀態(tài)寄存器*/wr5460(0 x5e,rh_byte,rm_byte,rl_byte);/*回寫狀態(tài)寄存器*/_nop_();if (pyg_h & 0 x80)var.auc0=0 xff; /*判斷正、負(fù)*/elsevar.auc0=0 x0; var.auc

58、1=pyg_h;var.auc2=pyg_m;var.auc3=pyg_l;pyg=var.ans*7.437e-9; var.auc0=0 x0;var.auc1=irms_h; var.auc2=irms_m;var.auc3=irms_l;irms=var.ans*1.49e-5;var.auc0=0 x0;var.auc1=vrms_h;var.auc2=vrms_m;var.auc3=vrms_l;vrms=var.ans*1.49e-5;_nop_();void hm0(void)uchar i;yj_clrtext(); yj_clrgraph(); yj_lineh(0,18,

59、30,0 xff); dishz(0,0,cs5460 test); dishz(3,21,p); dishz(20,21,w); dishz(3,42,vrms); dishz(20,42,mv); dishz(3,63,irms); dishz(20,63,ma); /dishz(11,42,uv);yj_lineh(0,100,30,0 xff); _nop_();void hm1(void)uchar i;sprintf(zfbuf,%7.5f,pyg);dishz(9,21,zfbuf);sprintf(zfbuf,%7.5f,vrms);dishz(9,42,zfbuf);spri

60、ntf(zfbuf,%7.5f,irms);dishz(9,63,zfbuf); void initsiu(void)scon=0x50;/*串行口工作在方式 1*/t2con=0x34;/*用定時器 2 作為波特率發(fā)生器,并啟動他*/rcap2h=0xff;/*設(shè)置波特率為 9600*/rcap2l=0xd9;tmod=0 x11;/*定時計數(shù)器方式 t1 & t2 為 1,16 位定時計數(shù)器*/et0=0;/*允許 t0 溢出中斷*/th0=0x3c;/*定時器 1 每 50ms 中斷一次*/tl0=0xb0;tr0=0;/*暫時不開啟定時器 1 中斷*/pcon=0;/*/et2=0;/*禁止定時器 2 溢出中斷,

溫馨提示

  • 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

提交評論