基于E2PROM 24C16芯片單片機課程設計-多用戶電能表打印_第1頁
基于E2PROM 24C16芯片單片機課程設計-多用戶電能表打印_第2頁
基于E2PROM 24C16芯片單片機課程設計-多用戶電能表打印_第3頁
基于E2PROM 24C16芯片單片機課程設計-多用戶電能表打印_第4頁
基于E2PROM 24C16芯片單片機課程設計-多用戶電能表打印_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一、 設計任務1、 設計目的:通過計算機編程實現(xiàn)多用戶電子式數(shù)碼顯示電能表的功能。本次設計用戶數(shù)為八戶,即實現(xiàn)八位用戶循環(huán)顯示電能量。同時,基于E2PROM 24C16芯片實現(xiàn)單片機的掉電數(shù)據(jù)保護。2、 設計要求:基于AD7755芯片實現(xiàn)電能脈沖的發(fā)生;應用單片機C8051F360編制程序完成脈沖的讀取、計數(shù)、計算、存儲、送顯示等功能;應用74HC164及八段譯碼顯示器完成數(shù)據(jù)的顯示;應用E2PROM 24C16完成數(shù)據(jù)的定時寫入以防停電時數(shù)據(jù)丟失。二、 設計內容1、 硬件設計:(1)設計總體框圖:線路電壓線路電流電壓互感器電流互感器電能轉換脈沖芯片AD7755光電耦合C8051F360單片機

2、74HC164及八段譯碼顯示E2PROM24C16(2)設計參數(shù):基準電壓: 220V10%基準電流:Ib=5A最大電流:Imax=4Ib=20A計量精度:1%最小電流:Imin=2%Ib=0.1脈沖數(shù):3200/kw.h(3)參數(shù)計算:以AD7755設計的電能表的相關參數(shù)計算配合C8051F360芯片的16進制算法與課程設計的參數(shù)要求,參考基本電流與脈沖的建議數(shù),選定基準電流Ib=5A,每kw.h計度需要的脈沖數(shù)為3200,即CF的輸出為3200imp/ kw.h。線路電壓220V,基本電流Ib為5A,動態(tài)范圍400(規(guī)定準確度的電流范圍為2%IbImax,即100mA40A);計度器的電表

3、常數(shù)C為3200imp/ kw.h,即AD7755發(fā)3200個脈沖,單片機記錄1 kw.h電。為滿足電流通道的動態(tài)范圍且留有充分的余量,選用350的分流器;以其將負載電流轉換為電壓,接V1P和V1N。線路電壓經電壓分壓器分壓,也降到允許的最大電壓范圍之內,接V2P和V2N。負載電流為基本電流(5A)時,線路的功耗為P=2205=1.1 kw。選擇f1-4=3.4Hz,SCF=0,S1=0,=S0=1,此時CF頻率為f1的32倍,所要求的頻率恰為f1,f2段的脈沖計數(shù)標準為100imp/ kw.h。乘以此常數(shù)得Ib情況下的輸出頻率:fF1=PC=1.13200/3600=0.9777778Hz查

4、AD7755數(shù)據(jù)表,所選擇f1-4=3.4Hz,滿足最大電流為40A和再留有足夠余量的要求。fF1=8.06U1U2Gf1-4U2REFU1=5350=1750V=1.75mV并以最大電流產生的壓降和表1,選擇G=16U2=fF1U2REF8.06U1Gf1-4=0.0305552.528.061.75163.4=248.9mV原理圖中R1、C1,R2、C2,R3、C3,R4(R5R16)、C4為抗混疊濾波器。因為AD7755以900kHz過采樣速率采樣,故大大簡化了抗混疊濾波器的設計。不過,兩個通道之間的相位匹配非常重要。例如,當cos=0.5時,0.2的外部相位誤差將產生0.6%的測量誤差

5、。為使兩個通道的相位匹配,電阻、電容的取值分別為R1=R2=R3=R4=1k(精度為1%);C1=C2=C3=C4=33nF;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。考慮到選用的分流器和基準源都存在允差,原理圖中設置了校準網絡,通過短接或斷開J1J10,可在30%范圍內進行調節(jié)。因為R15+R16=660k,大于大于R4(1k),因此,即使R5R14全部短接,這條支路的-3dB頻率仍由R4和C4的值決定。據(jù)廠家介紹,從J1J10全部接通變化到

