基于單片機單相數(shù)字電功率表的設計_第1頁
基于單片機單相數(shù)字電功率表的設計_第2頁
基于單片機單相數(shù)字電功率表的設計_第3頁
基于單片機單相數(shù)字電功率表的設計_第4頁
基于單片機單相數(shù)字電功率表的設計_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要本文主要講述了基于單片機的單相數(shù)字電功率表的設計。該單相數(shù)字功率表采用AT89C52單片機作為中央處理器,其間通過檢測電壓電流值,采用過零比擬法利用單片機的定時器計算出相位角,最后依據(jù)得出電網(wǎng)功率,最后將檢測到的測量值顯示在液晶顯示器上。另外本文介紹了其相關(guān)硬件電路和軟件程序流程圖,本設計主要包括下面幾方面:交流信號數(shù)據(jù)采樣與處理、模數(shù)轉(zhuǎn)換、單片機應用與編程、液晶顯示。隨著社會的開展,電子產(chǎn)品逐漸朝著數(shù)字化、信息化、自動化方向開展,本設計的數(shù)字功率表也逐漸取代了傳統(tǒng)指針式模擬功率表,其具有抗干擾能力強、精度高、可擴展性強、集成方便等優(yōu)點,具有良好的研究意義。關(guān)鍵詞:單片機數(shù)據(jù)采集過零比擬液晶顯示AbstractThispaperdescribesthedesignofsingle-phasedigitalelectricpowermeterbasedonMCU.ThesinglephasedigitalpowermeterusingAT89C52microcontrollerasthecentralprocessor,whichbydetectingthevoltageandcurrentvalue,thezerocrossingcomparisonmethodtheuseofsingle-chiptimertocalculatethephaseangle,finallybasedontheresultsofthepower,themeasurementofthedetectedvaluedisplayedontheLCDmonitor.Thispaperalsointroducestherelatedhardwarecircuitandsoftwareprogramflowchart,thedesignmainlyincludesthefollowingaspects:samplingandprocessing,analog-to-digitalconversion,applicationandprogramming,MCULCDACsignaldata.Withthedevelopmentofsociety,electronicproductsgraduallytowardsdigitization,informatization,automationdevelopmentdirection,thedesignofthedigitalpowermeterhasgraduallyreplacedthetraditionalanalogpointertypepowermeter,ithasadvantagesofstronganti-interferenceability,highprecision,strongexpansibility,easytobeintegrated,withgoodresearchsignificance.Keywords:microcontrollerdataacquisitionmorethanzeroliquidcrystaldisplay目錄TOC\o"1-3"\h\u906摘要I18258AbstractII14194第1章概述1199951.1設計背景與意義1186121.2研究內(nèi)容1540第2章系統(tǒng)方案設計2275152.1系統(tǒng)根本思想2314932.2系統(tǒng)功能要求210592.3系統(tǒng)框圖3126802.4設計方案及技術(shù)分析3162052.4.1電壓電流采集模塊3172952.4.2信號處理模塊481352.4.3模數(shù)轉(zhuǎn)換模塊4151242.4.4相位角測量模塊422653第3章系統(tǒng)硬件分析5298973.1電路測試系統(tǒng)的分析5151053.1.1單片機最小系統(tǒng)簡介5278913.1.2數(shù)據(jù)存儲器24C16519193.2系統(tǒng)的前向通道811299電壓、電流采樣的前置電路843683.2.2相位角測量的前置電路1068343.2.3模數(shù)轉(zhuǎn)換電路114463.3鍵盤電路15310233.4液晶顯示電路159164第4章系統(tǒng)軟件設計18279314.1Keil編程軟件介紹184924.2程序設計18196244.2.1系統(tǒng)的主程序設計18324064.2.2初始化子程序的設計19269704.2.3測量子程序21170474.2.4液晶顯示子程序26227084.2.5鍵盤掃描子程序289615第5章系統(tǒng)調(diào)試過程30295345.1Proteus軟件應用3017905.2電壓、電流采集模塊調(diào)試30180225.3相位角測量模塊調(diào)試3112885.4液晶顯示模塊調(diào)試33203545.5系統(tǒng)調(diào)試339762第6章總結(jié)3525735參考文獻3730010致謝3826477附錄A:原理圖3919488附錄B:仿真圖4013206附錄C:局部程序41第1章概述1.1設計背景與意義隨著社會的開展,電能在人們的生活中無處不在,并以各種形式影響著人們的生活?,F(xiàn)在人們的根本生存得到保障,對用電設備工作狀態(tài)的了解與要求也越來越高。這些工作狀態(tài)主要包括電網(wǎng)電壓、設備工作電流、工作環(huán)境、壓力、濕度等,只有滿足所有用電設備的最大要求才能確保人身的平安問題。電網(wǎng)電壓與工作電流的穩(wěn)定是設備長期運行的前提,而功率表是電壓電流最終的表達方式,因此,對功率表的測量顯得尤為重要。最近幾年,隨著電子、計算機和半導體三方面技術(shù)的飛速開展,電力系統(tǒng)在測量方面也發(fā)生了巨大的變革。功率表一直以來作為重要的工業(yè)測量儀表,廣泛被應用于電工與電子技術(shù)領域,目前,電能表、電子式功率計采用的工作原理,根本上是依據(jù)功率的定義,采用各種乘法器來實現(xiàn)電壓與電流的乘積,而本設計采用數(shù)值采樣法,對電壓電流信號進行同時采樣,以獲得較高的精度。與傳統(tǒng)方法不同,本設計采用過零比擬法利用單片機的定時器對電壓與電流的的時間差進行確定,從而計算出電壓與電流的相位角,再經(jīng)查表得出功率因數(shù),最后計算出電網(wǎng)功率。家庭用電主要是交流電,所以本設計主要研究的是單相交流數(shù)字電功率表。其采用數(shù)字化測量技術(shù),分開采集電壓電流,再通過軟件編程計算出功率。測量的過程中,通過把連續(xù)的模擬量〔交流輸入的電壓和電流〕轉(zhuǎn)換成不連續(xù)的、離散的數(shù)字形式。傳統(tǒng)的指針式電能表功能單一且精度低,以不能滿足社會的需求,故采用單片機的數(shù)字功率表,精度高、抗干擾能力強、集成方便,還可與PC機進行實時通訊。目前,集成的數(shù)字功率表功能強大、使用方便、體積小,廣泛應用與電子及電工測量、工業(yè)自動化儀表、自動測試系統(tǒng)等智能數(shù)字化領域,在市場上受到很多人的青睞。1.2研究內(nèi)容本設計是針對單相交流數(shù)字電壓表系統(tǒng)的研究,以單片機為核心,設計并制作0-300V交流電壓、0-5A交流電流的采集、電壓超前電流的相位角的硬件系統(tǒng)。在制作硬件系統(tǒng)的平臺上編寫相關(guān)的程序并實現(xiàn)功率的計算與顯示。系統(tǒng)采用51單片機作為核心處理器,通過硬件電路和軟件編程,控制模數(shù)轉(zhuǎn)換器工作和液晶顯示器顯示。本設計主要包括下面幾方面內(nèi)容:交流信號數(shù)據(jù)采樣與處理、模數(shù)轉(zhuǎn)換、單片機應用與編程、液晶顯示。第2章系統(tǒng)方案設計2.1系統(tǒng)根本思想本設計是針對二端網(wǎng)絡〔如圖2-1〕電路中參數(shù)的測量,假設端電流i及端電壓u是在關(guān)聯(lián)的參考下,分別為,,其中是電壓超前于電流的相位角,那么瞬時功率,其中U、I分別是電路的電壓有效值和電流有效值,通過濾除高頻交流分量,就可以得到功率的有效值。圖2-1二端網(wǎng)絡本課題主要研究的電路電網(wǎng)中對正在運行時的參量進行測量、保存、顯示,對于單片機軟件的開發(fā),可以選用C語言或者匯編語言進行編程。本設計中我選擇利用C語言進行編程。本設計根本的設計思路如下:首先,對于電路中的電壓和電流的測量,可以通過系統(tǒng)的前置電路把其轉(zhuǎn)換成可供采樣電壓信號,再通過AD轉(zhuǎn)換送入單片機處理,由軟件讀出,然后進行處理,處理后參數(shù)由液晶顯示器顯示出來。其次,對相位角的測量,采用過零比擬的方法利用單片機的定時器對電壓與電流過零點的時間差來進行確定,再通過計算就可以確定電壓與電流的相位差,故功率因數(shù)可以通過查表得到。最后,功率的測量那么是通過公式計算出來的。電路每一個時刻所對應的電壓、電流、功率、功率因數(shù)四個參數(shù)可以通過液晶顯示器顯示出來。2.2系統(tǒng)功能要求本設計利用數(shù)字功率表來測量頻率為50Hz的交流電路的各種參數(shù),包括電壓有效值、電流有效值、功率、功率因數(shù)。數(shù)字功率表不能直接測量得到,必須先進行電壓、電流和功率因數(shù)的測量,才能計算出功率。本設計重點闡述了電壓和電流分別采樣及采用過零比擬的方法利用單片機的定時器得出相角的過程,選用高精度的模數(shù)轉(zhuǎn)換器TLC2543進行模數(shù)轉(zhuǎn)換并用液晶顯示器SMC1604A。對輸出結(jié)果進行顯示。這個過程需要完成硬件、軟件系統(tǒng)設計,并使最終的數(shù)字功率表具備以下的功能:電壓、電流值同步顯示電壓測量范圍0-300V,電流測量范圍0-5A在液晶顯示器上顯示電壓、電流、功率因數(shù)、功率2.3系統(tǒng)框圖在基于單片機的單相數(shù)字電功率表的設計中,如果要對元件的功率進行測量,首先要明白功率的意義,從式中可知,要測量功率就要求電壓有效值、電流有效值和功率因數(shù),故在本次設計中分別對其做了處理,由此可以劃分為下面幾大模塊:電壓電流采集模塊、相位角測量模塊、鍵盤模塊、液晶顯示模塊,在第三章我將對其做詳細的介紹。整個系統(tǒng)的結(jié)構(gòu)圖如圖2-2所示。圖2-2系統(tǒng)結(jié)構(gòu)圖2.4設計方案及技術(shù)分析2.4.1電壓電流采集模塊方案一:電阻分壓采樣通過將電阻串聯(lián)或電阻并聯(lián)放到待測電路中,電流流過電阻,從而采集到電壓電流的值。方案二:電壓電流互感器互感器是一種儀用變壓器,它是把電壓、電流按一定的比列進行變換的一種測量設備。其主要的功能是將一些大電壓、大電流縮小一定的比例并將其變換成一種標準的低電壓(100V)、低電流(5A或1A,均指額定值),因此使得一些測量儀表、保護設備和自動控制設備可以實現(xiàn)標準化、小型化。同時互感器能夠隔開高壓電力系統(tǒng),從而人身和設備的平安得到保證。方案一主要適用于小電壓小電流信號的采樣,優(yōu)點在于接線簡單,易于實現(xiàn),但由于電阻的接入使得原來的網(wǎng)絡功率損耗增大,并對原信號產(chǎn)生一定的干擾,這樣采樣誤差變大。方案二適用于一些大電壓、大電流的采樣,功率損耗低,能很好的實現(xiàn)電氣隔離,采樣過程對原信號無影響。電流互感器對于200V左右的交流信號采樣明顯勝于電阻分壓采樣,應選擇方案二。2.4.2信號處理模塊首先電壓電流互感器二次測電壓比擬小,且A/D轉(zhuǎn)換器只接收0-5V直流電壓信號進行處理,故需要對采樣到的小交流信號進行放大、整流,整流出來的電壓電流信號通常含比擬大的紋波,所以需要電容和電阻來設計平波電路。綜上,信號處理模塊需要設計整流電路和平波電路。2.4.3模數(shù)轉(zhuǎn)換模塊本設計中A/D轉(zhuǎn)換器采用11通道10位TLC1543串行模數(shù)轉(zhuǎn)換器。與傳統(tǒng)的模數(shù)轉(zhuǎn)換器相比,TLC1543具有輸入通道多、轉(zhuǎn)換精度高、傳輸速度快、價格低、使用靈活和易于與單片機接口等特點,是一款高性價比的模數(shù)轉(zhuǎn)換器。其片內(nèi)設有自動保持電路。故采用TLC1543比擬適合。2.4.4相位角測量模塊功率因數(shù)是指正弦信號的電壓超前于電流的相角的余弦值。方案一:采用過零比擬的方法來求相位角某一正弦信號周期性的出現(xiàn)過零點,通過測出過零點的時間就能得出該信號的相角。方案二:通過傅式濾波的方法來求相位角該方法完全考慮系統(tǒng)不對稱性所造成的諧波對測量精度的影響,但只適用于無限長的信號。綜上,本設計采用方案一。第3章系統(tǒng)硬件分析3.1電路測試系統(tǒng)的分析單片機電路測試系統(tǒng)主要由AT89C52、24C16數(shù)據(jù)存儲器、鍵盤電路以及前向測試通道〔電壓電流采樣電路〕和液晶顯示電路構(gòu)成。它主要完成的任務是:系統(tǒng)從前向通道采集得到的數(shù)據(jù)進行處理后,通過內(nèi)部總線送給片外的24C16數(shù)據(jù)存儲器進行儲存,并將處理過的數(shù)據(jù)通過液晶顯示器顯示出來。3.1.1單片機最小系統(tǒng)簡介本系統(tǒng)采用AT89C52單片機,它是一種低功耗、高性能的芯片。其片內(nèi)內(nèi)置通用的8位中央處理器〔CPU〕和Flash存儲單元,功能比擬強大,適用于各種復雜的控制應用場合。51單片機最小系統(tǒng)復位電路的極性電容C1的大小直接影響到單片機的復位時間,一般情況下采用10-30uF,C1越大需要的復位時間越短,故本設計中采用10uF;晶振Y1即可采用6MHz也可采用11.0592MHz,一般在正常運行的情況下都選那么較大頻率的晶振,因為單片機CPU的處理速度直接受到晶振振蕩頻率的影響,頻率越大的晶振處理的速度就越快,故本設計中采用11.0592MHz;晶振電路中的起振電容C2、C3一般采用15-33pF,且起振電容越接近晶振越好,而晶振的位置離單片機的距離越近越好,一般C2、C3取相同值30PF。單片機的最小系統(tǒng)圖如圖3-1所示。圖3-1單片機的最小系統(tǒng)3.1.2數(shù)據(jù)存儲器24C16一、24C16說明在本設計中,數(shù)字功率表的系統(tǒng)很小,所要存儲的數(shù)據(jù)比擬小,所以我選用了串行E2PPOM24C16片外存儲器。原因在于系統(tǒng)掉電后它所存儲的數(shù)據(jù)并不消失,并且與單片機連接的管腳也比擬少,一定的程度上可以節(jié)約系統(tǒng)的硬件資源。當然它也有一定的缺乏,就是在軟件編程時比擬麻煩。24C16是一個16K位串行CMOSE2PROM,內(nèi)部含有2048個8位字節(jié),CATALYST公司具有先進的CMOS技術(shù),其實質(zhì)上是器件的功耗得到了減少。24C16具有一個16字節(jié)頁的寫緩沖器,該緩沖器是通過I2C總線的接口來完成操作的,另外還具有一個特定功能的寫保護引腳。24C16引腳圖如圖3-2、引腳功能如下表3-1所示:圖3-224C16引腳圖表3-124C16引腳功能管腳名稱功能A0、A1、A2器件地址選擇SDA串行數(shù)據(jù)/地址SCL串行時鐘WP寫保護Vcc+1.8V到6.0V工作電壓Vss地二、24C16的功能描述24C16支持I2C總線數(shù)據(jù)的很多傳送協(xié)議,I2C總線規(guī)定,任意一個把數(shù)據(jù)傳送到I2C總線的器件叫做發(fā)送器。任意一個從I2C總線接收數(shù)據(jù)的器件叫做接收器。數(shù)據(jù)的傳送是由產(chǎn)生的串行時鐘信號以及所有起始信號、停止信號的主器件來控制的。任意一個主器件或者從器件都能稱為發(fā)送器或者接收器,但傳送數(shù)據(jù)〔發(fā)送或接收〕的模式是由主器件來控制。三、24C16的時序描述1.24C16的起始信號:時鐘線為高電平期間,數(shù)據(jù)線電平從高到低的跳變作為24C16的起始信號。2.24C16的停止信號:時鐘線為高電平期間,數(shù)據(jù)線電平從低到高的跳變作為24C16的停止信號。3、24C16的起始、停止時序如下列圖3-3所示:圖3-3起始、停止時序圖四、24C16的尋址過程描述主器件發(fā)送一個起始信號來啟動發(fā)送過程,然后再發(fā)送它所需要尋址的控制命令字〔從器件的地址〕,該控制命令字的高4位固定為1010,A2、A1、A0作為器件的地址位,用來定義哪個器件以及器件的哪一個局部被主器件訪問,而讀寫控制位是由該控制字的最低位來控制的?!?〞表示對控制字進行讀的操作,“0〞表示對控制字進行寫的操作。接下來主器件的發(fā)送首先要訪問從器件的地址,在起始信號被主器件發(fā)送和地址字節(jié)被從器件發(fā)送后,當24C16監(jiān)視總線的地址和從器件發(fā)送的地址一致時,24C16會產(chǎn)生一個響應的應答的信號〔通過SDA線〕。24C16再依據(jù)讀寫的控制位〔R/W〕的狀態(tài)進行讀或?qū)懖僮鳌?4C16在系統(tǒng)電路中的接法如3-4圖所示。圖3-424C16在系統(tǒng)電路中接法3.2系統(tǒng)的前向通道每個系統(tǒng)都有自己的輸入信號,不然整個系統(tǒng)都是失敗的,所以在本次設計的單片機控制系統(tǒng)中,必須有被測電信號的輸入通道,即前向通道,以此來采集必要的輸入信息。下面是講述本次系統(tǒng)前向通道的構(gòu)成及接口。電壓、電流采樣的前置電路由于本系統(tǒng)測量電壓的有效值范圍是0V到300V,電流有效值的范圍是0A到5A,而模數(shù)轉(zhuǎn)換器采樣電壓僅僅為0到5V的直流電壓,所以在硬件上需要設計電壓和電流的前置通道完成強電到弱電的轉(zhuǎn)換。即外部電壓或電流先經(jīng)過互感電路變換、整流電路整流、分壓電路分壓最后才可以被模數(shù)轉(zhuǎn)換器采樣。一、電壓采樣將0-300V的交流電壓轉(zhuǎn)換成較小的電壓,此時采用TVA1421-01型電壓互感器來實現(xiàn)。該器件的原理是電流型電壓互感器,即二次測輸出的電流與輸入的電壓成正比,所以二次測不能開路,使用時在二次測接入采樣電阻,采樣電阻取500歐姆時,由于輸出電流等于輸入電流,所以采樣電阻兩端的電壓即為0-1V。電壓采樣電路如圖3-5所示。圖3-5電壓采樣電路圖二、電流采樣由于流過用電設備的交流電流通常比擬大,所以應該把它按比列的衰減成一個平安的同特性、不失真的交流小信號。采樣電流為5A的交流電,所以選擇TVA1421-01型電流互感器來實現(xiàn)。TVA1421-01型電流互感器中間有一個通孔,應用時可將待測電線穿過此孔,它輸出的小信號電流也是與輸入的電流成線性比例的,使用時在二次端串接電阻,即可采樣到電壓。TVA1421-02型作為電流互感器時,額定電壓為9A時,輸出額定電流為6mA,故額定輸入電流5A時,那么額定輸出電流為3.33mA,此時采樣電阻選用300歐姆,二次測輸出電壓為0-1V。下面為電流采樣電路圖3-6。圖3-6電流采樣電路三、信號處理分析該模塊主要是將電壓電流采樣模塊采樣到的交流電壓信號進行整流和平波處理,使其能被A/D轉(zhuǎn)換模塊可接收的0-5V直流電壓信號。下面是電壓采集信號處理電路〔圖3-7〕和電流采集信號處理電路〔圖3-8〕。圖3-7電壓采集信號處理電路由電壓采樣可知,互感器變換后電壓UD為0-1V,經(jīng)運算放大器放大5倍,在經(jīng)過整流、濾波、分壓后,可得到0-5V的交流電壓。圖3-8電流信號處理電路由電流采樣電路可知,經(jīng)互感器變換后電流為3.33mA,電壓1V,調(diào)節(jié)反應電阻W5將電壓放大5倍,在經(jīng)過整流、濾波、分壓后,可得到0-5V的交流電壓。由于交流電壓或交流電流信號經(jīng)互感器變換后電壓值比擬小,所以應先將電壓電流值放大再經(jīng)過二極管整流電路進行整流,得到0-10V范圍內(nèi)的直流電壓,因為模數(shù)轉(zhuǎn)換器只接收0-5V的直流電壓,所以要通過電阻進行分壓。在處理信號時,要保護測量設備,所以在信號送入TLC1543之前并聯(lián)一個穩(wěn)壓二極管以對直流電壓信號進行穩(wěn)壓,確保輸出電壓在0-5V以內(nèi)的范圍,經(jīng)過上面一系列的處理得出的電壓值才能與電路的真實值相等。電壓〔或者電流〕量程的自動轉(zhuǎn)換那么通過軟件來實現(xiàn),關(guān)于量程轉(zhuǎn)換將在第四章軟件設計中具體介紹,在此就不再表達。3.2.2相位角測量的前置電路利用過零點來測量電壓、電流的相位差。對于某一正弦信號,都會出現(xiàn)周期性的出現(xiàn)過零點,我們只要測出過零點的時間就可以得出電壓、電流的相位差。該電路主要由限幅電路、過零檢測器和光電耦合器組成。在前面一節(jié)中,對于電壓與電流的采集,我們是通過互感器來獲得的,在本節(jié)中我還是采用互感器來獲得電壓電流的真實值。當電路電壓或電流通過互感器變換后的采樣電壓或電流值大于0時,那么1點〔7點〕的電位小于零,發(fā)光二極管導通,使光電耦合器作用導致P3.2輸出低電平。當電壓〔電流〕的負半軸經(jīng)過零點時,1點〔7點〕的電位大于零且近似為5V,這個時候發(fā)光二極管不導通,使得光電耦合器不作用P3.3輸出為高電平。由于本系統(tǒng)所測量的電路頻率主要為50HZ的交流電,在系統(tǒng)中電壓接入INT0〔單片機的P3.2管腳〕,電流接入INT1〔單片機的P3.3管腳〕,這樣根據(jù)電壓和電流過零的時間差,再通過軟件編程我們可以計算出電壓和電流之間相差的相位角,從而滿足了設計要求。由此可看出在這個電路中光電耦合器有兩種作用:電氣隔離和電平轉(zhuǎn)換。圖3-9相位角測量電路3.2.3模數(shù)轉(zhuǎn)換電路信號處理后出來的是模擬量,而單片機接收的信號只是數(shù)字量,所以A/D轉(zhuǎn)換電路是功率測量中必不可少的一局部。本次設計選用的A/D轉(zhuǎn)換芯片作為處理器,在此選擇有11路模擬量輸入的TLC1543轉(zhuǎn)換器,因為TLC1543不僅轉(zhuǎn)換時間很快、采樣的精度高而且使用單片機I/O接口少,完全可以滿足系統(tǒng)的測量要求。為了TLC1543轉(zhuǎn)換器能可靠的運行,需要對其各個控制端進行學習。一、TLC1543簡介〔1〕TLC1543是20腳封裝的CMOS芯片,也是10位開關(guān)電容按逐次逼近的方法進行模/數(shù)轉(zhuǎn)換的轉(zhuǎn)換器。TLC1543引腳圖如圖3-10所示?!?〕輸入端有三個和三態(tài)輸出端有一個:片選〔CS〕、輸入/輸出時鐘〔I/OCLOCK〕、地址輸入端〔ADDRESS〕以及數(shù)據(jù)輸出端〔DATAOUT〕。具有一個四線接口,可以直接與主處理器或其他的外圍串行口進行高速數(shù)據(jù)傳輸?!?〕片內(nèi)部含有一個14路多路的選擇器,可供選擇的有:在11個輸入中的可以選擇1個,在內(nèi)部含有3個帶有自測試的電壓可以選擇一個?!?〕片內(nèi)還設有自動采樣的保持電路。在轉(zhuǎn)換結(jié)束時,EOC輸出端變高以指示轉(zhuǎn)換的完成?!?〕系統(tǒng)的時鐘應在片內(nèi)產(chǎn)生并且與I/OCLOCK同步?!?〕片內(nèi)設有轉(zhuǎn)換器,使該器件具有以下特點:高速〔單次轉(zhuǎn)換的時間10us〕、高精度〔10位的分辨率、最大+LSB線性的誤差〕和低噪聲。圖3-10TLC1543引腳圖二、工作過程TLC1543工作時序如圖3-11所示,其工作過程分為兩個周期:訪問周期和采樣周期。圖3-11TLC1543時序圖時序使用方法:〔1〕片選CS高電平,EOC高電平,CLK時鐘低電平;〔2〕片選CS低電平,開始讀出第一位數(shù)據(jù);〔3〕在第一個時鐘上升沿,輸入一個地址數(shù)據(jù);〔4〕之后在每個時鐘的下降沿輸出AD轉(zhuǎn)換數(shù)據(jù),在上升沿輸入地址數(shù)據(jù);〔5〕TLC1543是10位轉(zhuǎn)換器,因此有10個時鐘;〔6〕一個操作過程結(jié)束后,片選CS高電平,EOC會在最后第10個時鐘的下降沿觸發(fā)低電平,開始AD轉(zhuǎn)換,此時,輸出被禁止,等到轉(zhuǎn)換結(jié)束后EOC置位1,代表轉(zhuǎn)換結(jié)束。等到CS片選再次低電平,開始第二次操作。三、硬件設計TLC1543的基準由外電路提供,在本設計中由于對采樣的精度要求較高,所以在編程的時候軟件要將TLC1543設置成單極性輸出,MSB做前導輸出并且輸出的數(shù)據(jù)長度為10位。TLC1543可直接與單片機連接,SDO、ADDR、CS、CLK、EOC分別接到單片機P2.0-P2.4口上。TLC1543硬件電路圖為3-12所示,TLC1543的輸入存放器格式如表3-2所示,根據(jù)硬件原理圖和表格3-2可以確定出各個量程的的通道地址以及TLC1543的控制格式如表3-3所示。圖3-12TLC1543的硬件電路圖表3-2TLC1543的輸入存放器格式功能選擇輸入數(shù)據(jù)字節(jié)備注地址位L1L0LSBFBIPD7=MSBD0=LSBD7D6D5D4D3D2D1D0AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7AIN8AIN9AIN1000000000111000011110000011001100101010101010選擇輸入通道REF+與REF—差模1011內(nèi)部測試REF—單端1100REF+單端1101軟件斷電1110MSB先出LSB先出01順序輸出單極性雙極性01極性表3-3各個量程通道對應地址和控制格式通道與之對應的TLC1543的通道通道地址以及控制格式采樣電壓通道IN000H采樣電流通道IN110H3.3鍵盤電路鍵盤分獨立鍵盤和矩陣鍵盤,但它們都是由一組按壓式或觸模式開關(guān)構(gòu)成的陣列。鍵盤的各個功能依據(jù)具體的設計來定。在本次設計系統(tǒng)中,系統(tǒng)的功能鍵比擬少,一共就4個按鍵,所以在硬件設計的時候選擇獨立式的按鍵。由于51單片機P0口作為接口使用時需要接10千歐的電阻,所以每個按鍵各接一個電阻和一根輸入線,各個按鍵之間互不影響。因此通過檢測輸入線的電平狀態(tài)便可以很容易的判斷哪個按鍵工作了。本設計中,我將這五個按鍵分別定義為控制測試系統(tǒng)的顯示電壓、顯示電流、顯示功率因數(shù)、顯示功率、復位。本次設計的鍵盤電路如圖3-13所示。圖3-13鍵盤電路3.4液晶顯示電路本設計中,在顯示器的選擇上我選擇字符型的可編程的字符液晶顯示控制器,其型號是SMC1604A,因為它不僅有其專用的指令集,易于編程,而且用它最多可以用來顯示四行字符,與我設計的功率表功能相符合。下面我將對其進行簡單的介紹。SMC1604A是標準字符型的液晶顯示器,其利用點陣型的液晶顯示器(LCD),可以顯示16個字符*4行的西文字符,字符尺寸為2.95*4.75(WXH)mm,內(nèi)置HD44780接口,可與單片機的接口直接相連,應用于各類儀器儀表及電子設備。SMC1604A標準的字符型的液晶顯示器示意圖如圖3-14所示,SMC1604A引腳圖如圖3-15所示,引腳接口功能如表3-4所示。圖3-14標準字符型液晶顯示器示意圖圖3-15SMC1604A引腳圖表3-4引腳說明符號引腳說明符號引腳說明VSS電源地D2DataI/OVDD電源正極D3DataI/OV0LCD偏壓輸入D4DataI/ORS數(shù)據(jù)/命令選擇端〔H/L〕D5DataI/OR/W讀寫控制信號〔H/L〕D6DataI/OE使能信號D7DataI/OD0DataI/OBLADataI/OD1DataI/OBLK背光源負極液晶顯示器電路如圖3-16所示。D0-D7與P2口相接,E、RW、RS分別與P3.7、P3.6、P3.5相接。圖3-16液晶顯示器電路圖第4章系統(tǒng)軟件設計第四章對系統(tǒng)的硬件作了較為簡單的分析,軟件與硬件是相輔相成的即硬件的運作離不開軟件的支持,所以這一章詳細介紹了系統(tǒng)軟件設計的過程。這是本次畢業(yè)設計的重點內(nèi)容。本章主要針對數(shù)字功率表的測量詳細的介紹了軟件實現(xiàn)的過程。在本章中我對一些子程序像雙字節(jié)無符號數(shù)的乘除法、二進制數(shù)到十進制數(shù)的轉(zhuǎn)換、數(shù)據(jù)的排序取平均值、線性插值等之類子程序并沒有做詳細的介紹,因為此類的子程序我們能在參考書上很容易找到現(xiàn)成的模塊,這些都是前人的經(jīng)驗結(jié)晶,在這個系統(tǒng)中我是直接對它們進行調(diào)試后引用的。最后還對本次軟件開發(fā)工具,即軟件開發(fā)工具仿真器Proteus作了一定的介紹。4.1Keil編程軟件介紹KeilC51是美國KeilSoftware公司生產(chǎn)的一種51系列兼容單片機C語言軟件開發(fā)系統(tǒng),也可以使用匯編進行編寫,兩者相比擬,C語言功能更加強大。Keil界面圖如圖4-1所示。圖4-1Keil界面圖4.2程序設計在總的設計思想和硬件設計確定之后,我就可以開始軟件設計,根據(jù)前面介紹的工作原理和技術(shù)指標,軟件設計應完成的主要任務有以下幾個模塊。4.2.1系統(tǒng)的主程序設計主程序是整個數(shù)字功率表系統(tǒng)控制程序的主要框架,它是一個順序執(zhí)行的無限循環(huán)的程序,運行過程必須構(gòu)成一個循環(huán),這樣才能不斷的運行程序。主程序應不斷地順序查詢,并根據(jù)其功能調(diào)用相關(guān)的子程序并執(zhí)行其命令,以完成對各種實時控制事件的處理。本系統(tǒng)中,主程序的主要功能是測量和調(diào)用鍵盤掃描子程序,當系統(tǒng)測量完成后我們調(diào)用鍵盤掃描子程序,根據(jù)掃描子程序得到所按的鍵的鍵值,按鍵值跳轉(zhuǎn)到相應的功能鍵子程序?qū)崿F(xiàn)各種功能,并在返回主程序后調(diào)用顯示子程序在顯示器輸出相應數(shù)據(jù)。主程序流程圖如圖4-2所示。圖4-2主程序流程圖4.2.2初始化子程序的設計初始化程序主要用來確定程序的初始堆棧,程序狀態(tài)字,對相應的存儲單元進行清零,設定定時器工作方式等等,初始化程序的具體步驟如下:1)由于單片機在復位后堆棧為07H,所以在系統(tǒng)開始后應該重新設置堆棧;2)清24C16寫保護,讀取標志存放器的內(nèi)容,比擬標志存放器中的內(nèi)容是否等于0AAH,如果相等那么保持系統(tǒng)上次運行的狀態(tài),否那么去除以前狀態(tài);3)設置定時器工作方式和波特率。在這個系統(tǒng)中由于我們在測量電壓和電流之間相位差的時候需要用到定時器T1和記錄一個信號周期內(nèi)A/D采樣的次數(shù)N需要計數(shù)器T0,所以在初始化時,假設定時器T1的工作方式2,T0的工作方式1。波特率的設置是非常必要的,在這個系統(tǒng)中,我們選用T0工作于方式1作為波特率發(fā)生器,設T1的計數(shù)器初值為X,依據(jù)公式:波特率=〔其中為系統(tǒng)的振蕩頻率為11.0592MHz〕由于在本系統(tǒng)中下我們選擇的波特率為9600,所以由上式計算得X=0xFDH。根據(jù)上面所述我們設定T1工作于定時方式2,T0計數(shù)方式1,串口工作于方式1。初始化液晶顯示器,液晶顯示器再次上電后必須重新進行初始化才能顯示字符。整個系統(tǒng)的初始化子程序流程圖如圖4-3所示。圖4-3初始化流程圖4.2.3測量子程序測量程序是整個系統(tǒng)的主要程序,是整個循環(huán)程序的主體內(nèi)容。在此我們主要完成的任務有電壓和電流之間相位差的測量、功率因數(shù)的計算,電壓有效值的測量、電流有效值的測量以及功率的計算,整個測量子程序的流程圖如圖4-4所示:圖4-4測量子程序流程圖其中測量子程序中又包含如下子程序:一、功率因數(shù)的測量子程序首先要完成電壓與電流之間時間差的測量,由上一章可知,單片機的定時器TO工作于計數(shù)方式1,定時器T1工作于定時方式2。電路實測輸出的波形如圖4-5所示。當INT0由0變成1時,電壓波形產(chǎn)生正跳變,翻開定時器T0,開始計數(shù);當INT1由0變成1時,電流波形產(chǎn)生正跳變,此時關(guān)閉定時器T0。當INT1再次由0變成1,即電壓波形產(chǎn)生正跳變時,再次翻開定時器T0,這是個循環(huán)的過程。這樣,根據(jù)定時器T0中所保存的數(shù)值,通過公式〔4-1〕注:T指交流電路周期〔f=50HZ〕,指電壓和電流之間的相位差??汕蟪鱿辔唤堑拇笮。?,〔4-2〕即,〔4-3〕其中T為電路的周期,可以得到其中,〔4-4〕。將公式4-4帶入公式4-3,所以便可以計算出相位角。然后再通過查表便可以求出功率因數(shù)。圖4-5實測輸出電壓電流波形圖對功率因數(shù)的測量子程序流程圖如4-6所示:圖4-6功率因數(shù)測量子程序二、電壓、電流有效值的測量在測量電壓、電流有效值的過程中,假設輸入電壓、電流與輸出電壓、電流成線性關(guān)系。0-300V輸入電壓對應0-5V的輸出電壓,0-5A的輸入電流對應0-5V的電壓。本系統(tǒng)電壓電流信號周期f=50HZ、T=20ms,A/D轉(zhuǎn)換的時間為10us,設信號在一個周期內(nèi)采樣的次數(shù)為N,在對輸入信號進行采樣的同時,進行計算電壓電流有效值。公式如下:電壓有效值:〔4-5〕電流有效值:〔4-6〕注:k為采樣序列順序號,u(k)為k時刻電壓瞬時值,i(k)為k時刻電流瞬時值。通過上面的公式我可以求出任意時刻的電壓電流有效值,電壓有效值測量子程序流程圖如圖4-7所示,電流有效值測量子程序流程圖如圖4-8所示。圖4-7電壓有效值測量圖4-8電流有效值測量三、功率的測量在本設計中,功率并不是直接測出來的,而是通過軟件間接的算出來的。首先,先通過測量得到電壓有效值U、電流有效值I,然后根據(jù)公式便可計算出功率的數(shù)值,然后再送入GLSZ單元。功率測試流程圖如圖4-9所示。圖4-9功率測試流程圖4.2.4液晶顯示子程序本設計中使用SMC1604A液晶顯示器,其根本的操作時序如表4-1所示,狀態(tài)字說明如表4-2、4-3所示。表4-1根本操作時序命令輸入輸出讀狀態(tài)RS=L,RW=H,E=HD0-D7=狀態(tài)字寫指令RS=L,RW=H,D0-D7=指令碼,E=高脈沖無讀數(shù)據(jù)RS=H,RW=H,E=HD0-D7=數(shù)據(jù)寫數(shù)據(jù)RS=H,RW=L,D0-D7=數(shù)據(jù),E=高脈沖無表4-2狀態(tài)字說明STA7STA6STA5STA47STA3STA2STA1STA0D7D6D5D4D3D2D1D0表4-3狀態(tài)字說明STA0-6當前數(shù)據(jù)地址指針的數(shù)值STA7讀寫操作使能1禁止0允許注:對控制器每次進行讀寫操作之前,都必須進行讀寫檢測,確保STA7為0。SMC1604A顯示處理流程圖如圖4-10所示。本系統(tǒng)中LCD顯示子程序包括兩個局部,即液晶初始化子程序和液晶顯示字符子程序。LCD顯示如果不經(jīng)過初始化即使將顯示數(shù)據(jù)送到LCD數(shù)據(jù)存儲器上LCD也不能顯示數(shù)據(jù),所以我們編制程序的時候系統(tǒng)初始化的時候最重要的一個環(huán)節(jié)就包括了液晶的初始化。LCD初始化包括LCD工作方式的設定、輸入方式設定、清屏等。其初始化流程圖如圖4-11所示。LCD顯示子程序的LCD顯示字符子程序,其功能就是將要顯示的數(shù)據(jù)送到LCD顯示器的顯示RAM中,在這個過程中最關(guān)鍵的事就是要確定顯示RAM的地址,在本次設計中,LCD顯示器RAM地址如表4-4所示,顯示子程序具體流程圖如圖4-12所示。表4-4RAM地址行數(shù)地址第一行000102030405060708090A0B0C0D0E0F///第二行404142434445464748494A4B4C4D4E4F///第三行101112131415161718191A1B1C1D1E1F20..27第四行505152535455565758595A5B5C5D5E5F60..67圖4-10LCD顯示流程圖圖4-11初始化流程圖圖4-12顯示子程序具體流程圖4.2.5鍵盤掃描子程序本次設計中我選用獨立鍵盤,共4個按鍵,可以通過檢測輸入線的電平狀態(tài)便可以判斷哪個按鍵被按下了。鍵盤使用P0口,由于51單片機P0具有漏電保護的作用,所以在使用的時候要參加上拉電阻。在本設計中,鍵盤掃描主要是掃描P0.4、P0.5、P0.6、P0.7這四個按鍵。軟件流程圖如圖4-13所示。圖4-13鍵盤掃描流程圖第5章系統(tǒng)調(diào)試過程本次設計考慮到各方面原因,沒有做實物,所以硬件調(diào)試在本設計中將不在講述。下面我將從軟件調(diào)試方面進行局部分析。第四章講述了編寫程序的軟件KEIL,在此介紹仿真軟件〔Proteus〕的應用。5.1Proteus軟件應用ProteusISIS是英國Labcenter公司開發(fā)的一種可以對電路進行分析、對實物進行仿真的軟件。該軟件是一款單片機和電路仿真〔SPICE〕相結(jié)合的仿真軟件,其功能強大,具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)仿真等,這些是其他任何一款軟件不能相比的。在本次設計中我選擇對課題進行局部仿真,應選用Proteus仿真軟件。Proteus工作界面如圖5-1所示。圖5-1Proteus工作界面5.2電壓、電流采集模塊調(diào)試在第3.2節(jié)中,我詳細的介紹了電壓電流采集模塊所用到的各種元器件作用及在電路中的作用,故在本節(jié)中不在做詳細的分析。0-300V正弦電壓信號經(jīng)過電壓互感器變?yōu)?-1V,在經(jīng)過信號處理電路可以得出0-5V左右電壓信號,電壓采集到最小值如圖5-2所示,電壓采集到最大值如圖5-3所示。0-5A正弦電流信號經(jīng)電流互感器變?yōu)?-1V,在經(jīng)過電流信號處理電路后可得出0-5V左右電壓信號,電流采集到最小值如圖5-4所示,電流采集到最大值如圖5-5所示。圖5-2電壓采集到最小值圖5-3電壓采集到最大值圖5-4電流采集到最小值圖5-4電流采集到最大值5.3相位角測量模塊調(diào)試相位角測量電路在整個設計中是屬于比擬根底的局部,在3.2.2節(jié)中,對本設計中相位角的測量電路進行詳細的介紹與說明,在4.2.3節(jié)中,從軟件方面講解了功率因數(shù)的計算:同頻率的兩個正弦信號,電壓與電流,采用過零比擬法通過測量兩個正弦信號經(jīng)過零點的時間T1和T2,計算兩者之間的時間差ΔT=T2-T1,從而。本章從電路方面做一些仿真,如下列圖5-5、5-6所示,對電壓、電流分別在US1、UD、P3.2、IP1、ID、P3.3六處做采集波形圖。圖5-5電壓相位采集波形圖5-6電流相位采集波形5.4液晶顯示模塊調(diào)試LCD液晶顯示器在3.4節(jié)和4.2.4節(jié)分別從電路和軟件兩方面作出詳細的解釋與說明,在本章中我將對其進行簡單的模擬仿真。SMC1604A的仿真圖如圖5-7所示。圖5-7SMC1604A仿真圖5.5系統(tǒng)調(diào)試由于仿真軟件具有局限性,不能實現(xiàn)整個系統(tǒng)的仿真,所以仿真時只能以單個模塊進行仿真,在本第五章中,我只對局部模塊進行仿真〔前面的章節(jié)已經(jīng)作出詳細的解說〕。在本章節(jié)中,本系統(tǒng)仿真電路圖如圖5-8所示。圖5-8系統(tǒng)仿真電路圖第6章總結(jié)將近一學期的努力,本次畢業(yè)設計也走到了終點,在張老師的指導下,我順利地完成了基于單片機的單相數(shù)字電功率表的設計,將系統(tǒng)的軟件與系統(tǒng)的硬件電路相結(jié)合后我們便得到了一個完整的數(shù)字功率表,這就是我們此次畢業(yè)設計的成果。本次畢業(yè)設計中,我主要從上面五章對其做了詳細的解釋與說明,設計的主要任務是:〔1〕完成電壓信號采集、電流信號采集;完成相位角的測量;計算功率,并顯示在液晶顯示器上。通過設計畢業(yè)設計的任務書、查閱各種文獻、向老師咨詢等方式,在自己不斷的嘗試與驗證下,我最終成功的完成了本次畢業(yè)設計。下面我將對前面五個章節(jié)進行總結(jié)。:概述,主要通過了解功率表在當代人們生活中的一種現(xiàn)狀,分析其對人類的影響與優(yōu)缺點,從而總結(jié)出功率表在人們生活中是不可或缺的,另外在這個電力時代,我們所用到的電最后都是通過功率表來計算的,例如:一個家挺每天、每月消耗多少電能,一間工廠一天消耗多少電能等,這些都是以功率的形式來表達的。故功率表在生活中是必不可少的。:系統(tǒng)方案設計,首先講了設計的根本思想,通過查閱各種資料,再比照幾種方案,最終確定各個模塊具體的設計方案。本章是整個畢業(yè)設計的根本理論思想,也是設計的大體方向,對下面幾個章節(jié)的介紹具有深遠的理想。:系統(tǒng)硬件電路的設計與分析,本章節(jié)是設計的重中之重。在本次設計中,可將其分為以下幾個模塊:電壓與電流采集電路模塊、相位角測量電路模塊、AD轉(zhuǎn)換電路模塊、液晶顯示電路模塊、鍵盤電路模塊。本章分別對其進行詳細的設計與說明,在每一小節(jié)中都有電路圖的展示和電路中元器件的選擇說明,最后還有畢業(yè)設計系統(tǒng)中電路的根本原理圖,另外,電路的正確性決定了硬件電路的正確性。:系統(tǒng)軟件設計,依據(jù)第三章的電路原理圖,分別對每個模塊進行軟件設計,主要利用到KEIL軟件進行編程,利用VISIO繪制模塊流程圖,本章節(jié)是重點分析系統(tǒng)的軟件設計,包括一些數(shù)據(jù)的計算等,本章節(jié)在整個系統(tǒng)中的設計也是無法替換的。:系統(tǒng)仿真設計,在本次設計中我沒有做實物電路,所以在本章節(jié)中我只做了局部軟件仿真調(diào)試。主要利用的是Proteus仿真軟件,我在本章節(jié)中也有簡單的介紹。我主要介紹了電壓與電流采集仿真、相位角測量仿真以及液晶顯示仿真,在本章節(jié)中也有圖片添加,可以清楚的看到本設計的成果。在本次設計中,我遇到了很多困難,如電路設計原理、如何選擇各種元器件、如何應用軟件編程、如何應用軟件進行仿真等,在種種的困難下、在老師的幫助下,我終于完成了我的畢業(yè)設計,雖然還有很多方面的缺乏,但我知道我努力了,我也從本次畢業(yè)設計中學到了好多東西,把以前忘掉了都重新拾起,更是把大學幾年來學到的東西得到很好的融合。參考文獻[1]楊居義,單片機案例教程.北京清華大學出版社,2023年[2]韓廣興,電子元器件與實用電路根底.北京電子工業(yè)出版社,2023年3月[3]趙廣元,Proteus輔助的單片機原理實踐-根底設計、課程設計和畢業(yè)設計.北京航空航天大學出版社,2023年9月[4]杜樹春,基于Proteus的模擬電路分析與仿真.北京電子工業(yè)出版社,2023年8月[5]周國雄,單片機應用系統(tǒng)精講.北京中國鐵道出版社,2023年3月[6]蔣曉燕,張建生等.數(shù)字信號處理與應用[M].東南大學出版社,2023[7]李廣弟,單片機根底.北京航空航天大學出版社,2007年5月[8]海濤,劉波,駱武寧等.基于單片機的單相軟開關(guān)穩(wěn)壓器[C].計算技術(shù)與自動化,2006[9]謝維成、楊加國,單片機原理與應用及C51程序設計實例.電子工業(yè)出版社,2006年3月[10]胡斌,圖表細說元器件及實用電路.北京電子工業(yè)出版社,2005年9月[11]邊春遠,MCS-51單片機應用開發(fā)實用子程序[M].北京人民郵電出版社,2005年9月[12]姜志海、黃玉清,單片機原理及應用[M].北京電子工業(yè)出版社,2005年7月[13]魏立峰,單片機原理及應用技術(shù).北京大學出版社,2005年[14]胡健,單片機原理及接口技術(shù).北京機械工業(yè)出版社,2004年10月[15]周明德,微型計算機系統(tǒng)原理及應用(第四版).清華大學出版社,2004[16]郭培源,電子電路及電子器件.高等教育出版社,2003年[17]秦友淑、曹化工,C語言程序設計教程〔第二版〕.華中科技大學出版社,2002[18]江思敏、姚鵬翼,胡榮,Protel電路設計教程.清華大學出版社,2002[19]汪建,電路理論根底〔上、下冊〕,華中科技大學出版社,2002[20]童詩白、華成英,模擬電子技術(shù)根底〔局部〕〔第三版〕.高等教育出版社,2001致謝在這次畢業(yè)設計即將結(jié)束之際,首先要感謝我們的指導老師張老師,能夠為我提供了一個這樣難得的鍛煉時機,并且能夠在百忙之中抽出時間來指導我,為我解答疑難問題,并且不厭其煩的為我講解實踐過程中遇到的問題。此外在這次的畢業(yè)設計中,我?guī)缀醢阉械闹R都復習了一遍,我覺著自己還需要更加努力。這次畢業(yè)設計不僅僅是對我大學四年來知識的考查,更是對自己的動手能力,協(xié)調(diào)能力的一次很好的訓練。最后,還要感謝老師的支持和幫助。附錄A:原理圖附錄B:仿真圖附錄C:局部程序1、初始化程序ORG0000HSTART:MOVSP,#60HCLRSWP;清24C16寫保護MOVDPTR,#BZJCQMOVDZJCQH,DPHMOVDZJCQL,DPLCALLEEPRDCJNEA,#0AAH,FW1MOVTMOD,#21H;T1定時方式2,T0計數(shù)方式1MOVTH1,#0FDH;波特率9600MOVTL1,#0FDHMOVSCON,#50H;串行口方式1MOVPCON,#00HSETBTR1CLRRSCLRR_WCLRECALLCSHEDA;初始化液晶CALLDISPLAY;顯示初始畫面2、測量電壓子程序CYDY0:MOVTDJCQ,#20HCYDY1:CALLCY1CLRCMOVR4,AMOVR5,BMOVA,R4SUBBA,#0CHJNCCYDY2JZAAAJNZMMMMAAA:MOVA,R5SUBBA,#0A1HJNCCYDY2MMMM:MOVDPTR,#TABDY0MOVJSQ3,#9CALLCHETARETCYDY2:MOVTDJCQ,#30HCALLCY1MOVR4,AMOVR5,BMOVDPTR,#TABDY1MOVJSQ3,#22CALLCHETARET3、測量電流子程序CYDL0:MOVTDJCQ,#00HCYDL1:CALLCY1CLRCMOVR4,AMOVR5,BMOVA,R4SUBBA,#0CHJNCCYDL2JZLLLJNZMMMLLL:MOVA,R5SUBBA,#0D6HJNCCYDL2MMM:MOVDPTR,#TABDL0MOVJSQ3,#6CALLCHETARETCYDL2:MOVTDJCQ,#30HCALLCY1MOVR4,AMOVR5,BMOVDPTR,#TABDL1MOVJSQ3,#7CALLCHETARET4、采樣子程序CY1:PUSHPSWSETBPSW.3MOVR7,#10;采樣10次MOVR1,#SHJJCQCY2:MOVA,TDJCQCALLCY2543MOV@R1,BINCR1MOV@R1,AINCR1DJNZR7,CY2CALLPXU;將采樣的數(shù)從大到小排序CALLQPJZ;取平均值MOVA,R4MOVB,R5POPPSWRET5、功率因數(shù)測量子程序如下:LOOP10:MOVTL0,#0;測相位差MOVTH0,#0JNBP3.2,$JBP3.2,$SETBTR0CCC:MOVDPTR,#TABCOS;功率因數(shù)MOVCA,@A+DPTRMOVR0,#GLYSSZMOV@R0,A6、測量功率的子程序如下:MOVDLSZ,AMOVA,R7MOVDLSZ+1,AMOVR2,#00HMOVA,GLYSSZMOVR3,ACALLNDIV1;(R2R3R4R5)/R6R7=R4R5MOVA,R4MOVGLSZ,AMOVA,R5MOVGLSZ+1,ALCD1604A程序:RSPINBITP3.5;RS對應單片機引腳RWPINBITP3.6;RW對應單片機引腳EPINBITP3.7;E對應單片機引腳;//以下CXPOS,CYPOS變量用于指示當前操作字符的位置的預定義;CXPOSEQU20H;列方向地址指針(用于CHARLCDPOS子程序);CYPOSEQU21H;行方向地址指針(用于CHARLCDPOS子程序);ORG0000HJMPSTARTSTART:MOVSP,#60HMAIN:CALLEXSAMPLE;調(diào)用演示程序JMPMAINSTR1:DB"U:",0STR2:DB"I:",0STR3:DB"P:",0STR4:DB"COS:",0EXSAMPLE:;演示程序;//0.演示前的準備,LCD液晶顯示控制器初始化,所有顯示全清零CALLLCDRESET;液晶顯示控制器初始化MOVA,#''CALLCHARFILL;顯示清屏;//1.字符串演示:在(4,0)字符位置顯示"U:"MOVCXPOS,#4;設置當前顯示位置為第5列MOVCYPOS,#0;設置當前顯示位置為第1行MOVDPTR,#STR1CALLPUTSTR;顯示字符串CALLEXDELAY;延時約300mSCALLEXDELAY;延時約300mS;//2.字符串演示:在(2,1)字符位置顯示"I:"MOVCXPOS,#2;設置當前顯示位置為第3列MOVCYPOS,#1;設置當前顯示位置為第2行MOVDPTR,#STR2CALLPUTSTR;顯示字符串CALLEXDELAY;延時約300mSCALLEXDELAY;延時約300mS;//3.字符串演示:在(0,2)字符位置顯示"P:"MOVCXPOS,#0;設置當前顯示位置為第1列MOVCYPOS,#2;設置當前顯示位置為第3行MOVDPTR,#STR3CALLPUTSTR;顯示字符串CALLEXDELAY;延時約300mSCALLEXDELAY;延時約300mS;//4.字符串演示:在(0,3)字符位置顯示"COS:"MOVCXPOS,#0;設置當前顯示位置為第1列MOVCYPOS,#3;設置當前顯示位置為第4行MOVDPTR,#STR4CALLPUTSTR;顯示字符串CALLEXDELAY;延時約300mSCALLEXDELAY;延時約300mS;EXDELAY:;演示延時子程序MOVR2,#30;延時約300mSEDY_PA:MOVR1,#100EDY_PB:MOVR0,#49DJNZR0,$DJNZR1,EDY_PBDJNZR2,EDY_PARET;//子程序名稱:CHARFILL(A).;CHARFILL:;整屏顯示A代表的ASCII字符子程序MOVCXPOS,#0;第1列字符位置MOVCYPOS,#0;第1行字符位置LFL_PA:CALLPUTCHAR;定位寫字符CALLCHARCURSORNEXT;置字符位置為下一個有效位置MOVR0,CXPOSCJNER0,#0,LFL_PA;字符位置沒有回到第1列字符位置,那么重復寫字符MOVR0,CYPOSCJNER0,#0,LFL_PA;字符位置沒有回到第1行字符位置,那么重復寫字符RET//子程序名稱:PUTSTR(DPTR).;PUTSTR:;定位寫字符串子程序CLRAMOVCA,@A+DPTRJZPSR_LAX;為零表示字符串結(jié)束,退出CALLPUTCHAR;寫1個字符CALLCHARCURSORNEXT;字符位置移到下一個INCDPTR;字符串指針移到下一個JMPPUTSTR;重新讀字符串PSR_LAX:RET//子程序名稱:PUTCHAR(A).;PUTCHAR:;在(CXPOS,CYPOS)字符位置寫字符子程序CALLCHARLCDPOS;設置(CXPOS,CYPOS)字符位置的DDRAM地址CALLLCDWD;寫字符RET//子程序名稱:GETCHAR(A).GETCHAR:;在(CXPOS,CYPOS)字符位置讀字符子程序CALLCHARLCDPOS;設置(CXPOS,CYPOS)字符位置的DDRAM地址CALLLCDRD;讀字符RET;//子程序名稱:CHARLCDPOS().;CHARLCDPOS:;設置(CXPOS,CYPOS)字符位置的DDRAM地址PUSHACCANLCXPOS,#0FH;X位置范圍(0到15)ANLCYPOS,#03H;Y位置范圍(0到3)MOVA,CYPOS;(CXPOS,CYPOS)對應DDRAM地址CJNEA,#00,LPS_LA1;(第一行)X:第015個字符MOVA,CXPOS;DDRAM:00FHJMPLPS_LAXLPS_LA1:CJNEA,#01,LPS_LA2MOVA,CXPOS;(第二行)X:第015個字符ADDA,#40H;DDRAM:404FHJMPLPS_LAXLPS_LA2:CJNEA,#02,LPS_LAYMOVA,CXPOS;(第三行)X:第015個字符ADDA,#10HDDRAM:101FHJMPLPS_LAXLPS_LAY:MOVA,CXPOS;(第四行)X:第015個字符ADDA,#50H;DDRAM:505FHLPS_LAX:ORLA,#80H;設置DDRAM地址CALLLCD

溫馨提示

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

評論

0/150

提交評論