?? asm中的模塊設計.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 + -