基于單片機(jī)的步進(jìn)電機(jī)控制設(shè)計(jì)_第1頁
基于單片機(jī)的步進(jìn)電機(jī)控制設(shè)計(jì)_第2頁
基于單片機(jī)的步進(jìn)電機(jī)控制設(shè)計(jì)_第3頁
基于單片機(jī)的步進(jìn)電機(jī)控制設(shè)計(jì)_第4頁
基于單片機(jī)的步進(jìn)電機(jī)控制設(shè)計(jì)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計(jì)課 題 名 稱 基于單片機(jī)的步進(jìn)電機(jī)控制設(shè)計(jì) 摘 要本論文主要介紹了基于單片機(jī)的步進(jìn)電機(jī)控制的規(guī)則、硬件結(jié)構(gòu)、軟件代碼的編寫及工作原理、以及液晶模塊12864LCD的詳細(xì)介紹以及指令集。模擬出單片機(jī)系統(tǒng)下的步進(jìn)電機(jī)轉(zhuǎn)速控制,具有任意轉(zhuǎn)速選擇、轉(zhuǎn)動(dòng)時(shí)間、正反轉(zhuǎn)、加速和減速設(shè)置、系統(tǒng)低功耗、可實(shí)現(xiàn)在線調(diào)試等特點(diǎn)。本系統(tǒng)是以單片機(jī)為其控制核心,以有源晶振構(gòu)成的電路作為時(shí)鐘信號(hào),通過鍵盤輸入選擇向單片機(jī)控制系統(tǒng)發(fā)出步進(jìn)轉(zhuǎn)動(dòng)控制命令,控制系統(tǒng)接收命令后做出一系列必要的判斷后,控電機(jī)的轉(zhuǎn)速、轉(zhuǎn)向等。本設(shè)計(jì)已通過了實(shí)驗(yàn)仿真,運(yùn)行穩(wěn)定,達(dá)到了基本的設(shè)計(jì)要求。本設(shè)計(jì)要分為兩大塊:一塊為硬件電路組成部分,

2、一塊為軟件程序設(shè)計(jì)部分。在硬件電路里主要包括有源晶振部分、鍵盤輸入控制部分、電機(jī)驅(qū)動(dòng)電路及液晶顯示部分等與單片機(jī)的接線設(shè)計(jì);軟件編程方面主要是子程序和主程序的編寫,包括:初始化代碼、液晶驅(qū)動(dòng)代碼、時(shí)間記錄代碼、表格數(shù)據(jù)代碼等。關(guān)鍵詞:單片機(jī);步進(jìn)電機(jī);12864LCD;指令集Abstract This thesis is mainly introduce the Prepared and working principles about regulation、structure of hardware、software code of stepping motor control based

3、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、Positive and negative transfer、installation of accelerated and decelerat

4、ion、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 control rotate speed and change direction when it receive the command o

5、f 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 and the other is software programming. In the part of hardware circu

6、it 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 and Main program including initialization code 、liquid drive code 、th

7、e 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章 步進(jìn)電機(jī)方案設(shè)計(jì)與分析3 2.1 方案提出32.2 可行性分析42.3 主要器件選擇4第3章 系統(tǒng)硬件設(shè)計(jì)63.1 AMPIRE128*64液晶屏介紹63.2 HD61202及其指令集介紹73.3 晶振、復(fù)位、驅(qū)動(dòng)電路93.4 液晶顯示屏與單片機(jī)

8、接口電路113.5 控鍵與單片機(jī)接口電路11第4章 系統(tǒng)軟件設(shè)計(jì)134.1 電機(jī)流程圖134.2 液晶屏驅(qū)動(dòng)代碼設(shè)計(jì)144.3 固定字符顯示代碼184.4 中斷子程序194.5 漢字表194.6 字符表224.7 延時(shí)子程序224.8 主函數(shù)程序23第5章 系統(tǒng)仿真255.1 Keil2編譯環(huán)境介紹255.2 Proteus 仿真平臺(tái)265.3 建立工程項(xiàng)目285.4 Proteus中原理圖的繪制及文件的加載325.5 開機(jī)界面顯示325.6 控制界面顯示335.7 仿真結(jié)果分析及解決方法34 第6章 PCB板設(shè)計(jì)35356.2 PCB板參數(shù)設(shè)置3638結(jié)束語40參考文獻(xiàn)41致 謝42附錄 總

9、體電路圖43第1章 緒論 課題的來源 步進(jìn)電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一, 廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)中。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個(gè)國民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。 步進(jìn)電機(jī)廣泛應(yīng)用在生產(chǎn)實(shí)踐的各個(gè)領(lǐng)域。它最大的應(yīng)用是在數(shù)控機(jī)床的制造中,因?yàn)椴竭M(jìn)電機(jī)不需要A/D轉(zhuǎn)換,能夠直接將數(shù)字脈沖信號(hào)轉(zhuǎn)化成為角位移,所以被認(rèn)為是理想的數(shù)控機(jī)床的執(zhí)行元件。早期的步進(jìn)電機(jī)輸出轉(zhuǎn)矩比較小,無法滿足需要,在使用中和液壓扭矩放大器一同組成液壓脈沖馬達(dá)。隨著步進(jìn)電動(dòng)機(jī)技術(shù)的發(fā)展,步進(jìn)電動(dòng)機(jī)已經(jīng)能夠單獨(dú)在系統(tǒng)上進(jìn)行使用,成為了不可替代的執(zhí)行元件。比如步進(jìn)電動(dòng)機(jī)用作數(shù)控銑床進(jìn)給伺

10、服機(jī)構(gòu)的驅(qū)動(dòng)電動(dòng)機(jī),在這個(gè)應(yīng)用中,步進(jìn)電動(dòng)機(jī)可以同時(shí)完成兩個(gè)工作,其一是傳遞轉(zhuǎn)矩,其二是傳遞信息。步進(jìn)電機(jī)也可以作為數(shù)控蝸桿砂輪磨邊機(jī)同步系統(tǒng)的驅(qū)動(dòng)電動(dòng)機(jī)。除了在數(shù)控機(jī)床上的應(yīng)用,步進(jìn)電機(jī)也可以并用在其他的機(jī)械上,比如作為自動(dòng)送料機(jī)中的馬達(dá),作為通用的軟盤驅(qū)動(dòng)器的馬達(dá),也可以應(yīng)用在打印機(jī)和繪圖儀中。 步進(jìn)電動(dòng)機(jī)以其顯著的特點(diǎn),在數(shù)字化制造時(shí)代發(fā)揮著重大的用途。伴隨著不同的數(shù)字化技術(shù)的發(fā)展以及步進(jìn)電機(jī)本身技術(shù)的提高,步進(jìn)電機(jī)將會(huì)在更多的領(lǐng)域得到應(yīng)用。1.2 課題研究的意義 對(duì)基于單片機(jī)控制的步進(jìn)電機(jī)的轉(zhuǎn)速控制進(jìn)行設(shè)計(jì):一方面是對(duì)所學(xué)知識(shí)的綜合運(yùn)用,可以更好地學(xué)習(xí)單片機(jī)的應(yīng)用技術(shù),另一方面步進(jìn)電機(jī)

11、可以發(fā)揮其結(jié)構(gòu)簡單、可靠性高和成本低的特點(diǎn)。使用恰當(dāng)?shù)臅r(shí)候,甚至可以和直流伺服電動(dòng)機(jī)性能相媲美。 課題國內(nèi)研究現(xiàn)狀 上個(gè)世紀(jì)就出現(xiàn)了步進(jìn)電動(dòng)機(jī),它是一種可以自由回轉(zhuǎn)的電磁鐵,動(dòng)作原理和今天的反應(yīng)式步進(jìn)電動(dòng)機(jī)沒有什么區(qū)別,也是依靠氣隙磁導(dǎo)的變化來產(chǎn)生電磁轉(zhuǎn)矩。在本世紀(jì)初,由于資本主義列強(qiáng)爭奪殖民地,造船工業(yè)發(fā)展很快,同時(shí)也使得步進(jìn)電動(dòng)機(jī)的技術(shù)得到了長足的進(jìn)步。到了80年代后,由于廉價(jià)的微型計(jì)算機(jī)以多功能的姿態(tài)出現(xiàn),步進(jìn)電動(dòng)機(jī)的控制方式更加靈活多樣。原來的步進(jìn)電機(jī)控制系統(tǒng)采用分立元件或者集成電路組成的控制回路,不僅調(diào)試安裝復(fù)雜,要消耗大量元器件,而且一旦定型之后,要改變控制方案就一定要重新設(shè)計(jì)電路

12、。計(jì)算機(jī)則通過軟件來控制步進(jìn)電機(jī),更好地挖掘出電動(dòng)機(jī)的潛力。因此,用計(jì)算機(jī)控制步進(jìn)電機(jī)已經(jīng)成為了一種必然的趨勢,也符合數(shù)字化的時(shí)代趨勢。步進(jìn)電機(jī)和普通電動(dòng)機(jī)不同之處是步進(jìn)電機(jī)接受脈沖信號(hào)的控制。步進(jìn)電機(jī)靠一種叫環(huán)形分配器的電子開關(guān)器件,通過功率放大器使勵(lì)磁繞組按照順序輪流接通直流電源。由于勵(lì)磁繞組在空間中按一定的規(guī)律排列,輪流和直流電源接通后,就會(huì)在空間形成一種階躍變化的旋轉(zhuǎn)磁場,使轉(zhuǎn)子步進(jìn)式的轉(zhuǎn)動(dòng),隨著脈沖頻率的增高,轉(zhuǎn)速就會(huì)增大。步進(jìn)電機(jī)的旋轉(zhuǎn)同時(shí)與相數(shù)、分配數(shù)、轉(zhuǎn)子齒輪數(shù)有關(guān)。 現(xiàn)在比較常用的步進(jìn)電機(jī)包括反應(yīng)式步進(jìn)電機(jī)、永磁式步進(jìn)電機(jī)、混合式步進(jìn)電機(jī)和單相式步進(jìn)電機(jī)等。其中反應(yīng)式步進(jìn)電機(jī)

13、的轉(zhuǎn)子磁路由軟磁材料制成,定子上有多相勵(lì)磁繞組,利用磁導(dǎo)的變化產(chǎn)生轉(zhuǎn)矩。現(xiàn)階段,反應(yīng)式步進(jìn)電機(jī)獲得最多的應(yīng)用。1.4 課題研究的目的和主要內(nèi)容 本文針對(duì)步進(jìn)電機(jī)控制的設(shè)計(jì),首先介紹了選題的要求,之后詳細(xì)敘述了軟件和硬件的設(shè)計(jì)過程。 在時(shí)鐘脈沖的作用下,各個(gè)按鍵都能按照事先設(shè)定好的規(guī)則進(jìn)行控制。確定鍵能使界面從初始化顯示切換到步進(jìn)電機(jī)顯示界面,0-9十個(gè)數(shù)字鍵用來設(shè)置轉(zhuǎn)速,正轉(zhuǎn)和反轉(zhuǎn)控制電機(jī)的正反轉(zhuǎn)向,加速和減速鍵用來控制轉(zhuǎn)速,以十轉(zhuǎn)為基本單位進(jìn)行遞加或遞減,設(shè)置鍵可以設(shè)置轉(zhuǎn)向、精確的轉(zhuǎn)速、轉(zhuǎn)動(dòng)時(shí)間,當(dāng)設(shè)置完成是可以用啟動(dòng)鍵啟動(dòng)。 硬件部分是由中央處理器(AT89C51單片機(jī)),控制部分(獨(dú)立式

14、按鍵系統(tǒng)),顯示部分(12864LCD液晶顯示模塊)組成的,驅(qū)動(dòng)部分(L298芯片);軟件部分的主要內(nèi)容是通過對(duì)步進(jìn)電機(jī)的控制、驅(qū)動(dòng)程序進(jìn)行編寫和調(diào)試以實(shí)現(xiàn)步進(jìn)電機(jī)的功能。通過硬件和軟件調(diào)試,并針對(duì)問題分析修改后,步進(jìn)電機(jī)系統(tǒng)可以穩(wěn)定運(yùn)行。步進(jìn)電機(jī)系統(tǒng)中各個(gè)部分之間通過數(shù)據(jù)的傳送最終完成了整個(gè)步進(jìn)電機(jī)的運(yùn)行、顯示和進(jìn)行按鍵的功能。 最后論文對(duì)設(shè)計(jì)進(jìn)行了總結(jié),對(duì)設(shè)計(jì)中可以進(jìn)一步改善的地方提出了建議。第2章 步進(jìn)電機(jī)方案設(shè)計(jì)與分析2.1 方案提出方案一:采用基本電路以及相關(guān)芯片對(duì)步進(jìn)電機(jī)進(jìn)行控制。本設(shè)計(jì)選用PMM8713四相步進(jìn)電機(jī)的脈沖分配器、SI54:圖2.1 方案一框圖12:圖2.2 方案二

