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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機DIY激光雕刻機視頻與源碼資料分享

  [復制鏈接]
跳轉到指定樓層
樓主
用兩個廢舊光驅制作的
這套代碼僅供參考,我的步進電機驅動芯片是某一個寶買的,連型號都沒有,只給了個時序圖,大家可以再我的代碼基礎上根據自己的驅動進行修改!

視頻:


所有資料51hei提供下載: DIY激光雕刻機.zip (8.79 MB, 下載次數: 454)



評分

參與人數 2黑幣 +56 收起 理由
nanxiaohai + 6 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

來自 2#
ID:384216 發表于 2020-2-18 11:29 來自手機 | 只看該作者
上位機源碼在下面
回復

使用道具 舉報

來自 3#
ID:384216 發表于 2022-3-6 17:44 | 只看該作者
// MFCdkjceshiDlg.cpp : 實現文件
//

#include "stdafx.h"
#include "MFCdkjceshi.h"
#include "MFCdkjceshiDlg.h"
#include "afxdialogex.h"
#include"Resource.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
int xssz[160][240];
HDC dcc;
int dydata = 0;
int zljs = 0;
int yddata[38401];
CString str9;
LPCTSTR zhilingbiao[8000000];
// 用于應用程序“關于”菜單項的 CAboutDlg 對話框

class CAboutDlg : public CDialogEx
{
public:
        CAboutDlg();

        // 對話框數據
#ifdef AFX_DESIGN_TIME
        enum { IDD = IDD_ABOUTBOX };
#endif

protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

