版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 單片機(jī)在電力系統(tǒng)中的應(yīng)用</p><p> 八戶電子單相電能表設(shè)計(jì)與調(diào)試</p><p><b> 摘要</b></p><p> 本文介紹了一種以AD7755 的電能脈沖發(fā)生器模擬用戶用電情況,應(yīng)用單片機(jī)C8051F360編制程序完成脈沖的讀取、計(jì)數(shù)、計(jì)算、存儲(chǔ)、顯示等功能,用74HC164及八段譯碼顯示器完成數(shù)據(jù)
2、的顯示,使用E2PROM 24C16芯片來實(shí)現(xiàn)單片機(jī)的掉電數(shù)據(jù)保護(hù),使用74HC175和鍵盤搭配實(shí)現(xiàn)對(duì)每戶用電情況清零,并提供了其硬件和軟件設(shè)計(jì)結(jié)構(gòu),該電能表可實(shí)現(xiàn)電能計(jì)量、數(shù)碼管顯示、掉電存儲(chǔ)、清零等功能。</p><p> 在本電子電能表的前面板上有8位數(shù)碼管顯示器,前兩位為分戶號(hào),后6位為分戶用電量,所顯示的用電量與分戶號(hào)相對(duì)應(yīng),分戶循環(huán)顯示,每隔2秒切換一次用戶。</p><p>
3、; 八戶電子電能表采用單片機(jī)C8051F36作為中央處理器,每塊電能表可對(duì)8戶的用電情況進(jìn)行集中檢測(cè)、循環(huán)顯示并具有掉電保護(hù)的功能。該電能表與傳統(tǒng)感應(yīng)式電能表相比,有效地提高了電能計(jì)量的準(zhǔn)確性,且具有體積小、質(zhì)量輕、安裝方便等優(yōu)點(diǎn)。</p><p> 關(guān)鍵詞:C8051F360;電量;電能表;電能轉(zhuǎn)化脈沖芯片有AD7755;硬件設(shè)計(jì);軟件設(shè)計(jì)</p><p><b> AB
4、STRACT</b></p><p> Eight electronic energy meter with a microcontroller C8051F36 as the central processor, each energy meter eight electricity centralized testing, recycling and power-down protection
5、function. Compared with the traditional induction meter to the power meter, and to improve the accuracy of energy metering, and has a small size, light weight, easy to install. </p><p> This article describ
6、es the function of an AD7755 power pulse generator that simulates user of electricity in the application MCU C8051F360 programming to complete the pulse reading, counting, computing, storage, display, complete data using
7、 the 74HC164 and eight out of decoding display, to achieve single-chip power-down data protection of E2PROM 24C16 chip, 74HC175 and keyboard with the household electricity consumption is cleared, and provides hardware an
8、d software design structure, the energy </p><p> 8 digital display of the electronic energy meter front panel, behind the household electricity consumption of household electricity consumption, shown in the
9、 last six corresponding to the household, household cycle display every 2 seconds to switch a user.</p><p> Keywords: C8051F360 microcontroller; AD7755; power; energy meter</p><p><b> 目
10、錄</b></p><p><b> 1 前言1</b></p><p> 2 設(shè)計(jì)任務(wù)及要求2</p><p><b> 3 設(shè)計(jì)原理3</b></p><p> 3.1 系統(tǒng)方案3</p><p> 3.2 設(shè)計(jì)總論3</p>
11、<p> 3.3 方案設(shè)計(jì)框圖4</p><p> 4 硬件電路設(shè)計(jì)5</p><p> 4.1 單片機(jī)電路部分5</p><p> 4.2 穩(wěn)壓電源8</p><p> 4.3 AD7755相關(guān)電路8</p><p> 5 軟件電路設(shè)計(jì)13</p><p>
12、; 5.1 各模塊流程圖設(shè)計(jì)13</p><p><b> 6 參考文獻(xiàn)16</b></p><p><b> 7 致謝17</b></p><p><b> 8 附錄18</b></p><p><b> 1 前言</b></p&
13、gt;<p> 電能表自誕生至今已有100多年的歷史,隨著電力系統(tǒng)及其相關(guān)產(chǎn)業(yè)的發(fā)展以及電能管理系統(tǒng)的不斷完善,電能表的結(jié)構(gòu)和性能也經(jīng)歷了不斷更新、優(yōu)化的發(fā)展過程:由最初的感應(yīng)電能表,發(fā)展到后來的感應(yīng)系脈沖電能表,直至現(xiàn)在的純電子式電能表。感應(yīng)系電能表是利用處于交變磁場(chǎng)的金屬圓盤中的感應(yīng)電流與有關(guān)磁場(chǎng)形成力的原理制成的。感應(yīng)系脈沖電能表仍采用感應(yīng)系電能表的測(cè)量機(jī)構(gòu)作為工作元件,由光電傳感器完成電能脈沖轉(zhuǎn)換,然后經(jīng)電子電路
14、對(duì)脈沖進(jìn)行處理,從而實(shí)現(xiàn)對(duì)電能的測(cè)量。純電子式電能表的原理是采用電子電路來實(shí)現(xiàn)電能計(jì)量,所以電子式電能表的共同特點(diǎn)是采用乘法器,根據(jù)所依托的乘法器為模擬的還是數(shù)字的分為模擬乘法器型電子電能表和數(shù)字乘法器型電子電能表。</p><p> 微電子技術(shù)和計(jì)算機(jī)技術(shù)的高速發(fā)展是電子式電能表迅速進(jìn)步、日益成熟的主要技術(shù)支撐。準(zhǔn)確度高、可靠性高的元器件以及大規(guī)模集成電路等的采用,使電子式電能表的使用壽命、準(zhǔn)確度、穩(wěn)定度等技
15、術(shù)指標(biāo)均顯著改善。</p><p> 電子式多功能多用戶電能表由于準(zhǔn)確度高、功能擴(kuò)展性強(qiáng)、易于實(shí)現(xiàn)多費(fèi)率和通信等一系列優(yōu)點(diǎn),較好解決了機(jī)械表長期以來難以解決的諸多問題,將會(huì)在現(xiàn)代化電能計(jì)量與管理中逐步占據(jù)主導(dǎo)地位。</p><p> 本文給出基于AT89C52單片機(jī)的一種新型單相多用戶電能表設(shè)計(jì),電能計(jì)量準(zhǔn)確。該電能表具有八段數(shù)碼管顯示,功耗低,掉電后自動(dòng)存儲(chǔ)數(shù)據(jù)的特點(diǎn)。</p&
16、gt;<p><b> 2 設(shè)計(jì)任務(wù)及要求</b></p><p> 設(shè)計(jì)任務(wù):8戶電子單相電能表設(shè)計(jì)與調(diào)試</p><p> 設(shè)計(jì)內(nèi)容:硬件設(shè)計(jì)與軟件設(shè)計(jì)。硬件設(shè)計(jì)包括:C8051F360 單片機(jī)整體電路設(shè)計(jì)、+5V 穩(wěn)壓電源電路設(shè)計(jì)、基于 AD7755 的電能脈沖發(fā)生器電路設(shè)計(jì);軟件設(shè)計(jì)包括:用 C8051F360 單片機(jī)及 C 語言編寫具有掉
17、電保存功能的用戶電量顯示程序。</p><p> 設(shè)計(jì)要求:AD7755 電能脈沖發(fā)生器電路僅作電路硬件設(shè)計(jì),其電能脈沖由C8051F360 單片機(jī) P2 口所接撥碼開關(guān)產(chǎn)生的脈沖模擬。用戶電量顯示要求精確到小數(shù)點(diǎn)后 2 位,100 個(gè)電量脈沖為 1 度電,每個(gè)用戶顯示時(shí)間為 3S 左右。為防止突然停電而使用戶電量數(shù)據(jù)丟失,要求能將電量數(shù)據(jù)保存,需要設(shè)計(jì)單片機(jī)24C16 模塊,使其具有掉電保存功能。</p
18、><p><b> 3 設(shè)計(jì)原理</b></p><p><b> 3.1 系統(tǒng)方案</b></p><p> 根據(jù)設(shè)計(jì)題目要求,以及原始資料的精度要求,電能轉(zhuǎn)化脈沖芯片有AD7755可供選擇 ,因?yàn)樗且环N高準(zhǔn)確度電能測(cè)量集成電路,穩(wěn)定性強(qiáng)并且價(jià)格不貴;單片機(jī)芯片選擇C8051F36x器件,它具有片內(nèi)上電復(fù)位電路、VD
19、D監(jiān)視器、看門狗定時(shí)器和時(shí)鐘振蕩器,是真正獨(dú)立工作的片上系統(tǒng);數(shù)據(jù)保護(hù)電路芯片可選FM24C16 ,用先進(jìn)的鐵電技術(shù)制造的16K位的非易失憶的記憶體;另外要求為LED顯示,使用74HC164串入并出8位移位記存器進(jìn)行存儲(chǔ)數(shù)據(jù);因?yàn)楦餍酒杼峁┲绷麟娫?我們要進(jìn)行設(shè)計(jì)交直流變化和降壓電路。</p><p><b> 3.2 設(shè)計(jì)總論</b></p><p> 該系統(tǒng)
20、主要由前端電路調(diào)理模塊、電能轉(zhuǎn)換模塊、MCU模塊、顯示模塊、存儲(chǔ)器模塊部分組成。前端電路調(diào)理模塊采用變比1:1 的電流型電壓互感器,電流模塊采用變比2000:1 的電流互感器,利用取樣電阻采樣信號(hào),經(jīng)變換后的信號(hào)以差模電壓的形式接到AD7755芯片,取樣電阻的阻值由被測(cè)信號(hào)的最大值決定,然后經(jīng)AD7755轉(zhuǎn)換后將電壓、電流、電能等信號(hào)傳給單片機(jī)C8051F360,C8051F360組成的MCU模塊控制所有芯片的工作、截止及計(jì)算和模塊的顯
21、示,顯示模塊采用液晶模塊,液晶正常顯示當(dāng)前測(cè)量的用戶號(hào)、用電量;存儲(chǔ)模塊采用AT24C16,為系統(tǒng)提供數(shù)據(jù)存儲(chǔ),可以做到掉電不丟失數(shù)據(jù)。</p><p> 3.3 方案設(shè)計(jì)框圖</p><p> 圖3.1 方案總體設(shè)計(jì)框圖</p><p><b> 4 硬件電路設(shè)計(jì)</b></p><p> 4.1 單片機(jī)電路部
22、分</p><p> 系統(tǒng)主要由電量計(jì)量采集電路、微處理器、非易失存儲(chǔ)器電路、顯示電路、供電控制電路等部分組成。計(jì)量電路用戶電能計(jì)量采用專用集成電路設(shè)計(jì),每一戶的計(jì)量脈沖信號(hào),經(jīng)I/O接口電路連接到系統(tǒng)總線,在微處理器的控制下,輪流采集并計(jì)數(shù)其脈沖信號(hào),達(dá)到0.01 kWh時(shí),將電量存儲(chǔ)到非易失存儲(chǔ)器中,以防電量丟失。整個(gè)電表采用分時(shí)方式,輪流顯示用戶使用的電量數(shù)據(jù)。</p><p>
23、 本設(shè)計(jì)采用的是C8051F360單片機(jī)為核心的電路板。C8051F360單片機(jī)整體電路板包含:C8051F360單片機(jī)、LED/FMQ報(bào)警、RS-232通信、USB接口、電源接口、LM336-2.5、下載/復(fù)位、外接器件、5V--3.3V、兩路AD輸入、信號(hào)輸入、PCF8563、24C16、74HC165、74HC164顯示等模塊。本次設(shè)計(jì)中主要用到的部分有C8051F360單片機(jī)、PCF8563、24C16、74HC165和 74H
24、C164顯示等模塊。</p><p> C8051F360單片機(jī)為主要部件,它具有片內(nèi)上電復(fù)位電路、VDD監(jiān)視器、看門狗定時(shí)器和時(shí)鐘振蕩器器件,是真正能獨(dú)立工作的片上系統(tǒng)。FLASH 存儲(chǔ)器還具有在系統(tǒng)重新編程能力,可用于非易失性數(shù)據(jù)存儲(chǔ),并允許現(xiàn)場(chǎng)更新 8051 固件。用戶軟件對(duì)所有外設(shè)具有完全的控制,可以關(guān)斷任何一個(gè)或所有外設(shè)以節(jié)省功耗。其P1.0,P1.1口產(chǎn)生的脈沖向74HC164顯示輸送數(shù)據(jù),使其顯示
25、相關(guān)信息,P2口接撥碼開關(guān),模擬AD7755電量脈沖,PCF8563、24C16部件實(shí)時(shí)存儲(chǔ)用戶電量信息,并在掉電后保存,單片機(jī)上電復(fù)位后能夠從中讀取數(shù)據(jù)。</p><p> 圖4.1 主控模塊原理圖</p><p> FM24C16是用先進(jìn)的鐵電技術(shù)制造的16K位的非易失性的記憶體鐵電隨機(jī)存儲(chǔ)器 FRAM具有非易失性并且可以象RAM一樣快速讀寫數(shù)據(jù)在掉電可以保存10年且比EEPROM
26、或其他非易失性存儲(chǔ)器可靠性更高系統(tǒng)更簡單不象EEPROM FM24C16以總線速度進(jìn)行寫操作無延時(shí)數(shù)據(jù)送到FM24C16直接寫到具體的單元地址下可以立即執(zhí)行 FM24C16可以承受超過100億次的讀寫或者是比EEPROM高一萬倍的寫操作 FM24C16的寫能力使得它在需要對(duì)非易失性記憶體快速讀寫的狀況下非常理想舉例說數(shù)據(jù)采集系統(tǒng)中對(duì)寫入數(shù)據(jù)的頻率要求高即速度要求非常快使用EEPROM可能丟失數(shù)據(jù)這種優(yōu)勢(shì)合并使得系統(tǒng)可以更可靠的實(shí)時(shí)采集
27、數(shù)據(jù) FM24C16為使用串EEPROM的用戶提供了便利它在硬件上可以直接替換EEPROM。以下是電路板的相關(guān)電路圖。</p><p> 圖4.2 掉電保護(hù)模塊</p><p> 電路設(shè)計(jì)中74HC164是比較典型的移位寄存器,該移位寄存器有一個(gè)數(shù)據(jù)輸入端口、一個(gè)時(shí)鐘信號(hào)端口和八個(gè)輸出端口。如圖1-4所示。當(dāng)時(shí)鐘信號(hào)從低電平變?yōu)楦唠娖降臅r(shí)候?qū)⑤敵鲆粋€(gè)數(shù)據(jù)到輸出端D0,當(dāng)時(shí)鐘第二次由低電
28、平變?yōu)楦唠娖降臅r(shí)候?qū)⑤敵龅诙€(gè)數(shù)據(jù)到D0,而第一個(gè)數(shù)據(jù)將轉(zhuǎn)移到D1端口。依此類推,每一個(gè)時(shí)鐘周期中都有一個(gè)串行數(shù)據(jù)輸出到D0,而其他的數(shù)據(jù)則不斷往高位移動(dòng)直到所有數(shù)據(jù)傳輸結(jié)束。如果不再有時(shí)鐘周期輸入,則這些數(shù)據(jù)將暫存在輸出端。</p><p> 圖3.3 循環(huán)顯示模塊</p><p> 考慮到實(shí)用性,本文設(shè)計(jì)了按鍵清零模塊。八個(gè)按鍵分別控制八個(gè)用戶的電量顯示,當(dāng)按鍵被按下時(shí)與之相對(duì)應(yīng)用
29、戶的電量被清零。該模塊通過相關(guān)管腳與主控模塊通信,主控模塊不停的對(duì)八個(gè)按鍵進(jìn)行掃描以判斷哪一個(gè)按鍵被按下,獲取八個(gè)按鍵的狀態(tài)并對(duì)其進(jìn)行編碼。主控模塊根據(jù)獲取的信息對(duì)電量顯示模塊發(fā)出相應(yīng)指令。</p><p> 圖4.3 按鍵清零模塊</p><p><b> 4.2 穩(wěn)壓電源</b></p><p> 電源是電能表設(shè)計(jì)的重要部分,其設(shè)計(jì)的
30、好壞對(duì)整個(gè)系統(tǒng)的性能有較大影響。本設(shè)計(jì)使用的穩(wěn)壓電源是由MC7805實(shí)現(xiàn)的,輸入電壓220V,輸出電壓+5V 。</p><p> 集成三端穩(wěn)壓器穩(wěn)壓精度高、工作穩(wěn)定可靠、外圍電路簡單、容易設(shè)計(jì)和制作、體積小、重量輕、成本低、維修簡單。7805集成三端穩(wěn)壓器的典型應(yīng)用電路如圖2所示,這是一個(gè)輸出 +5 V直流電壓的穩(wěn)壓電路。IC采用集成三端穩(wěn)壓器7805,C1、C 2分別為輸入端和輸出端濾波電容,RL為負(fù)載電阻
31、。電路如下圖。</p><p> 圖4.4 穩(wěn)壓電壓電源電路</p><p> 4.3 AD7755相關(guān)電路</p><p> AD7755電能脈沖發(fā)生器的選擇:</p><p> AD7755是美國AD公司生產(chǎn)的專用于功率/電能測(cè)量的低成本集成電路。它的技術(shù)指標(biāo)滿足GB/T17215-1998標(biāo)準(zhǔn)規(guī)定的準(zhǔn)確度等要求。</p&g
32、t;<p> AD7755有24條引腳,以DIP和SSOP形式封裝。AD7755在電子電能表中的連接如圖1所示。管腳功能如下:</p><p> P1 DVDD,數(shù)字電路電源,5(±5%)V;P2AC/DC,高通濾波選擇腳,邏輯高,高通濾濾器使能;P3 AVDD,模擬電路電源,5(±5%)V;P4、P19 NC,未接;P5-P6 V1P-V1N,通道1(電流通道)模擬輸入,最
33、大差動(dòng)輸入電壓為±470mV;P7-P8 V2N-V2P,通道2(電壓通道)模擬輸入,最大差動(dòng)輸入電壓為±660mV; P9 RESET,復(fù)位引腳,邏輯低使ADC和數(shù)字電路保持復(fù)位狀態(tài),清內(nèi)部寄存器;P10 REFIN/OUT,電壓基準(zhǔn)腳,片上基準(zhǔn)為5(±8%)V,可接外部基準(zhǔn)源;P11 AGND,模擬電路參考地;P12 SCF,校準(zhǔn)頻率選擇腳;P13、P14 S1、S0,數(shù)-頻轉(zhuǎn)換頻率選擇腳;P15、P1
34、6 G1、G0,通道1增益選擇腳;P17 - P18 CLKIN- CLKOUT,外接時(shí)鐘,鐘頻3.579545MHz;P20 REVP,負(fù)功率指示腳,電壓信號(hào)和電流信號(hào)之間的相位差>90°時(shí)變?yōu)檫壿嫺?P21DGND,數(shù)字電路參考地;P22 CF,校準(zhǔn)頻率輸出;P23、P24 F2、F1,低頻輸出。</p><p> 圖4.5 AD7755的內(nèi)部功能框圖</p><p>
35、; 圖4.6 AD7755電路原理圖</p><p> 它由模擬電路(模數(shù)轉(zhuǎn)換電路、基準(zhǔn)電路與電源電壓監(jiān)測(cè)電路)和數(shù)字信號(hào)處理電路兩部分組成。被測(cè)電壓、電流轉(zhuǎn)換為數(shù)字量后,接下來的信號(hào)處理都在數(shù)字域?qū)崿F(xiàn);AD7755內(nèi)部的相位校正電路、高通濾波器、乘法器、低通濾波器、數(shù)字-頻率轉(zhuǎn)換器等都為數(shù)字電路。AD7755內(nèi)有兩個(gè)以900kHz過采樣速率采樣的16位2階Σ-Δ模數(shù)轉(zhuǎn)換器(ADC)。被測(cè)電流經(jīng)可編程增益放大
36、器(PGA)放大后接電流通道的ADC,并由此ADC轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字信號(hào)。再經(jīng)相位校正和高通濾波,進(jìn)入乘法器。乘法器的另一路輸入是由電壓通道ADC轉(zhuǎn)換而來的、與被測(cè)電壓對(duì)應(yīng)的數(shù)字信號(hào)。相乘后產(chǎn)生瞬時(shí)功率信號(hào)。此信號(hào)經(jīng)低通濾波器濾除其中的交流分量,提取出負(fù)載消耗的瞬時(shí)有功功率。AD7755對(duì)這個(gè)瞬時(shí)有功功率信號(hào)進(jìn)行一段時(shí)間的累計(jì)、平均,求得平均有功功率,以較短時(shí)間對(duì)瞬時(shí)有功功率進(jìn)行累計(jì),求得與瞬時(shí)有功功率成正比的高頻頻率并經(jīng)CF輸出,用于校
37、準(zhǔn)或送微控制器累加計(jì)數(shù),實(shí)現(xiàn)對(duì)電能的計(jì)量。電流通道的PGA的增益受管腳G1、G0控制。</p><p><b> 參數(shù)計(jì)算:</b></p><p> ①以AD7755設(shè)計(jì)的電能表的相關(guān)參數(shù)計(jì)算</p><p> 配合C8051F360芯片的16進(jìn)制算法與課程設(shè)計(jì)的參數(shù)要求,參考基本電流與脈沖的建議數(shù),選定基準(zhǔn)電流Ib=5A,每kw.h計(jì)
38、度需要的脈沖數(shù)為3200,即CF的輸出為3200imp/ kw.h。</p><p> 線路電壓220V,基本電流Ib為5A,動(dòng)態(tài)范圍400(規(guī)定準(zhǔn)確度的電流范圍為2%Ib~Imax,即100mA~40A);計(jì)度器的電表常數(shù)C為3200imp/ kw.h,即AD7755發(fā)3200個(gè)脈沖,單片機(jī)記錄1 kw.h電。為滿足電流通道的動(dòng)態(tài)范圍且留有充分的余量,選用350μΩ的分流器;以其將負(fù)載電流轉(zhuǎn)換為電壓,接V1P
39、和V1N。線路電壓經(jīng)電壓分壓器分壓,也降到允許的最大電壓范圍之內(nèi),接V2P和V2N。負(fù)載電流為基本電流(5A)時(shí),線路的功耗為P=220×5=1.1 kw。</p><p> 選擇f1-4=3.4Hz,SCF=0,S1=0,=S0=1,此時(shí)CF頻率為f1的32倍,所要求的頻率恰為f1,f2段的脈沖計(jì)數(shù)標(biāo)準(zhǔn)為100imp/ kw.h。</p><p> 乘以此常數(shù)得Ib情況下的
40、輸出頻率:</p><p> fF1=P×C=1.1×3200/3600=0.9777778Hz</p><p> 查AD7755數(shù)據(jù)表,所選擇f1-4=3.4Hz,滿足最大電流為40A和再留有足夠余量的要求。</p><p> fF1=8.06×U1×U2×G×f1-4U2REF</p>
41、<p> U1=5×350=1750μV=1.75mV</p><p> 并以最大電流產(chǎn)生的壓降和表1,選擇G=16</p><p> U2=fF1×U2REF8.06×U1×G×f1-4=0.030555×2.528.06×1.75×16×3.4=248.9mV</p>
42、;<p> 原理圖中R1、C1,R2、C2,R3、C3,R4∥(R5~R16)、C4為抗混疊濾波器。因?yàn)锳D7755以900kHz過采樣速率采樣,故大大簡化了抗混疊濾波器的設(shè)計(jì)。不過,兩個(gè)通道之間的相位匹配非常重要。例如,當(dāng)cosφ=0.5時(shí),0.2°的外部相位誤差將產(chǎn)生0.6%的測(cè)量誤差。為使兩個(gè)通道的相位匹配,電阻、電容的取值分別為R1=R2=R3=R4=1kΩ(精度為1%);C1=C2=C3=C4=33n
43、F;R5= 300kΩ,R6= 150kΩ,R7= 75kΩ,R8=39kΩ,R9=18kΩ,R10=9.1kΩ,R11=5.1kΩ,R12=2.2kΩ,R13=1.2kΩ,R14=560Ω,R15=R16=330kΩ??紤]到選用的分流器和基準(zhǔn)源都存在允差,原理圖中設(shè)置了校準(zhǔn)網(wǎng)絡(luò),通過短接或斷開J1~J10,可在±30%范圍內(nèi)進(jìn)行調(diào)節(jié)。因?yàn)镽15+R16=660kΩ,大于大于R4(1kΩ),因此,即使R5~R14全部短接,這條
44、支路的-3dB頻率仍由R4和C4的值決定。據(jù)廠家介紹,從J1~J10全部接通變化到J1~J10全部斷開,50Hz處產(chǎn)生的相移僅為0.0004°??紤]到分流器存在寄生電感</p><p><b> 5 軟件電路設(shè)計(jì)</b></p><p> 5.1 各模塊流程圖設(shè)計(jì)</p><p> 圖5.1 主函數(shù)流程圖</p>
45、<p> 圖5.2 AT24C16讀寫函數(shù)流程圖</p><p> 圖5.3 用戶掃描函數(shù)</p><p><b> 6 參考文獻(xiàn)</b></p><p> [1]邱關(guān)源,電路第四版 ,高等教育出版社,2002. </p><p> [2] 公茂法,黃鶴松.單片機(jī)原理與實(shí)踐.北京:北京航空航天大學(xué)出版
46、社 2009</p><p> [3]羅旭,張彥斌等.單相電子式電能表的特點(diǎn)及其原理,第1期:10-17,</p><p><b> 2003.</b></p><p><b> 7 致謝</b></p><p> 本次課程設(shè)計(jì)的完成,首先要感謝公老師和研究生學(xué)長的耐心講解和悉心指導(dǎo),使我受
47、益匪淺。</p><p> 兩個(gè)星期來,我學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí), 我不僅進(jìn)一步熟悉了單片機(jī)的原理和應(yīng)用,也對(duì)匯編語言編程有了更進(jìn)一步的了解,并在調(diào)試程序的同時(shí)鍛煉了動(dòng)手能力和分析問題的能力,體會(huì)到了課本聯(lián)系實(shí)際、學(xué)以致用的重要性,懂得了只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才是正確的理論,才能真正提高自己實(shí)際動(dòng)手能力和獨(dú)立思索的能力。我在設(shè)計(jì)的過程中碰
48、到問題,但是我并沒有放棄,經(jīng)過老師的講解和自己的查找資料,并發(fā)揮對(duì)所學(xué)知識(shí)的理解思考,自己耐心的親手設(shè)計(jì)調(diào)試程序,一步步克服難關(guān)最終完成了目標(biāo)。</p><p> 這次課程設(shè)計(jì)為自己今后進(jìn)一步深化學(xué)習(xí),積累了一定寶貴的經(jīng)驗(yàn)。通過這次課程設(shè)計(jì)我深刻的認(rèn)識(shí)到,只有理論水平提高了,才能夠?qū)⒄n本知識(shí)與實(shí)踐相整合,理論知識(shí)服務(wù)于教學(xué)實(shí)踐,以增強(qiáng)自己的動(dòng)手能力。這是一次知識(shí)轉(zhuǎn)化為能力的實(shí)際訓(xùn)練,培養(yǎng)了我運(yùn)用所學(xué)知識(shí)解決實(shí)際
49、問題的能力。并對(duì)本專業(yè)的課程充滿了濃厚的興趣及對(duì)以后的學(xué)習(xí)充滿了信心,決定在以后的學(xué)習(xí)生活中加強(qiáng)練習(xí),端正心態(tài)迎接新的挑戰(zhàn)。</p><p> 最后,再次向公老師和研究生學(xué)長表示誠摯的感謝!</p><p><b> 8 附錄</b></p><p><b> 程序清單</b></p><p>
50、; #include<c8051f360.h></p><p> #include <intrins.h></p><p> #include <stdio.h></p><p> #define AT24C16 0xa0 //AT24C16 地址</p><p> sbit DIN=P1^0
51、; /*定義P1口*/</p><p> sbit CLK=P1^1;</p><p> sbit YH1=P2^0; /*定義P2口*/</p><p> sbit YH2=P2^1;</p><p> sbit YH3=P2^2;</p><p> sbit YH4=P2^3;
52、</p><p> sbit YH5=P2^4;</p><p> sbit YH6=P2^5;</p><p> sbit YH7=P2^6;</p><p> sbit YH8=P2^7;</p><p> sbit HC165_nPL=P1^2;//165鍵盤管腳定義</p><p&
53、gt; sbit HC165_CK=P1^5;</p><p> sbit HC165_OUT=P1^4;</p><p> unsigned char HC165(void);//鍵盤掃描函數(shù)</p><p> unsigned char Temp;</p><p> unsigned char lu=0xff;</p>
54、;<p> void qingling(unsigned char a);//判斷哪個(gè)個(gè)鍵盤按下,并對(duì)相應(yīng)用戶清零</p><p> unsigned char a,m,i,j,k,n,z;</p><p> unsigned char zf[]={0x88,0xeb,0x4c,0x49,0x2b,0x19,0x18,0xcb,0x08,0x09,0xff,0x7f};
55、//數(shù)碼管編碼(0-9),后兩位分別是滅碼、顯示‘一’</p><p> unsigned char yh[8][8]={{0x00,0x00,0x00,0x00,0xb,0x1,0x00,0x00},</p><p> {0x00,0x00,0x00,0x00,0xb,0x2,0x00,0x00},</p><p> {0x00,0x00,0x00,0x00
56、,0xb,0x3,0x00,0x00},</p><p> {0x00,0x00,0x00,0x00,0xb,0x4,0x00,0x00},</p><p> {0x00,0x00,0x00,0x00,0xb,0x5,0x00,0x00},</p><p> {0x00,0x00,0x00,0x00,0xb,0x6,0x00,0x00},</p>
57、<p> {0x00,0x00,0x00,0x00,0xb,0x7,0x00,0x00},</p><p> {0x00,0x00,0x00,0x00,0xb,0x8,0x00,0x00}};</p><p> #define _Nop() _nop_() /* 定義空指令 */</p><p> sbit SCL=P1^6;
58、 //I2C 時(shí)鐘 </p><p> sbit SDA=P1^3; //I2C 數(shù)據(jù) </p><p> bit ack; /*應(yīng)答標(biāo)志位*/</p><p> void Start_I2c()</p><p><b> {</b></p>
59、<p> SDA=1; /*發(fā)送起始條件的數(shù)據(jù)信號(hào)*/</p><p><b> _Nop();</b></p><p><b> SCL=1;</b></p><p> _Nop(); /*起始條件建立時(shí)間大于4.7us,延時(shí)*/</p><p>
60、<b> _Nop();</b></p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p> _Nop(); </p><p> SDA=0; /*發(fā)送起始信號(hào)*/</p>
61、<p> _Nop(); /* 起始條件鎖定時(shí)間大于4μs*/</p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p> _Nop()
62、; </p><p> SCL=0; /*鎖住I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù) */</p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p><b> }</b></p>
63、<p> void Stop_I2c()</p><p><b> {</b></p><p> SDA=0; /*發(fā)送結(jié)束條件的數(shù)據(jù)信號(hào)*/</p><p> _Nop(); /*發(fā)送結(jié)束條件的時(shí)鐘信號(hào)*/</p><p><b> SCL=1; </b>&l
64、t;/p><p><b> _Nop();</b></p><p> _Nop(); /*結(jié)束條件建立時(shí)間大于4μs*/</p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p>&l
65、t;b> _Nop();</b></p><p> SDA=1; /*發(fā)送I2C總線結(jié)束信號(hào)*/</p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p><b> _Nop();</b&
66、gt;</p><p><b> _Nop();</b></p><p><b> }</b></p><p> void SendByte(unsigned char c)</p><p><b> {</b></p><p> unsi
67、gned char BitCnt;</p><p> for(BitCnt=0;BitCnt<8;BitCnt++) /*要傳送的數(shù)據(jù)長度為8位*/</p><p><b> {</b></p><p> if((c<<BitCnt)&0x80)SDA=1; /*判斷發(fā)送位*/</p>&
68、lt;p> else SDA=0; </p><p><b> _Nop();</b></p><p> SCL=1; /*置時(shí)鐘線為高,通知被控器開始接收數(shù)據(jù)位*/</p><p><b> _Nop(); </b></p><p> _Nop()
69、; /*保證時(shí)鐘高電平周期大于4μs*/</p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p> _Nop(); </p><p><b> SCL=0; </b></p>
70、<p><b> }</b></p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p> SDA=1; /*8位發(fā)送完后釋放數(shù)據(jù)線,準(zhǔn)備接收應(yīng)答位*/</p><p><b> _
71、Nop();</b></p><p> _Nop(); </p><p><b> SCL=1;</b></p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p><
72、b> _Nop();</b></p><p> if(SDA==1)ack=0; </p><p> else ack=1; /*判斷是否接收到應(yīng)答信號(hào)*/</p><p><b> SCL=0;</b></p><p><b> _Nop();</b><
73、;/p><p><b> _Nop();</b></p><p><b> }</b></p><p> unsigned char RcvByte()</p><p><b> {</b></p><p> unsigned char re
74、tc;</p><p> unsigned char BitCnt; </p><p><b> retc=0; </b></p><p> SDA=1; /*置數(shù)據(jù)線為輸入方式*/</p><p> for(BitCnt=0;BitCnt<8;BitCnt++)</p&
75、gt;<p><b> {</b></p><p> _Nop(); </p><p> SCL=0; /*置時(shí)鐘線為低,準(zhǔn)備接收數(shù)據(jù)位*/</p><p><b> _Nop();</b></p><p> _Nop(); /*時(shí)鐘低
76、電平周期大于4.7μs*/</p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p> SCL=1; /*置時(shí)鐘線為高使數(shù)據(jù)線上數(shù)據(jù)有效*/</p
77、><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p> retc=retc<<1;</p><p> if(SDA==1)retc=retc+1; /*讀數(shù)據(jù)位,接收的數(shù)據(jù)位放入retc中 */</p><
78、p><b> _Nop();</b></p><p><b> _Nop(); </b></p><p><b> }</b></p><p> SCL=0; </p><p><b> _Nop();</b></p>
79、<p><b> _Nop();</b></p><p> return(retc);</p><p><b> }</b></p><p> void Ack_I2c(bit a)</p><p><b> { </b></p><p
80、> if(a==0)SDA=0; /*在此發(fā)出應(yīng)答或非應(yīng)答信號(hào) */</p><p> else SDA=1;</p><p><b> _Nop();</b></p><p><b> _Nop();</b></p><p> _Nop(); </p>
81、<p><b> SCL=1;</b></p><p><b> _Nop();</b></p><p> _Nop(); /*時(shí)鐘低電平周期大于4μs*/</p><p><b> _Nop();</b></p><p><b>
82、; _Nop();</b></p><p><b> _Nop(); </b></p><p> SCL=0; /*清時(shí)鐘線,鉗住I2C總線以便繼續(xù)接收*/</p><p><b> _Nop();</b></p><p> _Nop(); </
83、p><p><b> }</b></p><p> bit ISendStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no)</p><p><b> {</b></p><p> unsig
84、ned char i;</p><p> Start_I2c(); /*啟動(dòng)總線*/</p><p> SendByte(sla); /*發(fā)送器件地址*/</p><p> if(ack==0)return(0);</p><p> SendByte(suba);
85、 /*發(fā)送器件子地址*/</p><p> if(ack==0)return(0);</p><p> for(i=0;i<no;i++)</p><p><b> { </b></p><p> SendByte(*s); /*發(fā)送數(shù)據(jù)*/</p><p&g
86、t; if(ack==0)return(0);</p><p><b> s++;</b></p><p><b> } </b></p><p> Stop_I2c(); /*結(jié)束總線*/ </p><p> return(1);</p>&l
87、t;p><b> }</b></p><p> bit IRcvStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no)</p><p><b> {</b></p><p> unsigned char i
88、;</p><p> Start_I2c(); /*啟動(dòng)總線*/</p><p> SendByte(sla); /*發(fā)送器件地址*/</p><p> if(ack==0)return(0);</p><p> SendByte(suba); /*發(fā)送
89、器件子地址*/</p><p> if(ack==0)return(0);</p><p> Start_I2c(); /*重新啟動(dòng)總線*/</p><p> SendByte(sla+1);</p><p> if(ack==0)return(0);</p><p> for
90、(i=0;i<no-1;i++)</p><p><b> { </b></p><p> *s=RcvByte(); /*發(fā)送數(shù)據(jù)*/</p><p> Ack_I2c(0); /*發(fā)送就答位*/ </p><p><b> s++;&
91、lt;/b></p><p><b> } </b></p><p> *s=RcvByte();</p><p> Ack_I2c(1); /*發(fā)送非應(yīng)位*/</p><p> Stop_I2c(); /*結(jié)束總線*/ </p>
92、;<p> return(1);</p><p><b> }</b></p><p><b> delay()</b></p><p><b> {</b></p><p> unsigned m,n;</p><p> fo
93、r(m=20;m>0;m--)</p><p> for(n=512;n>0;n--);</p><p><b> }</b></p><p> void Read24()</p><p><b> {</b></p><p> IRcvStr(AT24
94、C16, 0 , &yh[0][0], 4);delay();</p><p> IRcvStr(AT24C16, 4 , &yh[1][0], 4);delay();</p><p> IRcvStr(AT24C16, 8 , &yh[2][0], 4);delay();</p><p> IRcvStr(AT24C16, 12 ,
95、&yh[3][0], 4);delay();</p><p> IRcvStr(AT24C16, 16 , &yh[4][0], 4);delay();</p><p> IRcvStr(AT24C16, 20 , &yh[5][0], 4);delay();</p><p> IRcvStr(AT24C16, 24 , &yh
96、[6][0], 4);delay();</p><p> IRcvStr(AT24C16, 28 , &yh[7][0], 4);delay();</p><p><b> }</b></p><p> void Write24()</p><p><b> {</b></p&
97、gt;<p> ISendStr(AT24C16, 0 , &yh[0][0], 4);delay();</p><p> ISendStr(AT24C16, 4 , &yh[1][0], 4);delay();</p><p> ISendStr(AT24C16, 8 , &yh[2][0], 4);delay();</p>&l
98、t;p> ISendStr(AT24C16, 12 , &yh[3][0], 4);delay();</p><p> ISendStr(AT24C16, 16 , &yh[4][0], 4);delay();</p><p> ISendStr(AT24C16, 20 , &yh[5][0], 4);delay();</p><p&
99、gt; ISendStr(AT24C16, 24 , &yh[6][0], 4);delay();</p><p> ISendStr(AT24C16, 28 , &yh[7][0], 4);delay();</p><p><b> }</b></p><p> void jinwei (unsigned char z
100、)</p><p><b> {</b></p><p> yh[z][0]++;</p><p> if(yh[z][0]==0xa)//判斷是否為10,滿十向前進(jìn)位</p><p><b> {</b></p><p> yh[z][0]=0x0;</p&
101、gt;<p> yh[z][1]++;</p><p><b> }</b></p><p> if (yh[z][1]==0xa)</p><p><b> {</b></p><p> yh[z][1]=0x0;</p><p> yh[z][2
102、]++;</p><p><b> }</b></p><p> if (yh[z][2]==0xa)</p><p><b> {</b></p><p> yh[z][2]=0x0;</p><p> yh[z][3]++;</p><p&g
103、t;<b> }</b></p><p> if (yh[z][3]==0xa)</p><p><b> {</b></p><p> yh[z][0]=0x0;</p><p> yh[z][1]=0x0;</p><p> yh[z][2]=0x0;<
104、/p><p> yh[z][3]=0x0;;</p><p> }//記滿4位數(shù)全部清零</p><p><b> }</b></p><p> void saomiao(unsigned char p2)</p><p><b> {</b></p>&
105、lt;p> if((p2&0x01)==0)</p><p><b> {</b></p><p> if((lu&0x01)==1)</p><p><b> {</b></p><p><b> z=0;</b></p><
106、;p> jinwei(z);</p><p><b> }</b></p><p><b> }</b></p><p> if((p2&0x02)==0)</p><p><b> {</b></p><p> if((lu
107、&0x02)==2)</p><p><b> {</b></p><p><b> z=1;</b></p><p> jinwei(z);</p><p><b> }</b></p><p><b> }</b&g
108、t;</p><p> if((p2&0x04)==0)</p><p><b> {</b></p><p> if((lu&0x04)==4)</p><p><b> {</b></p><p><b> z=2;</b>
109、</p><p> jinwei(z);</p><p><b> }</b></p><p><b> }</b></p><p> if((p2&0x08)==0)</p><p><b> {</b></p><
110、;p> if((lu&0x08)==0x08)</p><p><b> {</b></p><p><b> z=3;</b></p><p> jinwei(z);</p><p><b> }</b></p><p><
111、;b> }</b></p><p> if((p2&0x10)==0)</p><p><b> {</b></p><p> if((lu&0x10)==0x10)</p><p><b> {</b></p><p><b
112、> z=4;</b></p><p> jinwei(z);</p><p><b> }</b></p><p><b> }</b></p><p> if((p2&0x20)==0)</p><p><b> {</
113、b></p><p> if((lu&0x20)==0x20)</p><p><b> {</b></p><p><b> z=5;</b></p><p> jinwei(z);</p><p><b> }</b><
114、/p><p><b> }</b></p><p> if((p2&0x40)==0)</p><p><b> {</b></p><p> if((lu&0x40)==0x40)</p><p><b> {</b></
115、p><p><b> z=6;</b></p><p> jinwei(z);</p><p><b> }</b></p><p><b> }</b></p><p> if((p2&0x80)==0)</p><p
116、><b> {</b></p><p> if((lu&0x80)==0x80)</p><p><b> {</b></p><p><b> z=7;</b></p><p> jinwei(z);</p><p><b
117、> }</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> unsigned char i=0,j=0,p2;</p><p><b> a=
118、0xff;</b></p><p> //temp=0xff;</p><p> SFRPAGE=0x0F; </p><p> P1MDIN=0XFF; //P1口初始化</p><p> P1MDOUT=0XEF; //推挽輸出 </p><p> P2MDIN=0xFF;&l
119、t;/p><p> P2MDOUT=0xfF;</p><p> XBR1=0x40; //交叉開關(guān)使能 </p><p> PCA0MD=0x00; //關(guān)閉看門狗clear Watchdog</p><p> PSCTL=0x03; //寫FLESH允許</p&g
120、t;<p> OSCXCN=0x67; //用外晶振</p><p> OSCICN=0x0; //內(nèi)部振蕩器使能,8分頻</p><p> CLKSEL=0x01; //系統(tǒng)時(shí)鐘選內(nèi)部高頻振蕩器,不預(yù)分頻</p><p> //Write24();</p><p><b> Read24
121、();</b></p><p> TMOD=0x01; //設(shè)置定時(shí)器0為工作方式1</p><p><b> TH0=0x28;</b></p><p><b> TL0=0x00;</b></p><p> EA=1; //開總中斷</p>
122、<p> ET0=1; //開定時(shí)器0中斷</p><p> TR0=1; //啟動(dòng)定時(shí)器0</p><p><b> while(1)</b></p><p><b> {</b></p><p> a=HC165();//獲取按鍵鍵碼</p&g
123、t;<p> qingling(a);//相應(yīng)用戶數(shù)據(jù)清零</p><p><b> delay();</b></p><p> a=0xff;//將a的值鎖定,防止誤影響</p><p> p2=P2;//獲取P2口的編碼</p><p> delay();//延時(shí)消抖</p>
124、<p> if(p2==P2)//確認(rèn)確實(shí)有脈沖過來</p><p><b> {</b></p><p> saomiao(p2);</p><p> Write24();</p><p><b> }</b></p><p><b> }&
125、lt;/b></p><p><b> }</b></p><p> void DS() interrupt 1</p><p><b> {</b></p><p><b> TH0=0x28;</b></p><p><b>
126、 TL0=0x00;</b></p><p> if(++n==20) //n用來控制中斷的次數(shù)</p><p><b> { </b></p><p><b> n=0;</b></p><p> for(k=0;k<8;k++)</p><p>
127、;<b> {</b></p><p> m=zf[yh[j][k]];//變化</p><p> if(k==2)//顯示小數(shù)點(diǎn)</p><p><b> {</b></p><p><b> m=m&0xf7;</b></p><p&g
128、t;<b> }</b></p><p> for(i=0;i<8;i++)</p><p><b> { </b></p><p><b> CLK=0;</b></p><p> DIN=m&0x01; //164的數(shù)據(jù)輸入dsa&dsb,
129、m中的八位數(shù)據(jù)bit by bit移動(dòng)</p><p> CLK=1;//時(shí)鐘發(fā)生跳變,產(chǎn)生移位</p><p> m=m>>1;//數(shù)據(jù)右移</p><p><b> }</b></p><p><b> }</b></p><p> j=(j+1
130、)%8;</p><p><b> }</b></p><p><b> }</b></p><p> unsigned char HC165(void)</p><p><b> {</b></p><p> unsigned char i;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電能表畢業(yè)設(shè)計(jì)--單相電子式電能表的設(shè)計(jì)
- 單相電能表
- 單相電子式電能表設(shè)計(jì) 論文 定稿
- 單相電子式防竊電電能表設(shè)計(jì).pdf
- 智能單相電能表的研究.pdf
- 多功能單相電能表的研究與設(shè)計(jì).pdf
- 單相智能電能表設(shè)計(jì).pdf
- 基于rfidsts的預(yù)付費(fèi)單相電能表設(shè)計(jì)(1)
- 單相電子式載波預(yù)付費(fèi)智能電能表的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 單相電能表自動(dòng)化生產(chǎn)線設(shè)計(jì)與研究.pdf
- 單相多功能電能表設(shè)計(jì)與實(shí)現(xiàn).pdf
- ddsy1352單相電子式預(yù)付費(fèi)電能表
- 01級(jí)單相電能表校驗(yàn)臺(tái)期間核查方法
- 單相費(fèi)控智能電能表設(shè)計(jì).pdf
- 0.05級(jí)單相電能表檢定裝置的研究
- 多用戶電能表課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)---多用戶電能表課程設(shè)計(jì)報(bào)告
- dds2188-xr型上進(jìn)下出單相電子式電能表使用
- 基于RFID+STS的預(yù)付費(fèi)單相電能表設(shè)計(jì).pdf
- 單相遠(yuǎn)程費(fèi)控智能電能表設(shè)計(jì).pdf
評(píng)論
0/150
提交評(píng)論