freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

利用單片機分時電價系統(tǒng)設(shè)計(已修改)

2025-06-06 16:18 本頁面
 

【正文】 一、課題說明 隨著經(jīng)濟的快速發(fā)展,電力需求的不斷增長和能源價格的不斷提升。用電緊張已經(jīng)成為突出的問題擺在我們面前。而電力又不是可以儲存的特殊商品,某些時段用電多,其他時段用電少。用電高峰時電力供不應(yīng)求,用電低谷時又電力過剩。為了應(yīng)對這樣的難題,可以采用分時電價來緩解供需矛盾,提高電力利用效率。分時電價是指在不同時段采用不同電價,根據(jù)用電需求和電網(wǎng)負荷將每天的時間劃分為用電高峰時段( 6: 00~ 22: 00)和用電低谷時間段( 22: 00~ 6: 00),高峰時段執(zhí)行較高電價( 元 /度),低谷時段執(zhí)行較低電價( 元 /度)。通過價格杠桿調(diào)節(jié)電力資源。從而提高電力利用效率。 本設(shè)計利用單片機控制普通電能表,實現(xiàn)分時計費的功能。本系統(tǒng)可以作為額外的模塊安裝到普通電能表,這樣用戶已安裝的普通電能表不需要更換為新的電能表,僅僅另外安裝了本系統(tǒng)后就可以作為一個標(biāo)準(zhǔn)的智能電能表使用。 本系統(tǒng)實現(xiàn)以下功能: 記錄高峰用電量 記錄低谷用電量 記錄總用電量 計算并記錄高峰時段用電電費 計算并記錄低谷時段用電電費 計算并記錄總電費 顯示高峰用電量 顯示低 谷用電量 顯示總用電量 顯示高峰時段用電電費 1 顯示低谷時段用電電費 1 顯示總用電電費 1 清除電量記錄和電費記錄 記錄和計算用電量、電費都由單片機編程完成,顯示功能由單片機控制 LCD 實現(xiàn)。相應(yīng)的顯示功能選項由鍵盤按鍵選擇。 二、系統(tǒng)整體設(shè)計 本系統(tǒng)的設(shè)計時將整個系統(tǒng)劃分為多個模塊,簡化設(shè)計流程。同時便于團隊協(xié)作,將多個任務(wù)分配給多人完成。本系統(tǒng)可以簡單的劃分為 5 個模塊: 光電轉(zhuǎn)換模塊,用于將普通電能表的轉(zhuǎn)數(shù)通過光電器件轉(zhuǎn)換為電脈沖,送入 CPU 的 T1端口 。 鍵盤模塊,用于將按鍵轉(zhuǎn)換為按鍵編碼,并用中斷的方式通知 CPU 有鍵被按下。 LCD 顯示模塊,用于顯示必要的提示信息和電量、電費的數(shù)值。時鐘模塊,為 CPU 模塊提供精確的時刻計數(shù) 核心控制模塊,由 SST 公司的 89C58 單片機和必要的外圍芯片構(gòu)成,用于接受光電模塊送來的電脈沖,對脈沖進行計數(shù),將計數(shù)值轉(zhuǎn)化為電量,根據(jù)由時鐘模塊中取得的小時,判斷用電的時段,計算相應(yīng)時段的電量和電費,并記入總電量和電費;接受鍵盤的中斷,根據(jù)不同的按鍵顯示不同的功能;控制 LCD 顯示模塊,將 CPU 內(nèi)部的數(shù)據(jù)送到LCD 上顯示, 并顯示必要的提示信息。各個模塊的原理框圖下圖所示。 三、各個分系統(tǒng)的設(shè)計原理(共 7 點) 光電轉(zhuǎn)換模塊用于獲取普通電能表記錄的用電量,在普通電能表的旋轉(zhuǎn)鋁盤上打一個很小的檢測孔提取光脈沖。鋁盤每旋轉(zhuǎn)一圈,模塊會檢測到一個光脈沖,經(jīng)光電耦合并加以整形放大后轉(zhuǎn)換成電脈沖,送到 CPU 的 T1 端用作計數(shù)觸發(fā)脈沖。普通電能表的銘牌上標(biāo)有每 KW?h多少轉(zhuǎn),其含義為電能表轉(zhuǎn)數(shù)每達這一數(shù)值就是用了一度電(即 1KW?h)。將從電能表上提取轉(zhuǎn)換后的的脈沖信號送入單片機的 T1 端并進行計數(shù),編程時將 T1 計數(shù)器的計數(shù)模值設(shè)為 電能表的轉(zhuǎn)數(shù),當(dāng)計數(shù)器計數(shù)溢出時就可以判斷電能表已經(jīng)用了一度電。測試時可以使用實驗室普通的信號發(fā)生器送出脈沖信號代替電能表的轉(zhuǎn)數(shù)脈沖,送入單片機的 T1端。 鍵盤模塊由普通的 16 鍵非編碼鍵盤與 Intel 8279 可編程鍵盤 /顯示接口芯片組成完整的編碼鍵盤電路。當(dāng)鍵盤上有鍵按下時 Intel 8279 會將按鍵轉(zhuǎn)換為鍵碼存儲在一個 FIFO( First In First Out,先入先出)隊列中,并向 CPU 申請中斷。CPU 得知中斷以后,從 Intel 8279 的存儲區(qū)讀出鍵碼,判斷相應(yīng)的按鍵,決定執(zhí)行相應(yīng)的功 能。 LCD 顯示模塊通過 8255 外圍接口擴展芯片連接到 CPU。 LCD 顯示模塊規(guī)格為 12232 像素,在顯示時分為上下兩行。每行占 12216 個像素,設(shè)計顯示 8個 1616 的字符。嚴格的說要顯示 8 個 1616 的字符,至少要 12816 個像素,設(shè)計時第四個字符和的 8 個字符各少 3 個像素列,雖然少了 3 個 像素列,但是由于像素大小極其微小,人的肉眼是很難分辨出來的。這樣的設(shè)計簡化了編程需要考慮的問題。上行一般顯示標(biāo)題、提示、出錯信息等,下行一般顯示數(shù)值。使用時只需要 CPU 通過 8255 芯片將顯示用的字碼存儲在 LCD 模塊的內(nèi)部存儲區(qū),LCD 就可以顯示出相應(yīng)的字符。 在本系統(tǒng)中要記錄不同時段的用電量,并計算出不同時段的電費。這就需要一個比較精確的時間標(biāo)準(zhǔn),通??梢允褂?Motorola 公司的 MC146818 可編程時鐘芯片,將計費段的時間存儲起來,在各時間段開始向單片機的 INT0 端口申請中斷,在不同的時段使系統(tǒng)執(zhí)行不同的計費程序。在本系統(tǒng)中采用課題 1 的電腦時鐘代替,將課題 1 的電腦時鐘附加額外功能,在整點向外部 RAM 區(qū)的一個存儲單元寫入當(dāng)前的鐘點。 CPU 在計數(shù)滿一度電的時候執(zhí)行中斷程序,此時 CPU讀取外部 RAM 中存 儲的鐘點,判斷不同的時段。執(zhí)行不同的任務(wù)。 功能設(shè)置智能識辨技術(shù):本系統(tǒng)的編碼鍵盤每按下一個鍵,就中斷一次。假如設(shè)置某個功能時需要按功能鍵 B 和輸入數(shù)字 24,就需要按鍵 3 次,鍵盤模塊會發(fā)出 3 次中斷申請。這樣就帶來一個問題:由于每次中斷都是調(diào)用同一個中斷函數(shù),這樣,在按下功能鍵 B 后,如何將接下來按下的 2 和 4 識別為一個整數(shù) 24 并放入相應(yīng)變量中,而不是認為按下 2 鍵是顯示總電量,按下 4 鍵是顯示低谷時段電費?智能識別技術(shù)的原理是在 B 鍵別按下時系統(tǒng)將標(biāo)記一個標(biāo)志位,表明 B 鍵已經(jīng)被按下,然后 2 鍵被按下時,系統(tǒng)首先 查看標(biāo)志位有沒有被設(shè)置,當(dāng)它發(fā)現(xiàn)標(biāo)志位已經(jīng)被標(biāo)記為 B 時,它即了解到這是一個功能設(shè)置,將 2 放入一個輸入緩沖區(qū),而不是顯示總電量。并等待下次按鍵。接著 4 鍵被按下后,系統(tǒng)發(fā)現(xiàn)標(biāo)志位被標(biāo)記為 B,它將 4 放入 2 后面的緩沖區(qū),等待下次按鍵。然后結(jié)束鍵(本系統(tǒng)中為 E)被按下,系統(tǒng)發(fā)現(xiàn)標(biāo)志位被標(biāo)記為 B,又發(fā)現(xiàn) E 為結(jié)束鍵,系統(tǒng)利用算法將緩沖區(qū)中的 2 和 4 轉(zhuǎn)換為一個整數(shù)送入到相應(yīng)的變量中完成設(shè)置。然后系統(tǒng)中的標(biāo)志位被清除,以后的按鍵回歸到正常狀態(tài)。系統(tǒng)利用智能識別技術(shù),接受鍵盤輸入,對內(nèi)部的計費標(biāo)準(zhǔn),如高峰電費、電表轉(zhuǎn)數(shù) /KW?h等進行設(shè)置。 功能設(shè)置超時自動復(fù)位技術(shù):(偵探狗技術(shù))此項技術(shù)解決一個實際應(yīng)用中遇到的問題。設(shè)某人 A 按了鍵盤上的自定義設(shè)置功能鍵,此時系統(tǒng)功能鍵標(biāo)志將被做上標(biāo)記,系統(tǒng)處于等待設(shè)置數(shù)值狀態(tài)。但此時 A 恰好有事離開,某人 B,在不知情的情況下,按照系統(tǒng)的說明書按了 0~ 9 的數(shù)字鍵,以為是顯示或者是相應(yīng)的其他功能。但是系統(tǒng)認為此時輸入的數(shù)值是對內(nèi)部數(shù)據(jù)的設(shè)置。這樣會產(chǎn)生兩個問題:一方面, B 因為按了某鍵而系統(tǒng)沒有執(zhí)行相應(yīng)功能而莫明其妙;另一方面, B 可能在不知情的情況下修改了內(nèi)部計費、時段等標(biāo)準(zhǔn),導(dǎo)致系統(tǒng)工作出錯 。偵探狗技術(shù)能夠使功能設(shè)置在 后超時,然后清除系統(tǒng)內(nèi)部的功能設(shè)置標(biāo)志,使系統(tǒng)恢復(fù)到正常狀態(tài)。 四大關(guān)鍵輔助性算法:這里要說明的幾個算法都不參與硬件的驅(qū)動,完全是 純軟件的算法。雖然很短小,但是簡練的完成了其目的。在整個系統(tǒng)控制程序中的地位,不亞于其他與硬件接觸的函數(shù)。是整個系統(tǒng)中介于外部硬件數(shù)據(jù)與CPU 數(shù)據(jù)之間的核心。 1) 算法 NumsToArray:這個算法的功能是,將作為第一參數(shù)傳遞的 int 型整數(shù)的各位分離,按照由高位到地位的順序依次放入作為第二參數(shù)傳遞的數(shù)組中。方便其他函數(shù)使用數(shù)組 中的數(shù)字,利用字庫得到相應(yīng)的字型碼。此算法中其實包含2 個 子算法。如傳遞一個整數(shù) 54321 到函數(shù)中,第一個子算法將 54321 的各位分離放入數(shù)組,但是此時得到的序列為倒序,即:數(shù)組下標(biāo) 0, 1, 2, 3, 4 分別存放數(shù)字 1, 2, 3, 4, 5。第二個子算法將數(shù)組中的元素進行倒序運算,得到需要的順序,即:數(shù)組下標(biāo) 0, 1, 2, 3, 4 分別存放 5, 4, 3, 2, 1。 2) 算法: ArrayToCharacters:此算法的功能是,將作為第一參數(shù)傳遞的,存放 1 位數(shù)字的數(shù)組,通過查字庫,將得到的字型碼按順序放入作為第二參數(shù)傳遞的將 要顯示的字符庫中。此算法運算后得到的字符庫就可以送入 LCD 的顯示緩存區(qū),顯示出相應(yīng)的圖形了。此算法利用 NumsToArray 算法得到的數(shù)組,查找字庫,產(chǎn)生字符庫。這兩個函數(shù)作為核心算法被顯示電量電費等函數(shù)使用。 3) 算法 ArrayToDigitalI:此算法的功能是將作為第一參數(shù)傳遞的存放一位數(shù)字的數(shù)組,轉(zhuǎn)化為一個整數(shù)返回。此算法一般用來將存放在鍵盤緩存區(qū)的一位數(shù)字序列轉(zhuǎn)化為一個整數(shù)。其他函數(shù)利用返回的整數(shù)設(shè)置相應(yīng)變量的值。此函數(shù)被設(shè)置高峰時段,電表轉(zhuǎn)數(shù)等函數(shù)使用作為核心算法。 4) 算法 ArrayToDigitalF:此算法的功能是將作為第一參數(shù)傳遞的存放一位數(shù)字的小數(shù)序列數(shù)組轉(zhuǎn)換為一個浮點數(shù)返回。此算法一般用來將存放在鍵盤緩沖區(qū)的一個小數(shù)序列轉(zhuǎn)化為浮點數(shù)返回給調(diào)用函數(shù)。此算法實現(xiàn)時將序列以小數(shù)點(系統(tǒng)中為 D 鍵)為軸心分成兩半,每半都是一個一位整數(shù)序列,將兩個序列傳遞給 ArrayToDigitalI, ArrayToDigitalI 返回兩個整數(shù)。將小數(shù)點后面的整數(shù)轉(zhuǎn)換成小數(shù)加到小數(shù)點前面的整數(shù)上完成到浮點數(shù)的轉(zhuǎn)換。此函數(shù)被設(shè)置電費函數(shù)調(diào)用作為核心算法。 整個系統(tǒng)的電路圖 五、系統(tǒng)軟件設(shè)計 本系 統(tǒng)的軟件編程同樣是按照模塊設(shè)計的。首先解釋本系統(tǒng)軟件的部分全局變量。軟件的代碼請參見 LS 圖片或者 PDF。 initset 結(jié)構(gòu)用于保存高峰時段電價、低谷時段電價、高峰起始時間、高峰結(jié)束時間、低谷起始時間、低谷結(jié)束時間和普通電能表每度電的轉(zhuǎn)數(shù)。這些變量用作電
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1