直流電機(jī)PWM恒速控制器_第1頁
直流電機(jī)PWM恒速控制器_第2頁
直流電機(jī)PWM恒速控制器_第3頁
直流電機(jī)PWM恒速控制器_第4頁
直流電機(jī)PWM恒速控制器_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

直流電機(jī)恒速控制器摘要:當(dāng)今,自動(dòng)化控制系統(tǒng)已經(jīng)在各行各業(yè)得到了廣泛的應(yīng)用和發(fā)展,而直流驅(qū)動(dòng)控制作為電氣傳動(dòng)的主流在現(xiàn)代化生產(chǎn)中起著主要作用。長期以來,直流電機(jī)因其轉(zhuǎn)速調(diào)節(jié)比較靈活,方法簡單,易于大范圍平滑調(diào)速,控制性能好等特點(diǎn),一直在傳動(dòng)領(lǐng)域占有統(tǒng)治地位。它廣泛應(yīng)用于數(shù)控機(jī)床、工業(yè)機(jī)器人等工廠自動(dòng)化設(shè)備中。隨著現(xiàn)代化生產(chǎn)規(guī)模的不斷擴(kuò)大,各個(gè)行業(yè)對(duì)直流電機(jī)的需求愈益增大,并對(duì)其性能提出了更高的要求。為此,研究并制造高性能、高可靠性的直流電機(jī)控制系統(tǒng)有著十分重要的現(xiàn)實(shí)意義。本文介紹一套基于單片機(jī)的直流電機(jī)恒速控制器,根據(jù)系統(tǒng)的要求完成了整體方案設(shè)計(jì)和系統(tǒng)選型,針對(duì)所設(shè)計(jì)的控制方案對(duì)控制系統(tǒng)的軟、硬件設(shè)計(jì)作了詳細(xì)論述。硬件部分先作了整體設(shè)計(jì),然后介紹了以51單片機(jī)為核心的硬件構(gòu)成,對(duì)鍵盤電路、測量電路和顯示電路等作了詳細(xì)闡述;軟件部分采用模塊化設(shè)計(jì)思想,編制了各個(gè)模塊的流程圖。論述了軟件的設(shè)計(jì)思想和方法。針對(duì)直流電機(jī)運(yùn)行環(huán)境惡劣、干擾嚴(yán)重的特點(diǎn),從系統(tǒng)的硬件設(shè)計(jì)、軟件設(shè)計(jì)等多方面進(jìn)行抗干擾的綜合考慮,并利用多種軟件和硬件技術(shù)來提高和改善系統(tǒng)的抗干擾能力,有效地提高了系統(tǒng)的可靠性和實(shí)用性。關(guān)鍵詞:直流電機(jī)單片機(jī)恒速控制目錄TOC\o"1-5"\h\z摘要 2\o"CurrentDocument"第1章緒論 4\o"CurrentDocument"1.1引言 41.2單片機(jī)控制調(diào)速系統(tǒng) 4\o"CurrentDocument"第2章PWM調(diào)速系統(tǒng)介紹 5\o"CurrentDocument"PWM技術(shù)簡介 5\o"CurrentDocument"2.2直流電動(dòng)機(jī)的PWM調(diào)速 7\o"CurrentDocument"第3章系統(tǒng)硬件的具體設(shè)計(jì)與實(shí)現(xiàn) 9\o"CurrentDocument"1微控制器概述 9\o"CurrentDocument"3.1.1主控芯片STC89C52簡介 9\o"CurrentDocument"3.1.2時(shí)鐘電路設(shè)計(jì) 12\o"CurrentDocument"3.1.3復(fù)位電路設(shè)計(jì) 13\o"CurrentDocument"3.2直流電動(dòng)機(jī)工作電路 14\o"CurrentDocument"3.3數(shù)碼管顯示電路 163.4按鍵電路設(shè)計(jì) 17\o"CurrentDocument"5轉(zhuǎn)速測量電路設(shè)計(jì) 20\o"CurrentDocument"3.6電源電路 20\o"CurrentDocument"第4章軟件設(shè)計(jì) 21\o"CurrentDocument"KeilC5簡介 21\o"CurrentDocument"2主程序設(shè)計(jì) 22\o"CurrentDocument"4.3PWM控制程序設(shè)計(jì) 22\o"CurrentDocument"第5章論文總結(jié) 24\o"CurrentDocument"致謝 25參考文獻(xiàn) 26程序一:電路原理圖 27\o"CurrentDocument"附錄二:程序 28第1章緒論1.1引言在電氣時(shí)代的今天,電機(jī)在工農(nóng)業(yè)生產(chǎn)、人們?nèi)粘I钪衅鹬种匾淖饔?。直流電機(jī)是最常見的一種控制電機(jī)、在各領(lǐng)域中得到廣泛應(yīng)用。直流電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一,廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)中。與交流電機(jī)相比,直流電機(jī)結(jié)構(gòu)復(fù)雜,成本高,運(yùn)行維護(hù)復(fù)雜。但是直流電機(jī)具有良好的調(diào)速性能、較大的起動(dòng)轉(zhuǎn)矩和過載能力強(qiáng)等許多優(yōu)點(diǎn)。近年來,直流電機(jī)的結(jié)構(gòu)和控制方式都發(fā)生了很大的變化,隨著計(jì)算機(jī)進(jìn)入控制領(lǐng)域以及新型的電力電子功率元器件的不斷出現(xiàn),采用全控型的開關(guān)功率元件進(jìn)行脈寬調(diào)制(pulsewidthmodulation,簡稱PWM)已成為直流電機(jī)新的調(diào)速方式。這種調(diào)速方式具有開關(guān)頻率高、低速運(yùn)行穩(wěn)定、動(dòng)態(tài)性能優(yōu)良、效率高等優(yōu)點(diǎn),更重要的這種調(diào)速方式很容易在單片機(jī)控制中實(shí)現(xiàn),因此具有很好的發(fā)展前景。1.2單片機(jī)控制調(diào)速系統(tǒng)單片微型計(jì)算機(jī)的誕生是計(jì)算機(jī)發(fā)展史上的一個(gè)新的里程碑。近年來,隨著技術(shù)的發(fā)展和進(jìn)步,以及市場對(duì)產(chǎn)品功能和性能的要求不斷提高,直流電動(dòng)機(jī)的應(yīng)用更加廣泛。直流電動(dòng)機(jī)的起動(dòng)和調(diào)速性能、過載能力強(qiáng)等特點(diǎn)顯得十分重要。而作為單片嵌入式系統(tǒng)的核心——單片機(jī),正朝著多功能、多選擇、高速度、低功耗、低價(jià)格、大存儲(chǔ)容量和強(qiáng)I/O功能等方向發(fā)展。隨著計(jì)算機(jī)檔次的不斷提高,功能的不斷完善,單片機(jī)已越來越廣泛地應(yīng)用在各種領(lǐng)域的控制、自動(dòng)化、智能化等方面,特別是在直流電動(dòng)機(jī)的調(diào)速控制系統(tǒng)中。這是因?yàn)閱纹瑱C(jī)具有很多優(yōu)點(diǎn):體積小,功能全,抗干擾能力強(qiáng),可靠性高,結(jié)構(gòu)合理,指令豐富,控制功能強(qiáng),造價(jià)低等。所以選用單片機(jī)作為控制系統(tǒng)的核心以提高整個(gè)系統(tǒng)的可靠性和可行性。1.3本文任務(wù)要求本文所要完成的是基于單片機(jī)的直流電機(jī)恒速控制設(shè)計(jì),選用PWM技術(shù)作為直流電機(jī)的調(diào)速原理。由按鍵輸入速度要求,經(jīng)單片機(jī)進(jìn)行數(shù)據(jù)處理后輸出控制信號(hào),調(diào)節(jié)電機(jī)的轉(zhuǎn)速,并由數(shù)碼管顯示預(yù)定速度與實(shí)際速度。本文根據(jù)設(shè)計(jì)要求,擬定了總體的設(shè)計(jì)方案,完成了單片機(jī)系統(tǒng)、LED顯示、按鍵、測速、直流電動(dòng)機(jī)各部分電路的硬件設(shè)計(jì),完成了主程序、中斷、PWM控制各部分程序的軟件設(shè)計(jì),并對(duì)軟硬件進(jìn)行了分別的調(diào)試,最后經(jīng)過整理總結(jié),完成了論文的撰寫。第2章PWM調(diào)速系統(tǒng)介紹PWM技術(shù)簡介PWM(PulseWidthModulation)——脈沖寬度調(diào)制,廣泛應(yīng)用在從測量、通信到功率控制與變換的許多領(lǐng)域中。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)行編碼。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)生影響。對(duì)噪聲抵抗能力的增強(qiáng)是PWM相對(duì)于模擬控制的另外一個(gè)優(yōu)點(diǎn),而且這也是在某些時(shí)候?qū)WM用于通信的主要原因。從模擬信號(hào)轉(zhuǎn)向PWM可以極大地延長通信距離。在接收端,通過適當(dāng)?shù)腞C或LC網(wǎng)絡(luò)可以濾除調(diào)制高頻方波并將信號(hào)還原為模擬形式。PWM控制技術(shù)一直是變頻技術(shù)的核心技術(shù)之一。1964年A.Schonung和H.stemmler首先提出把這項(xiàng)通訊技術(shù)應(yīng)用到交流傳動(dòng)中,從此為交流傳動(dòng)的推廣應(yīng)用開辟了新的局面。從最初采用模擬電路完成三角調(diào)制波和參考正弦波比較,產(chǎn)生正弦脈寬調(diào)制SPWM信號(hào)以控制功率器件的開關(guān)開始,到目前采用全數(shù)字化方案,完成優(yōu)化的實(shí)時(shí)在線的PWM信號(hào)輸出,可以說直到目前為止,PWM在各種應(yīng)用場合仍在主導(dǎo)地位,并一直是人們研究的熱點(diǎn)。由于PWM可以同時(shí)實(shí)現(xiàn)變頻變壓反抑制諧波的特點(diǎn)。由此在交流傳動(dòng)及至其它能量變換系統(tǒng)中得到廣泛應(yīng)用。PWM控制技術(shù)大致可以為為三類,正弦PWM(包括電壓,電流或磁通的正弦為目標(biāo)的各種PWM方案,多重PWM也應(yīng)歸于此類),優(yōu)化PWM及隨機(jī)PWM。正弦PWM已為人們所熟知,而旨在改善輸出電壓、電流波形,降低電源系統(tǒng)諧波的多重PWM技術(shù)在大功率變頻器中有其獨(dú)特的優(yōu)勢(shì)(如ABBACS1000系列和美國ROBICON公司的完美無諧波系列等);而優(yōu)化PWM所追求的則是實(shí)現(xiàn)電流諧波畸變率(THD)最小,電壓利用率最高,效率最優(yōu),及轉(zhuǎn)矩脈動(dòng)最小以及其它特定優(yōu)化目標(biāo)。在70年代開始至80年代初,由于當(dāng)時(shí)大功率晶體管主要為雙極性達(dá)林頓三極管,載波頻率一般最高不超過5kHz,電機(jī)繞組的電磁噪音及諧波引起的振動(dòng)引起人們的關(guān)注。為求得改善,隨機(jī)PWM方法應(yīng)運(yùn)而生。其原理是隨機(jī)改變開關(guān)頻率使電機(jī)電磁噪音近似為限帶白噪音(在線性頻率坐標(biāo)系中,各頻率能量分布是均勻的),盡管噪音的總分貝數(shù)未變,但以固定開關(guān)頻率為特征的有色噪音強(qiáng)度大大削弱。正因?yàn)槿绱?,即使在IGBT已被廣泛應(yīng)用的今天,對(duì)于載波頻率必須限制在較低頻率的場合,隨機(jī)PWM仍然有其特殊的價(jià)值(DTC控制即為一例);別一方面則告訴人們消除機(jī)械和電磁噪音的最佳方法不是盲目地提高工作頻率,因?yàn)殡S機(jī)PWM技術(shù)提供了一個(gè)分析、解決問題的全新思路。采樣控制理論中有一個(gè)重要結(jié)論:沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時(shí),其效果基本相同。PWM控制技術(shù)就是以該結(jié)論為理論基礎(chǔ),對(duì)半導(dǎo)體開關(guān)器件的導(dǎo)通和關(guān)斷進(jìn)行控制,使輸出端得到一系列幅值相等而寬度不相等的脈沖,用這些脈沖來代替正弦波或其他所需要的波形。按一定的規(guī)則對(duì)各脈沖的寬度進(jìn)行調(diào)制,既可改變逆變電路輸出電壓的大小,也可改變輸出頻率。PWM控制的基本原理很早就已經(jīng)提出,但是受電力電子器件發(fā)展水平的制約,在上世紀(jì)80年代以前一直未能實(shí)現(xiàn)。直到進(jìn)入上世紀(jì)80年代,隨著全控型電力電子器件的出現(xiàn)和迅速發(fā)展,PWM控制技術(shù)才真正得到應(yīng)用。隨著電力電子技術(shù)、微電子技術(shù)和自動(dòng)控制技術(shù)的發(fā)展以及各種新的理論方法,如現(xiàn)代控制理論、非線性系統(tǒng)控制思想的應(yīng)用,PWM控制技術(shù)獲得了空前的發(fā)展。到目前為止,已出現(xiàn)了多種PWM控制技術(shù),根據(jù)PWM控制技術(shù)的特點(diǎn),到目前為止主要有相電壓控制、線電壓控制、電流控制、空間電壓矢量控制、矢量控制、直接轉(zhuǎn)矩控制、非線性控制、諧振軟開關(guān)8類方法。PWM控制技術(shù)以其控制簡單,靈活和動(dòng)態(tài)響應(yīng)好的優(yōu)點(diǎn)而成為電力電子技術(shù)最廣泛應(yīng)用的控制方式,也是人們研究的熱點(diǎn)。主要應(yīng)用在電力電子技術(shù)行業(yè),具體講,包括風(fēng)力發(fā)電、電機(jī)調(diào)速、直流供電等領(lǐng)域,由于其四象限變流的特點(diǎn),可以反饋再生制動(dòng)的能量,對(duì)于目前國家提出的節(jié)能減排具有積極意義。由于當(dāng)

今科學(xué)技術(shù)的發(fā)展已經(jīng)沒有了學(xué)科之間的界限,結(jié)合現(xiàn)代控制理論思想或?qū)崿F(xiàn)無諧振軟開關(guān)技術(shù)將會(huì)成為PWM控制技術(shù)發(fā)展的主要方向之一。2.2直流電動(dòng)機(jī)的PWM調(diào)速在現(xiàn)代化的生產(chǎn)實(shí)踐中,直流電機(jī)的應(yīng)用是相當(dāng)廣泛的。伴隨著電子技術(shù)的發(fā)展,以及現(xiàn)代控制理論的應(yīng)用,直流電機(jī)控制技術(shù)也得到了很大的發(fā)展。直流電動(dòng)機(jī)的調(diào)速性能較好,且起動(dòng)轉(zhuǎn)距較大,能在很寬的范圍內(nèi)平滑調(diào)速,調(diào)速比大,起制動(dòng)性能好,定位精度高。因此常用于調(diào)速控制系統(tǒng),稱之為直流傳動(dòng)系統(tǒng)。在直流電機(jī)的調(diào)速控制系統(tǒng)中,速度調(diào)節(jié)主要通過改變電樞電壓大小來實(shí)現(xiàn),經(jīng)常采用晶閘管相控整流調(diào)速或大功率晶體管脈寬調(diào)制調(diào)速兩種方法,后者就是PWM。PWM常見于中小功率系統(tǒng),其工作原理是:通過改變接通脈沖的寬度,改變直流電機(jī)電樞上電壓的占空比,即方波高低電平的時(shí)間比,從而改變電樞電壓的平均值,控制電機(jī)的轉(zhuǎn)速。圖2.1PWM調(diào)速原理圖2.1PWM調(diào)速原理由圖2.1可知,電動(dòng)機(jī)兩端得到的電壓平均值U可用下式表示為:avU=t汀XU=aU (2-1)av a' pwm pwm式中t-開關(guān)每次接通的時(shí)間,aT-開關(guān)通斷的時(shí)間周期,a-占空比。由公式(2.1)可見,改變PWM脈沖的占空比,電動(dòng)機(jī)兩端的電壓平均值U也av隨之改變,從而電動(dòng)機(jī)的轉(zhuǎn)速得到了控制。如今的直流調(diào)速系統(tǒng)多采用數(shù)字化控制,并運(yùn)用現(xiàn)代控制理論所提供的控制算法,這也是電氣傳動(dòng)控制系統(tǒng)的發(fā)展方向。而PWM調(diào)速系統(tǒng)以其主電路線路簡單、功率元件少、開關(guān)頻率高、其控制水平從1000Hz可達(dá)到4000Hz、電機(jī)電流連續(xù)、低速性能好、諧波少、穩(wěn)態(tài)精度高、脈動(dòng)小、損耗和發(fā)熱都較小、調(diào)速范圍寬、調(diào)速系統(tǒng)頻帶寬、快速響應(yīng)性能好、動(dòng)態(tài)抗擾能力強(qiáng)等優(yōu)點(diǎn)而成為運(yùn)用最廣泛的數(shù)字化控制方法。PWM調(diào)速的直流電機(jī)驅(qū)動(dòng)電路主要性能指標(biāo)如下所示。1、 輸出電流和電壓范圍。它決定著電路能驅(qū)動(dòng)多大功率的電機(jī)。2、 效率。高的效率不僅意味著節(jié)省電源,也會(huì)減少驅(qū)動(dòng)電路的發(fā)熱。要提高電路的效率,可以從保證功率器件的開關(guān)工作狀態(tài)和防止共態(tài)導(dǎo)通(H橋電路可能出現(xiàn)的一個(gè)問題,即兩個(gè)功率器件同時(shí)導(dǎo)通使電源短路)入手。3、 對(duì)控制輸入端的影響。功率電路對(duì)其輸入端應(yīng)有良好的信號(hào)隔離,防止有高電壓大電流進(jìn)入主控電路,這可以用高的輸入阻抗或者光電耦合器實(shí)現(xiàn)隔離。4、 對(duì)電源的影響。共態(tài)導(dǎo)通可以引起電源電壓的瞬間下降造成高頻電源污染,大電流可能導(dǎo)致地線電位浮動(dòng)。5、 可靠性。電機(jī)驅(qū)動(dòng)電路應(yīng)該盡可能做到:無論加上何種控制信號(hào),何種無源負(fù)載,電路都是安全的。采用微機(jī)來完成直流電機(jī)PWM調(diào)速器的設(shè)計(jì),不僅簡化了系統(tǒng)的結(jié)構(gòu),提高了系統(tǒng)的性價(jià)比,而且經(jīng)實(shí)踐證明,整個(gè)系統(tǒng)的精度、快速性以及可靠性等動(dòng)態(tài)、靜態(tài)指標(biāo)都取得了令人滿意的結(jié)果。PWM既經(jīng)濟(jì)、節(jié)約空間、抗噪性能又強(qiáng),是一種直流電機(jī)調(diào)速中廣泛應(yīng)用道技術(shù)。第3章系統(tǒng)硬件的具體設(shè)計(jì)與實(shí)現(xiàn)本系統(tǒng)由單片機(jī)作為直流電動(dòng)機(jī)反饋控制的核心,系統(tǒng)中包括主控模塊、電動(dòng)機(jī)驅(qū)動(dòng)模塊、電動(dòng)機(jī)控制模塊、顯示模塊、鍵盤模塊、轉(zhuǎn)速檢測模塊、電源模塊等幾部分。系統(tǒng)框圖如圖3.1所示。以下分別對(duì)這幾部分模塊進(jìn)行闡述。圖3.1硬件系統(tǒng)框圖微控制器概述計(jì)算機(jī)的產(chǎn)生加快了人類改造世界的步伐,但是它畢竟體積龐大。微控制器(單片機(jī))就是在這種情況下誕生的。微控制器,亦稱單片機(jī)或者單片微型計(jì)算機(jī)。它是把中央處理器(CPU)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、輸入/輸出端口(I/O)等主要計(jì)算機(jī)功能部件都集成在一塊集成電路芯片上的微型計(jì)算機(jī)。它的結(jié)構(gòu)與指令功能都是按照工業(yè)控制的要求設(shè)計(jì)的,在智能控制系統(tǒng)中,微控制器得到了廣泛的應(yīng)用。單片機(jī)目前已被廣泛地應(yīng)用于家電、醫(yī)療、儀器儀表、工業(yè)自動(dòng)化、航空航天等領(lǐng)域。市場上比較流行的單片機(jī)種類主要有Intel公司、Atmel公司、Philip公司和宏晶公司的8051系列單片機(jī),Motorola公司的M6800系列單片機(jī),Intel公司的MCS96系列單片機(jī)以及Microchip公司的PIC系列單片機(jī)等。各個(gè)系列的單片機(jī)各有所長,在處理速度、穩(wěn)定性、I/O能力、功耗、功能、價(jià)格等方面各有優(yōu)劣。這些種類繁多的單片機(jī)家族,給我們單片機(jī)的選擇也提供了很大的余地。3.1.1主控芯片STC89C52簡介STC89系列單片機(jī)是MCS-51系列單片機(jī)的派生產(chǎn)品。而我們采用的STC89C51RC是宏晶科技推出的新一代超強(qiáng)抗干擾/高速/低功耗的單片機(jī)。它們?cè)谥噶钕到y(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8051單片機(jī)完全兼容,DIP40封裝系列與8051為pin-to-pin兼容。STC89系列單片機(jī)高速(最高時(shí)鐘頻率80MHz)、低功耗,具有在系統(tǒng)和在應(yīng)用可編程(ISP,IAP),不占用戶資源。主要性能包括有:80C51核心處理器單元,故80C51的匯編語言可以直接移植到這里;3V/5V工作電壓,操作頻率0?33MHz;5V工作電壓,操作頻率0?40MHz(STC89C52RC實(shí)際最高可達(dá)80MHz);大容量內(nèi)部數(shù)據(jù)RAM,1K字節(jié)RAM;64/32/16/8KB片內(nèi)Flash程序存儲(chǔ)器,具有在應(yīng)用可編程(IAP),在系統(tǒng)可編程(ISP),可實(shí)現(xiàn)遠(yuǎn)程軟件升級(jí),無需編程器;(5)支持12時(shí)鐘(默認(rèn))或6時(shí)鐘模式;雙DPTR數(shù)據(jù)指針;SPI(串行外圍接口)和增強(qiáng)型UART;PCA(可編程計(jì)數(shù)器陣列),具有PWM的捕獲/比較功能;4個(gè)8位I/O口,含3個(gè)高電流P1口,可直接驅(qū)動(dòng)LED;3個(gè)16位定時(shí)器/計(jì)數(shù)器;可編程看門狗定時(shí)器(WDT);低EMI方式(ALE禁止);兼容TTL和COMS邏輯電平;掉電檢測和低功耗模式等。而其中STC單片機(jī)最大的優(yōu)勢(shì)在于以下四點(diǎn):最大可擁有1kbit片內(nèi)RAM(數(shù)據(jù)存儲(chǔ)器)普通的8051系列單片及片內(nèi)RAM只有128(8051)或256(8052)字節(jié),低128字節(jié)(地址:00H?7FH),可直接或間接尋址,高128字節(jié)(地址:80H~FFH),只可間接尋址。STC89系列單片機(jī)另外增加了768字節(jié)的片內(nèi)擴(kuò)展RAM,以解決眾多技術(shù)人員在編程時(shí)的RAM資源嚴(yán)重缺乏的問題。768字節(jié)的片內(nèi)擴(kuò)展RAM(地址:000H~2FFH)與外部擴(kuò)展RAM地址重疊,單片機(jī)可通過軟件設(shè)置AUXR.1,決定是否使用片內(nèi)擴(kuò)展RAM,以防止可能的與外部擴(kuò)展RAM的沖突,默認(rèn)為使用片內(nèi)擴(kuò)展RAM。64K片內(nèi)Flash(程序存儲(chǔ)器)STC89系列單片機(jī)按芯片型號(hào)分別有64/32/16/8K片內(nèi)Flash,分為2個(gè)Flash存儲(chǔ)塊:Block0和Block1°2個(gè)Flash存儲(chǔ)塊在物理上Block0在前,lock1在后。通過REMAP功能可以將Flash塊重定位。圖3.2所示是STC89C52RC的程序存儲(chǔ)器結(jié)構(gòu)。FFFFHEM?=-0印樸FFFFHEM?=-0印樸1SfCF|l:C(|±OCiEAff=15FCF|l:Cfl=01rrrrnrrrirnEOtlOHB電血BkxklEllDOHE帰血Bh?k1DFFfHDFFFHEKwrualKByte&Ewn-al扣帆日止Ealeirnal24KSyte7FFFHI24KByteBkxifa7FFF!H70KH32KBylu1FFFHB電血Bkxklg:M?H&MOH KBC-H£Af=1SFCF](10]iMn11圖3.2STC89C52RC程序存儲(chǔ)器結(jié)構(gòu)ISP技術(shù)ISP主要應(yīng)用于在線(或遠(yuǎn)程)升級(jí),通過執(zhí)行ISP引導(dǎo)碼改寫用戶程序,無須編程器,無須親臨現(xiàn)場。STC89系列單片機(jī)在出廠時(shí),片內(nèi)已經(jīng)燒錄有ISP引導(dǎo)碼,占用Block1的程序空間前2K字節(jié),并設(shè)置為從Blockl啟動(dòng)。啟動(dòng)時(shí),首先執(zhí)行ISP引導(dǎo)碼,確認(rèn)是程序下載,還是正常啟動(dòng)。無論是程序下載還是正常啟動(dòng),ISP引導(dǎo)碼最后總是將REMAP取消,恢復(fù)Block0在前8K的地址空間,進(jìn)而執(zhí)行Block0中的用戶程序,即用戶程序總是放在Block0的00H開始的單元,除非用戶自行修改了ISP引導(dǎo)碼。圖3.3是STC單片機(jī)的ISP在線下載應(yīng)用程序的工作界面,此軟件最新版本為V4.8版,可以在STC官方網(wǎng)站上免費(fèi)下載。Euph'B^L:SulwcLKUfjinUK翠片吟空*FioscjrE.ybJlfWlT ?oWff11Euph'B^L:SulwcLKUfjinUK翠片吟空*FioscjrE.ybJlfWlT ?oWff11轉(zhuǎn)!:伴|_rw_|HDU^工盤彌|TtbetwFll-ii汕崗‘卿frlgnFilw.'桿開範(fàn)悴門?|¥P?P)千用區(qū)HB■迫]KtalMJ>?ri站1H3~'I PtTffiftfc剤迅中 伽時(shí)崩|B—| 詳桿開期祜:履沖ETnm■宙g1?~3* MH4?X]]猛也dfiUt<AfeetTZEfl!i?ae5fli= 阿工]加憫『閱円i£ST!1csr^?斷中EMIfi[中*h打555WW:廣BT.r^>l?¥堆足iiTwtesna 廣侃口也痔mi鋰x冋豪處氐?yTii^ansa可14血事皿TX^fcVi.o.rtn.3肓勻1諂?無矣廠甬于mm侗下覲決童罰ASTBfcn-ufl 「馳止W問T:^TnmPE?i!fiiw?ftU!ii—hG-fl:wwrf宦歯w曲pv誹盼7瘡曲Tlf比”嘲媲關(guān)吐電Utz謁單[SciriVTtI II歸曲心懂貫柚Ir^ryw?uflftswa^ft-a?sh??廠姐荷屮■砌主Eft6fi]£ti^s-I44^PKE?ETfcA4-wit?((((■DCCCCDHXCCD??MDHMXKD[??-[■K(cnti0曲、w?wW?wCiCUCCD[??(■[OKI*c?cn>ccoicciJMXnO[<■????wwwro^????QElMlMlxlggggaaIMlMlMlM>Hix]>x]>x]ai3除al?-WWWnnnmWM?WWWwwwwmH妙aoaoQCIoaoaoaoaoclaoaoaoaoICKIEgagaglwar????rawuMaMmmmwftMMMHWNNNn.HMMWWWwwwHODs^gggg聞通連ODs^mgggiwalIMIM!?il]il]il]il]聞IMIMIMIMagaixJix]血頌In???ram址賓ISJtCTR|fcHFK|tifiKvriHSk^M|倔iwjlL蚣.TW敝陽Im*C5iKiW.加岸占me宙滴鼬用円雅盅腫躺廠戸芳盹序fstt遴■序F3.b'lxlr:F3.b'lxlr:l.'TiDiflijIS*;*;M計(jì)3 CLw|fl*1—?—g,u申牯底科fj邛|FHEn^aHr.*res廣w?rRHW1A'^:i霞可圖3.3STCISPV4.8軟件運(yùn)行界面STC89系列單片機(jī)IAP技術(shù)IAP功能就是在應(yīng)用可編程,利用該功能,就可將本不具有EEPROM的單片機(jī)具有相當(dāng)于EEPROM的功能,而且存儲(chǔ)空間遠(yuǎn)大于EEPROMoIAP不能對(duì)自身所在的Block編程,即當(dāng)程序運(yùn)行在Block0時(shí),可編程的是Block1;當(dāng)程序運(yùn)行在Block1時(shí),可編程的是BlockO。根據(jù)這個(gè)特點(diǎn),通過REMAP功能可設(shè)置在應(yīng)用編程的Flash的大小。STC89由美國設(shè)計(jì),在臺(tái)灣生產(chǎn),是目前在相同性能條件下價(jià)格最優(yōu)的一個(gè)品種。STC89的高性能及低價(jià)格能為設(shè)計(jì)帶來相當(dāng)?shù)拇蠹夹g(shù)改進(jìn)和經(jīng)濟(jì)的效益。3.1.2時(shí)鐘電路設(shè)計(jì)P1.0P1.1P1.2P1JP3.4P1.5P]再PL7RESE1X2XIP1.0P1.1P1.2P1JP3.4P1.5P]再PL7RESE1X2XIVSSvcc30pF■1039Is363424~2TVCCPO.Opn,iP02.PQJP0.4P0.5P0.6P0?7EA-*WA1E-PPSENP2JP2.6P2.5P2.4PZJP22P2.1P2.0圖3.4單片機(jī)及外圍電路STC89C52RC內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時(shí)鐘電路如圖3.5(a)所示,在XTAL1和XTAL2引腳上外接定時(shí)元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.2?12MHz之間選擇,電容值在5?30pF之間選擇,電容值的大小可對(duì)頻率起微調(diào)的作用。外部方式的時(shí)鐘電路如圖3.5(b)所示,XTAL1接地,XTAL2接外部振蕩器。對(duì)外部振蕩信號(hào)無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz

