2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  畢 業(yè) 設(shè) 計(jì) 任 務(wù) 書</p><p>  設(shè)計(jì)題目:?jiǎn)纹瑱C(jī)控制直流電機(jī)速度的實(shí)時(shí)控制設(shè)計(jì)</p><p><b> ?。ㄜ浖?</b></p><p><b>  設(shè)計(jì)目的</b></p><p>  通過設(shè)計(jì)單片機(jī)對(duì)直流電機(jī)速度的實(shí)時(shí)控制使學(xué)生掌握單片機(jī)及外圍電路的設(shè)

2、計(jì)方法和單片機(jī)軟件的設(shè)計(jì)、編輯、仿真、調(diào)試;培養(yǎng)獨(dú)立查閱資料,學(xué)會(huì)電子元器件的選型,并用硬件電路驗(yàn)證自己結(jié)論的能力;培養(yǎng)團(tuán)隊(duì)合作意識(shí),結(jié)合已學(xué)理論知識(shí),從設(shè)計(jì)過程中不斷提高應(yīng)用系統(tǒng)的設(shè)計(jì)能力和獨(dú)立解決問題的能力,達(dá)到既能綜合鞏固運(yùn)用所學(xué)理論知識(shí)又能真正提高實(shí)際動(dòng)手能力的目的。 </p><p><b>  二. 設(shè)計(jì)內(nèi)容</b></p><p>  用555定時(shí)器產(chǎn)生

3、實(shí)時(shí)控制信號(hào),用軟件實(shí)現(xiàn)不同頻率信號(hào)到不同脈寬信號(hào)的對(duì)應(yīng)轉(zhuǎn)換,并通過正反轉(zhuǎn)按鍵和PWM信號(hào)脈寬控制直流電機(jī)的轉(zhuǎn)動(dòng)方向和速度。</p><p><b>  任務(wù)與要求</b></p><p>  1.查閱并熟悉各種常用單片機(jī)芯片的功能及指令系統(tǒng),并掌握其實(shí)際應(yīng)用的方法,主要是MCS—51系列。</p><p>  2.了解單片機(jī)指令集和單片機(jī)匯編

4、語(yǔ)言。</p><p>  3.用單片機(jī)的端口輸出PWM控制信號(hào)。</p><p>  3.找到現(xiàn)實(shí)PWM控制應(yīng)用的結(jié)合點(diǎn),讓自己的設(shè)計(jì)具有實(shí)用性。</p><p>  4.畫出程序流程圖。</p><p>  5. 熟悉Proteus等仿真軟件和硬件結(jié)合應(yīng)用之前先進(jìn)性系統(tǒng)仿真看能否達(dá)到所要求的控制目的。</p><p&g

5、t;  6.進(jìn)一步修改程序使其成為一套功能完善的單片機(jī)軟件。</p><p>  7.和做硬件部分的同學(xué)協(xié)作進(jìn)行軟硬件的調(diào)試</p><p>  8. 閱讀參考資料、文獻(xiàn)及論文,編寫本設(shè)計(jì)的開題報(bào)告。</p><p>  9.撰寫規(guī)范論文并請(qǐng)指導(dǎo)老師審閱。</p><p>  10.按要求閱讀2000字以上的外文資料。</p>

6、<p><b>  時(shí)間安排</b></p><p><b>  應(yīng)用系統(tǒng)</b></p><p>  單片機(jī)實(shí)現(xiàn)直流電機(jī)速度的實(shí)時(shí)控制在實(shí)際中的應(yīng)用</p><p><b>  參考資料</b></p><p>  1,房小翠 王金鳳編著,單片機(jī)實(shí)用系統(tǒng)設(shè)計(jì)技術(shù),國(guó)

7、防工業(yè)出版社。</p><p>  2 大學(xué)生畢業(yè)設(shè)計(jì)指導(dǎo)系列資料。</p><p>  3.Protel軟件可以從http://www.ncwu.edu.cn/的資料下載中下載。</p><p>  4.Proteus 仿真軟件可從www.proteus.com.cn中下載。</p><p>  3.期刊:《電力電子技術(shù)》、《計(jì)算機(jī)應(yīng)用》

8、、《小型微型計(jì)算機(jī)系統(tǒng)》、《計(jì)算機(jī)測(cè)量與控制》等。</p><p>  4.李華主編,MCS-51系列單片機(jī)實(shí)用接口技術(shù),北京航空航天大學(xué)出版社。</p><p>  5.其它單片機(jī)技術(shù)教材及資料。</p><p>  2008年 3 月 21 日</p><p>  單片機(jī)控制直流電機(jī)速度的實(shí)時(shí)控制設(shè)計(jì)(軟件)</p>

9、<p><b>  摘 要</b></p><p>  由于計(jì)算機(jī)技術(shù)的快速發(fā)展及其在控制系統(tǒng)中的廣泛應(yīng)用,以及設(shè)備向小型化、智能化方向的發(fā)展,作為高新技術(shù)之一的單片機(jī)以其體積小、功能強(qiáng)、價(jià)格低廉、使用靈活等優(yōu)勢(shì),顯示出了很強(qiáng)的生命力。從航空航天,地質(zhì)石油,冶金采礦,機(jī)械電子等行業(yè)的分布體系與智能控制以及機(jī)電一體化設(shè)備和產(chǎn)品到郵電通信,日用設(shè)備和機(jī)械,單片機(jī)都發(fā)揮了巨大作用

10、。本文主要介紹了單片機(jī)在控制直流電機(jī)速度方面的應(yīng)用。</p><p>  隨著人們生活水平的不斷提高,各種智能化的產(chǎn)品日益走入尋常百姓家。為了實(shí)現(xiàn)產(chǎn)品的便攜性、低成本以及對(duì)電源的限制,小型直流電機(jī)的應(yīng)用越來越受到大家的歡迎。本文介紹了用555定時(shí)器產(chǎn)生不同頻率的輸入信號(hào),用不同頻段的信號(hào)控制PWM信號(hào)脈寬,再用PWM信號(hào)的不同脈寬控制電機(jī)轉(zhuǎn)速,以此達(dá)到用單片機(jī)控制直流電機(jī)轉(zhuǎn)動(dòng)的目的,為直流電機(jī)速度控制系統(tǒng)的實(shí)現(xiàn)提

11、供了一種有效的方法。</p><p>  本文主要論述了課題開發(fā)背景、目的和意義,仿真工具Proteus和編程所用的語(yǔ)言、系統(tǒng)實(shí)現(xiàn)原理、系統(tǒng)軟件設(shè)計(jì),以及軟硬件的調(diào)試。本系統(tǒng)是以單片機(jī)的基本語(yǔ)言C語(yǔ)言來進(jìn)行軟件設(shè)計(jì)的,生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高,可移植性好。為了便于編寫,調(diào)用和修改,軟件的設(shè)計(jì)采用模塊化結(jié)構(gòu),使程序設(shè)計(jì)的邏輯關(guān)系更加簡(jiǎn)潔明了,使硬件在軟件的控制下按要求運(yùn)作。系統(tǒng)調(diào)試主要介紹了基本的軟件和

12、軟硬件系統(tǒng)調(diào)試的方法和步驟。最后對(duì)做設(shè)計(jì)過程中碰到問題和心得進(jìn)行了總結(jié)。完成該系統(tǒng)的設(shè)計(jì)和制作需要綜合大學(xué)幾乎所有的專業(yè)知識(shí),特別是單片機(jī)知識(shí)要融會(huì)貫通,還要不斷的學(xué)習(xí),不斷的查閱資料,不斷的跟老師同學(xué)請(qǐng)教,這次畢業(yè)設(shè)計(jì)讓我學(xué)會(huì)了很多東西,也是對(duì)大學(xué)學(xué)習(xí)的一次系統(tǒng)總結(jié),具有很深遠(yuǎn)的意義。</p><p>  關(guān)鍵字:?jiǎn)纹瑱C(jī)系統(tǒng);PWM脈寬調(diào)制;直流電機(jī)調(diào)速</p><p><b>

13、;  Abstract </b></p><p>  Because computer technology's fast development and in control system's widespread application, as well as the equipment to the miniaturization, the intellectualized di

14、rection develops, monolithic integrated circuit as one of the high technology and new technologies is small by its volume, the function is strong, low in price, use nimble and so on superiority, demonstrated the very str

15、ong vitality. From the aerospace, the geological petroleum, metallurgy mining, profession and so on mechanical el</p><p>  Along with the people living standard's unceasing enhancement, each kind of inte

16、llectualization's product walks into the common family day by day. In order to realize the product portability, the low cost as well as to the limitation of power source, the small direct current machine application

17、receives everybody's welcome more and more. This article introduced produces the different frequency input signal with 555 timers, with the different frequency band's signal control PWM signal pulse width</p&g

18、t;<p>  This article mainly elaborated the topic development background, the goal and the significance, the programming uses language, the system simulation tool Proteus and the programming use realizes the princi

19、ple, the system software design, as well as software and hardware's debugging. This system is carries on the software design by monolithic integrated circuit's elementary language C language, the production targe

20、t code quality is high, the program execution efficiency is high, the probability i</p><p>  Key word: Monolithic integrated circuit system; PWM pulse-duration modulation; direct current machine modulates ve

21、locity </p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p>  第1章 緒 論1</p><p><b>  1.1 背景1</b

22、></p><p>  1.2 目的和意義2</p><p>  1.3 開發(fā)工具和語(yǔ)言3</p><p>  1.3.1開發(fā)工具3</p><p>  1.3.2 語(yǔ)言選擇4</p><p>  第2章 方案論證與系統(tǒng)原理6</p><p>  2.1 方案論證6</

23、p><p>  2.2 系統(tǒng)實(shí)現(xiàn)原理6</p><p>  2.2.1 定時(shí)器計(jì)數(shù)器原理介紹7</p><p>  2.2.2 中斷部分基本原理9</p><p>  2.2.3 單片機(jī)應(yīng)用系統(tǒng)的開發(fā)過程10</p><p>  第3章 程序設(shè)計(jì)基本步驟12</p><p>  3.1

24、程序的編寫12</p><p>  3.2 程序的編輯、編譯和運(yùn)行13</p><p>  第4章 軟件設(shè)計(jì)16</p><p>  4.1程序總體流程圖16</p><p>  4.2 軟件各子模塊設(shè)計(jì)18</p><p>  4.2.1 主程序模塊18</p><p>  4.2

25、.2 正反轉(zhuǎn)PWM加速輸出流程圖及代碼22</p><p>  4.2.3 變量定義函數(shù)26</p><p>  4.2.4 鍵盤掃描函數(shù)27</p><p>  4.2.5毫秒延時(shí)函數(shù)28</p><p>  4.2.6 LED顯示函數(shù)28</p><p>  第5章 軟硬件調(diào)試29</p>

26、<p>  5.1 軟件調(diào)試方法29</p><p>  5.2 軟硬件系統(tǒng)調(diào)試方法29</p><p>  5.3 本次設(shè)計(jì)過程中遇到的問題30</p><p><b>  結(jié) 束 語(yǔ)31</b></p><p><b>  致 謝32</b></p>&

27、lt;p>  參 考 文 獻(xiàn)33</p><p><b>  附錄一34</b></p><p><b>  英文原文34</b></p><p><b>  譯文39</b></p><p><b>  附錄二44</b></p&g

28、t;<p><b>  源程序44</b></p><p>  第1章 緒 論</p><p><b>  1.1 背景</b></p><p>  單片機(jī)有非常廣泛的應(yīng)用領(lǐng)域。由于其體積小,價(jià)格低,具有邏輯判斷、定時(shí)計(jì)數(shù)、程序控制等多種功能,在各個(gè)領(lǐng)域、各個(gè)行業(yè)都得到了廣泛應(yīng)用,不僅有常用的8位機(jī),

29、而且4位單片機(jī)和16單片機(jī)也得到了普及,年銷售量逐年增加,至1995年世界范圍內(nèi)銷售量就達(dá)近億塊,掩膜產(chǎn)品就超過了2000萬(wàn)塊。</p><p>  (1) 機(jī)電一體化產(chǎn)品的核心控制</p><p>  機(jī)電一體化產(chǎn)品是機(jī)械設(shè)備發(fā)展的方向。用單片機(jī)代替常規(guī)的邏輯順序控制,差補(bǔ)控制,簡(jiǎn)化了機(jī)械設(shè)計(jì),提高了控制性能,當(dāng)前所生產(chǎn)的許多產(chǎn)品,如數(shù)控機(jī)床,鉆床,線切割機(jī),甚至加工中心等機(jī)械設(shè)備,都是

30、采用這樣一種方式??删幊添樞蚩刂破饕彩且粋€(gè)典型的機(jī)械控制器,其核心往往就是有一個(gè)單片機(jī)構(gòu)成。最典型的機(jī)電產(chǎn)品機(jī)器人,每個(gè)關(guān)節(jié)或動(dòng)作部位都是一個(gè)單片機(jī)控制系統(tǒng)。</p><p>  (2) 數(shù)據(jù)采集系統(tǒng)的現(xiàn)場(chǎng)采集單元</p><p>  大的數(shù)據(jù)采集系統(tǒng),要求數(shù)據(jù)采集的同步性和實(shí)時(shí)性要好,使用快速計(jì)算機(jī)順序采集,也存在不能快速采集,實(shí)時(shí)性不好的缺點(diǎn),以致會(huì)造成計(jì)算處理上的誤差以及分析系統(tǒng)中的

31、困難。使用單片機(jī)作為系統(tǒng)的前端采集單元,由主控計(jì)算機(jī)同時(shí)發(fā)出采集命令,當(dāng)采集完后,將采集到的數(shù)據(jù)逐一送到主計(jì)算機(jī)進(jìn)行處理,如有些氣象部門,油田采集部門以及電廠等均可采用這種系統(tǒng)。 </p><p>  (3) 分布控制系統(tǒng)的前端控制器</p><p>  隨著單片機(jī)技術(shù)的飛速發(fā)展及其性能的不斷提高,其作為直接控制級(jí)在計(jì)算機(jī)分布控制中越來越發(fā)揮出重要作用,在過程控制中往往要控制一個(gè)生產(chǎn)過程。

32、根據(jù)物料流程,有多個(gè)加工工序,每一個(gè)工序都要根據(jù)總的流程精加工或者操作,單片機(jī)就可作為這個(gè)分步操作或控制的控制器,進(jìn)行數(shù)據(jù)采集,反饋計(jì)算,數(shù)據(jù)輸出,并在上級(jí)計(jì)算機(jī)命令指揮下進(jìn)行相應(yīng)協(xié)調(diào)工作。</p><p>  (4) 智能化儀表的機(jī)芯</p><p>  自動(dòng)化儀表的智能化程度越來越高,單片機(jī)的應(yīng)用使這種功能如虎添翼,如自動(dòng)計(jì)費(fèi)電度表,燃?xì)獗碇幸延羞@方面的應(yīng)用,許多工業(yè)儀表中的智能流量計(jì)

33、,智能分析儀,成分分析儀等也采用了這項(xiàng)技術(shù)。</p><p>  (5) 消費(fèi)類電子產(chǎn)品控制</p><p>  該應(yīng)用主要反映在家電領(lǐng)域,如洗衣機(jī),空調(diào)器,汽車電子,保安系統(tǒng),電視機(jī),錄像機(jī),VCD視盤機(jī),音響設(shè)備,電子稱,IC卡,手機(jī),BP機(jī)等。在這些系統(tǒng)中使用了單片機(jī)機(jī)芯之后,使其控制功能和性能大大提高,并實(shí)現(xiàn)了智能化,最優(yōu)化控制。 </p><p>  隨著

34、家用電器產(chǎn)品變頻技術(shù)的發(fā)展,電機(jī)的變頻調(diào)速已經(jīng)成為一種可行性的方法,在這種調(diào)速系統(tǒng)中,脈寬調(diào)制(PWM)技術(shù)仍然是提高調(diào)速性能的主要手段。雖然PWM技術(shù)的實(shí)現(xiàn)方法很多,然而,為了降低產(chǎn)品的制造成本,采用微機(jī)控制軟件實(shí)現(xiàn)PWM控制具有成本低、調(diào)制方式靈活等特點(diǎn),比較適合于家用電器產(chǎn)品的要求。本次設(shè)計(jì)將提出在51系列單片機(jī)基礎(chǔ)上改進(jìn)后的80C52采用PWM軟件控制的方法來實(shí)現(xiàn)電機(jī)轉(zhuǎn)動(dòng)控制。其PWM算法簡(jiǎn)單,易于實(shí)現(xiàn),是一種較為實(shí)用的方法。8

35、0C52與80C51相比還增加了一個(gè)定時(shí)/ 計(jì)數(shù)器、中斷源從5個(gè)增加到 6個(gè),將程序存儲(chǔ)空間增加到 8KB,數(shù)據(jù)存儲(chǔ)器增加到256 字節(jié)地址,更強(qiáng)大的地址空間,和更多的定時(shí)中斷資源為設(shè)計(jì)提供了很大的方便,也為提高系統(tǒng)的控制性能提供了基礎(chǔ)</p><p>  1.2 目的和意義 </p><p>  隨著科技的高速發(fā)展,單片機(jī)技術(shù)也不斷發(fā)展,單片機(jī)能實(shí)現(xiàn)更加靈活的邏輯控制功能,具有很強(qiáng)的數(shù)據(jù)

36、處理能力。通過本次設(shè)計(jì)讓我對(duì)許多知識(shí)有了更深的了解:</p><p> ?。?)80C51為內(nèi)核的單片機(jī)系列目前在世界上生產(chǎn)量最大、派生產(chǎn)品最多,可以滿足大多數(shù)用戶的需要,并且有些16位機(jī),如80C251和80C51XA等系列也是以80C51向上兼容的。 80C52是INTEL公司MCS-51系列單片機(jī)中基本的產(chǎn)品,它采用INTEL公司可靠的CHMOS工藝技術(shù)制造的高性能8位單片機(jī),屬于標(biāo)準(zhǔn)的MCS-5

37、1的HCMOS產(chǎn)品。它結(jié)合了HMOS的高速和高密度技術(shù)及CHMOS的低功耗特征,它基于標(biāo)準(zhǔn)的MCS-51單片機(jī)體系結(jié)構(gòu)和指令系統(tǒng),屬于80C51增強(qiáng)型單片機(jī)版本,集成了時(shí)鐘輸出和向上或向下計(jì)數(shù)器等更多的功能,適合于類似馬達(dá)控制等應(yīng)用場(chǎng)合。</p><p> ?。?)隨著硬件的發(fā)展,80C51軟件工具也取得很大的發(fā)展,80C51系列已形成從低到高的不同檔次、價(jià)格合理的開發(fā)裝置。通過參閱資料不斷學(xué)習(xí),加深了對(duì)51系列

38、單片機(jī)的硬件結(jié)構(gòu)、工作原理、指令系統(tǒng)、C語(yǔ)言程序設(shè)計(jì)、接口技術(shù)等知識(shí)的了解。</p><p> ?。?)在編寫調(diào)試程序的過程中又對(duì)單片機(jī)基礎(chǔ)知識(shí)進(jìn)行了一次系統(tǒng)的學(xué)習(xí),對(duì)C語(yǔ)言和匯編語(yǔ)言編程的優(yōu)缺點(diǎn)有了更進(jìn)一步的了解,用C語(yǔ)言編程原來從不敢嘗試,通過這段時(shí)間的反復(fù)學(xué)習(xí)終于掌握了一定的編程方法和技巧,通過本次畢業(yè)設(shè)計(jì),綜合運(yùn)用所學(xué)專業(yè)知識(shí)分析、解決實(shí)際問題,掌握文獻(xiàn)檢索、資料查詢的基本方法以及獲取新知識(shí)的能力,書面和

39、口頭表達(dá)的能力,以及團(tuán)結(jié)協(xié)作的能力也得到了訓(xùn)練和提高。</p><p>  1.3 開發(fā)工具和語(yǔ)言</p><p><b>  1.3.1開發(fā)工具</b></p><p>  本次設(shè)計(jì)的硬件部分電路是由我的搭檔完成的,軟件仿真是用單片機(jī)程序設(shè)計(jì)的專業(yè)仿真軟件Proteus ,原因就是其功能強(qiáng)大,操作方便,人性化設(shè)計(jì),</p>&l

40、t;p>  (1) 全新的用戶界面:</p><p>  鼠標(biāo)移動(dòng)到對(duì)象上方時(shí),會(huì)有可視化提示。不同的鼠標(biāo)指針類型顯示該對(duì)象將進(jìn)行的不同操作,高效率非模態(tài)選擇、布線。 便利的鼠標(biāo)運(yùn)用——左鍵選取、放置,右鍵提示菜單。更加便捷的塊操作方式,可調(diào)整選取區(qū)域及可定義的拾取點(diǎn)。改進(jìn)的鼠標(biāo)滾輪的搖擺及縮放工具,使得設(shè)計(jì)導(dǎo)航操作更加便捷。</p><p>  (2) 全新的設(shè)計(jì)瀏覽器:</

41、p><p>  設(shè)計(jì)瀏覽器是Proteus 特有的一種工具,它提供Windows 風(fēng)格的用戶界面,用戶可以利用它就設(shè)計(jì)的不同層次進(jìn)行導(dǎo)航和檢查。它不僅可以查詢一個(gè)原理圖現(xiàn)有狀態(tài),以此來判斷元件連接、封裝的正誤。同樣可以導(dǎo)航原理圖及PCB 間任何感興趣的條目(通過對(duì)PCB 封裝的交叉探測(cè)或者一個(gè)封裝網(wǎng)絡(luò)信息進(jìn)行)。</p><p>  (3)全新的仿真顧問: 結(jié)構(gòu)化的仿真信息顯示,根據(jù)問

42、題嚴(yán)重性的彩色信息提示,信息包含源信息和時(shí)間信息,用戶可根據(jù)需要采用交叉探測(cè)返回源器件或網(wǎng)絡(luò),帶文本幫助的錯(cuò)誤信息有助于解決仿真故障。 (4)全新的仿真診斷系統(tǒng): 提供對(duì)仿真運(yùn)行跟蹤模式的完全控制,關(guān)于系統(tǒng)信息、CPU及外設(shè)的詳盡診斷信息,可以在警告、每個(gè)分組的跟蹤或調(diào)試時(shí)使能診斷,強(qiáng)大的調(diào)試幫助包括仿真行為的完整文本報(bào)告。</p><p>  1.3.2 語(yǔ)言選擇</p><

43、p>  目前通用的編程語(yǔ)言一般有兩種:匯編語(yǔ)言和C語(yǔ)言 :</p><p>  匯編語(yǔ)言優(yōu)點(diǎn):1.快 2.效率高 3.與硬件接近效率高 4.程序簡(jiǎn)單執(zhí)行速度快;缺點(diǎn):1.匯編語(yǔ)言依賴于具體的機(jī)型,不能通用,也不能在不同機(jī)型之間移植,而且程序員要寫大量的代碼。2.編寫程序速度慢,難度大。 </p><p>  C語(yǔ)言應(yīng)用和發(fā)展非常迅速,而且有強(qiáng)大的生命力。一種語(yǔ)言之所以能存在和發(fā)展,并

44、具有生命力,總是有其不同于(或優(yōu)于)其他語(yǔ)言的特點(diǎn)。C語(yǔ)言的主要特點(diǎn)如下:</p><p>  (1) 語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。</p><p>  C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。因此C程序比較簡(jiǎn)練,源程序短,輸入程序時(shí)工作量少。</p><p>  (2) 運(yùn)算符豐富。 </p

45、><p>  C的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符,C把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理,從而使c的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其他高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。</p><p>  (3) 數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語(yǔ)言的各種數(shù)據(jù)結(jié)構(gòu)。</p><p>  C的數(shù)據(jù)類型有整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型

46、、共用體類型等。能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹、棧等)的運(yùn)算,尤其是指針類型數(shù)據(jù),使用起來比PASCAL更為靈活、多樣。 </p><p>  (4) 具有結(jié)構(gòu)化的控制語(yǔ)句</p><p>  如if…else語(yǔ)句、while語(yǔ)句、do…while語(yǔ)句、switch語(yǔ)句、for語(yǔ)句等,用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化。C是理想的結(jié)構(gòu)化語(yǔ)言,符合現(xiàn)代編

47、程風(fēng)格的要求。</p><p>  (5) 語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。</p><p>  例如對(duì)數(shù)組下標(biāo)越界不做檢查,由程序編寫者自己保證程序的正確。對(duì)變量的類型使用比較靈活,例如整型量與字符型數(shù)據(jù)以及邏輯型數(shù)據(jù)可以通用。</p><p>  (6) C語(yǔ)言允許直接訪問物理地址。</p><p>  能進(jìn)行位(bit)操作,能實(shí)現(xiàn)

48、匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。因此,C既具有高級(jí)語(yǔ)言的功能,又具有低級(jí)語(yǔ)言的許多功能,可用來寫系統(tǒng)軟件。C語(yǔ)言的這種雙重性,使它既是成功的系統(tǒng)描述語(yǔ)言,又是通用的程序設(shè)計(jì)語(yǔ)言。有人把C稱為“高級(jí)語(yǔ)言中的低級(jí)語(yǔ)言”或“中級(jí)語(yǔ)言”,意為兼有高級(jí)和低級(jí)語(yǔ)言的特點(diǎn)。</p><p>  (7) 生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。</p><p>  一般只比匯編程序生成的目標(biāo)代

49、碼效率低10%—20%。 </p><p>  (8)用C語(yǔ)言寫的程序可移植性好(與匯編語(yǔ)言相比)。</p><p>  基本上不做修改就能用于各種型號(hào)的計(jì)算機(jī)和各種操作系統(tǒng)。</p><p>  鑒于以上C語(yǔ)言和匯編語(yǔ)言的比較,本次設(shè)計(jì)采用C語(yǔ)言</p><p>  第2章 方案論證與系統(tǒng)原理</p><p><

50、;b>  2.1 方案論證</b></p><p>  我們?cè)诖_定開發(fā)題目后,要先進(jìn)行方案論證,這個(gè)過程非常重要,制定出一個(gè)好的方案會(huì)使我們后面的開發(fā)工作較為順利。在調(diào)研論證中我們主要解決以下幾個(gè)問題:</p><p>  (1)了解本設(shè)計(jì)的需求,確定設(shè)計(jì)規(guī)模和總體框架。</p><p>  (2)摸清軟硬件的技術(shù)難度,明確技術(shù)主攻問題。<

51、/p><p>  (3)針對(duì)主攻問題開展調(diào)研工作,查找有關(guān)資料,確定初步方案。</p><p> ?。?)單片機(jī)應(yīng)用開發(fā)技術(shù)是軟硬件結(jié)合的技術(shù),方案設(shè)計(jì)要權(quán)衡任務(wù)的軟硬件分工。有時(shí)硬件設(shè)計(jì)會(huì)影響到軟件程序結(jié)構(gòu)。如果系統(tǒng)中增加某個(gè)硬件接口芯片,而給系統(tǒng)程序的模塊化帶來了可能和方便,那么這個(gè)硬件開銷是值得的。但在無(wú)礙大局的情況下,以軟件代替硬件才是我們?cè)O(shè)計(jì)的最佳選擇。</p><

52、;p> ?。?)我們?cè)谠O(shè)計(jì)中應(yīng)該盡量采用可借鑒的成熟技術(shù),以減少重復(fù)性勞動(dòng)。</p><p>  在直流電機(jī)驅(qū)動(dòng)的軟件設(shè)計(jì)中,主要考慮以下幾點(diǎn):</p><p>  功能:如何用軟件控制電機(jī)轉(zhuǎn)向?如何用軟件實(shí)現(xiàn)電機(jī)的加速減速?輸入信號(hào)由555定時(shí)器產(chǎn)生,控制電機(jī)速度的是PWM信號(hào),如何進(jìn)行轉(zhuǎn)換?555定時(shí)器信號(hào)的頻率和PWM信號(hào)的脈寬如何進(jìn)行對(duì)應(yīng)?綜合考慮了一下整個(gè)程序要求決定用C語(yǔ)

53、言分塊編程,定義一個(gè)函數(shù)實(shí)現(xiàn)555定時(shí)器產(chǎn)生的信號(hào)頻率到PWM信號(hào)脈寬的對(duì)應(yīng)轉(zhuǎn)換,子程序有啟動(dòng),正轉(zhuǎn),反轉(zhuǎn),加速,減速,等各個(gè)模塊,本設(shè)計(jì)的軟件系統(tǒng)采用模塊化的設(shè)計(jì)思想來實(shí)現(xiàn)測(cè)頻。模塊化設(shè)計(jì)是將一個(gè)大的程序按功能分割成一些小的模塊,各個(gè)模塊相對(duì)獨(dú)立、功能單一、結(jié)構(gòu)清晰、接口簡(jiǎn)單。利用這種模塊化設(shè)計(jì)有許多優(yōu)點(diǎn);降低了程序設(shè)計(jì)的復(fù)雜性;提高了元件的可靠性;縮短了開發(fā)周期;避免程序開發(fā)的重復(fù)勞動(dòng);易于維護(hù)和功能擴(kuò)展。</p>&

54、lt;p>  2.2 系統(tǒng)實(shí)現(xiàn)原理</p><p>  單片機(jī)應(yīng)用系統(tǒng)有軟件和硬件兩部分組成。硬件是指單片機(jī)CPU、擴(kuò)展存儲(chǔ)器、輸入/輸出接口電路及設(shè)備等組成的電路系統(tǒng)。軟件是在硬件的基礎(chǔ)上來滿足用戶需求的系統(tǒng)功能控制邏輯,對(duì)于單片機(jī)如果沒有軟件系統(tǒng),系統(tǒng)功能無(wú)法實(shí)現(xiàn),軟件包括監(jiān)控程序和各種應(yīng)用程序。硬件和軟件只有密切配合、協(xié)調(diào)一致,才能構(gòu)成一個(gè)功能完善、工作可靠的單片機(jī)應(yīng)用系統(tǒng),所有帶單片機(jī)的電子設(shè)備,

55、它的工作原理當(dāng)然與具體設(shè)備有關(guān)。但它的最基本的原理是一樣的,即: </p><p>  (1) 從輸入接口接收來自外界的信息存入存儲(chǔ)器。 </p><p>  這些信息主要包括二部分:來自諸如溫度壓力等傳感器的信息;來自人工干預(yù)的一些手動(dòng)信息,外部信息輸入等操作。</p><p>  (2) 單片機(jī)中的CPU根據(jù)程序?qū)斎氲臄?shù)據(jù)進(jìn)行高速運(yùn)算處理。 </p>

56、;<p>  (3) 將運(yùn)算處理的結(jié)果通過輸出接口送去控制執(zhí)行機(jī)構(gòu)。</p><p>  如繼電器,電機(jī),LED顯示電路等。 </p><p>  當(dāng)前這個(gè)過程不斷重復(fù)著,即系統(tǒng)中的微電腦不斷監(jiān)視著各種信息,并及時(shí)做出不同的處理使系統(tǒng)正常運(yùn)行。</p><p>  因本次設(shè)計(jì)我負(fù)責(zé)的是軟件部分,而且很多地方用到中斷和定時(shí),所以先說一下定時(shí)中斷部分的基本

57、原理,本次編程過程中所采用的定時(shí)中斷方式,以及單片機(jī)開發(fā)的一般流程做一個(gè)詳細(xì)介紹</p><p>  2.2.1 定時(shí)器計(jì)數(shù)器原理介紹</p><p>  通常采用以下三種方法來實(shí)現(xiàn)定時(shí)或計(jì)數(shù):硬件法,軟件法,可編程定時(shí)器/計(jì)數(shù)器,目前單片微機(jī)中往往已配備了定時(shí)器/計(jì)數(shù)器(timer/counter)。</p><p>  80C51芯片內(nèi)包含有兩個(gè)16位的定時(shí)器/

58、計(jì)數(shù)器:T0和T1;而80C52包含有三個(gè)16位的定時(shí)器/計(jì)數(shù)器:T0、T1和T2;在80C51系列的部分產(chǎn)品(如Philips公司的80C552)中,還包含有一個(gè)用做看門狗的8位定時(shí)器(T3)。</p><p>  定時(shí)器/計(jì)數(shù)器的核心是一個(gè)加1計(jì)數(shù)器.其基本功能是計(jì)數(shù)加1。</p><p> ?。?) 定時(shí)器/計(jì)數(shù)器T0、T1</p><p>  定時(shí)器/計(jì)數(shù)器

59、T0、T1由以下幾部分組成: </p><p>  計(jì)數(shù)器TH0、TL0和TH1、TL1;</p><p>  特殊功能寄存器TMOD、TCON;</p><p><b>  時(shí)鐘分頻器;</b></p><p>  輸入引腳T0、T1。</p><p> ?。?) 與定時(shí)器/計(jì)數(shù)器T0

60、、T1有關(guān)的特殊功能寄存器</p><p>  定時(shí)器/計(jì)數(shù)器T0、T1 的方式寄存器——TMOD,字節(jié)地址為89H。</p><p>  TMOD的格式如下:低4位用來定義T0,高4位用來定義T1</p><p>  D7 D6 D5 D4 D3 D2 D1 D0</p><

61、p><b>  各位的意義如下:</b></p><p>  GATE——門控位。</p><p>  GATE=1時(shí),由外部中斷引腳、和TR0、TR1共同來啟動(dòng)定時(shí)器。當(dāng)引腳為高電平時(shí),TR0置位啟動(dòng)定時(shí)器T0; TR1置位,啟動(dòng)定時(shí)器T1。 </p><p>  GATE=0時(shí),僅由TR0和TR1置位來啟動(dòng)定時(shí)器T0和T1。 &l

62、t;/p><p>  C/T——功能選擇位。</p><p>  C/T=1時(shí),選擇計(jì)數(shù)功能;C/T=0時(shí),選擇定時(shí)功能。</p><p>  T0、T1 的計(jì)數(shù)、定時(shí)功能是通過TMOD中的位來選擇的。</p><p> ?、?定時(shí)器,設(shè)置C/T=0</p><p>  計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期使寄存器的值

63、增1。每個(gè)機(jī)器周期等于12個(gè)振蕩周期,故計(jì)數(shù)速率為振蕩周期的1/12。當(dāng)采用12MHz的晶體時(shí),計(jì)數(shù)速率為1MHz。定時(shí)器的定時(shí)時(shí)間,與系統(tǒng)的振蕩頻率fosc、計(jì)數(shù)器的長(zhǎng)度和初始值等有關(guān)。</p><p> ?、?計(jì)數(shù)器,設(shè)置C/T=1</p><p>  這時(shí)通過引腳T0(P3.4)和T1(P3.5)對(duì)外部信號(hào)進(jìn)行計(jì)數(shù)。在每個(gè)機(jī)器周期的S5P2期間,CPU采樣引腳的輸入電平。若前一機(jī)器周

64、期采樣值為1,下一機(jī)器周期采樣值為0,則計(jì)數(shù)器增1,此后的機(jī)器周期S3P1期間,新的計(jì)數(shù)值裝入計(jì)數(shù)器。所以檢測(cè)一個(gè)1到0的跳變 需要兩個(gè)機(jī)器周期,故計(jì)數(shù)脈沖頻率不能高于振蕩脈沖頻率的1/24。</p><p>  M1、M0——工作方式選擇位。</p><p>  由于有M1和M0兩位,可以有四種工作方式</p><p>  方式0:13位定時(shí)計(jì)數(shù)器,TMOD中的M

65、1=0,M0=0</p><p>  方式1:16位定時(shí)器/計(jì)數(shù)器,TMOD中的M1=0、M0=l</p><p>  方式2:定時(shí)常數(shù)自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器,TMOD中的M1=1、M0=0</p><p>  方式3 :T0分為一個(gè)8位定時(shí)器/計(jì)數(shù)器和一個(gè) 8位定時(shí)器,TL0用于 8位定時(shí)器/計(jì)數(shù)器,TH0用于8位定時(shí)器。TMOD中的M1=l、M0=1&l

66、t;/p><p>  (3) 定時(shí)器/計(jì)數(shù)器T2 </p><p>  80C52中的T2是一個(gè)16位的、具有自動(dòng)重裝載和捕獲能力的定時(shí)器/計(jì)數(shù)器。在T2的內(nèi)部,除了兩個(gè)8位計(jì)數(shù)器TL2、TH2和控制寄存器T2 TCON及T2 TMOD之外,還設(shè)置有捕獲寄存器RCAP2L(低字節(jié))和RCAP2H(高字節(jié))。T2的計(jì)數(shù)脈沖源可以有兩個(gè):一個(gè)是內(nèi)部機(jī)器周期,另一個(gè)是由T2(P1.0)端輸入的外部計(jì)

67、數(shù)脈沖。T2像T0、T1一樣,既可用做定時(shí)器,也可用做計(jì)數(shù)器,由T2 TCON中的C/T位的電平所決定。T2有3種工作方式∶自動(dòng)重裝載、俘獲和波特率發(fā)生器方式,由T2 TCON中相關(guān)位決定。</p><p>  2.2.2 中斷部分基本原理</p><p>  中斷的概念:中斷是指程序執(zhí)行過程中,允許外部或內(nèi)部事件通過硬件打斷程序的執(zhí)行,使其轉(zhuǎn)向?yàn)樘幚硗獠炕騼?nèi)部事件的中斷服務(wù)程序中去;完成

68、中斷服務(wù)程序后,CPU繼續(xù)原來被打斷的程序,這樣的過程稱為中斷響應(yīng)過程</p><p> ?。?)中斷的主要功能</p><p> ?、?實(shí)現(xiàn)CPU與外部設(shè)備的速度配合</p><p>  由于應(yīng)用系統(tǒng)的許多外部設(shè)備速度較慢,可以通過中斷的方法來協(xié)調(diào)快速CPU與慢速外部設(shè)備之間的工作。</p><p><b>  ⒉ 實(shí)現(xiàn)實(shí)時(shí)控制&

69、lt;/b></p><p>  在單片微機(jī)中,依靠中斷技術(shù)能實(shí)現(xiàn)實(shí)時(shí)控制。實(shí)時(shí)控制要求計(jì)算機(jī)能及時(shí)完成被控對(duì)象隨機(jī)提出的分析和計(jì)算任務(wù)。在自動(dòng)控制系統(tǒng)中,要求各控制參量隨機(jī)地在任何時(shí)刻可向計(jì)算機(jī)發(fā)出請(qǐng)求,CPU必須做出快速響應(yīng)、及時(shí)處理。</p><p> ?、?實(shí)現(xiàn)故障的及時(shí)發(fā)現(xiàn)及處理</p><p>  單片微機(jī)應(yīng)用中由于外界的干擾、硬件或軟件設(shè)計(jì)中存在

70、問題等因素,在實(shí)際運(yùn)行中會(huì)出現(xiàn)硬件故障、運(yùn)算錯(cuò)誤、程序運(yùn)行故障等,有了中斷技術(shù),計(jì)算機(jī)就能及時(shí)發(fā)現(xiàn)故障并自動(dòng)處理。</p><p><b> ?、?實(shí)現(xiàn)人機(jī)聯(lián)系</b></p><p>  比如通過鍵盤向單片微機(jī)發(fā)出中斷請(qǐng)求,可以實(shí)時(shí)干預(yù)計(jì)算機(jī)的工作。</p><p><b> ?。?)中斷源</b></p>

71、<p>  80C51中有五個(gè)中斷源;80C52中增加了一個(gè)中斷源——定時(shí)器/計(jì)數(shù)器T2,即有六個(gè)中斷源。每一個(gè)中斷源都能被程控為高優(yōu)先級(jí)或低優(yōu)先級(jí)。80C51的五個(gè)中斷源中包括二個(gè)外部中斷源和三個(gè)內(nèi)部中斷源。</p><p>  二個(gè)外部中斷源INT0和INT1,外部設(shè)備的中斷請(qǐng)求信號(hào)、掉電等故障信號(hào)都可以從INT0或INT1引腳輸入。</p><p>  三個(gè)內(nèi)部中斷源為定

72、時(shí)器/計(jì)數(shù)器T0和T1的定時(shí)/計(jì)數(shù)溢出中斷源和串行口發(fā)送或接收中斷源。</p><p>  2.2.3 單片機(jī)應(yīng)用系統(tǒng)的開發(fā)過程</p><p>  (1) 單片機(jī)軟硬件開發(fā)流程如圖(2—1)所示:</p><p>  圖2—1單片機(jī)軟硬件開發(fā)流程 </p><p><b>  (2)控制系統(tǒng)組成</b></p

73、><p>  PWM控制電機(jī)轉(zhuǎn)速系統(tǒng)由單片機(jī)80C52,單片機(jī)控制電路,電機(jī)驅(qū)動(dòng)電路和系統(tǒng)軟件所組成(如圖2--2)</p><p>  圖2—2控制系統(tǒng)組成</p><p><b> ?。?) 總體設(shè)計(jì)</b></p><p>  我們通過555定時(shí)器給單片機(jī)產(chǎn)生輸入信號(hào),用兩個(gè)按鍵控制電機(jī)的轉(zhuǎn)動(dòng)停止和正反轉(zhuǎn),用PWM信號(hào)

74、占空比控制電機(jī)轉(zhuǎn)速??傮w設(shè)計(jì)結(jié)構(gòu)圖(如圖2--3)</p><p>  圖2—3總體設(shè)計(jì)結(jié)構(gòu)圖</p><p>  第3章 程序設(shè)計(jì)基本步驟</p><p><b>  3.1 程序的編寫</b></p><p><b>  第一步: 分析問題</b></p><p>  在

75、這一步, 必須: (1) 作為解決問題的一種方法, 確定要產(chǎn)生的數(shù)據(jù)(輸出)——PWM信號(hào)的占空比。 作為這一子步的一部分, 應(yīng)定義表示輸出的變量。 (2) 確定需產(chǎn)生輸出的數(shù)據(jù)(稱為輸入)555定時(shí)器產(chǎn)生不同頻率信號(hào), 作為這一子步的一部分, 還應(yīng)定義表示輸入的變量。 (3) 研制一種算法, 從有限步的輸入中獲取輸出。 這種算法定義為結(jié)構(gòu)化的順序操作, 以便在有限步內(nèi)解決問題。就數(shù)字問題而言, 這種算法包括獲取

76、輸出數(shù)據(jù)的計(jì)算, 但對(duì)非數(shù)字問題來說, 這種算法包括許多文本和圖象處理的操作。</p><p>  第二步: 畫出程序的基本輪廓</p><p>  在這一步,要用一些句子(偽代碼)來畫出程序的基本輪廓。每個(gè)句子對(duì)應(yīng)一個(gè)簡(jiǎn)單的程序操作。對(duì)一個(gè)簡(jiǎn)單的程序來說, 通過列出程序順序執(zhí)行的動(dòng)作,便可直接產(chǎn)生偽代碼。然而, 對(duì)復(fù)雜一些的程序來說, 則需要將大致過程有條理地進(jìn)行組織。對(duì)此, 應(yīng)使用自上

77、而下的設(shè)計(jì)方法。當(dāng)使用自上而下的設(shè)計(jì)方法時(shí), 你要把程序分割成幾段來完成。列出每段要實(shí)現(xiàn)的任務(wù), 程序的輪廓也就有了, 這稱之為主模塊。當(dāng)一項(xiàng)任務(wù)列在主模塊時(shí),僅用其名加以標(biāo)識(shí), 并未指出該任務(wù)將如何完成。這方面的內(nèi)容留給程序設(shè)計(jì)的下一階段來討論。將程序分為幾項(xiàng)任務(wù)只是對(duì)程序的初步設(shè)計(jì)。整個(gè)程序流程圖如圖4—1所示(軟件設(shè)計(jì)部分要寫,這里先不畫)</p><p>  如果把主模塊的每項(xiàng)任務(wù)擴(kuò)展成一個(gè)模塊, 并根據(jù)

78、子任務(wù)進(jìn)行定義的話, 那么, 程序設(shè)計(jì)就更為詳細(xì)了。這些模塊稱為主模塊的子模塊,將各個(gè)模塊求精, 達(dá)到第三級(jí)設(shè)計(jì)。繼續(xù)這一過程, 直至說明程序的全部細(xì)節(jié)。這一級(jí)一級(jí)的設(shè)計(jì)過程稱為逐步求精法。在編寫程序之前, 對(duì)程序進(jìn)行逐步求精, 對(duì)我來說, 是個(gè)很好的程序設(shè)計(jì)實(shí)踐機(jī)會(huì), 會(huì)使我養(yǎng)成良好的設(shè)計(jì)習(xí)慣。實(shí)際上就是說, 我設(shè)計(jì)程序是從程序的"頂部"開始一直考慮到程序的"底部"。 第三步: 實(shí)現(xiàn)該程

79、序 程序設(shè)計(jì)的最后一步是編寫源碼程序。 在這一步, 把模塊的偽代碼翻譯成Turbo C語(yǔ)句。對(duì)于源程序, 應(yīng)包含注釋方式的文件編制, 以描述程序各個(gè)部分做何種工作。此外, 源程序還應(yīng)包含調(diào)試程序段, 以測(cè)試程序的運(yùn)行情況, 允許查找編程錯(cuò)誤。一旦程序運(yùn)行情況良好, 可去掉調(diào)試程序段, 然而, 文件編制應(yīng)作為源程序的固定部分保留下來, 便于自己或其他人維護(hù)和修改。</p><p>  3.2 程序的編輯、編

80、譯和運(yùn)行</p><p>  C語(yǔ)言是一種中級(jí)語(yǔ)言, 用戶用C語(yǔ)言編寫的程序稱為源程序, 存放用C 語(yǔ)言所寫源程序文件名字最后的兩個(gè)字符一般必須為".c"。計(jì)算機(jī)硬件不能直接執(zhí)行源程序, 必須將源程序翻譯成二進(jìn)制目標(biāo)程序。翻譯工作是由一個(gè)程序完成的,這個(gè)程序稱為編譯程序, 翻譯的過程稱為編譯, 編譯的結(jié)果稱為目標(biāo)程序, 存放目標(biāo)程序文件名字緊后的字符一般為".OBJ"或&q

81、uot;.O"。程序翻譯成目標(biāo)程序后, 便可進(jìn)行連接。"連接"的目的是使程序變成在計(jì)算機(jī)上可以執(zhí)行的最終形式。在這一階段, 從系統(tǒng)程序庫(kù)來的程序要與目標(biāo)程序連接, 連接的結(jié)果稱為執(zhí)行程序,存放執(zhí)行程序文件名字一般以".EXE"結(jié)尾。在Turbo C集成開發(fā)環(huán)境中建立一個(gè)新程序通常有以下幾個(gè)步驟: (1). 在編輯器中編寫源文件。 (2). 生成可執(zhí)行文件。 在D

82、OS提示符下鍵入TC, 即可進(jìn)入Turbo C了。進(jìn)入主TC屏后, 按F3鍵, 即可在隨之出現(xiàn)的框中輸入文件名, 文件名可以帶".C"也可以不帶( 此時(shí)系統(tǒng)會(huì)自動(dòng)加上)。輸入文件名后, 按回車, 即可將文件調(diào)入, 如果文件不存在, 就建立一個(gè)新文件。系統(tǒng)隨之進(jìn)入編輯狀態(tài)。就</p><p>  這也就是編程,編輯,編譯和運(yùn)行的全過程。 &

83、lt;/p><p><b>  第4章 軟件設(shè)計(jì)</b></p><p>  本次設(shè)計(jì)軟件部分是由主程序模塊,轉(zhuǎn)速和方向調(diào)節(jié)模塊,按鍵掃描程序模塊,延時(shí)程序模塊組成。各個(gè)模塊相對(duì)獨(dú)立,結(jié)構(gòu)清晰,降低了整體軟件設(shè)計(jì)復(fù)雜性,避免程序開發(fā)的重復(fù)勞動(dòng);易于維護(hù)和功能擴(kuò)展。</p><p>  4.1程序總體流程圖</p><p> 

84、 程序整體流程圖如圖4-1所示,具體代碼參照附錄二。</p><p>  首先對(duì)系統(tǒng)進(jìn)行初始化,檢測(cè)控制電機(jī)啟停的P1.6是否按下,如果按下則電機(jī)啟動(dòng),如果沒有按下則繼續(xù)等待按鍵動(dòng)作;再檢測(cè)控制電機(jī)正反轉(zhuǎn)的P1.7是否按下,如果按下則電機(jī)正轉(zhuǎn),如果沒有按下則電機(jī)反轉(zhuǎn);無(wú)論是正轉(zhuǎn)還是反轉(zhuǎn)電機(jī)轉(zhuǎn)速都與555定時(shí)器輸入頻率有關(guān),把頻率F<1K的信號(hào)轉(zhuǎn)化成占空比10%的脈沖,把1K<F<3K的信號(hào)轉(zhuǎn)化成

85、占空比30%的脈沖,把3K<F<5K的信號(hào)轉(zhuǎn)化成占空比50%的脈沖,把5K<F<7K的信號(hào)轉(zhuǎn)化成占空比70%的脈沖,7K<F<9K的信號(hào)轉(zhuǎn)化成占空比90%的脈沖,用不同占空比寬度的脈沖控制電機(jī)轉(zhuǎn)速,分別送到顯示部分進(jìn)行輸出,如果是四位LED可以顯示頻率,如果只有一位LED可以顯示轉(zhuǎn)速的檔位。再檢測(cè)P1.6是否按下,如果按下則電機(jī)停轉(zhuǎn),如果沒有按下則去檢測(cè)P1.7是否按下,即檢測(cè)是正轉(zhuǎn)還是反轉(zhuǎn),如此不斷

86、循環(huán)。</p><p>  4.2 軟件各子模塊設(shè)計(jì)</p><p>  4.2.1 主程序模塊</p><p>  主程序模塊的功能是對(duì)系統(tǒng)用到的存儲(chǔ)單元,寄存器和堆棧指針初始化。設(shè)置定時(shí)/計(jì)數(shù)器T0、T1的工作方式,允許定時(shí)/計(jì)數(shù)器T0、T1計(jì)數(shù)滿中斷和外部中斷,執(zhí)行循環(huán)等待程序,等待功能選擇信號(hào),并對(duì)各個(gè)子程序進(jìn)行調(diào)用。</p><p>

87、;  主程序包括調(diào)用了PWM加速輸出函數(shù)和反轉(zhuǎn)PWM加速輸出函數(shù),屬于對(duì)電機(jī)方向和轉(zhuǎn)速的調(diào)節(jié)部分。是本程序的核心和主題,以此達(dá)到實(shí)現(xiàn)單片機(jī)控制直流電機(jī)轉(zhuǎn)動(dòng)的目的</p><p>  //**********************************************************//下面為主函數(shù)</p><p>  void main(void) </p>

88、<p><b>  { </b></p><p>  TMOD=0x40; // T0定時(shí),T1計(jì)數(shù) ,分別工作方式01</p><p>  TH0=(65536-50000)/256; //載入定時(shí)初值</p><p>  TL0=(65536-50000)%256;</p><p>  EA

89、=1; //開總中斷</p><p>  EX0=1; //開外部中斷0</p><p>  ET0=1; // 允許定時(shí)器0中斷</p><p>  IT1=1; // 設(shè)置下降沿觸發(fā)計(jì)數(shù)器中斷</p><p>  TR0=1; //開啟定時(shí)</p><p>  TR1=1; // 開啟計(jì)

90、數(shù)</p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  key = scan_key(); //首先掃描鍵盤</p><p>  if((n>=0)&&(n<=999

91、)) //小于1KHz</p><p><b>  {</b></p><p>  save[0]=n/1000;a1=n%1000;save[1]=a1/100;a2=a1%100;save[2]=a2/10;save[3]=a2%10; //這里是轉(zhuǎn)換要顯示</p><p>  Display(save);//l

92、ed顯示此時(shí)頻率</p><p>  if (key==1) //判斷正反轉(zhuǎn),選擇不同方向的PWM</p><p>  { Speed_A10(); }</p><p><b>  else</b></p><p>  { Speed_B10();}</p><p&

93、gt;<b>  }</b></p><p>  else if((n>=1000)&&(n<=2999)) //大于1KHz,小于3KHZ</p><p><b>  {</b></p><p>  save[0]=n/1000;a1=n%1000;save[1]=a1/

94、100;a2=a1%100;save[2]=a2/10;save[3]=a2%10; </p><p>  Display(save);//led顯示此時(shí)頻率</p><p>  if (key==1)</p><p>  { Speed_A30(); }</p><p><b>  else</b></p>

95、<p>  { Speed_B30();}</p><p><b>  }</b></p><p>  else if((n>=3000)&&(n<=4999)) //大于3KHz,小于5KHZ</p><p><b>  {</b></p>&

96、lt;p>  save[0]=n/1000;a1=n%1000;save[1]=a1/100;a2=a1%100;save[2]=a2/10;save[3]=a2%10; </p><p>  Display(save);//led顯示此時(shí)頻率</p><p>  if (key==1)</p><p>  { Speed_A50(); }</p>

97、<p><b>  else</b></p><p>  { Speed_B50();}</p><p><b>  }</b></p><p>  else if((n>=5000)&&(n<=6999)) //大于5KHz,小于7KHZ</p>

98、<p><b>  {</b></p><p>  save[0]=n/1000;a1=n%1000;save[1]=a1/100;a2=a1%100;save[2]=a2/10;save[3]=a2%10; </p><p>  Display(save);//led顯示此時(shí)頻率</p><p>  if (key==1)<

99、;/p><p>  { Speed_A70(); }</p><p><b>  else</b></p><p>  { Speed_B70();}</p><p><b>  }</b></p><p>  else if((n>=7000)&&(n&l

100、t;=9999)) //大于7KHz,小于10kHZ</p><p><b>  {</b></p><p>  save[0]=n/1000;a1=n%1000;save[1]=a1/100;a2=a1%100;save[2]=a2/10;save[3]=a2%10; </p><p>  Display(save);/

101、/led顯示此時(shí)頻率</p><p>  if (key==1)</p><p>  { Speed_A90(); }</p><p><b>  else</b></p><p>  { Speed_B90();}</p><p><b>  }</b></p>

102、<p><b>  } </b></p><p><b>  }</b></p><p>  void timer0(void) interrupt 1 using 1 //T0定時(shí)中斷服務(wù)程序 ,</p><p><b>  { </b></p><p

103、>  bittime++;</p><p>  if(bittime==20)//1秒時(shí)間到</p><p><b>  { </b></p><p>  TR0=0;//關(guān)閉定時(shí)</p><p>  n=m; //n中防1秒鐘計(jì)的脈沖個(gè)數(shù)</p><p><b> 

104、 m=0</b></p><p>  bittime=0;//清零</p><p>  TR0=1;//開啟定時(shí)</p><p><b>  }</b></p><p>  TH0=(65536-50000)/256;//定時(shí)50ms</p><p>  TL0=(65536-5000

105、0)%256;</p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p>  void couter1(void) interrupt 2 using 2//T1計(jì)數(shù)中斷服務(wù)程序</p><p><b>  {</b></p

106、><p>  m++; //每檢測(cè)一個(gè)周期m自加1</p><p><b>  }</b></p><p>  4.2.2 正反轉(zhuǎn)PWM加速輸出流程圖及代碼</p><p>  其中圖4—2為PWM正轉(zhuǎn)加速流程圖,圖4—3為PWM反轉(zhuǎn)加速流程圖</p><p>  P1

107、.0為PWM正轉(zhuǎn)輸出端口,P1.1為PWM反轉(zhuǎn)輸出端口,首先判斷控制電機(jī)正反轉(zhuǎn)的按鍵P1.7是否按下,如果按下則P1.0置1即根據(jù)不同的延時(shí)從正轉(zhuǎn)PWM端口輸出,再送到P2口進(jìn)行顯示,如果是四位LED可以顯示頻率,如果是一位LED可以顯示檔位;同理如果沒有按下則P1.1置1則從反轉(zhuǎn)PWM端口輸出。</p><p>  //**********************************************

108、************//正轉(zhuǎn)PWM輸出函數(shù)</p><p>  void Speed_A10() //設(shè)定正轉(zhuǎn)PWM10%速度前進(jìn)</p><p>  { forward=1;</p><p>  delay(10);</p><p>  backward=0;</p><p>  delay(90);<

109、/p><p><b>  }</b></p><p>  void Speed_A30() //設(shè)定正轉(zhuǎn)PWM30%速度</p><p>  { forward=1;</p><p>  delay(30);</p><p>  backward=0;</p><p>  

110、delay(70);</p><p><b>  }</b></p><p>  void Speed_A50() //設(shè)定正轉(zhuǎn)PWM50%速度</p><p>  { forward=1 ;</p><p>  delay(50);</p><p>  backward=0;</p&g

111、t;<p>  delay(50);</p><p><b>  }</b></p><p>  void Speed_A70() //設(shè)定正轉(zhuǎn)PWM70%速度</p><p>  { forward=1;</p><p>  delay(70);</p><p>  backw

112、ard=0;</p><p>  delay(30);</p><p><b>  }</b></p><p>  void Speed_A90() //設(shè)定正轉(zhuǎn)PWM90%速度</p><p>  { forward=1;</p><p>  delay(90);</p>&l

113、t;p>  backward=0;</p><p>  delay(10);</p><p><b>  }</b></p><p>  //**********************************************************//設(shè)置反轉(zhuǎn)PWM輸出函數(shù)</p><p>  void

114、Speed_B10() //設(shè)定反轉(zhuǎn)PWM10%速度前進(jìn)</p><p>  { forward=1;</p><p>  delay(10);</p><p>  backward=0;</p><p>  delay(90);</p><p><b>  }</b></p>

115、<p>  void Speed_B30() //設(shè)定反轉(zhuǎn)PWM30%速度</p><p>  { forward=1;</p><p>  delay(30);</p><p>  backward=0;</p><p>  delay(70);</p><p><b>  }</b&g

116、t;</p><p>  void Speed_B50() //設(shè)定反轉(zhuǎn)PWM50%速度</p><p>  { forward=1 ;</p><p>  delay(50);</p><p>  backward=0;</p><p>  delay(50);</p><p><b

117、>  }</b></p><p>  void Speed_B70() //設(shè)定反轉(zhuǎn)PWM70%速度</p><p>  { forward=1;</p><p>  delay(70);</p><p>  backward=0;</p><p>  delay(30);</p>

118、<p><b>  }</b></p><p>  void Speed_B90() //設(shè)定反轉(zhuǎn)PWM90%速度</p><p>  { forward=1;</p><p>  delay(90);</p><p>  backward=0;</p><p>  delay(10

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論