欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 51單片機DIY激光雕刻機視頻與源碼資料分享 [打印本頁]

作者: fox555w    時間: 2018-8-8 16:37
標題: 51單片機DIY激光雕刻機視頻與源碼資料分享
用兩個廢舊光驅制作的
這套代碼僅供參考,我的步進電機驅動芯片是某一個寶買的,連型號都沒有,只給了個時序圖,大家可以再我的代碼基礎上根據自己的驅動進行修改!

視頻:


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



作者: sunke928    時間: 2018-8-12 12:33
學習貼收藏了,謝謝分享
作者: qq35404085    時間: 2018-8-21 21:36
求個上位機源碼 誰有啊
作者: fox555w    時間: 2018-12-31 12:14
qq35404085 發表于 2018-8-21 21:36
求個上位機源碼 誰有啊

上位機源碼我可以發給你,是我自己寫的,雖然簡單了點但可以參考!
作者: 1151735452@qq.c    時間: 2019-1-16 18:35
fox555w 發表于 2018-12-31 12:14
上位機源碼我可以發給你,是我自己寫的,雖然簡單了點但可以參考!

請問可以發給我嗎?
作者: 大花貓2017    時間: 2019-1-16 20:51
fox555w 發表于 2018-12-31 12:14
上位機源碼我可以發給你,是我自己寫的,雖然簡單了點但可以參考!

兄弟把上位機的代碼也發給我下唄,謝謝了。
作者: supper戰    時間: 2019-1-23 23:54
能發一下源碼嗎,新手制作,大佬求幫一下
作者: azi197417    時間: 2019-1-27 23:34
那么,能否將制作過程和電路設計也貼出來呢?便于仿制啊
作者: 空空空空22333    時間: 2019-4-3 22:59
上位機源碼能發我嗎 老哥
作者: qinyuning    時間: 2019-4-9 01:29
同求上位機源碼     多謝!
作者: plj213    時間: 2019-7-29 19:00

感謝樓主分享,正在學習。。。
作者: fox555w    時間: 2020-2-18 11:29
上位機源碼在下面
作者: 大牛先生    時間: 2020-2-27 11:15
高手啊,看見不錯
作者: qxuem    時間: 2020-4-4 13:41
你好。樓主。網盤過過期了。麻煩再發下。 謝謝了。 那個壓縮包里面有電路圖嗎
作者: 雙贏電子    時間: 2020-4-4 20:10
多謝樓主分享,收藏了
作者: fox555w    時間: 2020-8-6 11:30
qxuem 發表于 2020-4-4 13:41
你好。樓主。網盤過過期了。麻煩再發下。 謝謝了。 那個壓縮包里面有電路圖嗎

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

作者: sanchao123007    時間: 2020-8-9 01:02
剛接觸,學習了解下,感謝分享
作者: Sky丶藍天    時間: 2020-8-24 11:41
fox555w 發表于 2020-8-6 11:30
等我有時間了,整理個詳細一點的資料發一下。

哇,都快兩年了,老哥還在回復,支持,點贊
作者: 55025470    時間: 2020-8-27 01:43
發下上位機源程序謝謝

作者: 范進824    時間: 2020-9-15 20:44

發下上位機源程序謝謝
作者: ab123456789    時間: 2020-12-18 16:58
你好,可以發個上位機源碼嗎?謝謝啦
作者: xyzdh    時間: 2021-3-20 16:44
非常不錯,上位機過期了
作者: bemc    時間: 2021-3-20 18:30
發個上位機源碼可以嗎?謝謝啦
作者: xmch    時間: 2021-4-6 23:29
可以發下整套資料嗎?非常感謝。
作者: Ming-Mcu-51    時間: 2021-5-7 09:59
老哥 上位機源碼鏈接過期了 能補發一下嗎   想學習一下
作者: y16234    時間: 2021-5-7 20:37

老哥 上位機源碼鏈接過期了 能補發一下嗎   想學習一下
作者: y16234    時間: 2021-5-7 20:37
上位機源碼鏈接過期了 能補發一下嗎   想學習一下,謝謝啦
作者: barry95    時間: 2021-7-11 10:37
上午機源碼發一下謝謝!
作者: barry95    時間: 2021-7-11 10:39
上位機源碼鏈接過期了 能補發一下嗎   想學習一下,謝謝啦
作者: 阿波羅AUDIO    時間: 2022-2-13 00:36
收藏了,謝謝分享
作者: xijiaoa    時間: 2022-2-22 10:32
大哥 上位機源碼鏈接過期了 能補發一下嗎
作者: fox555w    時間: 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++;
        }

}

作者: asd123ASDe    時間: 2022-11-19 21:14
不錯,很有借鑒意義
作者: songshaoting    時間: 2022-12-5 20:52
必須支持,其實重要的是過程+




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1