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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機同步電機控制程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:451728 發表于 2019-1-9 10:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include<reg51.h>
  2. int n,m,k,temp;
  3. sbit run=P2^7;
  4. sbit stop=P2^3;
  5. sbit Frun=P2^6;
  6. sbit up=P2^5;
  7. sbit down=P2^4;  //定義操作按鍵 開始 停止 反轉 不同速度的控制口
  8. sbit X=P1^0;
  9. sbit Y=P1^1;
  10. sbit Z=P1^2;
  11. sbit W=P1^3;  //定義電機控制口
  12. sbit LSA=P1^5;
  13. sbit LSB=P1^6;
  14. sbit LSC=P1^7;  //定義數碼管顯示口
  15. void delay(int i) //家中常備 延時函數
  16. {
  17.         while(i--);        
  18. }
  19. void show(unsigned int k)  //動態數碼管顯示程序
  20. {        int d[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};                                       
  21.         char i;        
  22.         int b[8];
  23.         b[0]=0;
  24.          b[1]=0;
  25.         b[2]=0;
  26.         b[3]=(k/10000)%10;
  27.         b[4]=(k/1000)%10;
  28.         b[5]=(k/100)%10;
  29.         b[6]=(k/10)%10;
  30.         b[7]=k%10;

  31.         for(i=0;i<8;i++)
  32.         {
  33.                 switch(i)        
  34.                 {
  35.                         case(0):LSA=0;LSB=0;LSC=0; break;
  36.                         case(1):LSA=1;LSB=0;LSC=0; break;
  37.                         case(2):LSA=0;LSB=1;LSC=0; break;
  38.                         case(3):LSA=1;LSB=1;LSC=0; break;
  39.                         case(4):LSA=0;LSB=0;LSC=1; break;
  40.                         case(5):LSA=1;LSB=0;LSC=1; break;
  41.                         case(6):LSA=0;LSB=1;LSC=1; break;
  42.                         case(7):LSA=1;LSB=1;LSC=1; break;        
  43.                 }
  44.                 if(i==0&&temp==1)P0=0x71;
  45.                 if(i==5)P0=d[b[i]]|0x80;
  46.                 if(i>0)P0=d[b[i]];//發送段碼
  47.                 delay(100); //間隔一段時間掃描        
  48.                 P0=0x00;//消隱
  49.         }
  50.         
  51.         
  52. }

  53. void Zturn()  //正轉程序
  54. {        
  55.         X=0;Y=0;Z=1;W=0;n=0; //狀態
  56.         while(n/m==0);         //延時
  57.         X=1;Y=0;Z=0;W=0;n=0;
  58.         while(n/m==0);
  59.         X=0;Y=0;Z=0;W=1;n=0;
  60.         while(n/m==0);
  61.         X=0;Y=1;Z=0;W=0;n=0;
  62.         while(n/m==0);        
  63.         
  64. }
  65. void Fturn()  //反轉程序
  66. {
  67.         X=0;Y=1;Z=0;W=0;n=0;
  68.         while(n/m==0);
  69.         X=0;Y=0;Z=0;W=1;n=0;
  70.         while(n/m==0);
  71.         X=1;Y=0;Z=0;W=0;n=0;
  72.         while(n/m==0);
  73.         X=0;Y=0;Z=1;W=0;n=0;
  74.         while(n/m==0);        
  75. }
  76. void time1_ISR()interrupt 1
  77. {
  78.         show(k);  //調用數碼管顯示函數
  79.         TH0=0XD8;TL0=0XF0;
  80. }
  81. void time0_ISR()interrupt 3
  82. {        
  83.         
  84.         n++;                                 //每一毫秒自加一次
  85.         TH1=0XFC;TL1=0X18;         //定時器復位
  86.         
  87. }
  88. void main()
  89. {
  90. TMOD=0x11;TH1=0XFC;TL1=0X18;TR1=1;
  91. TH0=0XD8;TL0=0XF0;TR0=1;        //使用定時器1和定時器0
  92. ET1=1;ET0=1;EA=1;           //打開定時器1的中斷
  93. P2=0XFF;
  94. while(1)
  95.         {
  96.                  if(run==0)
  97.                 {        m=50;temp=0;
  98.                         while(stop&Frun)
  99.                         {
  100.                                                         
  101.                                 if(up==0){m=m-1;if(m<6){m=6;}}
  102.                                 if(down==0){m=m+1;if(m>1000){m=1000;}}
  103.                                 k=6000000/80/m;                                
  104.                                  Zturn();
  105.                         }
  106.                 }                                                
  107.                 if(Frun==0)
  108.                 {        m=50;temp=1;
  109.                         while(run&stop)
  110.                         {
  111.                                                         
  112.                                 if(up==0){m=m-1;if(m<6){m=6;}}
  113.                                 if(down==0){m=m+1;if(m>1000){m=1000;}}
  114.                                 k=6000000/80/m;        
  115.                                 Fturn();
  116.                         }
  117.                 }
  118.                 if(stop==0){k=0;temp=0;}        
  119.         }
  120. }        
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:451728 發表于 2019-1-9 10:52 | 只看該作者
程序代碼

同步電機控制.zip

28.61 KB, 下載次數: 6, 下載積分: 黑幣 -5

回復

使用道具 舉報

板凳
ID:1 發表于 2019-1-10 03:18 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

地板
ID:451728 發表于 2019-1-10 09:24 | 只看該作者
多機通信

通信步進電機接收.zip

16.56 KB, 下載次數: 4, 下載積分: 黑幣 -5

通信步進電機控制.zip

26.16 KB, 下載次數: 3, 下載積分: 黑幣 -5

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区福利视频 | 先锋资源站 | 请别相信他免费喜剧电影在线观看 | 国产一区二区三区四区hd | 亚洲午夜精品视频 | 国产精品福利视频 | 日韩中文在线视频 | 久久久久久av| 天堂一区二区三区 | 日韩一区二区三区视频 | 一级二级三级在线观看 | 国产精品区一区二 | 一本大道久久a久久精二百 欧洲一区二区三区 | 国产成人免费在线观看 | 日韩精品一区二区三区 | 一级免费黄色 | 精品美女久久久久久免费 | 欧美一级黄色免费看 | 欧美亚洲国产日韩 | 亚洲小说图片 | 国产999精品久久久久久 | 日本成人三级电影 | 国产视频一区二区 | 玩丰满女领导对白露脸hd | 午夜电影网 | 午夜精品久久久久久久久久久久久 | 黄色欧美视频 | 国产高清在线精品 | 国产欧美视频一区二区 | 久久精品一区 | 91看片在线 | 欧美h版| 国产免费一级一级 | 国产一区二区三区免费 | 成人精品一区二区三区中文字幕 | 一区欧美| 日韩在线免费 | 激情黄色在线观看 | 91色在线 | 伊人伊人伊人 | 国产精品免费在线 |