的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘Pl和P2,供單片機(jī)圖3.5(a)內(nèi)部方式時(shí)鐘電路OCTJ使用。在本設(shè)計(jì)中,使用的是如圖3.5(a)圖3.5(a)內(nèi)部方式時(shí)鐘電路OCTJn圖n圖3.5(b)外部方式時(shí)鐘電路3.1.3復(fù)位電路設(shè)計(jì)復(fù)位操作復(fù)位是單片機(jī)的初始化操作。其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵重新啟動(dòng)。除PC之外,復(fù)位操作還對(duì)其他一些寄存器有影響,它們的復(fù)位狀態(tài)如表3-1所示。表3-1一些寄存器的復(fù)位狀態(tài)PCICONMHAttTUi(?H希時(shí)剛TWO他H怖Ill翊hrfwTH1i閉P吟旳tFMStONW-HIfw托憚0慟思5BUF不圧IE瞰網(wǎng)剛氐OXX買饒財(cái)BTMODia-1復(fù)位信號(hào)及其產(chǎn)生RST引腳是復(fù)位信號(hào)的輸入端。復(fù)位信號(hào)是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期(即二個(gè)機(jī)器周期)以上。若使用頗率為6MHz的晶振,則復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過4us才能完成復(fù)位操作。產(chǎn)生復(fù)位信號(hào)的電路邏輯如圖3.6所示。略I'Vm

略I'Vm圖3.6復(fù)位信號(hào)的電路邏輯圖整個(gè)復(fù)位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復(fù)位信號(hào)(RST)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個(gè)機(jī)器周期的S5P2時(shí)刻對(duì)施密特觸發(fā)器的輸出進(jìn)行采樣,然后才得到內(nèi)部復(fù)位操作所需要的信號(hào)。復(fù)位操作有上電自動(dòng)復(fù)位相按鍵手動(dòng)復(fù)位兩種方式。上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,其電路如圖3.7(a)所示。這佯,只要電源Vcc的上升時(shí)間不超過1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過使復(fù)位端經(jīng)電阻與Vcc電源接通而實(shí)現(xiàn)的,其電路如圖3.7(b)所示;而按鍵脈沖復(fù)位則是利用RC微分電路產(chǎn)生的正脈沖來實(shí)現(xiàn)的,其電路如圖3.7(c)所示。彳VccC+ZZ.nF-iR彳VccC+ZZ.nF-iR>RJiT/VpolldlJL圖3.7(a)上電復(fù)位1R^t/VfuI(b)按鍵電平復(fù)位VccRESET|圖3.4復(fù)位信號(hào)的電路邏輯圖VggRESET廿b~i

I爲(wèi)j

B卜n22fiFT<-KST.Wm(c)按鍵脈沖復(fù)位上述電路圖中的電阻、電容參數(shù)適用于6MHz晶振,能保證復(fù)位信號(hào)高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。本系統(tǒng)的復(fù)位電路采用圖3.7(b)上電復(fù)位方式。3.2直流電動(dòng)機(jī)工作電路單片機(jī)輸出端輸出的PWM調(diào)速信號(hào)的電流很小,不足以驅(qū)動(dòng)直流電機(jī)正常工作,所以在單片機(jī)輸出端口和直流電機(jī)中間必須加入驅(qū)動(dòng)電路。我選用NPN型三極管作為驅(qū)動(dòng)電路來控制直流電機(jī),它構(gòu)成的驅(qū)動(dòng)電路具有結(jié)構(gòu)簡單、工作穩(wěn)定、電流放大效果明顯等優(yōu)點(diǎn)。如圖3.8所示。本文設(shè)計(jì)的核心單元主要是直流電機(jī)。在本設(shè)計(jì)中,采用的是直流小電機(jī)。直流電源通過開關(guān)線路向電動(dòng)機(jī)定子繞組供電。三極管Q1與Q4,Q2與Q3在這里起到關(guān)斷的作用,如果不接,則電機(jī)始終處于工作狀態(tài)。當(dāng)三級(jí)管的基極沒有

電流流入時(shí),三極管處于關(guān)斷狀態(tài),回路不導(dǎo)通,直流電機(jī)無法正常工作;相反,有電流流入基極時(shí),直流電機(jī)開始轉(zhuǎn)動(dòng),電流大小不同,電機(jī)兩端的電壓就不同,風(fēng)扇的轉(zhuǎn)速也就不同了。信號(hào)經(jīng)過單片機(jī)的處理,再經(jīng)過三極管Q1或Q2的驅(qū)動(dòng)放大后,正好控制直流電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)。當(dāng)電流流過Q2,Q3時(shí),電機(jī)正轉(zhuǎn)。流過QI,Q4時(shí),電機(jī)反轉(zhuǎn)。直流電機(jī)M的正極與+5V電源相連,負(fù)極通過三極管后接地,形成一個(gè)回路,保證電機(jī)的正常工作。直流電機(jī)和單片機(jī)使用的是同一電源,但我們采用光電耦合電路,如圖3.9所示。單片機(jī)的12腳(DO_A),13腳(DO_B)發(fā)出的PWM波形信號(hào)的占空比如果為0%(即全是低電平),三極管無法導(dǎo)通,電機(jī)停止工作。占空比如果不為0%,電機(jī)開始轉(zhuǎn)動(dòng)。占空比越大,電壓就越大,電機(jī)的轉(zhuǎn)速也就越快,從而可以調(diào)節(jié)電機(jī)的轉(zhuǎn)速。VDD,IRS4.7KCTHB013 W:5E1◎MotorD2IX-iCTHB013 W:5E1◎MotorD2IX-i!■圖3.8直流電動(dòng)機(jī)電路圖3.9光電耦合電路3.3數(shù)碼管顯示電路用單片機(jī)驅(qū)動(dòng)LED數(shù)碼管分為靜態(tài)顯示和動(dòng)態(tài)顯示。靜態(tài)顯示就是顯示驅(qū)動(dòng)電路具有鎖存功能,單片機(jī)將所要顯示的數(shù)據(jù)送出后就不再控制LED,直到下次顯示時(shí)再傳送一次新的顯示數(shù)據(jù)。靜態(tài)顯示的數(shù)據(jù)穩(wěn)定,占用的CPU時(shí)間少。靜態(tài)顯示中,每一個(gè)顯示器都要占用單獨(dú)的的具有鎖存功能的I/O接口,該接口用于筆劃段字型代碼。這樣單片機(jī)只要把顯示的字形代碼發(fā)送到接口電路,該字段就可以顯示發(fā)送的字形。要顯示新的數(shù)據(jù)時(shí),單片機(jī)再發(fā)送新的數(shù)據(jù)。另一種方法是動(dòng)態(tài)掃描顯示。由于單片機(jī)本身具有較強(qiáng)的邏輯控制能力,所以采用動(dòng)態(tài)軟件譯碼并不復(fù)雜。而且軟件譯碼其譯碼邏輯可隨意編程設(shè)定,不受硬件譯碼邏輯限制。采用動(dòng)態(tài)掃描軟件譯碼的方式能大大簡化硬件電路結(jié)構(gòu),降低系統(tǒng)成本。它用分時(shí)的方法輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描的過程中,每位顯示器的點(diǎn)亮?xí)r間極為短暫,但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),給人的印象是一組穩(wěn)定的數(shù)據(jù)顯示。靜態(tài)顯示數(shù)據(jù)穩(wěn)定,占用極少的CPU時(shí)間,但每個(gè)顯示單元都需要單獨(dú)的顯示驅(qū)動(dòng)電路,使用的點(diǎn)了路硬件較少;動(dòng)態(tài)顯示需要CPU時(shí)刻對(duì)顯示器進(jìn)行數(shù)據(jù)刷新,顯示數(shù)據(jù)由閃爍感,占用的CPU時(shí)間多,但使用的硬件少。顯示器模塊由兩組四位一體的共陽數(shù)碼管和8個(gè)9012組成。單個(gè)LED是由7段發(fā)光二極管構(gòu)成的顯示單元。有10個(gè)引腳,對(duì)應(yīng)于7個(gè)段、一個(gè)小數(shù)點(diǎn)和兩個(gè)公共端。在顯示電路中,這些發(fā)光二極管有兩種接法:共陽極接法和共陰極接法。本設(shè)計(jì)中需要用兩組四個(gè)LED組成顯示單元,并采用動(dòng)態(tài)顯示方式。由于使用4個(gè)單個(gè)LED進(jìn)行顯示的連線比較復(fù)雜,同時(shí)單片機(jī)的端口驅(qū)動(dòng)能力也難以保證,而需要加入專門的驅(qū)動(dòng)芯片。所以,采用兩組4個(gè)LED連體的、內(nèi)部已將其相應(yīng)段接好的共陽極LED,它具有12個(gè)引腳,含7個(gè)段和4個(gè)公共端,為提高數(shù)碼管的亮度,可在位選上加入一個(gè)三極管驅(qū)動(dòng)電路。在圖3.10所示的由STC89C52控制的顯示電路中,要選取合適的電阻R,才能保證LED的亮度,過大或者過小都無法讓LED正常顯示。本設(shè)計(jì)中取R為220歐比較理想。若考慮印制板布線的方便,可以采用貼片電阻和排阻來節(jié)省空間,不過本設(shè)計(jì)還是采用普通電阻。另外,也可以用74LS244和74LS06構(gòu)成驅(qū)動(dòng)顯示電路,但這樣同樣要加限流電阻。因?yàn)?4LS06是開漏器件,需要在輸出處加上上拉電阻。

