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只是一知半解,代码还不成熟,还请各位多多指教。 支持 good 很不错,支持 好 哈哈,用的ZLG_GUI. 好东西 需要,但是下载不了了啊!!!{:dizzy:}
页:
[1]