久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 41853|回復: 6
打印 上一主題 下一主題
收起左側

51單片機控制步進電機正反轉及調速詳解 附匯編語言程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:564995 發表于 2019-12-28 16:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一、設計內容與應用資源
1.設計內容:
單片機控制四相步進電機
速度可調,方向可調
速度采用定時器中斷方式來實現
匯編語言編程
2.基本功能:
步進電機正轉
步進電機反轉
步進電機加、減速
定時器中斷控速
3.應用資源:
一片AT89C52
一個四相電機
一片ULN2003A
單片機最小系統
  • 設計思路與意義
1.設計要求
通過按鍵控制步進電機實現正、反轉和加、減速,并且該實驗實現了共五級調速,加速減速分別兩級,原速自一級,具體計時時間及換速速度見下方第3小點計算可得。
2.設計思路
為實現步進電機速度可調,方向可調的目的,并要用到定時器定時中斷來控制脈沖每變換一次的時間。此實驗設計思路上采用一個定時器,兩個外部中斷,設置8個正反轉控制字存到ROM以查表用,其分別代表步進電機的八拍。通過按鍵判別及定時器T0定時中斷使步進電機按所設置時間依次循環取用數組并每次指針加一便賦給P1,以達到電機按相應速度正、反轉起來的效果。外接外部中斷0、1的按鍵分別控制加速和減速,開啟外部中斷INT0則定時次數減少以增速;開啟外部中斷INT1則定時次數增加以減速。
具體軟硬件設置方面,在使用定時器前要先設定定時器T0的入口地址000BH,設置工作方式為方式1,并設置初值,對其進行初始化。設置外部中斷器INT0的入口地址0003H,外部中斷器INT1入口地址0013H,并對其進行初始化。控制步進電機轉動速度與方向,我們在硬件電路中的AT89C52的P3口連接四個按鈕,分別控制步進電機的加速、減速、正轉、反轉。
(1)正轉
設置R3置1時步進電機正轉,當按下第三個按鈕P3.6時,R3=1,將正轉的查表數值按順序賦給P1口,步進電機正轉。
(2)反轉
按下第四個按鈕P3.7時,R3=0,按反轉查表數值順序賦值給P1口,步進電機反轉。
(3)加速
設置計時次數值R6=150,通過改變循環次數來實現控制步進電機的運轉速度,當按下第一個按鈕P3.2時,程序執行外部中斷T0,R6每次加上30(最多加至210),并重新按新的計時次數循環查表,來實現步進電機的加速。
(4)減速
按下按鈕P3.3時,R6每次減去30(最多減至90),重新按新的計時次數循環查表來實現減速。
3.相關計算過程:
即脈沖間隔時間(轉速變換)計算,由初次間隔時間基礎上對應的轉速設定,TH0=0FEH,TL0=0C0H

一級轉速:
二級:
三級:
四級:
五級:
4.設計意義
步進電機是一種被廣泛使用的感應電機,它的工作原理是當輸入脈沖時,步進驅動器接收到一個脈沖信號,驅動步進電機按設定的方向轉動一個固定的角度。
步進電機廣泛應用在各種自動化控制系統中。隨著現代技術的發展,對步進電機的功能也有了更多的需求,在簡單步進電機的基礎上,增加了改變步進電機轉動方向與增加減少步進電機轉速的功能,擴大了步進電機的使用場合范圍。

三、硬件電路圖
1.最小系統(基礎)
本控制系統比較簡單,不需要多余的外部擴展芯片,因此選用一片AT89C52作為CPU來實現系統控制,對開發設備的要求很低,開發時間也能大大縮短。在單片機外部接上時鐘電路、復位電路和電源組成基本最小系統使其能夠正常運行。
1.1最小系統

2.ULN2003
在我們所學習的最小系統之上,我們進行了一定程度上的拓展,我們的目的是步進電機的調速,但是首先要驅動步進電機,但是單片機的管腳輸出電流較小,只有零點幾個毫安,吸納電流也只有十幾個毫安(大多數單片機只有幾個毫安),輸出最高電壓也不會越過5V,由于這個原因很少用單片機直接驅動外設。ULN2003的作用就是把單片機的信號進行(7路)放大,吸納電流可以達到500mA,耐壓能力也提高很多,基本能滿足微型步進電機的驅動電流和電壓,所以大家經常會在單片機輸出口上掛只ULN2003。ULN2003是高壓大電流達林頓晶體管陣列系列產品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應于各類要求高速大功率驅動的系統。
1.2 ULN2003
3.電動機
由于沒有在proteus軟件中找到三相步進電機,因此經過了多次試驗后我們選取了仿真效果最好的四相六線電機來進行仿真。
1.3四相六線電動機
4.總電路圖
1.4 總電路圖

四、數組的使用
用單片機的P1.0,P1.1,P1.2,P1.3分別控制步進電機的A,B,C,D相繞組。四相八拍的通電相依次為A-AB-B-BC-C-CD-D-DA,由此我們可以得到它的控制模型,以二進制和十六進制在表1中給出。
1四相八拍的正反向運轉數組
節拍
通電相

控制模型
正轉
反轉
二進制
十六進制
1
8
A
00000001
01H
2
7
AB
00000011
03H
3
6
B
00000010
02H
4
5
BC
00000110
06H
5
4
C
00000100
04H
6
3
CD
00001100
0CH
7
2
D
00001000
08H
8
1
DA
00001001
09H
五、流程圖


  1. ORG  0000H
  2. LJMP MAIN
  3. ORG 0003H      ;外部中斷0入口
  4. LJMP TIME0   
  5. ORG  000BH      ;定時器中斷入口
  6. LJMP T0_INT0
  7. ORG 0013H        ;外部中斷1入口
  8. LJMP TIME1
  9. ORG  0030H
  10.             
  11. MAIN:
  12.          MOV  TMOD,#01H ;設置T0工作方式為方式1
  13.          MOV TH0,#0FEH    ;設置T0初值
  14.          MOV TL0,#0CH
  15.                                SETB ET0
  16.                                SETB EA
  17.                                SETB TR0
  18.                            
  19.                                SETB EX0
  20.                                SETB EX1
  21.                                SETB IT0
  22.                                SETB IT1
  23.                             MOV R0,#10      ;設定計數初值
  24.                                MOV R1,#0                            ;查表值初始化
  25.                                MOV R3,#0                   ;正反標志判別位
  26.                                MOV R6,#150    ;設定變量計數(次數)值
  27.                            
  28. LOOP:                 JB P3.6,AAA      ;判斷正轉按鍵是否按下
  29.                                MOV R3,#0   
  30. AAA:
  31.                                 JB P3.7,LOOP   ;判斷反轉按鍵是否按下
  32.                                MOV R3,#1                           
  33.                                SJMP LOOP
  34.                            


  35. T0_INT0:  
  36.       MOV TH0,#0FEH
  37.       MOV TL0,#0CH
  38.                  DJNZ R0,RETURN   ;判斷計時次數有無到所設定次數值
  39.                             MOV A,R6         ;修改計時次數所賦值,達到加減檔效果
  40.                 MOV R0,A
  41.                 MOV A,R1            ;加減速后重新將表中數值賦給A
  42.     CJNE R3,#1,BBB     ;若(R3)不等于1則跳轉到子程序BBB
  43. MOV DPTR,#Vn_step1 ;若(R3)等于1則向下運行對Vn_step1
  44. 查詢,指向表首地址            
  45.     SJMP CCC            
  46.   BBB:              MOV DPTR,#Vn_step2  ;對 Vn_step2査詢,指向表首
  47. 地址
  48. CCC:  MOVC A,@A+DPTR      ;取表內數值賦值
  49.                                MOV P1,A             ;將值通過累加器賦值給P1口
  50.                                MOV A,R1             ;初始化累加器
  51.                                INC A                ;查詢地址加1
  52.               CJNE A,#8,DDD     ;若將表內數值査詢到了八次即八拍
  53. 則向下運行,否則跳轉到DDD子程序
  54.                     CLR A               ;將累加器清零
  55.                            
  56. DDD:               MOV R1,A     ;將A中加1后的表內對應數值賦到R1或
  57. 到達8位后清零的值賦給R1
  58. RETURN:RETI             ;定時器中斷返回

  59. TIME0:                           ;外部中斷0中斷服務程序——加速按鍵
  60.       CJNE R6,#90,JJJ        ;若計時次數沒有減至90,則跳轉
  61. 到JJJ
  62.               SJMP KKK               ;若已經減至90,則中斷返回
  63.               JJJ:
  64.        MOV A,R6         ;將此時計數次數值賦給A
  65.                   SUBB A,#30        ;將A中數值減30再賦給
  66.                   MOV R6,A          ;將A中數值賦給R6當新的計時次數
  67.               KKK: RETI
  68.             
  69. TIME1:               ;外部中斷1中斷服務程序——減速按鍵
  70.     CJNE R6,#210,NNN       ;若計時次數沒有增至210,則跳
  71. 轉到NNN
  72.                  SJMP MMM             ;若已經增至210,則中斷返回
  73.               NNN:
  74. MOV A,R6
  75.                    ADD A,#30
  76.                    MOV R6,A
  77.               MMM:              RETI
  78. Vn_step1:  DB  01H,03H,02H,06H,04H,0CH,08H,09H                             
  79. Vn_step2:  DB  09H,08H,0CH,04H,06H,02H,03H,01H

  80. END
復制代碼

本次對四相(代替三相以達更好效果)步進電機控制系統的設計,要求通過按鍵控制步進電機實現正反轉以及用定時器中斷的方式調節轉速并且使用匯編語言編程。
在編譯的過程中遇到了各種各樣的困難,首先是選擇步進電機,由于軟件中沒有我們需要的三相電動機,所以我們開始了漫長的嘗試道路,最終發現了一個效果最好的四相六線步進電機。其次就是在面對只能正反轉45度的步進電機我們對程序不斷審查,反復查找仿真運行之后發現了一處不妥,改正了之后也只能正反轉85-90度。我們陷入了思維定勢,無法對自己的程序進行糾錯,要是全部推翻重新建立一種思路未嘗不可,但嘗試改變就預示著前功盡棄。在軟件和硬件的無數次聯調修改的情況下都沒有用,所以后面問隊友,經過多次探討和改進,推翻了之前的思路,重新構建了上述設計思路和程序設計。

以上的Word格式文檔51黑下載地址:
02 步進電機說明書.docx (224.8 KB, 下載次數: 190)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏19 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:823796 發表于 2020-9-27 12:47 | 只看該作者
這個程序我那個單片機板子用不了啊
回復

使用道具 舉報

板凳
ID:929688 發表于 2021-12-15 15:03 | 只看該作者
感覺有用,但是我是兩相四線
回復

使用道具 舉報

地板
ID:1049725 發表于 2022-11-5 16:25 來自手機 | 只看該作者
太棒了,有原理圖就更好了
回復

使用道具 舉報

5#
ID:304740 發表于 2023-3-17 02:59 | 只看該作者
太好了,正好用得上
回復

使用道具 舉報

6#
ID:846219 發表于 2023-3-18 22:41 | 只看該作者
不錯的資料,謝謝樓主分享!
回復

使用道具 舉報

7#
ID:1074735 發表于 2023-4-29 23:52 | 只看該作者
ULN2003發熱量大,建議用幾分錢一個的MOS FET,型號2N10 用四只即可。控制效果比ULN2003好。尤其是控制DC24V的四相步進電機,2003不行的。太燙了。   樓主什么時候可寫編控制2相的步進電機文章來呢?我想學習。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 毛片免费观看 | 欧美一区二区三区日韩 | 欧美日韩成人一区二区 | 国产精品久久久久久久久久久久久 | 亚洲免费视频在线观看 | 一级黄色毛片a | av在线一区二区三区 | 成人激情免费视频 | 欧美一级久久 | av资源中文在线 | 中文字幕av网站 | 国产精品久久久久久238 | 国产日韩中文字幕 | 亚洲精品欧美一区二区三区 | 国产精品亚洲视频 | 日韩色视频 | 精品欧美乱码久久久久久 | 99精品国自产在线 | 91精品国产麻豆 | 久久久激情视频 | 亚洲一区二区三区免费视频 | 极品粉嫩国产48尤物在线播放 | 中文字幕一区在线观看视频 | 久久久91精品国产一区二区三区 | 国产黄色大片网站 | 亚洲欧美日韩国产综合 | 红色av社区 | 视频在线观看一区 | 欧美国产亚洲一区二区 | 天堂一区二区三区 | 81精品国产乱码久久久久久 | 亚洲a在线观看 | 亚洲日本视频 | 美女黄色在线观看 | 日韩一区二区在线视频 | 97伦理电影 | 欧美日韩高清免费 | 国产一区二区三区免费观看在线 | 少妇久久久 | 欧美精品1区2区 | 国产 日韩 欧美 中文 在线播放 |