📄 avrread26l.lst
字号:
0131 C002 RJMP 0x0134
0132 2744 CLR R20
0133 2755 CLR R21
0134 2E26 MOV R2,R22
0135 2E37 MOV R3,R23
0136 2224 AND R2,R20
0137 2235 AND R3,R21
0138 2022 TST R2
0139 F411 BNE 0x013C
013A 2033 TST R3
013B F171 BEQ 0x016A
(0144) {
(0145) delayus(100);
013C E604 LDI R16,0x64
013D E010 LDI R17,0
013E DEF8 RCALL _delayus
(0146) if(((PINB&0X20)==0)&(kawei==1))
013F 99B5 SBIC 0x16,5
0140 C003 RJMP 0x0144
0141 E061 LDI R22,1
0142 E070 LDI R23,0
0143 C002 RJMP 0x0146
0144 2766 CLR R22
0145 2777 CLR R23
0146 91800073 LDS R24,kawei
0148 3081 CPI R24,1
0149 F419 BNE 0x014D
014A E041 LDI R20,1
014B E050 LDI R21,0
014C C002 RJMP 0x014F
014D 2744 CLR R20
014E 2755 CLR R21
014F 2E26 MOV R2,R22
0150 2E37 MOV R3,R23
0151 2224 AND R2,R20
0152 2235 AND R3,R21
0153 2022 TST R2
0154 F411 BNE 0x0157
0155 2033 TST R3
0156 F099 BEQ 0x016A
(0147) {
(0148) kawei=0;
0157 2422 CLR R2
0158 92200073 STS kawei,R2
(0149) kashu[0]=x24c02_read(2);
015A E002 LDI R16,2
015B DF9B RCALL _x24c02_read
015C 93000071 STS kashu,R16
(0150) delayus(200);
015E EC08 LDI R16,0xC8
015F E010 LDI R17,0
0160 DED6 RCALL _delayus
(0151) kashu[1]=x24c02_read(4);
0161 E004 LDI R16,4
0162 DF94 RCALL _x24c02_read
0163 93000072 STS kashu+1,R16
(0152) delayus(200);
0165 EC08 LDI R16,0xC8
0166 E010 LDI R17,0
0167 DECF RCALL _delayus
(0153) fengming(10);
0168 E00A LDI R16,0xA
0169 DEE3 RCALL _fengming
(0154) }
(0155) }
(0156) if(((PINB&0X20)!=0)&(kawei==0))
016A 9BB5 SBIS 0x16,5
016B C003 RJMP 0x016F
016C E061 LDI R22,1
016D E070 LDI R23,0
016E C002 RJMP 0x0171
016F 2766 CLR R22
0170 2777 CLR R23
0171 90200073 LDS R2,kawei
0173 2022 TST R2
0174 F419 BNE 0x0178
0175 E041 LDI R20,1
0176 E050 LDI R21,0
0177 C002 RJMP 0x017A
0178 2744 CLR R20
0179 2755 CLR R21
017A 2E26 MOV R2,R22
017B 2E37 MOV R3,R23
017C 2224 AND R2,R20
017D 2235 AND R3,R21
017E 2022 TST R2
017F F411 BNE 0x0182
0180 2033 TST R3
0181 F101 BEQ 0x01A2
(0157) {
(0158) delayus(100);
0182 E604 LDI R16,0x64
0183 E010 LDI R17,0
0184 DEB2 RCALL _delayus
(0159) if(((PINB&0X20)!=0)&(kawei==0))
0185 9BB5 SBIS 0x16,5
0186 C003 RJMP 0x018A
0187 E061 LDI R22,1
0188 E070 LDI R23,0
0189 C002 RJMP 0x018C
018A 2766 CLR R22
018B 2777 CLR R23
018C 90200073 LDS R2,kawei
018E 2022 TST R2
018F F419 BNE 0x0193
0190 E041 LDI R20,1
0191 E050 LDI R21,0
0192 C002 RJMP 0x0195
0193 2744 CLR R20
0194 2755 CLR R21
0195 2E26 MOV R2,R22
0196 2E37 MOV R3,R23
0197 2224 AND R2,R20
0198 2235 AND R3,R21
0199 2022 TST R2
019A F411 BNE 0x019D
019B 2033 TST R3
019C F029 BEQ 0x01A2
(0160) {
(0161) kawei=1;
019D E081 LDI R24,1
019E 93800073 STS kawei,R24
(0162) fengming(10);
01A0 E00A LDI R16,0xA
01A1 DEAB RCALL _fengming
(0163) }
(0164) }
01A2 D0B9 RCALL pop_gset2
01A3 9508 RET
(0165) }
(0166)
(0167)
(0168)
(0169) void xianshu(void)
(0170) {
(0171) //anjianweiguan;
(0172) DDRA=0Xff;
_xianshu:
01A4 EF8F LDI R24,0xFF
01A5 BB8A OUT 0x1A,R24
(0173) PORTA=0X7F;
01A6 E78F LDI R24,0x7F
01A7 BB8B OUT 0x1B,R24
(0174) PORTB&=~(0<<1);
01A8 B388 IN R24,0x18
01A9 7F8F ANDI R24,0xFF
01AA BB88 OUT 0x18,R24
(0175) PORTA=disp[kashu[0]]&0x7f;
01AB E687 LDI R24,0x67
01AC E090 LDI R25,0
01AD 91E00071 LDS R30,kashu
01AF 27FF CLR R31
01B0 FDE7 SBRC R30,7
01B1 95F0 COM R31
01B2 0FE8 ADD R30,R24
01B3 1FF9 ADC R31,R25
01B4 8180 LDD R24,Z+0
01B5 778F ANDI R24,0x7F
01B6 BB8B OUT 0x1B,R24
(0176) delayms(1);
01B7 E001 LDI R16,1
01B8 E010 LDI R17,0
01B9 DE85 RCALL _delayms
(0177) PORTB|=(0<<3);
01BA B228 IN R2,0x18
01BB BA28 OUT 0x18,R2
(0178) PORTA=disp[kashu[1]]&0x7f;
01BC E687 LDI R24,0x67
01BD E090 LDI R25,0
01BE 91E00072 LDS R30,kashu+1
01C0 27FF CLR R31
01C1 FDE7 SBRC R30,7
01C2 95F0 COM R31
01C3 0FE8 ADD R30,R24
01C4 1FF9 ADC R31,R25
01C5 8180 LDD R24,Z+0
01C6 778F ANDI R24,0x7F
01C7 BB8B OUT 0x1B,R24
(0179) PORTB&=~(0<<3);
01C8 B388 IN R24,0x18
01C9 7F8F ANDI R24,0xFF
01CA BB88 OUT 0x18,R24
(0180) delayms(1);
01CB E001 LDI R16,1
01CC E010 LDI R17,0
01CD DE71 RCALL _delayms
(0181) PORTB|=(0<<3);
01CE B228 IN R2,0x18
01CF BA28 OUT 0x18,R2
(0182) //anjianweikai;
(0183) DDRA=0X80;
01D0 E880 LDI R24,0x80
01D1 BB8A OUT 0x1A,R24
(0184) PORTA=0x7f;
01D2 E78F LDI R24,0x7F
01D3 BB8B OUT 0x1B,R24
(0185) ;
01D4 9508 RET
(0186) }
(0187)
(0188) void anjian(void)
(0189) {
(0190)
(0191) DDRA=0X80;
_anjian:
01D5 E880 LDI R24,0x80
01D6 BB8A OUT 0x1A,R24
(0192) PORTA=0x7f;
01D7 E78F LDI R24,0x7F
01D8 BB8B OUT 0x1B,R24
(0193) delayus(10);
01D9 E00A LDI R16,0xA
01DA E010 LDI R17,0
01DB DE5B RCALL _delayus
(0194) if((PINA&0X4B)!=0x4B)
01DC B389 IN R24,0x19
01DD 748B ANDI R24,0x4B
01DE 348B CPI R24,0x4B
01DF F409 BNE 0x01E1
01E0 C064 RJMP 0x0245
(0195) {
(0196)
(0197) DDRA=0X80;
01E1 E880 LDI R24,0x80
01E2 BB8A OUT 0x1A,R24
(0198) PORTA=0x7f;
01E3 E78F LDI R24,0x7F
01E4 BB8B OUT 0x1B,R24
(0199) delayms(1);
01E5 E001 LDI R16,1
01E6 E010 LDI R17,0
01E7 DE57 RCALL _delayms
(0200) if((PINA&0X4b)!=0X4b)
01E8 B389 IN R24,0x19
01E9 748B ANDI R24,0x4B
01EA 348B CPI R24,0x4B
01EB F409 BNE 0x01ED
01EC C058 RJMP 0x0245
(0201) {
(0202) fengming(10);
01ED E00A LDI R16,0xA
01EE DE5E RCALL _fengming
(0203) DDRA=0X80;
01EF E880 LDI R24,0x80
01F0 BB8A OUT 0x1A,R24
(0204) PORTA=0x7f;
01F1 E78F LDI R24,0x7F
01F2 BB8B OUT 0x1B,R24
(0205) if((PINA&0X40)==0) //+
01F3 99CE SBIC 0x19,6
01F4 C01F RJMP 0x0214
(0206) {
(0207) kashu[1]++;
01F5 91800072 LDS R24,kashu+1
01F7 5F8F SUBI R24,0xFF
01F8 93800072 STS kashu+1,R24
(0208) if(kashu[1]>9)
01FA E089 LDI R24,0x9
01FB 90200072 LDS R2,kashu+1
01FD 1582 CP R24,R2
01FE F49C BGE 0x0212
(0209) {
(0210) kashu[1]=0;
01FF 2422 CLR R2
0200 92200072 STS kashu+1,R2
(0211) kashu[0]++;
0202 91800071 LDS R24,kashu
0204 5F8F SUBI R24,0xFF
0205 93800071 STS kashu,R24
(0212) if(kashu[0]>9)
0207 E089 LDI R24,0x9
0208 90200071 LDS R2,kashu
020A 1582 CP R24,R2
020B F434 BGE 0x0212
(0213) {
(0214) kashu[0]=9;
020C 93800071 STS kashu,R24
(0215) kashu[1]=9;
020E 93800072 STS kashu+1,R24
(0216) }
(0217) }
0210 C001 RJMP 0x0212
(0218) while((PINA&0X40)==0)
(0219) {
(0220) xianshu();
0211 DF92 RCALL _xianshu
0212 9BCE SBIS 0x19,6
0213 CFFD RJMP 0x0211
(0221) }
(0222) }
(0223) if((PINA&0X08)==0) //-档
0214 99CB SBIC 0x19,3
0215 C01D RJMP 0x0233
(0224) {
(0225) kashu[1]--;
0216 91800072 LDS R24,kashu+1
0218 5081 SUBI R24,1
0219 93800072 STS kashu+1,R24
(0226) if(kashu[1]<0)
021B 91800072 LDS R24,kashu+1
021D 3080 CPI R24,0
021E F494 BGE 0x0231
(0227) {
(0228) kashu[1]=0;
021F 2422 CLR R2
0220 92200072 STS kashu+1,R2
(0229) kashu[0]--;
0222 91800071 LDS R24,kashu
0224 5081 SUBI R24,1
0225 93800071 STS kashu,R24
(0230) if(kashu[0]<0)
0227 91800071 LDS R24,kashu
0229 3080 CPI R24,0
022A F434 BGE 0x0231
(0231) {
(0232) kashu[0]=0;
022B 92200071 STS kashu,R2
(0233) kashu[1]=0;
022D 92200072 STS kashu+1,R2
(0234) }
(0235) }
022F C001 RJMP 0x0231
(0236) while((PINA&0X08)==0)
(0237) {
(0238) xianshu();
0230 DF73 RCALL _xianshu
0231 9BCB SBIS 0x19,3
0232 CFFD RJMP 0x0230
(0239) }
(0240) }
(0241) if((PINA&0X02)==0) //2档
0233 99C9 SBIC 0x19,1
0234 C007 RJMP 0x023C
(0242) {
(0243) jianshu=1;
0235 E081 LDI R24,1
0236 93800074 STS jianshu,R24
0238 C001 RJMP 0x023A
(0244) while((PINA&0X02)==0)
(0245) {
(0246) xianshu();
0239 DF6A RCALL _xianshu
023A 9BC9 SBIS 0x19,1
023B CFFD RJMP 0x0239
(0247) }
(0248) }
(0249) if((PINA&0X01)==0)
023C 99C8 SBIC 0x19,0
023D C007 RJMP 0x0245
(0250) {
(0251) jianshu=2;
023E E082 LDI R24,2
023F 93800074 STS jianshu,R24
0241 C001 RJMP 0x0243
(0252) while((PINA&0X01)==0)
(0253) {
(0254) xianshu();
0242 DF61 RCALL _xianshu
0243 9BC8 SBIS 0x19,0
0244 CFFD RJMP 0x0242
(0255) }
(0256) }
(0257) }
(0258) }
0245 9508 RET
(0259) //anjianweiguan;
(0260) }
(0261)
(0262)
(0263) void main(void) //主程序
(0264) {
(0265) MCUCR=0;
_main:
0246 2422 CLR R2
0247 BE25 OUT 0x35,R2
(0266) DDRA = 0XFF; /*方向输出*/
0248 EF8F LDI R24,0xFF
0249 BB8A OUT 0x1A,R24
(0267) PORTA = 0X7F; /*高电平*/
024A E78F LDI R24,0x7F
024B BB8B OUT 0x1B,R24
(0268) DDRB = 0xCA;
024C EC8A LDI R24,0xCA
024D BB87 OUT 0x17,R24
(0269) PORTB = 0x35;
024E E385 LDI R24,0x35
024F BB88 OUT 0x18,R24
(0270) kashu[0]=4;
0250 E084 LDI R24,4
0251 93800071 STS kashu,R24
(0271) kashu[1]=5;
0253 E085 LDI R24,5
0254 93800072 STS kashu+1,R24
0256 C003 RJMP 0x025A
(0272) //WDR();
(0273) //WDTCR=0X0D; //
(0274)
(0275) //SEI();
(0276)
(0277) while (1)
(0278) {
(0279) jiancheicka();
0257 DEC8 RCALL _jiancheicka
(0280) anjian();
0258 DF7C RCALL _anjian
(0281) xianshu();
FILE: <library>
0259 DF4A RCALL _xianshu
025A CFFC RJMP 0x0257
025B 9508 RET
pop_gset2:
025C E0E2 LDI R30,2
025D C00E RJMP pop
pop_gset3:
025E E0E4 LDI R30,4
025F C00C RJMP pop
push_gset5:
0260 92FA ST R15,-Y
0261 92EA ST R14,-Y
push_gset4:
0262 92DA ST R13,-Y
0263 92CA ST R12,-Y
push_gset3:
0264 92BA ST R11,-Y
0265 92AA ST R10,-Y
push_gset2:
0266 937A ST R23,-Y
0267 936A ST R22,-Y
push_gset1:
0268 935A ST R21,-Y
0269 934A ST R20,-Y
026A 9508 RET
pop_gset1:
026B E0E1 LDI R30,1
pop:
026C 9149 LD R20,Y+
026D 9159 LD R21,Y+
026E FDE0 SBRC R30,0
026F 9508 RET
0270 9169 LD R22,Y+
0271 9179 LD R23,Y+
0272 FDE1 SBRC R30,1
0273 9508 RET
0274 90A9 LD R10,Y+
0275 90B9 LD R11,Y+
0276 FDE2 SBRC R30,2
0277 9508 RET
0278 90C9 LD R12,Y+
0279 90D9 LD R13,Y+
027A FDE3 SBRC R30,3
027B 9508 RET
027C 90E9 LD R14,Y+
027D 90F9 LD R15,Y+
027E 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -