找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8387|回復(fù): 12
收起左側(cè)

激光雕刻機(jī)制作資料 附單片機(jī)源程序

  [復(fù)制鏈接]
ID:384216 發(fā)表于 2020-8-28 22:32 | 顯示全部樓層 |閱讀模式
這次發(fā)的比較完整,下位機(jī)的原理圖,PCB,源代碼都有,上位機(jī)由于整個(gè)工程壓縮之后還是超過(guò)限制,所以只發(fā)了代碼,大家可以參考一下,然后自己修改。
51hei.png

單片機(jī)源程序如下:
  1. /*********************************************************************************
  2. * 【版    本】: 1.0
  3. * 【實(shí)驗(yàn)平臺(tái)】: QX-MCS51 單片機(jī)開(kāi)發(fā)板
  4. * 【外部晶振】: 11.0592mhz       
  5. * 【主控芯片】: STC89C52RC
  6. * 【編譯環(huán)境】: Keil μVisio4       
  7. * 【程序功能】: 通過(guò)串口接收電腦指令并控制相關(guān)執(zhí)行機(jī)構(gòu)完成激光雕刻過(guò)程                                                                                   
  8. * 【使用說(shuō)明】: 比特率9600,校驗(yàn)位:無(wú) 停止位:1
  9. **********************************************************************************/
  10. /*【指令說(shuō)明】/'A'雕刻指令////'B'x正轉(zhuǎn)指令////'C'x反轉(zhuǎn)指令////'D'y正轉(zhuǎn)指令////'E'復(fù)位指令
  11. **********************************************************************************/
  12. /*預(yù)處理命令*/
  13. #include <reg52.h>                   //包含單片機(jī)寄存器的頭文件
  14. #define uchar unsigned char
  15. #define uint unsigned int
  16. uchar num,a;
  17. int xfwjs,yfwjs;    //復(fù)位步數(shù)計(jì)數(shù)
  18. int js2,js3;        //復(fù)位計(jì)數(shù)
  19. sbit xmz1=P2^0;            //X軸脈沖引腳1
  20. sbit xmz2=P2^1;                //X軸脈沖引腳2
  21. sbit ymz1=P2^2;                //Y軸脈沖引腳1
  22. sbit ymz2=P2^3;                //Y軸脈沖引腳2
  23. sbit dykg=P2^7;                //激光開(kāi)關(guān)引腳
  24. uint xjs=0;                //
  25.                 //
  26. uint yjs=0;                //
  27.                 //
  28. void ms(uint ms)//延時(shí)函數(shù)
  29. {
  30.   uint i,j;
  31.   for(i=ms;i>0;i--)
  32.   for(j=115;j>0;j--);
  33. }
  34. /*
  35. ********************************************************************************
  36. ** 函數(shù)名稱 : main(void)
  37. ** 函數(shù)功能 : 主函數(shù)
  38. ********************************************************************************
  39. */
  40. void xf()//X正轉(zhuǎn)函數(shù)
  41. {

  42. switch(xjs)
  43. {
  44. case 0:xjs=1;xmz1=1;xmz2=1; break;
  45. case 1:xjs=2;xmz1=1;xmz2=0; break;
  46. case 2:xjs=3;xmz1=0;xmz2=0; break;
  47. case 3:xjs=0;xmz1=0;xmz2=1; break;
  48. default:break;
  49. }
  50. ms(2);
  51. }
  52.   void xz()//X反轉(zhuǎn)函數(shù)
  53. {
  54.    
  55. switch(xjs)
  56. {
  57. case 2:xjs=1;xmz1=1;xmz2=1; break;
  58. case 3:xjs=2;xmz1=1;xmz2=0; break;
  59. case 0:xjs=3;xmz1=0;xmz2=0; break;
  60. case 1:xjs=0;xmz1=0;xmz2=1; break;
  61. default:break;
  62. }
  63.   ms(2);
  64. }
  65. void yf()//y正轉(zhuǎn)函數(shù)
  66. {
  67.   
  68. switch(yjs)
  69. {
  70. case 0:yjs=1;ymz1=1;ymz2=1; break;
  71. case 1:yjs=2;ymz1=1;ymz2=0; break;
  72. case 2:yjs=3;ymz1=0;ymz2=0; break;
  73. case 3:yjs=0;ymz1=0;ymz2=1; break;
  74. default:break;
  75. }
  76.   ms(2);
  77. }
  78.   void yz()//y反轉(zhuǎn)函數(shù)
  79. {
  80.   switch(yjs)
  81. {                                                                                       
  82. case 2:yjs=1;ymz1=1;ymz2=1; break;
  83. case 3:yjs=2;ymz1=1;ymz2=0; break;
  84. case 0:yjs=3;ymz1=0;ymz2=0; break;
  85. case 1:yjs=0;ymz1=0;ymz2=1; break;
  86. default:break;
  87. }
  88.   ms(2);
  89. }
  90. void dk()//雕刻函數(shù)
  91. {
  92. dykg=0;                 //打開(kāi)打印頭
  93. ms(25);                                    //灼燒時(shí)間
  94. dykg=1;                 //關(guān)閉打印頭

  95. }
  96. void fw() //復(fù)位函數(shù)
  97. {
  98. for(js2=0;js2<xfwjs;js2++)
  99.   {
  100.   xf();
  101.   }
  102.    for(js3=0;js3<yfwjs;js3++)
  103.   {
  104.   yf();
  105.   }
  106.   xfwjs=0;
  107.   yfwjs=0;
  108. }
  109. void main()
  110. {
  111.         TMOD=0x20;                   //用定時(shí)器設(shè)置串口波特率           9600
  112.         TH1=0xfd;
  113.         TL1=0xfd;
  114.         TR1=1;
  115.         REN=1;          //串口初始化
  116.         SM0=0;
  117.         SM1=1;
  118.         EA=1;           //開(kāi)啟總中斷
  119.         ES=1;
  120.         xfwjs=0;
  121.         yfwjs=0;   
  122.         while(1)
  123.         {
  124.                 if(num==1)    //判斷是否有串口數(shù)據(jù)的傳送
  125.                 {
  126.                        
  127.                         ES=0;
  128.                         num=0;
  129.                         if(a!='E')
  130.                         {
  131.                         SBUF=a;                         //返回單片機(jī)收到的指令到計(jì)算機(jī)
  132.                
  133.                         while(!TI);
  134.                         TI=0;
  135.                                 }
  136.                         ES=1;
  137.                 }
  138.         }       
  139. }                                                                                                                                                                                                                          
  140. void ser() interrupt 4
  141. {       
  142.         RI=0;
  143.         a=SBUF;                        //接收數(shù)據(jù)SBUF,即將計(jì)算機(jī)的數(shù)據(jù)接收。         
  144.                    switch(a)    //判斷串口接收的數(shù)據(jù)
  145.                         {
  146.                                 case 'A':dk();break; //雕刻指令
  147.                                 case 'D':yz();yfwjs++;break;  //y正轉(zhuǎn)一步
  148.                                 case 'B':xz();xfwjs++;break; //X正轉(zhuǎn)一步
  149.                                 case 'C':xf();xfwjs--;break;  //X反轉(zhuǎn)一步
  150.                                 case 'E':fw();break;  //激光回到原點(diǎn)
  151.                                 case 'F':dk();xz();xfwjs++;break;  //雕刻,X正轉(zhuǎn)一步
  152.                                 case 'G':dk();xf();xfwjs--;break;  //雕刻,X反轉(zhuǎn)一步                       
  153.                             default :break;
  154.                         }                          
  155.         num=1;
  156. }

