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

📄 menu.s

📁 Atmega64单片机程序(完整工程)
💻 S
📖 第 1 页 / 共 3 页
字号:
_icos::
	.word _function
	.word _para
	.word _action
	.word _menu
	.word _time
	.word _question
	.word _warning
	.word _sound
	.area text(rom, con, rel)
;      FlashMode -> R18
;          Index -> R16
	.even
_Jump2Menu::
; #include "SYS_Config.h"
; #include "Menu.H"
; 
; #include "PIC.h"
; //图标
; /*
; ----------------------------------------------------------------------------
; 菜单相关变量
; ----------------------------------------------------------------------------
; */
; INT8U LessCPUUseage=TRUE;
; 
; INT8U Flash = 0;                 //跳转进入子菜单 刷新标志  >1刷新
; INT8U language = EN;             //语言标志
; INT8U KeyFuncIndex = 0;          //索引
; //3个备份数组
; INT8U FatherIndex[MenuSize+1];   //父菜单备份数组
; INT8U Layer = 0;                 //菜单层数
; 
; INT8U ItemBackup[MenuSize];      //当前菜单项备份
; INT8U ItemBackup_i = 0;          //
; 
; INT8U WhereBackup[MenuSize];     //反显位置备份
; INT8U WhereBackup_i = 0;         //
; 
; 
; INT8U KeyPressCount = 0;         //用于版本显示
; 
; INT8U Item;              //当前Bar项  范围:[0,ItemNum-1]  包括0 包括ItemNum-1  共包括ItemNum个取值
; INT8U ItemNum;           //Bar项数
; INT8U Where;             //当前反显位置,[0,DispMax-1]  反映反显的Bar在屏幕上的位置
; //INT8U DispMax = 3;     //单屏可以显示的最大项 通常这是个固定值--因为你的液晶的大小决定了你一次可以显示的多少,你也可以在程序中修改,但记得维护它--因为所有的Bar型菜单都是要用到它的
; #define DispMax  3
; 
; INT8U DispMin;         //ItemNum和DispMax中的小者
; //当前Bar显示内容指针
; 
; INT8U **DispItem; //项显示内容指针
; 
; #ifdef DynamicBar
;    INT8U BarDataMode = FixedData;
;    INT8U ** DynamicBarDispItem; //动态项显示内容指针
; #endif
; 
; //菜单资源指针
; const struct Menu * BarMenu;
; //Tip指针
; const struct Menu * TipBar;
; 
; /*
; ----------------------------------------------------------------------------
;       |---->指针对象存放地址,也就是{"Function"},{"Parameter"},{"Measure"},等等这些文本存放在哪里
;       |         |---->指针存放的位置,是这些字符的首地址应当存放在哪里  因为这是个指针数组存放的内容就是每个字符串的开始地址
;       |         |
; INT8U const * const TopItemEN[]=
; {
; {"Function"},
; {"Parameter"},
; {"Measure"},
; {"Language"},
; {"Test"},
; };
; 我们均把这些存放在代码区,以减少对RAM的占用
; 
; ----------------------------------------------------------------------------
; */
; 
; 
; //---------------------------------------------------
; //各个菜单的资源
; //命名方式是:
; //---------------------------------------------------
; //顶层菜单
; 
; //INT8U const * const TopItemCN[]=
; INT8U * TopItemCN[]=
; {
; {"功能"},
; {"参数"},
; {"测量"},
; {"语言"},
; {"设置"},
; };
; 
; 
; //INT8U const * const TopItemEN[]=
; INT8U * TopItemEN[]=
; {
; {"Function"},
; {"Parameter"},
; {"Measure"},
; {"Language"},
; {"Settings"},
; };
; 
; 
; //"功能"菜单项的内容和长度
; 
; //INT8U const * const FuncItemCN[]=
; INT8U * FuncItemCN[]=
; {
; {"读出数据"},
; {"背光控制"},
; {"出厂设置"},
; {"修改密码"},
; };
; 
; //INT8U const * const FuncItemEN[]=
; INT8U * FuncItemEN[]=
; {
; {"Read Data"},
; {"BackLight"},
; {"Factory Set"},
; {"Change CODE"}
; };
; //"参数"菜单项的内容和长度
; 
; //INT8U const * const ParaItemCN[]=
; INT8U * ParaItemCN[]=
; {
; {"阈值"},
; {"时间T"},
; {"灵敏度K"},
; {"测量时间"}
; };
; 
; //INT8U const * const ParaItemEN[]=
; INT8U * ParaItemEN[]=
; {
; {"Menu0"},
; {"Menu1"},
; {"Menu2"},
; {"Menu3"},
; {"Menu4"},
; {"Menu5"},
; {"Menu6"},
; {"Menu7"},
; };
; //"语言"菜单项的内容和长度
; 
; //INT8U const * const LanguageItemCN[]=
; INT8U * LanguageItemCN[]=
; {
; {"中文"},
; {"English"},
; };
; 
; //INT8U const * const LanguageItemEN[]=
; //INT8U * LanguageItemEN[]=
; //{
; //{"中文"},
; //{"English"},
; //};
; 
; //测量
; //INT8U const * const MeasureItemCN[]=
; INT8U * MeasureItemCN[]=
; {
; {"测试1"},
; {"测试2"},
; {"测试3"},
; {"测试4"},
; {"测试5"},
; {"测试6"},
; {"测试7"},
; };
; 
; //INT8U const * const MeasureItemEN[]=
; INT8U * MeasureItemEN[]=
; {
; {"PushUp Res"},
; {"ClearErrCount"},
; {"OnlineCMD"},
; {"SysInputTest"},
; {"SVC TEST"},
; {"AXis TEST"},
; {"Relay TEST"},
; };
; 
; //设置
; //INT8U const * const MeasureItemCN[]=
; INT8U * SetupItemCN[]=
; {
; {"时钟设置"},
; {"设置2"},
; {"设置3"},
; {"设置4"},
; {"设置5"},
; {"设置6"},
; };
; 
; //INT8U const * const MeasureItemEN[]=
; INT8U * SetupItemEN[]=
; {
; {"Time settings"},
; {"setup 2"},
; {"setup 3"},
; {"setup 4"},
; {"setup 5"},
; {"setup 6"},
; };
; 
; 
; //提示键的文本
; //INT8U const * const TipCN[]=
; INT8U * TipCN[]=
; {
; {"功能表"},
; {"选择"},
; {"确认"},
; {"取消"},
; {"退出"},
; {"捷径"},
; };
; 
; 
; 
; //INT8U const * const TipEN[]=
; INT8U * TipEN[]=
; {
; {"Menu"},
; {"Select"},
; {"OK"},
; {"Cancel"},
; {"Exit"},
; {"Goto"},
; };
; 
; //----------------------------------------
; //宏定义:
; #define MenuWhat(n) {(INT8U **)n,(sizeof(n)/sizeof(INT8U *)),0}
; 
; //图标层
; const struct Menu IcoMenu[] =
; {
; MenuWhat(TopItemCN),
; MenuWhat(TopItemEN),
; };
; 
; //功能菜单
; const struct Menu MenuFunc[] =
; {
; MenuWhat(FuncItemCN),
; MenuWhat(FuncItemEN),
; };
; 
; //参数菜单
; const struct Menu MenuPara[] =
; {
; MenuWhat(ParaItemCN),
; MenuWhat(ParaItemEN),
; };
; 
; //测量菜单
; const struct Menu MenuMeasure[] =
; {
; MenuWhat(MeasureItemCN),
; MenuWhat(MeasureItemEN),
; };
; 
; //语言菜单
; const struct Menu MenuLanguage[] =
; {
; MenuWhat(LanguageItemCN),
; MenuWhat(LanguageItemCN),
; };
; 
; //设置菜单
; const struct Menu MenuSetup[] =
; {
; MenuWhat(SetupItemCN),
; MenuWhat(SetupItemEN),
; };
; 
; //Tip
; const struct Menu Tip[] =
; {
; MenuWhat(TipCN),
; MenuWhat(TipEN),
; //{(INT8U **)TipCN,5,0},
; //{(INT8U **)TipEN,5,0}
; };
; 
; 
; //更改密码时询问的图标索引号
; #define WarningICO  5
; #define PassICO     0
; //图标索引
; const INT8U  * const icos[]=
; {
;    function,   //功能
;    para,       //参数
;    action,     //测量
;    menu,       //语言
;    time,       //时钟
;    question,   //询问
;    warning,
;    sound,
; };
; 
; void Jump2Menu(INT8U Index,INT8U FlashMode)
; {
;     KeyFuncIndex = Index;             //jump to Menu index
	sts _KeyFuncIndex,R16
;     if(FlashMode)
	tst R18
	breq L72
; 	{
;         Flash = FlashMode;
	sts _Flash,R18
;     }
L72:
L71:
	.dbline 0 ; func end
	ret
	.area bss(ram, con, rel)
_TipBar::
	.blkb 2
_BarMenu::
	.blkb 2
_DispItem::
	.blkb 2
_DispMin::
	.blkb 1
_Where::
	.blkb 1
_ItemNum::
	.blkb 1
_Item::
	.blkb 1
_WhereBackup::
	.blkb 5
_ItemBackup::
	.blkb 5
_FatherIndex::
	.blkb 6
	.area data(ram, con, rel)
L70:
	.blkb 5
	.area idata
	.byte 'G,'o,'t,'o,0
	.area data(ram, con, rel)
L69:
	.blkb 5
	.area idata
	.byte 'E,'x,'i,'t,0
	.area data(ram, con, rel)
L68:
	.blkb 7
	.area idata
	.byte 'C,'a,'n,'c,'e,'l,0
	.area data(ram, con, rel)
L67:
	.blkb 3
	.area idata
	.byte 'O,'K,0
	.area data(ram, con, rel)
L66:
	.blkb 7
	.area idata
	.byte 'S,'e,'l,'e,'c,'t,0
	.area data(ram, con, rel)
L65:
	.blkb 5
	.area idata
	.byte 'M,'e,'n,'u,0
	.area data(ram, con, rel)
L64:
	.blkb 5
	.area idata
	.byte 189,221,190,182,0
	.area data(ram, con, rel)
L63:
	.blkb 5
	.area idata
	.byte 205,203,179,246,0
	.area data(ram, con, rel)
L62:
	.blkb 5
	.area idata
	.byte 200,161,207,251,0
	.area data(ram, con, rel)
L61:
	.blkb 5
	.area idata
	.byte 200,183,200,207,0
	.area data(ram, con, rel)
L60:
	.blkb 5
	.area idata
	.byte 209,161,212,241,0
	.area data(ram, con, rel)
L59:
	.blkb 7
	.area idata
	.byte 185,166,196,220,177,237,0
	.area data(ram, con, rel)
L58:
	.blkb 8
	.area idata
	.byte 's,'e,'t,'u,'p,32,54,0
	.area data(ram, con, rel)
L57:
	.blkb 8
	.area idata
	.byte 's,'e,'t,'u,'p,32,53,0
	.area data(ram, con, rel)
L56:
	.blkb 8
	.area idata
	.byte 's,'e,'t,'u,'p,32,52,0
	.area data(ram, con, rel)
L55:
	.blkb 8
	.area idata
	.byte 's,'e,'t,'u,'p,32,51,0
	.area data(ram, con, rel)
L54:
	.blkb 8
	.area idata
	.byte 's,'e,'t,'u,'p,32,50,0
	.area data(ram, con, rel)
L53:
	.blkb 14
	.area idata
	.byte 'T,'i,'m,'e,32,'s,'e,'t,'t,'i,'n,'g,'s,0
	.area data(ram, con, rel)
L52:
	.blkb 6
	.area idata
	.byte 201,232,214,195,54,0
	.area data(ram, con, rel)
L51:
	.blkb 6
	.area idata
	.byte 201,232,214,195,53,0
	.area data(ram, con, rel)
L50:
	.blkb 6
	.area idata
	.byte 201,232,214,195,52,0
	.area data(ram, con, rel)
L49:
	.blkb 6
	.area idata
	.byte 201,232,214,195,51,0
	.area data(ram, con, rel)
L48:
	.blkb 6
	.area idata
	.byte 201,232,214,195,50,0
	.area data(ram, con, rel)
L47:
	.blkb 9
	.area idata
	.byte 202,177,214,211,201,232,214,195,0
	.area data(ram, con, rel)
L46:
	.blkb 11
	.area idata
	.byte 'R,'e,'l,'a,'y,32,'T,'E,'S,'T,0
	.area data(ram, con, rel)
L45:
	.blkb 10
	.area idata
	.byte 'A,'X,'i,'s,32,'T,'E,'S,'T,0
	.area data(ram, con, rel)
L44:
	.blkb 9
	.area idata
	.byte 'S,'V,'C,32,'T,'E,'S,'T,0
	.area data(ram, con, rel)
L43:
	.blkb 13
	.area idata
	.byte 'S,'y,'s,'I,'n,'p,'u,'t,'T,'e,'s,'t,0
	.area data(ram, con, rel)
L42:
	.blkb 10
	.area idata
	.byte 'O,'n,'l,'i,'n,'e,'C,'M,'D,0
	.area data(ram, con, rel)
L41:
	.blkb 14
	.area idata
	.byte 'C,'l,'e,'a,'r,'E,'r,'r,'C,'o,'u,'n,'t,0
	.area data(ram, con, rel)
L40:
	.blkb 11
	.area idata
	.byte 'P,'u,'s,'h,'U,'p,32,'R,'e,'s,0
	.area data(ram, con, rel)
L39:
	.blkb 6
	.area idata
	.byte 178,226,202,212,55,0
	.area data(ram, con, rel)
L38:
	.blkb 6
	.area idata
	.byte 178,226,202,212,54,0
	.area data(ram, con, rel)
L37:
	.blkb 6
	.area idata
	.byte 178,226,202,212,53,0
	.area data(ram, con, rel)
L36:
	.blkb 6
	.area idata
	.byte 178,226,202,212,52,0
	.area data(ram, con, rel)
L35:
	.blkb 6
	.area idata
	.byte 178,226,202,212,51,0
	.area data(ram, con, rel)
L34:
	.blkb 6
	.area idata
	.byte 178,226,202,212,50,0
	.area data(ram, con, rel)
L33:
	.blkb 6
	.area idata
	.byte 178,226,202,212,49,0
	.area data(ram, con, rel)
L32:
	.blkb 8
	.area idata
	.byte 'E,'n,'g,'l,'i,'s,'h,0
	.area data(ram, con, rel)
L31:
	.blkb 5
	.area idata
	.byte 214,208,206,196,0
	.area data(ram, con, rel)
L30:
	.blkb 6
	.area idata
	.byte 'M,'e,'n,'u,55,0
	.area data(ram, con, rel)
L29:
	.blkb 6
	.area idata
	.byte 'M,'e,'n,'u,54,0
	.area data(ram, con, rel)
L28:
	.blkb 6
	.area idata
	.byte 'M,'e,'n,'u,53,0
	.area data(ram, con, rel)
L27:
	.blkb 6
	.area idata
	.byte 'M,'e,'n,'u,52,0
	.area data(ram, con, rel)
L26:
	.blkb 6
	.area idata
	.byte 'M,'e,'n,'u,51,0
	.area data(ram, con, rel)
L25:
	.blkb 6
	.area idata
	.byte 'M,'e,'n,'u,50,0
	.area data(ram, con, rel)
L24:
	.blkb 6
	.area idata
	.byte 'M,'e,'n,'u,49,0
	.area data(ram, con, rel)
L23:
	.blkb 6
	.area idata
	.byte 'M,'e,'n,'u,48,0
	.area data(ram, con, rel)
L22:
	.blkb 9
	.area idata
	.byte 178,226,193,191,202,177,188,228,0
	.area data(ram, con, rel)
L21:
	.blkb 8
	.area idata
	.byte 193,233,195,244,182,200,'K,0
	.area data(ram, con, rel)
L20:
	.blkb 6
	.area idata
	.byte 202,177,188,228,'T,0
	.area data(ram, con, rel)
L19:
	.blkb 5
	.area idata
	.byte 227,208,214,181,0
	.area data(ram, con, rel)
L18:
	.blkb 12
	.area idata
	.byte 'C,'h,'a,'n,'g,'e,32,'C,'O,'D,'E,0
	.area data(ram, con, rel)
L17:
	.blkb 12
	.area idata
	.byte 'F,'a,'c,'t,'o,'r,'y,32,'S,'e,'t,0
	.area data(ram, con, rel)
L16:
	.blkb 10
	.area idata
	.byte 'B,'a,'c,'k,'L,'i,'g,'h,'t,0
	.area data(ram, con, rel)
L15:
	.blkb 10
	.area idata
	.byte 'R,'e,'a,'d,32,'D,'a,'t,'a,0
	.area data(ram, con, rel)
L14:
	.blkb 9
	.area idata
	.byte 208,222,184,196,195,220,194,235,0
	.area data(ram, con, rel)
L13:
	.blkb 9
	.area idata
	.byte 179,246,179,167,201,232,214,195,0
	.area data(ram, con, rel)
L12:
	.blkb 9
	.area idata
	.byte 177,179,185,226,191,216,214,198,0
	.area data(ram, con, rel)
L11:
	.blkb 9
	.area idata
	.byte 182,193,179,246,202,253,190,221,0
	.area data(ram, con, rel)
L10:
	.blkb 9
	.area idata
	.byte 'S,'e,'t,'t,'i,'n,'g,'s,0
	.area data(ram, con, rel)
L9:
	.blkb 9
	.area idata
	.byte 'L,'a,'n,'g,'u,'a,'g,'e,0
	.area data(ram, con, rel)
L8:
	.blkb 8
	.area idata
	.byte 'M,'e,'a,'s,'u,'r,'e,0
	.area data(ram, con, rel)
L7:
	.blkb 10
	.area idata
	.byte 'P,'a,'r,'a,'m,'e,'t,'e,'r,0
	.area data(ram, con, rel)
L6:
	.blkb 9
	.area idata
	.byte 'F,'u,'n,'c,'t,'i,'o,'n,0
	.area data(ram, con, rel)
L5:
	.blkb 5
	.area idata
	.byte 201,232,214,195,0
	.area data(ram, con, rel)
L4:
	.blkb 5
	.area idata
	.byte 211,239,209,212,0
	.area data(ram, con, rel)
L3:
	.blkb 5
	.area idata
	.byte 178,226,193,191,0
	.area data(ram, con, rel)
L2:
	.blkb 5
	.area idata
	.byte 178,206,202,253,0
	.area data(ram, con, rel)
L1:
	.blkb 5
	.area idata
	.byte 185,166,196,220,0
	.area data(ram, con, rel)

⌨️ 快捷键说明

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