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

📄 mega8bj.lst

📁 mega8按键数码显示程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
    00DE C00A      RJMP	0x00E9
(0118)   else if(keynm==3)//enter
    00DF 3063      CPI	R22,3
    00E0 E0E0      LDI	R30,0
    00E1 077E      CPC	R23,R30
    00E2 F431      BNE	0x00E9
(0119)     {smode=0;
    00E3 2422      CLR	R2
    00E4 2433      CLR	R3
    00E5 92300079  STS	smode+1,R3
    00E7 92200078  STS	smode,R2
(0120) //save set value
(0121) 	}
(0122) 	
(0123)   if(smode)
    00E9 90200078  LDS	R2,smode
    00EB 90300079  LDS	R3,smode+1
    00ED 2022      TST	R2
    00EE F419      BNE	0x00F2
    00EF 2033      TST	R3
    00F0 F409      BNE	0x00F2
    00F1 C08D      RJMP	0x017F
(0124) 	{i=smode-1;
    00F2 91400078  LDS	R20,smode
    00F4 91500079  LDS	R21,smode+1
    00F6 5041      SUBI	R20,1
    00F7 4050      SBCI	R21,0
(0125) 	 switch(keynm)
    00F8 3061      CPI	R22,1
    00F9 E0E0      LDI	R30,0
    00FA 077E      CPC	R23,R30
    00FB F409      BNE	0x00FD
    00FC C035      RJMP	0x0132
    00FD 3062      CPI	R22,2
    00FE E0E0      LDI	R30,0
    00FF 077E      CPC	R23,R30
    0100 F009      BEQ	0x0102
    0101 C05E      RJMP	0x0160
(0126) 	   {case 2:
(0127) 	    temp[i]++;
    0102 E68C      LDI	R24,0x6C
    0103 E090      LDI	R25,0
    0104 011A      MOVW	R2,R20
    0105 0E28      ADD	R2,R24
    0106 1E39      ADC	R3,R25
    0107 01F1      MOVW	R30,R2
    0108 8180      LDD	R24,Z+0
    0109 5F8F      SUBI	R24,0xFF
    010A 8380      STD	Z+0,R24
(0128) 		if(temp[0]==temp[1])temp[0]=temp[1]-1;
    010B 9020006D  LDS	R2,temp+1
    010D 9030006C  LDS	R3,temp
    010F 1432      CP	R3,R2
    0110 F421      BNE	0x0115
    0111 2D82      MOV	R24,R2
    0112 5081      SUBI	R24,1
    0113 9380006C  STS	temp,R24
(0129) 		if(temp[1]==temp[2])temp[1]=temp[2]-1;
    0115 9020006E  LDS	R2,temp+2
    0117 9030006D  LDS	R3,temp+1
    0119 1432      CP	R3,R2
    011A F421      BNE	0x011F
    011B 2D82      MOV	R24,R2
    011C 5081      SUBI	R24,1
    011D 9380006D  STS	temp+1,R24
(0130) 		if(temp[2]==temp[3])temp[2]=temp[3]-1;
    011F 9020006F  LDS	R2,temp+3
    0121 9030006E  LDS	R3,temp+2
    0123 1432      CP	R3,R2
    0124 F421      BNE	0x0129
    0125 2D82      MOV	R24,R2
    0126 5081      SUBI	R24,1
    0127 9380006E  STS	temp+2,R24
(0131) 		if(temp[3]==99)temp[3]=98;
    0129 9180006F  LDS	R24,temp+3
    012B 3683      CPI	R24,0x63
    012C F009      BEQ	0x012E
    012D C032      RJMP	0x0160
    012E E682      LDI	R24,0x62
    012F 9380006F  STS	temp+3,R24
(0132) 	    break;
    0131 C02E      RJMP	0x0160
(0133) 		
(0134) 		case 1:
(0135) 		temp[i]--;
    0132 E68C      LDI	R24,0x6C
    0133 E090      LDI	R25,0
    0134 011A      MOVW	R2,R20
    0135 0E28      ADD	R2,R24
    0136 1E39      ADC	R3,R25
    0137 01F1      MOVW	R30,R2
    0138 8180      LDD	R24,Z+0
    0139 5081      SUBI	R24,1
    013A 8380      STD	Z+0,R24
(0136) 		if(temp[0]==0)temp[0]=1;
    013B 9020006C  LDS	R2,temp
    013D 2022      TST	R2
    013E F419      BNE	0x0142
    013F E081      LDI	R24,1
    0140 9380006C  STS	temp,R24
(0137) 		if(temp[1]==temp[0])temp[1]=temp[0]+1;
    0142 9020006C  LDS	R2,temp
    0144 9030006D  LDS	R3,temp+1
    0146 1432      CP	R3,R2
    0147 F421      BNE	0x014C
    0148 2D82      MOV	R24,R2
    0149 5F8F      SUBI	R24,0xFF
    014A 9380006D  STS	temp+1,R24
(0138) 		if(temp[2]==temp[1])temp[2]=temp[1]+1;
    014C 9020006D  LDS	R2,temp+1
    014E 9030006E  LDS	R3,temp+2
    0150 1432      CP	R3,R2
    0151 F421      BNE	0x0156
    0152 2D82      MOV	R24,R2
    0153 5F8F      SUBI	R24,0xFF
    0154 9380006E  STS	temp+2,R24
(0139) 		if(temp[3]==temp[2])temp[3]=temp[2]+1;
    0156 9020006E  LDS	R2,temp+2
    0158 9030006F  LDS	R3,temp+3
    015A 1432      CP	R3,R2
    015B F421      BNE	0x0160
    015C 2D82      MOV	R24,R2
    015D 5F8F      SUBI	R24,0xFF
    015E 9380006F  STS	temp+3,R24
(0140) 		break;
(0141) 		default:break;
(0142) 	   }
(0143) 	dis[0]=smode;dis[1]=11;
    0160 90200078  LDS	R2,smode
    0162 90300079  LDS	R3,smode+1
    0164 92200074  STS	dis,R2
    0166 E08B      LDI	R24,0xB
    0167 93800075  STS	dis+1,R24
(0144) 	dis[2]=temp[i]/10;
    0169 E68C      LDI	R24,0x6C
    016A E090      LDI	R25,0
    016B 01FA      MOVW	R30,R20
    016C 0FE8      ADD	R30,R24
    016D 1FF9      ADC	R31,R25
    016E 8100      LDD	R16,Z+0
    016F E01A      LDI	R17,0xA
    0170 D05B      RCALL	div8u
    0171 93000076  STS	dis+2,R16
(0145)     dis[3]=temp[i]%10;
    0173 E68C      LDI	R24,0x6C
    0174 E090      LDI	R25,0
    0175 01FA      MOVW	R30,R20
    0176 0FE8      ADD	R30,R24
    0177 1FF9      ADC	R31,R25
    0178 8100      LDD	R16,Z+0
    0179 E01A      LDI	R17,0xA
    017A D04F      RCALL	mod8u
    017B 93000077  STS	dis+3,R16
(0146) 	display();
    017D DEC7      RCALL	_display
(0147) 	}
    017E C02D      RJMP	0x01AC
