基于單片機的步進電機控制設計_第1頁
基于單片機的步進電機控制設計_第2頁
基于單片機的步進電機控制設計_第3頁
基于單片機的步進電機控制設計_第4頁
基于單片機的步進電機控制設計_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設計(論文)課 題 名 稱 基于單片機的步進電機控制設計 學 生 姓 名 學 號 系、年級專業(yè) 信息工程系電子信息工程專業(yè) 指 導 教 師 職 稱 講 師 2009年 5 月 22 日摘 要本論文主要介紹了基于單片機的步進電機控制的規(guī)則、硬件結(jié)構(gòu)、軟件代碼的編寫及工作原理、以及液晶模塊12864LCD的詳細介紹以及指令集。模擬出單片機系統(tǒng)下的步進電機轉(zhuǎn)速控制,具有任意轉(zhuǎn)速選擇、轉(zhuǎn)動時間、正反轉(zhuǎn)、加速和減速設置、系統(tǒng)低功耗、可實現(xiàn)在線調(diào)試等特點。本系統(tǒng)是以單片機為其控制核心,以有源晶振構(gòu)成的電路作為時鐘信號,通過鍵盤輸入選擇向單片機控制系統(tǒng)發(fā)出步進轉(zhuǎn)動控制命令,控制系統(tǒng)接收命令后做出一系列必

2、要的判斷后,控電機的轉(zhuǎn)速、轉(zhuǎn)向等。本設計已通過了實驗仿真,運行穩(wěn)定,達到了基本的設計要求。本設計要分為兩大塊:一塊為硬件電路組成部分,一塊為軟件程序設計部分。在硬件電路里主要包括有源晶振部分、鍵盤輸入控制部分、電機驅(qū)動電路及液晶顯示部分等與單片機的接線設計;軟件編程方面主要是子程序和主程序的編寫,包括:初始化代碼、液晶驅(qū)動代碼、時間記錄代碼、表格數(shù)據(jù)代碼等。關(guān)鍵詞:單片機;步進電機;12864LCD;指令集Abstract This thesis is mainly introduce the Prepared and working principles about regulation、s

3、tructure of hardware、software code of stepping motor control based on MCU as well as detail information and instruction set on LCD Module 12864LCD.This thesis also simulates that under the system of single-chip stepping motor speed control has the disadvantages of changing speed、time arbitrary、Posit

4、ive and negative transfer、installation of accelerated and deceleration、low-power system and online debugging. Single-chip as core of control and the circuit made up by active crystal as clock signal, the stepper motor speed control system starts to making a series of necessary judgment and then cont

5、rol rotate speed and change direction when it receive the command of stepper transfer control from single-chip control system by keyboard. As run steady, this project has already passed the simulation and has achieved the basic purpose. This project consists of two parties. One is hardware circuit a

6、nd the other is software programming. In the part of hardware circuit is include active crystal、control system of keyboard input 、system of motor drive circuit and liquid crystal system. In the second part, Design of connection of single-chip、software prepared is the mainly prepared of Subroutine an

7、d Main program including initialization code 、liquid drive code 、the timing of recording code form data code8.Key words: MCU;stepper motor;12864LCD;Instruction Set.目 錄摘 要IAbstractII第1章 緒論11.1 課題的來源11.2 課題研究的意義11.3 課題國內(nèi)研究現(xiàn)狀11.4 課題研究的目的和主要內(nèi)容2第2章 步進電機方案設計與分析3 2.1 方案提出32.2 可行性分析42.3 主要器件選擇4第3章 系統(tǒng)硬件設計63.

8、1 AMPIRE128*64液晶屏介紹63.2 HD61202及其指令集介紹73.3 晶振、復位、驅(qū)動電路93.4 液晶顯示屏與單片機接口電路113.5 控鍵與單片機接口電路11第4章 系統(tǒng)軟件設計134.1 電機流程圖134.2 液晶屏驅(qū)動代碼設計144.3 固定字符顯示代碼184.4 中斷子程序194.5 漢字表194.6 字符表224.7 延時子程序224.8 主函數(shù)程序23第5章 系統(tǒng)仿真255.1 Keil2編譯環(huán)境介紹255.2 Proteus 仿真平臺265.3 建立工程項目285.4 Proteus中原理圖的繪制及文件的加載325.5 開機界面顯示325.6 控制界面顯示335

