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

正文內(nèi)容

利用單片機(jī)分時(shí)電價(jià)系統(tǒng)設(shè)計(jì)(已修改)

2025-06-06 16:18 本頁面
 

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