3.4按鍵電路設(shè)計(jì)鍵盤是標(biāo)準(zhǔn)的輸入設(shè)備,實(shí)現(xiàn)鍵盤有兩種方案:一是采用現(xiàn)有的一些芯片實(shí)現(xiàn)鍵盤掃描,如8279,CH451,LMC9768等,還有就是用軟件實(shí)現(xiàn)鍵盤掃描。使用現(xiàn)成的芯片可以節(jié)省CPU的開銷,但增加了成本,而用軟件實(shí)現(xiàn)具有較強(qiáng)的靈活性,也只需要很少的CPU開銷,可以節(jié)省開發(fā)成本。本文便使用軟件實(shí)現(xiàn)鍵盤的掃描,常見的可分為獨(dú)立按鍵式鍵盤和行列掃描式鍵盤。獨(dú)立按鍵是直接用I/O口線構(gòu)成的單個(gè)按鍵電路,如圖3.11所示,其特點(diǎn)是每個(gè)按鍵都單獨(dú)占用一根I/O口線,每個(gè)按鍵的工作不影響其他I/O口線的狀態(tài)。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但每個(gè)按鍵必須要占用一根I/O口線,因此,在按鍵較多時(shí),I/O口線浪費(fèi)較大,不宜采用。圖3.11中,按鍵均采用低電平有效,此時(shí),上拉電阻保證了按鍵斷開時(shí),I/O口線有確定的高電平。當(dāng)I/O口線內(nèi)部有上拉電阻時(shí),外電路可不接上拉電阻。獨(dú)立式按鍵常采用查詢式結(jié)構(gòu)。先逐位查詢每根I/O口線的輸入狀態(tài),如某一根I/O口線輸入為低電平,則可確認(rèn)該I/O口線所對(duì)應(yīng)的按鍵已按下,然后再轉(zhuǎn)向該鍵的功能處理程序。

//0///0///7y1/lj1=25圖3.11獨(dú)立式按鍵 圖3.12矩陣式鍵盤2?矩陣式按鍵,單片機(jī)系統(tǒng)中,若使按鍵較多時(shí),通常采用矩陣式(也稱行列式)鍵盤。矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點(diǎn)上,其結(jié)構(gòu)如圖所示。由圖3.12可知,一個(gè)4*4的行、列結(jié)構(gòu)可以構(gòu)成一個(gè)含有16個(gè)按鍵的鍵盤,顯然,在按鍵數(shù)量較多時(shí),矩陣式鍵盤較之獨(dú)立式按鍵鍵盤要節(jié)省很多1/0口。矩陣式鍵盤中,行、列線分別連接到按鍵開關(guān)的兩端,行線通過上拉電阻接到+5V上。當(dāng)無鍵按下時(shí),行線處于高電平狀態(tài);當(dāng)有鍵按下時(shí),行、列線將導(dǎo)通,此時(shí),行線電平將由與此行線相連的列線電平?jīng)Q定。這是識(shí)別按鍵是否按下的關(guān)鍵。然而,矩陣鍵盤中的行線、列線和多個(gè)按鍵相連,各按鍵按下與否均影響該鍵所在行線和列線的電平,各按鍵間將相互影響。因此,必須將行線,列線信號(hào)配合起來做適當(dāng)處理,才能確定閉合鍵的位置。本設(shè)計(jì)采用的矩陣式鍵盤電路如圖3.13所示。由于P2口內(nèi)存有上拉電阻,所以我們這里沒有接外部上拉電阻??紤]到設(shè)計(jì)的需要,這里我們只設(shè)置了16個(gè)按鍵,按鍵的功能如下。4*4鍵盤鍵值描述1 2 3 NULL4 5 6 NULL7 8 9 STOPENT

vcc圖3.134*4vcc圖3.134*4鍵盤與單片機(jī)接口電路理論上當(dāng)按鍵按下或彈起時(shí),可以相應(yīng)的產(chǎn)生低電平或高電平,但實(shí)際并非如此。鍵盤按鍵一般都采用觸點(diǎn)式按鍵開關(guān)。當(dāng)按鍵被按下或釋放時(shí),按鍵觸點(diǎn)的彈性會(huì)產(chǎn)生抖動(dòng)現(xiàn)象。即當(dāng)按鍵按下時(shí),觸點(diǎn)不會(huì)迅速可靠地接通,當(dāng)按鍵釋放時(shí),觸點(diǎn)也不會(huì)立即斷開,而是要經(jīng)過一段時(shí)間的抖動(dòng)才能穩(wěn)定下來,按鍵材料不同,抖動(dòng)時(shí)間也各不相同。按鍵抖動(dòng)可能導(dǎo)致單片機(jī)將一次按鍵操作識(shí)別為多次操作,一般采用硬件電路或軟件程序來消除。效放

有釋效放

有釋H1.1iBJ94—I-1-i先釋放抖動(dòng)iII!■ii-iidJ圖3.14按鍵抖動(dòng)示意圖一次完整的按鍵過程,包含以下幾個(gè)階段:如圖3.14所示。等待階段:此時(shí)按鍵尚未按下,處于空閑階段;閉合抖動(dòng)階段:此時(shí)鍵剛剛按下,但信號(hào)處于抖動(dòng)狀態(tài),系統(tǒng)在檢測時(shí)應(yīng)消抖延時(shí),約5ms到20ms;有效閉合階段:此時(shí)抖動(dòng)己經(jīng)結(jié)束,一個(gè)有效按鍵動(dòng)作己經(jīng)產(chǎn)生,系統(tǒng)應(yīng)該在此時(shí)執(zhí)行按鍵功能,或?qū)存I編碼記錄下來,待鍵彈起時(shí)再執(zhí)行其功能;釋放抖動(dòng)階段:許多時(shí)候編程人員并不在此時(shí)消抖延時(shí),但最好也執(zhí)行一次消抖延時(shí),以防止誤操作;有效釋放階段:若設(shè)計(jì)要求在按鍵抬起時(shí)才執(zhí)行功能,則應(yīng)當(dāng)在此時(shí)進(jìn)行按鍵功能的處理。

按鍵擊鍵的類型有多種劃分方式:按擊鍵時(shí)間分:短擊和長擊;按擊鍵次數(shù)分:單擊和連擊;按特殊功能分:雙擊或組合鍵等。功能分析如下:1?短擊,用戶快速按下單個(gè)按鍵,然后立即釋放;2?長擊,用戶長時(shí)間按下一個(gè)按鍵。如某些重要的功能鍵,復(fù)位,為防止用戶誤操作;3.連擊,實(shí)現(xiàn)連續(xù)操作效果,如連續(xù)加1或減1;4?復(fù)合按鍵,用戶同時(shí)按下兩個(gè)或多個(gè)按鍵,實(shí)現(xiàn)某些特殊功能;5?無鍵按下,當(dāng)用戶在一定時(shí)間內(nèi)未按任何按鍵,執(zhí)行某些特殊的操作,如自動(dòng)進(jìn)入待機(jī)態(tài)或節(jié)能態(tài)。3.5轉(zhuǎn)速測量電路設(shè)計(jì)光電傳感器是應(yīng)用非常廣泛的一種器件,有各種各樣的形式,如透射式、反射式等,基本的原理就是當(dāng)發(fā)射管光照到接收管時(shí),接收管導(dǎo)通,反之關(guān)斷。以透射式為例,如圖3.15所示,當(dāng)不透光的物體擋住發(fā)射與接收之間的間隙時(shí),開關(guān)管關(guān)斷,否則打開。為此,可以制作一個(gè)遮光片安裝在轉(zhuǎn)軸上,當(dāng)扇葉經(jīng)過時(shí),產(chǎn)生脈沖信號(hào)。123圖3.16轉(zhuǎn)速測量電路3.6電源電路電源電路如圖3.17所示,這里分別為電路供電源與電機(jī)電源。VCCGXDGNDGNDVCCGXDGNDGND圖3.17電源電路第4章軟件設(shè)計(jì)KeilC51簡介C是一種源于編寫UNIX操作系統(tǒng)的語言,它是一種結(jié)構(gòu)化語言,可產(chǎn)生緊湊代碼。C結(jié)構(gòu)是以括號(hào)()而不是字和特殊符號(hào)的語言。C可以進(jìn)行許多機(jī)器級(jí)函數(shù)控制而不用匯編語言。與匯編相比,有如下優(yōu)點(diǎn):對(duì)單片機(jī)的指令系統(tǒng)不要求了解,僅要求對(duì)8051的存貯器結(jié)構(gòu)有初步了解;寄存器分配、不同存貯器的尋址及數(shù)據(jù)類型等細(xì)節(jié)可由編譯器管理;程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù),這種方式可使程序結(jié)構(gòu)化;具有將可變的選擇與特殊操作組合在一起的能力,改善了程序的可讀性;關(guān)鍵字及運(yùn)算函數(shù)可用近似人的思維過程方式使用;編程及程序調(diào)試時(shí)間顯著縮短,從而提高效率;提供的庫包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力;已編好程序可容易地植入新程序,因?yàn)樗哂蟹奖愕哪K化編程技術(shù)。8051系列單片機(jī)作為工業(yè)標(biāo)準(zhǔn)地位,從1985年開始就有8051單片機(jī)的C語言編譯器,簡稱C51。C51程序結(jié)構(gòu)與一般C語言沒有什么差別。一個(gè)C51程序大體上是一個(gè)函數(shù)定義的集合,在這個(gè)集合中有僅有一個(gè)名為main的函數(shù)(主函數(shù))。主函數(shù)是程序的入口,主函數(shù)中的所有語句執(zhí)行完畢,則程序執(zhí)行結(jié)束°C51提供的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型的形式出現(xiàn)的,我們最常用的KeilC5l編譯器具體支持的數(shù)據(jù)類型有:位型(bit)、無符號(hào)字符(unsignedchar)、有符號(hào)字符(signedchar)、無符號(hào)整型(unsignedint)、有符號(hào)整型(signedint)、無符號(hào)長型(unsignedlong)、有符號(hào)長型(signedlong)、浮點(diǎn)(float)和指針類型等。KeilC51編譯器完全支持8051單片機(jī)的硬件結(jié)構(gòu),可完全訪問8051硬件系統(tǒng)的所有部分。該編譯器通過將變量、常量定義成不同的存貯類型(data,Nata,idata,pdata,xdata,code)的方法,將它們定位在不同的存貯區(qū)中。存貯類型與8051單片機(jī)實(shí)際存貯空間的對(duì)應(yīng)關(guān)系如表4-1所示。