9、.7 仿真結(jié)果分析及解決方法34 第6章 PCB板設計356.1加載網(wǎng)絡表及元件封裝356.2 PCB板參數(shù)設置366.3元件布局及布線設計38結(jié)束語40參考文獻41致 謝42附錄 總體電路圖43第1章 緒論1.1 課題的來源 步進電機作為執(zhí)行元件,是機電一體化的關(guān)鍵產(chǎn)品之一, 廣泛應用在各種自動化控制系統(tǒng)中。隨著微電子和計算機技術(shù)的發(fā)展,步進電機的需求量與日俱增,在各個國民經(jīng)濟領(lǐng)域都有應用。 步進電機廣泛應用在生產(chǎn)實踐的各個領(lǐng)域。它最大的應用是在數(shù)控機床的制造中,因為步進電機不需要A/D轉(zhuǎn)換,能夠直接將數(shù)字脈沖信號轉(zhuǎn)化成為角位移,所以被認為是理想的數(shù)控機床的執(zhí)行元件。早期的步進電機輸出轉(zhuǎn)矩比

10、較小,無法滿足需要,在使用中和液壓扭矩放大器一同組成液壓脈沖馬達。隨著步進電動機技術(shù)的發(fā)展,步進電動機已經(jīng)能夠單獨在系統(tǒng)上進行使用,成為了不可替代的執(zhí)行元件。比如步進電動機用作數(shù)控銑床進給伺服機構(gòu)的驅(qū)動電動機,在這個應用中,步進電動機可以同時完成兩個工作,其一是傳遞轉(zhuǎn)矩,其二是傳遞信息。步進電機也可以作為數(shù)控蝸桿砂輪磨邊機同步系統(tǒng)的驅(qū)動電動機。除了在數(shù)控機床上的應用,步進電機也可以并用在其他的機械上,比如作為自動送料機中的馬達,作為通用的軟盤驅(qū)動器的馬達,也可以應用在打印機和繪圖儀中。 步進電動機以其顯著的特點,在數(shù)字化制造時代發(fā)揮著重大的用途。伴隨著不同的數(shù)字化技術(shù)的發(fā)展以及步進電機本身技術(shù)

11、的提高,步進電機將會在更多的領(lǐng)域得到應用。1.2 課題研究的意義 對基于單片機控制的步進電機的轉(zhuǎn)速控制進行設計:一方面是對所學知識的綜合運用,可以更好地學習單片機的應用技術(shù),另一方面步進電機可以發(fā)揮其結(jié)構(gòu)簡單、可靠性高和成本低的特點。使用恰當?shù)臅r候,甚至可以和直流伺服電動機性能相媲美。1.3 課題國內(nèi)研究現(xiàn)狀 上個世紀就出現(xiàn)了步進電動機,它是一種可以自由回轉(zhuǎn)的電磁鐵,動作原理和今天的反應式步進電動機沒有什么區(qū)別,也是依靠氣隙磁導的變化來產(chǎn)生電磁轉(zhuǎn)矩。在本世紀初,由于資本主義列強爭奪殖民地,造船工業(yè)發(fā)展很快,同時也使得步進電動機的技術(shù)得到了長足的進步。到了80年代后,由于廉價的微型計算機以多功能

12、的姿態(tài)出現(xiàn),步進電動機的控制方式更加靈活多樣。原來的步進電機控制系統(tǒng)采用分立元件或者集成電路組成的控制回路,不僅調(diào)試安裝復雜,要消耗大量元器件,而且一旦定型之后,要改變控制方案就一定要重新設計電路。計算機則通過軟件來控制步進電機,更好地挖掘出電動機的潛力。因此,用計算機控制步進電機已經(jīng)成為了一種必然的趨勢,也符合數(shù)字化的時代趨勢。步進電機和普通電動機不同之處是步進電機接受脈沖信號的控制。步進電機靠一種叫環(huán)形分配器的電子開關(guān)器件,通過功率放大器使勵磁繞組按照順序輪流接通直流電源。由于勵磁繞組在空間中按一定的規(guī)律排列,輪流和直流電源接通后,就會在空間形成一種階躍變化的旋轉(zhuǎn)磁場,使轉(zhuǎn)子步進式的轉(zhuǎn)動,

13、隨著脈沖頻率的增高,轉(zhuǎn)速就會增大。步進電機的旋轉(zhuǎn)同時與相數(shù)、分配數(shù)、轉(zhuǎn)子齒輪數(shù)有關(guān)。 現(xiàn)在比較常用的步進電機包括反應式步進電機、永磁式步進電機、混合式步進電機和單相式步進電機等。其中反應式步進電機的轉(zhuǎn)子磁路由軟磁材料制成,定子上有多相勵磁繞組,利用磁導的變化產(chǎn)生轉(zhuǎn)矩?,F(xiàn)階段,反應式步進電機獲得最多的應用。1.4 課題研究的目的和主要內(nèi)容 本文針對步進電機控制的設計,首先介紹了選題的要求,之后詳細敘述了軟件和硬件的設計過程。 在時鐘脈沖的作用下,各個按鍵都能按照事先設定好的規(guī)則進行控制。確定鍵能使界面從初始化顯示切換到步進電機顯示界面,0-9十個數(shù)字鍵用來設置轉(zhuǎn)速,正轉(zhuǎn)和反轉(zhuǎn)控制電機的正反轉(zhuǎn)向,

14、加速和減速鍵用來控制轉(zhuǎn)速,以十轉(zhuǎn)為基本單位進行遞加或遞減,設置鍵可以設置轉(zhuǎn)向、精確的轉(zhuǎn)速、轉(zhuǎn)動時間,當設置完成是可以用啟動鍵啟動。 硬件部分是由中央處理器(AT89C51單片機),控制部分(獨立式按鍵系統(tǒng)),顯示部分(12864LCD液晶顯示模塊)組成的,驅(qū)動部分(L298芯片);軟件部分的主要內(nèi)容是通過對步進電機的控制、驅(qū)動程序進行編寫和調(diào)試以實現(xiàn)步進電機的功能。通過硬件和軟件調(diào)試,并針對問題分析修改后,步進電機系統(tǒng)可以穩(wěn)定運行。步進電機系統(tǒng)中各個部分之間通過數(shù)據(jù)的傳送最終完成了整個步進電機的運行、顯示和進行按鍵的功能。 最后論文對設計進行了總結(jié),對設計中可以進一步改善的地方提出了建議。第2

15、章 步進電機方案設計與分析2.1 方案提出方案一:采用基本電路以及相關(guān)芯片對步進電機進行控制。本設計選用PMM8713四相步進電機的脈沖分配器、SI7300A四相功率驅(qū)動器,組成四相步進電機的驅(qū)動電路,步進電機的控制框圖如圖2.2所示54:圖2.1 方案一框圖方案二:用單片機作為步進電機的核心控制器件,鍵盤調(diào)節(jié)轉(zhuǎn)速、時間等,液晶顯示當前狀態(tài)。系統(tǒng)框圖如圖2.2所示12:圖2.2 方案二框圖相較之下用單片機控制的步進電機要比采用基本電路控制的步進電機要簡單很多,在價格上單片機可能稍微高上少許,但用單片機后可以省下許多控制器件,這樣看來反而便宜一些了。另外,在大學中我們已經(jīng)系統(tǒng)的學習了單片機,對單

16、片機的應用編程比較熟悉。考慮到以上因素,采用了第二套方案。以下將會對所選方案的可行性和主要芯片的選擇做系統(tǒng)的介紹。2.2 可行性分析 現(xiàn)如今,步進電機廣泛應用在生產(chǎn)實踐的各個領(lǐng)域,隨著步進電動機技術(shù)的發(fā)展,步進電動機已經(jīng)能夠單獨在系統(tǒng)上進行使用,成為了不可替代的執(zhí)行元件。步進電機結(jié)構(gòu)簡單,但是這種簡單也是相對的,步進電機本身的代碼還是相當繁雜,它要執(zhí)行一系列指令才能正確的完成一個簡單的操作,才能按照設計者的意志工作。那么步進電機能否用單片機實現(xiàn)呢?答案是肯定的,現(xiàn)從以下幾個方面加以說明。 首先,我們設計的這個電機是一個功能相對比較簡單步進電機,不像其他的電機那樣功能復雜,它只要控制電機的轉(zhuǎn)速、

17、轉(zhuǎn)動時間及正反轉(zhuǎn)即可,對于實現(xiàn)這樣一個功能,程序不是太復雜,用一塊單片機足以達到目的。其次,它的控件也比較少只有10個數(shù)字鍵和6個控制功能鍵,這些控鍵在Proteus中用彈跳式按鍵代替即可。第三,電機的顯示相對比較小、畫面簡單,只有轉(zhuǎn)向、轉(zhuǎn)速、旋轉(zhuǎn)時間等幾個漢字,這些在一塊稍大的液晶屏上就足以顯示。第四,就編程語言方面來說,編寫這樣一個簡單的步進電機不需要什么高級的語言,C語言或匯編語言就足以完成,C語言是一種通用型的語言,編程靈活、可讀性強、移植性好;匯編語言是一種直接面向硬件的基礎(chǔ)語言,最接近機器語言,執(zhí)行速度快(本設計采用C語言編寫)。由以上幾點可知:用單片機設計步進電機在硬件和軟件兩個

18、方面都是可行的。2.3 主要器件選擇2.3.1 單片機的選擇 單片機的種類有很多:通用型單片機按位數(shù)分有4位機,8位機,16位機和32位機等等。按廠家分種類就更多,我國目前最常用的單片機有如下幾家:Intel 公司的(MCS51系列,MCS96系列);Atmel公司的(AT89系列,MCS51內(nèi)核);Microchip公司的(PIC系列);Motorola公司的(68HCXX系列);Zilog公司的(Z86系列);Philips公司的(87,80系列,MCS51內(nèi)核);Siemens公司的(SAB80系列,MCS51內(nèi)核);NEC公司的(78系列),每種單片機的都有不同,包括:I/O口個數(shù)、定

19、時/計數(shù)器個數(shù)、數(shù)據(jù)/程序存取區(qū)大小、中斷源個數(shù)、有無看門狗中斷、有無A/D轉(zhuǎn)化等等129。 基于本電機的設計只用到了不到20個I/O口;1個定時器斷。所以選擇了Atmel公司的AT89C51單片機。其參數(shù)如下:1、基于8051的全靜態(tài)CMOS工藝控制器;2、3級流水線指令執(zhí)行架構(gòu);3、32個I/O口;4、2個定時/計數(shù)器;5、6個中斷源;6、4K的閃存程序存儲器;7、128字節(jié)的片內(nèi)數(shù)據(jù)存取器。 由以上參數(shù)可知AT89C51單片機完全滿足設計要求,且在成本上較其他類型的單片機有優(yōu)勢。2.3.2 液晶屏的選擇 液晶屏的種類也有很多,我們經(jīng)常用到的液晶屏包括:AMPIRE128*64;LGM12

20、641BS1R;LM016L;LM020L;LM017L等等。 前兩種為不帶字庫的漢字、圖形點陣液晶屏,共64行,128列,能顯示4行8列32個16*16點陣漢字或4行16列64個16*8點陣字符或者最大128*64點陣圖形。也有帶字庫的12864,功能一樣。 后幾種則是帶字庫的字符點陣,不能顯示圖形。LM016L為能顯示2行16列32個字符的液晶屏;LM020L為能顯示1行16列16個字符的液晶屏;LM017L為能顯示2行32列16個字符的液晶屏。 由以上介紹可知,AMPIRE128*64液晶顯示模塊表示橫向有128點,縱向有64點,可顯示16*16中文字4行,每行8個字,很明顯,這塊液晶屏

21、滿足步進電機設計的顯示要求,大小也合適。如轉(zhuǎn)速顯示、時間顯示等,完全滿足設計要求。這塊液晶和以上的很不一樣,它基于T6963C內(nèi)核,引腳更多,功能更復雜,指令集也更多(這些相關(guān)內(nèi)容將在下一章具體介紹)123。第3章 系統(tǒng)硬件設計 本部分內(nèi)容包括介紹AMPIRE128*64及其引腳功能;介紹T6963C指令集;晶振電路、復位電路的硬件設計;控件及按鍵電路設計,最后給出步進電機仿真的整體硬件電路圖,接下來是具體的說明156。3.1 AMPIRE128*64液晶屏介紹 AMPIRE128*64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模

22、塊;其顯示分辨率為128×64, 內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字。也可完成圖形顯示。低電壓低功耗是其又一顯著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊,其在Proteus中的元器件圖形如下6: 圖3.1 AMPIRE128*64各引腳的功能描敘如下表 表3.1 AMPIRE128*64引腳功能表 引腳序列

23、引腳名稱引腳功能描述1CS1片選擇,1有效2CS2片選擇,1有效3GND地引腳,接地4VCC功能不詳,在電路連接時懸空5V0對比度調(diào)節(jié),輸入電壓 -0 -10V6RSRS=1 時DATA為顯示數(shù)據(jù); RS=0 時DATA為指令數(shù)據(jù)7RWRW=1為讀LCD內(nèi)部數(shù)據(jù);RW=0是寫數(shù)據(jù) 到LCD8ERW=0、E時LCD對RS和數(shù)據(jù)DATA進行取樣和執(zhí)行;RW=1、RS0、E時LCD輸出數(shù)據(jù)到DATA916D0D7數(shù)據(jù)引腳,用于液晶屏與單片機之間的數(shù)據(jù)通信17RST復位引腳,低電平有效,起復位作用,器件內(nèi)部集成了上拉電阻,正常工作時此引腳接電源18-Vout負壓輸出(-10V)3.2 HD61202及

24、其指令集介紹3.2.1 HD61202 HD61202及其兼容液晶顯示控制驅(qū)動器,是一種帶有驅(qū)動輸出的圖形液晶顯示控制器。它可直接與8 位微處理器相聯(lián),可與HD61203配合,對液晶屏進行行列驅(qū)動。內(nèi)藏64×64 = 4096位顯示RAM,RAM中每位數(shù)據(jù)對應LCD屏上一個點的亮、暗狀態(tài);HD61202及其兼容控制驅(qū)動器是列驅(qū)動器,具有64路列驅(qū)動輸出;讀、寫操作時序與68系列微處理器相符,因此它可直接與68系列微處理器接口相聯(lián);占空比為1/32-1/64。該器件支持非常廣泛的字符格式,液晶顯示器允許通過編程設置選擇不同的組合。它可以用于文字,圖形和結(jié)合文本模式及其他各種屬性的功能。

25、3.2.2 HD61202指令集 HD61202及其兼容控制驅(qū)動器的指令系統(tǒng)比較簡單總共只有七種現(xiàn)在分別介紹如下;(1)顯示開/關(guān)指令R/W D/1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 1 1 1 1/0 當DB0=1時,LCD顯示RAM中的內(nèi)容; 當DB0=0時,顯示關(guān)閉。(2)顯示起始行(ROW)設置指令R/W D/1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 1 顯示起始行(063) 該指令設置了對應液晶顯示屏最上一行的顯示RAM的行號,有規(guī)律的改變顯示起始行,可以使LCD實現(xiàn)顯示滾動效果。(3)頁(P

26、age)設置指令R/W D/1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 0 1 1 1 頁號(07) 顯示RAM共64行,分8頁,每頁8行。(4)列地址(Y Address)設置指令R/ D/1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 1 顯示列地址(063) 設置了頁地址和列地址,就唯一確定了RAM中的一個單元,這樣MPU就可以讀、寫指令,讀出該單元中的內(nèi)容或向該單元寫進一個字節(jié)數(shù)據(jù)。(5)讀狀態(tài)指令R/W D/1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 B USY 0 ON/OFF RE

27、ST 0 0 0 0 該指令用來查詢HD61202及其控制驅(qū)動器的狀態(tài),各參量含義如下; BUSY: 內(nèi)部在工作0,正常狀態(tài)1; ON/OFF: 顯示關(guān)閉0,顯示打開1; REST: 復位狀態(tài)0,正常狀態(tài)1。 在BUSY和REST狀態(tài)是,除讀狀態(tài)指令外,其他指令均不對HD61202及其兼容控制驅(qū)動器產(chǎn)生作用。 在對HD61202及其兼容控制驅(qū)動器操作之前,要查詢BUSY狀態(tài),以確定是否隊HD61202及其兼容控制驅(qū)動器進行操作。(6)寫數(shù)據(jù)指令R/W D/1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 1 寫 數(shù) 據(jù)(7)讀數(shù)據(jù)指令R/W D/1 DB7 DB6 DB5

28、 DB4 DB3 DB2 DB1 DB0 1 0 讀 顯 示 數(shù) 據(jù) 讀、寫指令每執(zhí)行一次讀、寫操作,列地址就自動增1。必須注意的是,進行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數(shù)據(jù)。3.3 晶振、復位、驅(qū)動電路3.3.1 晶振電路 單片機的晶振電路如圖3.2所示,其中XTAL1和XTAL2分別為片內(nèi)振蕩電路的輸入輸出端。一般電容取2047uF,本系統(tǒng)晶體的振蕩頻率為12MHz。晶振電路產(chǎn)生的振蕩脈沖經(jīng)過內(nèi)部觸發(fā)器進行二分頻后,成為單片機的時鐘脈沖信號,為單片機提供一個基本時鐘信號。 圖3.2 晶振電路3.3.2 復位電路 復位操作是單片機的基本操作,單片機在進入運行