6、J1J10全部斷開,50Hz處產生的相移僅為0.0004??紤]到分流器存在寄生電感,較大時需要進行補償。當分濾器阻值很小時,如,小于200,特別要注意此問題。AD7755的供電電壓由電容分壓器分壓、二極管整流、RC濾波和7805 IC穩(wěn)壓產生。7805的輸出以C13(10F)和C12(100nF)退耦,接AD7755的DVDD。VDD再經R22(10)、C10(100nF)和C11 (220F)濾波,接AD7755的模擬電路電源管腳AVDD。AD7755的CLKIN和CLKOUT管腳接3.579545MHz晶體和2只22pF陶瓷電容??紤]抗電磁干擾,除原有的濾波電路外,原理圖電流輸入通道中增加

7、了Z3、Z4鐵氧體,電源電路部分增加了由Z1鐵氧體、C16電容和MOV1金屬氧化物壓敏電阻組成的濾波網絡等。C8051F360單片機部分管腳及參數(shù)由原理圖知:P1.0P1.7分配給八個用戶,作為脈沖輸入端口。P2.0和P2.1分配給LED顯示部分作為時鐘信號和數(shù)據(jù)輸入。P2.4和P2.5分配給24C16作為SCL和SDA信號腳。此外,C8051F360功能強大,結構復雜,其余端口與本設計無關,故其分配情況不再詳述。晶振采用11.0592MHz,電源使用3.3V。電源參數(shù)220V5V的共兩套,一套給AD7755,另一套給顯示模塊和5V3.3V電源。5V3.3V電源供給C8051F360和24C1

8、6。220V5V轉換電路中,相關參數(shù)如下:C1=330uf,為濾波電容;C2=0.33uf,用于抵消輸入線較長時的電感效應,以防止電路產生自激震蕩;C3=1uf,用于消除輸出電壓中的高頻噪聲。(4)器件選擇: AD7755電能脈沖發(fā)生器的選擇: AD7755是美國AD公司生產的專用于功率/電能測量的低成本集成電路。它的技術指標滿足GB/T17215-1998標準規(guī)定的準確度等要求。 AD7755有24條引腳,以DIP和SSOP形式封裝。AD7755在電子電能表中的連接如圖1所示。管腳功能如下:P1 DVDD,數(shù)字電路電源,5(5%)V;P2AC/DC,高通濾波選擇腳,邏輯高,高通濾濾器使能;P

9、3 AVDD,模擬電路電源,5(5%)V;P4、P19 NC,未接;P5-P6 V1P-V1N,通道1(電流通道)模擬輸入,最大差動輸入電壓為470mV;P7-P8 V2N-V2P,通道2(電壓通道)模擬輸入,最大差動輸入電壓為660mV; P9 RESET,復位引腳,邏輯低使ADC和數(shù)字電路保持復位狀態(tài),清內部寄存器;P10 REFIN/OUT,電壓基準腳,片上基準為5(8%)V,可接外部基準源;P11 AGND,模擬電路參考地;P12 SCF,校準頻率選擇腳;P13、P14 S1、S0,數(shù)-頻轉換頻率選擇腳;P15、P16 G1、G0,通道1增益選擇腳;P17 - P18 CLKIN- C

10、LKOUT,外接時鐘,鐘頻3.579545MHz;P20 REVP,負功率指示腳,電壓信號和電流信號之間的相位差90時變?yōu)檫壿嫺?P21DGND,數(shù)字電路參考地;P22 CF,校準頻率輸出;P23、P24 F2、F1,低頻輸出。 AD7755的內部功能框圖如下圖:它由模擬電路(模數(shù)轉換電路、基準電路與電源電壓監(jiān)測電路)和數(shù)字信號處理電路兩部分組成。被測電壓、電流轉換為數(shù)字量后,接下來的信號處理都在數(shù)字域實現(xiàn);AD7755內部的相位校正電路、高通濾波器、乘法器、低通濾波器、數(shù)字-頻率轉換器等都為數(shù)字電路。AD7755內有兩個以900kHz過采樣速率采樣的16位2階-模數(shù)轉換器(ADC)。被測電流

11、經可編程增益放大器(PGA)放大后接電流通道的ADC,并由此ADC轉換為對應的數(shù)字信號。再經相位校正和高通濾波,進入乘法器。乘法器的另一路輸入是由電壓通道ADC轉換而來的、與被測電壓對應的數(shù)字信號。相乘后產生瞬時功率信號。此信號經低通濾波器濾除其中的交流分量,提取出負載消耗的瞬時有功功率。AD7755對這個瞬時有功功率信號進行一段時間的累計、平均,求得平均有功功率,以較短時間對瞬時有功功率進行累計,求得與瞬時有功功率成正比的高頻頻率并經CF輸出,用于校準或送微控制器累加計數(shù),實現(xiàn)對電能的計量。電流通道的PGA的增益受管腳G1、G0控制。 高通濾波器是否接入受管腳AC/DC控制。邏輯高,HPF使

12、能。用來去除電流通道的直流偏移和由此引起的誤差。高通濾波器接入或斷開造成的相移,由相位校正電路校正,使電壓通道和電流通道的相位匹配。如前所述,管腳F1、F2輸出與平均有功功率成正上的電壓有效值具有下列關系:fF1=fF2=8.06U1U2Gf1-4U2REF(1)式中,U1、U2分別為電流通道和電壓通道輸入端的rms差動電壓(V),G為電流通道的增益,選擇方法見表1;UREF為基準電壓值(V);f1-4為以S1、S0邏輯輸入選擇的頻率(Hz),選擇方法見表2。表2f1-4等選擇表表2第7列是與兩個通道都輸入最大電壓所對應的最高輸出頻率(Hz)??紤]到實際電網電壓存在波動和負載電流可能超載,設計

13、電能表時,兩個模擬通道的輸入電壓一般都留有足夠的超量程余地。比如,取允許的最大值的一半。表2第5列是用管腳SCF、S1、S0邏輯輸入選擇的轉換系數(shù),CF腳輸出的頻率為fCF=KfF1(2)由表2知,CF端輸出的頻率能高達fF1的2048倍。(5)設計原理圖:單片機實際原理圖:八段譯碼顯示: 74HC164共六個E2PROM 24C16芯片AD7755電能脈沖發(fā)生器電源兩組穩(wěn)壓電源C8051F360與24C16接線部分2、 軟件設計:(以100個/度為例)(1) 程序框圖:開始開辟空間,單片機初始化,中斷初始化清零鍵并行輸入165,R1指向HOUSE0首地址上升沿輸入165,DATE165輸出D

14、ATE165=1?否R1指向的連續(xù)3個空間清零寫入對應的24C16內R1不變R1加3是R1指向HOUSEEND(48H)?否是讀P2口的脈沖、計數(shù)并寫入對應空間主程序 中斷服務程序INTDELAY保護A和R1中斷重新初始化R2減至0?是R2=#TIME將要顯示的數(shù)據(jù)傳至顯示緩沖區(qū)顯示緩沖區(qū)數(shù)據(jù)送顯示INC R4R4=8?R4=0是重開中斷A、R1出棧否否RETI讀脈沖子程序 READPULSE讀P2并保存與ORIGIONSTATE異或 R1指向 HOUSE0首地址右移一位C=1?INC R1,INC R1 R1指向的數(shù)據(jù)存入24C16R1=200?R1清零,R1指向的數(shù)據(jù)存入24C16 INC

15、 R1,INC R1R1指向的數(shù)據(jù)存入24C16R1=100?R1清零,R1指向的數(shù)據(jù)存入24C16 INC R1,INC R1 R1指向的數(shù)據(jù)存入24C16R1指向下一通道首地址R1指向HOUSEEND(48H)?A出棧, ORIGIONSTATE=ARET否是否是否是是否(2) 設計程序$NOMOD51$include (c8051f360.inc)/用戶空間:8*3=24字節(jié),30h47hHOUSE0 EQU 30HHOUSEEND EQU 48H/6字節(jié)的顯示緩沖區(qū)50H55HDISPLAYREGION1 EQU 50HDISPLAYREGION2 EQU 51HDISPLAYREGI

16、ON3 EQU 52HDISPLAYREGION4 EQU 53HDISPLAYREGION5 EQU 54HDISPLAYREGION6 EQU 55H/P2口的原狀態(tài)ORIGIONSTATE EQU 56H/用于顯示讀開關的特殊位CLKDISPLAY EQU P1.1DATEDISPLAY EQU P1.0PL EQU P1.2DATE165 EQU P1.4CLK165 EQU P1.5SCL EQU P1.6SDA EQU P1.3/延時計數(shù)TIM EQU 05H;* ORG 0000HLJMP MAIN ORG 000BHLJMP INTDELAYORG 0100HMAIN: LCA

17、LL CHUSHI /調用初始化程序 MOV SP,#80H MOV ORIGIONSTATE,#0 MOV R4,#0 / R4存用戶號 MOV R2,#TIM / R2用于延時計數(shù) SETB ET0 SETB EA MOV TMOD,#11H MOV TH0,#00H MOV TL0,#00H /中斷初始化,T0,T1全為方式1 LCALL READ /從24C16內讀用戶空間的數(shù)據(jù)存入對應空間SETB TR0 /*主程序循環(huán)處*MAIN0:CLR PL /串行讀入開關狀態(tài) NOP NOP SETB PLMOV R1,#HOUSE0 /R1指向house0首地址CLRING:CLR CLK

18、165 SETB CLK165JB DATE165,NOTCLR /判斷開關狀態(tài)LCALL CLR24C16 /將R1指向的連續(xù)3個空間清零并寫入對應的/24C16內R1不變NOTCLR:INC R1INC R1INC R1CJNE R1,#HOUSEEND,CLRING /循環(huán)8次,每次進三字節(jié) LCALL READPULSE /讀脈沖程序并計數(shù) SJMP MAIN0/*T0的中斷服務程序INTDELAY*INTDELAY: PUSH ACC MOV A,R1 PUSH ACC /保護主程序的A和R1 CLR TR0 MOV TH0,#00H MOV TL0,#00H DJNZ R2,NOC

19、HANGE /R2減至0后才調用傳送,調用顯示 MOV R2,#TIM LCALL DELIVER /將第R4戶的數(shù)據(jù)傳到顯示緩沖區(qū) LCALL DISPLAY /將顯示緩沖區(qū)數(shù)據(jù)送顯示 INC R4 /戶號加1 CJNE R4,#8,NOCHANGE MOV R4,#0 /顯示到第7戶后清零NOCHANGE: SETB TR0 POP ACC MOV R1,A POP ACC RETI/*初始化子程序*CHUSHI: MOV SFRPAGE,#0FH MOV P1MDIN,#0FFH ;數(shù)字輸入MOV P1MDOUT,#0EFH ;推挽輸出 MOV XBR1,#40H ;交叉開關使能 MOV

20、 PCA0MD,#00H ;關閉看門狗 MOV PSCTL,#13HMOV OSCICN,#83H ;內部振蕩器允許,不分頻 MOV DPTR,#tab MOV R1,#HOUSE0 /將用戶空間全部清零ZERO:MOV R1,#0INC R1CJNE R1,#48H,ZERORET/*讀脈沖子程序*/用R1指向內存地址用于進位和加1 READPULSE:MOV A,P2 PUSH ACC /保護P2口狀態(tài) XRL A,ORIGIONSTATE /與原狀態(tài)異或,有邊沿為1 MOV R1,#HOUSE0 LOOP: RRC A /依次右移 JNC NOPULSE INC R1 /有脈沖加1 LC

21、ALL CONSERVR /將R1指向的數(shù)據(jù)存入24C16內的對應的空間CJNE R1,#200,NOPULSE /每個脈沖讀2次小數(shù)位滿200進位清零 MOV R1,#0 LCALL CONSERVR INC R1 INC R1 LCALL CONSERVR CJNE R1,#100,DEC1/個位、十位滿百進1清零 MOV R1,#0 LCALL CONSERVR INC R1 INC R1 LCALL CONSERVR SJMP DEC2NOPULSE: INC R1DEC1: INC R1 DEC2:INC R1 CJNE R1,#HOUSEEND,LOOP POP ACCMOV OR

22、IGIONSTATE,A RET/*傳送至顯示緩沖區(qū)子程序*/入口參數(shù)為R4=通道號DELIVER:MOV DISPLAYREGION6,R4 /戶號 INC DISPLAYREGION6 MOV A,R4 MOV B,#3MUL ABMOV B,#HOUSE0 ADD A,BMOV R0,A /根據(jù)戶號算出該用戶的首地址MOV A,R0MOV B,#2DIV AB /小數(shù)位除2MOV B,#10 DIV ABMOV DISPLAYREGION1,B /百分位MOV DISPLAYREGION2,A /十分位INC R0 MOV A,R0MOV B,#100DIV AB MOV A,B MOV

23、 B,#10DIV AB MOV DISPLAYREGION3,B /個位 MOV DISPLAYREGION4,A /十位 INC R0 MOV DISPLAYREGION5,R0 /百位RET;*顯示子程序*/無入口參數(shù)DISPLAY:MOV DPTR,#TAB MOV A,DISPLAYREGION1 MOVC A,A+DPTR LCALL DATEOUT /將A串行輸出程序 MOV A,DISPLAYREGION2 MOVC A,A+DPTR LCALL DATEOUT MOV DPTR,#TAB2 /個位帶小數(shù)MOV A,DISPLAYREGION3 MOVC A,A+DPTR LC

