lcw_swust 发表于 2010-6-29 01:40:44

VC写的模拟液晶屏的程序,用于调试GUI

点击此处下载 ourdev_564603ZUHBHH.rar(文件大小:5.19M) (原文件名:VCGUI3.rar)

为什么写这个程序:
                为了便于调式液晶程序(主要是为了调试GUI),避免重
        复下载程序到单片机,就写了这个程序。其实已经有现成的
        程序,如uC/GUI的那个仿真程序:
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564601XKF8B6.JPG
(原文件名:UC_GUI.JPG)

            ,界面做得挺漂亮,只是看不
        懂它的实现过程,所以只好发扬DIY精神了,用MFC写了这个程
        序。界面如下:
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564602ILYAJL.JPG
(原文件名:vc_gui.JPG)

程序思想:
                在MFC程序初化时,也就是OnInitDialog()里添加自己的初始化
        代码(Myinit(void)函数),建立双缓冲以及两个线程:Task_Main()、
        Task_Refresh()。双缓冲主要用于快速输出图像(也就是液晶显示的
        内容);Task_Main()用于运行main()函数,也就模拟了在单片机编
        程里的main()函数;Task_Refresh()用于将液晶缓冲区(LCD_Buffer
        )内的数据绘制到窗体上。
                程序还模拟了触摸屏(TouchScr.c),其实就是对鼠标的移动、
        按下、放开事件作了处理,转换成了触摸屏的座标。详见"myfun.cpp"
        里的GetMouseInf函数。
                关于双缓冲,在百度上找到相关资料,我这也是照抄的代码。


关于GUI:
        1.“Myfun.h”里定义了液晶在窗体上的位置以及尺寸,注意液晶尺寸
                要与“lcddrive.h”里的定义一致。
        2.程序具有像素放大功能,当"myfun.h"里定义了LCD_ENLARGE时,LCD
                的一个点就对应了窗体上四个点
        3.GUI移植时要注意修改液晶驱动"lcddrive.c",在打点函数GUI_Point
                里,本人添加了对m_flag 的操作,目的是让Task_Refresh()线程
                不要太频繁的刷新。
        4.强调一点:当改变某些配置发现程序不正常时,应当用菜单"组建->
                全部重建"来编译。
---------------------------------------------------
本程序问题:
1.线程状态的监控技术还不成熟
2.速度仍显得有些慢

总之,本人对VC只是一知半解,代码还不成熟,还请各位多多指教。

aureole 发表于 2010-6-29 02:31:30

支持

cargle 发表于 2010-6-29 05:01:52

good

lrzxc 发表于 2010-6-29 09:04:11

很不错,支持

huohuansong 发表于 2010-6-29 09:11:18

lgl_debug 发表于 2010-6-29 09:37:48

哈哈,用的ZLG_GUI.

R28FA 发表于 2010-6-29 09:53:37

好东西

浮华一生 发表于 2014-6-11 20:35:24

需要,但是下载不了了啊!!!{:dizzy:}
页: [1]
查看完整版本: VC写的模拟液晶屏的程序,用于调试GUI