15、框圖相較之下用單片機(jī)控制的步進(jìn)電機(jī)要比采用基本電路控制的步進(jìn)電機(jī)要簡單很多,在價(jià)格上單片機(jī)可能稍微高上少許,但用單片機(jī)后可以省下許多控制器件,這樣看來反而便宜一些了。另外,在大學(xué)中我們已經(jīng)系統(tǒng)的學(xué)習(xí)了單片機(jī),對(duì)單片機(jī)的應(yīng)用編程比較熟悉??紤]到以上因素,采用了第二套方案。以下將會(huì)對(duì)所選方案的可行性和主要芯片的選擇做系統(tǒng)的介紹。2.2 可行性分析 現(xiàn)如今,步進(jìn)電機(jī)廣泛應(yīng)用在生產(chǎn)實(shí)踐的各個(gè)領(lǐng)域,隨著步進(jìn)電動(dòng)機(jī)技術(shù)的發(fā)展,步進(jìn)電動(dòng)機(jī)已經(jīng)能夠單獨(dú)在系統(tǒng)上進(jìn)行使用,成為了不可替代的執(zhí)行元件。步進(jìn)電機(jī)結(jié)構(gòu)簡單,但是這種簡單也是相對(duì)的,步進(jìn)電機(jī)本身的代碼還是相當(dāng)繁雜,它要執(zhí)行一系列指令才能正確的完成一個(gè)簡單的

16、操作,才能按照設(shè)計(jì)者的意志工作。那么步進(jìn)電機(jī)能否用單片機(jī)實(shí)現(xiàn)呢?答案是肯定的,現(xiàn)從以下幾個(gè)方面加以說明。 首先,我們?cè)O(shè)計(jì)的這個(gè)電機(jī)是一個(gè)功能相對(duì)比較簡單步進(jìn)電機(jī),不像其他的電機(jī)那樣功能復(fù)雜,它只要控制電機(jī)的轉(zhuǎn)速、轉(zhuǎn)動(dòng)時(shí)間及正反轉(zhuǎn)即可,對(duì)于實(shí)現(xiàn)這樣一個(gè)功能,程序不是太復(fù)雜,用一塊單片機(jī)足以達(dá)到目的。其次,它的控件也比較少只有10個(gè)數(shù)字鍵和6個(gè)控制功能鍵,這些控鍵在Proteus中用彈跳式按鍵代替即可。第三,電機(jī)的顯示相對(duì)比較小、畫面簡單,只有轉(zhuǎn)向、轉(zhuǎn)速、旋轉(zhuǎn)時(shí)間等幾個(gè)漢字,這些在一塊稍大的液晶屏上就足以顯示。第四,就編程語言方面來說,編寫這樣一個(gè)簡單的步進(jìn)電機(jī)不需要什么高級(jí)的語言,C語言或匯編語

