陈儒军
将PC窗口菜单程序移植到单片机 问题与解决方案
2010-9-29 16:40
阅读:7068
标签:单片机, 菜单, 窗口, 8051, PC机

    让基于单片机的仪器具有漂亮的窗口、对话框和菜单,对任何人来说都是一个挑战。特别是多级窗口、菜单和对话框,没有1年功夫是搞不定的。 经过几个月的功夫,我成功将PC环境下运行的一个支持菜单和对话框的C程序移植到8051单片机上,可以显示汉字,输入数字和选择项。

   先看看单片机系统的硬件配置。系统核心为新华龙8051系列单片机,64K FLASH程序存储器,9K XRAM。输出为支持汉字显示的320*240显示屏,输入为自制扫描键盘,有10个数字和几个功能键。

   窗口菜单程序来自网上公开资料,基于C语言,只能显示西文字符,用BORLAND C编译后可以在DOS环境下运行。

   第一个步工作是编写getkey()和putchar()函数,getkey()通过中断扫描用户的键盘输入,返回ASCII码。putchar()函数可以显示汉字字符和西文字符。另外一个函数是光标定位函数,指定输出的位置。

  第二步工作是修改原程序,很多DOS下的函数,需要想办法替换或屏蔽掉,全部改成单片机C语言可以支持的函数。编译的时候出了N多错误,花了2周时间全部搞定了。

  第三步工作是设计要显示的菜单和对话框,确定每个单元要显示的位置。然后将定义好的菜单和对话框结构体放到窗口程序要求的位置,再加上一些必要的代码,整个移植工作就准备待命了。

  第四步工作是运行和调试程序。结果几次调试,大功告成,菜单和窗口可以显示了,多级菜单和多级窗口,也可以搞定。

  出现的一个大问题是从子对话框返回时,父对话框的变量变了。将编译器的优化级别设置的最低级,按照大模式(64K)编译后,问题得到全部解决。

转载本文请联系原作者获取授权,同时请注明本文来自陈儒军科学网博客。

链接地址:https://wap.sciencenet.cn/blog-39626-368198.html?mobile=1

收藏

分享到:

当前推荐数:3
推荐人:
推荐到博客首页
网友评论2 条评论
确定删除指定的回复吗?
确定删除本博文吗?