存貯典型與存亡空間時(shí)對(duì)應(yīng)關(guān)系data直援尋址片內(nèi)數(shù)據(jù)存貯區(qū).訪問速懂快門胡爭節(jié))bdala可位尋扯片比戳搦存貯區(qū),允許愷與字節(jié)?(£合請(qǐng)問〔苛字節(jié)}idatA間播可址片片fil擄存貯區(qū),對(duì)訪冋片內(nèi)金部RAM地社空河w話宇節(jié)]pdata分頁尋加月外數(shù)抿存貯Kf25f>字節(jié)[由MOVX④良0協(xié)網(wǎng)xdala片外數(shù)據(jù)存MOVX<&DPTR訪問code代碼存貯區(qū)⑹(O*由MOVC@DPTR訪問表4-1存貯類型與存貯空間的對(duì)應(yīng)關(guān)系基于單片機(jī)編程語言的上述特點(diǎn),本設(shè)計(jì)采用C語言編程。為實(shí)現(xiàn)系統(tǒng)功能軟件主要可分為三部分:主程序(即控制程序)、中斷程序和PWM控制程序。4.2主程序設(shè)計(jì)主程序部分其實(shí)就是控制操作部分,執(zhí)行各項(xiàng)初始化,速度調(diào)整,以及決定是否要開啟中斷打開定時(shí)功能,流程圖如下:圖4.1主程序流程圖4.3PWM控制程序設(shè)計(jì)STC89C52內(nèi)含兩個(gè)PWM控制器,每一個(gè)都可以選擇接通時(shí)間和周期。占空比是接通時(shí)間與周期之比;調(diào)制頻率為周期的倒數(shù)。執(zhí)行PWM操作之前,它要求在軟件中完成以下工作:*設(shè)置提供調(diào)制方波的片上定時(shí)器/計(jì)數(shù)器的周期;*在PWM控制寄存器中設(shè)置接通時(shí)間;*設(shè)置PWM輸出的方向,這個(gè)輸出是一個(gè)通用I/O管腳;*啟動(dòng)定時(shí)器;*使能PWM控制器;在選擇模塊和工作方式后,對(duì)系統(tǒng)進(jìn)行初始化,設(shè)置PCA時(shí)鐘的模式。當(dāng)時(shí)鐘CL的值小于CCAP0L時(shí),輸出為低,當(dāng)CL的值等于或大于CCAP0L時(shí),輸出為高。當(dāng)CL的值由FF變?yōu)?0溢出時(shí),CCAP0H的內(nèi)容裝載到CCAP0L中。圖4.2PWM調(diào)速程序流程圖第5章論文總結(jié)本次設(shè)計(jì)采用STC89C52單片機(jī),電路結(jié)構(gòu)簡單、體積小巧、功耗低、成本低廉,可以實(shí)現(xiàn)電機(jī)恒速控制。在本次系統(tǒng)設(shè)計(jì)過程中,我研究了PWM調(diào)速系統(tǒng)的基本原理,深入學(xué)習(xí)和掌握其主要設(shè)計(jì)思路和設(shè)計(jì)方法,根據(jù)選題內(nèi)容和要求聯(lián)系具體情況選用了相關(guān)芯片,認(rèn)真查閱資料設(shè)計(jì)出了軟件和硬件,并對(duì)系統(tǒng)進(jìn)行了認(rèn)真的調(diào)試。該畢業(yè)設(shè)計(jì)涉及了單片機(jī)、微機(jī)控制、C語言編程、自動(dòng)控制、電機(jī)拖動(dòng)等多門學(xué)科。通過設(shè)計(jì)也讓我明白了許多平時(shí)很少注意的問題,由于本人主修電子信息,對(duì)自動(dòng)控制的學(xué)習(xí)時(shí)間用的比較少,其中有很多知識(shí)掌握程度不夠,對(duì)自動(dòng)控制系統(tǒng)接觸也較少。所以在系統(tǒng)設(shè)計(jì)過程中存在很多不足之處,希望在以后的工作與學(xué)習(xí)中不斷地充實(shí)自己的知識(shí)結(jié)構(gòu),能夠更好的學(xué)習(xí)電機(jī)拖動(dòng)及自動(dòng)控制方面的知識(shí)。我相信這在我以后的工作當(dāng)中亦將是很有用處的,在這里誠懇地希望審議畢業(yè)設(shè)計(jì)的各位領(lǐng)導(dǎo)、老師們給與指正、批評(píng)。致謝本次畢業(yè)設(shè)計(jì)是在XXX老師的悉心指導(dǎo)下完成的。在這短短的幾個(gè)月時(shí)間里我學(xué)到了很多東西,相信這對(duì)我以后的工作和學(xué)習(xí)會(huì)起到很大的幫助。我在這里特別感謝我的XXX老師,謝謝您!最后感謝所有幫助過我的老師和同學(xué),祝他們工作順利,學(xué)習(xí)進(jìn)步!參考文獻(xiàn)沈晉源,韓志軍,王振波.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)一入門向?qū)c設(shè)計(jì)實(shí)例[M].北京:機(jī)械工業(yè)出版社,2005丁元杰?單片微機(jī)原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,1999張淑清,姜萬錄.單片微型計(jì)算機(jī)接口技術(shù)及其應(yīng)用[M].北京:國防工業(yè)出版社,2000何立民?單片機(jī)應(yīng)用技術(shù)選編5[M].北京:北京航空航天大學(xué)出版社,1997康華光.電子技術(shù)基礎(chǔ)模擬部分[M].北京:高等教育出版社,1999康華光.電子技術(shù)基礎(chǔ)數(shù)字部分[M].北京:高等教育出版社,2000李錫雄,陳婉兒?脈寬調(diào)制技術(shù)[M].武漢:華中理工大學(xué)出版社,1996陳國呈.PWM變頻調(diào)速技術(shù)[M].北京:機(jī)械工業(yè)出版社,1998譚建成?電機(jī)控制專用集成電路[M].北京:機(jī)械工業(yè)出版社,1997潘新民,王燕?微型計(jì)算機(jī)控制技術(shù)[M].電子工業(yè)出版社,2003黃衛(wèi)平?單片機(jī)控制的全數(shù)字鎖相直流調(diào)速系統(tǒng)的研制[J].中國儀器儀表98.3韓志榮,黃鄉(xiāng)生,李躍忠.AT89C51單片機(jī)在直流電機(jī)閉環(huán)調(diào)速系統(tǒng)中的應(yīng)用[J].華東地質(zhì)學(xué)院學(xué)報(bào)?第25卷?第1期70-74張民,陶衛(wèi)東,劉漢玉?微機(jī)控制直流脈寬調(diào)速系統(tǒng)研究[J].遼寧工程技術(shù)大學(xué)學(xué)報(bào)(自然科學(xué)版)?第20卷?第3期314-316

程序一:電路原理圖附錄二:程序//*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*標(biāo)題:直流電機(jī)控制*文件名:直流電機(jī)控制*功能描述:利用單片機(jī)的定時(shí)器0來定時(shí),計(jì)數(shù)器1來計(jì)數(shù),在定時(shí)器0的定時(shí)時(shí)間內(nèi)計(jì)數(shù)器1來計(jì)外部脈沖數(shù),通過定時(shí)1S來計(jì)算電機(jī)的轉(zhuǎn)速(rpm).定時(shí)器2用來PWM波的發(fā)生和按鍵檢測掃描.通過按鍵可以設(shè)定電機(jī)的轉(zhuǎn)速和控制電機(jī)左轉(zhuǎn),右轉(zhuǎn)和停止.4*4鍵盤鍵值描述123NULL456NULL7 8 9 STOP—0 —ENT#include<reg52.h>#include<math.h>#defineuint8unsignedchar#defineuint16unsignedint#defineuint32unsignedlongint#defineTIMERO_HIGHTOxDC //設(shè)置定時(shí)器0工作方式1自動(dòng)裝載初值,定時(shí)10ms,Fosc=11.059200MHZ#defineTIMER0_LOW0x00#defineTIMER2_HIGHT0xFC //設(shè)置定時(shí)器2工作方式為自動(dòng)裝載初值,定時(shí)1ms,Fosc=11.059200MHZ#defineTIMER2_LOW0x66#definePWMFULL100//定義鍵盤對(duì)應(yīng)鍵值#defineNUM014#defineNUM11#defineNUM22#defineNUM33#defineNUM45#defineNUM56#defineNUM67#defineNUM79#defineNUM810#defineNUM911#defineUP4#defineDOWN8#defineLEFT13#defineRIGHT15#defineSTOP12#defineENT16/*x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x*-_■?\/xh*Mr|:|r'-II*x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x*//>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*ir|_*乂^4-fvozr]]>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*>f*/sbitCTRL_A=P3"2;sbitCTRL_B=P3'3;/*x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x*-_■?\/xh*Mr鄉(xiāng)一I*x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x*// *y**y**y**y**y**y**y**y**y**y**y*Jrl.乂C4-f\J厶I_I *y**Y**Y**Y**Y**Y**Y**y**y**y**y*/uint8codeDispCode[]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09};//共陽數(shù)碼管段碼表/*******************************定義數(shù)據(jù)變量*******************************/bitbtimer0flag;bitbdirection;uint16Revolution;uint16DispRevolution;uint16SetRevolution;uint8RevoCnt;uint8Timer2Cnt;uint8Timer2CntKey;uint16Timer2Cnt1S;uint8Timer2CntnS;//定時(shí)器0中斷標(biāo)志位//電機(jī)轉(zhuǎn)向位,1:正轉(zhuǎn),bitbtimer0flag;bitbdirection;uint16Revolution;uint16DispRevolution;uint16SetRevolution;uint8RevoCnt;uint8Timer2Cnt;uint8Timer2CntKey;uint16Timer2Cnt1S;uint8Timer2CntnS;//定時(shí)器2計(jì)數(shù)器//定時(shí)器2按鍵掃描計(jì)數(shù)器//定時(shí)器2定時(shí)1S計(jì)數(shù)器//定時(shí)器2定時(shí)nS計(jì)數(shù)器

