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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

PLC控制步進電機脈沖信號發(fā)生器電路原理圖PCB與單片機源碼

  [復制鏈接]
跳轉到指定樓層
樓主
ID:284341 發(fā)表于 2018-2-19 02:19 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
Altium Designer畫的步進電機脈沖控制板電路原理圖和PCB圖如下:(51hei附件中可下載工程文件)


步進電機脈沖信號發(fā)生器與plc的接線圖如下:

實物圖:



【簡要說明】
一、 尺寸:83mmX50mm X 15mm  長X寬X高
二、 主要芯片:單片機控制
三、 工作電壓:供電電壓直流5~24伏(寬電壓工作);
四、 特點:
1、單路信號輸出。
2、輸出占空比約為百分之五十的方波波形                 
4、輸出頻率由按鍵調節(jié),加速 減速按鍵控制
5、輸出頻率范圍1~4KHZ(40種脈沖頻率調節(jié))
6、輸出電壓(直流5V)
7、輸出電流225毫安(MAX)
8、上升/下降時間100 ns

單片機控制程序,帶掉電記憶功能源程序如下:
  1. /********************************************************************
  2.                             匯誠科技
  3. 使用芯片:STC15F104E
  4. 晶振:33MHZ
  5. 編譯環(huán)境:Keil
  6. 作者:zhangxinchunleo
  7. 【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!     

  8. *********************************************************************/
  9. /********************************************************************/
  10. #include "reg52.h"
  11. #include <intrins.H>
  12. #define uchar unsigned char //宏定義字符型變量
  13. #define uint  unsigned int        //宏定義整型變量
  14. /********************************************************************
  15.                             寄存器設置
  16. *********************************************************************/
  17. sfr IAP_DATA  =0xc2;         //數(shù)據(jù)寄存器
  18. sfr IAP_ADDRH =0xc3;         //地址寄存器
  19. sfr IAP_ADDRL =0xc4;         //地址寄存器
  20. sfr IAP_CMD   =0xc5;     //命令寄存器
  21. sfr IAP_TRIG  =0xc6;          //觸發(fā)寄存器
  22. sfr IAP_CONTR =0xc7;     //擦除寄存器

  23. /********************************************************************
  24.                             命令定義
  25. *********************************************************************/
  26. #define CMD_IDLE     0         //EEPROM無操作
  27. #define CMD_READ     1         //讀取字節(jié)
  28. #define CMD_PROGRAM  2         //寫入字節(jié)
  29. #define CMD_ERASE    3         //擦除字節(jié)
  30. /********************************************************************
  31.                        編程周期由晶振決定
  32. *********************************************************************/
  33. //#define ENABLE_IAP 0X80         //編程周期由晶振決定(如果<30MHZ選用此項)
  34. //#define ENABLE_IAP 0X81         //編程周期由晶振決定(如果<24MHZ選用此項)
  35. //#define ENABLE_IAP 0X82         //編程周期由晶振決定(如果<20MHZ選用此項)
  36.   #define ENABLE_IAP 0X83         //編程周期由晶振決定(如果<12MHZ選用此項)
  37. //#define ENABLE_IAP 0X84         //編程周期由晶振決定(如果<6MHZ選用此項)
  38. //#define ENABLE_IAP 0X85         //編程周期由晶振決定(如果<3MHZ選用此項)
  39. //#define ENABLE_IAP 0X86         //編程周期由晶振決定(如果<2MHZ選用此項)
  40. //#define ENABLE_IAP 0X87         //編程周期由晶振決定(如果<1MHZ選用此項)

  41. #define IAP_ADDRESS 0X0000         //內部EEPROM地址
  42. /********************************************************************
  43.                            定義繼輸入輸出
  44. *********************************************************************/
  45. sbit JIA=P3^1;         //
  46. sbit JIAN=P3^0;         //
  47. sbit EN=P3^2;         //
  48. sbit P35=P3^5;         //
  49. bit  write=0;
  50. /********************************************************************
  51.                             初始定義
  52. *********************************************************************/
  53. uint tcnt1; //脈沖計數(shù)
  54. uint t1;
  55. bit write;
  56. uchar sudu;

  57. /********************************************************************
  58.                             延時100MS函數(shù)
  59. *********************************************************************/

  60. void Delay100ms()               
  61. {
  62.         uchar i, j, k;
  63.         _nop_();
  64.         i = 5;
  65.         j = 144;
  66.         k = 71;
  67.         do
  68.         {
  69.                 do
  70.                 {
  71.                         while (--k);
  72.                 } while (--j);
  73.         } while (--i);
  74. }          
  75. /********************************************************************
  76.                             操作函數(shù)
  77. *********************************************************************/
  78. void IapIdle()
  79. {
  80.         IAP_CONTR=0;
  81.         IAP_CMD=0;
  82.         IAP_TRIG=0;
  83.         IAP_ADDRH=0X80;
  84.         IAP_ADDRL=0;
  85. }
  86. /********************************************************************
  87.                             讀取一個字節(jié)函數(shù)
  88. *********************************************************************/
  89. uchar IapReadByte(uint addr)
  90. {
  91.         uchar dat;  
  92.         IAP_CONTR=ENABLE_IAP;
  93.         IAP_CMD=CMD_READ;
  94.         IAP_ADDRL=addr;
  95.         IAP_ADDRH=addr>>8;
  96.         IAP_TRIG=0X5A;
  97.         IAP_TRIG=0XA5;
  98.         _nop_();
  99.         _nop_();
  100.         _nop_();
  101.         dat=IAP_DATA;
  102.         IapIdle();
  103.         return dat;
  104. }

  105. /********************************************************************
  106.                             寫入一個字節(jié)函數(shù)
  107. *********************************************************************/
  108. void IapProgramByte(uint addr,uchar dat)
  109. {

  110.         IAP_CONTR=ENABLE_IAP;
  111.         IAP_CMD=CMD_PROGRAM;
  112.         IAP_ADDRL=addr;
  113.         IAP_ADDRH=addr>>8;
  114.         IAP_DATA=dat;
  115.         IAP_TRIG=0X5A;
  116.         IAP_TRIG=0XA5;
  117.         _nop_();
  118.         _nop_();
  119.         _nop_();
  120.         IapIdle();
  121. }
  122. /********************************************************************
  123.                             擦除一個字節(jié)函數(shù)
  124. *********************************************************************/
  125. void IapEraseSector(uint addr)
  126. {
  127.         IAP_CONTR=ENABLE_IAP;
  128.         IAP_CMD=CMD_ERASE;
  129.         IAP_ADDRL=addr;
  130.         IAP_ADDRH=addr>>8;
  131.         IAP_TRIG=0X5A;
  132.         IAP_TRIG=0XA5;
  133.         _nop_();
  134.         _nop_();
  135.         _nop_();
  136.         IapIdle();
  137. }

  138. /********************************************************************
  139.                             按鍵判斷函數(shù)
  140. *********************************************************************/
  141. void KEY()

  142. {

  143. if(JIA==0){Delay100ms();if(JIA==0){Delay100ms();sudu++;write=1;if(sudu>=30)sudu=30;while(!JIA);Delay100ms();}}
  144. if(JIAN==0){Delay100ms();if(JIAN==0){Delay100ms();sudu--;write=1;if(sudu<=1)sudu=1;while(!JIAN);Delay100ms();}}
  145. if(EN==0)TR0=1;else TR0=0;

  146. switch(sudu)
  147. {
  148. case 1: t1=1;break;//2K
  149. case 2: t1=2;break;//1.6k
  150. case 3: t1=3;break;//1.33k
  151. case 4: t1=4;break;//2K
  152. case 5: t1=5;break;//1.6k
  153. case 6: t1=6;break;//1.33k
  154. case 7: t1=7;break;//1.14k
  155. case 8: t1=8;break;//1k
  156. case 9: t1=9;break;// 880
  157. case 10: t1=10;break;// 800
  158. case 11: t1=12;break;// 660
  159. case 12: t1=14;break;// 580
  160. case 13: t1=16;break;//        500
  161. case 14: t1=18;break;//        450
  162. case 15: t1=20;break;//        400
  163. case 16: t1=22;break;//        360
  164. case 17: t1=23;break;//        350
  165. case 18: t1=26;break;//        300
  166. case 19: t1=30;break;//        260
  167. case 20: t1=33;break;//        240
  168. case 21: t1=37;break;//        220
  169. case 22: t1=41;break;//        200
  170. case 23: t1=50;break;//        160
  171. case 24: t1=60;break;//        135
  172. case 25: t1=65;break;//        125
  173. case 26: t1=75;break;//        110
  174. case 27: t1=80;break;//        100
  175. case 28: t1=95;break;//        84
  176. case 29: t1=120;break;//60
  177. case 30: t1=150;break;//50
  178. case 31: t1=300;break;//30
  179. case 32: t1=1000;break;//8
  180. case 33: t1=10000;break;//1
  181. case 34: t1=20000;break;//1
  182. case 35: t1=30000;break;//1
  183. case 36: t1=40000;break;//1
  184. case 37: t1=60000;break;//1

  185. default:break;
  186. }
  187. }

  188. /********************************************************************
  189.                             定時中斷服務函數(shù)
  190. *********************************************************************/
  191. void t0(void) interrupt 1 using 0 //定時中斷服務函數(shù)
  192. {

  193.          tcnt1++;
  194.          if(tcnt1>=t1)
  195.            {
  196.              tcnt1=0;
  197.          P35=!P35;
  198.             }

  199. }

  200. /********************************************************************
  201.                             主函數(shù)
  202. *********************************************************************/
  203. void main()
  204. {
  205.    
  206.         uchar Q;
  207.         TMOD=0x02; //定時器工作在方式2
  208.         TH0=0x06; //對TH0 TL0 賦值
  209.         TL0=0x06;
  210.         TR0=0; //關定時
  211.         ET0=1; //開定時器
  212.         EA=1;  //開總中斷
  213.         P35=0;//脈沖輸出腳
  214.         Q=IapReadByte(0);
  215.         sudu=Q;
  216.        
  217.         while(1)
  218.     {
  219.     KEY();
  220.     if(write==1)
  221.     {
  222.    write=0;
  223.       IapEraseSector(0);            //擦除扇區(qū)
  224.       IapProgramByte(0,sudu);        //寫入數(shù)據(jù)
  225. ……………………

  226. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
步進電機脈沖控制板DXP資料.rar (353.87 KB, 下載次數(shù): 68)
PLC控制步進電機脈沖信號發(fā)生器原理圖及例程.doc (993.5 KB, 下載次數(shù): 55)
產(chǎn)品使用手冊.doc (933 KB, 下載次數(shù): 40)
原理圖.doc (32.5 KB, 下載次數(shù): 47)
控制程序,帶掉電記憶功能.rar (24.59 KB, 下載次數(shù): 60)


評分

參與人數(shù) 1黑幣 +10 收起 理由
qzyhlf + 10

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:171948 發(fā)表于 2021-11-3 10:31 | 只看該作者
被標題誤導了,不是PLC ,是單片機STC15F104E
回復

使用道具 舉報

板凳
ID:739610 發(fā)表于 2021-11-7 20:55 | 只看該作者
PLC本身就有高速脈沖輸出功能  Y0接驅動器PUL-  Y1接DIR-  不太明白這塊板子的作用
回復

使用道具 舉報

地板
ID:725249 發(fā)表于 2021-12-7 12:31 | 只看該作者
感謝分享,這資料真是太棒了!
回復

使用道具 舉報

5#
ID:1026069 發(fā)表于 2022-5-13 07:15 | 只看該作者
感謝分享,這資料真是太棒了!以前都是某一個寶上買的,現(xiàn)在可以自己做了。
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久久久久久久久久久久久 | 日本不卡视频在线播放 | 国产一级片91 | 日韩欧美中文字幕在线视频 | 精品一区二区三区在线视频 | 黄色片视频免费 | 一区二区三区四区五区在线视频 | 国产免费观看视频 | 国产激情综合五月久久 | 国产精品久久久久久亚洲调教 | 91在线精品一区二区 | 黄a免费看 | 成人免费网站视频 | 亚洲欧洲日韩精品 中文字幕 | 三级av在线 | 午夜成人免费视频 | 精品免费| 国产精品亚洲片在线播放 | av免费观看网站 | 久久久久久99 | 美女视频久久 | 国产精品久久久久久妇女6080 | 精品一区二区三区在线观看 | 99在线免费观看视频 | 一区二区三区观看视频 | 羞羞在线视频 | 日韩欧美在线一区 | 日韩在线不卡 | a级在线 | 国产在线一区观看 | av在线一区二区三区 | 国产精品免费大片 | 久久在线| 国产精品久久久久久久免费大片 | 亚洲一区欧美一区 | 国产99久久| 国产二区精品视频 | 亚洲三区视频 | 欧美久久久久 | 久久看精品 | 欧美日韩久久久 |