




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一章 概 述第一節(jié) 概 述在測量、控制儀表中引入微機(jī),不僅能解決傳統(tǒng)儀表不能解決或不易解決的問題,而且能簡化電路、增加功能、提高精度和可靠性、降低售價以及加快新產(chǎn)品的開發(fā)速度。由于這類儀表已經(jīng)實現(xiàn)人腦的一部分功能,例如四則運算、邏輯判斷、命令識別等,有的還能夠進(jìn)行自教正、自診斷,并具有自適應(yīng)、自學(xué)習(xí)的能力,因此人們習(xí)慣上稱它們?yōu)橹悄軆x表。數(shù)字功率表也是一種簡單的智能儀表。功率表一直以來都是重要的工業(yè)測量儀表,而數(shù)字功率表在原有的基礎(chǔ)上比以前的更方便。數(shù)字顯示消除了在模擬標(biāo)尺上讀取指針位置時的人為誤差。與傳統(tǒng)的其他儀表相比,數(shù)字功率表的測量準(zhǔn)確度顯著提高。除測量準(zhǔn)確外,因數(shù)字儀表具有自動保護(hù)和
2、自動選擇量程的功能,因此減少了由于過載而損壞儀表的可能性。此外,本次所設(shè)計的數(shù)字功率表還具有自動記錄數(shù)據(jù)和進(jìn)一步處理數(shù)據(jù)的能力,能方便地使用在自動測試系統(tǒng)中。數(shù)字功率表的測量能力隨著微電子技術(shù)的發(fā)展而發(fā)展,表內(nèi)硬件已越來越多地用集成電路代替。另一方面,在改善特性的同時,由于許多集成芯片還需進(jìn)口,成本也有所增加。但由于數(shù)字功率表使用方便、功能強(qiáng)大、體積小,在市場上還是很受歡迎。第二節(jié) 畢業(yè)設(shè)計任務(wù)和要求本次畢業(yè)設(shè)計的主要任務(wù)是與做硬件的同學(xué)配合,用匯編語言編制出一套數(shù)字功率表系統(tǒng)軟件用來測量頻率為50hz的交流電路的各種參數(shù),包括電壓有效值、電流有效值、功率、功率因數(shù)。在完成對數(shù)據(jù)的處理后能在液
3、晶顯示器上顯示出電路中的電壓、電流、功率因數(shù)、功率。為了能夠圓滿的完成這次畢業(yè)設(shè)計,在這段時間里,需要完成以下幾個任務(wù):1.要熟悉課題的基本要求,通過課題的分析,明確主要任務(wù);2.在課題任務(wù)明確后,有些難以下手的,或是沒有碰到過的問題要及時地向指導(dǎo)老師請教,并且充分的利用學(xué)校圖書館這一龐大的資源,查找有關(guān)資料,熟悉有關(guān)方面的內(nèi)容。3.在課題任務(wù)基本明確,設(shè)計方案基本形成之后,完成開題報告的寫作。4.設(shè)計過程中要查找相關(guān)的英文資料,并把它們翻譯成中文。5.在編程之前,要熟悉相應(yīng)的開發(fā)語言,主要是熟悉匯編語言的語法結(jié)構(gòu),開發(fā)和調(diào)試方法。6.完成測量和顯示程序這兩個主要模塊的編制,涉及到的一些通用的
4、子程序的編程,寄存器的定義,一些測量算法的確定。7.程序編輯好之后,利用se-52單片機(jī)調(diào)試系統(tǒng)進(jìn)行軟件的調(diào)試。8.調(diào)試完成之后,完成畢業(yè)設(shè)計論文,準(zhǔn)備畢業(yè)設(shè)計答辯。本次的畢業(yè)設(shè)計由我和侯東東同學(xué)共同完成,他主要負(fù)責(zé)的是硬件電路方面的設(shè)計,而我則是要在他硬件基礎(chǔ)上完成數(shù)字功率軟件系統(tǒng)的設(shè)計。第二章 總體方案簡介研制一臺智能儀表是一個比較復(fù)雜的過程,這一過程包括分析儀表的功能需求和擬定總體設(shè)計方案,確定硬件結(jié)構(gòu)和軟件算法,研制硬件電路和編制軟件程序,以及儀表的調(diào)試和性能測試等等。為保證儀表質(zhì)量和提高效率,應(yīng)在正確的設(shè)計思想指導(dǎo)下進(jìn)行設(shè)計。第一節(jié) 系統(tǒng)測量的基本原理 本次所設(shè)計的數(shù)字功率表就是對于
5、如圖2.1所示的二端網(wǎng)絡(luò)中的電路參數(shù)進(jìn)行測量,假設(shè)端電流i及端電壓u是在關(guān)聯(lián)參考下,并分別為2i=isint,u=usin(t+),式子中是電壓超前于電流的相位角。則網(wǎng)絡(luò)的瞬時功率為p=ui=usin(t+)isint=uicos-cos(2t+)= uicos- ui cos(2t+),其中u、i分別是電路中電壓和電流的有效值,u的范圍為0600v,i的范圍為010a。由于二端網(wǎng)絡(luò)能量消耗表現(xiàn)為網(wǎng)絡(luò)中存在有功功率,故有功功率p為p= uicos,式子中的u,i,p,cos就是本次設(shè)計的數(shù)字功率表所要測量的量。niu+-圖 2.1第二節(jié) 基本設(shè)計思想由于這個課題要求就是設(shè)計一個系統(tǒng)可以對電路正
6、在運行時的參量進(jìn)行測量、保存、顯示,對于單片機(jī)軟件的開發(fā),可以選用c語言或者匯編語言。在這次設(shè)計中本人選擇了匯編語言來進(jìn)行開發(fā),因為匯編語言具有指令簡單,運行速度快,便于開發(fā)的優(yōu)點,而且在學(xué)單片機(jī)編程的時候主要學(xué)的語言就是匯編語言,雖然感覺它不像高級語言那樣通用性強(qiáng),但是對這個系統(tǒng)來說并不需要考慮它的移植性,所以選用匯編語言來開發(fā)這個系統(tǒng)是完全可以的。這個系統(tǒng)的設(shè)計總的思路如下:對于電路中的電壓和電流的測量,可以通過系統(tǒng)的前置電路把其轉(zhuǎn)換成可供采樣電壓信號,再通過ad轉(zhuǎn)換送入單片機(jī)處理,由軟件讀出,然后進(jìn)行處理,處理后參數(shù)由液晶顯示器顯示出來。對相位角的測量,采用過零比較的方法利用單片機(jī)的定時
7、器對電壓與電流的過零點的時間差進(jìn)行確定,再通過計算就可以確定電壓與電流的相位差,此時定時器如果采用定時的方式就會產(chǎn)生很大的誤差,所以在軟件編程時選用定時器計數(shù)的方式而不是定時方式。而對于功率因數(shù)的測量則相對簡單,由于相位角經(jīng)被測量得到,所以可以通過功率因數(shù)等于cos來查表得到.功率的測量則是通過公式p=u*i*cos計算出來的。這樣用這個系統(tǒng)就可以測量出電路在運行時候的各個參數(shù),并可以將電路每一個時刻所對應(yīng)的電壓、電流、功率、功率因數(shù)四個參數(shù)當(dāng)成一組數(shù)據(jù)通過液晶顯示器顯示出來。再通過功能鍵的調(diào)用可以將當(dāng)前顯示的數(shù)據(jù)保存到片外存儲器中,也可以將當(dāng)前顯示的數(shù)據(jù)從片外存儲器中刪除,也可以顯示上組數(shù)據(jù)
8、或者下組數(shù)據(jù)。另外與傳統(tǒng)儀表不相同的一個地方就是它可以與上位機(jī)進(jìn)行通信,當(dāng)上位機(jī)發(fā)送要求與儀表進(jìn)行通信的請求信號后,數(shù)字功率表可以把我們保存在片外存儲器的數(shù)據(jù)發(fā)送給上位機(jī)。根據(jù)儀表的功能要求和技術(shù)經(jīng)濟(jì)指標(biāo),由大到小地按儀表功能層次把軟件分為若干個模塊,分別進(jìn)行設(shè)計和調(diào)試,然后把各個模塊連接起來形成整個系統(tǒng),最后與系統(tǒng)的硬件聯(lián)調(diào)。根據(jù)數(shù)字功率表的硬件電路和上面所述的軟件設(shè)計思路將軟件分為監(jiān)控主程序、相位角測量子程序、電壓有效值測量子程序、電流有效值測量子程序、顯示子程序、鍵盤處理子程序、通信子程序等幾個模塊分別進(jìn)行設(shè)計與調(diào)試,最后將它們整體連接起來進(jìn)行形成總的軟件系統(tǒng)與硬件電路聯(lián)調(diào)觀測能否達(dá)到預(yù)
9、先要求的功能。第三章 系統(tǒng)硬件分析3.1 單片機(jī)電路測試系統(tǒng)的分析單片機(jī)電路測試系統(tǒng)主要由一塊at89c52、一塊24c16數(shù)據(jù)存儲器、以及人機(jī)接口電路(主要是鍵盤電路)以及前向測試通道構(gòu)成。它要完成的主要任務(wù)就是把系統(tǒng)從前向通道輸入的數(shù)據(jù)進(jìn)行處理之后,通過內(nèi)部總線送給片外的24c16數(shù)據(jù)存儲器進(jìn)行儲存,并要能將處理過的數(shù)據(jù)通過液晶顯示器的顯示電路顯示出來。就像人類的大腦一樣可以對數(shù)據(jù)進(jìn)行輸入,處理,輸出,或是產(chǎn)生一系列控制信號。3.1.1 at89c52單片機(jī)簡介:at89c52是一種低功耗、高性能的片內(nèi)含有8kb快閃可編程/擦除只讀存儲器的8位cmos微控制器和256bytes的隨機(jī)存取數(shù)
10、據(jù)存儲器(ram)使用高密度、非易失存儲技術(shù)制造,并且與標(biāo)準(zhǔn)mcs-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(cpu)和flash存儲單元,功能強(qiáng)大的at89c52單片機(jī)適合于許多較為復(fù)雜的控制應(yīng)用場合。以下是89c52的引腳圖以及它的主要性能參數(shù): 3.1.2 數(shù)據(jù)存儲器24c16的擴(kuò)展由于我們所設(shè)計的數(shù)字功率表的系統(tǒng)并不是很大,所要存儲的數(shù)據(jù)也并不是非常多,所以我們在選擇片外數(shù)據(jù)存儲器的時候我們選用了串行e2ppom 24c16。選用它的原因是在系統(tǒng)掉電后它所存儲的數(shù)據(jù)并不消失,并且它與單片機(jī)相連的管腳也比較少,節(jié)約了系統(tǒng)的硬件資源。當(dāng)然它也有一定的不足,就是在軟件編程
11、時比較麻煩。下面是對24c16的簡單介紹:24c16是一個16k位的串行e2ppom,內(nèi)部含有2048個8位字節(jié),該器件通過i2c總線進(jìn)行操作,有一個專門的寫保護(hù)功能。其管腳配置如下所示:管腳名稱功能a0、a1、a2器件地址選擇sda串行數(shù)據(jù)/地址scl串行時鐘wp寫保護(hù)vcc+1.8v到6.0v工作電壓vss地 表 3.1 24c16的功能描述:24c16支持i2c 總線數(shù)據(jù)傳送協(xié)議,i2c總線規(guī)定,任何將數(shù)據(jù)傳送到總線的器件稱為發(fā)送器。任何從總線接收數(shù)據(jù)的器件稱為接收器。數(shù)據(jù)傳送是由產(chǎn)生串行時鐘和所有起始停止信號的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控制傳送數(shù)據(jù)
12、(發(fā)送或接收)的模式。由于在本次軟件系統(tǒng)中要編制24c16的讀寫程序所以在此有必要介紹一下24c16的一些時序。124c16的起始信號:時鐘線為高電平期間,數(shù)據(jù)線電平從高到低的跳變作為24c16的起始信號。224c16的停止信號:時鐘線為高電平期間,數(shù)據(jù)線電平從低到高的跳變作為24c16的停止信號。24c16的起始/停止時序如下圖3.1所示: 圖3.1 起始/停止時序圖24c16的尋址過程:主器件通過發(fā)送一個起始信號啟動發(fā)送過程,然后發(fā)送控制命令字,該控制字的高4位固定為1010,接下來的三位(a2、a1、a0)為器件的地址位,用來定義哪個器件以及器件的哪一個部分被主器件訪問,而 控制字的最低
13、位則作為讀寫控制位?!?”表示對從器件進(jìn)行讀操作,“0”表示對從器件進(jìn)行寫操作。接下來主器件發(fā)送要訪問的從器件的地址,在主器件發(fā)送起始信號和從器件地址字節(jié)后24c16監(jiān)視總線并當(dāng)其地址與發(fā)送的從地址相符時響應(yīng)一個應(yīng)答信號(通過sda線)。24c16再根據(jù)讀寫控制位(r/w)的狀態(tài)進(jìn)行讀或?qū)懖僮鳌?4c16在本次電路中的接法如3.2圖所示。 圖 3.2 24c16在本系統(tǒng)中的接法3.2 系統(tǒng)的前向通道用單片機(jī)組成測控系統(tǒng)時,系統(tǒng)必須有被測電信號的輸入通道,即前向通道,用來采集必要的輸入信息。而本測試系統(tǒng)的前向通道構(gòu)成及接口如下:3.2.1電壓、電流測試的前置電路由于本系統(tǒng)測量電壓的有效值范圍是0
14、v到600v,電流有效值的范圍是0a到10a,而模數(shù)轉(zhuǎn)換器采樣電壓僅僅為0到5v的直流電壓,所以在硬件上需要設(shè)計電壓和電流的前置通道完成強(qiáng)電到弱電的轉(zhuǎn)換。即外部電壓或電流先經(jīng)過互感電路變換、整流電路整流、分壓電路分壓最后才可以被模數(shù)轉(zhuǎn)換器采樣。具體變換過程如下所述:(1)電壓與電流的變換電路 圖3.3 電壓變換電路 圖 3.4 電流變換電路在硬件中電壓與電流的變換過程如上面兩幅圖所示,由于在本次電路中選擇的電壓互感器為tva1421-01型號,所按上圖所示我們可以得到當(dāng)電壓互感器輸入0600v對應(yīng)的輸出電壓ud為010v,兩者之間成線性變化的。同樣因為我們選用的電流互感器為tva142-03,
15、按圖3.4所接法有當(dāng)輸入為010a對應(yīng)的輸出就為010v,輸入和輸出兩者之間成線性變化。(2)小量程采樣通道圖3.5 電壓小量程采樣通道 圖3.6 電流小量程采樣通道為了提高測量的精度在硬件系統(tǒng)中設(shè)計兩個程通道,一個是大量程通道另一個是小量程通道,當(dāng)外電路電壓通過互感器變換后的電壓如果比較?。ū热缰挥?v)時我們測量選用小量程通道,因為此時我們?nèi)糁苯舆x用大量程通道的話,由于轉(zhuǎn)換后的電壓本身就很小了,再經(jīng)過整流和分壓后采樣電壓就會非常更小了,這樣采樣就會形成很大的誤差。而選小量程通道則不同,我們將通過互感器變換后的交流電壓放大十倍再通過像大量程通道一樣的電路進(jìn)行重新采樣測量則誤差會減小很多,這樣
16、測量誤差就只有原來誤差的十分之一。當(dāng)然當(dāng)通過互感器變換后電壓比較大的時比如5v,我們?nèi)绻匀挥眯×砍痰脑拕t電壓被放大十倍后再通過電阻進(jìn)行分壓,則輸入模數(shù)轉(zhuǎn)換器的電壓就近似穩(wěn)定在5v左右,這樣采樣的值也就不準(zhǔn)確了,像在這種時候量程通道就應(yīng)該選擇大量程通道,這樣采樣處理得出的電壓值才能與電路的真實值相等。(3)大量程采樣通道圖 3.7 電壓大量程采樣通道圖3.8 電流大量程采樣通道當(dāng)通過互感器變換后電壓比較大時候系統(tǒng)將選擇大量程通道,該通道變換過程如下:變換后的交流電壓(電流)首先經(jīng)過二極管整流電路進(jìn)行整流,得到0到10v范圍內(nèi)的直流電壓,但由于a/d轉(zhuǎn)換器的工作電壓為0到+5v,所以要通過電阻進(jìn)
17、行分壓。出于對測量設(shè)備的保護(hù),在信號送入tlc2543之前并聯(lián)一個穩(wěn)壓二極管對直流電壓信號進(jìn)行穩(wěn)壓,確保輸出電壓為+5v范圍內(nèi)。電壓(或者電流)的量程的自動轉(zhuǎn)換則通過軟件來實現(xiàn),關(guān)于量程轉(zhuǎn)換將在第四章軟件設(shè)計中具體介紹,在此就不再敘述。 3.2.2 相位角測試的前置電路該電路原理圖如圖3.8所示,其主要由限幅電路、過零檢測器和光電耦合器組成。當(dāng)外電路電壓(或電流)通過互感器變換后的采樣電壓(電流)值大于0時,則1點(14點)的電位小于零,發(fā)光二極管導(dǎo)通,使光電耦合器作用導(dǎo)致p32輸出低電平。當(dāng)電壓(電流)的負(fù)半軸經(jīng)過零點時,1點(14點)的電位大于零且近似為12v,這個時候發(fā)光二極管不導(dǎo)通,使
18、得光電耦合器不作用p33輸出為高電平。由于已知本系統(tǒng)所測量的電路頻率主要為50hz的交流電,在系統(tǒng)中電壓接入外部中斷0(單片機(jī)的p32管腳),電流接入外部中斷1(單片機(jī)的p33管腳),這樣根據(jù)電壓和電流過零的時間差,再通過軟件編程我們可以計算出電壓和電流之間相差的相位角,由此可看出在這個電路中光電耦合器有兩種作用:電氣隔離和電平轉(zhuǎn)換,從而滿足了系統(tǒng)要求。 圖 3.8 相位角測量前置電路3.2.3 模數(shù)轉(zhuǎn)換電路數(shù)字功率表主要用到了模數(shù)轉(zhuǎn)換電路,本次課題選用的a/d轉(zhuǎn)換芯片是最多可以有11路模擬量輸入的tlc2543,因為tlc2543不光轉(zhuǎn)換時間很短而且采樣的精度也非常高,完全可以滿足本系統(tǒng)的測
19、量要求。以下是對該芯片的簡單介紹:tlc2543是12位開關(guān)電容逐次逼近模/數(shù)轉(zhuǎn)換器。有片選(cs)、輸入/輸出時鐘(clock)以及地址輸入端(datai)三個控制輸入端,可通過串行的三態(tài)輸出端與主處理器或其他外圍串行口高速傳輸數(shù)據(jù)。除有通用的數(shù)字控制能力外,該器件有一個片內(nèi)的14路模擬開關(guān),可選擇11個輸入中的任何1個或3個內(nèi)部自測試電壓中的一個。采樣保持是自動的。在轉(zhuǎn)換結(jié)束時,eoc輸出端變高以指示轉(zhuǎn)換的完成。tlc2543的基準(zhǔn)由外電路提供,可差分輸入也可單端輸入,范圍是+2.5v到vcc。在允許的溫度范圍內(nèi)轉(zhuǎn)換時間小于10us,線性誤差小于。有片內(nèi)轉(zhuǎn)換時鐘,i/o最高時鐘頻率為4.1
20、mhz,工作電源是+5v0.25v。tlc2543可通過軟件設(shè)置為下列輸出方式: 單極性或雙極性輸出。 msb(d11位)或lsb(d0位)作前導(dǎo)輸出。 可變輸出數(shù)據(jù)長度。表3.2是tlc2543的輸入寄存器格式,tlc2543在本系統(tǒng)中其硬件電路圖如圖3.6所示,在本次畢業(yè)設(shè)計中由于對采樣的精度要求非常高,所以在編程的時候軟件要將tlc2543設(shè)置成單極性輸出,msb做前導(dǎo)輸出并且輸出的數(shù)據(jù)長度為12位。根據(jù)硬件原理圖和表格3.2可以確定出各個量程的的通道地址以及tlc2543的控制格式如表3.3所示:圖 3.6 tlc2543的接口電路功能選擇輸入數(shù)據(jù)字節(jié)備 注 地址位l1 l0 lsbf
21、bip d7=msbd0=lsb d7 d6 d5 d4d3d2d1 d0ain0ain1ain2ain3ain4ain5ain6ain7ain8ain9ain1000000000111000011110000011001100101010101010選擇輸入通道ref+與ref差模1011內(nèi)部測試ref單端1100ref+單端1101軟件斷電1110輸出8位輸出12位輸出16位01101輸出數(shù)據(jù)長度msb先出lsb先出01順序輸出單極性雙極性01極性表3.2 tlc2543的輸入寄存器格式原理圖中電壓和電流各個通道與之對應(yīng)的tlc2543的通道通道地址以及控制格式電壓小量程通道in320h電
22、壓大量程通道in430h電流小量程通道in100h電流大量程通道in210h表3.3 各個量程通道對應(yīng)地址和控制格式3.3 人機(jī)接口電路單片機(jī)應(yīng)用系統(tǒng)通常都需要進(jìn)行人-機(jī)對話。這包括人對應(yīng)用系統(tǒng)的狀態(tài)干預(yù)與數(shù)據(jù)輸入,還有應(yīng)用系統(tǒng)向人顯示運行狀態(tài)與運行結(jié)果等。如鍵盤、顯示器就是用來完成人-機(jī)對話活動的人-機(jī)通道。3.3.1鍵盤接口的分析鍵盤是由一組按壓式或觸模式開關(guān)構(gòu)成的陣列。智能儀表鍵盤的設(shè)置應(yīng)由該儀表具體的功能來決定。因為本測試系統(tǒng)的功能鍵比較少,一共就六個按鍵,所以在硬件設(shè)計的時候在鍵盤選擇上選用了獨立式的按鍵,獨立式按鍵就是各鍵相互獨立,每個按鍵各接一根輸入線,這樣一根輸入線上的按鍵工作
23、狀態(tài)就不會影響其他輸入或輸出的工作狀態(tài)。因此通過檢測輸入線的電平狀態(tài)便可以很容易的判斷哪個按鍵被按下了。我將這六個按鍵分別定義為控制測試系統(tǒng)的復(fù)位、取消處理、保存處理、上一組處理、下一組處理,跳出處理這六個不同的功能。本次設(shè)計的鍵盤電路如下:圖 3.93.3.2 液晶顯示電路在顯示器的選擇上我們選擇了字符型可編程字符液晶顯示控制器,其型號是mdls16268,因為此可編程字符液晶顯示控制器有其專用指令集,易于編程,而且用它最多可以用來顯示兩行共三十二個字符,這些對于功率表來說已經(jīng)完全足夠了。圖3.12為該液晶在本系統(tǒng)中的電氣連接圖: 圖 3.12 液晶顯示器電氣連接圖第四章 軟件設(shè)計前面一章對
24、系統(tǒng)的硬件作了較為簡單的分析。但硬件的運作離不開軟件的支持。因此,這一章詳細(xì)介紹了系統(tǒng)軟件設(shè)計的過程。這也是本次畢業(yè)設(shè)計的重點內(nèi)容。本章主要針對數(shù)字功率表的測量介紹了軟件實現(xiàn)的過程。在本章中我對像一些子程序像雙字節(jié)無符號數(shù)的乘除法、二進(jìn)制數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換、數(shù)據(jù)的排序取平均值、線性插值等之類子程序并沒有做介紹,因為此類的子程序我們能在參考書上很容易找到現(xiàn)成的模塊,這些都是前人的經(jīng)驗結(jié)晶,在這個系統(tǒng)中我是直接對它們進(jìn)行調(diào)試后引用的。最后還對本次軟件開發(fā)工具,即軟件開發(fā)工具仿真器medwin作了一定的介紹。 4.1 程序設(shè)計 在任務(wù)的總體設(shè)計思想和硬件確定之后,就可以開始設(shè)計程序,根據(jù)前面介紹的工
25、作原理和技術(shù)指標(biāo),軟件設(shè)計應(yīng)完成的主要任務(wù)為:(1) 系統(tǒng)的主程序設(shè)計主程序是整個數(shù)字功率表系統(tǒng)控制程序的主框架,它是一個順序執(zhí)行的無限循環(huán)的程序,運行過程必須構(gòu)成一個圈,這樣才能不斷的更新數(shù)據(jù)。主程序應(yīng)不停地順序查詢各種軟件標(biāo)志,并根據(jù)其變化調(diào)用有關(guān)的子程序和執(zhí)行相應(yīng)的服務(wù)子程序,以完成對各種實時事件的處理。本系統(tǒng)中,主程序的主要功能是測量和調(diào)用鍵盤掃描子程序,當(dāng)系統(tǒng)測量完成后我們調(diào)用鍵盤掃描子程序,根據(jù)掃描子程序得到所按的鍵的鍵值,按鍵值跳轉(zhuǎn)到相應(yīng)的功能鍵子程序?qū)崿F(xiàn)各種功能,并在返回主程序后調(diào)用顯示子程序在顯示器輸出相應(yīng)數(shù)據(jù)。主程序框圖如圖4.1所示。其具體程序見附錄四程序清單。通信處理調(diào)
26、用鍵盤掃描子程序n初始化程序調(diào)用顯示子程序有鍵按下?鍵值判別程序調(diào)用測量程序y開始下組處理處理 上組處理處理跳出處理處理取消處理處理采樣處理圖4.1(2)初始化子程序的設(shè)計 初始化程序主要用來確定程序的初始堆棧,程序狀態(tài)字,對相應(yīng)的存儲單元進(jìn)行清零,設(shè)定定時器工作方式等等,初始化程序的具體步驟如下:1) 由于單片機(jī)在復(fù)位后堆棧為07h,所以在系統(tǒng)開始后應(yīng)該重新設(shè)置堆棧;2) 清24c16寫保護(hù),讀取標(biāo)志寄存器的內(nèi)容,比較標(biāo)志寄存器中的內(nèi)容是否等于0aah,如果相等則保持系統(tǒng)上次運行的狀態(tài),否則清除以前狀態(tài);3) 設(shè)置定時器工作方式和波特率。在這個系統(tǒng)中由于我們在測量電壓和電流之間的相位差的時候
27、要用到定時器t0,所以在初始化時我們便要設(shè)定定時器t0的工作方式,由于單片機(jī)在這個系統(tǒng)中要與上位機(jī)進(jìn)行通信,所以波特率的設(shè)置是非常必要的,在這個系統(tǒng)中,我們選用t1工作于方式2作為波特率發(fā)生器,設(shè)t1的計數(shù)器初值為x,依據(jù)公式波特率=(其中為系統(tǒng)的振蕩頻率在本系統(tǒng)中為11.0592mhz)由于在本系統(tǒng)中下我們選擇的波特率為9600,所以我們便可以由上式計算得x=0fdh。根據(jù)上面所述我們設(shè)定t1工作于定時方式2,t0計數(shù)方式1,串口工作于方式1。4) 初始化液晶顯示器,液晶顯示器在重新上電后必須重新初始化才能顯示字符,所以在初始化子程序中此步驟必不可少。整個系統(tǒng)的初始化子程序軟件流程圖如圖4.
28、2所示:y確定堆棧,清寫保護(hù)系統(tǒng)是否是第一次上電標(biāo)志寄存器送0aah清數(shù)據(jù)處理區(qū)讀取標(biāo)志寄存器的內(nèi)容清計數(shù)內(nèi)容設(shè)定定時器的工作方式na開始 初始化液晶顯示器顯示初始畫面設(shè)置波特率,串口工作方式a初始化結(jié)束 圖 4.2初始化程序如下:org 0000h start: mov sp,#60h clr swp ;清24c16寫保護(hù) mov dptr,#bzjcq mov dzjcqh,dph mov dzjcql,dpl call eeprd cjne a,#0aah,fw1 mov tmod,#21h ;t1定時方式2,t0計數(shù)方式1 mov th1,#0fdh ;波特率9600 mov tl1,
29、#0fdh mov scon,#50h ;串行口方式1 mov pcon,#00h setb tr1 clr rs clr r_w clr e call csheda ;初始化液晶 call display ;顯示初始畫面(3)測量子程序這部分是整個系統(tǒng)的主要測量程序,是整個循環(huán)程序的主體內(nèi)容。這部分我們要完成的主要任務(wù)有電壓和電流之間相位差的測量、功率因數(shù)的計算,電壓有效值的測量、電流有效值的測量以及功率的計算,整個測量子程序的流程圖如圖4.4所示:測量相位差查表求功率因數(shù)測量電壓有效值測量電流有效值計算功率調(diào)用顯示子程序顯示處理置顯示標(biāo)志位 圖 4.3其中測量子程序中又包含如下子程序:(a
30、)功率因數(shù)的測量子程序?qū)﹄妷号c電流之間相位差的測量,我們設(shè)置單片機(jī)的定時器to采用定時器計數(shù)的方式,當(dāng)單片機(jī)的int0由1變成0產(chǎn)生跳變的時候,即電壓波形產(chǎn)生負(fù)跳變的時候,開始計數(shù)。當(dāng)int1由1變成0產(chǎn)生跳變的時候,即電流波形產(chǎn)生正跳變的時候,關(guān)閉定時器t0。當(dāng)int0由0變成1,即電壓波形產(chǎn)生正跳變的時候再次打開定時器t0,但當(dāng)int1的波形由0變成1的時候,即電流波形產(chǎn)生負(fù)跳變的時候,關(guān)閉定時器t0。這樣,根據(jù)在定時器t0中所保存的數(shù)值,通過公式(其中t為交流電路頻率,為電壓和電流之間的相位差)得,即,為了程序計算方便我把測量數(shù)值放大了1000倍,其中t為電路的周期,根據(jù)所測電路的頻率為
31、50hz可以得到其中,又為t0的計數(shù)值帶入上式,所以便可以計算出相位角。然后再通過查表便可以求出功率因數(shù)。對功率因數(shù)的測量子程序流程圖如4.5所示:關(guān)閉t0停止計數(shù)int0=0?等待設(shè)t0初值int0=1?等待啟動t0開始計數(shù)int1=1?等待nynynby 關(guān)閉t0停止計數(shù)重新啟動t0開始計數(shù)int1=0?等待ynb計算相位差計算功率因數(shù) 圖 4.4 功率因數(shù)測量子程序如下:loop10: mov tl0,#0 ;測相位差 mov th0,#0 jnb p3.2,$ jb p3.2,$ setb tr0 ccc: mov dptr,#tabcos ;功率因數(shù) movc a,a+dptr mo
32、v r0,#glyssz mov r0,a(b)電壓、電流的有效值的測量電壓、電流有效值測量過程是這樣的,我們通過硬件和軟件綜合調(diào)試發(fā)現(xiàn)在測量的過程中,電壓(電流)的有效值和我們通過tlc2543回來得到的采樣值并不是完全成線性變化的,在某一范圍內(nèi)甚至誤差很大,這與我們預(yù)期的情況有很大的出入,為了減小這個誤差我們決定在軟件上采用線性插值來解決這個誤差,即我們建立一個不同的電壓(電流)對應(yīng)不同的采樣值這樣的一個表,最后通過采樣回來得到的采樣值進(jìn)行線性插值進(jìn)而得到我們電路中的電壓(電流)的有效值。電壓(電流)測量的量程自動轉(zhuǎn)換就是在這里實現(xiàn),實現(xiàn)的過程如下所述:首先我們先采樣電壓(電流)的小量程通
33、道的電壓然后判斷采樣回來的值是否大于我們小量程電壓(電流)表格中最大電壓(電流)所對應(yīng)的采樣值,如果小于等于則證明我們所選擇的通道量程正確,則查小量程電壓(電流)表格進(jìn)行線性插值計算的出電壓(電流)的有效值。否則的話我們轉(zhuǎn)大量程通道重新采樣再查大量程表格進(jìn)行線性插值計算最終得到電壓(電流)的有效值。在這里,大量程與小量程的分界點,電壓在40v,電流在1a。在編制采樣子程序的時候,為了克服由于系統(tǒng)的隨機(jī)干擾信號而引起的隨機(jī)誤差,我們對同一通道連續(xù)采樣十次,然后將這十次采樣得到的值由大到小進(jìn)行排序,排完后去掉其中的最大值與最小值,對剩下八個數(shù)據(jù)取平均值,最后得到的平均值就是本次采樣的最終采樣值。電
34、壓有效值測量子程序流程圖如下:線性插值查大量程電壓表格返回線性插值選定電壓小量程通道電壓值是否大于40v調(diào)用采樣子程序查小量程電壓表格選定電壓大量程通道調(diào)用采樣子程序yn 圖 4.5電流有效值測量子程序流程圖如下:線性插值查大量程電流表格返回線性插值選定電壓小量程通道電流值是否大于1a調(diào)用采樣子程序查小量程電流表格選定電流大量程通道調(diào)用采樣子程序yn 圖 4.6采樣子程序流程圖如下: 采樣10次采樣值按從大到小排序選定通道與寄存器組將psw壓棧c 取平均值將psw彈出堆棧返回c圖4.7 程序如下:測量電壓子程序 cydy0: mov tdjcq,#20h cydy1: call cy1 clr
35、 c mov r4,a mov r5,b mov a,r4 subb a,#0ch jnc cydy2 jz aaa jnz mmmm aaa: mov a,r5 subb a,#0a1h jnc cydy2 mmmm: mov dptr,#tabdy0 mov jsq3,#9 call cheta ret cydy2: mov tdjcq,#30h call cy1 mov r4,a mov r5,b mov dptr,#tabdy1 mov jsq3,#22 call cheta ret測量電流子程序 cydl0: mov tdjcq,#00h cydl1: call cy1 clr c
36、mov r4,a mov r5,b mov a,r4 subb a,#0ch jnc cydl2 jz lll jnz mmm lll: mov a,r5 subb a,#0d6h jnc cydl2 mmm: mov dptr,#tabdl0 mov jsq3,#6 call cheta ret cydl2: mov tdjcq,#30h call cy1 mov r4,a mov r5,b mov dptr,#tabdl1 mov jsq3,#7 call cheta ret采樣子程序 cy1:push psw setb psw.3 mov r7,#10 ;采樣10次 mov r1,#sh
37、jjcq cy2:mov a,tdjcq call cy2543 mov r1,b inc r1 mov r1,a inc r1 djnz r7,cy2 call pxu ;將采樣的數(shù)從大到小排序 call qpjz ;取平均值 mov a,r4 mov b,r5 pop psw ret(c)功率的測量準(zhǔn)確來講,功率并不是直接測出來的,而是通過軟件間接的算出來的。我們先通過測量得到電流有效值i,電壓有效值u然后根據(jù)公式便可以計算出功率的數(shù)值,然后再送入glsz單元。 功率測試流程圖如圖 4.9所示:取電流值 取功率因數(shù)值 相乘結(jié)果存入glsz單元 乘以glsz取電壓值 結(jié)果送入glsz單元圖
38、4.8測量功率的子程序如下:mov dlsz,a mov a,r7 mov dlsz+1,a mov r2,#00h mov a,glyssz mov r3,a call ndiv1 ;(r2r3r4r5)/r6r7=r4r5 mov a,r4 mov glsz,a mov a,r5 mov glsz+1,a(4)顯示處理子程序該程序主要目的是將我們要顯示的數(shù)據(jù)轉(zhuǎn)換成液晶能顯示的ascal碼送往顯示緩沖區(qū)。在本系統(tǒng)中由于采樣回來得到的數(shù)據(jù)是二進(jìn)制數(shù)液晶并不能直接將其顯示,所以我們要將其轉(zhuǎn)換成液晶可以顯示的ascal碼。顯示處理流程圖如圖4.9所示。(5)液晶顯示子程序 液晶顯示子程序包括兩個部
39、分,即液晶初始化子程序和液晶顯示字符子程序,液晶如果不經(jīng)過初始化即使將顯示數(shù)據(jù)送到液晶數(shù)據(jù)存儲器上液晶也不能顯示數(shù)據(jù),所以我們編制程序的時候系統(tǒng)初始化的時候最重要的一個環(huán)節(jié)就包括了液晶的初始化。液晶的初始化包括了液晶工作方式的設(shè)定、輸入方式設(shè)定、清屏等等。其軟件流程圖如圖4.10所示。 液晶顯示子程序的另一個部分就是液晶顯示字符的子程序,這個子程序的功能就是將要顯示的數(shù)據(jù)送到液晶顯示器的顯示ram中,在這個過程中最關(guān)鍵的事就是要確定顯示ram的地址,在本次設(shè)計中,液晶顯示器的第一行ram對應(yīng)的地址是從00h到0fh,第二行對應(yīng)的地址是從40h到4fh。顯示子程序具體流程圖如圖4.11所示:模式
40、符號u送顯緩沖區(qū)電壓值取出 轉(zhuǎn)成bzd碼 轉(zhuǎn)換成ascal碼送往緩沖區(qū)模式符號i送緩沖區(qū)電壓值取出轉(zhuǎn)成bzd碼轉(zhuǎn)換成ascal碼送往緩沖區(qū) 模式符號p送顯緩沖區(qū) dd功率值取出 轉(zhuǎn)成bzd碼 轉(zhuǎn)換成ascal碼送往緩沖區(qū)模式符號cos送顯緩沖區(qū)功率因數(shù)值取出 轉(zhuǎn)成bzd碼 轉(zhuǎn)換成ascal碼送往緩沖區(qū)圖 4.9設(shè)置輸入方式設(shè)置顯示方式循環(huán)設(shè)置三次工作方式設(shè)置指令碼設(shè)置工作方式清 屏返回設(shè)置ddram地址1送第一行要顯示的數(shù)據(jù)設(shè)置ddram地址2送第二行要顯示的數(shù)據(jù)返回 圖4.10 圖4.11顯示處理程序如下:xshcl: mov r0,#xshsz ;顯示電壓u: mov a,#55h mov r0,a inc r0 ret液晶初始化子程序如下:csheda:clr rs ;寫指令 clr r_w mov a,#30h ;工作方式設(shè)置指令代碼 mov c,acc.7 mov dd7,c mov c,acc.6 mov dd6,c mov c,acc.5 mov dd5,c mov c,acc.4 mov dd4,c mov r5,#3 ;循環(huán)3次 int11: setb e clr e call delay ;延遲 djnz r5,
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年 臺州利民保 繳費標(biāo)準(zhǔn)
- 2025-2030年中國無功補(bǔ)償器數(shù)據(jù)監(jiān)測研究報告
- 云南省曲靖市2025屆高三上學(xué)期第一次教學(xué)質(zhì)量監(jiān)測試題 物理 含解析
- XX學(xué)院附屬中學(xué)班級量化管理考核實施方案
- 事業(yè)單位聘用合同續(xù)簽書
- 停車場承包合同新
- 航空航天器部件重量減輕策略
- 廠房電氣安裝安裝合同
- 水上光伏預(yù)制管樁施工方案
- 韶關(guān)采光井造景施工方案
- 2022-8口腔質(zhì)控督查表(培訓(xùn)用)
- TD/T 1054-2018 土地整治術(shù)語(正式版)
- JT-GQB-015-1998公路橋涵標(biāo)準(zhǔn)鋼筋混凝土圓管涵洞
- 日料店服務(wù)禮儀標(biāo)準(zhǔn)培訓(xùn)
- 中國保險業(yè)發(fā)展分析和地區(qū)差異研究的開題報告
- 法制副校長普法知識講座
- 騰訊招聘測評題庫答案大全
- 旅游提成協(xié)議書
- 第六章《平面向量及其應(yīng)用》同步單元必刷卷(基礎(chǔ)卷)(考試版)
- 校園欺凌談話記錄表
- 2024年4月重慶公務(wù)員考試申論真題及答案解析
評論
0/150
提交評論