移植傻孩子大侠的菜单成功了(51+1602),需要的参考下。

2020-01-20 18:57发布

未命名.jpg (81.37 KB, 下载次数: 14) 下载附件 2012-4-4 18:32 上传 新建文件夹 (2).rar (139.23 KB, 下载次数: 2264) 2012-4-4 18:31 上传 点击文件名下载附件
仿真+程序



还有些功能想加上去,不知道咋加了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
68条回答
mafeimafei
1楼-- · 2020-01-25 19:18
 精彩回答 2  元偷偷看……
mafeimafei
2楼-- · 2020-01-26 00:54
显示函数中:显示条目数,大于,一屏可显示条目或小于时;好像没有什么区别?不明白。
//*------------------------------------------------------------------------------
//*显示函数
//*------------------------------------------------------------------------------
void        ShowMenu(void)
{
                unsigned char i = 0;
                MaxItems = MenuPoint[0].MenuCount;        //获取当前菜单的条目数
                DisplayPoint = DisplayStart;
                if (MaxItems > LCD1602MaxDisplaYLinE){          //如果大于能显示的菜单数做处理
                        for (i = 0;i < LCD1602MaxDisplaYLinE;i++){
                                        LCD1602wRITESTring(i,1,MenuPoint[DisplayPoint].DisplayString);
                                        if ((DisplayPoint) == (UserChoose)){
                                                        LCD1602SetWZ(0,0,0x7e);   //写小箭头
                                                }
                                        else{
                                                        LCD1602SetWZ(i,0,' ');          //写空格
                                                }
                                        DisplayPoint += 1;   //字符串偏移量+1
                                        if ((DisplayPoint) == (MaxItems)){
                                                        DisplayPoint = 0;
                                                }       
                                }
                        }
                else{
                        for (i = 0;i < LCD1602MaxDisplaYLinE;i++){
                                          LCD1602wRITESTring(i,1,MenuPoint[DisplayPoint].DisplayString);
                                        if ((DisplayPoint) == (UserChoose)){
                                                        LCD1602SetWZ(0,0,0x7e);          //写小箭头
                                                }
                                        else{
                                                        LCD1602SetWZ(i,0,' ');    //写空格
                                                }
                                        DisplayPoint += 1;        //字符串偏移量+1
                                        if ((DisplayPoint) == (MaxItems)){
                                                        DisplayPoint = 0;
                                                }
                                }
                        }
}
HeP028
3楼-- · 2020-01-26 01:54
mafeimafei 发表于 2014-11-10 20:24
显示函数中:显示条目数,大于,一屏可显示条目或小于时;好像没有什么区别?不明白。
//*---------------- ...

我搞忘了,你仔细研究下,我当时记得完全是看懂了,只不过对指针结构体的用法这些搞不清楚,知其然。
qq开始学单片机
4楼-- · 2020-01-26 05:03
mafeimafei 发表于 2014-11-10 20:24
显示函数中:显示条目数,大于,一屏可显示条目或小于时;好像没有什么区别?不明白。
//*---------------- ...

因为最多是4个条目可现实,如果少于最大条目还要依然按照4个来显示的话,就会多运行了,如果多于最大条目,也只能按照4个条目来运行,例如2个条目的时候,只需要刷两个
bbingdao
5楼-- · 2020-01-26 05:22
感谢分享! 学习了
冷无痕
6楼-- · 2020-01-26 06:33
 精彩回答 2  元偷偷看……

一周热门 更多>