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

標題: 繞絲設備第2代機設計-帶單片機源程序-供參考 [打印本頁]

作者: 周鵬    時間: 2017-1-11 09:06
標題: 繞絲設備第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)





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩精品二区 | 色六月婷婷 | 日韩国产精品一区二区 | 精品一区二区三区四区 | 91色网站 | 一级毛片在线 | 日韩五十路| 日韩在线观看中文字幕 | 欧美久久久久久久 | 日本国产欧美 | 在线观看视频国产 | 天堂成人在线 | 毛片毛片毛片毛片毛片 | 中文字幕一区二区三区在线观看 | 日本精品视频在线观看 | 一级黄色片网站 | 三年中文在线看免费观看 | 色婷婷香蕉在线一区二区 | 中文在线观看免费高清 | av观看网站 | 超碰福利在线 | 国产精品一区二区三区不卡 | 久久机热这里只有精品 | 成人性色生活片 | 国产精品成人免费视频 | 黄色小视频免费看 | 久久靖品 | 国产高清免费 | 影音先锋国产精品 | 欧洲精品一区 | 久久一区二区三区四区 | 青青青视频在线 | 欧美激情视频一区 | av手机天堂网 | 亚洲激情自拍 | 天天干天天看 | 亚洲视频二区 | 五月婷婷丁香六月 | 四虎影院最新网址 | 日韩av在线免费播放 | 午夜在线影院 |