                                                                                                                // 實現
protected:
        DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)
{
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
        CDialogEx::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()


// CMFCdkjceshiDlg 對話框

CMFCdkjceshiDlg::CMFCdkjceshiDlg(CWnd* pParent /*=NULL*/)
        : CDialogEx(IDD_MFCDKJCESHI_DIALOG, pParent)
{
        m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CMFCdkjceshiDlg::DoDataExchange(CDataExchange* pDX)
{
        CDialogEx::DoDataExchange(pDX);
        DDX_Control(pDX, IDC_MSCOMM1, m_com);

}

BEGIN_MESSAGE_MAP(CMFCdkjceshiDlg, CDialogEx)
        ON_WM_SYSCOMMAND()
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()

        ON_BN_CLICKED(IDC_BUTTON2, &CMFCdkjceshiDlg::OnBnClickedButton2)
        ON_BN_CLICKED(IDC_BUTTON3, &CMFCdkjceshiDlg::OnBnClickedButton3)
        ON_BN_CLICKED(IDC_BUTTON1, &CMFCdkjceshiDlg::OnBnClickedButton1)

END_MESSAGE_MAP()

// CMFCdkjceshiDlg 消息處理程序

BOOL CMFCdkjceshiDlg::OnInitDialog()
{
        CDialogEx::OnInitDialog();

        // 將“關于...”菜單項添加到系統菜單中。

        // IDM_ABOUTBOX 必須在系統命令范圍內。
        ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
        ASSERT(IDM_ABOUTBOX < 0xF000);

        CMenu* pSysMenu = GetSystemMenu(FALSE);
        if (pSysMenu != NULL)
        {
                BOOL bNameValid;
                CString strAboutMenu;
                bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
                ASSERT(bNameValid);
                if (!strAboutMenu.IsEmpty())
                {
                        pSysMenu->AppendMenu(MF_SEPARATOR);
                        pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
                }
        }

        // 設置此對話框的圖標。  當應用程序主窗口不是對話框時,框架將自動
        //  執行此操作
        SetIcon(m_hIcon, TRUE);                        // 設置大圖標
        SetIcon(m_hIcon, FALSE);                // 設置小圖標

                                                                        // TODO: 在此添加額外的初始化代碼

        return TRUE;  // 除非將焦點設置到控件,否則返回 TRUE
}

void CMFCdkjceshiDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
        if ((nID & 0xFFF0) == IDM_ABOUTBOX)
        {
                CAboutDlg dlgAbout;
                dlgAbout.DoModal();
        }
        else
        {
                CDialogEx::OnSysCommand(nID, lParam);
        }
}

// 如果向對話框添加最小化按鈕,則需要下面的代碼
//  來繪制該圖標。  對于使用文檔/視圖模型的 MFC 應用程序,
//  這將由框架自動完成。

void CMFCdkjceshiDlg::OnPaint()
{
        if (IsIconic())
        {
                CPaintDC dc(this); // 用于繪制的設備上下文

                SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

                // 使圖標在工作區矩形中居中
                int cxIcon = GetSystemMetrics(SM_CXICON);
                int cyIcon = GetSystemMetrics(SM_CYICON);
                CRect rect;
                GetClientRect(&rect);
                int x = (rect.Width() - cxIcon + 1) / 2;
                int y = (rect.Height() - cyIcon + 1) / 2;

                // 繪制圖標
                dc.DrawIcon(x, y, m_hIcon);
        }
        else
        {
                CDialogEx::OnPaint();
        }
}

//當用戶拖動最小化窗口時系統調用此函數取得光標
//顯示。
HCURSOR CMFCdkjceshiDlg::OnQueryDragIcon()
{
        return static_cast<HCURSOR>(m_hIcon);
}





void CMFCdkjceshiDlg::OnBnClickedButton2()// 選擇并打開圖像
{

        CString strFile = _T("");

        CFileDialog    dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Describe Files (*.jpg)|*.jpg|All Files (*.*)|*.*||"), NULL);

        if (dlgFile.DoModal())
        {
                strFile = dlgFile.GetPathName();
        }


        //以指定大小顯示圖像
        CImage image;
        int iii,jjj,ccc,ddd;
        image.Load(strFile);
        dcc = GetDC()->m_hDC;
        image.Draw(dcc, CRect(0, 0,240,160));
        int xsx, xsy, js = 0;
        int xsx1, xsy1=0;////////
        int wzjs = 0;
        for (xsy = 0; xsy <240; xsy++)
        {
                for (xsx = 0; xsx <160; xsx++)
                {
                        if (GetPixel(dcc, xsy, xsx)<9000000)
                        {
                                xssz[xsx][xsy] = 1;
                        }
                        else
                        {
                                xssz[xsx][xsy] = 2;
                        }
                }
        }
        int aaaa;
        /*************************************************************************/
        for (aaaa = 0; aaaa < 80; aaaa++)
        {
                for (xsx1 = 0; xsx1 <240; xsx1++)
                {
                        if (xssz[xsy1][xsx1] == 1)
                        {
                                if (xsx1 == wzjs)
                                {

                                        zhilingbiao[zljs] = L"A";
                                        zljs++;
                                }
                                else
                                {
                                        if (xsx1 < wzjs)
                                        {
                                                ccc = wzjs - xsx1;
                                                for (iii = 0; iii < ccc; iii++)
                                                {

                                                        zhilingbiao[zljs] = L"C";
                                                        zljs++;
                                                        wzjs--;
                                                }

                                                zhilingbiao[zljs] = L"A";
                                                zljs++;
                                        }
                                        else
                                        {
                                                ccc = xsx1 - wzjs;
                                                for (iii = 0; iii < ccc; iii++)
                                                {

                                                        zhilingbiao[zljs] = L"B";
                                                        zljs++;
                                                        wzjs++;
                                                }
                                                zhilingbiao[zljs] = L"A";
                                                zljs++;
                                        }
                                }
                        }
                }
                zhilingbiao[zljs] = L"D";
                zljs++;
                xsy1++;
                for (xsx1 = 240; xsx1>0; xsx1--)
                {
                        jjj = xsx1 - 1;
                        if (xssz[xsy1][jjj] == 1)
                        {
                                if (jjj == wzjs)
                                {

                                        zhilingbiao[zljs] = L"A";
                                        zljs++;
                                }
                                else
                                {
                                        if (jjj < wzjs)
                                        {
                                                ddd = wzjs - jjj;
                                                for (iii = 0; iii < ddd; iii++)
                                                {

                                                        zhilingbiao[zljs] = L"C";
                                                        zljs++;
                                                        wzjs--;
                                                }

                                                zhilingbiao[zljs] = L"A";
                                                zljs++;
                                        }
                                        else
                                        {
                                                ddd = jjj - wzjs;
                                                for (iii = 0; iii < ddd; iii++)
                                                {

                                                        zhilingbiao[zljs] = L"B";
                                                        zljs++;
                                                        wzjs++;
                                                }
                                                zhilingbiao[zljs] = L"A";
                                                zljs++;
                                        }
                                }
                        }
                }
                zhilingbiao[zljs] = L"D";
                zljs++;
                xsy1++;
        }
        zhilingbiao[zljs] = L"E";
        zljs++;
        /*************************************************************************/
        str9.Format(_T("%d"), zljs);
        SetDlgItemText(IDC_STATIC5, str9);
        SetDlgItemText(IDC_STATIC3, L"準備完畢");
        zljs = 0;
}
BEGIN_EVENTSINK_MAP(CMFCdkjceshiDlg, CDialogEx)
        ON_EVENT(CMFCdkjceshiDlg, IDC_MSCOMM1, 1, CMFCdkjceshiDlg::OnCommMscomm1, VTS_NONE)
END_EVENTSINK_MAP()


void CMFCdkjceshiDlg::OnCommMscomm1()// 接收事件處理函數
{
        VARIANT variant_inp;
        COleSafeArray safearray_inp;
        CString strInput;
        if (m_com.get_CommEvent() == 2)//值為2表示接收緩沖區內有字符
        {
                variant_inp = m_com.get_Input();//讀取緩沖區消息               
                str9.Format(_T("%d"), dydata);
                SetDlgItemText(IDC_STATIC5, str9);
                panduan();
        }
}
void CMFCdkjceshiDlg::OnBnClickedButton3()//打開串口
{
        CString Data;
        GetDlgItem(IDC_COMBO1)->GetWindowText(Data);
        int b = _ttoi(Data);
        if (m_com.get_PortOpen())//如果發現串口原來是打開的,關閉串口
                m_com.put_PortOpen(FALSE);
        m_com.put_CommPort(b);//選擇COM1端口
        m_com.put_InBufferSize(1024);//設置輸入緩沖區大小
        m_com.put_OutBufferSize(512);//設置輸出緩沖區大小
        m_com.put_Settings(L"9600,n,8,1");//設置波特率9600,無校驗,8個數據位,1個停止位
        if (!m_com.get_PortOpen())
        {
                m_com.put_PortOpen(TRUE);//打開串口
                m_com.put_RThreshold(1);//每當接收緩沖區中有1個字符,則接收串口數據
                m_com.put_InputLen(0);//設置當前緩沖區長度為0
                m_com.get_Input();//預讀緩沖區以清除殘留數據
                SetDlgItemText(IDC_STATIC2, L"連接成功!");
        }
        else
        {
                SetDlgItemText(IDC_STATIC2, L"連接失敗!");
        }
}

void CMFCdkjceshiDlg::OnBnClickedButton1()//開始雕刻
{
        SetDlgItemText(IDC_STATIC4, L"正在工作中");
        m_com.put_Output(COleVariant(L"Q"));//發送握手指令
}

void CMFCdkjceshiDlg::panduan()
{

        if (zhilingbiao[dydata] == L"E")
        {
               
                m_com.put_Output(COleVariant(zhilingbiao[dydata]));  //發送指令
                MessageBox(L"打印完畢");
                dydata = 0;
        }
        else
        {
                m_com.put_Output(COleVariant(zhilingbiao[dydata]));  //發送指令
                dydata++;
        }

}

評分

參與人數 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:363686 發表于 2018-8-12 12:33 | 只看該作者
學習貼收藏了,謝謝分享
回復

使用道具 舉報

5#
ID:387700 發表于 2018-8-21 21:36 | 只看該作者
求個上位機源碼 誰有啊
回復

使用道具 舉報

6#
ID:384216 發表于 2018-12-31 12:14 | 只看該作者
qq35404085 發表于 2018-8-21 21:36
求個上位機源碼 誰有啊

上位機源碼我可以發給你,是我自己寫的,雖然簡單了點但可以參考!
回復

使用道具 舉報

7#
ID:338818 發表于 2019-1-16 18:35 | 只看該作者
fox555w 發表于 2018-12-31 12:14
上位機源碼我可以發給你,是我自己寫的,雖然簡單了點但可以參考!

請問可以發給我嗎?
回復

使用道具 舉報

8#
ID:462797 發表于 2019-1-16 20:51 | 只看該作者
fox555w 發表于 2018-12-31 12:14
上位機源碼我可以發給你,是我自己寫的,雖然簡單了點但可以參考!

兄弟把上位機的代碼也發給我下唄,謝謝了。
回復

使用道具 舉報

9#
ID:471375 發表于 2019-1-23 23:54 來自手機 | 只看該作者
能發一下源碼嗎,新手制作,大佬求幫一下
回復

使用道具 舉報

10#
ID:452731 發表于 2019-1-27 23:34 | 只看該作者
那么,能否將制作過程和電路設計也貼出來呢?便于仿制啊
回復

使用道具 舉報

11#
ID:367086 發表于 2019-4-3 22:59 來自手機 | 只看該作者
上位機源碼能發我嗎 老哥
回復

使用道具 舉報

12#
ID:505153 發表于 2019-4-9 01:29 | 只看該作者
同求上位機源碼     多謝!
回復

使用道具 舉報

13#
ID:138247 發表于 2019-7-29 19:00 | 只看該作者

感謝樓主分享,正在學習。。。
回復

使用道具 舉報

14#
ID:698952 發表于 2020-2-27 11:15 | 只看該作者
高手啊,看見不錯
回復

使用道具 舉報

15#
ID:143646 發表于 2020-4-4 13:41 | 只看該作者
你好。樓主。網盤過過期了。麻煩再發下。 謝謝了。 那個壓縮包里面有電路圖嗎
回復

使用道具 舉報

16#
ID:116662 發表于 2020-4-4 20:10 | 只看該作者
多謝樓主分享,收藏了
回復

使用道具 舉報

17#
ID:384216 發表于 2020-8-6 11:30 來自手機 | 只看該作者
qxuem 發表于 2020-4-4 13:41
你好。樓主。網盤過過期了。麻煩再發下。 謝謝了。 那個壓縮包里面有電路圖嗎

等我有時間了,整理個詳細一點的資料發一下。
回復

使用道具 舉報

18#
ID:94393 發表于 2020-8-9 01:02 | 只看該作者
剛接觸,學習了解下,感謝分享
回復

使用道具 舉報

19#
ID:624444 發表于 2020-8-24 11:41 | 只看該作者
fox555w 發表于 2020-8-6 11:30
等我有時間了,整理個詳細一點的資料發一下。

哇,都快兩年了,老哥還在回復,支持,點贊
回復

使用道具 舉報

20#
ID:767007 發表于 2020-8-27 01:43 | 只看該作者
發下上位機源程序謝謝
回復

使用道具 舉報

21#
ID:528517 發表于 2020-9-15 20:44 | 只看該作者

發下上位機源程序謝謝
回復

使用道具 舉報

22#
ID:613432 發表于 2020-12-18 16:58 | 只看該作者
你好,可以發個上位機源碼嗎?謝謝啦
回復

使用道具 舉報

23#
ID:557411 發表于 2021-3-20 16:44 | 只看該作者
非常不錯,上位機過期了
回復

使用道具 舉報

24#
ID:285863 發表于 2021-3-20 18:30 | 只看該作者
發個上位機源碼可以嗎?謝謝啦
回復

使用道具 舉報

25#
ID:161033 發表于 2021-4-6 23:29 | 只看該作者
可以發下整套資料嗎?非常感謝。
回復

使用道具 舉報

26#
ID:889854 發表于 2021-5-7 09:59 | 只看該作者
老哥 上位機源碼鏈接過期了 能補發一下嗎   想學習一下
回復

使用道具 舉報

27#
ID:549934 發表于 2021-5-7 20:37 | 只看該作者

老哥 上位機源碼鏈接過期了 能補發一下嗎   想學習一下
回復

使用道具 舉報

28#
ID:549934 發表于 2021-5-7 20:37 | 只看該作者
上位機源碼鏈接過期了 能補發一下嗎   想學習一下,謝謝啦
回復

使用道具 舉報

29#
ID:853034 發表于 2021-7-11 10:37 | 只看該作者
上午機源碼發一下謝謝!
回復

使用道具 舉報

30#
ID:853034 發表于 2021-7-11 10:39 | 只看該作者
上位機源碼鏈接過期了 能補發一下嗎   想學習一下,謝謝啦
回復

使用道具 舉報

31#
ID:963717 發表于 2022-2-13 00:36 | 只看該作者
收藏了,謝謝分享
回復

使用道具 舉報

32#
ID:884815 發表于 2022-2-22 10:32 | 只看該作者
大哥 上位機源碼鏈接過期了 能補發一下嗎
回復

使用道具 舉報

33#
ID:1052836 發表于 2022-11-19 21:14 | 只看該作者
不錯,很有借鑒意義
回復

使用道具 舉報

34#
ID:1055791 發表于 2022-12-5 20:52 | 只看該作者
必須支持,其實重要的是過程+
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费激情网站 | 欧美一二区 | 韩日一区 | 久久久www成人免费无遮挡大片 | 亚洲一二三区av | 国产成人精品a视频一区www | 国产美女自拍视频 | 久久久91精品国产一区二区精品 | 亚洲精品成人在线 | 欧美a级成人淫片免费看 | 黄篇网址 | 成人免费观看视频 | 日韩快播电影网 | 亚洲一区二区久久久 | 国产一区二区三区在线免费 | 欧美精品一区二区三区蜜桃视频 | 日韩在线免费观看视频 | 国产精品波多野结衣 | 久久国| 日本午夜一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 成人中文字幕在线 | 亚洲成a人片 | 久久一区二区三区电影 | 五月激情婷婷六月 | 四色成人av永久网址 | 一区二区三区视频在线观看 | 玖玖在线精品 | 91精品国产综合久久婷婷香蕉 | 国产精品视频网 | 一区在线视频 | 日韩一区在线播放 | 国产精品一区二区三区四区 | 国产成人精品一区二区三区 | 免费看国产a | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 色小姐综合网 | 国内精品久久久久久久 | 91原创视频 | 国产清纯白嫩初高生在线播放视频 | 国产精品无码久久久久 |