




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、課題設計的主要內容:設想的控制系統的是流量傳感器采集到流量信息,通過變換器,轉化為電信號,AD轉換器將模擬電信號轉化為離散信號,傳給單片機。單片機軟件系統根據事先的設定值對采集的信息進行處理,輸出離散的控制信號。DA轉換器將離散的控制信號轉化為模擬電量。通過模擬電量來控制閥門的動作,從而調節流量,實現流量的精確控制。考慮到設計的難度,將系統簡化為:利用按鍵模塊代替數據采集器對AT89C52單片機進行信號輸入,輸入設定值,在控制系統軟件的作用下,發出相應的執行命令給執行機構步進電機。步進電機帶動閥門動作,對流體流量進行控制。并利用顯示電路實時顯示步進電機運行的轉數、轉向,具有實時性的特點。其
2、中,硬件電路的搭接是本設計的重點,控制系統軟件的設計是本課題的核心。硬件電路部包括AT89C52單片機+時鐘電路+復位電路構成的最小系統,外接L297和L298組成的步進電機驅動電路,用四相八拍步進電機作為執行部件,。并用8位數碼管作為顯示模塊。系統軟件設計部分,分別對按鍵設定值輸入,步進電機控制、數碼管顯示等程序進行了設計,并且設計了PID控制程序。二、設計流程使用PROTEL設計電路圖根據電路圖編寫程序流程圖使用KEIL編寫程序調試PROTEUS仿真生成.HEX文件購買元件焊制硬件實物完成設計不成功成功不成功成功確定設計方案三、設計的相關介紹1、步進電機步進電機是一種將電脈沖轉化為角位移的
3、執行機構。通俗一點講:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。你可以通過控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時您可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到速度控制的目的。本次設計選用28BYJ-48步進電機。步進電機28BYJ-48型四相八拍電機,電壓為DC5VDC12V。當對步進電機施加一系列連續不斷的控制脈沖時,它可以連續不斷地轉動。每一個脈沖信號對應步進電機的某一相或兩相繞組的通電狀態改變一次,也就對應轉子轉過一定的角度(一個步距角)。當通電狀態的改變完成一個循環時,轉子轉過一個齒距。如下圖所示:2、由
4、L297和L298組成的步進電機驅動電路(1) 驅動芯片L297介紹SGS公司的L297單片步進電機控制集成電路適用于雙極性兩相步進電機或四相單極性步進電機的控制,與兩片H橋式驅動芯片L298組合,組成完整的步進電機固定斬波頻率的PWM恒流斬波驅動器。L297產生四相驅動信號,用以控制雙極性兩相步進電機或四相單極性步進電機,可以采用半步、兩相勵磁、單相勵磁三種工作方式控制步進電機,并且控制電機的片內PWM斬波電路允許三種工作方式的切換。圖1 L297引腳圖 圖2 L297的內部方框圖L297 各引腳功能說明1腳(SYNG)斬波器輸出端。如多個297同步控制,所有的SYNC端都要連在一起,共用一
5、套振蕩元件。如果使用外部時鐘源,則時鐘信號接到此引腳上。2腳(GND)接地端。3腳(HOME)集電極開路輸出端。當L297在初始狀態(ABCD=0101)時,此端有指示。當此引腳有效時,晶體管開路。4腳(A)A相驅動信號。5腳(INH1)控制A相和B相的驅動極。當此引腳為低電平時,A相、B相驅動控制被禁止;當線圈級斷電時,雙極性橋用這個信號使負載電源快速衰減。若CONTROL端輸入是低電平時,用斬波器調節負載電流。6腳(B)B相驅動信號。7腳(C)C相驅動信號。8腳(INH2)控制C相和D相的驅動級。作用同INH1相同。9腳(D)D相驅動信號。10腳(ENABLE)L297的使能輸入端。當它為
6、低電平時,INH1,INH2,A,B,C,D都為低電平。當系統被復位時用來阻止電機驅動。11腳(CONTROL)斬波器功能控制端。低電平時使INH1和INH2起作用,高電平時使A,B,C,D起作用。12腳(Vcc)+5V電源輸入端。13腳(SENS2)C相、D相繞組電流檢測電壓反饋輸入端。14腳(SENS1)A相、B相繞組電流檢測電壓反饋輸入端。15腳(Vref )斬波器基準電壓輸入端。加到此引腳的電壓決定繞組電流的峰值。16腳(OSC)斬波器頻率輸入端。17腳(CW/CCW)方向控制端。步進電機實際旋轉方向由繞組的連接方法決定。當改變此引腳的電平狀態時,步進電機反向旋轉。18腳(CLOCK)
7、步進時鐘輸入端。該引腳輸入負脈沖時步進電機向前步進一個增量,該步進是在信號的上升沿產生。19腳(HALF/FULL)半步、全步方式選擇端。此引腳輸入高電平時為半步方式(四相八拍),低電平時為全步方式。如選擇全步方式時變換器在奇數狀態,會得到單相工作方式(單四拍)。20腳(RESET)復位輸入端。此引腳輸入負脈沖時,變換器恢復初始狀態(ABCD=0101)。中。變換器是一個重要組成部分。變換器由一個三倍計算器加某些組合邏輯電路組成,產生一個基本的八格雷碼(順序如圖3所示)。由變換器產生4個輸出信號送給后面的輸出邏輯部分,輸出邏輯提供禁止和斬波器功能所需的相序。為了獲得電動機良好的速度和轉矩特性,
8、相序信號是通過2個PWM 斬波器控制電動波器包含有一個比較器、一個觸發器和一個外部檢測電阻,如圖4所示,晶片內部的通用振蕩器提供斬波頻率脈沖。每個斬波器的觸發器由振蕩器的脈沖調節,當負載電流提高時檢測電阻上的電壓相對提高,當電壓達到Uref時(Uref是根據峰值負載電流而定的),將觸發器重置,切斷輸出,直至第二個振蕩脈沖到來、此線路的輸出(即觸發器Q輸出)是一恒定速率的PWM信號,L297的CONTROL端的輸入決定斬波器對相位線A,B,C,D或抑制線INH1和INH2起作用。CONTROL為高電平時,對A,B,C,D有抑制作用;為低電平時,則對抑制線INH1和INH2有抑制作用,從而可對電動
9、機和轉矩進行控制。 圖3 四相八拍模式波形圖圖4 單四拍模式波形 圖5 雙四拍模式波形圖(2) 驅動芯片L298簡介:L298N 為雙全橋步進電機專用驅動芯片,內部包含4信道邏輯驅動電路,是一種二相和四相步進電機的專用驅動器,可同時驅動2 個二相或1個四相步進電機,內含二個H-Bridge 的高電壓、大電流雙全橋式驅動器,接收標準TTL邏輯準位信號,可驅動46V、2A以下的步進電機,且可以直接透過電源來調節輸出電壓;此芯片可直接由單片機的IO 端口來提供模擬時序信號,但在本驅動電路中用L297 來提供時序信號,節省了單片機IO 端口的使用。 散熱片與各管腳相連 圖1 L298N引腳圖L298N
10、引腳功能表引腳符號功能115SENSING ASENSING B此兩端與地連接電流檢測電阻,并向驅動芯片反饋檢測到的信號23OUT 1OUT 2此兩腳是全橋式驅動器A的兩個輸出端,用來連接負載4Vs電機驅動電源輸入端57IN 1IN2輸入標準的TTL邏輯電平信號,用來控制全橋式驅動器A的開關611ENABLE AENABLE B使能控制端.輸入標準TTL邏輯電平信號;低電平時全橋式驅動器禁止工作。8GND接地端,芯片本身的散熱片與8腳相通9Vss邏輯控制部分的電源輸人端口1012IN 3IN 4輸入標準的TTL邏輯電平信號,用來控制全橋式驅動器B的開關1314OUT 3OUT 4此兩腳是全橋式
11、驅動器B的兩個輸出端,用來連接負載3、PID控制算法介紹將偏差的比例(P)、積分(I)和微分(D)通過線性組合構成控制量,用這一控制量對被控對象進行控制,這樣的控制器稱PID控制器。PID控制器是控制系統中技術比較成熟,而且應用最廣泛的一種控制器。PID控制器最先出現在模擬控制系統中,傳統的模擬PID控制器是通過硬件(電子元件、氣動和液壓元件)來實現它的功能。隨著計算機的出現,把它移植到計算機控制系統中來,將原來的硬件實現的功能用軟件來代替,因此稱作數字PID控制器,所形成的一整套算法則稱為數字PID算法。數字PID控制器與模擬PID控制器相比,具有非常強的靈活性,可以根據試驗和經驗在線調整參
12、數,因此可以得到很好的控制性能。PID控制中的積分作用可以減少穩態誤差, 但另一方面也容易導致積分飽和, 使系統的超調量增大。微分作用可提高系統的響應速度, 但其對高頻干擾特別敏感, 甚至會導致系統失穩。所以, 正確計算控制器的參數, 有效合理地實現 PID控制器的設計,對于PID 控制器在過程控制中的廣泛應用具有重要的理論和現實意義。在PID控制系統中, PID控制器分別對誤差信號e(t)進行比例、積分與微分運算, 其結果的加權和構成系統的控制信號u(t),送給對象模型加以控制。 PID控制器的數學描述為其傳遞函數可表示為: 從根本上講, 設計PID控制器也就是確定其比例系數Kp、積分系數T
13、 i 和微分系數T d , 這三個系數取值的不同, 決定了比例、積分和微分作用的強弱。4、AT89C52芯片介紹AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可為您提供許多較復雜系統控制應用場合。 AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,3個16位可編程定時計數器,2
14、個全雙工串行通信口,2個讀寫口線,其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發成本。 · 兼容MCS51指令系統 · 8k可反復擦寫(>1000次)Flash ROM · 32個雙向I/O口 · 256x8bit內部RAM · 3個16位可編程定時/計數器中斷 · 時鐘頻率0-24MHz · 2個串行中斷 · 可編程UART串行通道 · 2個外部中斷源 · 共6個中斷源 · 2個讀寫中斷口線 · 3級加密位
15、3; 低功耗空閑和掉電模式 · 軟件設置睡眠和喚醒功能 AT89C52引腳圖AT89C52主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復位輸入端口,外接電阻電容組成的復位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負端。P0P3 為可編程通用I/O 腳。P0 口P0 口是一組8 位漏極開路型雙向I/O 口, 也即地址/數據總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8 個TTL邏輯門電路,對端口P0 寫“1”時,可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存
16、儲器時,這組口線分時轉換地址(低8 位)和數據總線復用,在訪問期間激活內部上拉電阻。在Flash 編程時,P0 口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。P1 口P1 是一個帶內部上拉電阻的8 位雙向I/O 口, P1 的輸出緩沖級可驅動(吸收或輸出電流)4 個TTL 邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。P2 口P2 是一個帶有內部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可驅動(吸收或輸出電流)4 個TTL 邏輯門電路。對端
17、口P2 寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16 位地址的外部數據存儲器(例如執行MOVX DPTR 指令)時,P2 口送出高8 位地址數據。在訪問8 位地址的外部數據存儲器(如執行MOVX RI 指令)時,P2 口輸出P2 鎖存器的內容。Flash 編程或校驗時,P2亦接收高位地址和一些控制信號。P3 口P3 口是一組帶有內部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅動(吸收或輸出電流)4 個TTL 邏輯門電路。對P3 口寫入“1”時,它們被內部
18、上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能P3 口還接收一些用于Flash 閃速存儲器編程和程序校驗的控制信號。RST復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位ALE/PROG當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節。一般情況下,ALE 仍以時鐘振蕩頻率的1/6 輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE 脈沖。對Flash 存儲器編程
19、期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會被微弱拉高,單片機執行外部程序時,應設置ALE 禁止位無效。PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52 由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN 有效,即輸出兩個脈沖。在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號。EA/VPP外部訪問允許。欲使CPU 僅訪問外部程序存儲器(地址為0000HFFFFH),EA 端
20、必須保持低電平(接地)。需注意的是:如果加密位LB1 被編程,復位時內部會鎖存EA端狀態。如EA端為高電平(接Vcc端),CPU 則執行內部程序存儲器中的指令。Flash 存儲器編程時,該引腳加上+12V 的編程允許電源Vpp,當然這必須是該器件是使用12V 編程電壓Vpp。XTAL1振蕩器反相放大器的及內部時鐘發生器的輸入端。XTAL2振蕩器反相放大器的輸出端。5、芯片74HC573簡要介紹74HC573為八進制 3態非反轉透明鎖存器。當鎖存使能端為高時,這些器件的鎖存對于數據是透明的(也就是說輸出同步)。當鎖存使能變低時,符合建立時間和保持時間的數據會被鎖存。 圖 74HC573管腳圖四、
21、數碼管顯示電路兩片74HC573與數碼管的連接圖 四位共陽極數碼管管腳五、總結及體會 步進機在工業控制中是常用的嵌入式運動控制設備之一,本系統采用單片機搭配驅動芯片L297、L298實現對步進電機的控制。電機的轉動方向、轉數可以通過鍵盤輸入, 運用程序對這些數據進行處理, 由單片機發出相應的控制信號給步進電機, 增加了控制的靈活性。運用中斷方式, 使系統在運行時可隨時改變步進電機的運作方式。經實驗驗證, 達到了預期的設計目的。完成這個閥門控制的系統設計,期間會遇到各種各樣的問題。在設計電路圖和程序設計,及焊接電路過程都要求對芯片有一定的熟練程度。通過查閱材料,詢問他人等等都是很好的解決方法。通
22、過這次單片機的步進電機控制電機設計中,學習到了如何用單片機來實現控制,也見證了一堆器件從零到整的制作過程。我們于網上大量搜索與下載資料,從設計方案、設計內容、設計思路,從基礎的硬件設計到軟件編程,從一個個單獨模塊制作到整個完整作品,此次設計還有很多可以完善的地方,比如在89C52單片機與步進電機驅動電路之間,應該接上光電耦合電路進行隔離,消減電磁干擾,保證單片機運行穩定正確運行。如果要設計更完善功能更強大的系統的話,我仍需要各方面的學習與探討,不過可以肯定的是我們通過這次單片機控制步進電機的系統設計,積累了一定的經驗,可以為以后設計打下堅實的基礎。附1:電路設計圖附2:實物圖附3:軟件設計#i
23、nclude <reg51.h>#define DataPort P2 /定義數據端口 程序中遇到DataPort 則用P2 替換sbit LATCH1=P30;/定義鎖存使能端口 段鎖存sbit LATCH2=P31;/ 位鎖存/*sbit queren=P32;sbit setzy=P33;sbit setsx=P34;unsigned char code s1011=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;unsigned char code P286=0x1,0x2,0x4,0x10,0x20,0x40;
24、unsigned char w66;unsigned char key23;unsigned char i,f,j,s,key1,a,key4;unsigned char t,ok;/*sbit CW=P10;sbit CLK=P11;sbit ENABLE=P12;unsigned char n1,m,f48;int n;/*int ek0,ek1,ek2,puk,uk,n,rk,rk1,yk,yk1;/*/顯示初始化void initxianshisetflux()TMOD=0x11; /設定時器w60=0;w61=0;w62=1;w63=0;w64=1;w65=0;j=0;f=0;s=0
25、;key1=0;t=0;a=0;EA=1;ET0=1;TH0=0xF6;TL0=0xF8;TR0=1;ok=1;/*/PID初始化void initpid()yk=10; rk=100;uk=4;ek0=0;ek1=0;ek2=0;/*/執行步進電機void initzxbj()CW=1;CLK=1; ET1=1;TH1=0xFB;TL1=0x7C;/*/顯示void delayus(unsigned int i)unsigned int j;while(i-)for(j=0;j<39;j+);void xianshi()if(s>=3)s=0;if(f>=6)f=0;if(
26、j>=6)j=0;DataPort=0xff; /清空數據,防止有交替重影 LATCH1=1; /段鎖存 LATCH1=0;DataPort=P28f+;LATCH2=1; /位鎖存 LATCH2=0;DataPort=s10w6j+;LATCH1=1; /段鎖存 LATCH1=0;s+;delayus(6);/*/設置流量void zhuoyou()setzy=1;if(setzy=0)key4=t;w6key4=key2key4;t+;if(t>2)t=0;while(setzy!=1)setzy=1;xianshi();void shangxia()setsx=1;if(se
27、tsx=0)(key2t)+;if(t=2)if(key21>=5)if(key2t>1)key2t=0;elseif(key2t>2)key2t=0;if(key22=2)if(t=1)if(key20>=5)if(key2t>4)key2t=0;elseif(key2t>5)key2t=0;if(t=0)if(key21=5)if(key2t>5)key2t=0;elseif(key2t>9)key2t=0;elseif(key2t>9)key2t=0;while(setsx!=1)setsx=1;xianshi();void shao
28、miaoqueren()unsigned char i;key1=key1;if(key1) for(i=0;i<3;i+) key2i=w6i; else for(i=0;i<3;i+) w6i=key2i; t=0;while(queren=0)queren=1;xianshi();void ifqueren()P3=0xff;if(queren=0)shaomiaoqueren();void setflux()doxianshi();P3=0xff;ifqueren();P3=0xff;if(key1)shangxia();P3=0xff;zhuoyou();P3=0xff;
29、rk=100*w62+10*w61+w60;while(key1);/*/執行步進電機void delay(unsigned int t) unsigned int k; while(t-) for(k=0; k<100; k+); void csp0() /設定時器delay(1); ET1=1;TH1=0xFB;TL1=0x7C;TR1=1;while(n1>0)xianshi();f48=1;while(n>0)xianshi();TR1=0;void zxbj() if(ek0>5|ek0<-5) ENABLE=1; f48=0; if(n<0) CW=1; n=-n; for(m=0;m<5;m+); else CW=0; for(m=0;m<5;m+); delay(1); csp0(); ENABLE=0; ok=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶三峽職業學院《大學職業生涯規劃》2023-2024學年第一學期期末試卷
- 山東省臨沂市蘭陵縣市級名校2024-2025學年中考適應性考試化學試題含解析
- 益陽職業技術學院《人類的雙面書架高黎貢山》2023-2024學年第二學期期末試卷
- 洛陽市重點中學2025年初三年級調研測試英語試題試卷含答案
- 寧夏大學新華學院《微積分EI》2023-2024學年第一學期期末試卷
- 曲靖市沾益區大坡鄉重點達標名校2025屆初三下期中質量檢測試題生物試題含解析
- 內蒙古美術職業學院《大學體育-劍術》2023-2024學年第一學期期末試卷
- 浙江省協作體2025年高三年級下學期第一次統練英語試題含解析
- 棗強中學高一上學期第三次月考英語試題
- 教育知識與能力
- GB/T 1174-1992鑄造軸承合金
- GB 4789.3-2016食品安全國家標準食品微生物學檢驗大腸菌群計數
- 化學反應的限度和化學反應條件的控制 課件
- GA 526-2010監室門
- 精益六西格瑪綠帶
- 馬克思個人介紹
- 全國青少年機器人技術等級考試:二級培訓全套課件
- 個體診所常見違法行為課件
- 工程量清單和招標控制價的編制畢業論文
- 2022年成都市武侯區社區工作者招聘考試筆試試題及答案解析
- 農村常用法律法規知識講座課件(村干部培訓)
評論
0/150
提交評論