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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于labview的步進電機驅動正轉,反轉,加速帶數碼管顯示,protues仿真

  [復制鏈接]
跳轉到指定樓層
樓主
本人學生一枚,第一次發貼,也不圖啥。這是這個是我學習過程做過的一個小項目,程序和仿真都做出來了。

{`_(B%@_F4I}R(RW5H[KATW.png (291.2 KB, 下載次數: 66)

發送F0,F1,F2,F3..控制電機

發送F0,F1,F2,F3..控制電機

OG[[(`6YH197J8X713EHOW2.png (348.9 KB, 下載次數: 75)

COM口不一樣,波特率,數據位,校驗位要一樣

COM口不一樣,波特率,數據位,校驗位要一樣

}9$3@ORC475%1RXY{V9RLNV.png (176.66 KB, 下載次數: 57)

}9$3@ORC475%1RXY{V9RLNV.png

DAD$P~MQP(NS_NR5@_VWOON.png (124.44 KB, 下載次數: 81)

后面板

后面板

51hei.png (5.32 KB, 下載次數: 80)

51hei.png

labview實訓123.rar

128.6 KB, 下載次數: 93, 下載積分: 黑幣 -5

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:328014 發表于 2020-4-26 23:41 | 只看該作者
樓主的單片機源程序:
  1. //******************************************************************************************//
  2. //        程序名稱:28BYJ-48步進電機測試程序
  3. //        功能描述:步進電機分別以單四拍、雙四拍、八拍驅動方式驅動,正反轉各360度
  4. //        單片機:  AT89S52,FOSC=12MHz
  5. //        硬件連接:P1.0----INA
  6. //            P1.1----INB
  7. //            P1.2----INC
  8. //            P1.3----IND
  9. //            驅動板的驅動電壓和芯片邏輯供電電壓均為5V;         
  10. //            步進電機紅線接+5V驅動電壓,橙黃粉藍分別接OUT1、OUT2、OUT3、OUT4,
  11. //            注意外接電源要與單片機共地。
  12. //        維護記錄:2012.11.2 雙龍電子科技
  13. //*****************************************************************************************//
  14. #include<reg52.h>
  15. #include <string.h>
  16. #define uint unsigned int
  17. #define uchar unsigned char
  18. uint i,j,k;
  19. uint N=128;//主軸旋轉度數設置,度數D=N*45/減速比,采用1:16減速比的步進電機,旋轉度數即為D=128*45/16=360度
  20. unsigned int cycle=0,Ti=2048;

  21. uchar code single_pos[4]={0x07,0x0b,0x0d,0x0e};//單四拍驅動方式正轉表 D-C-B-A
  22. uchar code single_rev[4]={0x0e,0x0d,0x0b,0x07};//單四拍驅動方式反轉表 A-B-C-D
  23. uchar code double_pos[4]={0x06,0x03,0x09,0x0c};//雙四拍驅動方式正轉表 AD-DC-CB-BA
  24. uchar code double_rev[4]={0x0c,0x09,0x03,0x06};//雙四拍驅動方式反轉表 AB-BC-CD-DA
  25. uchar code eight_pos[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};//八拍驅動方式正轉表 AD-D-DC-C-CB-B-BA-A
  26. uchar code eight_rev[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};//八拍驅動方式反轉表 A-AB-B-BC-C-CD-D-DA

  27. void m_single_pos();
  28. void m_single_rev();
  29. void m_double_pos();
  30. void m_double_rev();
  31. void m_eight_pos();
  32. void m_eight_rev();

  33. void delay_us(unsigned int aa);
  34. unsigned char tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
  35. unsigned char init=0,t=0;
  36. unsigned char m,tt;
  37. unsigned char rxch;//????
  38. unsigned char ReceiveFinish,ReceiveStart,ReceiveCnt;
  39. unsigned char RxdBuf;
  40. unsigned int TxdBuf[3];
  41. bit read_flag=0;


  42. /********************??z??**************************************/
  43. void delay(uint z)
  44. {
  45.         uint x,y;
  46.         for(x=z;x>0;x--)
  47.                 for(y=110;y>0;y--);
  48. }
  49. /*******************???????(N*45/16)?***********************/


  50. void init_serialcom(void)//????????
  51. {
  52.         SCON=0x50;        //UART???1,8???, ????
  53.         TMOD=0x20;        //???1???2,8?????
  54.         PCON=0x80;        //SMOD=1;
  55.         TH1 = 0xFA;        //Baud:9600fosc=11.0592MHz//TL1 = 0XFA;
  56.         IE |= 0x90;        //Enable Serial Interrupt
  57.         TR1 = 1;                 //timer 1 run

  58.         TH0=0X3C;
  59.         TL0=0XB0;
  60.         TR0=1;
  61.         ET0=1;
  62. }        


  63. void serial_isr(void) interrupt 4 //????????
  64. {
  65.         unsigned char Rxdtemp;
  66.         if(RI)
  67.         {
  68.                 RI=0;
  69.                 Rxdtemp = SBUF ;
  70.                 RxdBuf=Rxdtemp;
  71.         }
  72. }
  73. void send_msg(char * msg)
  74. {
  75.     int i;
  76.     i = 0;
  77.     while(msg[i] != '\0')
  78.     {
  79.         SBUF=msg[i];
  80.                                 while(!TI);  //?????????  
  81.                                         TI=0;
  82.         i++;
  83.     }
  84. }

  85. void time0_isr(void) interrupt 1
  86. {
  87.         TH0=0X3C;
  88.         TL0=0XB0;
  89. //        pwm=1;
  90.         t++;
  91.         if(t==20)
  92.         {
  93.                 t=0;
  94. //                pwm=0;
  95.                 TH0=0X3C;
  96.                 TL0=0XB0;
  97.         }
  98. }
  99. void send_char_com(char ch) //?????????
  100. {
  101.         SBUF=ch;
  102.         while(!TI);  //?????????  
  103.                 TI=0;
  104.         ES=1;
  105.         //led=0;
  106.         delay(200);
  107.         //led=1;
  108. }
  109. void main()
  110. {
  111.         char *msg;
  112.         init_serialcom();
  113.         memset(TxdBuf,0,sizeof(TxdBuf));
  114.         msg = "\r\nReceiver is ready! \0";
  115.         send_msg(msg);
  116.         P0=0x00;//數碼管初始值
  117.         while(1)
  118.         {
  119.                 switch(RxdBuf)
  120.                         {
  121.                                 case 0xF0: m_single_pos(); break;  
  122.                                 case 0xF1: m_single_rev(); break;
  123.                                 case 0xF2: m_double_pos(); break;
  124.                                 case 0xF3: m_double_rev(); break;       
  125.                                 case 0xF4: m_eight_pos(); break;
  126.                                 case 0xF5: m_eight_rev(); break;
  127.                                 default: break;
  128.                         }
  129.                 }
  130. }

  131. /*******************單四拍驅動正轉(N*45/16)度***********************/
  132. void m_single_pos()
  133. {
  134.         P0=tab[0];
  135.         for(k=0;k<N;k++)
  136.         {
  137.                 j=0;
  138.                 for(i=0;i<4;i++)//在單四拍工作方式下,一個脈沖轉子轉動角度為5.625*2=11.25度,四拍共45度
  139.                 {
  140.                         P1=single_pos[j];
  141.                         delay(5);//適當延時,保證轉子轉動時間,延時過短會丟拍
  142.                         j++;
  143.                 }
  144.         }
  145. }

  146. /*******************單四拍驅動反轉(N*45/16度)***********************/
  147. void m_single_rev()
  148. {
  149.         P0=tab[1];//數碼管顯示的數
  150.         for(k=0;k<N;k++)
  151.         {
  152.                 j=0;
  153.                 for(i=0;i<4;i++)//在單四拍工作方式下,一個脈沖轉子轉動角度為5.625*2=11.25度,四拍共45度
  154.                 {
  155.                         P1=single_rev[j];
  156.                         delay(5);
  157.                         j++;
  158.                 }
  159.         }
  160. }

  161. /*******************雙四拍驅動正轉(N*45/16)度***********************/
  162. void m_double_pos()
  163. {
  164.         P0=tab[2];
  165.         for(k=0;k<N;k++)
  166.         {
  167.                 j=0;
  168.                 for(i=0;i<4;i++)//在雙四拍工作方式下,一個脈沖轉子轉動角度為5.625*2=11.25度,四拍共45度
  169.                 {
  170.                         P1=double_pos[j];
  171.                         delay(8);
  172.                         j++;
  173.                 }
  174.         }
  175. }
  176. /*******************雙四拍驅動反轉(N*45/16)度***********************/
  177. void m_double_rev()
  178. {
  179.         P0=tab[3];
  180.         for(k=0;k<N;k++)
  181.         {
  182.                 j=0;
  183.                 for(i=0;i<4;i++)//在雙四拍工作方式下,一個脈沖轉子轉動角度為5.625*2=11.25度,四拍共45度
  184.                 {
  185.                         P1=double_rev[j];
  186.                         delay(8);
  187.                         j++;
  188.                 }
  189.         }
  190. }
  191. /*******************八拍驅動正轉(N*45/16)度***********************/
  192. void m_eight_pos()
  193. {
  194.         P0=tab[4];
  195.         for(k=0;k<N;k++)
  196.         {
  197.                 j=0;
  198.                 for(i=0;i<8;i++)//在八拍工作方式下,一個脈沖轉子轉動角度為5.625度,八拍共45度
  199.                 {
  200.                         P1=eight_pos[j];
  201.                         delay(2);
  202.                         j++;
  203.                 }
  204.         }
  205. }
  206. /*******************八拍驅動反轉(N*45/16)度***********************/
  207. void m_eight_rev()
  208. {
  209.         P0=tab[5];
  210.         for(k=0;k<N;k++)
  211.         {
  212.                 j=0;
  213.                 for(i=0;i<8;i++)//在八拍工作方式下,一個脈沖轉子轉動角度為5.625度,八拍共45度
  214.                 {
  215.                         P1=eight_rev[j];
  216.                         delay(2);
  217.                         j++;
  218.                 }
  219.         }
  220. }

  221. /****************????******************************/
  222. void delay_us(unsigned int aa)
  223. {
  224.         while(aa--);       
  225. }
復制代碼
回復

使用道具 舉報

板凳
ID:725525 發表于 2020-5-6 10:29 | 只看該作者
666,還可以與labview聯合仿真
回復

使用道具 舉報

地板
ID:940483 發表于 2024-8-7 10:31 | 只看該作者
怎么我仿真不出來呢
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人精品国产免费网站 | 亚洲区一区二 | 欧美区在线 | 亚洲国产一区二区三区四区 | 欧美一区二区视频 | 狠狠狠色丁香婷婷综合久久五月 | 久久精品久久久久久 | 男女又爽又黄视频 | 亚洲免费在线播放 | 国产极品车模吞精高潮呻吟 | 九九在线| 久久激情视频 | 国产精品久久久久影院色老大 | 国产成人综合一区二区三区 | 请别相信他免费喜剧电影在线观看 | 成人性视频免费网站 | www久久久 | 国产激情视频网 | 在线观看视频一区 | 久久国产亚洲 | 成人性视频免费网站 | 国产一级电影在线观看 | www.色午夜.com | 亚洲三级在线观看 | 日韩免费av网站 | 国产一区二区三区视频在线观看 | 国产成人精品亚洲日本在线观看 | 天天操精品视频 | 最近中文字幕第一页 | 射欧美 | 亚洲精品影院 | 99热热热 | 91视频网| 91在线观看视频 | 国产日韩视频 | 欧美又大粗又爽又黄大片视频 | 日韩精品一区二区三区在线播放 | 男人的天堂在线视频 | 一区中文字幕 | 亚洲不卡 | 黄色免费三级 |