uint8PwmValue;bitbSetState;bitbrun;uint8SetNumber;uint8SetItemCnt;uint16DispCnt;uint8PwmValue;bitbSetState;bitbrun;uint8SetNumber;uint8SetItemCnt;uint16DispCnt;//修改轉(zhuǎn)速標(biāo)志位//電機(jī)運(yùn)轉(zhuǎn)標(biāo)志位//按鍵修改的值//修改的位數(shù)//顯示計(jì)數(shù)器/ -―■?\/yKAi*x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x**x*/乂-f-t//初始化定時(shí)器voidTimerInitProc();//初始化定時(shí)器//測量定時(shí)器定時(shí)時(shí)間內(nèi)的轉(zhuǎn)速//獲取測量的轉(zhuǎn)速值revo,uint16set_revo);//測量定時(shí)器定時(shí)時(shí)間內(nèi)的轉(zhuǎn)速//獲取測量的轉(zhuǎn)速值revo,uint16set_revo);//顯示轉(zhuǎn)速voidDisplay(uint8chose_dat,uint8dat);voidMeasureRevolution();uint16GetRevolution();voidShowDisp(uint16measvoidChangeSetRevolution(uint8voidDelayMs(uint8Ms);voidmain(){uint8i;voidChangeSetRevolution(uint8voidDelayMs(uint8Ms);voidmain(){uint8i;InitVar();TimerInitProc();while(1){//初始化變量//初始化定時(shí)器//主函數(shù)循環(huán)Revolution=0;//每循環(huán)一次清一次for(i=RevoCnt;i>0;i--) //定時(shí)器0定時(shí)1Oms,循環(huán)100次,測得Is的轉(zhuǎn)速{MeasureRevolution(); //測量定時(shí)器定時(shí)時(shí)間內(nèi)的轉(zhuǎn)速ShowDisp(DispRevolution,SetRevolution);//顯示測得轉(zhuǎn)速和設(shè)定的轉(zhuǎn)速}//把轉(zhuǎn)速單位轉(zhuǎn)為//把轉(zhuǎn)速單位轉(zhuǎn)為rpm//轉(zhuǎn)換結(jié)果存放顯示變量}}定時(shí)器/計(jì)數(shù)器0中斷處理null定時(shí)器/計(jì)數(shù)器0中斷處理nullnullnullvoidTimer0IntProc()interrupt1{TR1=0; //停止計(jì)數(shù)器1計(jì)數(shù)TR0=0; //停止定時(shí)器0TH0=TIMER0_HIGHT;//設(shè)置定時(shí)器0高字節(jié)初值TL0=TIMER0_LOW;//設(shè)置定時(shí)器0低字節(jié)初值btimer0flag=1;//定時(shí)器0中斷標(biāo)志置1}/////////////////////////EndofTimer0IntProc////////////////////////函數(shù)功能:定時(shí)器/計(jì)數(shù)器2中斷處理入口參數(shù):null返回:null備注:nullvoidTimer2IntProc()interrupt5{uint8key_value;TF2=0; //軟件清清中斷標(biāo)志位if(Timer2Cnt<PWMFULL-1){Timer2Cnt++;}else{Timer2Cnt=0;}if(++Timer2CntlS==5000) //電機(jī)穩(wěn)定需要一定時(shí)間,5S更改一次PWM輸出值{Timer2Cnt1S=0;if(abs(SetRevolution-DispRevolution)<240) //轉(zhuǎn)速誤差4rpm{if(++Timer2CntnS==4)//在小于轉(zhuǎn)速誤差內(nèi)為讓電機(jī)運(yùn)行穩(wěn)定20S更新一次PWM輸出值{if(DispRevolution<SetRevolution-100&&SetRevolution>100)//測得轉(zhuǎn)速小于設(shè)定轉(zhuǎn)速,加大PWM脈寬{if(PwmValue<100)PwmValue++;}elseif(DispRevolution>SetRevolution+100)//測得轉(zhuǎn)速大于設(shè)定轉(zhuǎn)速,減小PWM脈寬{if(PwmValue>0)PwmValue--;}Timer2CntnS=0;}}else{if(DispRevolution<SetRevolution) //測得轉(zhuǎn)速小于設(shè)定轉(zhuǎn)速,加大PWM脈寬{if(PwmValue<100)PwmValue++;}elseif(DispRevolution>SetRevolution) //測得轉(zhuǎn)速大于設(shè)定轉(zhuǎn)速,減小PWM脈寬{if(PwmValue>0)PwmValue--;}Timer2CntnS=0;}}if(Timer2Cnt<PwmValue&&brun==1)//PWM輸出{if(bdirection==1) //電機(jī)正轉(zhuǎn){CTRL_A=0;CTRL_B=1;}else //電機(jī)反轉(zhuǎn){CTRL_A=1;CTRL_B=0;}}else{CTRL_A=1;CTRL_B=1;}if(++Timer2CntKey==20)//定時(shí)檢測按鍵{Timer2CntKey=0;key_value=Key_Judge();//獲取按鍵值switch(key_value){case0://判斷按鍵//無按鍵返回break;caseNUM0://數(shù)字鍵,在修改狀態(tài)有效if(bSetState==1){SetNumber=0;ChangeSetRevolution(SetItemCnt,SetNumber);}break;caseNUM1:if(bSetState==1){SetNumber=1;ChangeSetRevolution(SetItemCnt,SetNumber);}break;caseNUM2:if(bSetState==1){SetNumber=2;ChangeSetRevolution(SetItemCnt,SetNumber);}break;caseNUM3:if(bSetState==1){SetNumber=3;ChangeSetRevolution(SetItemCnt,SetNumber);}break;caseNUM4:if(bSetState==1){SetNumber=4;ChangeSetRevolution(SetItemCnt,SetNumber);}break;caseNUM5:if(bSetState==1){SetNumber=5;ChangeSetRevolution(SetItemCnt,SetNumber);}break;caseNUM6:if(bSetState==1){SetNumber=6;ChangeSetRevolution(SetItemCnt,SetNumber);break;caseNUM7:if(bSetState==1){SetNumber=7;ChangeSetRevolution(SetItemCnt,SetNumber);}break;caseNUM8:if(bSetState==1){SetNumber=8;ChangeSetRevolution(SetItemCnt,SetNumber);}break;caseNUM9:if(bSetState==1){SetNumber=9;ChangeSetRevolution(SetItemCnt,SetNumber);}break;caseUP:caseDOWN://無效按鍵break;caseLEFT://左轉(zhuǎn)鍵bdirection=0; //電機(jī)反轉(zhuǎn)bSetState=0; //如果在修改狀態(tài),則退出修改狀態(tài),保存修改值SetItemCnt=0;brun=1;//啟動(dòng)電機(jī)運(yùn)轉(zhuǎn)break;caseRIGHT://右轉(zhuǎn)鍵bdirection=1; //電機(jī)正轉(zhuǎn)bSetState=0; //如果在修改狀態(tài),則退出修改狀態(tài),保存修改值SetItemCnt=0;brun=1;//啟動(dòng)電機(jī)運(yùn)轉(zhuǎn)break;caseSTOP://停止鍵,停止電機(jī)轉(zhuǎn)動(dòng)brun=0;break;caseENT://修改,確定,移位,多功能鍵if(bSetState==1){if(++SetItemCnt==4)//未到修改最后一位,向右移動(dòng)一位修改值{bSetState=0;//修改完畢,退出修改狀態(tài)SetItemCnt=0;}}else{bSetState=1;//非修改狀態(tài),進(jìn)入修改狀態(tài)}brun=1;break;default:break;}/////////////////////////EndofTimer2IntProc////////////////////////函數(shù)功能:定時(shí)器/計(jì)數(shù)器初始化入口參數(shù):null返 回:null備 注:nullvoidTimerInitProc(){TMOD&=0xF0;TMOD|=0x01;//設(shè)置定時(shí)器0,方式1:16位定時(shí)器TH0=TIMER0_HIGHT;//設(shè)置定時(shí)器0高字節(jié)初值TL0=TIMER0_LOW;//設(shè)置定時(shí)器0低字節(jié)初值TMOD&=0x0F;TMOD|=0x50;//設(shè)置計(jì)數(shù)器1,方式1:16位計(jì)時(shí)器TH1=0; //設(shè)置計(jì)數(shù)器1高字節(jié)初值TL1=0; //設(shè)置計(jì)數(shù)器1低字節(jié)初值RCAP2H=TIMER2_HIGHT;//設(shè)置定時(shí)器2高字節(jié)初值,自動(dòng)裝載RCAP2L=TIMER2_LOW;//設(shè)置定時(shí)器2低字節(jié)初值,自動(dòng)裝載TR2=1;//啟動(dòng)定時(shí)器2ET0=1;//開定時(shí)器0中斷ET2=1;//開定時(shí)器2中斷EA=1;//開總中斷}/////////////////////////EndofTimerInitProc////////////////////////voidInitVar(){btimer0flag=0;bdirection=1;bSetState=0;brun=1;RevoCnt=100;SetRevolution=0000;Timer2Cnt=0;Timer2CntKey=0;Timer2Cnt1S=0;PwmValue=0;SetItemCnt=0;DispCnt=0;}voidMeasureRevolution(){TH1=0;TL1=0;TR0=1;TR1=1;//定時(shí)器中斷標(biāo)志清0//電機(jī)正轉(zhuǎn)//電機(jī)運(yùn)轉(zhuǎn)//轉(zhuǎn)速測量次數(shù)//設(shè)定轉(zhuǎn)速初值//定時(shí)器2中斷計(jì)數(shù)器while(btimer0flag==0);btimer0flagRevolution}//定時(shí)器1計(jì)時(shí)清0//啟動(dòng)定時(shí)器0//啟動(dòng)定時(shí)器1開始計(jì)時(shí)//等待定時(shí)時(shí)間到0;Revolution+GetRevolution();uint16GetRevolution(){uint16meas_revo;//獲取定時(shí)器定時(shí)時(shí)間內(nèi)電機(jī)轉(zhuǎn)動(dòng)的圈數(shù)meas_revo=(TH1<<8)|TL1;returnmeas_revo;//獲取定時(shí)器定時(shí)時(shí)間內(nèi)電機(jī)轉(zhuǎn)動(dòng)的圈數(shù)}voidShowDisp(uint16meas_revo,uint16set_revo){Display(3,DispCode[meas_revo%10]);//顯示測量轉(zhuǎn)速的最低位meas_revo=meas_revo/10;Display(2,DispCode[meas_revo%10]);meas_revo=meas_revo/10;Display(1,DispCode[meas_revo%10]);meas_revo=meas_revo/10;Display(0,DispCode[meas_revo%10]);//顯示測量轉(zhuǎn)速的最高位meas_revo=meas_revo/10;Display(7,DispCode[set_revo%10]);//顯示設(shè)定轉(zhuǎn)速的最低位set_revo=set_revo/10;Display(6,DispCode[set_revo%10]);set_revo=set_revo/10;Display(5,DispCode[set_revo%10]);set_revo=set_revo/10;Display(4,DispCode[set_revo%10]);//顯示設(shè)定轉(zhuǎn)速的最高位set_revo=set_revo/10;}//*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*函數(shù)名:Display(ucharchose_dat,uchardat)*函數(shù)功能:數(shù)碼管顯示*入口參數(shù):chose_dat數(shù)碼管顯示字位,dat顯示字型*返回:無*?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L**?L*/*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^

溫馨提示

  • 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論