【正文】
ule, write testing procedure, validate the usability of the system, and finally crank out the system sample. This study will discuss about the intelligence electric energy meter in detail, and tell of the recent development of electric energy meter and the research statement in brief. This study analyzes materially the two parts: keyboard part program design and LCD show part program design, and does the explanation to the use of main chip. Also it explains the hardware total design in brief, and writes some analysis about editing the function which is used of software. Moreover this study also introduced some problems about drawing the principle diagram. For example, the connected line each chip and interface problem. Keywords: keyboard part。用電高峰時電力供不應(yīng)求,用電低谷時又電力過剩。 20 世紀(jì) 30 年代,國外就開展了電力負(fù)荷控制方面的研究,實行分時計費是一種經(jīng)濟(jì)有效地調(diào)節(jié)負(fù)荷曲線的方法。據(jù)全國電工儀器儀表標(biāo)準(zhǔn)化技術(shù)委員會秘書處統(tǒng)計,近一年來,辦理復(fù)費率電能表產(chǎn)品型號注冊的企業(yè)近 300 家,注冊頻率呈上升趨勢。具有失壓斷流記錄、 RS- 23RS- 42 RS- 485 等標(biāo)準(zhǔn)通信接口,可遠(yuǎn)程定時抄錄計量數(shù)據(jù)、本月及上月最大需求量、峰、平、谷最大需求量、脈沖輸出,監(jiān)控通過 密碼設(shè)定,方可讀出與修改數(shù)據(jù)等,時段設(shè)定通常有 8 個。電能是繼蒸氣時代之后的又一類二次能源。電力出現(xiàn)后,很快就被應(yīng)到煉鋼、建筑、紡織等生產(chǎn)行業(yè)以及電車、地下鐵路等城市公共交通部門,并且已成為家庭主要使用的能源之一。它是用 TS150 位移傳感器 對普通電能表進(jìn)行光電采集,對脈沖進(jìn)行計數(shù)并將計數(shù)值轉(zhuǎn)化為電量,由 MC146818 提供相應(yīng)的時間來判斷用電的時段,并計算相應(yīng)時段的電量和電費從而實現(xiàn)分時計費的功能。相應(yīng)的顯示功能選項由鍵盤按鍵選擇。而且此系統(tǒng)可以廣泛應(yīng)用于社會,通過分時計費來控制并約束用戶的用電量,從而達(dá)到合理使用電能。是整個系統(tǒng)中介于外部硬件數(shù)據(jù)與 CPU 數(shù)據(jù)之間的核心。如傳遞一個整數(shù) 54321 到函數(shù)中,第一個子算法將 54321 的各位分離放入數(shù)組,但是此時得到的序列為倒序,即:數(shù)組下標(biāo) 0, 1, 2, 3, 4 分別存放數(shù)字 1, 2, 3,4, 5。此算法利用 NumsToArray 算法得到的數(shù)組,查找字庫,產(chǎn)生字符庫。其他函數(shù)利用返回的整數(shù)設(shè)置相應(yīng)變量的值。將小數(shù)點后面的整數(shù)轉(zhuǎn)換成小數(shù)加到小數(shù)點前面的整數(shù)上完成到浮點數(shù)的轉(zhuǎn)換。 AT89C51 是一種帶 4K 字節(jié)閃爍可 編 程 可 擦 除 只 讀 存 儲 器 ( FPEROM ——Flash Programmable and Erasable Read Only Memory)的低電壓,主性能 CMOS8 位微處理器,俗稱單片機。在本系統(tǒng)中我們采用了 Motorola 公司的 MC146818 可編程時鐘芯片。 CPU 在計數(shù)滿一度電的時候執(zhí)行中斷程序,此時 CPU 讀取外部 RAM 中存領(lǐng)教的鐘點,判斷不同的時段,執(zhí)行不同的任務(wù)。鋁盤每旋轉(zhuǎn)一圈,模塊會檢測到一個光脈沖,經(jīng)光電耦合并加以整形放大后轉(zhuǎn)換成電脈沖,送到 CPU 的 T1 端用作計數(shù)觸發(fā)脈沖。 鍵盤控制模塊 鍵盤模塊由普通的 16 鍵非編碼鍵盤與 Intel8279 可編程鍵盤 /顯示接口芯片組成完整的編碼鍵盤電路??撮T狗實際上是一個計數(shù) 器,一般給看門狗一個大數(shù),程序開始運行后看門狗開始倒計數(shù)。 此外,因為考慮可能遇到停電情況,此時電能表不轉(zhuǎn),無脈沖信號給出,但絕對時間標(biāo)準(zhǔn)仍須正常運轉(zhuǎn),否則整個系統(tǒng)將打亂,因此系統(tǒng)還配置了備用電源。采用這種方法,不僅使軟件可讀性好,維護(hù)方便且易于修改移植。而LCD 顯示程序則是將 CPU 處理過后的數(shù)據(jù)相應(yīng)的顯示在液晶屏上。這些變量用作電量計費的標(biāo)準(zhǔn)。 coulometer 結(jié)構(gòu)定義的全局變量為 Coulo。其中 RAM6264 定義為外部 RAM 中存儲的時刻的地址。 Init_CPU()用于開放必要的中斷允許,將 T1 口配置為計數(shù)器,用來檢測電脈沖信號。 電能表上電后 執(zhí)行初始化,包括將各時段、時間、日期、表號、用電數(shù)據(jù)等讀入內(nèi)部數(shù)據(jù)緩沖區(qū),接著清 WDT,然后檢查時段是否需要更新,若需要,則轉(zhuǎn)入中斷處理部分。根據(jù)不同的時段將不同時段的用電量加 1,計算出相應(yīng)時段的電費,并計算出總用電量和總電費。并等待下次按鍵。系統(tǒng)利用智能識別技術(shù),接受鍵盤輸入,對內(nèi)部的計費標(biāo)準(zhǔn),如高峰電費、電表轉(zhuǎn)數(shù)/KW?h 等進(jìn)行設(shè)置 [7]。每次中斷后系統(tǒng)調(diào)用中斷處理函數(shù) DogSniffer, DogSniffer 函數(shù)判斷功能鍵標(biāo)志是否被標(biāo)記, 如果功能鍵標(biāo)志被標(biāo)記,而且按鍵時間超過 T0的 100 次計數(shù),即 。如果功能鍵標(biāo)志被標(biāo)記,但是 T0 中斷計數(shù)未達(dá) 100 次,則將 T0 中斷計數(shù)加 1,并向T0 送入定時初值,開始下次定時。 void ShowHighCoulometer(void)。 void ShowLowFee(void)。 void SetHighFee(uchar key)。 void SetLowStart(uchar key)。 uchar display[8][32]。 KeyBoard 中斷處理函數(shù)首先將按鍵的鍵碼讀入一個變量中,然后判斷功能鍵標(biāo)志 WhichFunctionKey 是否被作標(biāo)記,如果已做標(biāo)記,則進(jìn)入一個 switch 語句,根據(jù)不同的鍵碼,調(diào)用不同設(shè)置函數(shù)。當(dāng)按下功能鍵 6~b 時,首先將功能鍵標(biāo)志W(wǎng)hichFunctionKey 設(shè)置為相 同的鍵碼,然后喚醒偵探狗,進(jìn)行設(shè)置超時探測。這兩組函數(shù)將內(nèi)存中保存的數(shù)值轉(zhuǎn)化為一個只存放單個位數(shù)字的數(shù)組,然后通過查字庫NumCharacters,將單個數(shù)字的字型碼送到要顯示的字符緩存區(qū)里。輸入小數(shù)點用按鍵 D 代替,輸入結(jié)束用按鍵 E 代替。以備下一次設(shè)置。//鍵盤控制芯片 8279 的命令口地址 key=DataOf8279。// 設(shè)置高鋒電費 break。// 設(shè) 置 高 鋒 起始 break。// 設(shè) 置 低 谷 開始 b