17、言就足以完成,C語言是一種通用型的語言,編程靈活、可讀性強(qiáng)、移植性好;匯編語言是一種直接面向硬件的基礎(chǔ)語言,最接近機(jī)器語言,執(zhí)行速度快(本設(shè)計(jì)采用C語言編寫)。由以上幾點(diǎn)可知:用單片機(jī)設(shè)計(jì)步進(jìn)電機(jī)在硬件和軟件兩個(gè)方面都是可行的。 主要器件選擇 單片機(jī)的選擇 單片機(jī)的種類有很多:通用型單片機(jī)按位數(shù)分有4位機(jī),8位機(jī),16位機(jī)和32位機(jī)等等。按廠家分種類就更多,我國目前最常用的單片機(jī)有如下幾家:Intel 公司的(MCS51系列,MCS96系列);Atmel公司的(AT89系列,MCS51內(nèi)核);Microchip公司的(PIC系列);Motorola公司的(68HCXX系列);Zilog公司的(

18、Z86系列);Philips公司的(87,80系列,MCS51內(nèi)核);Siemens公司的(SAB80系列,MCS51內(nèi)核);NEC公司的(78系列),每種單片機(jī)的都有不同,包括:I/O口個(gè)數(shù)、定時(shí)/計(jì)數(shù)器個(gè)數(shù)、數(shù)據(jù)/程序存取區(qū)大小、中斷源個(gè)數(shù)、有無看門狗中斷、有無A/D轉(zhuǎn)化等等129。 基于本電機(jī)的設(shè)計(jì)只用到了不到20個(gè)I/O口;1個(gè)定時(shí)器斷。所以選擇了Atmel公司的AT89C51單片機(jī)。其參數(shù)如下:1、基于8051的全靜態(tài)CMOS工藝控制器;2、3級(jí)流水線指令執(zhí)行架構(gòu);3、32個(gè)I/O口;4、2個(gè)定時(shí)/計(jì)數(shù)器;5、6個(gè)中斷源;6、4K的閃存程序存儲(chǔ)器;7、128字節(jié)的片內(nèi)數(shù)據(jù)存取器。 由

19、以上參數(shù)可知AT89C51單片機(jī)完全滿足設(shè)計(jì)要求,且在成本上較其他類型的單片機(jī)有優(yōu)勢。 液晶屏的選擇 液晶屏的種類也有很多,我們經(jīng)常用到的液晶屏包括:AMPIRE128*64;LGM12641BS1R;LM016L;LM020L;LM017L等等。 前兩種為不帶字庫的漢字、圖形點(diǎn)陣液晶屏,共64行,128列,能顯示4行8列32個(gè)16*16點(diǎn)陣漢字或4行16列64個(gè)16*8點(diǎn)陣字符或者最大128*64點(diǎn)陣圖形。也有帶字庫的12864,功能一樣。 后幾種則是帶字庫的字符點(diǎn)陣,不能顯示圖形。LM016L為能顯示2行16列32個(gè)字符的液晶屏;LM020L為能顯示1行16列16個(gè)字符的液晶屏;LM017

20、L為能顯示2行32列16個(gè)字符的液晶屏。 由以上介紹可知,AMPIRE128*64液晶顯示模塊表示橫向有128點(diǎn),縱向有64點(diǎn),可顯示16*16中文字4行,每行8個(gè)字,很明顯,這塊液晶屏滿足步進(jìn)電機(jī)設(shè)計(jì)的顯示要求,大小也合適。如轉(zhuǎn)速顯示、時(shí)間顯示等,完全滿足設(shè)計(jì)要求。這塊液晶和以上的很不一樣,它基于T6963C內(nèi)核,引腳更多,功能更復(fù)雜,指令集也更多(這些相關(guān)內(nèi)容將在下一章具體介紹)123。第3章 系統(tǒng)硬件設(shè)計(jì) 本部分內(nèi)容包括介紹AMPIRE128*64及其引腳功能;介紹T6963C指令集;晶振電路、復(fù)位電路的硬件設(shè)計(jì);控件及按鍵電路設(shè)計(jì),最后給出步進(jìn)電機(jī)仿真的整體硬件電路圖,接下來是具體的說

21、明156。3.1 AMPIRE128*64液晶屏介紹 AMPIRE128*64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級(jí)、二級(jí)簡體中文字庫的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為12864, 內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面。可以顯示84行1616點(diǎn)陣的漢字。也可完成圖形顯示。低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊,其在

