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

📄 meau.s

📁 AVR单片机 液晶菜单程序 使用的1602B_LCD液晶
💻 S
📖 第 1 页 / 共 3 页
字号:
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 20
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 999
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 21
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 19
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 1
	.area idata
	.byte 141
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 21
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 999
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 1
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 2
	.area idata
	.word 20
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.blkb 1
	.area idata
	.byte 207
	.area data(ram, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.dbstruct 0 13 .1
	.dbfield 0 KeyTab_MenuIndex i
	.dbfield 2 KeyTab_MaxItems i
	.dbfield 4 KeyTab_PressOk i
	.dbfield 6 KeyTab_PressEsc i
	.dbfield 8 KeyTab_PressDown i
	.dbfield 10 KeyTab_PressUp i
	.dbfield 12 poiadd c
	.dbend
	.dbsym e KeyTab _KeyTab A[286:22]S[.1]
	.area text(rom, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.dbfunc e Judge_Menu_ID _Judge_Menu_ID fV
	.area func_lit(rom, con, rel)
L17:
	.word `L5
	.word `L6
	.word `L8
	.word `L8
	.word `L9
	.word `L9
	.word `L10
	.word `L10
	.word `L11
	.word `L11
	.word `L12
	.word `L12
	.word `L13
	.word `L13
	.word `L14
	.word `L14
	.word `L15
	.word `L15
	.word `L16
	.word `L6
	.word `L7
	.word `L7
	.area text(rom, con, rel)
	.dbfile E:\avr\1602B_LCD\meau.c
	.even
_Judge_Menu_ID::
	.dbline -1
	.dbline 60
; 
; #include <iom64v.h>
; #include "1602B_LCD.h"
; #include "control.h"
; 
; uchar IDNUM[2],KZNUM[2];
; uchar TKEY;
; int flag_cd=0,M;
; int function_flag2,function_flag1;
; uint RAd,NOWADDR;
; //extern unsigned int en;
; //int a_voltage_average,a_current_average,b_voltage_average,b_current_average,c_voltage_average,c_current_average;
; //int a_voltage_harmonic[4],a_current_harmonic[4],b_voltage_harmonic[4],b_current_harmonic[4],c_voltage_harmonic[4],c_current_harmonic[4];
; 
; /*------------------------------------------------------------------------------*/
; /*------------------------------------------------------------------------------*/
; /*                       初始化结构体数组
; /*                      CurMenuID=本菜单ID
; /*                  MaxMenuItem=同级菜单最大项数
; /*             OkMenuID=子菜单层所对应的菜单ID,ID=999为菜单已经到底了
; /*             EscMenuID=父菜单层所对应的菜单ID,ID=999为菜单已经到顶了
; /*             DownMenuID=弟菜单层所对应的菜单ID,ID=999为菜单是独生子
; /*             UpMenuID=兄菜单层所对应的菜单ID,ID=999为菜单是独生子
; /*------------------------------------------------------------------------------*/
; 
; 	
; 	KeyTabStruct KeyTab[MAX_KEYTABSTRUCT_NUM]=
; 		{
; 	        // CurMenuID,			  MaxMenuItem,	OkMenuID,						EscMenuID,				DownMenuID,             	UpMenuID,	          poiadd,     	     
; 			
; 			{MENU_FACE,			           3,    setup,				               999,					   999,				            999,		           999,        },
; 			{setup,		                   17, 	 set_data,	                       MENU_FACE,		      new_record,		      	    output,	               0x8f,       },
; 			{set_data,	                   0,	    999,						   setup,			      set_time2,			        SN,                    0x8f,       },
;             {set_time2,	                   0,	    999,						   setup,			      ID_Number,			        set_data,	           0xcf,       },
; 			{ID_Number,		               0,	    999,				           setup,                 KZ_Number,		            set_time2,             0x8f,       },
; 			{KZ_Number,	                   0,	    999,						   setup,	              speak_Second,	                ID_Number,		       0xcf,       },
; 			{speak_Second,	               0,	    999,					       setup,                 Police_Service_1,             KZ_Number,             0x8f,       },
; 			{Police_Service_1,	           0,	    999,						   setup,			      Police_Service_2,			    speak_Second,          0xcf,       },
; 			{Police_Service_2,	           0,	    999,						   setup,			      Police_Service_3,			    Police_Service_1,      0x8f,       },
; 			{Police_Service_3,	           0,	    999,						   setup,			      Fireman_Service_1,			Police_Service_2,      0xcf,       },
; 			{Fireman_Service_1,	           0,	    999,						   setup,			      Fireman_Service_2,			Police_Service_3,      0x8f,       },
; 			{Fireman_Service_2,	           0,	    999,						   setup,			      Fireman_Service_3,			Fireman_Service_1,     0xcf,       },
; 			{Fireman_Service_3,	           0,	    999,						   setup,			      secure_man_1,			        Fireman_Service_2,     0x8f,       },
; 			{secure_man_1,	               0,	    999,						   setup,			      secure_man_2,			        Fireman_Service_3,     0xcf,       },
; 			{secure_man_2,	               0,	    999,						   setup,			      secure_man_3,			        secure_man_1,          0x8f,       },
; 			{secure_man_3,	               0,	    999,						   setup,			      secret_number_1, 	            secure_man_2,          0xcf,       },
; 			{secret_number_1,              0,       999,                           setup,                 secret_number_2,              secure_man_3,	       0x8f,       },
; 			{secret_number_2,              0,       999,                           setup,                 SN,                           secret_number_1,       0xcf,       },
; 			{SN,                           0,       999,                           setup,                 set_data,                     secret_number_2,       0x8f,       },
; 			{new_record,	               0,	    999,						   MENU_FACE,			  output,			            setup,                 0xcf,       },
; 			{output,                       0,       999,                           MENU_FACE,             quit,                         new_record,            0x8d,       },
;             {quit,                         0,       999,                           MENU_FACE,             setup,                        output,                0xcf,       },
; 		 };    
; 
; 		
; /*------------------------------------------------------------------------------*/
; /*                        ok、Esc,up,down按键调用子程序                         */
; /*------------------------------------------------------------------------------*/
; void Judge_Menu_ID(void)
;    {
	.dbline 61
; 	switch(iMenuID)
	ldi R24,21
	ldi R25,0
	lds R2,_iMenuID
	lds R3,_iMenuID+1
	cp R24,R2
	cpc R25,R3
	brge X1
	xjmp L4
X1:
	movw R18,R2
	ldi R16,2
	ldi R17,0
	xcall empy16s
	movw R30,R16
	ldi R24,<L17
	ldi R25,>L17
	add R30,R24
	adc R31,R25
	lpm R0,Z+
	lpm R1,Z
	movw R30,R0
	ijmp
X0:
	.dbline 62
; 	{	
L5:
	.dbline 64
; 	 case MENU_FACE:
; 	  LCD_write_char(0, 0x01);
	ldi R18,1
	ldi R19,0
	clr R16
	clr R17
	xcall _LCD_write_char
	.dbline 65
; 	      Dispaly_MENU_FACE();
	xcall _Dispaly_MENU_FACE
	.dbline 66
; 		  break;
	xjmp L4
L6:
	.dbline 69
; 	 case setup:
; 	 case new_record:
; 	     Dispaly_Menu_Root1();
	xcall _Dispaly_Menu_Root1
	.dbline 70
; 		  break;
	xjmp L4
L7:
	.dbline 73
; 	 case output:
; 	 case quit:
; 	      Dispaly_Menu_Root2();
	xcall _Dispaly_Menu_Root2
	.dbline 74
; 		   break; 
	xjmp L4
L8:
	.dbline 77
; 	 case set_data:
; 	 case set_time2:
; 	      Dispaly_data_time();
	xcall _Dispaly_data_time
	.dbline 78
; 		  break;
	xjmp L4
L9:
	.dbline 81
; 	 case ID_Number:
; 	 case KZ_Number:	
; 		 Dispaly_ID_KZ();
	xcall _Dispaly_ID_KZ
	.dbline 82
; 		  break;
	xjmp L4
L10:
	.dbline 85
; 	 case speak_Second: 
; 	 case Police_Service_1:
; 	      Dispaly_speak_police();
	xcall _Dispaly_speak_police
	.dbline 86
; 		  break;
	xjmp L4
L11:
	.dbline 89
; 	 case Police_Service_2:
; 	 case Police_Service_3:
; 	      Dispaly_police2_police3();
	xcall _Dispaly_police2_police3
	.dbline 90
; 		  break;
	xjmp L4
L12:
	.dbline 93
; 	 case Fireman_Service_1:
; 	 case Fireman_Service_2:
; 	      Dispaly_Fireman1_Fireman2();
	xcall _Dispaly_Fireman1_Fireman2
	.dbline 94
; 		  break;
	xjmp L4
L13:
	.dbline 97
; 	 case Fireman_Service_3:
; 	 case  secure_man_1:
; 		  Dispaly_Fireman3_secure1();
	xcall _Dispaly_Fireman3_secure1
	.dbline 98
; 		  break; 
	xjmp L4
L14:
	.dbline 101
; 	case  secure_man_2:
; 	case  secure_man_3:
; 		 Dispaly_secure2_secure3();
	xcall _Dispaly_secure2_secure3
	.dbline 102
; 		  break;
	xjmp L4
L15:
	.dbline 105
; 	case secret_number_2:
; 	case secret_number_1:
; 		  Dispaly_secret_number(); 
	xcall _Dispaly_secret_number
	.dbline 106
; 		  break; 
	xjmp L4
L16:
	.dbline 108
	xcall _Dispaly_SN
	.dbline 109
	.dbline 112
L4:
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_MENU_FACE _Dispaly_MENU_FACE fV
	.even
_Dispaly_MENU_FACE::
	.dbline -1
	.dbline 119
; 	case SN:
; 		  Dispaly_SN(); 
; 		  break;  
;    
; 	default :
; 	     break;
; 	}
;   }
; /*------------------------------------------------------------------------------*/
; /*                               DispFaceBmp()
; /*------------------------------------------------------------------------------*/
; void Dispaly_MENU_FACE(void)
; { 
	.dbline 120
;  LCD_write_string(0X81,"yueyou.com.tw");  //欢迎界面
	ldi R18,<L19
	ldi R19,>L19
	ldi R16,129
	xcall _LCD_write_string
	.dbline -2
L18:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_Menu_Root1 _Dispaly_Menu_Root1 fV
	.even
_Dispaly_Menu_Root1::
	.dbline -1
	.dbline 126
; }
; /*------------------------------------------------------------------------------*/
; /*                               Dispaly_Menu_Root1()
; /*------------------------------------------------------------------------------*/
; void Dispaly_Menu_Root1(void)
; {
	.dbline 127
;  LCD_write_string(0X80,"SETUP");
	ldi R18,<L21
	ldi R19,>L21
	ldi R16,128
	xcall _LCD_write_string
	.dbline 128
;  LCD_write_string(0Xc0,"NEW RECORD");
	ldi R18,<L22
	ldi R19,>L22
	ldi R16,192
	xcall _LCD_write_string
	.dbline -2
L20:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_Menu_Root2 _Dispaly_Menu_Root2 fV
	.even
_Dispaly_Menu_Root2::
	.dbline -1
	.dbline 134
;  }
;  /*------------------------------------------------------------------------------*/
; /*                               Dispaly_Menu_Root2()
; /*------------------------------------------------------------------------------*/
; void Dispaly_Menu_Root2(void)
; {
	.dbline 135
;  LCD_write_string(0X80,"OUTPUT");
	ldi R18,<L24
	ldi R19,>L24
	ldi R16,128
	xcall _LCD_write_string
	.dbline 136
;  LCD_write_string(0Xc0,"QUIT");
	ldi R18,<L25
	ldi R19,>L25
	ldi R16,192
	xcall _LCD_write_string
	.dbline -2
L23:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_data_time _Dispaly_data_time fV
	.even
_Dispaly_data_time::
	.dbline -1
	.dbline 142
; } 
; /*------------------------------------------------------------------------------*/
; /*                           Dispaly_data_time()
; /*------------------------------------------------------------------------------*/
; void Dispaly_data_time(void)
; {
	.dbline 143
; LCD_write_string(0X80,"Set_data");
	ldi R18,<L27
	ldi R19,>L27
	ldi R16,128
	xcall _LCD_write_string
	.dbline 144
; LCD_write_string(0Xc0,"Set_time2");
	ldi R18,<L28
	ldi R19,>L28
	ldi R16,192
	xcall _LCD_write_string
	.dbline -2
L26:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_ID_KZ _Dispaly_ID_KZ fV
	.even
_Dispaly_ID_KZ::
	.dbline -1
	.dbline 149
; }
; /*                           Dispaly_ID_KZ()
; /*------------------------------------------------------------------------------*/
; void Dispaly_ID_KZ(void)
; {
	.dbline 150
; LCD_write_string(0X80,"ID_Number");
	ldi R18,<L30
	ldi R19,>L30
	ldi R16,128
	xcall _LCD_write_string
	.dbline 151
; LCD_write_string(0Xc0,"KZ_Number");
	ldi R18,<L31
	ldi R19,>L31
	ldi R16,192
	xcall _LCD_write_string
	.dbline -2
L29:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_speak_police _Dispaly_speak_police fV
	.even
_Dispaly_speak_police::
	.dbline -1
	.dbline 157
; }
; /*------------------------------------------------------------------------------*/
; /*                           Dispaly_fundamental_wave_down()
; /*------------------------------------------------------------------------------*/
; void Dispaly_speak_police(void)
; {
	.dbline 158
; LCD_write_string(0X80,"Speak_Second");
	ldi R18,<L33
	ldi R19,>L33
	ldi R16,128
	xcall _LCD_write_string
	.dbline 159
; LCD_write_string(0Xc0,"Police_1");
	ldi R18,<L34
	ldi R19,>L34
	ldi R16,192
	xcall _LCD_write_string
	.dbline -2
L32:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_police2_police3 _Dispaly_police2_police3 fV
	.even
_Dispaly_police2_police3::
	.dbline -1
	.dbline 165
; }
; /*------------------------------------------------------------------------------*/
; /*                           Dispaly_police2_police3()
; /*------------------------------------------------------------------------------*/
; void Dispaly_police2_police3(void)
; {
	.dbline 166
; LCD_write_string(0X80,"Police_2");
	ldi R18,<L36
	ldi R19,>L36
	ldi R16,128
	xcall _LCD_write_string
	.dbline 167
; LCD_write_string(0Xc0,"Police_3");
	ldi R18,<L37
	ldi R19,>L37
	ldi R16,192
	xcall _LCD_write_string
	.dbline -2
L35:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_Fireman1_Fireman2 _Dispaly_Fireman1_Fireman2 fV
	.even
_Dispaly_Fireman1_Fireman2::
	.dbline -1
	.dbline 174
; }
; /*------------------------------------------------------------------------------*/
; /*------------------------------------------------------------------------------*/
; /*  Dispaly_Fireman1_Fireman2()
; /*------------------------------------------------------------------------------*/	
; void Dispaly_Fireman1_Fireman2(void)
; {
	.dbline 175
; LCD_write_string(0X80,"Fireman_1");
	ldi R18,<L39
	ldi R19,>L39
	ldi R16,128
	xcall _LCD_write_string
	.dbline 176
; LCD_write_string(0Xc0,"Fireman_2");
	ldi R18,<L40
	ldi R19,>L40
	ldi R16,192
	xcall _LCD_write_string
	.dbline -2
L38:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_Fireman3_secure1 _Dispaly_Fireman3_secure1 fV
	.even
_Dispaly_Fireman3_secure1::
	.dbline -1
	.dbline 182
; }  
; /*------------------------------------------------------------------------------*/
; /*  Dispaly_Fireman3_Fireman2()
; /*------------------------------------------------------------------------------*/	
; void Dispaly_Fireman3_secure1(void)
; {
	.dbline 183
; LCD_write_string(0X80,"Fireman_3");
	ldi R18,<L42
	ldi R19,>L42
	ldi R16,128
	xcall _LCD_write_string
	.dbline 184
; LCD_write_string(0Xc0,"Secure_1");
	ldi R18,<L43
	ldi R19,>L43
	ldi R16,192
	xcall _LCD_write_string
	.dbline -2
L41:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_secure2_secure3 _Dispaly_secure2_secure3 fV
	.even
_Dispaly_secure2_secure3::
	.dbline -1
	.dbline 190
; }
; /*------------------------------------------------------------------------------*/
; /*  Dispaly_Fireman1_Fireman2()
; /*------------------------------------------------------------------------------*/	
; void Dispaly_secure2_secure3(void)
; {
	.dbline 191
; LCD_write_string(0X80,"Secure_2");
	ldi R18,<L45
	ldi R19,>L45
	ldi R16,128
	xcall _LCD_write_string
	.dbline 192
; LCD_write_string(0Xc0,"Secure_3");
	ldi R18,<L46
	ldi R19,>L46
	ldi R16,192
	xcall _LCD_write_string
	.dbline -2
L44:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_secret_number _Dispaly_secret_number fV
	.even
_Dispaly_secret_number::
	.dbline -1
	.dbline 197
; }
; /*  Dispaly_Fireman1_Fireman2()
; /*------------------------------------------------------------------------------*/	
; void Dispaly_secret_number(void)
; {
	.dbline 198
; LCD_write_string(0X80,"Secret_number1");
	ldi R18,<L48
	ldi R19,>L48
	ldi R16,128
	xcall _LCD_write_string
	.dbline 199
; LCD_write_string(0Xc0,"Secret_number2");
	ldi R18,<L49
	ldi R19,>L49
	ldi R16,192
	xcall _LCD_write_string
	.dbline -2
L47:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Dispaly_SN _Dispaly_SN fV
	.even
_Dispaly_SN::
	.dbline -1
	.dbline 204
; }
; /*------------------------------------------------------------------------------*/
; /*------------------------------------------------------------------------------*/	
; void Dispaly_SN(void)
; {
	.dbline 205
; LCD_write_string(0X80,"SN");
	ldi R18,<L51
	ldi R19,>L51
	ldi R16,128
	xcall _LCD_write_string
	.dbline -2
L50:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e quit_fun _quit_fun fV
	.even
_quit_fun::
	.dbline -1
	.dbline 210
; }
; /*------------------------------------------------------------------------------*/
; /*------------------------------------------------------------------------------*/	
; void quit_fun(void)
; {
	.dbline 214
; // state=0;
; // st_f=0;
; // t1count2=0;
;  LCD_write_char(0,0x01);         //按ESC后退出设置
	ldi R18,1
	ldi R19,0
	clr R16
	clr R17
	xcall _LCD_write_char
	.dbline -2
L52:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Menu_function _Menu_function fV
	.even
_Menu_function::
	.dbline -1
	.dbline 235
; }
; 
; /*AT24c256地址分配一览表*/
; /*ID_Number:          0-5*/
; /*KZ_Number:          6-7*/
; /*speak_Second:   8-9*/
; /*Police_Service_1: 10-29*/
; /*Police_Service_2: 30-49*/
; /*Police_Service_3: 50-69*/
; /*Fireman_Service_1: 70-89*/
; /*Fireman_Service_2: 90-109*/
; /*Fireman_Service_3: 110-129*/
; /*secure_man_1:    130-149*/
; /*secure_man_2:   150-169*/
; /*secure_man_1:   170-189*/
; /*                               菜单调用解释函数
; /*------------------------------------------------------------------------------	
; */
; 
; void Menu_function(void)
; 	{ 
	.dbline 236
; 	 switch(iMenuID)              //菜单身份号//
	lds R24,_iMenuID
	lds R25,_iMenuID+1
	cpi R24,2
	ldi R30,0
	cpc R25,R30
	breq L56
	xjmp L55
X2:
	.dbline 237
; 		{

⌨️ 快捷键说明

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