24、ALL DATEOUTMOV DPTR,#TAB MOV A,DISPLAYREGION4 MOVC A,A+DPTR LCALL DATEOUT MOV A,DISPLAYREGION5 MOVC A,A+DPTR LCALL DATEOUT MOV DPTR,#TAB2 MOV A,DISPLAYREGION6 MOVC A,A+DPTR LCALL DATEOUT LCALL DATEOUT LCALL DATEOUTRET/*數(shù)據(jù)輸出子程序DATEOUT*DATEOUT: MOV R3,#8LOOOOOOP:RLC A CLR CLKDISPLAY MOV DATEDISPLAY,C

25、SETB CLKDISPLAY DJNZ R3,LOOOOOOPRET/*掉電保護數(shù)據(jù)子程序*/入口參數(shù):R1=需保護數(shù)據(jù)所在地址CONSERVR:PUSH ACCMOV A,R1MOV R7,AMOV A,R1MOV R6,ALCALL I2C_WR/入口參數(shù)R6=數(shù)據(jù);R7=EEPROM地址 POP ACCRET /*24C16連續(xù)3字節(jié)清零程序*/入口參數(shù):R1=需清零空間的首地址CLR24C16: MOV R1,#0 LCALL CONSERVR INC R1 MOV R1,#0 LCALL CONSERVR INC R1 MOV R1,#0 LCALL CONSERVR DEC R1

26、 DEC R1 /保證R1不變 RET/*上電讀24C16子程序*READ: MOV R1,#HOUSE0READING:MOV A,R1 MOV R7,A LCALL I2C_RD /入口參數(shù):R7=24C16地址 出口參數(shù):R7=數(shù)據(jù) MOV A,R7 MOV R1,A INC R1 CJNE R1,#HOUSEEND,READING RET/*寫入24C16*/入口參數(shù):R6=數(shù)據(jù);R7=EEPROM地址I2C_WR:LCALL STAR ;發(fā)起始條件 MOV A,#0A0H ;發(fā)器件地址 LCALL SENDI2C JB F0,RETURN1 ;數(shù)據(jù)接收錯誤 MOV A,R7 ;發(fā)字節(jié)

27、地址 LCALL SENDI2C JB F0,RETURN1 ;接收數(shù)據(jù)錯誤 MOV A,R6 LCALL SENDI2C ;發(fā)一個數(shù)據(jù) JB F0,RETURN1 ;接收數(shù)據(jù)錯誤 LCALL STP LCALL LDELAY10MS ;寫周期延時約10msRETURN1: RET/*讀24C16*/入口參數(shù):R7=EEPROM地址/出口參數(shù):R7=數(shù)據(jù)I2C_RD: LCALL STAR ;發(fā)送起始條件MOV A,#0A0H ;發(fā)器件地址LCALL SENDI2CJB F0,RETURN ;接收數(shù)據(jù)錯誤MOV A,R7 ;發(fā)地址LCALL SENDI2CJB F0,RETURNLCALL S

28、TAR ;重新發(fā)送起始標志MOV A,#0A1H ;發(fā)讀操作命令LCALL SENDI2CJB F0,RETURNSETB F0LCALL LOADI2CMOV R7,ALCALL STP ;發(fā)終止條件RETURN: RET/I2C啟動條件/STAR:SETB SDANOPSETB SCLNOPNOPNOPNOPCLR SDANOPNOPNOPNOPCLR SCLRET/I2C終止條件/STP: CLR SDANOPSETB SCLNOPNOPNOPNOPSETB SDANOPNOPNOPNOPRET/LOADI2C/LOADI2C: SETB SDA ;置數(shù)據(jù)線為輸入方式MOV R5,#08HRCV: NOPCLR SCL ;置低準備接收數(shù)據(jù)位NOPNOPNOPNOPNOPSETB SCL ;置高使數(shù)據(jù)線上數(shù)據(jù)有效NOPNOPCLR CJNB SDA,RCV0 ;讀數(shù)據(jù)位,若為0則置0SETB C ;讀數(shù)據(jù)位,若為1則置1RCV0: RLC A ;接收數(shù)據(jù)位放入ACC中NOPNOPDJNZ R5,RCV ;沒接收完繼續(xù)CLR SCL ;接收完置低發(fā)應

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論