李莉
摘要:本文介紹了各個(gè)部分的軟件選用及功能。脈沖電源在當(dāng)今社會(huì)是一種很主流的開(kāi)關(guān)電源,脈沖電源系統(tǒng)的軟件部分主要包括兩大部分功能模塊,其中單片機(jī)AT89C51主要負(fù)責(zé)控制功能的實(shí)現(xiàn),而AT89C52則主要作為檢測(cè)芯片完成系統(tǒng)輸出電壓與電流的模數(shù)轉(zhuǎn)換及脈寬和頻率的測(cè)定功能。
脈沖電源在當(dāng)今社會(huì)是一種很主流的開(kāi)關(guān)電源,是一種技術(shù)含量高、知識(shí)面寬、更新?lián)Q代快的產(chǎn)品,被譽(yù)為高效節(jié)能型電源。脈沖電源技術(shù)作為電源電壓變換的一種基礎(chǔ)技術(shù),由于變換方式簡(jiǎn)單,成本低,體積重量小、容易控制 輸出電壓、變換方式等,因此,產(chǎn)生了這種電源變換技術(shù)即開(kāi)關(guān)電源技術(shù)。在經(jīng)濟(jì)與科技高速發(fā)展的時(shí)代過(guò)程中,電源起到至關(guān)重要的作用。
脈沖電源系統(tǒng)的軟件部分主要包括兩大部分功能模塊,其中單片機(jī)AT89C51主要負(fù)責(zé)控制功能的實(shí)現(xiàn),例如鍵盤輸入模塊和控制脈沖產(chǎn)生程序。而AT89C52則主要作為檢測(cè)芯片完成系統(tǒng)輸出電壓與電流的模數(shù)轉(zhuǎn)換及脈寬和頻率的測(cè)定功能。與此同時(shí),不管在控制芯片或者檢測(cè)芯片工作過(guò)程中,者都涉及到液晶顯示功能的實(shí)現(xiàn)。本系統(tǒng)主要采用模塊化的思想對(duì)系統(tǒng)的軟件模塊進(jìn)行劃分。主程序主要完成對(duì)各功能塊的依次調(diào)用即可。下面將予以詳細(xì)介紹
脈沖產(chǎn)生程序
本系統(tǒng)的整體程序主要完成脈寬頻率值的設(shè)定,控制脈沖的產(chǎn)生,輸出參數(shù)的檢測(cè)和顯示等功能。此程序是系統(tǒng)軟件部分的主干,其他各個(gè)模塊的子程序都在主程序的基礎(chǔ)上發(fā)展起來(lái),受主程序調(diào)用。系統(tǒng)整體程序流程見(jiàn)圖1。系統(tǒng)上電后,首先進(jìn)行各個(gè)參數(shù)變量的初始化工作,然后在液晶上顯示系統(tǒng)歡迎界面“歡迎使用本系統(tǒng)",持續(xù)數(shù)秒延時(shí)后進(jìn)入初始設(shè)定界面,在此界面用戶需設(shè)定要求的輸出脈寬和頻率值。在等待鍵盤操作的同時(shí),液晶上一直顯示初始設(shè)定界面內(nèi)容直到有按鍵被檢測(cè)到為止。當(dāng)“ENTER”鍵被按下時(shí),說(shuō)明默認(rèn)參數(shù)無(wú)須修改,直接開(kāi)始輸出控制脈沖;當(dāng)“SURE”鍵被按下時(shí),說(shuō)明需要對(duì)默認(rèn)參數(shù)進(jìn)行修改,則進(jìn)入?yún)?shù)設(shè)定子程序,其中包括keyboard()和key_scan()兩個(gè)函數(shù)調(diào)用,前者完成修改項(xiàng)選擇功能,后者實(shí)現(xiàn)鍵盤掃描以及數(shù)值修改的操作。當(dāng)設(shè)定完畢之后,同樣按下“ENTER”鍵開(kāi)始輸出控制脈沖。由于設(shè)計(jì)要求在運(yùn)行過(guò)程中需要對(duì)輸出參數(shù)進(jìn)行調(diào)整,所以設(shè)置了修改功能。當(dāng)“MODIFY”鍵被按下后,單片機(jī)持續(xù)輸出高電平信號(hào),同時(shí)進(jìn)入設(shè)定界面配合鍵盤操作修改輸出參數(shù)使之滿足要求;而“MODIFY”鍵不動(dòng)作時(shí),AT89C51始終保持輸出控制脈沖并進(jìn)行鍵盤掃描循環(huán)動(dòng)作,AT89C52開(kāi)始檢測(cè)輸出參數(shù)并且顯示在液晶屏幕上
本模塊有output()函數(shù)和output timer()函數(shù)構(gòu)成。output0函數(shù)調(diào)用output timer()函數(shù)主要完成輸出高低電平工作,同時(shí)其也被主函數(shù)調(diào)用。當(dāng)參數(shù)設(shè)定完畢之后,單片機(jī)AT89C51的P1.O引腳不斷輸出控制脈沖,保證系統(tǒng)的正常運(yùn)行。
脈沖產(chǎn)生程序模塊用來(lái)給出控制SG3525工作時(shí)間的脈沖波形,單片機(jī)與脈寬調(diào)制芯片SG3525的關(guān)斷控制引腳10相連。在控制脈沖為高電平時(shí)間段,SG3525停止工作,系統(tǒng)輸出端為低電平。反之則為高電平。在用戶輸入了系統(tǒng)輸出端要求的脈寬和頻率值后,便可得到控制脈沖的高低電平時(shí)間。圖2為脈沖產(chǎn)生程序流程圖。由于程序語(yǔ)言在單片機(jī)中的執(zhí)行時(shí)間是以微秒為計(jì)量單位的,所以為了使脈沖的高低電平時(shí)間更加精確,程序中以微秒作為時(shí)間單位。由于本系統(tǒng)單片機(jī)采用12M晶振,那么其定時(shí)器最長(zhǎng)定時(shí)只有65.535ms,但是要求的頻率變化范圍是1Hz"--50Hz,脈寬變化范圍是10%"---90%,也就是說(shuō)單片機(jī)輸出脈沖的高低電平時(shí)間在2ms"-'900ms之間變化,其范圍超出了65.535ms的極限值。因此,此脈沖產(chǎn)生算法的思路為對(duì)傳遞進(jìn)來(lái)的時(shí)間參數(shù)以50ms為時(shí)分為兩個(gè)流程,分別對(duì)其定時(shí)輸出高低電平。
算法具體工作流程為:若時(shí)間參數(shù)大于50ms,則變量m為50ms的整數(shù)個(gè)數(shù),。n為時(shí)間參數(shù)去掉ra個(gè)50ms剩余的時(shí)間,此時(shí)長(zhǎng)在50ms以內(nèi)。第一步定時(shí)50ms,在中斷服務(wù)程序中設(shè)置標(biāo)志位t記錄申請(qǐng)中斷次數(shù)使其累計(jì)計(jì)時(shí)m個(gè)50ms,第二步再對(duì)剩余時(shí)間n定時(shí),同樣當(dāng)標(biāo)志位flago置位時(shí),定時(shí)結(jié)束,立即將P1.0口電平取反,重復(fù)上述步驟;而時(shí)間參數(shù)小于50ms的情況等同于上述情況第二步,在此不再贅述
檢測(cè)芯片程序模塊
這部分包含三個(gè)主要程序模塊:A/D轉(zhuǎn)換程序,脈寬檢測(cè)與頻率檢測(cè)程序。下面具體介紹。檢測(cè)芯片為AT89C52單片機(jī),其3個(gè)16位定時(shí)器全部得到應(yīng)用,其中定時(shí)器TD和T1用于檢測(cè)頻率,定時(shí)器T2用于檢測(cè)脈寬。
脈沖高壓電源的軟件設(shè)計(jì)。主要通過(guò)兩個(gè)單片機(jī)對(duì)整個(gè)系統(tǒng)進(jìn)行控制和檢測(cè)。AT89C51主要負(fù)責(zé)人機(jī)接口的實(shí)現(xiàn),鍵盤輸入和控制脈沖的產(chǎn)生。AT89C52則用來(lái)檢測(cè)輸出參數(shù)并將其及時(shí)地顯示在液晶屏幕上。我們還自行開(kāi)發(fā)了脈沖發(fā)生算法,輸出脈沖的頻率和脈寬檢測(cè)算法,算法的可行性和可靠性在實(shí)驗(yàn)中得到了證實(shí)。endprint