




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要隨著電力電子技術(shù)的飛速發(fā)展,PWM技術(shù)應(yīng)用越來越廣泛。同時(shí)PWM技術(shù)本身也發(fā)展迅速,各種新理論層出不窮。PWM技術(shù)結(jié)合了電力電子技術(shù)、計(jì)算機(jī)技術(shù)、現(xiàn)代控制理論,具有抗干擾性強(qiáng)、效率高、可靠性好等顯著優(yōu)點(diǎn),已經(jīng)在交流逆變、開關(guān)電源等領(lǐng)域得到廣泛應(yīng)用。 本文在研究PWM技術(shù)當(dāng)前發(fā)展?fàn)顩r基礎(chǔ)上,設(shè)計(jì)了一種基于單片機(jī)的PWM信號(hào)輸出系統(tǒng)。首先對(duì)系統(tǒng)結(jié)構(gòu)和PWM軟件算法進(jìn)行了研究和分析,包括對(duì)各種PWM產(chǎn)生方法的對(duì)比分析和對(duì)稱規(guī)則采樣法的仔細(xì)研究以及系統(tǒng)的功能分區(qū)和總體結(jié)構(gòu)。在總體設(shè)計(jì)完成后又設(shè)計(jì)了硬件電路各個(gè)單元模塊。然后采用C語言編程實(shí)現(xiàn)了系統(tǒng)功能,完成設(shè)計(jì)目標(biāo)。最后對(duì)設(shè)計(jì)的系統(tǒng)進(jìn)行了計(jì)算機(jī)仿真。本設(shè)計(jì)是基于單片機(jī)控制的PWM信號(hào)輸出系統(tǒng),系統(tǒng)以AT89C52單片機(jī)為核心,采用SPWM軟件生成法中對(duì)稱規(guī)則采樣法,用擴(kuò)展按鍵中斷方式輸入有關(guān)控制信號(hào)及參數(shù),可以實(shí)現(xiàn)頻率、占空比、輸出時(shí)間可調(diào)的直流斬波PWM信號(hào)和頻率、調(diào)幅比、輸出時(shí)間可調(diào)的SPWM信號(hào),并在LCD1602上實(shí)時(shí)設(shè)置參數(shù)及輸出狀態(tài)監(jiān)視。關(guān)鍵詞:?jiǎn)纹瑱C(jī);PWM;SPWM;信號(hào);規(guī)則采樣法
ABSTARCTAsthedevelopingofpowerelectronictechnology,PWMtechnologyhasapplyingtomoreandmorefield.Atthesametime,PWMtechnologyitselfhastakenagreatprogress,lotsofnewtheoryhasemerged.PWMtechnologytakesadvantagesofpowerelectronic,computertechnology,andmoderncontroltheory,hasstrongabilityofanti-interference,andismoreefficiency,reliable.Ithasappliedtovastfield,suchasACconverter,DCchopper.Thispaperfirstly,analysisthesituationofPWMtechnology’development,then,designedaPWMsignaloutputsystembasedonSCM.Atthebeginning,westudythesoftalgorithmofPWM,includingcomparisonandanalysisofseveralPWMalgorithmanddeepanalysisofregular-sampling.Wealsodesignedthesystemstructure.Following,hardwareandsoftwareisdesigned.Everyhardwaremoduleisdesignedwiththecomputer,andthesoftwareiswritteninClanguage.Atlast,wetakeasimulation.ThesystemisbasedonAT89C52.Itusebuttonstoinputparameters.ItcanoutputsinglepolarPWMsignals.Thesignal’sfrequency,duty-cycle,outputtimecanbechanged.What’smore,allinformationisshowedinaLCD1602,sothatitiseasiertocommunicatedwiththesystem.Indexterms:SCM;PWM;SPWM;signal;regular-sampling
目錄1緒論 11.1PWM的背景、應(yīng)用及發(fā)展趨勢(shì) 11.2PWM原理 11.3本文的主要工作 22系統(tǒng)方案設(shè)計(jì) 32.1系統(tǒng)PWM算法 32.1.1等面積法 32.1.2硬件調(diào)制法 32.1.3軟件生成法 32.2系統(tǒng)結(jié)構(gòu) 52.3涉及元器件簡(jiǎn)介 52.3.1AT89C52介紹 52.3.2LCD1602簡(jiǎn)介 82.4仿真工具介紹 92.4.1Protues簡(jiǎn)介 92.4.2KeiluVision2簡(jiǎn)介 113硬件電路設(shè)計(jì) 133.1電源 133.2單片機(jī)復(fù)位電路 143.3單片機(jī)時(shí)鐘電路 143.4按鍵中斷 153.5顯示電路 163.6輸出電路 173.7SPWM測(cè)試電路 174軟件設(shè)計(jì) 194.1軟件總流程 194.2直流斬波PWM軟件計(jì)算法 194.3SPWM軟件計(jì)算法 204.4輸出時(shí)間控制 224.5按鍵中斷 234.6LCD1602編程 264.7顯示設(shè)計(jì) 275系統(tǒng)調(diào)試 315.1系統(tǒng)的調(diào)試 315.2系統(tǒng)仿真過程 316結(jié)論 36參考文獻(xiàn) 37附錄 38翻譯部分 50外文原文: 50中文譯文: 56致謝 691緒論1.1PWM的背景、應(yīng)用及發(fā)展趨勢(shì) 模擬信號(hào)的值可以連續(xù)變化,其時(shí)間和幅度的分辨率都沒有限制,可直接用來進(jìn)行控制,但它并不總是非常經(jīng)濟(jì)或可行的。其中一點(diǎn)就是,模擬電路容易隨時(shí)間漂移,因而難以調(diào)節(jié)。能夠解決這個(gè)問題的精密模擬電路可能非常龐大、笨重(如老式的家庭立體聲設(shè)備)和昂貴。模擬電路還有可能嚴(yán)重發(fā)熱,其功耗相對(duì)于工作元件兩端電壓與電流的乘積成正比。模擬電路還可能對(duì)噪聲很敏感,任何擾動(dòng)或噪聲都肯定會(huì)改變電流值的大小。 PWM的一個(gè)優(yōu)點(diǎn)是從處理器到被控系統(tǒng)信號(hào)都是數(shù)字形式的,無需進(jìn)行數(shù)模轉(zhuǎn)換。讓信號(hào)保持為數(shù)字形式可將噪聲影響降到最小。噪聲只有在強(qiáng)到足以將邏輯1改變?yōu)檫壿?或?qū)⑦壿?改變?yōu)檫壿?時(shí),也才能對(duì)數(shù)字信號(hào)產(chǎn)生影響。隨著全控式電力電子器件如可關(guān)斷晶閘管GTO、大功率晶體管IGBT、場(chǎng)效應(yīng)功率晶體管PMOSFET等的出現(xiàn)和應(yīng)用技術(shù)的進(jìn)步,PWM控制技術(shù)在電力電子技術(shù)行業(yè),如:風(fēng)力發(fā)電、電機(jī)調(diào)速、直流供電等領(lǐng)域,得到廣泛的應(yīng)用。在通信領(lǐng)域,由于PWM控制有很強(qiáng)的噪聲抵抗能力,從模擬信號(hào)轉(zhuǎn)向PWM可以極大地延長(zhǎng)通信距離。在接收端,通過適當(dāng)?shù)腞C或LC網(wǎng)絡(luò)可以濾除調(diào)制高頻方波并將信號(hào)還原為模擬形式。在風(fēng)力發(fā)電領(lǐng)域,PWM變換器的控制技術(shù)是其核心技術(shù)之一。由于PWM可以同時(shí)實(shí)現(xiàn)變頻變壓和抑制諧波的特點(diǎn),由此在交流傳動(dòng)及至其它能量變換系統(tǒng)中得到廣泛應(yīng)用。PWM信號(hào)的產(chǎn)生通常有兩種方法一種是軟件的方法另一種是硬件的方法。硬件調(diào)制法模擬電路結(jié)構(gòu)復(fù)雜,難以實(shí)現(xiàn)精確的控制。軟件生成法其實(shí)就是用軟件來實(shí)現(xiàn)調(diào)制的方法,其有兩種基本算法,即自然采樣法和規(guī)則采樣法。隨著電力電子技術(shù),微電子技術(shù)和自動(dòng)控制技術(shù)的發(fā)展以及各種新的理論方法,如現(xiàn)代控制理論,非線性系統(tǒng)控制思想的應(yīng)用,PWM控制技術(shù)獲得了空前的發(fā)展.到目前為止,已出現(xiàn)了多種PWM控制技術(shù)。從PWM確定確定變換器的導(dǎo)通時(shí)間方式來看有三類差別顯著的PWM用于固定開關(guān)頻率的調(diào)制系統(tǒng):在目標(biāo)參考波形和高頻載波的交點(diǎn)去開關(guān)動(dòng)作的自然采樣PWM;在規(guī)則采樣參考波形和高頻載波交點(diǎn)處開關(guān)動(dòng)作的規(guī)則采樣PWM;3)開關(guān)動(dòng)作使得目標(biāo)參考波形在一個(gè)載波周期內(nèi)的積分面積與開關(guān)變換器輸出波形的積分面積相等的直接PWM。PWM技術(shù)朝著許多方向不斷地發(fā)展,例如,人們?cè)絹碓疥P(guān)注電源側(cè)的波形質(zhì)量問題,PWM技術(shù)最近已經(jīng)應(yīng)用于有特殊要求的輸入側(cè)變換器的控制。此外,半導(dǎo)體開關(guān)的開通延遲,損耗等實(shí)際影響近來也受到關(guān)注,產(chǎn)生了隨機(jī)PWM、軟開關(guān)PWM等。1.2PWM原理脈沖寬度調(diào)制(PWM)是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法。通過高分辨率計(jì)數(shù)器的使用,方波的占空比被調(diào)制用來對(duì)一個(gè)具體模擬信號(hào)的電平進(jìn)行編碼。PWM信號(hào)仍然是數(shù)字的,因?yàn)樵诮o定的任何時(shí)刻,滿幅值的直流供電要么完全有(ON),要么完全無(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復(fù)脈沖序列被加到模擬負(fù)載上去的。通的時(shí)候即是直流供電被加到負(fù)載上的時(shí)候,斷的時(shí)候即是供電被斷開的時(shí)候。只要帶寬足夠,任何模擬值都可以使用PWM進(jìn)行編碼。圖SEQ圖\*ARABIC1SPWMSPWM法是一種比較成熟的,目前使用較廣泛的PWM法。前面提到的采樣控制理論中的一個(gè)重要結(jié)論:沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時(shí),其效果基本相同。SPWM法就是以該結(jié)論為理論基礎(chǔ),用脈沖寬度按正弦規(guī)律變化而和正弦波等效的PWM波形即SPWM波形控制逆變電路中開關(guān)器件的通斷,使其輸出的脈沖電壓的面積與所希望輸出的正弦波在相應(yīng)區(qū)間內(nèi)的面積相等,通過改變調(diào)制波的頻率和幅值則可調(diào)節(jié)逆變電路輸出電壓的頻率和幅值。1.3本文的主要工作本文的主要工作是設(shè)計(jì)一個(gè)PWM信號(hào)輸出系統(tǒng),實(shí)現(xiàn)的單極性PWM信號(hào)輸出。在直流斬波PWM中,要求PWM的頻率,占空比,和輸出時(shí)間均可調(diào),輸出頻率為1K-20KHz;在SPWM模式中,頻率,調(diào)幅比及輸出時(shí)間可調(diào),輸出頻率為1-50Hz。
2系統(tǒng)方案設(shè)計(jì)2.1系統(tǒng)PWM算法 PWM的全稱是PulseWidthModulation(脈沖寬度調(diào)制),它是通過改變輸出方波的占空比來改變等效的輸出電壓。SPWM,就是在PWM的基礎(chǔ)上改變了調(diào)制脈沖方式,脈沖寬度時(shí)間占空比按正弦規(guī)律排列,這樣輸出波形經(jīng)過適當(dāng)?shù)臑V波可以做到正弦波輸出。該方法的實(shí)現(xiàn)有以下幾種方案。2.1.1等面積法該方案實(shí)際上就是SPWM法原理的直接闡釋,用同樣數(shù)量的等幅而不等寬的矩形脈沖序列代替正弦波,然后計(jì)算各脈沖的寬度和間隔,并把這些數(shù)據(jù)存于微機(jī)中,通過查表的方式生成PWM信號(hào)控制開關(guān)器件的通斷,以達(dá)到預(yù)期的目的.由于此方法是以SPWM控制的基本原理為出發(fā)點(diǎn),可以準(zhǔn)確地計(jì)算出各開關(guān)器件的通斷時(shí)刻,其所得的的波形很接近正弦波,但其存在計(jì)算繁瑣,數(shù)據(jù)占用內(nèi)存大,不能實(shí)時(shí)控制的缺點(diǎn)。2.1.2硬件調(diào)制法硬件調(diào)制法是為解決等面積法計(jì)算繁瑣的缺點(diǎn)而提出的,其原理就是把所希望的波形作為調(diào)制信號(hào),把接受調(diào)制的信號(hào)作為載波,通過對(duì)載波的調(diào)制得到所期望的PWM波形。通常采用等腰三角波作為載波,當(dāng)調(diào)制信號(hào)波為正弦波時(shí),所得到的就是SPWM波形。其實(shí)方法簡(jiǎn)單,可以用模擬電路構(gòu)成三角波載波和正弦調(diào)制波發(fā)生電路,用比較器來確定它們的交點(diǎn),在交點(diǎn)時(shí)刻對(duì)開關(guān)器件的通斷進(jìn)行控制,就可以生成SPWM波。但是,這種模擬電路結(jié)構(gòu)復(fù)雜,難以實(shí)現(xiàn)精確的控制。2.1.3軟件生成法由于微機(jī)技術(shù)的發(fā)展使得用軟件生成SPWM波形變得比較容易,因此,軟件生成法也就應(yīng)運(yùn)而生。軟件生成法其實(shí)就是用軟件來實(shí)現(xiàn)調(diào)制的方法,其有兩種基本算法:即自然采樣法和規(guī)則采樣法。①自然采樣法以正弦波為調(diào)制波,等腰三角波為載波進(jìn)行比較,在兩個(gè)波形的自然交點(diǎn)時(shí)刻控制開關(guān)器件的通斷,這就是自然采樣法.其優(yōu)點(diǎn)是所得SPWM波形最接近正弦波,但由于三角波與正弦波交點(diǎn)有任意性,脈沖中心在一個(gè)周期內(nèi)不等距,從而脈寬表達(dá)式是一個(gè)超越方程,計(jì)算繁瑣,難以實(shí)時(shí)控制。②規(guī)則采樣法規(guī)則采樣法是一種應(yīng)用較廣的工程實(shí)用方法,一般采用三角波作為載波。其原理就是用三角波對(duì)正弦波進(jìn)行采樣得到階梯波,再以階梯波與三角波的交點(diǎn)時(shí)刻控制開關(guān)器件的通斷,從而實(shí)現(xiàn)SPWM法.當(dāng)三角波只在其頂點(diǎn)(或底點(diǎn))位置對(duì)正弦波進(jìn)行采樣時(shí),由階梯波與三角波的交點(diǎn)所確定的脈寬,在一個(gè)載波周期(即采樣周期)內(nèi)的位置是對(duì)稱的,這種方法稱為對(duì)稱規(guī)則采樣。當(dāng)三角波既在其頂點(diǎn)又在底點(diǎn)時(shí)刻對(duì)正弦波進(jìn)行采樣時(shí),由階梯波與三角波的交點(diǎn)所確定的脈寬,在一個(gè)載波周期(此時(shí)為采樣周期的兩倍)內(nèi)的位置一般并不對(duì)稱,這種方法稱為非對(duì)稱規(guī)則采樣。規(guī)則采樣法是對(duì)自然采樣法的改進(jìn),其主要優(yōu)點(diǎn)就是是計(jì)算簡(jiǎn)單,便于在線實(shí)時(shí)運(yùn)算,其中非對(duì)稱規(guī)則采樣法因階數(shù)多而更接近正弦.其缺點(diǎn)是直流電壓利用率較低,線性控制范圍較小[1]我們這里選擇軟件生產(chǎn)法中計(jì)算簡(jiǎn)便的對(duì)稱規(guī)則采樣法來計(jì)算PWM開關(guān)動(dòng)作時(shí)間。具體實(shí)施時(shí)有兩種方法:(1)單極性SPWM法,見下圖:正弦調(diào)制波周期決定于需要的調(diào)頻比kf,振幅值決定于ku,等腰三角波載波周期決定于載波頻率,振幅不變,等于ku=1時(shí)正弦調(diào)制波的振幅值,每半周期內(nèi)所有三角波的極性均相同(即單極性)。調(diào)制波和載波的交點(diǎn),決定了SPWM脈沖系列的寬度和脈沖音的間隔寬度,每半周期內(nèi)的脈沖系列也是單極性的。單極性調(diào)制的工作特點(diǎn):每半個(gè)周期內(nèi),逆變橋同一橋臂的兩個(gè)逆變器件中,只有一個(gè)器件按脈沖系列的規(guī)律時(shí)通時(shí)斷地工作,另一個(gè)完全截止;而在另半個(gè)周期內(nèi),兩個(gè)器件的工況正好相反,流經(jīng)負(fù)載ZL的便是正、負(fù)交替的交變電流。圖SEQ圖\*ARABIC2單極性SPWM(2)雙極性SPWM法:調(diào)制波仍為正弦波,其周期決定于kf,振幅決定于ku,中曲線①,載波為雙極性的等腰三角波,其周期決定于載波頻率,振幅不變,與ku=1時(shí)正弦波的振幅值相等。調(diào)制波與載波的交點(diǎn)決定了逆變橋輸出相電壓的脈沖系列,此脈沖系列也是雙極性的,但是,由相電壓合成為線電壓(uab=ua-ub;ubc=ub-uc;uca=uc-ua)時(shí),所得到的線電壓脈沖系列卻是單極性的。雙極性調(diào)制的工作特點(diǎn):逆變橋在工作時(shí),同一橋臂的兩個(gè)逆變器件總是按相電壓脈沖系列的規(guī)律交替地導(dǎo)通和關(guān)斷,毫不停息,而流過負(fù)載ZL的是按線電壓規(guī)律變化的交變電流。圖SEQ圖\*ARABIC3雙極性PWM這里我們采用同步調(diào)制單極性SPWM法,載波比N=32,調(diào)幅比K取值(0,1)。工業(yè)上變頻器的調(diào)幅比是跟隨輸出頻率而改變的,如在恒V/F控制中,K需要考慮的因素很多,為簡(jiǎn)化問題,我們選擇手動(dòng)調(diào)節(jié)K。SPWM必須做的工作是:實(shí)時(shí)地計(jì)算調(diào)制波(正弦波)和載波(三角波)的所有交點(diǎn)的時(shí)間坐標(biāo),根據(jù)計(jì)算結(jié)果,有序地向逆變橋中各逆變器件發(fā)出“通”和“斷”的動(dòng)作指令;調(diào)制波的振幅要隨調(diào)制比而變,而載波的振幅則不變,所以,每次調(diào)節(jié)后,交點(diǎn)的時(shí)間坐標(biāo)都必須重新計(jì)算。2.2系統(tǒng)結(jié)構(gòu) 本系統(tǒng)的功能框圖如下??刂破餍枰瓿奢斎胼敵鼋换?,數(shù)據(jù)處理和PWM信號(hào)的生成,我們選擇AT89C52;為了節(jié)省單片機(jī)的I/O,我們選用4個(gè)按鍵輸入;需要顯示的內(nèi)容較多,我們選擇LCD1602;電源則取220V市電整理降壓得到。AT89C52的P3口能驅(qū)動(dòng)4路TTL門電路,能滿足小信號(hào)輸出。我們就直接采用P3^0和P3^1輸出PWM信號(hào)。由于PWM信號(hào)對(duì)定時(shí)的精確度較高,而簡(jiǎn)單的RC電路穩(wěn)定性不好,我們采用晶振和電容并聯(lián)的諧振電路作為時(shí)鐘發(fā)生電路。圖SEQ圖\*ARABIC4系統(tǒng)結(jié)構(gòu)圖2.3涉及元器件簡(jiǎn)介2.3.1AT89C52介紹下圖給出了At89C52的芯片引腳結(jié)構(gòu)。AT89C52單片機(jī)是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8Kbytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256bytes的隨機(jī)數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度,非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容。功能強(qiáng)大的AT89C52單片機(jī)適合于許多較為復(fù)雜的控制應(yīng)用場(chǎng)合。(1)AT89C52主要性能參數(shù)①與Mcs-51產(chǎn)品指令和引腳完全兼容。
②8字節(jié)可重擦寫FLASH閃速存儲(chǔ)器
③1000次擦寫周期
④全靜態(tài)操作:0HZ-24MHZ
⑤三級(jí)加密程序存儲(chǔ)器
⑥256X8字節(jié)內(nèi)部RAM
⑦32個(gè)可編程I/0口線
⑧3個(gè)16位定時(shí)/計(jì)數(shù)器
⑨6個(gè)中斷源
⑩可編程串行UART通道、低功耗空閑和掉電模式(2)At89C52功能特性
AT89C52提供以下標(biāo)準(zhǔn)功能:8字節(jié)FLASH閃速存儲(chǔ)器,256字節(jié)內(nèi)部RAM,32個(gè)I/O口線,3個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89c52可降至OHz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器.串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。圖SEQ圖\*ARABIC5AT89C52引腳圖(3)AT89C52部分引腳功能說明
①XTAL1:片內(nèi)晶振電路反相放大器的輸入端。
②XTAL2:片內(nèi)晶振電路反相放大器的輸出端。
③P0:P0口是一組8位漏極開路型雙向I/O口,即地址/數(shù)據(jù)總線復(fù)用口。
作為輸出口用時(shí).每位能以吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口P0寫“1”時(shí),可作為高阻抗輸入端用。
在FLASH中編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。
④P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,Pl的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。與AT89C51不同之處是,Pl.0和P1.1還可分別作為定時(shí)/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(Pl.0/T2)和外部觸發(fā)輸入(P1.1/T2EX),FLASH編程和程序校驗(yàn)期間,Pl接收低8位地址。
⑤P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯電路。對(duì)端口P2寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。
在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOvx@DPTR指令)時(shí),P2送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器、如執(zhí)行MOVX@RI指令)時(shí),P2口輸出P2鎖存器的內(nèi)容。
FLASH編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。
⑥P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3口將用上拉電阻輸出電流。
P3口除了作為I/0口線外,更重要的用途是它的第二功能,如表格1所示。
表格SEQ表格\*ARABIC1P3口第二功能端口引腳第二功能P3.0RXD(串行輸入口〕P3.1TXD(串行輸出口〕P3.2INTO(外中斷0〕P3.3INTO(外中斷l(xiāng))P3.4TO(定時(shí)/計(jì)數(shù)器0)P3.5Tl(定時(shí)/計(jì)數(shù)器l)P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)⑧ALE/PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié).一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。
對(duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位.可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活,此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。⑨PSEN:程序儲(chǔ)存允許PSEN輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。⑩EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地).需注意的是:如果加密位LBI被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。
flash存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源VPP
,當(dāng)然這必須是該器件是使用12V編程電壓VPP。(4)AT89C52特殊功能寄存器在AT89C52片內(nèi)存儲(chǔ)器中,80H-FFH共128個(gè)單元為特殊功能寄存器(SFE)。并非所有的地址都被定義,從80H-FFH共128個(gè)字節(jié)只有一部分被定義,還有相當(dāng)一部分沒有定義。對(duì)沒有定義的單元讀寫將是無效的,讀出的數(shù)位將不確定,而寫入的數(shù)據(jù)也將丟失。
不應(yīng)將數(shù)據(jù)"1"寫入未定義的單元,由于這些單元在將來的產(chǎn)品中可能賦予新的功能。在這種情況下,復(fù)位后這些單元數(shù)值總是“0”。(5)AT89C52
單片機(jī)擴(kuò)展電路及分析AT89C52提供以下標(biāo)準(zhǔn)功能:8字節(jié)FLASH閃速存儲(chǔ)器,256字節(jié)內(nèi)部RAM,32個(gè)I/O口線,2個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。由于AT89C52具有256字節(jié)內(nèi)部RAM。對(duì)本設(shè)計(jì)已經(jīng)足夠使用,因此不需要再擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器[2.3.2LCD1602簡(jiǎn)介 工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符(16列2行)。1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒茱@示圖形。目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地第2腳:VDD接5V電源正極第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度)。第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。第5腳:RW為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。第6腳:E(或EN)端為使能(enable)端。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。1602LCD的供電電壓為+5V電壓,對(duì)比度可調(diào),內(nèi)含復(fù)位電路,提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能,有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAM,內(nèi)建有192個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM,8個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM。1602LCD微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。因?yàn)?602識(shí)別的是ASCII碼,試驗(yàn)可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,如'A’。2.4仿真工具介紹2.4.1Protues簡(jiǎn)介Protues軟件是英國(guó)Labcenterelectronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯。Protues軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是:(1)原理布圖(2)PCB自動(dòng)或人工布線(3)SPICE電路仿真革命性的特點(diǎn):(1)互動(dòng)的電路仿真。用戶甚至可以實(shí)時(shí)采用諸如RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件。(2)仿真處理器及其外圍電路。可以仿真51系列、AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Protues建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境。Protues具有4大功能模塊:1)智能原理圖設(shè)計(jì)(ISIS)豐富的器件庫(kù):超過27000種元器件,可方便地創(chuàng)建新元件;智能的器件搜索:通過模糊搜索可以快速定位所需要的器件;智能化的連線功能:自動(dòng)連線功能使連接導(dǎo)線簡(jiǎn)單快捷,大大縮短繪圖時(shí)間;支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計(jì)簡(jiǎn)明清晰;可輸出高質(zhì)量圖紙:通過個(gè)性化設(shè)置,可以生成印刷質(zhì)量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。完善的電路仿真功能(Prospice)ProSPICE混合仿真:基于工業(yè)標(biāo)準(zhǔn)SPICE3F5,實(shí)現(xiàn)數(shù)字/模擬電路的混合仿真;超過27000個(gè)仿真器件:可以通過內(nèi)部原型或使用廠家的SPICE文件自行設(shè)計(jì)仿真器件,Labcenter也在不斷地發(fā)布新的仿真器件,還可導(dǎo)入第三方發(fā)布的仿真器件;多樣的激勵(lì)源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數(shù)信號(hào)、單頻FM、數(shù)字時(shí)鐘和碼流,還支持文件形式的信號(hào)輸入;豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號(hào)發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖案發(fā)生器、頻率計(jì)/計(jì)數(shù)器、邏輯探頭、虛擬終端、SPI調(diào)試器、I2C調(diào)試器等;生動(dòng)的仿真顯示:用色點(diǎn)顯示引腳的數(shù)字電平,導(dǎo)線以不同顏色表示其對(duì)地電壓大小,結(jié)合動(dòng)態(tài)器件(如電機(jī)、顯示器件、按鈕)的使用可以使仿真更加直觀、生動(dòng);高級(jí)圖形仿真功能(ASF):基于圖標(biāo)的分析可以精確分析電路的多項(xiàng)指標(biāo),包括工作點(diǎn)、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進(jìn)行一致性分析。2)獨(dú)特的單片機(jī)協(xié)同仿真功能(VSM)支持主流的CPU類型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU類型隨著版本升級(jí)還在繼續(xù)增加,如即將支持CORTEX、DSP處理器;支持通用外設(shè)模型:如字符LCD模塊、圖形LCD模塊、LED點(diǎn)陣、LED七段顯示模塊、鍵盤/按鍵、直流/步進(jìn)/伺服電機(jī)、RS232虛擬終端、電子溫度計(jì)等等,其COMPIM(COM口物理接口模型)還可以使仿真電路通過PC機(jī)串口和外部電路實(shí)現(xiàn)雙向異步串行通信;實(shí)時(shí)仿真:支持UART/USART/EUSARTs仿真、中斷仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真?!幾g及調(diào)試:支持單片機(jī)匯編語言的編輯/編譯/源碼級(jí)仿真,內(nèi)帶8051、AVR、PIC的匯編編譯器,也可以與第三方集成編譯環(huán)境(如IAR、Keil和Hitech)結(jié)合,進(jìn)行高級(jí)語言的源碼級(jí)仿真和調(diào)試。3)實(shí)用的PCB設(shè)計(jì)平臺(tái)原理圖到PCB的快速通道:原理圖設(shè)計(jì)完成后,一鍵便可進(jìn)入ARES的PCB設(shè)計(jì)環(huán)境,實(shí)現(xiàn)從概念到產(chǎn)品的完整設(shè)計(jì);※先進(jìn)的自動(dòng)布局/布線功能:支持器件的自動(dòng)/人工布局;支持無網(wǎng)格自動(dòng)布線或人工布線;支持引腳交換/門交換功能使PCB設(shè)計(jì)更為合理;完整的PCB設(shè)計(jì)功能:最多可設(shè)計(jì)16個(gè)銅箔層,2個(gè)絲印層,4個(gè)機(jī)械層(含板邊),靈活的布線策略供用戶設(shè)置,自動(dòng)設(shè)計(jì)規(guī)則檢查,3D可視化預(yù)覽;※多種輸出格式的支持:可以輸出多種格式文件,包括Gerber文件的導(dǎo)入或?qū)С觯憷c其它PCB設(shè)計(jì)工具的互轉(zhuǎn)(如protel)和PCB板的設(shè)計(jì)和加工。4)Protues提供了豐富的資源(1)Protues可提供的仿真元器件資源:仿真數(shù)字和模擬、交流和直流等數(shù)千種元器件,有30多個(gè)元件庫(kù)。(2)Protues可提供的仿真儀表資源:示波器、邏輯分析儀、虛擬終端、SPI調(diào)試器、I2C調(diào)試器、信號(hào)發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表。理論上同一種儀器可以在一個(gè)電路中隨意的調(diào)用。(3)除了現(xiàn)實(shí)存在的儀器外,Protues還提供了一個(gè)圖形顯示功能,可以將線路上變化的信號(hào),以圖形的方式實(shí)時(shí)地顯示出來,其作用與示波器相似,但功能更多。這些虛擬儀器儀表具有理想的參數(shù)指標(biāo),例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對(duì)測(cè)量結(jié)果的影響。(4)Protues可提供的調(diào)試手段Protues提供了比較豐富的測(cè)試信號(hào)用于電路的測(cè)試。這些測(cè)試信號(hào)包括模擬信號(hào)和數(shù)字信號(hào)。Protues的軟件仿真功能:支持當(dāng)前的主流單片機(jī),如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。1.提供軟件調(diào)試功能。2.提供豐富的外圍接口器件及其仿真。RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件。這樣很接近實(shí)際。在訓(xùn)練學(xué)生時(shí),可以選擇不同的方案,這樣更利于培養(yǎng)學(xué)生。3.提供豐富的虛擬儀器,利用虛擬儀器在仿真過程中可以測(cè)量外圍電路的特性,培養(yǎng)學(xué)生實(shí)際硬件的調(diào)試能力。4.具有強(qiáng)大的原理圖繪制功Protues電路功能仿真:在PROTUES繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTUES的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過程。PROTUES是單片機(jī)課堂教學(xué)的先進(jìn)助手。PROTUES不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對(duì)應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測(cè)、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)是學(xué)生走向就業(yè)的重要實(shí)踐環(huán)節(jié)。由于PROTUES提供了實(shí)驗(yàn)室無法相比的大量的元器件庫(kù),提供了修改電路設(shè)計(jì)的靈活性、提供了實(shí)驗(yàn)室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實(shí)踐精神、創(chuàng)造精神的平臺(tái)。隨著科技的發(fā)展“計(jì)算機(jī)仿真技術(shù)”已成為許多設(shè)計(jì)部門重要的前期設(shè)計(jì)手段。它具有設(shè)計(jì)靈活,結(jié)果、過程的統(tǒng)一的特點(diǎn)。可使設(shè)計(jì)時(shí)間大為縮短、耗資大為減少,也可降低工程制造的風(fēng)險(xiǎn)。相信在單片機(jī)開發(fā)應(yīng)用中PROTUES也能茯得愈來愈廣泛的應(yīng)用。2.4.2KeiluVision2簡(jiǎn)介KeiluVision2是德國(guó)KeilSoftware公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)c語言的語法來開發(fā),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用,而且大大的提高了工作效率和項(xiàng)目開發(fā)周期,他還能嵌入?yún)R編,您可以在關(guān)鍵的位置嵌入,使程序達(dá)到接近于匯編的工作效率。KEILC51標(biāo)準(zhǔn)C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時(shí)保留了匯編代碼高效,快速的特點(diǎn)。C51編譯器的功能不斷增強(qiáng),使你可以更加貼近CPU本身,及其它的衍生產(chǎn)品。C51已被完全集成到uVision2的集成開發(fā)環(huán)境中,這個(gè)集成開發(fā)環(huán)境包含:編譯器,匯編器,實(shí)時(shí)操作系統(tǒng),項(xiàng)目管理器,調(diào)試器。uVision2IDE可為它們提供單一而靈活的開發(fā)環(huán)境。KeilC51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面,能在很短的時(shí)間內(nèi)就能學(xué)會(huì)使用keilc51來開發(fā)單片機(jī)應(yīng)用程序。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。
3硬件電路設(shè)計(jì)3.1電源本電路所需5V直流電源采用工頻220V電源,經(jīng)由一個(gè)變壓器降壓后,通過H橋整流,再使用三端穩(wěn)壓芯片穩(wěn)壓得到。常見的三端穩(wěn)壓集成電路有正電壓輸出的78××系列和負(fù)電壓輸出的79××系列。三端IC的三條引腳分別是輸入端、接地端和輸出端。有TO-220,TO-202的標(biāo)準(zhǔn)封裝,也有9013樣子的TO-92封裝。用78/79系列三端穩(wěn)壓IC來組成穩(wěn)壓電源所需的外圍元件極少,電路內(nèi)部還有過流、過熱及調(diào)整管的保護(hù)電路,使用起來可靠、方便,而且價(jià)格便宜。因?yàn)楸驹O(shè)計(jì)只需要正電壓5V,故這里選用7805[7805的主要電氣參數(shù)如下表:表格SEQ表格\*ARABIC27805電氣參數(shù)參數(shù)符號(hào)測(cè)試條件最小值典型值最大值單位輸出電壓VoTj=25℃4.85.05.2V5.0mA<1o<1.0A,Po<15W
Vi=7.5vto20v
4.75
5.00
5.25
V線性調(diào)整率△VoTj=25℃,Vi=7.5Vto25V4.0100mVTj=25℃,Vi=8Vto12V1.650mV負(fù)載調(diào)整率△VoTj=25℃,lo=5.0mAto1.5A9100mVTj=25℃,lo=250mAto750mA450mV靜態(tài)電流IQTj=25℃5.08mA靜態(tài)電流變化率△IQlo=5mAto1.0A0.030.5mAVi=8Vto25V0.30.8mA輸出電壓溫漂△Vo/△Tlo=5mA0.8mV/
℃輸出噪音電壓VNf=10Hzto100KHz,Ta=25℃42μV紋波抑制比RRf=120Hz,Vi=8Vto18V6273dB輸入輸出電壓差Volo=1.0A,Tj=25℃2V輸出阻抗Rof=1KHz15mΩ短路電流1SCVi=35V,Ta=25℃230mA峰值電流1PKTj=25℃2.2A電路中由于7805的輸入輸出電壓差典型值為2V,設(shè)計(jì)PWM輸出功率3W,加上單片機(jī)及其他功耗,可選用220V/9V/10W規(guī)格的變壓器。整流橋可以選擇正向電流1A,耐壓值為25V。整流出來的波形是脈動(dòng)的,為了得到平穩(wěn)的電壓,在整流橋輸出端接一個(gè)大電容。7805的最高輸出電流約為1.5A,輸出功率:P=UI=5V*1.5A=7.5W故用一片7805可設(shè)計(jì)滿足要求。下圖中C1和C3作平波用,故選用大電容;C2和C4擇消除長(zhǎng)導(dǎo)線的電感效應(yīng),選用小電容。圖SEQ圖\*ARABIC6電源3.2單片機(jī)復(fù)位電路復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位。AT89C52的復(fù)位是靠外電路實(shí)現(xiàn)的,RST引腳是單片機(jī)的復(fù)位輸入端。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。,在時(shí)鐘電路工作后,只要在單片機(jī)的RST引腳上出現(xiàn)24個(gè)時(shí)鐘振蕩脈沖(2個(gè)機(jī)器周期)以上的高電平,單片機(jī)便實(shí)現(xiàn)初始化狀態(tài)復(fù)位。當(dāng)單片機(jī)的時(shí)鐘f=12MHz時(shí),1個(gè)機(jī)器周期為1μS,復(fù)位信號(hào)至少需保持2μS。為了保證應(yīng)用系統(tǒng)可靠地復(fù)位,通常是RST引腳保持10ms以上的高電平。復(fù)位電路連接如圖所示。此電路僅用一個(gè)電容及一個(gè)電阻和一個(gè)按鍵。系統(tǒng)上電時(shí),在RC電路充電過程中,由于電容兩端電壓不能跳變,故使RESET端電平呈高電位,系統(tǒng)復(fù)位。經(jīng)過一段時(shí)間,電容充電,使RESET端呈低電位,復(fù)位結(jié)束。這里C3=20μF,R1=1kΩ,充電時(shí)間常數(shù)t=R1*C3=20ms,滿足要求[3.3單片機(jī)時(shí)鐘電路AT89C52可以使用外部時(shí)鐘電路。這時(shí)外部時(shí)鐘脈沖接到XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2則懸空。外部時(shí)鐘信號(hào)通過一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘的,對(duì)占空比沒有特殊要求。廠商推薦接法如下圖:圖SEQ圖\*ARABIC7外部時(shí)鐘接法但是使用外部時(shí)鐘需要額外時(shí)鐘電路,因此這里我們選用內(nèi)部時(shí)鐘電路,簡(jiǎn)化電路。AT89C52中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖。外接石英晶體及電容C1,C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。外接電容C1C2的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性。廠商推薦使用的是30pF±10pF。時(shí)鐘電路和復(fù)位電路如下圖:圖SEQ圖\*ARABIC8時(shí)鐘復(fù)位電路3.4按鍵中斷AT89C52共有2個(gè)外部中斷,INT0和INT1為兩天外部中斷請(qǐng)求輸入線,都允許外部中斷源以低電平或下降沿觸發(fā)。為了能在線修改參數(shù)而不影響PWM輸出,我們選用優(yōu)先級(jí)低的INT1。本電路中設(shè)計(jì)有4個(gè)按鍵,因此需要進(jìn)行中斷擴(kuò)充。按鍵中斷的電路如圖。工作原理:上電后對(duì)P2.3、P2.4、P2.5、P2.6及P3.3置高位,持續(xù)掃描,如果有按鍵按下,如P2.3對(duì)應(yīng)的按鍵按下,則P2.3接地,檢測(cè)到低電壓,P3.3則通過正向二極管接地,也可認(rèn)為是低電平。其余P2.4、P2.5、P2.6由于與P2.3有反向二極管隔離,仍懸空,認(rèn)為還是高電平,因而能判斷哪個(gè)按鍵按下。圖SEQ圖\*ARABIC9中斷擴(kuò)展3.5顯示電路LCD1602的引腳輸入時(shí)的電流很小,當(dāng)VDD=5V時(shí),高低電平標(biāo)準(zhǔn)和單片機(jī)的P1口兼容,所以這里不需要為L(zhǎng)CD提供額外驅(qū)動(dòng)電路,可與單片機(jī)直接相連。LCD1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地第2腳:VDD接5V電源正極第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,這里通過一個(gè)10K的電位器調(diào)整對(duì)比度)。第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。這里與P2.0連接。第5腳:RW為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。這里與P2.1連接。第6腳:E(或EN)端為使能(enable)端。這里與P2.2連接。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。這里與8位并行口P1連接。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。圖SEQ圖\*ARABIC10顯示3.6輸出電路這里以單片機(jī)P3.0和P3.1作為PWM的輸出口。這兩個(gè)I/O口能驅(qū)動(dòng)一個(gè)TTL門電路,作為信號(hào)輸出可以滿足要求故不再添加額外驅(qū)動(dòng)電路。3.7SPWM測(cè)試電路 在SPWM模式下,P3.0作為正向輸出端口,P3.1為負(fù)向輸出端口。為了把兩路信號(hào)疊加到一塊,我們?cè)O(shè)計(jì)了一個(gè)加法電路。由于單片機(jī)無法輸出負(fù)電壓,所以需要把P3.1的信號(hào)經(jīng)過一個(gè)反向比例放大電路處理后,再和P3.0疊加。后面再添加一個(gè)一階濾波電路,這樣就可以分析逆變的正弦波基本分量。為了減少運(yùn)放對(duì)濾波電路的負(fù)載效應(yīng),同時(shí)便于調(diào)整,現(xiàn)選用LF412。這是一種具有JFET作輸入級(jí)的低失調(diào)、高輸入阻抗運(yùn)放。同時(shí)為了使放大電路不產(chǎn)生飽和失真,需把單片機(jī)輸出的信號(hào)進(jìn)行縮放。Va=VVb=(V-+V這里逆變的正弦信號(hào)頻率為0~50Hz,所以一階濾波電路里截止頻率Wc設(shè)為50Hz。Wc=2πf=1/RC令C=0.1μF可以求得:R=200kΩ[電路圖如下:圖SEQ圖\*ARABIC11SPWM仿真電路4軟件設(shè)計(jì)4.1軟件總流程圖SEQ圖\*ARABIC12軟件總流程圖4.2直流斬波PWM軟件計(jì)算法AT89C52單片機(jī)每個(gè)機(jī)器周期由6個(gè)狀態(tài)組成,每個(gè)狀態(tài)又有兩個(gè)時(shí)鐘周期,這樣一個(gè)機(jī)器周期就等于12個(gè)時(shí)鐘周期,即機(jī)器頻率為時(shí)鐘頻率的12分頻。因此一個(gè)定時(shí)脈沖周期為1uS。我們用T0來產(chǎn)生PWM波。由于需要改變定時(shí)初值,所以這里我們采用方式1。在本方式下,定時(shí)器按16位加1計(jì)數(shù)器工作的,該計(jì)數(shù)器由高8位TH和低8位TL組成。設(shè)PWM輸出頻率為fkHz,占空比為α,PWM的周期:T=1/f*10^(-3)S=1000/fuS由于AT89C52無法處理浮點(diǎn)數(shù),在單片機(jī)內(nèi)占空比取值為(0~100),則在一個(gè)PWM周期內(nèi),高電平的時(shí)間:tHigh=T*α/100=1000/f*α/100uS;定時(shí)器初值:TH0=(65536-tHigh)/256;TL0=(65536-tHigh)%256;低電平的時(shí)間:tLow=T*(100-α)/100=1000/f*α/100uS;定時(shí)器初值:TH0=(65536-tLow)/256;TL0=(65536-tLow)%256;生成直流斬波PWM的軟件流程圖:圖SEQ圖\*ARABIC13直流斬波PWM流程圖4.3SPWM軟件計(jì)算法 這里以對(duì)稱三角波為載波。為了減少AT89C52計(jì)算時(shí)間,我們把正弦值和三角波以數(shù)組形式保存在程序空間里。正弦波和三角波均采樣32點(diǎn),數(shù)值均為0-100。因?yàn)閱纹瑱C(jī)主頻低,我們采用載波比為32。在一個(gè)三角波周期內(nèi),可以認(rèn)為正弦值不變。 設(shè)輸出頻率為f,三角波頻率則為32f。一個(gè)三角波周期分為32段。一個(gè)定時(shí)周期:T=1/(32f)/32S=10^6/(32*32f)μS=1953/fμSSPWM的程序流程圖如下:圖SEQ圖\*ARABIC14SPWM流程圖直流斬波PWM和SPWM程序流程圖如下:/**********************T0中斷服務(wù)程序*******************/voidtimer0(void)interrupt1using1{if(dcac) { tjump=1-tjump; if(tjump==0) { TH0=tempt0;//tempt0=(65536-1000/freq*rac/100)/256; TL0=tempt1;//tempt1=(65536-1000/freq*rac/100)%256; OUTPUT0=1; } if(tjump) { TH0=tempt2;//tempt2=(65536-1000/freq*(100-rac)/100)/256; TL0=tempt3;//tempt3=(65536-1000/freq*(100-rac)/100)%256; OUTPUT0=0; } }else { TH0=tempt0,TL0=tempt1; aci++; if(FLAG) { if(sjb[aci]>tempt4)OUTPUT0=0; else OUTPUT0=1; } else { if(sjb[aci]>tempt4)OUTPUT1=0; else OUTPUT1=1; } if(aci==31) { aci=0,acj++; tempt4=((longunsignedint)sine[acj])*k/10; if(acj==31)acj=0,OUTPUT0=0,OUTPUT1=0,FLAG=1-FLAG; } }}if(tjump){TH0=tempt2;//tempt2=(65536-1000/freq*(100-rac)/100)/256; TL0=tempt3;//tempt3=(65536-1000/freq*(100-rac)/100)%256; OUTPUT=0; }}4.4輸出時(shí)間控制這里我們用定時(shí)器1,同樣工作在方式1。最大定時(shí)時(shí)間:Tmax=2^16*10^(-6)s=65536uS而我們希望輸出時(shí)間以秒記,因此需要進(jìn)行定時(shí)擴(kuò)充。為方便計(jì)算,定時(shí)時(shí)間設(shè)為50000uS。這樣:TH1=(65536-50000)/256=60;TL1=(65536-50000)%256=176;輸出時(shí)間到時(shí)關(guān)閉PWM輸出。輸出時(shí)間控制程序如下:/**********************T1中斷服務(wù)程序*******************/voidtimer1(void)interrupt3using1{ count1++; //定時(shí)擴(kuò)充TH1=60;TL1=176;if(count1==20) //定時(shí)一秒 {count1=0; ToutReal--; if(ToutReal==0)TR0=TR1=0,OUTPUT=0; //關(guān)閉PWM輸出,停止計(jì)時(shí)。}4.5按鍵中斷為了減少硬件開銷少占用單片機(jī)的I/O口,這里只設(shè)計(jì)了4個(gè)按鍵。按鍵動(dòng)作時(shí)的典型波形如圖??梢钥吹綄?shí)際波形中電壓抖動(dòng)現(xiàn)象,影響單片機(jī)判斷。消抖有硬件和軟件兩種方式。硬件消抖可以采用RC電路或RS觸發(fā)器。但是在按鍵多時(shí)增加硬件開銷,所以我們采用軟件消抖的方式。按鍵抖動(dòng)時(shí)間一般為10-20ms,所以可以延時(shí)20ms后判斷按鍵是否真的動(dòng)作(包括按下和松開)。圖SEQ圖\*ARABIC15按鍵動(dòng)作電壓波形C51編譯器支持在C語言源程序中直接編寫89C52單片機(jī)的中斷服務(wù)函數(shù)程序。C51編譯器對(duì)函數(shù)的定義進(jìn)行了擴(kuò)展,增加了一個(gè)擴(kuò)展關(guān)鍵字interrupt。關(guān)鍵字interrupt是函數(shù)定義時(shí)的一個(gè)選項(xiàng),加上這個(gè)選項(xiàng)就可以將一個(gè)函數(shù)定義成中斷服務(wù)函數(shù)。定義中斷服務(wù)函數(shù)的一般形式為中斷表函數(shù)類型函數(shù)名(形式參數(shù)表)[interruptn][usingn]關(guān)鍵字interrupt后面的n是中斷號(hào),n的取值范圍為0~31編譯器從8n+3處產(chǎn)生中斷向量。具體的中斷號(hào)n和中斷向量取決于不同的單片機(jī)芯片:89C52單片機(jī)的常用中斷源和中斷向量如表1所示89C52系列單片機(jī)可以在內(nèi)部RAM中使用4個(gè)不同的工作寄存器組,每個(gè)寄存器組中包含8個(gè)工作寄存器(R0~R7)。C51編譯器擴(kuò)展了一個(gè)關(guān)鍵宇using,專門用來選擇單片機(jī)中不同的工作寄存器組。using后面的n是一個(gè)0—3的常整數(shù),分別選中4個(gè)不同的工作寄存器組。在定義一個(gè)函數(shù)時(shí)using是一個(gè)選項(xiàng),如果不用該選項(xiàng),則由編譯器選擇一個(gè)寄存器組作絕對(duì)寄存器組訪問。關(guān)鍵字usin對(duì)函數(shù)目標(biāo)代碼的影響如下:在函數(shù)的八口處將當(dāng)前工作寄存器組保護(hù)到堆棧中指定的工作寄存器內(nèi)容不會(huì)改變,函數(shù)返回之前將被保護(hù)的工作寄存器蛆從堆棧中恢復(fù)。為了能夠在線修改PWM參數(shù)而不中斷輸出,外部中斷需要不打斷定時(shí)器0的中斷,因而我們選擇優(yōu)先級(jí)較低的外部中斷INT1。為了方便修改參數(shù),我們采用低電平觸發(fā)。按鍵中斷程序如下:voidEXINT1(void)interrupt2using1{ Delay1ms(20);EX1=0;//關(guān)中斷if(KEY1==0)KeyValue=1;elseif(KEY2==0)KeyValue=2;elseif(KEY3==0)KeyValue=3;elseif(KEY4==0)KeyValue=4;EX1=1;}由于只有四個(gè)按鍵,因此每個(gè)按鍵都是復(fù)用的,有多種的功能,且必須和LCD1602顯示的內(nèi)容配合好。按鍵的功能安排如下:表格3按鍵功能狀態(tài)按鍵編號(hào)01234567報(bào)警0進(jìn)入模式選擇界面確認(rèn)確認(rèn)確認(rèn)確認(rèn)確認(rèn)進(jìn)入調(diào)整輸出界面停止輸出無1進(jìn)入模式選擇界面選擇DC增加增加增加無進(jìn)入調(diào)整輸出界面修改參數(shù)無2進(jìn)入模式選擇界面選擇AC減少減少減少無進(jìn)入調(diào)整輸出界面無無3進(jìn)入模式選擇界面無返回上一界面返回上一界面返回上一界面返回上一界面進(jìn)入調(diào)整輸出界面返回上一個(gè)界面返回歡迎界面參數(shù)修改程序如下: case1: while(KeyValue==2)dcac=1,KeyValue=0;//模式選擇 while(KeyValue==3)dcac=0,KeyValue=0; Manag(dcac); if(KeyValue==1) {Delay1ms(20); if(dcac)script=2; //直流斬波模式 elsescript=10; //SPWM模式 KeyValue=0; LCD_cls(); } break; case2: if(KeyValue==2) //設(shè)置f {Delay1ms(20); freq++,KeyValue=0;} if(KeyValue==3) {Delay1ms(20); freq--,KeyValue=0;} DcConf(freq); if(KeyValue==4) {Delay1ms(20); script=1,KeyValue=0; LCD_cls();} if(KeyValue==1) {Delay1ms(20); script=3; KeyValue=0; LCD_cls(); } break; case3: if(dcac) { if(KeyValue==2) //設(shè)置rac {Delay1ms(20); rac+=10,KeyValue=0;} if(KeyValue==3) {Delay1ms(20); rac-=10,KeyValue=0;} DcConr(rac); } else { if(KeyValue==2) //設(shè)置k {Delay1ms(20); k+=1,KeyValue=0;} if(KeyValue==3) {Delay1ms(20); k-=1,KeyValue=0;} DcConr(k); } if(KeyValue==4) {Delay1ms(20); script=2,KeyValue=0; LCD_cls();} if(KeyValue==1) {Delay1ms(20); script=4,KeyValue=0; LCD_cls();} break; case4: if(KeyValue==2) //設(shè)置Tout {Delay1ms(20); Tout+=10,KeyValue=0;} if(KeyValue==3) {Delay1ms(20); Tout-=10,KeyValue=0;} DcCont(Tout); if(KeyValue==4) {Delay1ms(20); script=3,KeyValue=0; LCD_cls();} if(KeyValue==1) {Delay1ms(20); script=5,KeyValue=0; LCD_cls();} break;4.6LCD1602編程1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。1602液晶模塊內(nèi)部的控制器共有11條控制指令。它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。下表為L(zhǎng)CD1602的顯示地址。因?yàn)閷懭腼@示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是字符地址加上80H。下表為L(zhǎng)CD1602的顯示地址。如要在第二行第一個(gè)位置顯示數(shù)據(jù),則在寫入的數(shù)據(jù)應(yīng)該是40H+80H=C0H。為了使用方便我們把LCD1602的常用操作寫成函數(shù),需要時(shí)直接調(diào)用函數(shù)即可。常用操作有:LCD是否忙檢測(cè),LCD清屏,寫指令,光標(biāo)定位,顯示字符及字符串,LCD初始化。由于1602無法直接顯示數(shù)據(jù),需要先把數(shù)據(jù)轉(zhuǎn)換為字符串,再送到1602顯示。轉(zhuǎn)換后的字符串要注意清除前面的0。字符串轉(zhuǎn)換函數(shù)和數(shù)據(jù)顯示函數(shù)如下:voidDataToChar(intdat) //數(shù)據(jù)-字符串轉(zhuǎn)換函數(shù)。{DataArray[3]=dat%10;DataArray[2]=((dat-DataArray[3])/10)%10;DataArray[0]=dat/1000;DataArray[1]=(dat/100)%10;}voidDispD(intdat) //數(shù)據(jù)顯示函數(shù){ i=j=0;DataToChar(dat); //數(shù)據(jù)-字符串轉(zhuǎn)換for(j=0;j<3;j++) //清除前面的0 { if(DataArray[j])i=1; if(i)LCD_write_data(DataArray[j]+48); }LCD_write_data(DataArray[j]+48);}4.7顯示設(shè)計(jì)由于LCD1602只有16*2個(gè)顯示點(diǎn),無法在一個(gè)界面中完成所有的顯示內(nèi)容這里我們按功能來分顯示界面。界面0:程序啟動(dòng)時(shí)及出錯(cuò)后的數(shù)據(jù)初始化界面1:模式選擇voidManag(intdat){ LCD_set_position(0);LCD_prints("MODE:");LCD_set_position(7);if(dat)LCD_prints("DC");elseLCD_prints("SPWM");LCD_set_position(0x40);LCD_prints("OK");}界面2:設(shè)置頻率voidDcConf(intdat){ LCD_set_position(0);LCD_prints("f:");DispD(dat);if(dcac)LCD_prints("KHz"); //直流PWM輸出1-20KHzelseLCD_prints("Hz"); //SPWM輸出1-100HzLCD_set_position(0x40);LCD_prints("OK");LCD_set_position(0x4c);LCD_prints("BACK");}界面3:設(shè)置占空比或調(diào)幅比voidDcConr(intdat){if(dcac) //設(shè)置占空比 { LCD_set_position(0); LCD_write_data(0xe0); LCD_write_data(':'); DispD(dat); LCD_prints("%"); }else //設(shè)置調(diào)幅比{ LCD_set_position(0); LCD_prints("k:"); DispD(dat); LCD_prints("/10"); }LCD_set_position(0x40);LCD_prints("OK");LCD_set_position(0x4c);LCD_prints("BACK");}界面4:設(shè)置輸出時(shí)間voidDcCont(intdat){ LCD_set_position(0);LCD_prints("Tout:");DispD(dat);//LCD_set_position(0x07);LCD_prints("S");LCD_set_position(0x40);LCD_prints("OK");LCD_set_position(0x4c);LCD_prints("BACK");}界面5:?jiǎn)?dòng)輸出voidDcConok(void){ LCD_set_position(3);LCD_prints("OUTPUTNOW?");LCD_set_position(0x40);LCD_prints("OK");LCD_set_position(0x4c);LCD_prints("BACK");}界面6:在線監(jiān)控f,α或k,Tout。輸出完畢后關(guān)閉輸出。voidDcmont(void){ LCD_set_position(0);LCD_prints("f:");DispD(freq);//LCD_set_position(0x06);if(dcac)LCD_prints("KHz");elseLCD_prints("Hz");if(dcac){ LCD_write_data(0xe0); LCD_write_data(':'); DispD(rac); LCD_prints("%");}else{ LCD_prints("k:"); DispD(k); LCD_prints("/10");}LCD_set_position(0x40);LCD_prints("Tout:");DispD(ToutReal);//LCD_set_position(0x48);LCD_prints("S");//LCD_prints("C:");//DispD(i);//LCD_printc('S');}界面7:停止輸出并返回到界面1,不停止輸出并返回到界面2,返回到界面6voidDcStop(void){ LCD_set_position(0);LCD_prints("Whatdoyouwant?");LCD_set_position(0x40);LCD_prints("STOP");LCD_set_position(0x45);LCD_prints("MODP");LCD_set_position(0x4c);LCD_prints("BACK");}報(bào)警voiderror(void){ LCD_set_position(0);LCD_prints("WRONG!");LCD_set_position(0X40);DispD(script);}
5系統(tǒng)調(diào)試5.1系統(tǒng)的調(diào)試系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試,而且兩者是密不可分的。我們?cè)O(shè)計(jì)好的硬件電路和軟件程序,只有經(jīng)過聯(lián)合調(diào)試,才能驗(yàn)證其正確性;軟硬件的配人情況以及是否達(dá)到設(shè)計(jì)任務(wù)的要求,也只有經(jīng)過調(diào)試,才能發(fā)現(xiàn)問題并加以解決、完善,最終開發(fā)成實(shí)用產(chǎn)品。硬件調(diào)試分單元電路調(diào)試和聯(lián)機(jī)調(diào)試,單元電路試驗(yàn)在硬件電路設(shè)計(jì)時(shí)已經(jīng)進(jìn)行,這里的調(diào)試只是將其制成印刷電路板后試驗(yàn)電路是否正確,并排除一些加工工藝性錯(cuò)誤(如錯(cuò)線、開路、短路等)。這種調(diào)試可單獨(dú)模擬進(jìn)行,也可通過開發(fā)裝置由軟件配合進(jìn)行。硬件聯(lián)機(jī)調(diào)試則必須在系統(tǒng)軟件的配合下進(jìn)行。軟件調(diào)試一般包括分塊調(diào)試和聯(lián)機(jī)調(diào)試兩個(gè)階段。程序的分塊調(diào)試一般在單片機(jī)開發(fā)裝置上進(jìn)行,可根據(jù)所調(diào)程序功能塊的入口參量初值編制一個(gè)特殊的程序段,并連同被調(diào)程序功能塊一起在開發(fā)裝置上運(yùn)行;也可配合對(duì)應(yīng)硬件電路單獨(dú)運(yùn)行某程序功能塊,然后檢查是否正確,如果執(zhí)行結(jié)果與預(yù)想的不一致,可以通過單步運(yùn)行或設(shè)置斷點(diǎn)的方法,查出原因并加以改正,直到運(yùn)行結(jié)果正確為止。這時(shí)該程序功能塊已調(diào)試完畢,可去掉附加程序段。其它程序功能塊可按此法進(jìn)行調(diào)試。程序聯(lián)機(jī)調(diào)試就是將已調(diào)試好的各程序功能塊按總體結(jié)構(gòu)聯(lián)成一個(gè)完整程序,在所研制的硬件電路上運(yùn)行。從而試驗(yàn)程序整體運(yùn)行的完整性、正確性和與硬件電路的配合情況。在聯(lián)調(diào)中可能會(huì)有某些支路上的程序、功能塊因受條件制約而得不到相應(yīng)的輸入?yún)?shù),這時(shí),調(diào)試人員應(yīng)創(chuàng)造條件進(jìn)行模擬調(diào)試。在聯(lián)調(diào)中如發(fā)現(xiàn)硬件問題也應(yīng)及時(shí)修正,直到單片機(jī)系統(tǒng)的軟件、硬件全部調(diào)試成功為止。系統(tǒng)調(diào)試完成后,還要進(jìn)行一段時(shí)間的試運(yùn)行,從而檢驗(yàn)系統(tǒng)的穩(wěn)定性和抗干擾能力,驗(yàn)證系統(tǒng)功能是否達(dá)到設(shè)計(jì)要求,是否達(dá)到預(yù)期的效果。5.2系統(tǒng)仿真過程第一步,打開PROTEUS軟件,建立原理圖,如圖16。注意圖中右上部分是仿真時(shí)測(cè)試SPWM信號(hào)的測(cè)試電路。這里把PWM3.1反向后和P3.0疊加后輸出。在模擬示波器的CH3可以觀察合成后的SPWM基波波形。圖SEQ圖\*ARABIC16電路仿真原理圖第二步,打開KeilUvision2,建立工程,輸入程序,調(diào)試,編譯生成HEX文件。這里模塊化編程,把一些功能函數(shù)放在LCD1602.C中。圖SEQ圖\*ARABIC17KeilUvision工程圖第三步,在Protues中導(dǎo)入HEX文件,運(yùn)行。由于Protues有自動(dòng)重載文件的功能,在仿真過程中,如果HEX文件改變了,不需要人為重載文件,系統(tǒng)能自動(dòng)完成。所以這里只需在建立原理圖后導(dǎo)入文件即可。圖SEQ圖\*ARABIC18導(dǎo)入HEX文件第四步,基本功能仿真初始化及模式選擇:系統(tǒng)上電或出錯(cuò)處理后,進(jìn)入初始界面。次數(shù)按任何鍵均可進(jìn)入模式選擇界面。進(jìn)入模式選擇界面后,按K2選擇直流斬波PWM輸出模式,即DC,按K3選擇SPWM輸出模式,即SPWM。模式選擇完成后按K1進(jìn)入對(duì)應(yīng)參數(shù)設(shè)置界面。圖SEQ圖\*ARABIC19初始化、模式選擇參數(shù)設(shè)置界面:這里可以分別設(shè)置如下參數(shù):在DC模式下,設(shè)置頻率f,占空比α,輸出時(shí)間Tout;在SPWM模式下,設(shè)置頻率f,調(diào)幅比k,輸出時(shí)間Tout。圖SEQ圖\*ARABIC20參數(shù)設(shè)置輸出監(jiān)控及修改參數(shù):參數(shù)設(shè)置完成以后可以確認(rèn)輸出,如果哪個(gè)參數(shù)設(shè)置錯(cuò)了可以按K4鍵返回修改。如果輸入錯(cuò)誤的參數(shù)了,系統(tǒng)會(huì)直接跳轉(zhuǎn)到報(bào)警界面;如果沒錯(cuò)就進(jìn)入相應(yīng)的輸出監(jiān)控界面。系統(tǒng)還允許不停輸出的情況下修改參數(shù),也可以隨時(shí)停止輸出。圖SEQ圖\*ARABIC21輸出監(jiān)控出錯(cuò)報(bào)警:如果在參數(shù)設(shè)置時(shí)或程序運(yùn)行過程中,出現(xiàn)不允許的情況,如頻率超出范圍、輸出時(shí)間為0,則進(jìn)入報(bào)警界面。前面的報(bào)警號(hào)對(duì)應(yīng)于一類錯(cuò)誤。圖SEQ圖\*ARABIC22出錯(cuò)報(bào)警第五步,PWM輸出仿真直流斬波PWM輸出:圖SEQ圖\*ARABIC23直流斬波PWMSPWM輸出:圖中chA,chB信號(hào)分別是P3.0和P3.1輸出的信號(hào),chC信號(hào)是經(jīng)過P3.0和P3.1疊加濾波后的信號(hào),可以認(rèn)為是SPWM的基波信號(hào)。圖24SPWM輸出
6結(jié)論 本人通過三個(gè)多月的學(xué)習(xí)和探究,設(shè)計(jì)了一個(gè)基于單片機(jī)的PWM信號(hào)輸出系統(tǒng)。PWM技術(shù)應(yīng)用非常廣泛,這里主要從直流斬波和交流逆變的應(yīng)用角度,對(duì)PWM的多種軟件算法進(jìn)行了一定的分析研究,最終選擇了工業(yè)上較常用的SPWM方法。本文首先介紹了課題的背景,介紹了PWM的發(fā)展歷史、目前的現(xiàn)狀及國(guó)內(nèi)外在這一領(lǐng)域的發(fā)展趨勢(shì);其次簡(jiǎn)要闡述了PWM原理及相關(guān)算法;最后選用SPWM中軟件調(diào)制的對(duì)稱規(guī)則采樣法設(shè)計(jì)一個(gè)PWM信號(hào)系統(tǒng)。本文詳細(xì)闡述了單片機(jī)的工作原理,結(jié)構(gòu)和功能。針對(duì)本文所設(shè)計(jì)開發(fā)的PWM信號(hào)輸出系統(tǒng),詳細(xì)闡述了其電源電路,時(shí)鐘電路,復(fù)位電路,顯示電路等單元模塊的設(shè)計(jì)。同時(shí)也簡(jiǎn)要闡述了Protues,Keil-Uvision2軟件功能及使用方法,詳細(xì)介紹了PWM軟件算法,按鍵中斷,LCD顯示等,最后
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 投資項(xiàng)目可行性研究與項(xiàng)目評(píng)估
- 農(nóng)業(yè)觀光生態(tài)園
- 三農(nóng)產(chǎn)品物流配送手冊(cè)
- 綠色農(nóng)產(chǎn)品生產(chǎn)技術(shù)推廣與應(yīng)用實(shí)踐方案
- 車聯(lián)網(wǎng)及大數(shù)據(jù)應(yīng)用
- 電商行業(yè)直播帶貨模式創(chuàng)新與發(fā)展方案
- 校園廣播系統(tǒng)投標(biāo)方案
- 針對(duì)公司運(yùn)營(yíng)挑戰(zhàn)的對(duì)策報(bào)告
- 電力設(shè)施節(jié)能減排操作規(guī)程
- 三農(nóng)村公共服務(wù)設(shè)施信息化管理方案
- 作業(yè)層隊(duì)伍建設(shè)重點(diǎn)業(yè)務(wù)課件
- DB31T 685-2019 養(yǎng)老機(jī)構(gòu)設(shè)施與服務(wù)要求
- 二年級(jí)下冊(cè)美術(shù)教案-第5課 美麗的花園|嶺南版
- 人類進(jìn)化史精品課件
- 魯濱遜漂流記讀后感PPT
- 總包單位向門窗單位移交門窗安裝工程工作面交接單
- 設(shè)備供貨安裝方案(通用版)
- 公開招聘社區(qū)居委專職工作人員考試筆試、面試題集及相關(guān)知識(shí)(11套試題含答案)
- 《植物生理學(xué)》課件第三章+植物的光合作用
- 中國(guó)藥膳理論與實(shí)踐-藥膳基本理論和技能
- 華東師大版七年級(jí)初一數(shù)學(xué)下冊(cè)全套試卷(單元、期中、期末)
評(píng)論
0/150
提交評(píng)論