找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5924|回复: 11
收起左侧

激光雕刻机制作资料 附单片机源程序

  [复制链接]
ID:384216 发表于 2020-8-28 22:32 | 显示全部楼层 |阅读模式
这次发的比较完整,下位机的原理图,PCB,源代码都有,上位机由于整个工程压缩之后还是超过限制,所以只发了代码,大家可以参考一下,然后自己修改。
51hei.png

单片机源程序如下:
  1. /*********************************************************************************
  2. * 【版    本】: 1.0
  3. * 【实验平台】: QX-MCS51 单片机开发板
  4. * 【外部晶振】: 11.0592mhz       
  5. * 【主控芯片】: STC89C52RC
  6. * 【编译环境】: Keil μVisio4       
  7. * 【程序功能】: 通过串口接收电脑指令并控制相关执行机构完成激光雕刻过程                                                                                   
  8. * 【使用说明】: 比特率9600,校验位:无 停止位:1
  9. **********************************************************************************/
  10. /*【指令说明】/'A'雕刻指令////'B'x正转指令////'C'x反转指令////'D'y正转指令////'E'复位指令
  11. **********************************************************************************/
  12. /*预处理命令*/
  13. #include <reg52.h>                   //包含单片机寄存器的头文件
  14. #define uchar unsigned char
  15. #define uint unsigned int
  16. uchar num,a;
  17. int xfwjs,yfwjs;    //复位步数计数
  18. int js2,js3;        //复位计数
  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;                //激光开关引脚
  24. uint xjs=0;                //
  25.                 //
  26. uint yjs=0;                //
  27.                 //
  28. void ms(uint ms)//延时函数
  29. {
  30.   uint i,j;
  31.   for(i=ms;i>0;i--)
  32.   for(j=115;j>0;j--);
  33. }
  34. /*
  35. ********************************************************************************
  36. ** 函数名称 : main(void)
  37. ** 函数功能 : 主函数
  38. ********************************************************************************
  39. */
  40. void xf()//X正转函数
  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反转函数
  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正转函数
  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反转函数
  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()//雕刻函数
  91. {
  92. dykg=0;                 //打开打印头
  93. ms(25);                                    //灼烧时间
  94. dykg=1;                 //关闭打印头

  95. }
  96. void fw() //复位函数
  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;                   //用定时器设置串口波特率           9600
  112.         TH1=0xfd;
  113.         TL1=0xfd;
  114.         TR1=1;
  115.         REN=1;          //串口初始化
  116.         SM0=0;
  117.         SM1=1;
  118.         EA=1;           //开启总中断
  119.         ES=1;
  120.         xfwjs=0;
  121.         yfwjs=0;   
  122.         while(1)
  123.         {
  124.                 if(num==1)    //判断是否有串口数据的传送
  125.                 {
  126.                        
  127.                         ES=0;
  128.                         num=0;
  129.                         if(a!='E')
  130.                         {
  131.                         SBUF=a;                         //返回单片机收到的指令到计算机
  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;                        //接收数据SBUF,即将计算机的数据接收。         
  144.                    switch(a)    //判断串口接收的数据
  145.                         {
  146.                                 case 'A':dk();break; //雕刻指令
  147.                                 case 'D':yz();yfwjs++;break;  //y正转一步
  148.                                 case 'B':xz();xfwjs++;break; //X正转一步
  149.                                 case 'C':xf();xfwjs--;break;  //X反转一步
  150.                                 case 'E':fw();break;  //激光回到原点
  151.                                 case 'F':dk();xz();xfwjs++;break;  //雕刻,X正转一步
  152.                                 case 'G':dk();xf();xfwjs--;break;  //雕刻,X反转一步                       
  153.                             default :break;
  154.                         }                          
  155.         num=1;
  156. }

复制代码

全部资料51hei下载地址:
激光雕刻机资料.zip (7.18 MB, 下载次数: 382)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:870445 发表于 2021-12-8 19:54 | 显示全部楼层
谢谢楼主的无私奉献
回复

使用道具 举报

ID:87631 发表于 2022-2-12 10:23 | 显示全部楼层
真入门级,不错。要是搞个G代码的就更OK了
回复

使用道具 举报

ID:1015469 发表于 2022-4-3 20:37 | 显示全部楼层
进来学习的,谢谢楼主的无私奉献
回复

使用道具 举报

ID:981826 发表于 2022-4-15 17:23 | 显示全部楼层
谢谢楼主的无私奉献
回复

使用道具 举报

ID:872228 发表于 2022-4-21 17:19 | 显示全部楼层
若有上位机更好!
回复

使用道具 举报

ID:142383 发表于 2022-4-26 16:39 | 显示全部楼层
下载学习学习,感谢楼主的无私奉献!
回复

使用道具 举报

ID:51321 发表于 2022-10-28 12:25 | 显示全部楼层

进来学习的,谢谢楼主的无私奉献
回复

使用道具 举报

ID:1042619 发表于 2022-11-21 11:37 | 显示全部楼层
    感谢楼主无私奉献!STC89C52RC的确经典,后面可以考虑升级到支持硬件USB下载、硬件USB仿真系列的STC8H8K64U,再也没有理由外接 昂贵的PL2303,FT232 等 USB 转串口芯片了.支持您一把STC8H8K64U核心板-开天斧试试效果。

开天斧-OLED12864.jpg
回复

使用道具 举报

ID:281840 发表于 2023-7-13 03:01 | 显示全部楼层
谢谢!刚好想学电机控制@!
回复

使用道具 举报

ID:321898 发表于 2023-7-13 07:32 | 显示全部楼层
谢谢楼主的无私奉献
回复

使用道具 举报

ID:423454 发表于 2024-4-18 18:27 | 显示全部楼层
大佬这个上位机在哪里下载激光雕刻
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表