⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 通用菜单模.txt

📁 c51源程序总结
💻 TXT
字号:
用【 小 | 中 | 大 】字体浏览 
C51编程:ASM中的模块设计 [craft] [43次] 01-10-26 下午 08:52:58
设计一通用菜单模块,在更换液晶屏和显示不同的菜单内容时,不要更换程序,只需调换相
应的液晶驱动和重写菜单结构。

;菜单操作模块名
;Menu
;输入参数:DPTR=表达菜单的数据结构
;------------------------------------------------
;下列参数由液晶屏驱动模块传递
;调用参数:DisplayColumNums液晶屏一行字节数
;调用参数:DisplayStrinNums液晶屏一列字节数
;调用参数:MenuMenuDisplayLine液晶屏可显示的菜单行数
;输出:根据选择的菜单条转入相应的处理程序,处理完后返回本程序
;MenuMenuDisplayLine     EQU     7
;---------------------------------------------------------------------
;表达菜单表的结构如下
;*******************************************************************************
***********
;SysManMenu:              DW      MenuLength,SysManItemTab,SysManProg,SysManMode
;菜单结构名,第一个字为菜单长度存放单元,第二个字为菜单内容集合存放单元
;第三字为菜单出口程序集合存放单元,第四字节为模式菜单(1)还是非模式菜单(0) 
;---------------------------------------------------------------------
;MenuLength:             DB      7
;菜单内容的长度
;----------------------------------------------------------------------
;SysManItemTab:          DW      SysManItemS0,SysManItemS1,SysManItemS2
;                        DW      SysManItemS3,SysManItemS4,SysManItemS5
;                        DW      SysManItemS6,SysManItemS7
;菜单内容集合
;-------------------------------------------------------------------------
;SysManItemS0:           DB      $  系统管理菜单$
;菜单标题,以0,0坐标开始显示,最大长度为DisplayColumNums液晶屏一行字节数/2个汉字
;SysManItemS1:           DB      $ 液晶灰度调节$
;SysManItemS2:           DB      $  时间设置$
;SysManItemS3:           DB      $单人工作时间查看$
;SysManItemS4:           DB      $单人工作时间清零$
;SysManItemS5:           DB      $  行走控制$
;SysManItemS6:           DB      $  保存小时计$
;SysManItemS7:           DB      $  模拟报警$
;菜单项,以2,16坐标为起始坐标,最大长度为DisplayColumNums液晶屏一行字节数/2-2
;个汉字里面空格等应用全角方式输入
;-------------------------------------------------------------------------
;SysManProg:             DW      PR1,PR2,PR3,PR4,PR5,PR6,PR7
;相应菜单项的出口程序地址集合
;---------------------------------------------------------------
;SysManMode:         DB    1
;为模式菜单(1)还是非模式菜单 
;为模式菜单时,执行了菜单命令后仍回到菜单中
;为非模式菜单时,招待了菜单命令后同时退出菜单
;***************************************************************************
MENUPRG SEGMENT CODE


;包含图形处理、键处理和通用程序模块
$NOLIST
$INCLUDE        (GRAPIC.H)
$INCLUDE        (KEY.H)
$INCLUDE        (NOR.H)
$LIST

PUBLIC  MENU

;液晶屏可显示的菜单行数,以1为起始值,菜单模块用
MenuMenuDisplayLine                EQU     7




RSEG    MENUPRG
;*************************菜单操作模块*************************
;*输入参数:DPTR=表达菜单的表,                                 *
;*------------------------------------------------            *
;*调用参数:DisplayColumNums液晶屏一行字节数                   *
;*调用参数:DisplayStrinNums液晶屏一列字节数                   *
;*调用参数:MenuMenuDisplayLine液晶屏可显示的菜单行数          *
;*输出:根据选择的菜单条转入相应的处理程序,处理完后返回本程序  *
;*注:R0为显示的第一条菜单号,以00为起始值                      *
;*   R1为菜单行号,以00为起始值                                *
;*   R3为菜单总长度,以1为起始值                               *
;*   R2为光标号,以0为起始值                                   *
;*   MenuMenuDisplayLine为液晶屏可显示的菜单行数,以1为起始值  *
;*-------------------------------------------------           *
;*调用模块:查表模块,文本图形处理模块                          *
;*MenuMenuDisplayLine     EQU     7                           *
;**************************************************************
Menu:
....
RET

在应用程序中显示菜单:
.......
MOV   DPTR , #SysManMenu
LCALL MENU
......


 

 
点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2002 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -