版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于AT89C51的步進電機控制</p><p><b> 摘 要</b></p><p> 本設計采用ATMEL系列的單片機對步進電機進行控制,實現以下功能:開機后,電機不轉,按下啟動鍵,電機旋轉;按下正轉鍵,電機正轉;按下反轉鍵,電機反轉。 實現這一功能,系統的硬件部分應由四模塊構成:輸入模塊、單片機控制模塊、步進電機驅
2、動模塊、步進電機模塊。通過鍵盤輸入,單片機編程控制,輸出信號給步進電機驅動電路ULN2003A,最后由ULN2003A驅動步進電機按規(guī)定的方向運轉。</p><p> 用單片機控制步進電機,可以簡化硬件電路,可同時實現各種功能,如步進電機的加減速,步進電機正反轉等,當功能要求改變時,只需改變程序,而硬件電路不變,實現功能的方式簡單便捷。</p><p> 關鍵詞: 單片機 ;步進電機&
3、lt;/p><p> The Control Of Stepping Motor Based On AT89C51</p><p><b> Abstract</b></p><p> Stepping motor is controlled by the microcontroller , a sort of ATMEL series ,i
4、n the design. The function can be realized as follows:When the start button is pressed, motor begins to run;When the foreward button is pressed,motor begins to run in the positive direction;When the reversional button i
5、s pressed,motor begins to run in the opposite direction. To realize the features described above,the circuits should consist of four modules:input circuit,microcontroller,drive circuit of stepping moto</p><p&g
6、t; The control of stepping motor by :microcontroller can simplify the circuit and can realize many functions,e.g. it can change the operation mode of stepping motor and speed,and so on. When the function need to be cha
7、nged,the same circuit can be used and the only thing that you should do is to modify program . So it is convenient to use microcontroller to realize the control of motor .</p><p> Keyword :microcontroller
8、;stepping motor</p><p><b> 目 錄 </b></p><p> 第1章. 緒論- 1 -</p><p> 1.1. 單片機的特點- 1 -</p><p> 1.2. 單片機的發(fā)展趨勢- 1 -</p><p> 1.3. 單片機的任務- 2
9、 -</p><p> 第2章. 系統設計- 4 -</p><p> 2.1. 設計要求- 4 -</p><p> 2.2. 設計構思- 4 -</p><p> 2.3. 設計元件的選型- 5 -</p><p> 第3章. 系統核心元件的介紹- 6 -</p><p>
10、; 3.1. 單片機簡介- 6 -</p><p> 3.1.1. 單片機的基本組成- 6 -</p><p> 3.1.2. 單片機的特點- 8 -</p><p> 3.1.3. 單片機的應用- 8 -</p><p> 3.2. AT89C51的簡介- 9 -</p><p> 3.2.1.
11、 AT89C51的結構- 9 -</p><p> 3.2.2. AT89C51的引腳介紹- 10 -</p><p> 第4章. 系統的硬件設計- 12 -</p><p> 4.1. 輸入電路的設計- 12 -</p><p> 4.1.1. 鍵盤輸入- 12 -</p><p> 4.1.2.
12、 鍵盤接口的工作原理- 12 -</p><p> 4.2. AT89C51設計電路- 13 -</p><p> 4.2.1. 時鐘電路- 13 -</p><p> 4.2.2. 復位電路- 14 -</p><p> 4.3. 步進電機驅動電路- 16 -</p><p> 4.4. 步進電機
13、- 17 -</p><p> 4.4.1. 步進電機原理- 17 -</p><p> 4.4.2. 步進電機勵磁控制- 17 -</p><p> 4.5. 系統的總體硬件電路- 19 -</p><p> 第5章. 系統的軟件設計- 21 -</p><p> 5.1. 系統的程序分析- 2
14、1 -</p><p> 5.2. 軟件流程圖- 21 -</p><p> 5.2.1. 鍵盤程序的設計- 22 -</p><p> 5.2.2. 步進電機驅動程序- 22 -</p><p> 第6章. 電路的仿真- 26 -</p><p> 6.1. 仿真的介紹- 26 -</p&g
15、t;<p> 6.2. 仿真的過程- 26 -</p><p> 結束與展望- 28 -</p><p> 參考文獻- 29 -</p><p><b> 致謝- 30 -</b></p><p> 附錄1:譯文原文- 31 -</p><p> 附錄2:譯文
16、- 34 -</p><p><b> 圖 表 清 單 </b></p><p> 圖 21 系統的設計思路圖- 4 -</p><p> 圖 31 單片機的典型結構框圖- 6 -</p><p> 表格 31 P3各引腳- 11 -</p><p> 圖 41 鍵閉
17、合時的行線輸出電壓波形- 12 -</p><p> 圖 42 AT89C51的最小系統- 13 -</p><p> 圖 43 內部時鐘振蕩器- 14 -</p><p> 表格 41 一些寄存器的復位狀態(tài)- 14 -</p><p> 圖 44 AT89C51的片內復位結構- 15 -</p>
18、<p> 圖 45 按鍵復位電路- 15 -</p><p> 圖 46 一般驅動電路- 16 -</p><p> 圖 47 ULN2003內部框圖及等效電路圖- 16 -</p><p> 圖 48 ULN2003的應用驅動電路- 17 -</p><p> 表格 42 勵磁順序A-B-C-D-A
19、- 18 -</p><p> 表格 43 勵磁順序AB-BC-CD-DA-AB- 18 -</p><p> 表格 44勵磁順序:A-AB-B-BC-C-CD-D-DA-A- 19 -</p><p> 圖 49 系統的硬件電路圖- 20 -</p><p> 圖 51主程序流程圖- 21 -</p>
20、<p> 圖 61 仿真電路圖- 27 -</p><p><b> 緒論 </b></p><p><b> 單片機的特點 </b></p><p> 近十幾年來,單片機在生產過程控制、自動檢測、數據采集與處理、科技計算、商業(yè)管理和辦公室自動化等方面獲得了廣泛的應用。單片機具有體積小、重量輕、
21、耗能省、價格低、可靠性高和通用靈活等優(yōu)點,因此也廣泛應用于衛(wèi)星定句、汽車火花控制、交通白動管理和微波爐等專用控制上。近幾年來,單片機的發(fā)展更為迅速,它已滲透到諸多學科的領域,以及人們生活的各個方面。 單片機不求規(guī)模大,只求小而全。廠家在一個芯片上制成了CPU和一定容量的程序存儲器和數據存儲器以及一定數量的輸入/輸出接口(Intel)。在一個大規(guī)模集成電路芯片上構造了完整的計算機結構,故稱之為單片機
22、?! 〗陙?,在國際上出現了Mechanics和electronics復合成Mechtronics這個新詞,我國譯為"機電一體化"。這種機械和電子技術、信息技術緊密結合的新的學科領域是先進制造技術研究和普及的結果。機電一體化產品要實現電器控制的實時性、高可靠性、可編程和一定的人工智能。同時追求體積小、價格低,甚至低功耗等。正是針對上述種種要求而設計的單片機自然成為機電一體化控制器的最佳選擇。</p>
23、<p> 單片機的發(fā)展趨勢 </p><p> 單片機出現的歷史并不長,它的產生與發(fā)展與微處理器的產生與發(fā)展大體上同步,也經歷了四個階段: 第一階段 : 1971~1974年,4位微處理器工intel 4004及8位微處理器工intel 8008,這些計算機價格便宜、功能有限,只用于消耗類電子產品。 第二階段 : 1974~1978年,初級單片機階段,以工intel公司的MCS-48為代表
24、,8位單片機。 第三階段 : 1978~1983年,高性能單片機階段。以工Intel公司的MCS-51, Motorola公司的6801和Zilog公司的Z8等為代表。這一階段推出的單片機普遍帶有串行口,有多級中斷處理系統、16位定時器/計數器,有的片內還帶有A/D轉換器接口,片內RAM, ROM容量加大,尋址范圍可達64K字節(jié)。廣泛應用于工業(yè)控制、外部設備控制、宏觀控制、局部網絡及家用計算機中。 第四階段 : 1983年至今,
25、8位單片機鞏固發(fā)展及16位單片機推出階段。例如Mostek公司的MK6800、Intel公司的MCS-96等。MCS-96集成度為12萬只品體管/片,尋址范圍64K字節(jié)、5個8位并行口、一個全雙工串行口、4個</p><p> 步進電機上個世紀就出現了,它的組成、動作原理和今天的反應式步進電動機沒有什么本質區(qū)別,也是依靠氣隙間的磁導變化來產生電磁轉矩。80年代以后,由于廉價的微型計算機以多功能的姿態(tài)出現,步進電
26、動機的控制方式變得更加靈活多樣。原來的步進電機控制系統采用分立元件或者集成電路組成的控制回路,不僅調試安裝復雜,要消耗大量元器件,而且一旦定型之后,要改變控制方案就一定要重新設計電路,不利于系統的改進升級。基于微型計算機的控制系統則通過軟件來控制步進電機,能夠更好地發(fā)揮步進電機的潛力,因此,用微型計算機控制步進電機已經成為了一種必然的趨勢,也符合數字化的時代發(fā)展要求.</p><p><b> 單片機
27、的任務 </b></p><p> 步進電機廣泛應用在生產實踐的各個領域。它最大的應用是在使用數控機床的生產制造中,因為步進電機不需要A/D轉換,能夠直接將數字脈沖信號轉化成為角位移,所以被認為是理想的數控機床的執(zhí)行元件。早期的步進電機輸出轉矩比較小,無法滿足需要,在使用中和液壓扭矩放大器一同組成液壓脈沖馬達。隨著步進電動機技術的發(fā)展,步進電動機已經能夠單獨在系統上進行使用,成為了不可替代的執(zhí)行元件
28、。比如步進電動機用作數控銑床進給伺服機構的驅動電動機,在這個應用中,步進電動機可以同時完成兩個工作,其一是傳遞轉矩,其二是傳遞信息。步進電機也可以作為數控蝸桿砂輪磨邊機同步系統的驅動電動機。除了在數控機床上的應用,步進電機也應用在其他方面,比如作為自動送料機中的馬達,作為通用的軟盤驅動器的馬達,也可以應用在打印機和繪圖儀中等等。微電子技術的飛速發(fā)展,帶動了機械加工技術的飛速發(fā)展。而在其發(fā)展過程中,最顯著的特點是機械制造將越來越密切地依
29、賴于電子技術、檢測技術、自動控制技術、計算機技術、系統論、信息論等現代科學技術。 隨著現代電子科學的不斷發(fā)展與進步,電子計算機已深深介入機械制造的各個領域,誕生了一系列機、電、計算機一</p><p><b> 系統設計 </b></p><p><b> 設計要求 </b></p>&l
30、t;p> (1)開機后,電機不轉,按下啟動鍵,電機旋轉;按下正轉鍵,電機正轉;按下反轉鍵,電機反轉</p><p> ?。?)電路設計完成后,用Keil11和Proteus進行仿真,模擬操作實驗,實現電機正反轉</p><p><b> 設計構思 </b></p><p> 實現設計功能的核心元素是單片機,它的可編程控制功能可以實現
31、電機速度的調節(jié)。要組成一個簡單的系統,必須存在單片機信號的輸入與輸出,輸出信號控制步進電機的調速。而對步進電機而言,單片機的輸出信號太小,不足以驅動電機,故需加一個電機驅動器,實現電機驅動。</p><p> 由此可見,該系統應由四大模塊構成:輸入模塊、單片機控制模塊、步進電機驅動模塊、步進電機執(zhí)行模塊。</p><p> 圖 21 系統的設計思路圖</p><
32、p> 輸入模塊:為單片機提供輸入信號。根據要求,本設計應存在四個輸入信號:啟動輸入、停止輸入、加速輸入、減速輸入。我們可以用鍵盤實現輸入的方法,使用鍵盤的四個鍵實現。</p><p> 單片機 :單片機具有可編程控制功能,能通過對單片機進行編程實現對步進電機速度的控制。由輸入模塊獲得輸入信號,根據單片機內部程序處理,輸出相應的控制信號。</p><p> 步進電機驅動模塊 :
33、實現驅動步進電機的功能。由單片機獲得信號,輸出信號對步進電機控制。</p><p> 步進電機執(zhí)行模塊 : 實際上就是步進電機本身。前面輸出的信號控制步進電機,實現對步進電機的控制,完成設計要求。</p><p><b> 設計元件的選型 </b></p><p> 輸入模塊可以使用鍵盤輸入,使用鍵盤的四個鍵分別代表啟動、停止、加速、減速
34、;單片機選擇MCS-51的核心成員AT89C51;步進電機驅動模塊可以選用小型步進電機電路ULN2003A </p><p> 系統核心元件的介紹 </p><p><b> 單片機簡介 </b></p><p><b> 單片機的基本組成</b></p><p> 單片機的結構特征是將組成
35、計算機的基本部件集成在一塊晶體芯片上,構成一臺功能獨特的、完整的單片微型計算機 </p><p> 圖 31 單片機的典型結構框圖</p><p> 下面簡要介紹各組成部分。</p><p><b> ?。?)中央處理器</b></p><p> 是單片機的核心單元,通常由算術邏輯運算部件ALU和控制部件構成,
36、另外增設了“面向控制”的處理功能,如位處理、查表、多種跳轉、乘除法運算、狀態(tài)檢測、中斷處理等,增強了實時性。CPU就象人的大腦一樣,決定了單片機的運算能力和處理速度。 </p><p><b> ?。?)存儲器</b></p><p> 單片機的存儲空間有兩種基本結構。一種是普林斯頓結構(Princeton),將程序和數據合用一個存儲器空間,即ROM和RAM的地址同
37、在一個空間里分配不同的地址。CPU訪問存儲器時,一個地址對應惟一的一個存儲單元,可以是ROM,也可以是RAM,用同類的訪問指令。另一種是將程序存儲器和數據存儲器截然分開,分別尋址的結構,稱為哈佛(Harvard)結構。CPU用不同的指令訪問不同的存儲器空間。由于單片機實際應用中“面向控制”的特點,一般需要較大的程序存儲器。目前,包括MCS-51和80C51系列的單片機均采用程序存儲器和數據存儲器截然分開的哈佛結構。</p>
38、<p> ① 數據存儲器(RAM)</p><p> 在單片機中,用隨機存取的存儲器(RAM)來存儲數據,暫存運行期間的數據、中間結果、緩沖和標志位等,所以稱之為數據存儲器。一般在單片機內部設置一定容量(64B~256B)的RAM,并以高速RAM的形式集成在單片機內,以加快單片機的運行速度。同時,單片機內還把專用的寄存器和通用的寄存器放在同一片內RAM統一編址,以利于運行速度的提高。對于某些應用系
39、統,還可以外部擴展數據存儲器。</p><p> ② 程序存儲器(ROM)</p><p> 單片機的應用中常常將開發(fā)調試成功后的應用程序存儲在程序存儲器中,因為不再改變,所以這種存儲器都采用只讀存儲器ROM的形式。</p><p> 單片機內部的程序存儲器常有以下幾種形式:</p><p> 掩膜ROM(Mask ROM) 它是由
40、半導體廠家在芯片生產封裝時,將用戶的應用程序代碼通過掩膜工藝制作到單片機的ROM區(qū)中,一旦寫入后用戶則不能修改。所以它適合于程序已定型,并大批量使用的場合。8051就是采用掩膜ROM的單片機型號。</p><p> EPROM 此種芯片帶有透明窗口,可通過紫外線擦除程序存儲器的內容。應用程序可通過專門的寫入器脫機寫入到單片機中,需要更改時可通過紫外線擦除后重新寫入。8751就是采用EPROM的單片機型號。&l
41、t;/p><p> ROMLESS 這種單片機內部沒有程序存儲器,使用時必須在外部并行擴展一片EPROM作為程序存儲器。8031就是ROMLESS型的單片機。</p><p> OTP(one time programmable)ROM 這是用戶一次性編程寫入的程序存儲器。用戶可通過專用的寫入器將應用程序寫入OTPROM中,但只允許寫入一次。</p><p>
42、 Flash ROM(MTP ROM)閃速存儲器 這是一種可由用戶多次編程寫入的程序存儲器。它不需紫外線擦除,編程與擦除完全用電實現,數據不易揮發(fā),可保存10年。編程/擦除速度快,4KB編程只需數秒,擦除只需10ms。例如AT89系列單片機,可實現在線編程,也可下載。這是目前大力發(fā)展的一種ROM,大有取代EPROM型產品之勢。</p><p><b> ?。?)并行I/O口</b><
43、/p><p> 單片機為了突出控制的功能,提供了數量多、功能強、使用靈活的并行I/O口。使用上不僅可靈活地選擇輸入或輸出,還可作為系統總線或控制信號線,從而為擴展外部存儲器和I/O接口提供了方便。</p><p><b> (4)串行I/O口</b></p><p> 高速的8位單片機都可提供全雙工串行I/O口,因而能和某些終端設備進行串行通
44、信,或者和一些特殊功能的器件相連接。</p><p> ?。?)定時器/計數器</p><p> 在實際的應用中,單片機往往需要精確地定時,或者需對外部事件進行計數,因而在單片機內部設置了定時器/計數器電路,通過中斷,實現定時/計數的自動處理。</p><p><b> ?。?)系統時鐘</b></p><p> 通
45、常需要外接石英晶體或其它振蕩源來提供時鐘信號輸入,也有的使用內部RC振蕩器。</p><p><b> 單片機的特點 </b></p><p> 單片機獨特的結構決定了它具有如下特點。</p><p> ?。?)高集成度、高可靠性</p><p> 單片機將各功能部件集成在一塊晶體芯片上,集成度很高,體積自然也是最
46、小的。芯片本身是按工業(yè)測控環(huán)境要求設計的,內部布線很短,其抗工業(yè)噪音性能優(yōu)于一般通用的CPU。單片機程序指令,常數及表格等固化在ROM中不易破壞,許多信號通道均在一個芯片內,故可靠性高。</p><p><b> ?。?)控制功能強</b></p><p> 為了滿足對對象的控制要求,單片機的指令系統均有極豐富的條件:分支轉移能力、I/O口的邏輯操作及位處理能力,非
47、常適用于專門的控制功能。</p><p> (3)低電壓、低功耗</p><p> 為了滿足廣泛使用于便攜式系統,許多單片機內的工作電壓僅為1.8V~3.6V,而工作電流僅為數百微安。</p><p> ?。?)優(yōu)異的性能價格比</p><p> 單片機的性能極高。為了提高速度和運行效率,單片機已開始使用RISC流水線和DSP等技術。單
48、片機的尋址能力也已突破64KB的限制,有的已可達到1MB和16MB,片內的ROM容量可達62MB,RAM容量則可達2MB。由于單片機的廣泛使用,因而銷量極大,各大公司的商業(yè)競爭更使其價格十分低廉,其性能價格比極高。</p><p><b> 單片機的應用 </b></p><p> 由于單片機功能的飛速發(fā)展,它的應用范圍日益廣泛,已遠遠超出了計算機科學的領域。小到
49、玩具、信用卡,大到航天器、機器人,從實現數據采集、過程控制、模糊控制等智能系統到人類的日常生活,到處都離不開單片機。其主要的應用領域如下。</p><p> ?。?)在測控系統中的應用</p><p> 單片機可以用于構成各種工業(yè)控制系統、自適應控制系統、數據采集系統等。例如,工業(yè)上的鍋爐控制、電機控制、車輛檢測系統、水閘自動控制、數控機床及軍事上的雷達、導彈系統等。</p>
50、<p> (2)在智能化儀器儀表中的應用</p><p> 單片機應用于儀器儀表設備中促使儀器儀表向數字化、智能化、多功能化和綜合化等方向發(fā)展。單片機的軟件編程技術使長期以來測量儀表中的誤差修正、線性化的處理等難題迎刃而解。</p><p> ?。?)在機電一體化中的應用</p><p> 單片機與傳統的機械產品結合使傳統的機械產品結構簡化,控制
51、走向智能化,構成新一代的機電一體化產品。這是機械工業(yè)發(fā)展的方向。</p><p> ?。?)在智能接口中的應用</p><p> 計算機系統,特別是較大型的工業(yè)測控系統中采用單片機進行接口的控制管理,單片機與主機并行工作,可大大提高系統的運行速度。例如,在大型數據采集系統中,用單片機對模/數轉換接口進行控制不僅可提高采集速度,還可以對數據進行預處理。如數字濾波、誤差修正、線性化處理等。&
52、lt;/p><p> (5)在人類生活中的應用</p><p> 單片機由于其價格低廉、體積小巧,被廣泛應用在人類生活的諸多場合,如洗衣機、電冰箱、空調器、電飯煲、視聽音響設備、大屏幕顯示系統、電子玩具、信用卡、樓宇防盜系統等。單片機將使人類的生活更加方便舒適,豐富多彩。</p><p> AT89C51的簡介 </p><p> AT8
53、9C51的結構 </p><p> 本系統以MCS-51單片機成員中的AT89C51為控制核心。AT89C51是美國ATMEL公司生產的低功耗,高性能CMOS 8位單片機,片內含4k bytes的可系統編程的Flash只讀程序內存,器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準8051指令系統及引腳。它集Flash程序內存既可在線編程(ISP)也可用傳統方法進行編程及通用8位微處理器于單片芯片中
54、,ATMEL公司的功能強大,低價位AT89C51單片機可為您提供許多高性價比的應用場合,它靈活應用于各種控制領域。</p><p> 其與MCS-51產品指令系統完全兼容,但性能有些自己的特征:</p><p> 4K字節(jié)在系統編程(ISP)Flash閃速內存;1000次擦寫周期;2568字節(jié)的內部RAM;3個16位定時/計數器;5個中斷源;全雙工串行UART通道;低功耗空閑和掉電模式
55、;中斷可從空閑模喚醒系統;看門狗(WDT)及雙數據指針</p><p> AT89C51的引腳介紹 </p><p> 1.電源引腳Vcc和GND </p><p> Vcc:電源電壓,GND:接地端。</p><p> 2.時鐘電路引腳XTALl和XTAL2</p><p> 2個時鐘引腳XTAL1、XTA
56、L2外接晶體與片內反相放大器構成了1個振蕩器,它為單片機提供了時鐘控制信號。2個時鐘引腳也可外接獨立的晶體振蕩器。</p><p> XTAL2:接外部晶體和微調電容的一端。在內它是振蕩電路反相放大器的輸出端,振蕩電路的頻率就是晶體的固有頻率。</p><p> XTAL 1:接外部晶體的微調電容的另一端。在片內它是振蕩電路反相放大器的輸入端。 </p><p>
57、; 3.控制信號引腳RST</p><p> RST是復位信號輸入端,高電平有效。當此輸入端保持兩個機器周期(24個時鐘振蕩周期)的高電平時,可以完成復位操作。</p><p> 4. I/O(輸入/輸出) P0、 P1、 P2和 P3</p><p> 標準51單片機都有4個I/O(輸入/輸出)口,分別為:</p><p> P0
58、口:P0口是一個漏極開路的8位雙向輸入輸出口。作為漏極八路的輸出端口,每次能驅動8個Ls型TTL負載。當P0口作為輸入口使用時,其先向鎖存器(地址80H)寫入全1,此時P0口的全部引腳懸空,叫作為高阻抗輸入。</p><p> P1口:P1口是一個帶上拉電阻的8位準雙向I/O端口每一位能驅動(吸收成輸出電流)4個LS型TTL負載。</p><p> 在P1口作為輸入口使用時,應先向P1
59、口鎖存器(地址90H)寫入全1,上拉電阻接成高電平。</p><p> P2口:P2口是一個帶內部上接電阻的8位準雙向輸入輸出口。P2口的每一位能驅動4個LS型TTL負載。</p><p> P3口:P3口是一個帶內部上接電阻的8位準雙向輸入輸出口。P3口的每一位能驅動(吸收或輸出電流)4個LS型TTL負載。P3口與其它的I/O口有很大區(qū)別,它除作為—般準雙向I/O口外,每個引腳還具有
60、專門的功能,見表3-1。</p><p> 表格 31 P3各引腳</p><p><b> 系統的硬件設計 </b></p><p><b> 輸入電路的設計</b></p><p> 此次設計用鍵盤實現輸入的方法。鍵盤在單片機應用系統中能實現向單片機輸入數據、傳送命令等功能,是人干預
61、計算機的主要手段。下面對鍵盤進行簡單的介紹</p><p><b> 鍵盤輸入 </b></p><p><b> 1.鍵盤輸入的特點</b></p><p> 鍵盤是標準的輸入設備,它實際上是一組按鍵開關的集合。通常,鍵盤開關利用了機械觸點的合、斷作用。</p><p> 2.鍵盤按鍵的確
62、認 </p><p> 鍵的閉合與否,反映在行線輸出電壓上就是呈現高電平或低電平,如果高電平表示鍵斷開,低電平表示鍵閉合,通過對行線電平的檢測,便可確認按鍵是否按下。</p><p> 圖 41 鍵閉合時的行線輸出電壓波形</p><p> 3.如何消除按鍵抖動 </p><p> 常用軟件來消除按鍵抖動。其基本思想是:每次要確認鍵
63、盤是否有鍵按下的時候,對鍵盤進行兩次掃描,兩次掃描具有一段時間間隔。如果掃描結果都為低電平,則說明鍵已按下;反之,則沒有鍵按下。</p><p> 鍵盤接口的工作原理 </p><p> 常見的鍵盤可分為獨立按鍵式鍵盤和行列掃描式鍵盤。由于步進電機所用的輸入較少,所以此次設計用獨立式鍵盤。</p><p> 獨立式鍵盤就是各鍵相互獨立,每個鍵各接一根輸入線,通
64、過檢測輸入線的電平可以很容易的判斷哪個鍵被按下。</p><p> 該設計就是用了獨立是鍵盤的特點,用鍵盤的輸入類似于一般按鈕,簡單便捷。設計用了兩個鍵盤鍵,分別表示所輸入的信號:正轉、反轉。注意:兩輸入信號都具有啟動功能。</p><p> AT89C51設計電路 </p><p> 89C51內部有4KB閃爍存儲器,芯片本身就是個最小系統。在能滿足系統的性
65、能要求下,可與先考慮采用此種方案。用89C51單片機構成最小應用系統時,只要將單片機接上時鐘電路和復位電路即可。</p><p> 圖 42 AT89C51的最小系統</p><p><b> 時鐘電路 </b></p><p> 時鐘電路用于產生單片機工作時所必需的時鐘控制信號。單片機內的各功能部件是以時鐘信號為基準的,有條不紊的
66、工作。因此,時鐘頻率直接影響單片機的速度。</p><p> 時鐘電路設計有兩種方式,一種是內部時鐘方式,另一種是外部時鐘方式。此次設計用的是內部時鐘方式:AT89C5內部有一個用于構成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。。在XTAL1和XTAL2引腳上外接定時元件,內部振蕩器就產生自激振蕩。定時元件通常采用石英晶體和微調電容組成的并聯諧振回路。晶體振蕩頻率可以在
67、1.2~12MHz之間選擇,電容值在5~30pF之間選擇。</p><p> 圖 43 內部時鐘振蕩器</p><p><b> 復位電路 </b></p><p><b> ?。?)復位操作</b></p><p> 復位是單片機的初始化操作,只需給MCS-51的復位引腳RST加上大于2
68、個機器周期(24個振蕩周期)的高電平就可以使MCS-51復位。復位時, PC初始化為0000H ,使單片機從0000H單元開始執(zhí)行程序。除了進入系統的正常初始化之外,當由于程序運行出錯或操作錯誤使系統處于死鎖狀態(tài)時,為擺脫困境,也需按復位鍵重新啟動。除PC之外,復位操作還對其他一些寄存器有影響,它們的復位狀態(tài)如表4-1</p><p> 表格 41 一些寄存器的復位狀態(tài)</p><p&g
69、t; 由于單片機內部的各個功能部件均受特殊功能寄存器控制,程序運行直接受程序計數器控制。表4-1中各寄存器復位時的狀態(tài)決定了單片機內部有關功能部件的初始狀態(tài)。</p><p><b> ?。?)復位電路</b></p><p> AT89C51的復位電路是由外部的復位電路來實現的。如圖4-4所示</p><p> 圖 44 AT89C
70、51的片內復位結構</p><p> 復位引腳通過施密特觸發(fā)器與復位電路相連,施密特觸發(fā)器用來抑制噪音,在每個機器周期的S5P2,施密特觸發(fā)器的輸出電平有復位電路采樣一次,然后才能得到內部操作所需要的信號。</p><p> 復位操作有上電自動復位相按鍵手動復位兩種方式。</p><p> 上電自動復位是通過外部復位電路的電容充電來實現的。這佯,只要電源Vcc
71、的上升時間不超過1ms,就可以實現自動上電復位。</p><p> 按鍵手動復位有電平方式和脈沖方式兩種。其中,電平復位是通過使復位端經電阻與Vcc電源接通而實現的;而按鍵脈沖復位則是利用RC微分電路產生的正脈沖來實現的。 </p><p> 此次設計采用的是按鍵電平復位電路,如圖4-5所示</p><p> 圖 45 按鍵復位電路</p>&
72、lt;p><b> 步進電機驅動電路 </b></p><p> 因為使用的是小型步進電機,對電壓和電流要求不是很高,為了說明應用原理,故采用最簡單的驅動電路,一般的驅動電路可以用圖4-6的形式。</p><p> 圖 46 一般驅動電路</p><p> 而在實際應用中一般驅動路數不止一路,用上圖的分立電路體積大,很多場合用現
73、成的集成電路作為多路驅動。常用的小型步進電機驅動電路可以用ULN2003或ULN2803。此次設計使用的是ULN2003。ULN2003是高壓大電流達林頓晶體管陣列系列產品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應于各類要求高速大功率驅動的系統。ULN2003A由7組達林頓晶體管陣列和相應的電阻網絡以及鉗位二極管網絡構成,具有同時驅動7組負載的能力,為單片雙極型大功率高速集成電路。</p><
74、p> 圖 47 ULN2003內部框圖及等效電路圖</p><p> ULN2003A型高壓大電流達林頓晶體管陣列電路的典型應用電路框圖如圖4-8所示。鉗位二極管用于保護線圈通斷時的反電動勢擊穿集成電路,可以看出,該電路的應用非常簡單。</p><p> 圖 48 ULN2003的應用驅動電路</p><p><b> 步進電機 <
75、;/b></p><p><b> 步進電機原理 </b></p><p> 步進電機是機電控制中一種常用的執(zhí)行機構,它的用途是將電脈沖轉化為角位移,它的的驅動電路根據控制信號工作,控制信號由單片機產生。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度,控制換相順序,即通電控制脈沖必須嚴格按照一定順序分別控制各相的通斷。通過控制
76、脈沖個數即可以控制角位移量,從而達到準確定位的目的??刂撇竭M電機的轉向,即給定工作方式正序換相通電,步進電機正轉,若按反序通電換相,則電機就反轉??刂撇竭M電機的速度,即給步進電機發(fā)一個控制脈沖,它就轉一步,再發(fā)一個脈沖,它會再轉一步,兩個脈沖的間隔越短,步進電機就轉得越快。同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。</p><p> 步進電機勵磁控制 </p><
77、;p> 步進電機有三線式、五線式、六線式3種,但其控制方式均相同,都必須以脈沖電流驅動。若每旋轉一圈以20個勵磁信號來計算,則每個勵磁信號前進18o,其旋轉角度與脈沖數成正比,正反轉可由脈沖順序來控制。</p><p> 步進電機的勵磁方式可分為全部勵磁及半步勵磁,全部勵磁又有1相勵磁及2相勵磁之分,而半步勵磁又稱1~2相勵磁。</p><p><b> ?。?)1相勵
78、磁</b></p><p> 在每一瞬間只有一個線圈導通。消耗電力小,準確度良好,但轉矩小,振動大,每送一勵磁信號可走18O。若以1相勵磁法控制步進電機正轉,其勵磁順序表見表4-2。</p><p> 若勵磁信號反向傳送,則步進電機反轉</p><p> 表格 42 勵磁順序A-B-C-D-A</p><p> (2)
79、2相勵磁法 </p><p> 在每一瞬間會有2個線圈同時導通。因其轉矩大,振動小,故為目前使用最多的勵磁方式,每送一勵磁信號可走18O。若以2相勵磁法控制步進電機正轉,其勵磁順序見表4-3。若勵磁信號反向傳送,則步進電機反轉</p><p> 表格 43 勵磁順序AB-BC-CD-DA-AB</p><p> ?。?)1~2相勵磁法</p>&
80、lt;p> 為1相與2相輪流交替導通。因分辨率提高,且運轉平滑,每送一勵磁信號可走90,故也被廣泛使用。若以1相勵磁法控制步進電機正轉,其勵磁順序見表4-4。若勵磁信號反向傳送,則步進電機反轉</p><p> 表格 44勵磁順序:A-AB-B-BC-C-CD-D-DA-A</p><p> 電動機的負載轉矩與速度成反比,速度越快負載轉矩越小,但速度快至其極限時,步進電機將不
81、再運轉。所以在每走一步后,程序必須延時一段時間。</p><p> 為了提高設計的分辨率,此次設計使用的是半步勵磁法。每送一勵磁信號,步進電機可走90,系統的軟件設計也按照此原理進行編程。</p><p><b> 系統的總體硬件電路</b></p><p> 如上所述,使用的是單片機AT89C51的最小系統:單片機采用的內部時鐘方式,晶
82、振的振蕩頻率為12MHZ,因此單片機的內部時鐘頻率為12MHZ;單片機采用按鍵電平復位電路,利用手動按鍵復位。</p><p> 單片機的外部輸入信號由鍵盤的按鍵實現輸入,鍵盤的按鍵接單片機的P0口,P0.0、P0.1分別代表正轉輸入、反轉按鍵。注意:P0口作輸出口使用時,必須外加上拉電阻。</p><p> 單片機的輸出由P1口(P1.0、P1.1、P1.2、P1.3)實現,與步進電
83、機驅動器ULN2003A的1B、2B、3B、4B對應相連。ULN2003的A端與步進電機的相位引腳相連,實現步進電機的驅動。</p><p><b> 硬件電路圖如下:</b></p><p> 圖 49 系統的硬件電路圖</p><p><b> 系統的軟件設計 </b></p><p>
84、<b> 系統的程序分析 </b></p><p> 本程序主要由鍵盤程序、步進電機驅動程序兩部份組成。主程序首先初始化各變量,步進電機驅動的A、B引腳均輸出低電平,然后調用鍵盤程序,并作判斷,判斷是正轉鍵還是反轉鍵按下,并調用相應步進電機驅動程序。</p><p> 通過鍵盤提供兩種控制信號,但由于鍵盤的按鍵輸出電壓是波動的,可采用軟件消抖動的方式。在第一次檢
85、測到有鍵按下時,該鍵對應的行線為低電平,執(zhí)行一段10ms的子程序后,確認該鍵是否為低電平,如果仍為低電平,則確認為有鍵按下。</p><p> 步進電機的驅動工作是通過步進電機的半步勵磁方式實現的,由前述分析,當正轉鍵按下時,步進電機應正轉90,為實現這一角度,我們按照表4-4的勵磁順序對步進電機進行控制。通過建立正轉模型,按順序循環(huán)將02H、06H、04H、0CH、08H、09H、01H、03H賦值給P1口,
86、這樣單片機的輸出信號可以驅動步進電機正轉;如果要實現步進電機的反轉,將正轉模型中的值按反向順序賦值給P1口,這樣單片機的輸出信號可以驅動步進電機的正轉。</p><p><b> 軟件流程圖 </b></p><p> 圖 51主程序流程圖</p><p><b> 鍵盤程序的設計 </b></p>
87、<p> 本設計使用的是獨立式鍵盤。我們對其進行軟件編程,采用軟件消抖的方法,以查詢工作方式檢測各鍵的狀態(tài)。當有且只有一鍵按下時才予以識別,如有兩個或多個鍵同時按下時將不予處理。S1表示正轉鍵,S2表示反轉鍵,相應的正轉處理程序LOOPZ、反轉處理程序LOOPN。</p><p><b> 鍵盤程序如下:</b></p><p><b>
88、KEY : </b></p><p> MOV A,P0 ;讀鍵盤狀態(tài)</p><p> ANL A ,#03H ;屏蔽 高6位</p><p> MOV R3,A ;保存鍵盤狀態(tài)</p><p> LCALL DELAY10 ;調用延時10m
89、s子程序,軟件區(qū)鍵盤抖動</p><p> MOV A,P0 ;再讀鍵盤狀態(tài)</p><p> ANL A,#03H ;屏蔽 高6位</p><p> CJNE A,R3,RETURN ;2次結果不一樣,說明是抖動引起的的</p><p> CJNE A,#01H,LOOPN ;
90、2次結果一樣,有鍵按下,S1未按下,轉FZ1</p><p> LJMP LOOPZ ;S1按下,轉S1鍵處理子程序LOOPZ</p><p><b> FZ1: </b></p><p> LJMP LOOPN ;S2按下,處理子程序LOOPN</p><p> RETURN:
91、RET ;重鍵或無鍵按下,從子程序中返回</p><p> DELAY10: MOV R7,#40</p><p> DEL1: MOV R6,#25</p><p> DEL2:DJNE R6,DEL2</p><p> DJNE R7,DEL1</p><p><
92、;b> RET</b></p><p><b> 步進電機驅動程序 </b></p><p><b> 驅動程序如下:</b></p><p><b> ORG00H</b></p><p> START:MOVDPTR,#TAB1<
93、/p><p> MOVR0,#03</p><p> MOVR4,#0</p><p> MOVP1,#3</p><p> WAIT:MOVP1,R0;初始角度,0度</p><p> MOVP0,#0FFH</p><p> JNBP0.0,POS
94、;判斷鍵盤狀態(tài)</p><p> JNBP0.1,NEG</p><p><b> SJMPWAIT</b></p><p> JUST:JBP0.1,NEG;首次按鍵處理</p><p> POS:MOVA,R4;正轉9度</p><p> MOVCA,
95、@A+DPTR</p><p><b> MOVP1,A</b></p><p> ACALL DELAY</p><p><b> INCR4</b></p><p><b> AJMPKEY</b></p><p> NEG:
96、MOVR4,#6;反轉9度</p><p><b> MOVA,R4</b></p><p> MOVC A,@A+DPTR</p><p> MOVP1, A</p><p> ACALL DELAY</p><p> AJMP KEY<
97、;/p><p><b> KEY : </b></p><p> MOV A,P0 ;讀鍵盤狀態(tài)</p><p> ANL A,#03H ;屏蔽 高6位</p><p> MOV R3,A ;保存鍵盤狀態(tài)</p><p>
98、 LCALL DELAY10 ;調用延時10ms子程序,軟件區(qū)鍵盤抖動</p><p> MOV A,P0 ;再讀鍵盤狀態(tài)</p><p> ANL A,#03H ;屏蔽 高6位</p><p> CJNE A,R3,RETURN ;2次結果不一樣,說明是抖動引起的的</p><p
99、> CJNE A,#01H,FZ1 ;2次結果一樣,有鍵按下,S1未按下,轉LOOPN</p><p> CJNER4,#8,LOOPZ;是結束標志</p><p> MOVR4,#0</p><p> RETURN: RET ;重鍵或無鍵按下,從子程序中返回</p><p> DELAY
100、10:MOV R7,#40</p><p> DEL1: MOV R6,#25</p><p> DEL2:DJNE R6,DEL2</p><p> DJNE R7,DEL1</p><p><b> RET</b></p><p> LOOPZ:MOVA,R4&
101、lt;/p><p> MOVCA,@A+DPTR</p><p> MOVP1,A;輸出控制脈沖</p><p> ACALL DELAY;程序延時</p><p> INCR4;地址加1</p><p><b> AJMPKEY</b></p>
102、<p> FZ1:JBP0.1,KEY</p><p> CJNER4,#255,LOOPF;是結束標志</p><p> MOVR4,#7</p><p> LOOPF:DECR4</p><p><b> MOVA,R4</b></p><p>
103、 MOVCA,@A+DPTR</p><p> MOVP1,A;輸出控制脈沖</p><p> ACALL DELAY;程序延時</p><p><b> AJMPKEY</b></p><p> DELAY:MOVR6,#5</p><p> DD1:
104、MOVR5,#080H</p><p> DD2:MOVR7,#0</p><p> DD3:DJNZR7,DD3</p><p> DJNZR5,DD2</p><p> DJNZR6,DD1</p><p><b> RET</b></p><p
105、> TAB1:DB02H,06H,04H,0CH</p><p> DB08H,09H,01H,03H;正轉模型資料</p><p><b> END</b></p><p><b> 電路的仿真</b></p><p><b> 仿真的介紹 </b&
106、gt;</p><p> 在設計過程中,由于一些硬件電路的局限性,或為了教學的方便,可通過用軟件的方式模擬硬件電路的運行,這就是電路的仿真。通過仿真,模擬硬件電路,從而更好的應用于硬件電路。</p><p> 此次設計通過Keil11與Proteus聯機進行仿真。</p><p> Proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機 CPU 的工作
107、情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調試時,關心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應用間脫節(jié)的矛盾和現象。</p><p> 利用Proteus和Keil的聯機,實現硬件軟件的結合,形成一個單片機的應用系統。它的資源充足,而且提供一定的實例
108、進行參考,為設計提供方便。</p><p><b> 仿真的過程 </b></p><p> ?。?)打開Keil,新建Keil項目,選擇AT89C51單片機作為CPU,新建匯編源文件,編寫程序,將其導入到“Source Group1”中。在“Option for Target”對話窗口中,選中“Output”選項卡中的“Create HEX File”選項和“
109、Debug”選項卡中的“Use:Proteus VSM Simular”選項。編譯匯編源程序,改正程序中的錯誤 </p><p> ?。?)在Proteus ISIS中,選中AT89C51并單擊鼠標左鍵,打開“Edit Component”對話窗口,設置單片機晶振頻率為12MHZ,在此窗口中的“Program File”欄中,選擇先前用Keil生成的HEX文件。在Proteus ISIS的菜單欄中選擇“File”
110、-“Save Design”選項,保存設計。在ProtreusISIS的菜單欄中,打開“Debug”下拉菜單,在菜單中選中“Use Remote Debug Monitor”選項,以支持與Keil的聯合調試。</p><p> (3)在Keil的菜單欄中選擇“Debug”-“Start/Stop Debug Session”選項,進入程序調試環(huán)境。按“F5”鍵,順序運行程序。調出“Proteus ISIS”界面
111、,按“正轉”和“反轉”按鍵,觀察步進電機的狀態(tài),如圖</p><p> 圖 61 仿真電路圖</p><p> 當軟件進入仿真狀態(tài)時,初始狀態(tài)如圖6-1,按下正轉鍵,步進電機正轉9o,驅動器ULN2003的引腳顯示燈按表4-4的順序所示,依次亮起。觀察亮燈次序。按下反轉鍵,步進電機反向轉動9o,驅動器ULN2003的引腳顯示燈按表4-4反順序亮起。通過仿真模擬的方式實現電動機的正反轉
112、。</p><p><b> 結束與展望 </b></p><p> 經過這幾個月的學習,我完成了我的畢業(yè)設計:基于AT89C51的步進電機控制。用單片機的可編程控制功能控制步進電機的正反轉。為了完成此次設計,我翻閱了許多關于單片機的介紹書籍,以及關于單片機硬件電路的設計的介紹。這些對我的畢業(yè)設計有著很大幫助,也使我對單片機有著更進一步的了解。此外我還翻閱了一
113、些外文文獻,對我的英語能力也有提高。這次畢業(yè)設計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統的鍛煉。主要依靠自己,在實踐中學習,在學習中實踐,學習了以往上課時不存學到的東西。</p><p> 以前的步進電機,是通過手動控制。而隨著科技不斷的發(fā)展,單片機在生產過程控制、自動檢測、數據采集與處理、科技計算、商業(yè)管理和辦公室自動化等方面獲得了廣泛的應用。它的發(fā)展迅速,已滲透到諸多學科的領域,以及人們生
114、活的各個方面。用單片機控制的步進電機,可以通過對程序的控制,來控制步進電機正反轉或實現其他功能。方便,快捷。</p><p> 雖然此次設計的功能很簡單,但是限于能力的約束,在電路設計、軟件編程等難免會出現許多不足的地方,希望老師能夠給予批評和指正,我必將努力改正和學習,爭取做出一篇優(yōu)秀的畢業(yè)設計。</p><p><b> 參考文獻 </b></p>
115、<p> [1] 張毅剛,彭喜元,董繼成.單片機原理及應用[M].北京:高等教育出版社,2003</p><p> [2] 張毅剛.MCS-51單片機應用設計[M].哈爾濱:哈爾濱工業(yè)大學出版社,1997</p><p> [3] 李廣弟.單片機基礎[M].北京:北京航天航空大學出版社,2001</p><p> [4] 姚惠林,段波. 應用于
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計----基于at89c51單片機的步進電機控制系統
- 基于at89c51單片機步進電機控制
- 畢業(yè)設計(論文)-基于at89c51單片機的步進電機控制系統
- 畢業(yè)設計(論文)-基于at89c51單片機的步進電機控制系統
- 畢業(yè)設計(論文)-基于at89c51單片機的步進電機控制系統
- 畢業(yè)設計(論文)-基于at89c51單片機的步進電機控制系統
- 課程設計--基于at89c51單片機控制步進電機
- 基于單片機at89c51系統的步進電機控制畢業(yè)論文
- 畢業(yè)論文--利用單片機at89c51控制步進電機
- 基于at89c51的頻率設計畢業(yè)設計
- 【畢業(yè)設計】基于89c51單片機的步進電機控制系統設計
- 基于at89c51單片機的電機控制綜合設計
- 【畢業(yè)設計】基于89c51單片機的步進電機控制系統設計
- 畢業(yè)設計---基于at89c51)子密碼鎖設計
- 基于at89c51的時鐘設計
- 畢業(yè)設計----運用at89c51單片機控制直流電機
- 基于at89c51的頻率設計
- 畢業(yè)設計---基于at89c51單片機溫度控制系統設計
- 畢業(yè)設計---基于at89c51的多路溫度巡回檢測系統
- 基于at89c51單片機的電機控制綜合課程設計
評論
0/150
提交評論