復(fù)制代碼

全部資料51hei下載地址:
激光雕刻機(jī)資料.zip (7.18 MB, 下載次數(shù): 411)

評(píng)分

參與人數(shù) 2黑幣 +80 收起 理由
piplxh + 30
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:870445 發(fā)表于 2021-12-8 19:54 | 顯示全部樓層
謝謝樓主的無(wú)私奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

ID:87631 發(fā)表于 2022-2-12 10:23 | 顯示全部樓層
真入門級(jí),不錯(cuò)。要是搞個(gè)G代碼的就更OK了
回復(fù)

使用道具 舉報(bào)

ID:1015469 發(fā)表于 2022-4-3 20:37 | 顯示全部樓層
進(jìn)來(lái)學(xué)習(xí)的,謝謝樓主的無(wú)私奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

ID:981826 發(fā)表于 2022-4-15 17:23 | 顯示全部樓層
謝謝樓主的無(wú)私奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

ID:872228 發(fā)表于 2022-4-21 17:19 | 顯示全部樓層
若有上位機(jī)更好!
回復(fù)

使用道具 舉報(bào)

ID:142383 發(fā)表于 2022-4-26 16:39 | 顯示全部樓層
下載學(xué)習(xí)學(xué)習(xí),感謝樓主的無(wú)私奉獻(xiàn)!
回復(fù)

使用道具 舉報(bào)

ID:51321 發(fā)表于 2022-10-28 12:25 | 顯示全部樓層

進(jìn)來(lái)學(xué)習(xí)的,謝謝樓主的無(wú)私奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

ID:1042619 發(fā)表于 2022-11-21 11:37 | 顯示全部樓層
    感謝樓主無(wú)私奉獻(xiàn)!STC89C52RC的確經(jīng)典,后面可以考慮升級(jí)到支持硬件USB下載、硬件USB仿真系列的STC8H8K64U,再也沒(méi)有理由外接 昂貴的PL2303,FT232 等 USB 轉(zhuǎn)串口芯片了.支持您一把STC8H8K64U核心板-開(kāi)天斧試試效果。

開(kāi)天斧-OLED12864.jpg
回復(fù)

使用道具 舉報(bào)

ID:281840 發(fā)表于 2023-7-13 03:01 | 顯示全部樓層
謝謝!剛好想學(xué)電機(jī)控制@!
回復(fù)

使用道具 舉報(bào)

ID:321898 發(fā)表于 2023-7-13 07:32 | 顯示全部樓層
謝謝樓主的無(wú)私奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

ID:423454 發(fā)表于 2024-4-18 18:27 | 顯示全部樓層
大佬這個(gè)上位機(jī)在哪里下載激光雕刻
回復(fù)

使用道具 舉報(bào)

ID:25103 發(fā)表于 2024-8-25 15:18 | 顯示全部樓層
謝謝樓主的無(wú)私奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表