29、前和在運行過程中程序出錯或操作失誤使系統(tǒng)不能正常運行時,需要進行復位操作,復位操作后,程序?qū)?000H開始重新執(zhí)行。 復位信號從單片機的RST引腳輸入,復位操作有上電自動復位、按鍵電平復位和外部脈沖復位三種方式,本電路采用了按鍵電平復位,電路圖如圖3.3所示: 圖3.3 復位電路3.3.3 電機驅(qū)動電路 步進電動機是一種將電脈沖信號轉(zhuǎn)換成角位移或線位移的精密執(zhí)行元件,由于步進電機具有控制方便、體積小等特點,所以在數(shù)控系統(tǒng)、自動生產(chǎn)線、自動化儀表、繪圖機和計算機外圍設備中得到廣泛應用。微電子學的迅速發(fā)展和微型計算機的普及與應用,為步進電動機的應用開辟了廣闊前景,使得以往用硬件電路構(gòu)成的龐大復雜

30、的控制器得以用軟件實現(xiàn),既降低了硬件成本又提高了控制的靈活性,可靠性及多功能性。市場上有很多現(xiàn)成的步進電機控制機構(gòu),但價格都偏高。應用SGS公司推出的L298芯片可方便的組成步進電機驅(qū)動器,并結(jié)合AT89C51單片機進行控制,即可以實現(xiàn)用相對便宜的價格組成一個性能不錯的步進電機驅(qū)動電路。 圖3.4 電機驅(qū)動電路3.4 液晶顯示屏與單片機接口電路 液晶顯示屏共有18個引腳,其中VCC、RST接電源,GND三腳接地,CS1、CS2兩腳分別接P2.4、P2.3,DB0DB7分別與單片機P0.0P0.7相連接,RW與P2.1腳相連,RS與P2.0腳相連,E與P2.2腳相連,V0滑動變阻器,電如圖見圖3

31、.5所示: 圖3.5 LCD與單片機接口3.5 控鍵與單片機接口電路 本設計共有16個控件,分別是:0-9十個數(shù)字鍵用來設置轉(zhuǎn)速,正轉(zhuǎn)和反轉(zhuǎn)鍵控制電機的正反轉(zhuǎn)向,加速和減速鍵用來控制轉(zhuǎn)速,以十轉(zhuǎn)為基本單位進行遞加或遞減,設置鍵可以設置轉(zhuǎn)向、精確的轉(zhuǎn)速、轉(zhuǎn)動時間,當設置完成是可以用啟動鍵啟動。K1K8分別與P1.0P1.7相接,鍵盤如圖3.6所示:圖3.6 鍵盤接口第4章 系統(tǒng)軟件設計 本部分主要介紹步進電機控制的軟件部分設計,包括電機流程圖、液晶屏驅(qū)動代碼設計、初始化代碼設計、電機時間代碼設計、數(shù)據(jù)表格設計等幾個方面,現(xiàn)就對這幾個方面做具體分析。4.1 電機流程圖4.1.1 液晶驅(qū)動程序調(diào)用規(guī)

32、則流程圖 本設計用到了液晶AMPIRE128*64,勢必用到驅(qū)動代碼,包括讀狀態(tài)函數(shù);寫指令函數(shù);讀數(shù)據(jù)函數(shù);寫數(shù)據(jù)函數(shù);自動讀寫函數(shù);顯示漢字、字符函數(shù)等等,現(xiàn)以流程圖的形式給出其互相調(diào)用規(guī)則(A函數(shù)指向B函數(shù),表示B調(diào)用了A)。 圖4.1 液晶驅(qū)動調(diào)用4.1.2 主函數(shù)流程圖 在主函數(shù)的運行過程中,程序會隨著啟動鍵的按下進入主循環(huán)而不斷地掃描鍵盤,判斷是否有鍵按下,再調(diào)用相關(guān)函數(shù)做相應的處理,同時一個定時器中斷有條件開啟,在中斷到來時響應中斷,執(zhí)行相關(guān)的中斷操作,流程圖如下: 圖4.2 主函數(shù)調(diào)用4.2 液晶屏驅(qū)動代碼設計4.2.1 判斷忙指令void Busy()DI=0;RW=1;do

33、 DB=0xff; E=1; DB&=0x80; E=0; while(DB!=0);4.2.2 寫指令程序void Write_com( unsigned char com)Busy();DI=0;RW=0;E=1;DB=com;E=0;4.2.3 寫數(shù)據(jù)程序void Write_dat(unsigned char dat)Busy();DI=1;RW=0;E=1;DB=dat;E=0;4.2.4 寫漢字程序void Han_Zi(bit m,unsigned char page,unsigned char row,unsigned char n)unsigned char i,j;

34、if(m) CS1=0; CS2=1; else CS1=1; CS2=0; for(j=0;j<2;j+) Write_com(page+0xb8+j); Write_com(row+0x40); for(i=0;i<16;i+) Write_dat(Tab1n16*j+i); 4.2.5 寫字符程序void Zi_Fu(bit m,unsigned char page,unsigned char row,unsigned char n)unsigned char i,j;if(m) CS1=0; CS2=1; else CS1=1; CS2=0; for(j=0;j<2;

35、j+) Write_com(page+0xb8+j); Write_com(row+0x40); for(i=0;i<8;i+) Write_dat(Tab2n8*j+i); 4.2.6 清屏程序void Clear()unsigned char i,j;CS1=1;CS2=0;for(j=0;j<8;j+) Write_com(0xb8+j); Write_com(0x40); for(i=0;i<64;i+) Write_dat(0); CS1=0; CS2=1; for(j=0;j<8;j+) Write_com(0xb8+j); Write_com(0x40);

36、 for(i=0;i<64;i+) Write_dat(0); 4.2.7 初始化程序void Init()CS1=1;CS2=0;Write_com(0xc0);/設置起始行為第一行Write_com(0x3f);/開顯示關(guān)顯示為0x3eCS1=0;CS2=1;Write_com(0xc0);Write_com(0x3f);4.3 固定字符顯示代碼Han_Zi(0,2,16,0);Han_Zi(0,2,32,1);Han_Zi(0,2,48,2);Han_Zi(1,2,0,3);Zi_Fu(1,2,16,11);Han_Zi(0,4,16,1);Han_Zi(0,4,32,6);Zi_

37、Fu(0,4,48,11);Han_Zi(0,4,0,9);Zi_Fu(1,2,16,11);Han_Zi(0,6,16,0);Han_Zi(0,6,32,1);Han_Zi(0,6,48,10);Han_Zi(1,6,0,11);Zi_Fu(1,2,16,11);Zi_Fu(1,6,16,11);Zi_Fu(1,4,32,0);Han_Zi(1,4,24,1);Zi_Fu(1,4,40,10);Han_Zi(1,4,48,12);Zi_Fu(0,4,56,1);Zi_Fu(1,4,0,5);Zi_Fu(1,4,8,0);4.4 中斷子程序void t0() interrupt 1 using

38、 0TH0=15536/256;TL0=15536%256;b+;if(b=1) b=0; a+; if(a=8)a=0; P3=Tab3a; 4.5 漢字表unsigned char code Tab132=/- 旋 -0 0x08,0x08,0xF9,0x4E,0x48,0xCC,0x28,0x10, 0x2F,0x24,0xE4,0x24,0x24,0xA6,0x64,0x00, 0x40,0x30,0x0F,0x20,0x40,0xBF,0x40,0x20, 0x1F,0x20,0x7F,0x84,0x86,0xC4,0x40,0x00,/- 轉(zhuǎn) -1 0x08,0xC8,0xB8,0

39、x8F,0xE8,0x88,0x40,0x48, 0xC8,0x7F,0x48,0x48,0x4C,0x68,0x40,0x00, 0x08,0x18,0x08,0x04,0xFF,0x04,0x00,0x02, 0x13,0x22,0x62,0x9A,0x06,0x02,0x00,0x00,/- 方 -2 0x10,0x10,0x10,0x10,0x10,0xF1,0x92,0x96, 0x90,0x90,0x90,0xD0,0x90,0x18,0x10,0x00, 0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x00, 0x40,0x80,0x40,0x3F,0x

40、00,0x00,0x00,0x00,/- 向 -3 0x00,0xF8,0x08,0x08,0xCC,0x4A,0x49,0x48, 0x48,0x48,0xE8,0x48,0x08,0xFC,0x08,0x00, 0x00,0xFF,0x00,0x00,0x1F,0x08,0x08,0x08, 0x08,0x08,0x1F,0x40,0x80,0x7F,0x00,0x00,/- 正 -4 0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0xFE, 0x82,0x82,0x82,0xC2,0x83,0x02,0x00,0x00, 0x40,0x40,0x40,0x7F,0

41、x40,0x40,0x40,0x7F, 0x40,0x40,0x40,0x40,0x40,0x60,0x40,0x00,/- 反 -5 0x00,0x00,0xFC,0x24,0x24,0xE4,0x24,0x24, 0x24,0x22,0x22,0xA3,0x62,0x00,0x00,0x00, 0x40,0x30,0x0F,0x80,0x80,0x40,0x23,0x14, 0x08,0x14,0x22,0x21,0x40,0xC0,0x40,0x00,/- 速 -6 0x40,0x42,0x44,0xCC,0x00,0xF4,0x94,0x94, 0x94,0xFF,0x94,0x94,

