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

📄 main.lst

📁 一个基于MEGA16的GUI
💻 LST
📖 第 1 页 / 共 4 页
字号:
 704               	.LM39:
 705 01f0 9BE3      		ldi r25,lo8(59)
 706 01f2 A0E0      		ldi r26,lo8(Temperature_buffer+59)
 707 01f4 B0E0      		ldi r27,hi8(Temperature_buffer+59)
 708               	.L23:
 112:main.c        **** 	 {
 113:main.c        **** 	  Temperature_buffer[60]=Temperature_buffer[i-1];
 710               	.LM40:
 711 01f6 FD01      		movw r30,r26
 712 01f8 3197      		sbiw r30,1
 713 01fa 8081      		ld r24,Z
 714 01fc 8093 0000 		sts Temperature_buffer+60,r24
 114:main.c        **** 	  Temperature_buffer[i]=Temperature_buffer[60];
 716               	.LM41:
 717 0200 8C93      		st X,r24
 719               	.LM42:
 720 0202 9150      		subi r25,lo8(-(-1))
 721 0204 DF01      		movw r26,r30
 722 0206 B9F7      		brne .L23
 115:main.c        **** 	 }
 116:main.c        **** 	 
 117:main.c        **** 	OSWait(K_TMO | K_SIG,50);
 724               	.LM43:
 725 0208 62E3      		ldi r22,lo8(50)
 726 020a 83E0      		ldi r24,lo8(3)
 727 020c 0E94 0000 		call OSWait
 728 0210 9ACF      		rjmp .L16
 729               	/* epilogue: frame size=0 */
 730               	/* epilogue: noreturn */
 731               	/* epilogue end (size=0) */
 732               	/* function task1 size 105 (105) */
 740               	.Lscope1:
 742               	.global	task2
 744               	task2:
 118:main.c        **** }
 119:main.c        **** }
 120:main.c        **** 
 121:main.c        **** 		void task2(void)
 122:main.c        **** {
 746               	.LM44:
 747               	/* prologue: frame size=0 */
 748               	/* prologue end (size=0) */
 749               	.L27:
 123:main.c        **** 	while(1)
 124:main.c        **** 	{
 125:main.c        **** 	  GUI_MMenuNSelect(current_MMENU, old_MMENU_NO);
 751               	.LM45:
 752 0212 6091 0000 		lds r22,old_MMENU_NO
 753 0216 8091 0000 		lds r24,current_MMENU
 754 021a 9091 0000 		lds r25,(current_MMENU)+1
 755 021e 0E94 0000 		call GUI_MMenuNSelect
 126:main.c        **** 	  GUI_MMenuSelect(current_MMENU, current_MMENU_NO);
 757               	.LM46:
 758 0222 6091 0000 		lds r22,current_MMENU_NO
 759 0226 8091 0000 		lds r24,current_MMENU
 760 022a 9091 0000 		lds r25,(current_MMENU)+1
 761 022e 0E94 0000 		call GUI_MMenuSelect
 127:main.c        ****       if(buttom&0x80)                                /*  如果OK按钮有按下*/
 763               	.LM47:
 764 0232 8091 0000 		lds r24,buttom
 765 0236 87FF      		sbrs r24,7
 766 0238 53C0      		rjmp .L29
 128:main.c        **** 	  {
 129:main.c        **** 	   buttom &=0x7f;
 768               	.LM48:
 769 023a 8F77      		andi r24,lo8(127)
 770 023c 8093 0000 		sts buttom,r24
 130:main.c        **** 	   if(buttom==1)
 772               	.LM49:
 773 0240 8130      		cpi r24,lo8(1)
 774 0242 C9F5      		brne .L30
 131:main.c        **** 	    {
 132:main.c        **** 		 if(current_SMENU->mmenu_no != current_MMENU_NO)
 776               	.LM50:
 777 0244 E091 0000 		lds r30,current_SMENU
 778 0248 F091 0000 		lds r31,(current_SMENU)+1
 779 024c 9281      		ldd r25,Z+2
 780 024e 8091 0000 		lds r24,current_MMENU_NO
 781 0252 9817      		cp r25,r24
 782 0254 91F0      		breq .L31
 133:main.c        **** 		 {
 134:main.c        **** 		  cli();
 784               	.LM51:
 785               	/* #APP */
 786 0256 F894      		cli
 135:main.c        **** 		  current_SMENU=&Smenu[old_MMENU_NO];
 788               	.LM52:
 789               	/* #NOAPP */
 790 0258 9091 0000 		lds r25,old_MMENU_NO
 791 025c 81E1      		ldi r24,lo8(17)
 792 025e 989F      		mul r25,r24
 793 0260 F001      		movw r30,r0
 794 0262 1124      		clr r1
 795 0264 E050      		subi r30,lo8(-(Smenu))
 796 0266 F040      		sbci r31,hi8(-(Smenu))
 797 0268 F093 0000 		sts (current_SMENU)+1,r31
 798 026c E093 0000 		sts current_SMENU,r30
 136:main.c        **** 	      current_SMENU->mmenu_no=old_MMENU_NO;
 800               	.LM53:
 801 0270 9283      		std Z+2,r25
 137:main.c        **** 		  GUI_SMenuHide( current_SMENU );            /*   消除下拉菜单*/
 803               	.LM54:
 804 0272 CF01      		movw r24,r30
 805 0274 0E94 0000 		call GUI_SMenuHide
 138:main.c        ****           sei();	
 807               	.LM55:
 808               	/* #APP */
 809 0278 7894      		sei
 810               	/* #NOAPP */
 811               	.L31:
 139:main.c        **** 		 }
 140:main.c        **** 		 current_SMENU=&Smenu[current_MMENU_NO];
 813               	.LM56:
 814 027a 9091 0000 		lds r25,current_MMENU_NO
 815 027e 81E1      		ldi r24,lo8(17)
 816 0280 989F      		mul r25,r24
 817 0282 F001      		movw r30,r0
 818 0284 1124      		clr r1
 819 0286 E050      		subi r30,lo8(-(Smenu))
 820 0288 F040      		sbci r31,hi8(-(Smenu))
 821 028a F093 0000 		sts (current_SMENU)+1,r31
 822 028e E093 0000 		sts current_SMENU,r30
 141:main.c        **** 		 current_SMENU->state=current_SMENU_NO;
 824               	.LM57:
 825 0292 8091 0000 		lds r24,current_SMENU_NO
 826 0296 8287      		std Z+10,r24
 142:main.c        **** 	     cli();
 828               	.LM58:
 829               	/* #APP */
 830 0298 F894      		cli
 143:main.c        **** 		 current_SMENU->mmenu_no=current_MMENU_NO;    /*  画下拉菜单 */
 832               	.LM59:
 833               	/* #NOAPP */
 834 029a E091 0000 		lds r30,current_SMENU
 835 029e F091 0000 		lds r31,(current_SMENU)+1
 836 02a2 8091 0000 		lds r24,current_MMENU_NO
 837 02a6 8283      		std Z+2,r24
 144:main.c        ****          GUI_SMenuDraw(current_SMENU);
 839               	.LM60:
 840 02a8 8091 0000 		lds r24,current_SMENU
 841 02ac 9091 0000 		lds r25,(current_SMENU)+1
 842 02b0 0E94 0000 		call GUI_SMenuDraw
 145:main.c        ****          sei();
 844               	.LM61:
 845               	/* #APP */
 846 02b4 7894      		sei
 847               	/* #NOAPP */
 848               	.L30:
 146:main.c        **** 		}
 147:main.c        **** 	    if(buttom==0)
 850               	.LM62:
 851 02b6 8091 0000 		lds r24,buttom
 852 02ba 8823      		tst r24
 853 02bc 89F4      		brne .L29
 148:main.c        **** 	     {
 149:main.c        **** 		  if(current_SMENU->mmenu_no==current_MMENU_NO)
 855               	.LM63:
 856 02be E091 0000 		lds r30,current_SMENU
 857 02c2 F091 0000 		lds r31,(current_SMENU)+1
 858 02c6 9281      		ldd r25,Z+2
 859 02c8 8091 0000 		lds r24,current_MMENU_NO
 860 02cc 9817      		cp r25,r24
 861 02ce 41F4      		brne .L29
 150:main.c        **** 		  {
 151:main.c        **** 		   cli();
 863               	.LM64:
 864               	/* #APP */
 865 02d0 F894      		cli
 152:main.c        **** 		   GUI_SMenuHide( current_SMENU );            /*   消除下拉菜单*/
 867               	.LM65:
 868               	/* #NOAPP */
 869 02d2 8091 0000 		lds r24,current_SMENU
 870 02d6 9091 0000 		lds r25,(current_SMENU)+1
 871 02da 0E94 0000 		call GUI_SMenuHide
 153:main.c        **** 		   sei();
 873               	.LM66:
 874               	/* #APP */
 875 02de 7894      		sei
 876               	/* #NOAPP */
 877               	.L29:
 154:main.c        **** 		  }
 155:main.c        **** 		 }
 156:main.c        **** 	  }
 157:main.c        ****       if(buttom==1)
 879               	.LM67:
 880 02e0 8091 0000 		lds r24,buttom
 881 02e4 8130      		cpi r24,lo8(1)
 882 02e6 71F4      		brne .L34
 158:main.c        ****      {  
 159:main.c        **** 	  if(current_SMENU->state!=current_SMENU_NO)
 884               	.LM68:
 885 02e8 E091 0000 		lds r30,current_SMENU
 886 02ec F091 0000 		lds r31,(current_SMENU)+1
 887 02f0 8285      		ldd r24,Z+10
 888 02f2 4091 0000 		lds r20,current_SMENU_NO
 889 02f6 8417      		cp r24,r20
 890 02f8 29F0      		breq .L34
 160:main.c        **** 	  {
 161:main.c        **** 	  GUI_SMenuSelect(current_SMENU, old_SMENU_NO,current_SMENU_NO);
 892               	.LM69:
 893 02fa 6091 0000 		lds r22,old_SMENU_NO
 894 02fe CF01      		movw r24,r30
 895 0300 0E94 0000 		call GUI_SMenuSelect
 896               	.L34:
 162:main.c        **** 	  }
 163:main.c        **** 	 }
 164:main.c        **** 	 if(OK&0x01)
 898               	.LM70:
 899 0304 8091 0000 		lds r24,OK
 900 0308 80FF      		sbrs r24,0
 901 030a 18C0      		rjmp .L36
 165:main.c        **** 	 {
 166:main.c        **** 	 (*Smenu[Function_MMENU_NO].Function[Function_SMENU_NO])();	  /* 调用子功能函数 */
 903               	.LM71:
 904 030c 8091 0000 		lds r24,Function_SMENU_NO
 905 0310 9927      		clr r25
 906 0312 2091 0000 		lds r18,Function_MMENU_NO
 907 0316 3327      		clr r19
 908 0318 F901      		movw r30,r18
 909 031a 74E0      		ldi r23,4
 910 031c EE0F      	1:	lsl r30
 911 031e FF1F      		rol r31
 912 0320 7A95      		dec r23
 913 0322 E1F7      		brne 1b
 914 0324 E20F      		add r30,r18
 915 0326 F31F      		adc r31,r19
 916 0328 880F      		add r24,r24
 917 032a 991F      		adc r25,r25
 918 032c E80F      		add r30,r24
 919 032e F91F      		adc r31,r25
 920 0330 E050      		subi r30,lo8(-(Smenu))
 921 0332 F040      		sbci r31,hi8(-(Smenu))
 922 0334 0384      		ldd __tmp_reg__,Z+11
 923 0336 F485      		ldd r31,Z+12
 924 0338 E02D      		mov r30,__tmp_reg__
 925 033a 0995      		icall
 926               	.L36:
 167:main.c        **** 	 }
 168:main.c        **** 	OSWait(K_TMO | K_SIG,50);
 928               	.LM72:
 929 033c 62E3      		ldi r22,lo8(50)
 930 033e 83E0      		ldi r24,lo8(3)
 931 0340 0E94 0000 		call OSWait
 932 0344 66CF      		rjmp .L27
 933               	/* epilogue: frame size=0 */
 934               	/* epilogue: noreturn */
 935               	/* epilogue end (size=0) */
 936               	/* function task2 size 160 (160) */
 938               	.Lscope2:
 940               	.global	task3
 942               	task3:
 169:main.c        **** 	}
 170:main.c        **** }
 171:main.c        **** 
 172:main.c        **** 		void task3(void)
 173:main.c        **** {
 944               	.LM73:
 945               	/* prologue: frame size=0 */
 946 0346 1F93      		push r17
 947 0348 CF93      		push r28
 948               	/* prologue end (size=2) */
 174:main.c        ****     uint8  key_temp=0,old_key=0;
 950               	.LM74:
 951 034a 10E0      		ldi r17,lo8(0)
 952               	.L63:
 175:main.c        **** 	while(1)
 176:main.c        **** 	{ 
 177:main.c        **** 	 OSWait(K_TMO, 3);    /*  等待50MS*/
 954               	.LM75:
 955 034c 63E0      		ldi r22,lo8(3)
 956 034e 82E0      		ldi r24,lo8(2)
 957 0350 0E94 0000 		call OSWait
 178:main.c        **** 	 key_temp=(PIND&0xf0);
 959               	.LM76:
 960 0354 C0B3      		in r28,48-0x20
 961 0356 C07F      		andi r28,lo8(-16)
 179:main.c        ****      OSWait(K_TMO, 1);  /*  等待50MS*/
 963               	.LM77:
 964 0358 61E0      		ldi r22,lo8(1)
 965 035a 82E0      		ldi r24,lo8(2)
 966 035c 0E94 0000 		call OSWait
 180:main.c        **** 	 if((PIND&0xf0) ==key_temp)
 968               	.LM78:
 969 0360 80B3      		in r24,48-0x20
 970 0362 282F      		mov r18,r24
 971 0364 3327      		clr r19
 972 0366 207F      		andi r18,lo8(240)
 973 0368 3070      		andi r19,hi8(240)
 974 036a 8C2F      		mov r24,r28
 975 036c 9927      		clr r25
 976 036e 2817      		cp r18,r24
 977 0370 3907      		cpc r19,r25
 978 0372 61F7      		brne .L63
 181:main.c        **** 	  {
 182:main.c        **** 	    if(key_temp != old_key)     /* 识别长按

⌨️ 快捷键说明

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