

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 摘要1</b></p><p><b> 1 緒論2</b></p><p> 1.1 課題背景2</p><p> 1.2 課題研究的目的和意義3</p><p&g
2、t; 1.3 系統(tǒng)的設(shè)計(jì)要求及內(nèi)容3</p><p> 2 電風(fēng)扇系統(tǒng)的方案論證3</p><p> 2.1 保護(hù)電路的選擇3</p><p> 2.2 控制核心的選擇4</p><p> 2.3 顯示電路的選擇5</p><p> 3 系統(tǒng)的主要硬件電路設(shè)計(jì)5</p><p
3、> 3.1 總體硬件設(shè)計(jì)5</p><p> 3.2 過(guò)熱檢測(cè)模塊的設(shè)計(jì)8</p><p> 3.3 電機(jī)調(diào)速與控制模塊設(shè)計(jì)9</p><p> 3.4 顯示與控制模塊設(shè)計(jì)10</p><p> 3.5 鍵盤模塊設(shè)計(jì)11</p><p> 4 系統(tǒng)程序設(shè)計(jì)及仿真12</p>
4、<p> 4.1 主程序流程圖設(shè)計(jì)12</p><p> 4.2 定時(shí)器T0中斷程序流程圖設(shè)計(jì)13</p><p> 4.3 A/D轉(zhuǎn)換測(cè)量子程序流程圖設(shè)計(jì)14</p><p> 4.4 系統(tǒng)仿真結(jié)果14</p><p> 4.5 源程序15</p><p><b> 結(jié)論1
5、5</b></p><p><b> 致謝15</b></p><p><b> 參考文獻(xiàn)15</b></p><p> 附錄A:?jiǎn)纹瑱C(jī)電風(fēng)扇控制系統(tǒng)的設(shè)計(jì)原理圖16</p><p> 附錄B:仿真結(jié)果圖17</p><p> 附錄C:參考程序
6、22</p><p> 單片機(jī)電風(fēng)扇控制系統(tǒng)</p><p> 摘要:本論文設(shè)計(jì)了一個(gè)單片機(jī)電風(fēng)扇控制系統(tǒng)。系統(tǒng)采用MCS-52單片機(jī)為控制核心,設(shè)計(jì)了按鍵電路、顯示電路和過(guò)熱保護(hù)電路,并采用C語(yǔ)言進(jìn)行編程、調(diào)試和仿真,實(shí)現(xiàn)了電風(fēng)扇的幾項(xiàng)基本功能:電機(jī)的正反轉(zhuǎn)功能,0-990秒的定時(shí)功能,以及自然、正常、睡眠三種風(fēng)類的選擇功能。經(jīng)過(guò)多次的測(cè)試與電路的調(diào)整、系統(tǒng)的各項(xiàng)功能均能正常實(shí)現(xiàn)。&
7、lt;/p><p> 關(guān)鍵詞:MCS-52,電風(fēng)扇,保護(hù)電路,定時(shí)</p><p> Design of the electric fan controller system based on MCU</p><p> Abstract:In this paper,it designed an electric fan controller system base
8、d on MCU.The system used MCS-52 microcontroller as the core of control, designed the key circuit, display circuit and overheating protection circuit which used C language to complete the programm, test and simulation,it
9、has realized a few basic function of electric fan : reversing function, fixed time of 0-990 seconds and three kinds of wind selecting which are natural,normal and sleepy.After many tests and improvement, all</p>&
10、lt;p> Keywords:MCU,Electric fan,Protection circuit,Fixed time</p><p><b> 1 緒論 </b></p><p><b> 1.1 課題背景</b></p><p> 電風(fēng)扇在我國(guó),是80年代開始興起的一種小型的家用電器,剛開始它的功能單
11、一,而且耗電量大,隨著技術(shù)的不斷更新,它的功能更加強(qiáng)大,更加趨于人性化。</p><p> 作為一種老式的家電,電風(fēng)扇具有價(jià)格便宜,擺放方便,體積輕巧等特點(diǎn),由于大部分家庭消費(fèi)水平的限制,電風(fēng)扇作為一個(gè)成熟家電行業(yè)的一員,尤其是在中小城市,以及鄉(xiāng)村將來(lái)一段時(shí)間內(nèi)依然占有市場(chǎng)大部分份額。</p><p> 面臨龐大的市場(chǎng)需要的同時(shí),也要提高電風(fēng)扇的市場(chǎng)競(jìng)爭(zhēng)力。使之在技術(shù)含量上有所提高,使
12、風(fēng)速不僅功能多樣,操作簡(jiǎn)便,而且更加安全可靠。本設(shè)計(jì)采用了單片機(jī)作為該電風(fēng)扇系統(tǒng)的控制核心。</p><p> 在國(guó)際市場(chǎng)上,單片機(jī)產(chǎn)品的類型很多。其中Intel公司的產(chǎn)品比較領(lǐng)先占有較大銷售份額。在我國(guó)Intel公司的MCS-48系列,MCS-51系列,MCS-96系列的各種機(jī)型用得最多,占主流地位。</p><p> 隨著大規(guī)模集成電路技術(shù)的演進(jìn),單片機(jī)的性能在快速提高。其生產(chǎn)工藝
13、經(jīng)歷了MOS,NMOS,HMOS,CMOS等各個(gè)階段,正朝著CHMOS(高速型CMOS)工藝的方向發(fā)展并繼續(xù)提高集成度;增大RAM,ROM容量,增多功能模,提高速度,降低功耗。</p><p> 人類社會(huì)已經(jīng)進(jìn)入信息時(shí)代,人民的社會(huì)活動(dòng)主要依靠對(duì)信息資源的開發(fā)及獲取,傳輸與處理。傳感器處于研究對(duì)象與測(cè)試系統(tǒng)的接口位置,即檢測(cè)與控制系統(tǒng)之首。因此,傳感器成為感知,獲取與檢測(cè)信息的窗口,一切科學(xué)研究與自動(dòng)化生產(chǎn)過(guò)程
14、要獲取的信息,都要通過(guò)獲取并通過(guò)它轉(zhuǎn)換為容易傳輸與處理的電信號(hào)。所以傳感器的作用與地位就特別重要了。</p><p> 若將計(jì)算機(jī)比喻為人的大腦,那么傳感器就可以比喻為人的感覺(jué)器官了??梢栽O(shè)想,沒(méi)有功能正常而完美的感覺(jué)器官,不能迅速而準(zhǔn)確的采集與轉(zhuǎn)換欲獲得的外界信息,縱有再好的大腦也無(wú)法發(fā)揮其應(yīng)有的作用??茖W(xué)越發(fā)達(dá),自動(dòng)化程度越高,對(duì)傳感器的依賴性就越大。所以,20世紀(jì)80年代以來(lái),世界各國(guó)都將傳感器技術(shù)列為重
15、點(diǎn)發(fā)展的高技術(shù),備受重視。</p><p> 1.2 課題研究的目的和意義 </p><p> 面臨龐大的市場(chǎng)需要,需要提高電風(fēng)扇的市場(chǎng)競(jìng)爭(zhēng)力。使之在技術(shù)含量上有所提高,應(yīng)使風(fēng)速不僅功能多樣,操作簡(jiǎn)便,而且更加安全可靠,為此,在將要走出大學(xué)校門,撰寫畢業(yè)論文之計(jì),我選擇《電風(fēng)扇控制系統(tǒng)設(shè)計(jì)》作為我的畢業(yè)設(shè)計(jì)研究課題。大學(xué)期間,分別學(xué)習(xí)了《單片機(jī)原理及其應(yīng)用》,《傳感器檢測(cè)及應(yīng)用技術(shù)》等
16、課程,對(duì)單片機(jī)的一些應(yīng)用也略知一二。所以在設(shè)計(jì)課題的時(shí)候,給電風(fēng)扇賦予了人性化的設(shè)計(jì),如過(guò)熱保護(hù)功能。相信其人性化的設(shè)計(jì)將大大提高電風(fēng)扇的市場(chǎng)競(jìng)爭(zhēng)力。</p><p> 而且最主要的是通過(guò)傳感器的控制使得科技的應(yīng)用深入生活中,讓廣大人民能享受到科技帶來(lái)的方便。</p><p> 1.3 系統(tǒng)的設(shè)計(jì)要求及內(nèi)容</p><p> 本設(shè)計(jì)以MCS-52單片機(jī)為核心,
17、通過(guò)按鍵掃描電路和顯示電路建立一個(gè)控制系統(tǒng),使電風(fēng)扇人為的變換檔位,能夠滿足人們的需求。另外,通過(guò)過(guò)熱保護(hù)電路可以很好的保護(hù)電機(jī),當(dāng)電機(jī)發(fā)熱時(shí),電路報(bào)警并且電機(jī)停轉(zhuǎn),當(dāng)電機(jī)溫度恢復(fù)正常時(shí),電機(jī)又正常工作。</p><p> 本設(shè)計(jì)主要內(nèi)容如下:</p><p> 1、用4位數(shù)碼管實(shí)時(shí)顯示電風(fēng)扇的工作狀態(tài),最高位顯示風(fēng)類:“自然風(fēng)”顯示“1”、“正常風(fēng)”顯示“2”、“睡眠風(fēng)”顯示“3”。
18、后3位顯示定時(shí)時(shí)間:動(dòng)態(tài)倒計(jì)時(shí)顯示剩余的定時(shí)時(shí)間,無(wú)定時(shí)顯示“000”。</p><p> 2、設(shè)計(jì)“自然風(fēng)”,“正常風(fēng)”和“睡眠風(fēng)”三個(gè)風(fēng)類鍵用于設(shè)置風(fēng)類;設(shè)計(jì)一個(gè)“定時(shí)”鍵,用于定時(shí)時(shí)間長(zhǎng)短設(shè)置;設(shè)計(jì)一個(gè)“搖頭”鍵用于控制電機(jī)搖頭。</p><p> 在整個(gè)定時(shí)狀態(tài)下,電路具有允許用戶隨時(shí)自行選擇使用“自然風(fēng)”狀態(tài),也可選擇使用“常風(fēng)”和“睡眠風(fēng)”狀態(tài)。</p>&l
19、t;p> 設(shè)計(jì)過(guò)熱檢測(cè)與保護(hù)電路,若電風(fēng)扇電機(jī)過(guò)熱,則電機(jī)停止轉(zhuǎn)動(dòng),電機(jī)冷卻后電機(jī)又恢復(fù)轉(zhuǎn)動(dòng)。</p><p> 2 電風(fēng)扇系統(tǒng)的方案論證</p><p> 2.1 保護(hù)電路的選擇</p><p> 保護(hù)電路可由以下幾種方案可供選擇:</p><p> 方案一:選用熱敏電阻作為感測(cè)溫度的核心元件,通過(guò)運(yùn)算放大器放大于是溫度變化
20、引起熱敏電阻的變化,進(jìn)而導(dǎo)致輸出微弱的電壓變化信號(hào),再用A/D轉(zhuǎn)換芯ADC0809將模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)輸入單片機(jī)處理。</p><p> 方案二:采用熱電偶作為感測(cè)溫度的核心元件,配合橋式電路,運(yùn)算放大電路和A/D轉(zhuǎn)換電路,將電機(jī)溫度變化信號(hào)送入單片機(jī)處理。</p><p> 方案三:選用ADC0809作為過(guò)熱保護(hù)電路的核心部件,假設(shè)先設(shè)定一個(gè)標(biāo)準(zhǔn)電壓值,通過(guò)0-5V模擬電壓輸入進(jìn)
21、行模數(shù)轉(zhuǎn)換,如果數(shù)據(jù)超過(guò)標(biāo)準(zhǔn)值則單片機(jī)對(duì)電機(jī)進(jìn)行相應(yīng)操作,使電機(jī)啟停。</p><p> 對(duì)于方案一,采用熱敏電阻有價(jià)格便宜、元件易購(gòu)的優(yōu)點(diǎn),但熱敏電阻對(duì)溫度的細(xì)微變化不敏感,在信號(hào)采集、放大、轉(zhuǎn)換過(guò)程還會(huì)產(chǎn)生失真和誤差,并且由于熱敏電阻的R-T關(guān)系的非線性,其本身電阻對(duì)溫度的變化存在較大的誤差,雖然可以通過(guò)一定的電路給以糾正,將使電路復(fù)雜穩(wěn)定性降低,故該方案不適合本系統(tǒng)。</p><p&g
22、t; 對(duì)于方案二,采用熱電偶和橋式測(cè)量電路相對(duì)于熱敏電阻和其對(duì)溫度的敏感性和器件的非線性誤差都有較大的提高,其測(cè)量范圍也非常高,從-50攝氏度到1600攝氏度均可測(cè)量,但是依然存在電路復(fù)雜,對(duì)過(guò)熱檢測(cè)達(dá)不到本系統(tǒng)要求的標(biāo)準(zhǔn),故不采用此方案。</p><p> 對(duì)于方案三,取代了傳感器檢測(cè)電路,大大降低了外接放大轉(zhuǎn)換等電路的誤差因素,通過(guò)運(yùn)用電壓值來(lái)模擬電機(jī)溫度值,使得其分辨率很高,可以滿足系統(tǒng)要求,故采用方案
23、三。</p><p> 2.2 控制核心的選擇</p><p> 方案一:采用電壓比較電路作為控制部件。溫度傳感器采用熱敏電阻或熱電偶等,溫度信號(hào)轉(zhuǎn)為電信號(hào)并放大,集成運(yùn)放組成的比較電路判決控制風(fēng)扇的轉(zhuǎn)速。當(dāng)高于或低于某值時(shí)將風(fēng)扇切換到相應(yīng)檔位。</p><p> 方案二:采用單片機(jī)作為控制核心,以軟件編程的方式進(jìn)行風(fēng)速判斷,并在端口輸出控制信號(hào)。</p
24、><p> 對(duì)于方案一,采用電壓比較電路具有電路簡(jiǎn)單、易于實(shí)現(xiàn),以及無(wú)需編寫軟件程序的特點(diǎn),但控制方式過(guò)于單一,不能自由設(shè)置上下限動(dòng)作及定時(shí)時(shí)間,無(wú)法滿足不同用戶以及不同環(huán)境下的要求,故不采用此方案。</p><p> 對(duì)于方案二,以單片機(jī)作為控制器,通過(guò)編寫程序不但能將傳感器檢測(cè)到的模擬溫度值通過(guò)A/D轉(zhuǎn)換傳給單片機(jī)進(jìn)行處理,而且用戶能通過(guò)鍵盤接口,自由設(shè)置上下限定時(shí)時(shí)間,滿足全方位的需
25、求,并且通過(guò)檢測(cè)電路判斷電機(jī)溫度是否過(guò)高,能精確把握電機(jī)溫度的微小變化。故本系統(tǒng)采用方案二。</p><p> 2.3 顯示電路的選擇</p><p> 方案一:采用液晶顯示屏LCD顯示電機(jī)狀態(tài)。</p><p> 方案二:采用八位共陰數(shù)碼管顯示電機(jī)狀態(tài),動(dòng)態(tài)掃描顯示方式。</p><p> 對(duì)于方案一,液晶顯示屏具有顯示字符優(yōu)美,不
26、但能顯示數(shù)字還能顯示字符甚至圖形的優(yōu)點(diǎn),這是LED數(shù)碼管無(wú)法比擬的,但是液晶顯示模塊價(jià)格昂貴,驅(qū)動(dòng)程序復(fù)雜,因?yàn)橐粋€(gè)字符由6×8或8×8點(diǎn)陣組成,既要找到和顯示屏上某幾個(gè)位置對(duì)應(yīng)的顯示RAM的8字節(jié),還要使每字節(jié)的不同位有的為“1”,有的為“0”,為“1”點(diǎn)亮,為“0”的不亮。從硬件電路復(fù)雜性原則考慮,故不采用。</p><p> 對(duì)于方案二,該方案成本低廉,顯示溫度明確醒目,在夜間也能看見(jiàn)
27、,功耗極低,顯示驅(qū)動(dòng)程序的編寫也相對(duì)簡(jiǎn)單,這種顯示方式得到廣泛應(yīng)用。不足的地方是掃描方式是循環(huán)使四個(gè)LED依次點(diǎn)亮,因此會(huì)有閃爍,但是人眼的視覺(jué)暫留時(shí)間為20M,當(dāng)數(shù)碼管掃描周期小于這個(gè)時(shí)間時(shí)人眼看不到閃爍,故采用本方案。</p><p> 3 系統(tǒng)的主要硬件電路設(shè)計(jì)</p><p> 3.1 總體硬件設(shè)計(jì)</p><p> 本系統(tǒng)由五個(gè)模塊組成,分別是輸入模
28、塊、顯示模塊、電機(jī)控制模塊、過(guò)熱保護(hù)模塊以及單片機(jī)控制系統(tǒng)。其中單片機(jī)控制系統(tǒng)是核心,由AT89C52、晶振和復(fù)位電路組成。它通過(guò)處理輸入的各種數(shù)據(jù)信息來(lái)對(duì)其它模塊發(fā)出指令,進(jìn)行相應(yīng)的操作。輸入模塊由5個(gè)按鍵組成,分別控制電機(jī)的風(fēng)速、正反轉(zhuǎn)和定時(shí)時(shí)間。顯示模塊由8位共陰數(shù)碼管組成,顯示定時(shí)時(shí)間和風(fēng)速。過(guò)熱保護(hù)模塊由ADC0809和外圍電路組成,通過(guò)設(shè)定電壓初始值使電機(jī)超值停轉(zhuǎn)并且相應(yīng)二極管發(fā)光報(bào)警。電機(jī)控制模塊由L298和其它的元器件組
29、成,它主要是放大輸入信號(hào)的倍數(shù),用來(lái)驅(qū)動(dòng)電機(jī)。系統(tǒng)總體設(shè)計(jì)框圖如圖3.1所示:</p><p> 圖3.1 系統(tǒng)原理框圖</p><p> 對(duì)于單片機(jī)中央處理系統(tǒng)的方案設(shè)計(jì),根據(jù)要求,我們可以選擇AT89C52單片機(jī)作為中央處理器,作為整個(gè)控制系統(tǒng)的核心,AT89C52內(nèi)部包含了定時(shí)器,程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器等硬件,其硬件能符合整個(gè)控制系統(tǒng)的要求,不需要外接其它存儲(chǔ)器和定時(shí)器件、方便,
30、整個(gè)系統(tǒng)結(jié)構(gòu)緊湊,抗干擾能力強(qiáng),性價(jià)比高,是比較適合的方案。</p><p> 3.1.1 AT89C52單片機(jī)的性能及應(yīng)用</p><p> 單片機(jī)是早期Single Chip Microcomputer的直譯,它反映了早期單片機(jī)的形態(tài)和本質(zhì)。然后,按照面向?qū)ο?,突出控制功能,在片?nèi)集成了許多外圍電路及外設(shè)接口,突破了傳統(tǒng)意義上的計(jì)算機(jī)結(jié)構(gòu),發(fā)展成microcontroller的體系
31、結(jié)構(gòu),目前國(guó)外已普遍稱之為微控制器MCU(Microcontroller Unit)。鑒于它完全作嵌入應(yīng)用,故又稱為嵌入式微控制器(Embedded Microcontroller)[1]。</p><p> 3.1.2 單片機(jī)的主要特征</p><p> 由于AT89C52單片機(jī)的設(shè)計(jì)時(shí)間有限其精度不是很高,它的測(cè)溫范圍在0~100℃之間,可以直接應(yīng)用在對(duì)溫度精度要求不高的各種現(xiàn)場(chǎng)。
32、單片機(jī)多通道溫度采集測(cè)控系統(tǒng)采用數(shù)字溫度傳感器滿足溫度測(cè)量,并將溫度采集信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)經(jīng)單片機(jī)處理并經(jīng)輸出驅(qū)動(dòng)電路顯示于共陰極數(shù)碼管。該測(cè)量?jī)x可實(shí)現(xiàn)多點(diǎn)(4點(diǎn))不同區(qū)域測(cè)量,單通道,循環(huán)測(cè)量。除此之外,考慮到測(cè)控會(huì)用于工業(yè)生產(chǎn)當(dāng)中,增加了超溫報(bào)警功能,可以設(shè)置溫度的上下限,可靠性要求比較高,軟件編程比較難[2]。</p><p> AT89C52單片機(jī)溫度測(cè)控儀采用ATMEL公司的AT89C52單片機(jī),采用
33、雙列直插(DIP),有40個(gè)引腳。該單片機(jī)采用ATMEL公司的高密度非易失性存儲(chǔ)技術(shù)制造,與美國(guó)INTEL公司生產(chǎn)的MCS-51系列單片機(jī)的指令和引腳設(shè)置兼容。其主要特征如下:</p><p> 1、8位CPU 2、內(nèi)置8K字節(jié)可重復(fù)編程Flash,可重復(fù)擦寫1000次 3、完全定態(tài)操作:0Hz~24Hz,可輸出時(shí)鐘信號(hào) 4、256字節(jié)的片內(nèi)數(shù)據(jù)存儲(chǔ)器 5、32根可編程I/O線 6、2個(gè)16
34、位定時(shí)/計(jì)數(shù)器 7、中斷系統(tǒng)有6個(gè)中斷源,可編為兩個(gè)優(yōu)先級(jí) 8、一個(gè)全雙工可編程串行通道 9、具有兩種節(jié)能模式:閑置模式和掉電模式</p><p> 值得注意的是,P0、P1、P2、P3口作為普通I/O口使用時(shí)都是準(zhǔn)雙向口結(jié)構(gòu),其輸入操作和輸出操作本質(zhì)不同,輸入操作是讀引腳狀態(tài),輸出是對(duì)鎖存器的寫入操作。當(dāng)內(nèi)部總線給口鎖存器置0或1時(shí),鎖存器中的0、1狀態(tài)立即反映到引腳上。但在輸入操作時(shí),如果鎖存器
35、狀態(tài)為0引腳被鉗位0狀態(tài),導(dǎo)致無(wú)法讀出引腳的高電平輸入。因此,準(zhǔn)雙向口作為輸入口時(shí),應(yīng)先使鎖存器置1(稱之為置輸入方式)。</p><p> 另外,I/O口的端口自動(dòng)識(shí)別功能,保證了無(wú)論是P1口(低8位地址)P2口(高8位地址)的總線復(fù)用,還是P3口的功能復(fù)用,內(nèi)部資源自動(dòng)選擇不需要用指令進(jìn)行狀態(tài)選擇。隨著計(jì)算機(jī)技術(shù)的發(fā)展,單片機(jī)的功能越來(lái)越強(qiáng)大,壽命長(zhǎng)、速度快、低功耗、低噪聲、可靠性高的特點(diǎn)及16位、32位單
36、片機(jī)的出現(xiàn),在工業(yè)領(lǐng)域仍具有很大的發(fā)展?jié)摿Α?lt;/p><p> 3.1.3 硬件系統(tǒng)的設(shè)計(jì)</p><p> 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)可劃分為兩部分:一部分是與單片機(jī)直接接口的數(shù)字電路范圍內(nèi)電路芯片的設(shè)計(jì)。如存儲(chǔ)器和并行接口的擴(kuò)展、定時(shí)系統(tǒng)、中斷系統(tǒng)擴(kuò)展,一般的外部設(shè)備的接口,甚至于A/D、D/A芯片的接口。另一部分是與模擬電路相關(guān)的電路設(shè)計(jì)包括信號(hào)整形、變換、隔離和選用傳感器,輸出通道中
37、的隔離和驅(qū)動(dòng)以及執(zhí)行元件的選用。</p><p> (1)從應(yīng)用系統(tǒng)的總線觀念出發(fā),各局部系統(tǒng)和通道接口設(shè)計(jì)與單片機(jī)要做到全局一盤棋。例如,芯片間的時(shí)間是否匹配,電平是否兼容,能否實(shí)現(xiàn)總線隔離緩沖等,避免“拼盤”戰(zhàn)術(shù)。</p><p> (2)盡可能選用符合單片機(jī)用法的典型電路。</p><p> (3)盡可能采用新技術(shù),選用新的元件及芯片。</p&
38、gt;<p> (4)抗干擾設(shè)計(jì)是硬件設(shè)計(jì)的重要內(nèi)容,如看門狗電路、去耦濾波、通道隔離、合理的印制板布線等。</p><p> (5)當(dāng)系統(tǒng)擴(kuò)展的各類接口芯片較多時(shí),要充分考慮到總線驅(qū)動(dòng)能力。當(dāng)負(fù)載超過(guò)允許范圍時(shí),為了保證系統(tǒng)可靠工作,必須加總線驅(qū)動(dòng)器。 </p><p> 3.2 過(guò)熱檢測(cè)模塊的設(shè)計(jì)</p><p> 3.2.1 ADC08
39、09簡(jiǎn)介</p><p> ADC0809是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D模數(shù)轉(zhuǎn)換器。其內(nèi)部有一個(gè)8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行A/D轉(zhuǎn)換[3]。是目前國(guó)內(nèi)應(yīng)用最廣泛的8位通用A/D芯片。</p><p> 3.2.2 ADC0809的工作原理</p><p> ADC08
40、09的工作原理是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng)A/D轉(zhuǎn)換,之后EOC輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng)OE輸入高電平時(shí),輸出三態(tài)門打開。</p><p> 轉(zhuǎn)換數(shù)據(jù)的傳送A/D轉(zhuǎn)換后得到的數(shù)
41、據(jù)應(yīng)及時(shí)傳送給單片機(jī)進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問(wèn)題是如何確認(rèn)A/D轉(zhuǎn)換的完成,因?yàn)橹挥写_認(rèn)完成后,才能進(jìn)行傳送。為此可采用下述三種方式[4]。 </p><p> ?。?)定時(shí)傳送方式 </p><p> 對(duì)于一種A/D轉(zhuǎn)換器來(lái)說(shuō),轉(zhuǎn)換時(shí)間作為一項(xiàng)技術(shù)指標(biāo)是已知的和固定的。例如ADC0809轉(zhuǎn)換時(shí)間為128μs,相當(dāng)于6MHz的MCS-51單片機(jī)共64個(gè)機(jī)器周期??蓳?jù)此設(shè)計(jì)一個(gè)延時(shí)子程序
42、,A/D轉(zhuǎn)換啟動(dòng)后即調(diào)用此子程序,延遲時(shí)間一到,轉(zhuǎn)換已經(jīng)完成了,接著就可進(jìn)行數(shù)據(jù)傳送。 </p><p><b> ?。?)查詢方式 </b></p><p> A/D轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成的狀態(tài)信號(hào),例如ADC0809的EOC端。因此可以用查詢方式,測(cè)試EOC的狀態(tài),即可確認(rèn)轉(zhuǎn)換是否完成,并接著進(jìn)行數(shù)據(jù)傳送。 </p><p><b
43、> (3)中斷方式 </b></p><p> 把表明轉(zhuǎn)換完成的狀態(tài)信號(hào)(EOC)作為中斷請(qǐng)求信號(hào),以中斷方式進(jìn)行數(shù)據(jù)傳送。</p><p> 3.3 電機(jī)調(diào)速與控制模塊設(shè)計(jì)</p><p> 電機(jī)調(diào)速是整個(gè)控制系統(tǒng)中的一個(gè)重要的方面,通過(guò)L298來(lái)調(diào)節(jié)PWM的輸出,使輸出端電壓發(fā)生變化,從而使施加在電風(fēng)扇的輸入電壓發(fā)生改變,以調(diào)節(jié)電風(fēng)扇
44、的轉(zhuǎn)速,實(shí)現(xiàn)各檔位的風(fēng)速的切換。</p><p> 3.3.1 L298芯片介紹</p><p> L298驅(qū)動(dòng)芯片是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路。是一種二相和四相的專用驅(qū)動(dòng)器,即內(nèi)部包含二個(gè)H橋的高壓六雙橋式驅(qū)動(dòng)器接收標(biāo)準(zhǔn)TTL邏輯電平信號(hào),可驅(qū)動(dòng)46V、2A以下的電機(jī)。</p><p> L298有兩路電源分別為邏輯電源6V和動(dòng)力電源12V
45、,ENA、ENB直接接5V電源使電機(jī)進(jìn)入使能狀態(tài),IN1和IN2用來(lái)控制電路的邏輯功能狀態(tài)。由于使用的電機(jī)是線圈式,在從運(yùn)行狀態(tài)突然轉(zhuǎn)到停止?fàn)顟B(tài)和從順時(shí)針狀態(tài)突然轉(zhuǎn)到逆時(shí)針狀態(tài)時(shí)會(huì)形成很大的方向電流,在電路中加入二極管就是在產(chǎn)生方向電流的時(shí)候進(jìn)行泄流,保護(hù)芯片的安全,表3.1為L(zhǎng)298的邏輯功能表[5]。</p><p> 表3.1 L298邏輯功能表</p><p> 3.3.2 電
46、機(jī)調(diào)速原理</p><p> 我們采用的PWM來(lái)實(shí)現(xiàn)直流電動(dòng)機(jī)的調(diào)速,由于直流電機(jī)的轉(zhuǎn)速與加在其兩端的平均電壓成正比,所以在對(duì)直流電動(dòng)機(jī)電樞電壓的控制和驅(qū)動(dòng)中,目前經(jīng)常使用的是通過(guò)改變電機(jī)電樞電壓接通時(shí)間與通電周期的比值來(lái)控制轉(zhuǎn)速,其優(yōu)點(diǎn):控制原理簡(jiǎn)單輸出波動(dòng)小,線性好,對(duì)鄰近電路干擾小,缺點(diǎn)是:功率低,散熱問(wèn)題嚴(yán)重。占空比示意圖如圖3.2所示。</p><p> 圖3.2 占空比示意
47、圖</p><p> 電動(dòng)機(jī)的電驅(qū)繞組兩端的電壓平均值U為:式中D為占空比,。</p><p> 占空比表示了在一個(gè)周期T里開關(guān)管導(dǎo)通的時(shí)間與周期的比值,D的變化范圍為0<=D<=1。當(dāng)電源電壓UB不變的情況下,輸出電壓的平均值U取決于與占空比D的大小,改變D值也就改變了輸出電壓的平均值,從而達(dá)到控制電動(dòng)機(jī)轉(zhuǎn)速的目的,即實(shí)現(xiàn)了PWM調(diào)速。</p><p&
48、gt; 3.3.3 電機(jī)調(diào)速模塊設(shè)計(jì)</p><p> 根據(jù)硬件原理圖連接好電路,A/D接入單片機(jī)上通過(guò)程序來(lái)控制L298輸出控制直流電機(jī)的轉(zhuǎn)動(dòng)。通過(guò)不同按鍵輸出不同的占空比,使直流電機(jī)轉(zhuǎn)動(dòng)。當(dāng)自然風(fēng)鍵按下時(shí),輸出占空比為1:3的方波;當(dāng)常風(fēng)鍵按下時(shí),輸出占空比為3:1的方波;當(dāng)睡眠風(fēng)鍵按下時(shí),輸出占空比為1:5的方波;當(dāng)搖頭鍵按下時(shí),電機(jī)反轉(zhuǎn),同時(shí)保持原先的風(fēng)速[6]。</p><p&g
49、t; 3.4 顯示與控制模塊設(shè)計(jì)</p><p> LED數(shù)碼管有共陽(yáng)和共陰兩種,都把這些LED發(fā)光二極管的負(fù)極接到一塊(一般是拼成一個(gè)8字加一個(gè)小數(shù)點(diǎn)而作為一個(gè)引腳,為共陰管)。</p><p> 本系統(tǒng)設(shè)計(jì)采用4位共陰數(shù)碼管顯示電路,在設(shè)計(jì)4位LED顯示時(shí),為了簡(jiǎn)化電路,降低成本,采用動(dòng)態(tài)顯示的方式,4個(gè)LED顯示共用一個(gè)8位的I/O,4個(gè)LED數(shù)碼管的位選線分別由相應(yīng)的P2.0
50、-P2.3控制,而將其相應(yīng)的段選線并聯(lián)在一起,由一個(gè)8位的I/O口控制,即P0口。譯碼顯示電路將檔位和定時(shí)時(shí)間的輸出狀態(tài)經(jīng)顯示譯碼器譯碼,通過(guò)4位LED七段顯示器顯示出來(lái)。到達(dá)定時(shí)時(shí)間電機(jī)停止轉(zhuǎn)動(dòng)同時(shí)定時(shí)時(shí)間變?yōu)?。P2.5口接一個(gè)發(fā)光二極管,當(dāng)電壓值超壓時(shí)二極管燈亮實(shí)現(xiàn)報(bào)警,此狀態(tài)下,無(wú)論定時(shí)時(shí)間和風(fēng)速鍵是否按下,電機(jī)都處于停止?fàn)顟B(tài)[7]。</p><p> 3.5 鍵盤模塊設(shè)計(jì)</p><
51、;p> 3.5.1 鍵盤方式選擇</p><p> 常用的鍵盤識(shí)別方法有:行掃描法、線翻轉(zhuǎn)法和利用8270鍵盤接口的中斷法,在本系統(tǒng)中,完全可以不運(yùn)用中斷法完成鍵盤接口,這是由系統(tǒng)的特殊性決定的。</p><p> 首先,對(duì)于本系統(tǒng)而言,要實(shí)現(xiàn)便攜式的設(shè)計(jì),硬件電路使用的越少越好。</p><p> 其次,被測(cè)信號(hào)由外中斷引腳輸入,未占用單片機(jī)4個(gè)并行
52、I/O口中的任何一個(gè),系統(tǒng)有足夠的資源利用自身I/O完成接口。</p><p> 最后,只有當(dāng)傳感器輸出信號(hào)頻率為空載頻率,系統(tǒng)處于空閑待測(cè)的狀態(tài)下,才允許鍵盤輸入,因此鍵盤識(shí)別占用的CPU時(shí)間不會(huì)對(duì)系統(tǒng)正常工作造成影響,因此直接利用單片機(jī)并行接口完成鍵盤的接口,采用線翻轉(zhuǎn)法進(jìn)行鍵盤識(shí)別[8]。</p><p> 3.5.2 實(shí)現(xiàn)方案</p><p> 本系統(tǒng)
53、使用簡(jiǎn)單的鍵盤和數(shù)碼顯示器件來(lái)完成輸入\輸出操作的人機(jī)界面。鍵盤輸入信息的主要過(guò)程是:</p><p> 1、CPU判斷是否有鍵按下。</p><p> 確定哪一個(gè)鍵被按下。</p><p> 3、把此鍵代表的信息翻譯成計(jì)算機(jī)所識(shí)別的代碼,如ASCII或者其他代碼。鍵盤上有很多鍵,每一個(gè)鍵對(duì)應(yīng)一個(gè)鍵碼,以便根據(jù)鍵碼轉(zhuǎn)到相應(yīng)的子程序,進(jìn)一步實(shí)現(xiàn)數(shù)據(jù)輸入和命令處理
54、的功能。鍵盤識(shí)別的流程如圖3.3所示:</p><p> 圖3.3 鍵盤識(shí)別流程圖</p><p> 按鍵消抖可分為硬件消抖和軟件消抖兩種,在鍵數(shù)較少時(shí)可用硬件消除抖動(dòng),一種是采用在I/O口上并接合適的電容來(lái)解決;另一種是采用RS觸發(fā)器消抖。</p><p> 4 系統(tǒng)程序設(shè)計(jì)及仿真</p><p> 系統(tǒng)軟件設(shè)計(jì)包括主程序設(shè)計(jì),A/
55、D轉(zhuǎn)換子程序設(shè)計(jì)和定時(shí)器T0中斷程序設(shè)計(jì)。</p><p> 4.1 主程序流程圖設(shè)計(jì)</p><p> 軟件所要實(shí)現(xiàn)的功能有:按鍵響應(yīng),對(duì)ADC0809的控制,對(duì)數(shù)據(jù)的處理和傳送顯示的數(shù)據(jù)。主程序包含初始化、調(diào)用A/D轉(zhuǎn)換子程序和調(diào)用顯示程序,其流程圖如圖4.1所示:</p><p> 圖4.1 主程序流程圖</p><p> 主程
56、序經(jīng)初始化后,開始四位數(shù)碼管顯示的是“0000”電機(jī)停轉(zhuǎn)。然后進(jìn)入按鍵掃描程序,依次對(duì)自然風(fēng)、常風(fēng)、睡眠風(fēng)進(jìn)行掃描,單片機(jī)I/O口輸出相應(yīng)的占空比方波,當(dāng)為自然風(fēng)時(shí),數(shù)碼管最高位顯示“1”,當(dāng)為常風(fēng)時(shí),數(shù)碼管最高位顯示“2”,當(dāng)為睡眠風(fēng)時(shí),數(shù)碼管最高位顯示為“3”。當(dāng)有定時(shí)鍵按下時(shí),轉(zhuǎn)到定時(shí)器T0中斷程序進(jìn)行。當(dāng)有搖頭鍵按下時(shí),高低電平翻轉(zhuǎn),電機(jī)開始反轉(zhuǎn)。</p><p> 4.2 定時(shí)器T0中斷程序流程圖設(shè)計(jì)
57、</p><p> 定時(shí)器T0是用來(lái)對(duì)定時(shí)時(shí)間進(jìn)行控制的,結(jié)合數(shù)碼管動(dòng)態(tài)顯示,首先給T0設(shè)置工作方式和初始值,由于它不可重裝,所以在主程序中必須再次定義它的初始值。其流程圖如圖4.2所示。</p><p> 圖4.2 定時(shí)器T0中斷程序流程圖</p><p> 4.3 A/D轉(zhuǎn)換測(cè)量子程序流程圖設(shè)計(jì)</p><p> 由于ADC080
58、9在進(jìn)行A/D轉(zhuǎn)換時(shí)要用到CLK信號(hào),而此時(shí)的ADC0809的CLK是接在AT89C52單片機(jī)的P2.4端口上,也就是要求從P2.4輸出CLK信號(hào)供ADC0809使用。因此產(chǎn)生CLK信號(hào)的方法就的使用軟件來(lái)產(chǎn)生了;由于ADC0809的參考電壓VREF=VCC,所以轉(zhuǎn)換之后的數(shù)據(jù)要經(jīng)過(guò)數(shù)據(jù)處理。然后和設(shè)定的參考值比較,而實(shí)際顯示的電壓值的關(guān)系為。其流程圖如圖4.3所示。</p><p> 圖4.3 A/D轉(zhuǎn)換測(cè)量
59、子程序流程圖</p><p> 在主程序中,ADC0809的轉(zhuǎn)換程序也是無(wú)限循環(huán)的,它主要是檢測(cè)電機(jī)是否過(guò)熱。本系統(tǒng)中,運(yùn)用定時(shí)器T1作為CLOCK的脈沖信號(hào),由于它的工作方式為2,且初始值216,足以滿足ADC0809所轉(zhuǎn)換一次所需要的時(shí)間。設(shè)定電機(jī)過(guò)熱電壓初始值為1.95V,當(dāng)模擬電壓輸入量超過(guò)這個(gè)值時(shí),發(fā)光二極管點(diǎn)亮,表示電機(jī)過(guò)熱此時(shí)L298使能端變低電平,電機(jī)停轉(zhuǎn)。</p><p&g
60、t; 4.4 系統(tǒng)仿真結(jié)果</p><p> 系統(tǒng)仿真結(jié)果見(jiàn)附錄B。</p><p><b> 4.5 源程序</b></p><p><b> 源程序見(jiàn)附錄C。</b></p><p><b> 結(jié) 論</b></p><p> 在寫畢業(yè)論
61、文時(shí)我深深體會(huì)到搞設(shè)計(jì)的艱辛與困難,電風(fēng)扇我們都熟悉,但要想把單片機(jī)技術(shù)運(yùn)用到電風(fēng)扇上是不簡(jiǎn)單的事情。</p><p> 這次畢業(yè)設(shè)計(jì)讓我學(xué)到了許多課本上沒(méi)有的知識(shí),使我受益匪淺,讓我認(rèn)識(shí)到無(wú)論做任何事情,都要認(rèn)真對(duì)待,要知道自己要做什么,怎么樣才能做到,是否能夠做好,因此,這些都需要我們認(rèn)真的分析,遇到困難要及時(shí)尋求老師的幫助。我相信,沒(méi)有解決不了的問(wèn)題。我會(huì)一步一個(gè)腳印,踏踏實(shí)實(shí)的向我的目標(biāo)前進(jìn)。</
62、p><p> 致謝:我的畢業(yè)設(shè)計(jì),是在彭建英老師的指導(dǎo)下,進(jìn)行大膽的理論與實(shí)踐相結(jié)合,通過(guò)查找翻閱有關(guān)理論資料和技術(shù)手冊(cè),我的動(dòng)手能力得到很大提高,使我懂得了如何把書本上知識(shí)總結(jié)起來(lái)去應(yīng)用于實(shí)踐,學(xué)到了研究、開發(fā),設(shè)計(jì)單片微型計(jì)算機(jī)對(duì)工業(yè)過(guò)程控制的一套完整的方法,受益很大。</p><p> 硬件軟件都要涉及,由于時(shí)間緊,工作量大,本次設(shè)計(jì)沒(méi)能做出實(shí)物。本畢業(yè)設(shè)計(jì)鍛煉了我的動(dòng)手能力,進(jìn)一步
63、強(qiáng)化了專業(yè)知識(shí),提高了將所學(xué)知識(shí)應(yīng)用于實(shí)踐的能力。</p><p> 在此感謝大學(xué)四年對(duì)我辛勤教導(dǎo)的老師們以及同窗四年的同學(xué),謝謝你們對(duì)我四年的關(guān)心和照顧。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]謝維成.單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)[M].清華大學(xué)出版社,2009.7</p><p&g
64、t; [2]謝自美.電子線路設(shè)計(jì).實(shí)驗(yàn).測(cè)試[M].華中科技大學(xué)出版社,2002.6</p><p> [3]馬忠梅等.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京航空航天大學(xué)出版社,2003.11</p><p> [4]樓然苗等.單片機(jī)課程設(shè)計(jì)指導(dǎo)[M].北京航空航天大學(xué)出版社,2007.7</p><p> [5]張永楓.單片機(jī)應(yīng)用實(shí)訓(xùn)教程[M].西安電子科
65、技大學(xué)出版社,2005.2</p><p> [6]夏繼強(qiáng).單片機(jī)實(shí)驗(yàn)與實(shí)踐教程[M].北京航空航天大學(xué)出版社,2001.5 </p><p> [7]吳國(guó)經(jīng).單片機(jī)應(yīng)用技術(shù)[M].中國(guó)電力出版社,2004.7</p><p> [8]AT89C51 DATA SHEEP Philips Semiconductors 1999.dec附錄A:?jiǎn)纹瑱C(jī)電風(fēng)扇控
66、制系統(tǒng)的設(shè)計(jì)原理圖</p><p><b> 附錄B:仿真結(jié)果圖</b></p><p><b> 圖1 </b></p><p> 圖1是自然風(fēng)鍵按下時(shí)狀態(tài),數(shù)碼管顯示為1,無(wú)定時(shí)時(shí)間。ADC0809顯示電壓值為1.95V,電機(jī)不發(fā)熱,正常轉(zhuǎn)動(dòng)。為了表示哪個(gè)按鍵被按下,仿真圖上對(duì)應(yīng)的按鍵均為閉合狀態(tài),下面的仿真圖也
67、同上,這里不在闡述。</p><p><b> 圖 2</b></p><p> 圖2為示波器仿真效果,PWM輸出占空比為1:3的方波,電機(jī)正轉(zhuǎn)。 </p><p><b> 圖3</b></p><p> 圖3是常風(fēng)鍵按下時(shí)狀態(tài),數(shù)碼管第
68、一位顯示為2,無(wú)定時(shí)時(shí)間。ADC0809顯示電壓值為1.95V,電機(jī)不發(fā)熱,正常轉(zhuǎn)動(dòng)。</p><p><b> 圖 4</b></p><p> 圖4是示波器仿真效果圖,PWM輸出占空比為3:1的方波,電機(jī)正轉(zhuǎn)。</p><p><b> 圖5 </b></p><p> 圖5是睡眠風(fēng)鍵
69、按鍵按下時(shí)狀態(tài),數(shù)碼管第一位顯示為3,無(wú)定時(shí)時(shí)間。ADC0809顯示電壓值為1.95V,電機(jī)不發(fā)熱,正常轉(zhuǎn)動(dòng)。</p><p><b> 圖 6</b></p><p> 圖6是是示波器仿真效果圖,PWM輸出占空比為1:5的方波,電機(jī)正常轉(zhuǎn)動(dòng)。</p><p><b> 圖7 </b></p><
70、;p> 圖7是電機(jī)反轉(zhuǎn)的仿真圖,由于是在常風(fēng)的模式進(jìn)行的,我們只能看它的PWM占空比示意圖與電機(jī)正轉(zhuǎn)的示意圖進(jìn)行比較,其反轉(zhuǎn)的效果如圖8所示:</p><p><b> 圖 8</b></p><p> 圖8是常風(fēng)風(fēng)模式下的電機(jī)反轉(zhuǎn)占空比示意圖,經(jīng)過(guò)與圖4進(jìn)行比較,它們的方波占空比完全吻合,這證明了電機(jī)正反轉(zhuǎn)完全正常。</p><p&g
71、t;<b> 圖9</b></p><p> 圖9是自然風(fēng)按鍵按下時(shí)狀態(tài),數(shù)碼管第一位顯示為3,定時(shí)時(shí)間為15ms。ADC0809顯示電壓值為1.95V,電機(jī)不發(fā)熱,正常轉(zhuǎn)動(dòng)。 </p><p><b> 圖10</b></p><p> 圖10是睡眠風(fēng)按鍵按下時(shí)狀態(tài),數(shù)碼管第一位顯示為3,定時(shí)時(shí)間為0ms。ADC
72、0809測(cè)得的顯示電壓值為2.0V,超過(guò)設(shè)定的初始值,則表示電機(jī)發(fā)熱,電機(jī)停止轉(zhuǎn)動(dòng)。</p><p><b> 附錄C:參考程序</b></p><p> /*********************************************************************/</p><p> //
73、 基于單片機(jī)電風(fēng)扇控制系統(tǒng)的設(shè)計(jì)C程序</p><p> // 使用keil C51 ver7.09</p><p> // 2012.5.5</p><p> /************************************
74、*********************************/</p><p> #include<reg51.h></p><p> #define uint unsigned int</p><p> #define uchar unsignde char</p><p> sbit key1=P3^0;<
75、/p><p> sbit key2=P3^1;</p><p> sbit key3=P3^2;</p><p> sbit key4=P3^3;</p><p> sbit key5=P3^4;</p><p> sbit A=P2^6;//電機(jī)驅(qū)動(dòng)端口</p><p> sbit D
76、=P2^7;</p><p> sbit wei1=P2^0;</p><p> sbit wei2=P2^3;</p><p> sbit wei3=P2^2;</p><p> sbit wei4=P2^1;</p><p> sbit wxout=P2^5; //溫度 太高 報(bào)警燈</p>
77、<p> sbit clock=P2^4; </p><p> sbit start=P3^5;</p><p> sbit eoc=P3^6; //adc0809 驅(qū)動(dòng)端口定義</p><p> sbit oe=P3^7; </p><p> unsigned char wxin=100;//定義初始值為100
78、,轉(zhuǎn)換成實(shí)際電壓值為1.95V</p><p> unsigned int getdata,ss;// 溫度過(guò)高標(biāo)志位</p><p> int num=0,count=0,se=1,flag=1;//定時(shí)標(biāo)志位;電機(jī)正反轉(zhuǎn)標(biāo)志位</p><p> int shou_num,di_num,gao_num, le,bai,shi,ge;//電機(jī)占空比標(biāo)志位&l
79、t;/p><p> void display( ); //聲明顯示函數(shù)</p><p> void delay(uint x);//聲明延時(shí)函數(shù)</p><p> void qudong(); //聲明電機(jī)驅(qū)動(dòng)函數(shù)</p><p> unsigned char table[ ]={0x3f,0x06,0x5b,0x4f,0x6
80、6,0x6d,0x7d,0x07,0x7f,0x6f};//共陰數(shù)碼管</p><p> char seg[3]={0};</p><p><b> //延時(shí)函數(shù)</b></p><p> void delay(uint x)</p><p><b> {</b></p>&
81、lt;p><b> uint i;</b></p><p> while(x--)</p><p> for(i=122;i>0;i--);</p><p><b> }</b></p><p><b> //數(shù)碼管顯示函數(shù)</b></p>
82、<p> void display()</p><p><b> {</b></p><p> bai=num/100;//百位</p><p> shi=num%100/10;//十位</p><p> ge=num%10;//個(gè)位</p><p> seg[0]=bai;
83、</p><p> seg[1]=shi;</p><p> seg[2]=ge;</p><p><b> wei1=0;</b></p><p> P1=table[shou_num]; </p><p><b> delay(1);</b></p>
84、<p><b> wei1=1;</b></p><p><b> wei2=0;</b></p><p> P1=table[seg[0]];</p><p><b> delay(1);</b></p><p><b> wei2=1;&l
85、t;/b></p><p><b> wei3=0;</b></p><p> P1=table[seg[1]];</p><p><b> delay(1);</b></p><p><b> wei3=1;</b></p><p>&l
86、t;b> wei4=0;</b></p><p> P1=table[seg[2]];</p><p><b> delay(1);</b></p><p><b> wei4=1;</b></p><p><b> }</b></p>
87、<p><b> //按鍵掃描函數(shù)</b></p><p> void scan()</p><p><b> {</b></p><p> if(key1==0)</p><p><b> {</b></p><p> if(k
88、ey1==0)</p><p> display();</p><p><b> le=1;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>&
89、lt;/p><p> le=0;A=0;D=0;</p><p><b> }</b></p><p> if(key2==0)</p><p><b> {</b></p><p> if(key2==0)</p><p><b>
90、 {</b></p><p><b> le=2;</b></p><p> display();</p><p><b> } </b></p><p><b> else</b></p><p> {le=0;A=0;D=0;
91、</p><p><b> }}</b></p><p> if(key3==0)</p><p><b> {</b></p><p> if(key3==0)</p><p><b> {</b></p><p>&
92、lt;b> le=3;</b></p><p> display();</p><p><b> } </b></p><p><b> else</b></p><p><b> {</b></p><p> le=0;A
93、=0;D=0;</p><p><b> }}</b></p><p> if(key4==0) //定時(shí)鍵按下</p><p><b> delay(5);</b></p><p> {if(key4==0)</p><p><b> {</
94、b></p><p><b> TR0=1;</b></p><p> num=num+10;</p><p> if(num==1000)</p><p><b> num=990;</b></p><p> while(key4==0)</p>
95、<p> display();</p><p><b> }}</b></p><p> if(key5==0) //電機(jī)正反轉(zhuǎn)按鍵</p><p><b> {</b></p><p><b> delay(5);</b></p>&
96、lt;p> if(key5==0)</p><p><b> {</b></p><p> flag=!flag;</p><p> while(key5==0)</p><p> display();</p><p><b> }}}</b></p&
97、gt;<p><b> //電機(jī)驅(qū)動(dòng)函數(shù)</b></p><p> void qudong()</p><p><b> {</b></p><p><b> int i;</b></p><p> if(ss!=0) // 電機(jī)是否發(fā)熱?<
98、/p><p><b> {</b></p><p> if(se!=0) //定時(shí)到了嗎?</p><p> {if(flag) //是否正轉(zhuǎn)?</p><p><b> {</b></p><p><b> D=0;</b></p
99、><p> for(i=0;i<di_num;i++) //輸出di_num個(gè)低電平</p><p><b> {A=0;</b></p><p> display(); //用顯示函數(shù)做延時(shí)函數(shù),一舉兩得</p><p><b> } </b></p><p>
100、; for(j=0;j<gao_num;j++) //輸出gao_num個(gè)高電平</p><p><b> {A=1;</b></p><p> display();</p><p><b> }</b></p><p> display();</p><p&g
101、t;<b> }</b></p><p> else //電機(jī)反轉(zhuǎn)</p><p><b> {A=0;</b></p><p> for(i=0;i<di_num;i++) //輸出di_num個(gè)低電平</p><p><b> {</b><
102、;/p><p><b> D=0;</b></p><p> display();</p><p><b> }</b></p><p> for(j=0;j<gao_num;j++) //輸出gao_num個(gè)高電平</p><p><b> {&
103、lt;/b></p><p><b> D=1;</b></p><p> display();</p><p><b> }}}</b></p><p><b> else</b></p><p><b> {</b&g
104、t;</p><p><b> A=0;</b></p><p><b> D=0;</b></p><p><b> }}</b></p><p><b> //按鍵處理函數(shù)</b></p><p> void disp
105、ose()</p><p><b> {</b></p><p> switch(le)</p><p><b> {</b></p><p><b> case 1:</b></p><p> shou_num=1;</p>&
106、lt;p> gao_num=1;</p><p><b> di_num=3;</b></p><p><b> break;</b></p><p><b> case 2:</b></p><p> shou_num=2;</p><p&
107、gt; gao_num=3;</p><p><b> di_num=1;</b></p><p><b> break;</b></p><p><b> case 3:</b></p><p> shou_num=3;</p><p>
108、 gao_num=1;</p><p><b> di_num=5;</b></p><p><b> break;</b></p><p> default: break;</p><p><b> }}</b></p><p> //定時(shí)器
109、T1中斷函數(shù)</p><p> void time1() interrupt 3</p><p><b> {</b></p><p> clock=!clock; //clock信號(hào)取反</p><p><b> }</b></p><p><b>
110、 //AD轉(zhuǎn)換函數(shù)</b></p><p> void adc0809()</p><p><b> {</b></p><p><b> start=0;</b></p><p><b> start=1;</b></p><p>
111、 display();</p><p><b> start=0;</b></p><p> while(eoc==0) //轉(zhuǎn)換成功</p><p><b> oe=1;</b></p><p> getdata=P0; </p><p><b>
112、 oe=0;</b></p><p> if(getdata>wxin) //如果轉(zhuǎn)換值大于100則發(fā)光二極管燈亮,電機(jī)停止</p><p><b> {</b></p><p><b> wxout=0;</b></p><p><b> ss=0;<
113、;/b></p><p> display();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> ss=1;</b>
114、</p><p><b> wxout=1;</b></p><p> display();</p><p><b> }}</b></p><p><b> //主函數(shù)</b></p><p> void main()</p>
115、<p><b> {</b></p><p> TMOD=0x21; //定義T1和T0的工作方式風(fēng)別為方式2和方式1</p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256; </p><p><b> TH1=2
116、16;</b></p><p><b> TL1=216;</b></p><p><b> EA=1;</b></p><p><b> ET1=1;</b></p><p><b> TR1=1;</b></p>&l
117、t;p><b> ET0=1; </b></p><p> A=0;D=0; // 剛開機(jī)電機(jī)不轉(zhuǎn)</p><p> while(1) //無(wú)限循環(huán)</p><p><b> {</b></p><p> display();//調(diào)用顯示函數(shù)</p><p&g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)電風(fēng)扇控制系統(tǒng)的設(shè)計(jì)
- 畢業(yè)論文--單片機(jī)的電風(fēng)扇自動(dòng)控制號(hào)
- 畢業(yè)論文基于單片機(jī)的智能風(fēng)扇控制系統(tǒng)
- 智能電風(fēng)扇控制系統(tǒng)的設(shè)計(jì)【畢業(yè)論文】
- 語(yǔ)音識(shí)別電風(fēng)扇控制系統(tǒng)設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的智能電風(fēng)扇控制系統(tǒng)
- 基于單片機(jī)的智能電風(fēng)扇控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 智能電風(fēng)扇畢業(yè)論文--基于單片機(jī)的智能落地電風(fēng)扇的設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的智能電風(fēng)扇的設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)控制的紅外線遙控電風(fēng)扇設(shè)計(jì)
- 單片機(jī)電梯控制畢業(yè)論文
- 電氣工程與自動(dòng)化畢業(yè)論文基于單片機(jī)的智能電風(fēng)扇控制系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)——基于單片機(jī)的智能電風(fēng)扇控制系統(tǒng)
- 畢業(yè)論文(設(shè)計(jì))基于單片機(jī)的智能電風(fēng)扇的設(shè)計(jì)
- 課程設(shè)計(jì)——基于單片機(jī)的智能電風(fēng)扇控制系統(tǒng)
- 畢業(yè)設(shè)計(jì)-基于51單片機(jī)的紅外遙控電風(fēng)扇控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文-單片機(jī)溫度控制系統(tǒng)
- 單片機(jī)電鈴系統(tǒng)畢業(yè)論文
- 畢業(yè)論文-單片機(jī)溫度控制系統(tǒng)
- 畢業(yè)論文——水箱單片機(jī)控制系統(tǒng)
評(píng)論
0/150
提交評(píng)論