42、0x94,0xF6,0x04,0x00, 0x00,0x40,0x20,0x1F,0x20,0x51,0x48,0x44, 0x42,0x7F,0x42,0x44,0x4C,0x61,0x20,0x00,/- 度 -7 0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0xA5, 0xA6,0xA4,0xFC,0x24,0x34,0x26,0x04,0x00, 0x40,0x20,0x9F,0x80,0x42,0x42,0x26,0x2A, 0x12,0x2A,0x26,0x42,0x40,0xC0,0x40,0x00,/- 分 -8 0x00,0x80,0x40,0x20

43、,0x98,0x86,0x80,0x80, 0x83,0x8C,0x90,0x20,0xC0,0x80,0x80,0x00, 0x01,0x00,0x80,0x40,0x20,0x1F,0x00,0x40, 0x80,0x40,0x3F,0x00,0x00,0x01,0x00,0x00,/- -> -9 0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0, 0xD8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00, 0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07, 0x37,0x1F,0x0F,0x07,0

44、x03,0x01,0x00,0x00,/- 時 -10 0x00,0xFC,0x84,0x84,0x84,0xFE,0x14,0x10, 0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x00, 0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00, 0x00,0x23,0x40,0x80,0x7F,0x00,0x00,0x00,/- 間 -11 0x00,0xF8,0x01,0x02,0xF6,0x10,0x12,0x12, 0x12,0x12,0xFA,0x12,0x02,0xFF,0x02,0x00, 0x00,0xFF,0x00,0x0

45、0,0x3F,0x11,0x11,0x11, 0x11,0x11,0x3F,0x40,0x80,0x7F,0x00,0x00,/- 分 - 0x00,0x80,0x40,0x20,0x98,0x86,0x80,0x80, 0x83,0x8C,0x90,0x20,0xC0,0x80,0x80,0x00, 0x01,0x00,0x80,0x40,0x20,0x1F,0x00,0x40, 0x80,0x40,0x3F,0x00,0x00,0x01,0x00,0x00,;4.6 字符表unsigned char code Tab216= 0xF0,0xF8,0x0C,0x04,0x04,0x0C,0x

46、F8,0xF0, / -0- 0x0F,0x1F,0x30,0x20,0x20,0x30,0x1F,0x0F, 0x00,0x00,0x08,0xF8,0xFC,0x00,0x00,0x00, / -1- 0x00,0x00,0x20,0x3F,0x3F,0x20,0x00,0x00, 0x30,0x38,0x0C,0x04,0x04,0x0C,0xF8,0xF0, / -2- 0x20,0x30,0x38,0x2C,0x26,0x23,0x21,0x38, 0x10,0x18,0x0C,0x84,0x84,0xCC,0x78,0x30, / -3- 0x08,0x18,0x30,0x20,0

47、x20,0x31,0x1F,0x0E, 0x00,0xC0,0x70,0x18,0xFC,0xFE,0x00,0x00, / -4- 0x07,0x05,0x04,0x24,0x3F,0x3F,0x24,0x04, 0xFC,0xFC,0xC4,0x44,0x44,0xC4,0x84,0x04, / -5- 0x08,0x18,0x30,0x20,0x20,0x30,0x1F,0x0F, 0xF0,0xF8,0x8C,0x44,0x44,0xCC,0x98,0x10, / -6- 0x0F,0x1F,0x30,0x20,0x20,0x30,0x1F,0x0F, 0x1C,0x0C,0x0C,0

48、x0C,0xCC,0xEC,0x3C,0x1C, / -7- 0x00,0x00,0x3C,0x3F,0x03,0x00,0x00,0x00, 0x30,0x78,0xCC,0x84,0x84,0xCC,0x78,0x30, / -8- 0x0E,0x1F,0x31,0x20,0x20,0x31,0x1F,0x0E, 0xF0,0xF8,0x0C,0x04,0x04,0x0C,0xF8,0xF0, / -9- 0x08,0x19,0x33,0x22,0x22,0x33,0x1F,0x0F, 0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x00, / -/- 0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00, / -:- 0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,;4.7 延時子程序void delay10ms()unsigned char a,b,c;for(a=0;a<5;a+)for(b=0;b&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論