(0148)   else
(0149)   {
(0150)   //disnm=ADC;
(0151)     //disnm=ADC;
(0152)    dis[0]=disnm/1000;
    017F EE28      LDI	R18,0xE8
    0180 E033      LDI	R19,3
    0181 9100007A  LDS	R16,disnm
    0183 9110007B  LDS	R17,disnm+1
    0185 D02A      RCALL	div16u
    0186 93000074  STS	dis,R16
(0153)    dis[1]=disnm/100;dis[1]=dis[1]%10;
    0188 E624      LDI	R18,0x64
    0189 E030      LDI	R19,0
    018A 9100007A  LDS	R16,disnm
    018C 9110007B  LDS	R17,disnm+1
    018E D021      RCALL	div16u
    018F 93000075  STS	dis+1,R16
    0191 E01A      LDI	R17,0xA
    0192 D037      RCALL	mod8u
    0193 93000075  STS	dis+1,R16
(0154)    dis[2]=disnm/10;dis[2]=dis[2]%10;
    0195 E02A      LDI	R18,0xA
    0196 E030      LDI	R19,0
    0197 9100007A  LDS	R16,disnm
    0199 9110007B  LDS	R17,disnm+1
    019B D014      RCALL	div16u
    019C 93000076  STS	dis+2,R16
    019E E01A      LDI	R17,0xA
    019F D02A      RCALL	mod8u
    01A0 93000076  STS	dis+2,R16
(0155)    dis[3]=disnm%10;
    01A2 E02A      LDI	R18,0xA
    01A3 E030      LDI	R19,0
    01A4 9100007A  LDS	R16,disnm
    01A6 9110007B  LDS	R17,disnm+1
    01A8 D005      RCALL	mod16u
    01A9 93000077  STS	dis+3,R16
(0156)    
(0157)    display();
FILE: <library>
    01AB DE99      RCALL	_display
    01AC CF13      RJMP	0x00C0
    01AD 9508      RET
mod16u:
    01AE 9468      BSET	6
    01AF C001      RJMP	xdiv16u
div16u:
    01B0 94E8      BCLR	6
xdiv16u:
    01B1 92EA      ST	R14,-Y
    01B2 92FA      ST	R15,-Y
    01B3 938A      ST	R24,-Y
    01B4 24EE      CLR	R14
    01B5 24FF      CLR	R15
    01B6 E180      LDI	R24,0x10
    01B7 0F00      LSL	R16
    01B8 1F11      ROL	R17
    01B9 1CEE      ROL	R14
    01BA 1CFF      ROL	R15
    01BB 16E2      CP	R14,R18
    01BC 06F3      CPC	R15,R19
    01BD F018      BCS	0x01C1
    01BE 1AE2      SUB	R14,R18
    01BF 0AF3      SBC	R15,R19
    01C0 9503      INC	R16
    01C1 958A      DEC	R24
    01C2 F7A1      BNE	0x01B7
    01C3 F416      BRTC	0x01C6
    01C4 2D0E      MOV	R16,R14
    01C5 2D1F      MOV	R17,R15
    01C6 9189      LD	R24,Y+
    01C7 90F9      LD	R15,Y+
    01C8 90E9      LD	R14,Y+
    01C9 9508      RET
mod8u:
    01CA 9468      BSET	6
    01CB C001      RJMP	xdiv8u
div8u:
    01CC 94E8      BCLR	6
xdiv8u:
    01CD 932A      ST	R18,-Y
    01CE 92FA      ST	R15,-Y
    01CF 92EA      ST	R14,-Y
    01D0 24FF      CLR	R15
    01D1 24EE      CLR	R14
    01D2 E120      LDI	R18,0x10
    01D3 0F00      LSL	R16
    01D4 1CFF      ROL	R15
    01D5 1CEE      ROL	R14
    01D6 16E1      CP	R14,R17
    01D7 F010      BCS	0x01DA
    01D8 1AE1      SUB	R14,R17
    01D9 9503      INC	R16
    01DA 952A      DEC	R18
    01DB F7B9      BNE	0x01D3
    01DC F40E      BRTC	0x01DE
    01DD 2D0E      MOV	R16,R14
    01DE 90E9      LD	R14,Y+
    01DF 90F9      LD	R15,Y+
    01E0 9129      LD	R18,Y+
    01E1 9508      RET
pop_gset2:
    01E2 E0E2      LDI	R30,2
    01E3 C00C      RJMP	pop
push_gset5:
    01E4 92FA      ST	R15,-Y
    01E5 92EA      ST	R14,-Y
push_gset4:
    01E6 92DA      ST	R13,-Y
    01E7 92CA      ST	R12,-Y
push_gset3:
    01E8 92BA      ST	R11,-Y
    01E9 92AA      ST	R10,-Y
push_gset2:
    01EA 937A      ST	R23,-Y
    01EB 936A      ST	R22,-Y
push_gset1:
    01EC 935A      ST	R21,-Y
    01ED 934A      ST	R20,-Y
    01EE 9508      RET
pop_gset1:
    01EF E0E1      LDI	R30,1
pop:
    01F0 9149      LD	R20,Y+
    01F1 9159      LD	R21,Y+
    01F2 FDE0      SBRC	R30,0
    01F3 9508      RET
    01F4 9169      LD	R22,Y+
    01F5 9179      LD	R23,Y+
    01F6 FDE1      SBRC	R30,1
    01F7 9508      RET
    01F8 90A9      LD	R10,Y+
    01F9 90B9      LD	R11,Y+
    01FA FDE2      SBRC	R30,2
    01FB 9508      RET
    01FC 90C9      LD	R12,Y+
    01FD 90D9      LD	R13,Y+
    01FE FDE3      SBRC	R30,3
    01FF 9508      RET
    0200 90E9      LD	R14,Y+
    0201 90F9      LD	R15,Y+
    0202 9508      RET
lsl8:
    0203 2311      TST	R17
    0204 F019      BEQ	0x0208
    0205 0F00      LSL	R16
    0206 951A      DEC	R17
    0207 CFFB      RJMP	lsl8
    0208 9508      RET

⌨️ 快捷键说明

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