📄 zdsmjp.lis
字号:
013A E0E0 ldi R30,0
013C 7E07 cpc R23,R30
013E 09F4 brne X32
0140 3CC0 xjmp L39
0142 X32:
0142 X15:
0142 6B3D cpi R22,219
0144 E0E0 ldi R30,0
0146 7E07 cpc R23,R30
0148 81F1 breq L35
014A X16:
014A 6D3D cpi R22,221
014C E0E0 ldi R30,0
014E 7E07 cpc R23,R30
0150 21F1 breq L31
0152 X17:
0152 6E3D cpi R22,222
0154 E0E0 ldi R30,0
0156 7E07 cpc R23,R30
0158 C1F0 breq L27
015A X18:
015A 673D cpi R22,215
015C E0E0 ldi R30,0
015E 7E07 cpc R23,R30
0160 0CF4 brge X33
0162 31C0 xjmp L23
0164 X33:
0164 X19:
0164 L44:
0164 673E cpi R22,231
0166 E0E0 ldi R30,0
0168 7E07 cpc R23,R30
016A 29F1 breq L38
016C X20:
016C 6B3E cpi R22,235
016E E0E0 ldi R30,0
0170 7E07 cpc R23,R30
0172 C9F0 breq L34
0174 X21:
0174 6D3E cpi R22,237
0176 E0E0 ldi R30,0
0178 7E07 cpc R23,R30
017A 69F0 breq L30
017C X22:
017C 6E3E cpi R22,238
017E E0E0 ldi R30,0
0180 7E07 cpc R23,R30
0182 09F0 breq L26
0184 X23:
0184 20C0 xjmp L23
0186 L26:
0186 .dbline 73
0186 ; {
0186 ; case 0xEE:
0186 ; key=0x0;
0186 4427 clr R20
0188 .dbline 74
0188 ; break;
0188 21C0 xjmp L16
018A L27:
018A .dbline 76
018A ; case 0xDE:
018A ; key=0x1;
018A 41E0 ldi R20,1
018C .dbline 77
018C ; break;
018C 1FC0 xjmp L16
018E L28:
018E .dbline 79
018E ; case 0xBE:
018E ; key=0x2;
018E 42E0 ldi R20,2
0190 .dbline 80
0190 ; break;
0190 1DC0 xjmp L16
0192 L29:
0192 .dbline 82
0192 ; case 0x7E:
0192 ; key=0x3;
0192 43E0 ldi R20,3
0194 .dbline 83
0194 ; break;
0194 1BC0 xjmp L16
0196 L30:
0196 .dbline 85
0196 ; case 0xED:
0196 ; key=0x4;
0196 44E0 ldi R20,4
0198 .dbline 86
0198 ; break;
0198 19C0 xjmp L16
019A L31:
019A .dbline 88
019A ; case 0xDD:
019A ; key=0x5;
019A 45E0 ldi R20,5
019C .dbline 89
019C ; break;
019C 17C0 xjmp L16
019E L32:
019E .dbline 91
019E ; case 0xBD:
019E ; key=0x6;
019E 46E0 ldi R20,6
01A0 .dbline 92
01A0 ; break;
01A0 15C0 xjmp L16
01A2 L33:
01A2 .dbline 94
01A2 ; case 0x7D:
01A2 ; key=0x7;
01A2 47E0 ldi R20,7
01A4 .dbline 95
01A4 ; break;
01A4 13C0 xjmp L16
01A6 L34:
01A6 .dbline 97
01A6 ; case 0xEB:
01A6 ; key=0x8;
01A6 48E0 ldi R20,8
01A8 .dbline 98
01A8 ; break;
01A8 11C0 xjmp L16
01AA L35:
01AA .dbline 100
01AA ; case 0xDB:
01AA ; key=0x9;
01AA 49E0 ldi R20,9
01AC .dbline 101
01AC ; break;
01AC 0FC0 xjmp L16
01AE L36:
01AE .dbline 103
01AE ; case 0xBB:
01AE ; key=0xA;
01AE 4AE0 ldi R20,10
01B0 .dbline 104
01B0 ; break;
01B0 0DC0 xjmp L16
01B2 L37:
01B2 .dbline 106
01B2 ; case 0x7B:
01B2 ; key=0xB;
01B2 4BE0 ldi R20,11
01B4 .dbline 107
01B4 ; break;
01B4 0BC0 xjmp L16
01B6 L38:
01B6 .dbline 109
01B6 ; case 0xE7:
01B6 ; key=0xC;
01B6 4CE0 ldi R20,12
01B8 .dbline 110
01B8 ; break;
01B8 09C0 xjmp L16
01BA L39:
01BA .dbline 112
01BA ; case 0xD7:
01BA ; key=0xD;
01BA 4DE0 ldi R20,13
01BC .dbline 113
01BC ; break;
01BC 07C0 xjmp L16
01BE L40:
01BE .dbline 115
01BE ; case 0xB7:
01BE ; key=0xE;
01BE 4EE0 ldi R20,14
01C0 .dbline 116
01C0 ; break;
01C0 05C0 xjmp L16
01C2 L41:
01C2 .dbline 118
01C2 ; case 0x77:
01C2 ; key=0xF;
01C2 4FE0 ldi R20,15
01C4 .dbline 119
01C4 ; break;
01C4 03C0 xjmp L16
01C6 L23:
01C6 .dbline 121
01C6 ; default:
01C6 ; key=16;
01C6 40E1 ldi R20,16
01C8 .dbline 122
01C8 ; }
01C8 .dbline 123
01C8 ; }
01C8 01C0 xjmp L16
01CA L15:
01CA .dbline 125
01CA ; else
01CA ; {
01CA .dbline 126
01CA ; key=16;
01CA 40E1 ldi R20,16
01CC .dbline 127
01CC ; }
01CC L16:
01CC .dbline 128
01CC ; return key;
01CC 042F mov R16,R20
01CE .dbline -2
01CE L14:
01CE .dbline 0 ; func end
01CE 0C940000 xjmp pop_xgsetF00C
01D2 .dbsym r j 10 c
01D2 .dbsym r key 20 c
01D2 .dbsym r i 22 c
01D2 .dbend
01D2 .dbfunc e miao _miao fV
.even
01D2 _miao::
01D2 0A92 st -y,R0
01D4 1A92 st -y,R1
01D6 2A92 st -y,R2
01D8 3A92 st -y,R3
01DA 4A92 st -y,R4
01DC 5A92 st -y,R5
01DE 6A92 st -y,R6
01E0 7A92 st -y,R7
01E2 8A92 st -y,R8
01E4 9A92 st -y,R9
01E6 0A93 st -y,R16
01E8 1A93 st -y,R17
01EA 2A93 st -y,R18
01EC 3A93 st -y,R19
01EE 8A93 st -y,R24
01F0 9A93 st -y,R25
01F2 AA93 st -y,R26
01F4 BA93 st -y,R27
01F6 EA93 st -y,R30
01F8 FA93 st -y,R31
01FA 0FB6 in R0,0x3f
01FC 0A92 st -y,R0
01FE .dbline -1
01FE .dbline 131
01FE ; }
01FE ; void miao()
01FE ; {
01FE .dbline 132
01FE ; if(num==60)
01FE 80910000 lds R24,_num
0202 8C33 cpi R24,60
0204 19F4 brne L46
0206 X34:
0206 .dbline 133
0206 ; num=0;
0206 2224 clr R2
0208 20920000 sts _num,R2
020C L46:
020C .dbline 134
020C ; num++;
020C 80910000 lds R24,_num
0210 8F5F subi R24,255 ; addi 1
0212 80930000 sts _num,R24
0216 .dbline 135
0216 ; TCNT1H=0X85;
0216 85E8 ldi R24,133
0218 8DBD out 0x2d,R24
021A .dbline 136
021A ; TCNT1L=0XED;
021A 8DEE ldi R24,237
021C 8CBD out 0x2c,R24
021E .dbline 137
021E ; if(key_press())
021E 29DF xcall _key_press
0220 0023 tst R16
0222 19F0 breq L48
0224 X35:
0224 .dbline 138
0224 ; {
0224 .dbline 139
0224 ; l=key_scan();
0224 37DF xcall _key_scan
0226 00930000 sts _l,R16
022A .dbline 141
022A ; //show(l,3);
022A ; }
022A L48:
022A .dbline -2
022A L45:
022A .dbline 0 ; func end
022A 0990 ld R0,y+
022C 0FBE out 0x3f,R0
022E F991 ld R31,y+
0230 E991 ld R30,y+
0232 B991 ld R27,y+
0234 A991 ld R26,y+
0236 9991 ld R25,y+
0238 8991 ld R24,y+
023A 3991 ld R19,y+
023C 2991 ld R18,y+
023E 1991 ld R17,y+
0240 0991 ld R16,y+
0242 9990 ld R9,y+
0244 8990 ld R8,y+
0246 7990 ld R7,y+
0248 6990 ld R6,y+
024A 5990 ld R5,y+
024C 4990 ld R4,y+
024E 3990 ld R3,y+
0250 2990 ld R2,y+
0252 1990 ld R1,y+
0254 0990 ld R0,y+
0256 1895 reti
0258 .dbend
0258 .dbfunc e main _main fV
.even
0258 _main::
0258 .dbline -1
0258 .dbline 144
0258 ; }
0258 ; void main()
0258 ; {
0258 .dbline 145
0258 ; DDRB=0XFF;
0258 8FEF ldi R24,255
025A 87BB out 0x17,R24
025C .dbline 146
025C ; DDRA|=0X18;//573锁存端
025C 8AB3 in R24,0x1a
025E 8861 ori R24,24
0260 8ABB out 0x1a,R24
0262 .dbline 148
0262 ;
0262 ; TCCR1B=0X04;//T/C1控制寄存器B
0262 84E0 ldi R24,4
0264 8EBD out 0x2e,R24
0266 .dbline 149
0266 ; TCNT1H=0X85;//计数寄存器(高位)
0266 85E8 ldi R24,133
0268 8DBD out 0x2d,R24
026A .dbline 150
026A ; TCNT1L=0XED;//计数寄存器(低位)
026A 8DEE ldi R24,237
026C 8CBD out 0x2c,R24
026E .dbline 151
026E ; TIMSK|=BIT(2);//T/C1中断屏蔽寄存器
026E 89B7 in R24,0x39
0270 8460 ori R24,4
0272 89BF out 0x39,R24
0274 .dbline 152
0274 ; SREG|=BIT(7);//总中断
0274 7894 bset 7
0276 12C0 xjmp L52
0278 L51:
0278 .dbline 155
0278 ;
0278 ; while(1)
0278 ; {
0278 .dbline 156
0278 ; show(num/10,1);
0278 21E0 ldi R18,1
027A 1AE0 ldi R17,10
027C 00910000 lds R16,_num
0280 0E940000 xcall div8u
0284 D2DE xcall _show
0286 .dbline 157
0286 ; show(num%10,0);
0286 2227 clr R18
0288 1AE0 ldi R17,10
028A 00910000 lds R16,_num
028E 0E940000 xcall mod8u
0292 CBDE xcall _show
0294 .dbline 158
0294 ; show(l,3);
0294 23E0 ldi R18,3
0296 00910000 lds R16,_l
029A C7DE xcall _show
029C .dbline 159
029C ; }
029C L52:
029C .dbline 154
029C EDCF xjmp L51
029E X36:
029E .dbline -2
029E L50:
029E .dbline 0 ; func end
029E 0895 ret
02A0 .dbend
.area bss(ram, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\中断扫描键盘\zdsmjp.c
0000 _l::
0000 .blkb 1
0001 .dbsym e l _l c
0001 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -