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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

繞絲設備第2代機設計-帶單片機源程序-供參考

[復制鏈接]
跳轉到指定樓層
樓主
基礎不是很好,程序寫的不簡潔,但是實現了功能,希望會繼續努力,寫的更簡單點

視頻:




51單片機源程序:
  1. #include <STC12C2052AD.H> //頭文件
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. volatile uint M1=0;//皮帶輪電機所轉脈沖計數。
  6. volatile uint M2=0;//繞絲電機所轉脈沖計數。
  7. uchar a=0,b=0,c=13;//a:皮帶輪電機中斷頻率計數、b:繞絲電機中斷頻率計數、c:設置繞絲電機速度臺階,以實現多段加速
  8. bit flag1=0,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,flag7=0;  //標志位

  9. sbit k1=P3^2;//啟動鍵
  10. sbit k2=P3^3;//復位鍵

  11. sbit EN1=P1^7;//皮帶輪電機使能控制線。
  12. sbit fangxiang1=P1^6;//皮帶輪電機正反轉控制線。
  13. sbit PWM1=P1^5;//皮帶輪電機脈沖信號。

  14. sbit EN2=P1^4;//繞絲電機使能控制線。
  15. sbit fangxiang2=P1^3;//繞絲電機正反轉控制線。
  16. sbit PWM2=P1^2;//繞絲電機脈沖信號。

  17. void delay(unsigned char i)//延時函數
  18. {
  19.         unsigned x,y;
  20.         for(x=i;x>0;x--)
  21.                 for(y=110;y>0;y--);
  22. }

  23. void keyscan()
  24. {                                                       
  25.         if(flag4==1)                  //在正轉完成后,復位功能才起效,在正轉期間,復位按鍵不起作用。
  26.                 {       
  27.                         if(k2==0)          
  28.                                 delay(15);
  29.                                 if(k2==0)
  30.                                 {
  31.                                         while(!k2);
  32.                                         {
  33.                                                 M1=0;
  34.                                                 M2=0;
  35.                                                 EN1=1;//關閉皮帶輪電機使能控制
  36.                                                 EN2=1;
  37.                                                 TR1=1;//啟動定時器1,進行復位動作。
  38.                                         }          
  39.                         }
  40.                 }
  41.         if(flag4==0)
  42.         {       
  43.         if(k1==0)
  44.                 delay(15);
  45.                 if(k1==0)
  46.                 {
  47.                         while(!k1);
  48.                         EN1=1;//關閉皮帶輪電機使能控制
  49.                         EN2=1;//關閉繞絲電機使能控制
  50.                         fangxiang1=0;//起始給皮帶輪電機一個方向
  51.                         fangxiang2=0;//起始給繞絲電機一個方向
  52.                         TR0=1;//啟動定時器0
  53.                 }
  54.         }
  55. }
  56. void main()
  57. {  
  58.         TMOD=0x11;//設置T0為模式1
  59.         TH0=0xFF; //0.1ms中斷一次
  60.         TL0=0x9C;
  61.         TH1=0xFC; //0.8ms中斷一次
  62.         TL1=0xE0;  
  63.         EA=1;
  64.         ET0=1;
  65.         ET1=1;
  66.         EN1=0;//起始打開皮帶輪電機使能端
  67.         EN2=0;//起始打開皮帶輪電機使能端
  68.         while(1)
  69.         {
  70.                 keyscan();
  71.                 if(flag1==1)
  72.                 {
  73.                                 flag1=0;
  74.                                 if(a==20)
  75.                                         {                                               
  76.                                                 a=0;
  77.                                                 M1++;
  78.                                                 PWM1=~PWM1;          //皮帶輪電機脈沖頻率--定速250HZ
  79.                                                 if(M1==1245)  //正轉3圈后,方向取反,設置標志4=1,復位鍵才起作用。20*0.1*1245=2.49秒
  80.                                                 {
  81.                                                         M1=0;
  82.                                                         EN1=0;                                                       
  83.                                                 }
  84.                                         }
  85.                         if(c==5)                                   //轉至最高速度后,停機
  86.                         {
  87.                                         TR0=0;                          //關定時器T0
  88.                                         TF0=0;                          //以下所有標志清零
  89.                                         M1=0;
  90.                                         M2=0;
  91.                                         EN1=0;                          //打開皮帶輪電機使能。(皮帶輪電機驅動板停機時有噪音)
  92.                                         EN2=1;                                                                                                       
  93.                                         fangxiang1=1;        //兩電機方向取反
  94.                                         fangxiang2=1;        //
  95.                                         a=0;
  96.                                         b=0;
  97.                                         c=13;                        //重新賦值
  98.                                         flag4=1;                //標志4置1,復位按鍵開始起作用
  99.                                         flag3=0;                //標志3清零                               
  100.                         }
  101.                         else   
  102.                         {         
  103.                          if(b>=c)             //設置8段速度:第一段:
  104.                          {
  105.                                  b=0;
  106.                                 PWM2=~PWM2;
  107.                                 M2++;
  108.                                 if(M2==325)         //每325個脈沖后,調一次速
  109.                                 {
  110.                                         M2=0;
  111.                                         b=0;
  112.                                         c--;         //繞絲電機臺階數減1。
  113.                                 }  
  114.                          }
  115.                    }
  116.                 }       
  117.         }
  118. }
  119. void timer0() interrupt 1         //繞絲中斷程序       
  120. {
  121.         TH0=0xFF; //0.1ms中斷一次
  122.         TL0=0x9C;
  123.         a++;//更改皮帶輪電機脈沖頻率。
  124.         b++;//更改繞絲電機脈沖頻率。
  125.         flag1=1;//設置標志位,使進入主程序,節省中斷程序處理時間。                       
  126. }

  127. void timer1() interrupt 3          //復位中斷程序
  128. {
  129.         TH1=0xFC; //0.8ms中斷一次
  130.         TL1=0xE0;
  131.         PWM1=~PWM1;
  132.                 M1++;
  133.                 if(M1==1245)  //復位脈沖計數,完成后,清零M1; 0.9秒完成
  134.                 {
  135.                         M1=0;
  136.                         EN1=0;          //打開皮帶輪電機使能控制
  137.                 }
  138.         PWM2=~PWM2;
  139.         M2++;
  140.                 if(M2==2600)         //半步運行 就是2600個脈沖        2.08秒完成
  141.                 {
  142.                                   TR1=0;         //等待繞絲電機復位完畢后,將所有數據清零。
  143.                                 略……………………
復制代碼



完整資料下載:
2代機.rar (2.53 MB, 下載次數: 12)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产美女自拍视频 | 99精品国产一区二区三区 | 自拍亚洲 | 国产精品久久久久久久久久久久 | 久草成人 | 黄色片亚洲 | 久久精品免费观看 | 国产日韩亚洲欧美 | 国产一级大片 | 欧美日韩综合 | 91精品国产综合久久婷婷香蕉 | 很黄很污的网站 | 精品国产一区二区三区成人影院 | 99久久精品免费看国产四区 | 久久视频精品在线 | 91亚洲精选 | 一级毛片在线看 | 成人精品鲁一区一区二区 | 久草视频观看 | 欧美国产日韩成人 | 黄色片免费看 | 成人精品在线观看 | 在线播放国产一区二区三区 | 天天综合网天天综合色 | 国产精品成人久久久久 | 午夜欧美 | 亚洲精选一区二区 | 国产精品久久久乱弄 | 成人激情视频 | 亚洲欧洲激情 | 欧美成人激情 | 国产成人一区二区三区 | 国产视频h | 久久久久久综合 | 天天久久| 国产精品一区二区免费 | 成人一区在线观看 | 久久久久久久一区 | 日韩影院在线观看 | 99久久夜色精品国产亚洲96 | 亚洲免费精品 |