

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 多用戶電子式電能表的設(shè)計和調(diào)試</p><p> 課程名稱:單片機在電力系統(tǒng)的應(yīng)用</p><p> 課題名稱:多用戶電子式電能表的設(shè)計和調(diào)試</p><p> 班 級:自動化 </p><p> 學(xué) 號:XXXXXX</p><p><b> 前 言&l
2、t;/b></p><p> 多用戶電子式單相電能表采用單片機作為中央處理器,每塊電能表可對多達24戶的用電情況進行集中檢測、循環(huán)顯示。各戶的用電量可以就地讀取。多用戶電子式電能表采用了“分戶用電、集中檢測”的方式,與傳統(tǒng)感應(yīng)式電能表相比,有效地提高了電能計量的準確性,而且整機體積小、質(zhì)量輕、安裝方便。</p><p> 在多用戶電子式電能表的前面板上有6位LED顯示器,前兩位為
3、分戶號,后4位為分戶用電量,所顯示的用電量與分戶號相對應(yīng),分戶循環(huán)顯示,每3s切換一戶。</p><p> 此外,電能表還必須有斷電保護功能,確保用戶在斷電后能夠保存之前的用電數(shù)據(jù),在恢復(fù)供電時能夠繼續(xù)按照斷電前得數(shù)據(jù)開始計數(shù)。</p><p> 同時,該類電能表還必須有清零功能,每個控制單元上都對每戶設(shè)置了相應(yīng)的清零開關(guān),當相應(yīng)的用戶開關(guān)按下時,該用戶的用電量亦隨之清零。
4、 </p><p><b> 目錄</b></p><p> 一 設(shè)計任務(wù)及要求----------------------------------------------------4</p><p> 二 設(shè)計原理分析---------------------------------------------------
5、----4</p><p> 三 硬件電路設(shè)計-------------------------------------------------------4</p><p> 3.1 單片機電路板設(shè)計-----------------------------------------------------4</p><p> 3.2 +5V穩(wěn)壓電源----
6、------------------------------------------------------7</p><p> 3.3 光電隔離電路----------------------------------------------------------7</p><p> 3.4 AD7755相關(guān)電路------------------------------------
7、-------------------7</p><p> 3.5 參數(shù)設(shè)定----------------------------------------------------------------11</p><p> 3.6 用戶清零電路的設(shè)計-----------------------------------------------------12</p>
8、<p> 四 軟件設(shè)計--------------------------------------------------------------12</p><p> 4.1 流程圖-------------------------------------------------------------------12</p><p> 4.2 程序內(nèi)容---------
9、-------------------------------------------------------18</p><p> 五 設(shè)計總結(jié)--------------------------------------------------------------26</p><p> 六 參考資料-----------------------------------------
10、---------------------21</p><p><b> 一 設(shè)計任務(wù)及要求</b></p><p> 設(shè)計任務(wù):多用戶電子式單相電能表設(shè)計與調(diào)試</p><p> 設(shè)計目的: 了解單片機在電力系統(tǒng)中的應(yīng)用,在全面掌握單片機的功能的基礎(chǔ)上,初步接觸它在本專業(yè)的應(yīng)用范圍。要求獨立完成,培養(yǎng)我們獨立自主的習(xí)慣。</p&g
11、t;<p> 設(shè)計內(nèi)容:硬件設(shè)計與軟件設(shè)計。硬件設(shè)計包括:C8051F360單片機整體電路設(shè)計、+5V穩(wěn)壓電源電路設(shè)計、光電隔離電路設(shè)計、基于AD7755的電能脈沖發(fā)生器電路設(shè)計;軟件設(shè)計包括:用C8051F360單片機及編寫具有掉電保存功能和清零功能的用戶電量顯示程序。</p><p> 設(shè)計要求:①AD7755電能脈沖發(fā)生器電路僅作電路硬件設(shè)計,其電能脈沖由C8051F360單片機P2口所接
12、撥碼開關(guān)產(chǎn)生的脈沖模擬。②用戶電量顯示要求精確到小數(shù)點后3位③1000個電量脈沖為1度電④每個用戶顯示時間為3S左右⑤為防止突然停電而使用戶電量數(shù)據(jù)丟失,要求能將電量數(shù)據(jù)保存,需要設(shè)計單片機24C16模塊,使其具有掉電保存功能。⑥為了能夠方便記取各個用戶電量,需要為每一戶設(shè)計清零程序。</p><p><b> 二 設(shè)計原理分析</b></p><p> 電子式電
13、能表是在數(shù)字功率表的基礎(chǔ)上發(fā)展起來的,采用乘法器實現(xiàn)對電功率的測量,其工作原理框圖如圖3-10所示。被測量的高電壓u、大電流i經(jīng)電壓變換器和電流變換器轉(zhuǎn)換后送至乘法器M,乘法器M完成電壓和電流瞬時值相乘,輸出一個與一段時間內(nèi)的平均功率成正比的直流電壓U,然后再利用電壓/頻率轉(zhuǎn)換器,U被轉(zhuǎn)換成相應(yīng)的脈沖頻率f,將該頻率分頻,并通過一段時間內(nèi)計數(shù)器的計數(shù),顯示出相應(yīng)的電能。</p><p> 圖1 電子式電能表工
14、作原理框圖</p><p><b> 三 硬件電路設(shè)計</b></p><p> 3.1 單片機電路板設(shè)計</p><p> 本設(shè)計采用的是C8051F360單片機為核心的電路板。C8051F360單片機整體電路板包含:C8051F360單片機、LED/FMQ報警、RS-232通信、USB接口、電源接口、LM336-2.5、下載/復(fù)位、外
15、接器件、5V--3.3V、兩路AD輸入、信號輸入、PCF8563、24C16、74HC165、74HC164顯示等模塊。本次設(shè)計中主要用到的部分有C8051F360單片機、PCF8563、24C16和74HC164顯示等模塊。</p><p> C8051F360單片機為主要部件,它具有片內(nèi)上電復(fù)位電路、VDD監(jiān)視器、看門狗定時器和時鐘振蕩器器件,是真正能獨立工作的片上系統(tǒng)。FLASH 存儲器還具有在系統(tǒng)重新編
16、程能力,可用于非易失性數(shù)據(jù)存儲,并允許現(xiàn)場更新8051 固件。用戶軟件對所有外設(shè)具有完全的控制,可以關(guān)斷任何一個或所有外設(shè)以節(jié)省功耗。其P1.0,P1.1口產(chǎn)生的脈沖向74HC164顯示輸送數(shù)據(jù),使其顯示相關(guān)信息,P2口接撥碼開關(guān),模擬AD7755電量脈沖,PCF8563、24C16部件實時存儲用戶電量信息,并在掉電后保存,單片機上電復(fù)位后能夠從中讀取數(shù)據(jù)。</p><p> FM24C16是用先進的鐵電技術(shù)制
17、造的16K位的非易失性的記憶體鐵電隨機存儲器FRAM具有非易失性并且可以象RAM一樣快速讀寫數(shù)據(jù)在掉電可以保存10年且比EEPROM或其他非易失性存儲器可靠性更高系統(tǒng)更簡單不象EEPROM FM24C16以總線速度進行寫操作無延時數(shù)據(jù)送到FM24C16直接寫到具體的單元地址下可以立即執(zhí)行FM24C16可以承受超過100億次的讀寫或者是比EEPROM高一萬倍的寫操作FM24C16的寫能力使得它在需要對非易失性記憶體快速讀寫的狀況下非常理
18、想舉例說數(shù)據(jù)采集系統(tǒng)中對寫入數(shù)據(jù)的頻率要求高即速度要求非??焓褂肊EPROM可能丟失數(shù)據(jù)這種優(yōu)勢合并使得系統(tǒng)可以更可靠的實時采集數(shù)據(jù)FM24C16為使用串EEPROM的用戶提供了便利它在硬件上可以直接替換EEPROM。以下是電路板的相關(guān)電路圖。</p><p> 圖2 74HC164顯示電路</p><p> 圖3 24C16與C8051F360連接電路</p><
19、;p> 3.2 +5V穩(wěn)壓電源</p><p> 電源是電能表設(shè)計的重要部分,其設(shè)計的好壞對整個系統(tǒng)的性能有較大影響。本設(shè)計使用的穩(wěn)壓電源是由MC7805實現(xiàn)的,輸入電壓220V,輸出電壓+5V。</p><p> 集成三端穩(wěn)壓器穩(wěn)壓精度高、工作穩(wěn)定可靠、外圍電路簡單、容易設(shè)計和制作、體積小、重量輕、成本低、維修簡單。7805集成三端穩(wěn)壓器的典型應(yīng)用電路如圖2所示,這是一個輸出
20、+5 V直流電壓的穩(wěn)壓電路。IC采用集成三端穩(wěn)壓器7805,C1、C 2分別為輸入端和輸出端濾波電容,RL為負載電阻。電路如下圖。</p><p> 圖5 +5V穩(wěn)壓電源電路圖</p><p> 3.3 光電隔離電路</p><p> 在實際應(yīng)用中,許多電路鏈接之間需要非直接的連接,從而在提供數(shù)據(jù)的同時避免來自系統(tǒng)某一部分的危險電壓或電流對另一部分造成破壞,造
21、成這種破壞的可能是電源質(zhì)量低劣、接地故障等各種故障。電路隔離的主要目的是通過隔離元件把干擾的路徑切斷,從而達到抑制干擾的目的。</p><p> 我們選用光電隔離法,光電隔離元件里面包含兩個基本元件:光發(fā)射元件和光接收元件,因光電隔離元件中的光發(fā)射元件和光接收元件中間是以光的形式相互聯(lián)系的,在電氣上沒有直接相連,從而達到在電氣上的隔離作用。</p><p> 光電耦合的主要優(yōu)點是:信號
22、單向傳輸,輸入端與輸出端完全實現(xiàn)了電氣隔離,抗干擾能力強,工作穩(wěn)定。光電耦合電路如下圖。 </p><p> 圖6 光電隔離原理電路圖</p><p> 3.4 AD7755相關(guān)電路</p><p> AD7755是AD公司推出的脈沖輸出的一種高準確度電能測量芯片,AD7755在低頻輸出端提供平均功率信息,在高頻輸出端輸出頻率正比有效功率的脈沖,AD7755還
23、有自校準功能。AD7755內(nèi)部包含一個對AVdd電源引腳的監(jiān)控電路。在AVdd上升到4V之前,AD7755一直保持在復(fù)位狀態(tài)。當AVdd降到4V以下,AD7755也被復(fù)位,此時F1、F2和CF都沒有輸出。下圖是AD7755的相關(guān)電路圖。</p><p> 圖7 AD7755功能框圖</p><p> 圖8 AD7755性能測試電路</p><p><b&g
24、t; 電流采樣電路:</b></p><p> 圖2.6 電流采樣電路</p><p> 使用分流器的電流采樣電路如圖2.6所示,其中F1為分流器,R1、R2為采樣電阻,C1、C2為采樣電容,他們?yōu)殡娏鞑蓸油ǖ捞峁┎蓸与妷盒盘?,采樣電壓信號的大小由分流器的阻值和流過其上的電流決定。電流采樣通道采用完全差動輸入,V1P為正輸入端,V1N為負輸入端。電流采樣通道最大差動峰值電
25、壓應(yīng)小于470mV,電流采樣通道有一個PGA,其增益可由ADE7755的G1和GO來選擇,見表1: </p><p><b> 表1</b></p><p> 當使用分流器采樣時,G1、G0都接高電平,增益選擇16,通過分流器的峰值電壓為±30mV,當設(shè)計電表為5(20)A規(guī)格時,分流器阻值選擇為50
26、0uΩ,當流過分流器的電流為最大電流20A時,其采樣電壓為500uΩ×20A=10mV,不超過峰值電壓半滿度值,這樣考慮能允許對電流信號和高峰值因數(shù)進行累計。</p><p> 當使用互感器采樣時,其電路如圖2.7所示:</p><p> 圖2.7 互感器采樣電路</p><p> 使用互感器采樣時,G1、G0都接低電平,增益選擇1,電流采樣通道最大
27、差動峰值電壓為±470mV,其差動信號由互感器的二次側(cè)電流流過電阻R30和R31產(chǎn)生,互感器二次側(cè)額定電流為5mA,當過載4倍時,二次側(cè)電流為20mA,其流過電阻R30和R31產(chǎn)生的差動信號為96mV,遠小于峰值電壓半滿度值(235 mV)。</p><p> R1C1和R2C2組成兩個低通濾波器,衰減掉那些無用的高頻分量,從而防止有用頻帶內(nèi)的失真。R1、R2、C1、C2阻值、容值的選取對電表的性能有
28、很大的影響,因此取值為R1= R2=300歐,C1=C2=27nF。</p><p><b> 電壓采樣電路:</b></p><p> 圖2.8 電壓采樣電路</p><p> 電壓輸入通道(V2N,V2P)也為差分電路,V2N引腳連接到電阻分壓電路的分壓點上,V2P接地。電壓輸入通道的采樣信號是通過衰減線電壓得到的,其中R6至R15為
29、校驗衰減網(wǎng)絡(luò),通過短接跳線J1至J9可將采樣信號調(diào)節(jié)到需要的采樣值上,我們設(shè)計的電能表基本電流時電壓采樣值為174.2 mV,為了準許分流器的容差和片內(nèi)基準源8%的誤差,衰減校驗網(wǎng)絡(luò)應(yīng)該允許至少30%的檢驗范圍,根據(jù)參數(shù),其調(diào)節(jié)范圍為169.8 mV –250 mV,完全滿足了調(diào)節(jié)的需要。這個衰減網(wǎng)絡(luò)的-3dB頻率是由 R4和C3決定的,R19、R23、R24確保了這一點,即使全部跳線都接通,R19、R23、R24的電阻值仍遠遠大于R4
30、,R4和C3的選取要和電流采樣通道的R1C1匹配,這樣才能保證兩個通道的相位進行恰當?shù)钠ヅ洌蛳辔皇д{(diào)帶來的誤差影響。</p><p><b> 輕載調(diào)節(jié)電路</b></p><p> 圖2.9輕載調(diào)節(jié)電路</p><p> 輕載調(diào)節(jié)電路如圖2.9所示,其原理是用電壓采樣處的電壓值再經(jīng)分壓后加到電流采樣的正或負端來增大或減小電流采樣,
31、達到調(diào)節(jié)的目的。當短節(jié)S2到I+或I-時,附加到分流器端的電壓值為:</p><p> Vq=R1×Vx/ (R20+R1)</p><p> R1、Vx已知,可通過改變R20的值來改變需要補償?shù)碾妷褐?。根?jù)計算當R5為200k時,Vq約為0.0003mV。在輕載時電流采樣值Vi=2.5mV×0.05=0.125mV。輕載誤差改變量為0.0003/0.125=0.0
32、024即0.24%,在校驗臺上表現(xiàn)為輕載誤差增大或減小0.24。 </p><p> 圖9 AD7755引腳排列圖</p><p><b> 3.5 參數(shù)設(shè)定</b></p><p> +5V穩(wěn)壓電源的參數(shù)有:變壓器副邊繞組的交流電壓有效值,整流元件的參數(shù),電容C1、C2的數(shù)值以及集成三端穩(wěn)壓器的選用。以下即參數(shù)計算:
33、</p><p> 電容C1,可用下式進行計算:</p><p> 式中:10ms為交流電網(wǎng)電壓周期的一半。取Vimin=7.3V。因為在使用三端穩(wěn)壓器時,為了保證穩(wěn)壓性能,輸入端和輸出端間電位差至少應(yīng)在2 V以上,一般對輸出電壓不大于18V的穩(wěn)壓器,輸入電壓應(yīng)小于35V, 按輸出電流應(yīng)有10%的余量,取通過計算,得:C1=3014uF。</p><p>
34、變壓器副邊繞組的交流電壓有效值,可用下式進行計算:</p><p> 通過計算,得:V2=9.9V。為了留有一定裕量,取V2=10.5V。</p><p> 橋式整流電路中,每個整流二極管在交流電網(wǎng)電壓最高時承受的最大反向峰值電壓為</p><p> 為了安全,整流管的反向耐壓應(yīng)當比上述值大50%以上,因此選擇整流管時,其反向耐壓應(yīng)按下</p>
35、<p><b> 式考慮:</b></p><p> 橋式整流電路中,每個整流二極管的正向電流平均值是輸出電流的一半,其最大值是</p><p> 由于在接通電源瞬間有相當大的沖擊電流( 即充電電流) 通過整流管,因此,整流管的參數(shù)( 正向電流平均值)應(yīng)比上述值大0.5~2倍。若按比上述值大0.8倍考慮,則根據(jù)上述計算,可選用1A/25V或1A/50V
36、的橋堆。</p><p> (4)變壓器副邊繞組電流的有效值Iac要比輸出電流Iomax大,這里我們?nèi)?lt;/p><p> 因此,變壓器副邊繞組導(dǎo)線的粗細應(yīng)按額定電流(交流有效值)為2 A選用。</p><p> ?。?)電容C 2的作用是減小穩(wěn)壓電源輸出端由輸入電源引入的低頻干擾,其數(shù)值在100uF左右。</p><p> 3.6 用戶
37、清零電路的設(shè)計</p><p> 如圖,即為電能表的用戶清零電路,采用74HC165芯片作為清零信號的接收和發(fā)出的端口。P1.5接芯片的兩個時鐘脈沖信號端,同時P1.2也要有低電平信號才能使165芯片在P1.4口輸出相應(yīng)的信號。 </p><p><b> 四 軟件設(shè)計</b></p><p><b> 4.1 流程圖設(shè)計&l
38、t;/b></p><p> 4.1.1主函數(shù)流程圖</p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p
39、><p><b> N</b></p><p><b> N</b></p><p><b> Y</b></p><p> 4.1.2 AT24C16讀寫函數(shù)流程圖</p><p> 4.1.3 用戶掃描函數(shù)流程圖</p><
40、;p> 4.1.4數(shù)碼管顯示函數(shù)流程圖</p><p><b> 4.2 程序內(nèi)容</b></p><p><b> $NOMOD51</b></p><p> $include (c8051f360.inc)</p><p> CLKLED EQU P1.1;數(shù)碼管164時鐘
41、</p><p> LED EQU P1.0;數(shù)碼管數(shù)據(jù)線</p><p> SDA EQU P1.3</p><p> SCL EQU P1.6</p><p><b> ORG 0000H</b></p><p> LJMP MAIN </p>&l
42、t;p><b> ORG 000BH</b></p><p> LJMP T0_INT</p><p> MAIN: LCALL CHUSHI ;調(diào)用F360初始化程序</p><p> //定義30H-3FH為脈沖存儲區(qū)域</p><p> MOV R7,#10H ;脈沖個數(shù)存儲區(qū)域清零
43、</p><p> MOV R1,#30H</p><p> MC: MOV @R1,#00H </p><p><b> INC R1</b></p><p> DJNZ R7,MC</p><p> LCALL READ ;讀24C16</p>
44、;<p> MOV 20H,#1 ;用戶名</p><p> MOV 21H,#0 ;定時2S的計數(shù)單元</p><p> MOV 22H,P2 ;暫存P2口的狀態(tài)</p><p> MOV TMOD,#01H</p><p> MOV TH0,#0D8H ;定時50ms采樣周期</
45、p><p> MOV TL0,#0F0H</p><p><b> SETB ET0</b></p><p><b> SETB EA</b></p><p><b> SETB TR0</b></p><p><b> SJMP $&l
46、t;/b></p><p><b> //進入中斷子程序</b></p><p> T0_INT: MOV TH0,#0D8H ;進入中斷采樣</p><p> MOV TL0,#0F0H</p><p> MOV R1,#3FH ;第八戶</p><p&g
47、t; MOV R6,#00H</p><p><b> MOV A,P2</b></p><p><b> XRL A,22H</b></p><p> MOV 22H,P2</p><p> AA: JNB ACC.7,AA1 ;判斷某戶是否有脈沖</p>
48、<p> LCALL COUNT ;有脈沖,則計數(shù)</p><p> AA1: INC R6</p><p> CJNE R6,#08H,AA2 ;判斷8戶是否均采樣完畢</p><p><b> SJMP LCAL</b></p><p> AA2: DE
49、C R1 ;進入下一戶的存儲單元</p><p><b> DEC R1</b></p><p> RL A ;左移一位</p><p><b> SJMP AA</b></p><p> LCAL: LCALL SCAN
50、 ;判斷是否有清零信號</p><p> LOO:INC 21H </p><p> MOV A,21H</p><p> CJNE A,#28H,MM ;定時2S,順序執(zhí)行顯示</p><p> LCALL WRITE ;調(diào)用寫入程序</p>&l
51、t;p> MOV 21H,#0</p><p> MOV A,20H</p><p><b> DEC A</b></p><p> RL A ;左移,即乘2</p><p> ADD A,#30H ;將存儲單元與用戶聯(lián)系并對應(yīng)</p><
52、p><b> MOV R1,A</b></p><p> LCALL DIP ;調(diào)用顯示程序</p><p> INC 20H ;用戶名加1</p><p><b> MOV A,20H</b></p><p> CJNE A
53、,#09H,MM </p><p> MOV 20H,#1</p><p> MM: RETI</p><p> //----------初始化子程序-------------------</p><p> chushi: MOV SFRPAGE,#0FH </p><p> MOV P
54、1MDIN,#0FFH ;數(shù)字輸入</p><p> MOV P1MDOUT,#0EFH ;推挽輸出 </p><p> MOV XBR1,#40H ;交叉開關(guān)使能 </p><p> MOV PCA0MD,#00H ;關(guān)閉看門狗 </p&g
55、t;<p> MOV PSCTL,#13H</p><p> MOV OSCICN,#83H ;內(nèi)部振蕩器允許,不分頻 </p><p> MOV DPTR,#tab </p><p><b> RET</b></p><p> //----------脈沖計數(shù)子程序---
56、----------------</p><p> COUNT: PUSH ACC</p><p><b> CLR C</b></p><p><b> MOV A,@R1</b></p><p><b> ADD A,#1</b></p><p
57、><b> MOV @R1,A</b></p><p><b> DEC R1</b></p><p><b> JNC LL</b></p><p> INC @R1 ;有進位</p><p> LL: INC R1 ;某戶地位地址</p>
58、;<p><b> POP ACC</b></p><p><b> RET</b></p><p> //----------顯示子程序------------------- </p><p> DIP: MOV 51H,20H ;設(shè)51H--56H為數(shù)碼管顯示存儲區(qū)域</p&
59、gt;<p> MOV 52H,#10</p><p> MOV 53H,#0</p><p><b> MOV A,@R1</b></p><p> MOV B,#80H ;設(shè)1000個脈沖為1度電</p><p><b> MUL AB </b>&
60、lt;/p><p><b> MOV 25H,A</b></p><p><b> INC R1</b></p><p><b> MOV A,@R1</b></p><p> MOV B,#02H</p><p><b> DIV AB
61、</b></p><p><b> ADD A,25H</b></p><p> MOV B,#100</p><p><b> DIV AB</b></p><p> MOV 54H,A ;十分位</p><p><b&g
62、t; MOV A,B</b></p><p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p> MOV 55H,A ;百分位</p><p> MOV 56H,B ;千分位
63、</p><p> MOV R0,#56H</p><p><b> MOV R7,#0</b></p><p> RE: CALL dispn</p><p><b> INC R7</b></p><p> DEC R0 &l
64、t;/p><p> CJNE R7,#8,RE</p><p><b> RET</b></p><p> dispn:MOV DPTR,#TAB</p><p><b> MOV A,@R0</b></p><p> PUSH ACC
65、 </p><p> MOVC A,@A+DPTR</p><p> CJNE R0,#53H,NEXT</p><p> ANL A,#0F7H </p><p> NEXT: MOV R4,#08h</p><p> RR1: RRC A</p><p><b>
66、 JC SET1</b></p><p><b> JNC SET0</b></p><p> SET1: CLR CLKLED</p><p><b> SETB LED</b></p><p> SETB CLKLED</p><p>
67、 DJNZ r4,RR1</p><p> JMP RETURN</p><p> SET0: CLR CLKLED</p><p><b> CLR LED</b></p><p> SETB CLKLED</p><p> DJNZ R4,RR1</p>
68、<p> RETURN:POP ACC</p><p><b> RET</b></p><p> //------寫2416程序---</p><p> WRITE :LCALL STR;調(diào)開始子程序</p><p> MOV A,#0A0H;控制字,2416的物理地址和寫控制位</
69、p><p> LCALL I2C_W1W;調(diào)向2416寫一字節(jié)并接收信號子程序</p><p> JB F0,WRITE;若寫失敗,從頭開始</p><p> MOV A,#00H;選擇地址</p><p> LCALL I2C_W1W</p><p> JB F0,WRITE;至此,地址寫完</p>
70、<p> MOV R0,#30H</p><p> MOV R7,#10H</p><p><b> II1:</b></p><p> MOV A,@R0;將30h-3FH的內(nèi)容寫到2416中</p><p> LCALL I2C_W1W</p><p> JB F0,
71、WRITE</p><p><b> INC R0</b></p><p> DJNZ R7,II1</p><p> LCALL STP;調(diào)停止子程</p><p> LCALL DELAY</p><p><b> RET</b></p><
72、p> //------讀2416程序---</p><p><b> READ:</b></p><p><b> LCALL STR</b></p><p> MOV A,#0A0H;控制字,2416的物理地址和寫控制位</p><p> LCALL I2C_W1W;調(diào)向2416寫
73、一字節(jié)并接收信號子程序</p><p> JB F0,READ;若寫失敗,從頭開始</p><p> MOV A,#00H;選擇地址</p><p> LCALL I2C_W1W</p><p> JB F0,READ;至此,地址寫完</p><p><b> lcall STR</b>
74、</p><p> MOV A,#0A1H;控制字,2416的物理地址和讀操作位</p><p> LCALL I2C_W1W</p><p> JB F0,READ</p><p> MOV R0,#30H</p><p> MOV R7,#16</p><p> JJ3: L
75、CALL I2C_R1W;調(diào)用從2416中讀1字節(jié)子程序</p><p> MOV @R0,A;將從2416中讀出的內(nèi)容存儲到30h-3Fh中</p><p><b> INC R0</b></p><p> DJNZ R7,JJ3</p><p><b> SETB F0</b></
76、p><p> LCALL I2C_R1W</p><p><b> LCALL STP</b></p><p><b> RET </b></p><p> //--------啟動2416子程序----</p><p> STR:SETB SDA</p>
77、<p><b> NOP</b></p><p><b> SETB SCL</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b>&
78、lt;/p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> CLR SDA</b></p><p><b> NOP</b></p><p><b> NOP&l
79、t;/b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> CLR SCL</b></p><p><b&g
80、t; RET</b></p><p> //--------停止2416子程序----</p><p> STP:CLR SDA</p><p><b> NOP</b></p><p><b> SETB SCL</b></p><p><b&g
81、t; NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p>&l
82、t;b> SETB SDA</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p>&
83、lt;p><b> NOP</b></p><p><b> RET</b></p><p> //--------向2416中寫一字節(jié)并接收2416返回的信號-------</p><p> I2C_W1W:MOV R5,#8</p><p><b> CLR SCL&l
84、t;/b></p><p> AR_LP1: NOP</p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b&g
85、t;</p><p><b> RLC A</b></p><p><b> MOV SDA,C</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b>
86、 SETB SCL</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p>
87、;<b> NOP</b></p><p><b> CLR SCL</b></p><p> DJNZ R5,AR_LP1</p><p><b> NOP</b></p><p><b> NOP</b></p><p&g
88、t;<b> SETB SDA</b></p><p><b> NOP </b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> SETB SCL</b><
89、;/p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> CLR F0</
90、b></p><p> JNB SDA,ACKEND</p><p><b> SETB F0</b></p><p> ACKEND:NOP</p><p><b> CLR SCL</b></p><p><b> NOP</b>&l
91、t;/p><p><b> NOP</b></p><p><b> RET </b></p><p> //------從2416中讀出1字節(jié),并發(fā)送應(yīng)答或非應(yīng)答信號</p><p> I2C_R1W:MOV R5,#08H</p><p> RCV: SETB
92、 SDA</p><p><b> NOP</b></p><p><b> CLR SCL</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b>
93、NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> SETB SCL</b></p><p><b> NOP</b></p><p>&
94、lt;b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> CLR C</b></p><
95、;p> JNB SDA,RCV0</p><p><b> SETB C</b></p><p> RCV0: RLC A</p><p><b> NOP</b></p><p><b> NOP</b></p><p> DJNZ
96、 R5,RCV</p><p><b> CLR SCL</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b>
97、; NOP</b></p><p><b> CLR SDA</b></p><p> JNB F0,SENDACK</p><p><b> SETB SDA</b></p><p> SENDACK:NOP</p><p><b> NO
98、P</b></p><p><b> SETB SCL</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><
99、;b> NOP</b></p><p><b> NOP</b></p><p><b> CLR SCL</b></p><p><b> CLR F0</b></p><p><b> RET</b></p>
100、<p> //-----------------清零子程序----------------------</p><p> SCAN: MOV R0,#8H</p><p> MOV R1,#30H</p><p><b> CLR P1.2</b></p><p><b> NOP &l
101、t;/b></p><p><b> NOP </b></p><p><b> NOP</b></p><p><b> SETB P1.2</b></p><p> QINGLING:CLR P1.5</p><p><b>
102、 SETB P1.5</b></p><p> JNB P1.4,CC1</p><p><b> SJMP DD1</b></p><p> CC1: MOV @R1,#0</p><p><b> INC R1</b></p><p> M
103、OV @R1,#0</p><p><b> INC R1</b></p><p><b> SJMP DD2</b></p><p> DD1: INC R1</p><p><b> INC R1</b></p><p> DD2:
104、 DJNZ R0,QINGLING</p><p><b> RET</b></p><p> //----------延時子程序------------------------</p><p> DELAY: MOV R3,#30H</p><p> MOV R5,#0FFH</p
105、><p> loop : NOP</p><p> DJNZ R5,LOOP </p><p> DJNZ R3,loop</p><p><b> RET</b></p><p> TAB:DB 88H,0ebh,4ch,49h,2bh,19h,1
106、8h,0cbh,8h,09h,07fh ;0,1,2,3,4,5,6,7,8,9</p><p><b> END</b></p><p><b> 五 設(shè)計總結(jié)</b></p><p> 本次單片機設(shè)計,我收獲很多。比如對單片機在電力系統(tǒng)中的應(yīng)用有了一個更加深入的了解和感悟。同時,也學(xué)到了一些處理問題的新的方法和思
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計報告-多用戶電子式電能表的設(shè)計
- 電能表畢業(yè)設(shè)計--單相電子式電能表的設(shè)計
- 電子式電能表的設(shè)計畢業(yè)設(shè)計
- 多用戶電子式電能表的可靠性及其強化試驗設(shè)計研究.pdf
- 基于arm多用戶智能電能表設(shè)計.
- 多用戶電能表課程設(shè)計報告
- 智能多用戶電能表研究與設(shè)計.pdf
- 課程設(shè)計---多用戶電能表課程設(shè)計報告
- 電子式電能表設(shè)計畢業(yè)論文
- 基于ZigBee技術(shù)的智能多用戶電能表的設(shè)計.pdf
- 電子式電能表芯片的設(shè)計.pdf
- 分布式智能多用戶電能表的設(shè)計與開發(fā).pdf
- 電子式電能表畢業(yè)論文
- 基于DSP處理器的多用戶電能表設(shè)計與開發(fā).pdf
- 多用戶電能表紅外數(shù)據(jù)采集裝置的研究與設(shè)計.pdf
- 基于射頻識別技術(shù)的多用戶電能表研究.pdf
- 單相電子式電能表設(shè)計 論文 定稿
- 電子式電能表建設(shè)方案
- 電子式電能表的結(jié)構(gòu)和工作原理
- 電能表課程設(shè)計--八戶電子單相電能表設(shè)計與調(diào)試
評論
0/150
提交評論