22、Proteus中的元器件圖形如下6: 圖3.1 AMPIRE128*64各引腳的功能描敘如下表 表3.1 AMPIRE128*64引腳功能表 引腳序列引腳名稱引腳功能描述1CS1片選擇,1有效2CS2片選擇,1有效3GND地引腳,接地4VCC功能不詳,在電路連接時(shí)懸空5V0對(duì)比度調(diào)節(jié),輸入電壓 -0 -10V6RSRS=1 時(shí)DATA為顯示數(shù)據(jù); RS=0 時(shí)DATA為指令數(shù)據(jù)7RWRW=1為讀LCD內(nèi)部數(shù)據(jù);RW=0是寫數(shù)據(jù) 到LCD8ERW=0、E時(shí)LCD對(duì)RS和數(shù)據(jù)DATA進(jìn)行取樣和執(zhí)行;RW=1、RS0、E時(shí)LCD輸出數(shù)據(jù)到DATA916D0D7數(shù)據(jù)引腳,用于液晶屏與單片機(jī)之間的數(shù)據(jù)通

23、信17RST復(fù)位引腳,低電平有效,起復(fù)位作用,器件內(nèi)部集成了上拉電阻,正常工作時(shí)此引腳接電源18-Vout負(fù)壓輸出(-10V)3.2 HD61202及其指令集介紹 HD61202 HD61202及其兼容液晶顯示控制驅(qū)動(dòng)器,是一種帶有驅(qū)動(dòng)輸出的圖形液晶顯示控制器。它可直接與8 位微處理器相聯(lián),可與HD61203配合,對(duì)液晶屏進(jìn)行行列驅(qū)動(dòng)。內(nèi)藏6464 = 4096位顯示RAM,RAM中每位數(shù)據(jù)對(duì)應(yīng)LCD屏上一個(gè)點(diǎn)的亮、暗狀態(tài);HD61202及其兼容控制驅(qū)動(dòng)器是列驅(qū)動(dòng)器,具有64路列驅(qū)動(dòng)輸出;讀、寫操作時(shí)序與68系列微處理器相符,因此它可直接與68系列微處理器接口相聯(lián);占空比為1/32-1/64。

24、該器件支持非常廣泛的字符格式,液晶顯示器允許通過編程設(shè)置選擇不同的組合。它可以用于文字,圖形和結(jié)合文本模式及其他各種屬性的功能。 HD61202指令集 HD61202及其兼容控制驅(qū)動(dòng)器的指令系統(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 當(dāng)DB0=1時(shí),LCD顯示RAM中的內(nèi)容; 當(dāng)DB0=0時(shí),顯示關(guān)閉。(2)顯示起始行(ROW)設(shè)置指令R/W D/1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 1 顯示起始行(063) 該

25、指令設(shè)置了對(duì)應(yīng)液晶顯示屏最上一行的顯示RAM的行號(hào),有規(guī)律的改變顯示起始行,可以使LCD實(shí)現(xiàn)顯示滾動(dòng)效果。(3)頁(Page)設(shè)置指令R/W D/1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 0 1 1 1 頁號(hào)(07) 顯示RAM共64行,分8頁,每頁8行。(4)列地址(Y Address)設(shè)置指令R/ D/1 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 1 顯示列地址(063) 設(shè)置了頁地址和列地址,就唯一確定了RAM中的一個(gè)單元,這樣MPU就可以讀、寫指令,讀出該單元中的內(nèi)容或向該單元寫進(jìn)一個(gè)字節(jié)數(shù)據(jù)。(5)讀狀態(tài)指令R/

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

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

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

29、機(jī)的普及與應(yīng)用,為步進(jìn)電動(dòng)機(jī)的應(yīng)用開辟了廣闊前景,使得以往用硬件電路構(gòu)成的龐大復(fù)雜的控制器得以用軟件實(shí)現(xiàn),既降低了硬件成本又提高了控制的靈活性,可靠性及多功能性。市場上有很多現(xiàn)成的步進(jìn)電機(jī)控制機(jī)構(gòu),但價(jià)格都偏高。應(yīng)用SGS公司推出的L298芯片可方便的組成步進(jìn)電機(jī)驅(qū)動(dòng)器,并結(jié)合AT89C51單片機(jī)進(jìn)行控制,即可以實(shí)現(xiàn)用相對(duì)便宜的價(jià)格組成一個(gè)性能不錯(cuò)的步進(jìn)電機(jī)驅(qū)動(dòng)電路。 圖3.4 電機(jī)驅(qū)動(dòng)電路 液晶顯示屏與單片機(jī)接口電路 液晶顯示屏共有18個(gè)引腳,其中VCC、RST接電源,GND三腳接地,CS1、CS2兩腳分別接P2.4、P2.3,DB0DB7分別與單片機(jī)相連接,RW與腳相連,RS與腳相連,E與

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

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

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

33、; CS2=0; for(j=0;j2;j+) Write_com(page+0xb8+j); Write_com(row+0x40); for(i=0;i16;i+) Write_dat(Tab1n16*j+i); 寫字符程序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;j2;j+) Write_com(page+0xb8+j); Write_com(row+0x40);

34、 for(i=0;i8;i+) Write_dat(Tab2n8*j+i); 清屏程序void Clear()unsigned char i,j;CS1=1;CS2=0;for(j=0;j8;j+) Write_com(0xb8+j); Write_com(0x40); for(i=0;i64;i+) Write_dat(0); CS1=0; CS2=1; for(j=0;j8;j+) Write_com(0xb8+j); Write_com(0x40); for(i=0;i -9 0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0, 0xD8,0xF0,0xE0,

35、0xC0,0x80,0x00,0x00,0x00, 0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07, 0x37,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,/- 時(shí) -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,0x

36、01,0x02,0xF6,0x10,0x12,0x12, 0x12,0x12,0xFA,0x12,0x02,0xFF,0x02,0x00, 0x00,0xFF,0x00,0x00,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

37、,0x00,0x01,0x00,0x00,;4.6 字符表unsigned char code Tab216= 0xF0,0xF8,0x0C,0x04,0x04,0x0C,0xF8,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,0

38、x26,0x23,0x21,0x38, 0x10,0x18,0x0C,0x84,0x84,0xCC,0x78,0x30, / -3- 0x08,0x18,0x30,0x20,0x20,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,0

39、x44,0x44,0xCC,0x98,0x10, / -6- 0x0F,0x1F,0x30,0x20,0x20,0x30,0x1F,0x0F, 0x1C,0x0C,0x0C,0x0C,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,

40、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 延時(shí)子程序void delay10ms()unsigned char a,b,c;for(a=0;a5;a+)for(b=0;b3;b+)for(c=0;c220;c+)

41、; 主函數(shù)程序void main()TH0=15536/256;TL0=15536%256;EA=TMOD=TR0=ET0=1;P3=Tab3a;P1=0xff;Init();Clear();while(1) for (j=0;j=3;j+) P1=0xfe(8-j); if(P1_4=0) delay10ms(); if(P1_4=0) while(P1_4=0); Zi_Fu(1,4,32,4*j); if(P1_5=0) delay10ms(); if(P1_5=0) while(P1_5=0); Zi_Fu(1,4,32,4*j+1); if(P1_6=0) delay10ms(); if(P1_6=0) while(P1_6=0); Zi_Fu(1,4,32,4*j+2); if(P1_7=0) delay10ms(); if(P1_7=0) while(P1_7=0); Zi_Fu(1,4,32,4*j+3); 第5章 系統(tǒng)仿真 在仿真之前先介紹和仿真相關(guān)的C程序編譯軟件Keil C51 Vision2和在線仿真平臺(tái)Proteus 7.2 SP6,接著介紹有關(guān)工程項(xiàng)目的建立及編譯生成可執(zhí)行文件(*.Hex)的具體過程。5.1 Keil2編譯環(huán)境介紹 Keil C51 Vision2集成開發(fā)環(huán)境是Keil Software,Inc/Kei

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論