📄 pd3keyint.lis
字号:
.module PD3KeyInt.C
.area text(rom, con, rel)
0000 .dbfile E:\ICC_H\SoftExt.H
0000 .dbfunc e speaData _speaData fV
0000 ; y -> y+4
0000 ; j -> y+0
0000 ; i -> R10
0000 ; len -> R12
0000 ; dat -> y+16
.even
0000 _speaData::
0000 0E940000 xcall push_arg4
0004 0E940000 xcall push_gset4
0008 2897 sbiw R28,8
000A CC88 ldd R12,y+20
000C .dbline -1
000C .dbline 116
000C ;
000C ; #include <iom16v.h>
000C ; #include "E:\ICC_H\CmmICC.H"
000C ;
000C ; #define DISP_DDR DDRB
000C ; #define DISP_PORT PORTB
000C ; #define IN_PD3 cbi(DDRD,3) //PD3
000C ; #define SET_PD3 sbi(PORTD,3)
000C ; #define GET_PD3 gbi(PIND,3)
000C ;
000C ; #pragma interrupt_handler int1_isr:3
000C ; void int1_isr(void)
000C ; {
000C ; GICR &= 0b01111111; // disable int1 interrupt
000C ; DISP_PORT++;
000C ; delay50ms(4);
000C ; GICR |= 0b10000000; // enable int1 interrupt
000C ; }
000C ;
000C ; void int1_init()
000C ; {
000C ; IN_PD3; // set PD3/INT1 as input
000C ; SET_PD3; // set PD3/INT1 output high level,avoid triggering
000C ; MCUCR |= 0b11110011; // set PD3/INT1 as low level active
000C ; GICR |= 0b10000000; // enable global interrupt
000C ; SEI(); // enable external interrupt
000C ; }
000C ;
000C ; void main(void)
000C ; {
000C ; DISP_DDR = 0xFF;
000C ; DISP_PORT = 0x00;
000C ; int1_init();
000C ; asm("sleep"); // set mcu as sleep modle
000C ; while(1);
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C ; }
000C .dbline 119
000C ; }
000C ; }
000C ; }
000C AA24 clr R10
000E 41E0 ldi R20,1
0010 50E0 ldi R21,0
0012 60E0 ldi R22,0
0014 70E0 ldi R23,0
0016 FE01 movw R30,R28
0018 4083 std z+0,R20
001A 5183 std z+1,R21
001C 6283 std z+2,R22
001E 7383 std z+3,R23
0020 46C0 xjmp L5
0022 L2:
0022 .dbline 120
0022 .dbline 121
0022 FE01 movw R30,R28
0024 2080 ldd R2,z+0
0026 3180 ldd R3,z+1
0028 4280 ldd R4,z+2
002A 5380 ldd R5,z+3
002C FE01 movw R30,R28
002E 6088 ldd R6,z+16
0030 7188 ldd R7,z+17
0032 8288 ldd R8,z+18
0034 9388 ldd R9,z+19
0036 5A92 st -y,R5
0038 4A92 st -y,R4
003A 3A92 st -y,R3
003C 2A92 st -y,R2
003E 8301 movw R16,R6
0040 9401 movw R18,R8
0042 0E940000 xcall div32u
0046 FE01 movw R30,R28
0048 0483 std z+4,R16
004A 1583 std z+5,R17
004C 2683 std z+6,R18
004E 3783 std z+7,R19
0050 .dbline 122
0050 4AE0 ldi R20,10
0052 50E0 ldi R21,0
0054 60E0 ldi R22,0
0056 70E0 ldi R23,0
0058 FE01 movw R30,R28
005A 2480 ldd R2,z+4
005C 3580 ldd R3,z+5
005E 4680 ldd R4,z+6
0060 5780 ldd R5,z+7
0062 7A93 st -y,R23
0064 6A93 st -y,R22
0066 5A93 st -y,R21
0068 4A93 st -y,R20
006A 8101 movw R16,R2
006C 9201 movw R18,R4
006E 0E940000 xcall mod32u
0072 80E0 ldi R24,<_dataElem
0074 90E0 ldi R25,>_dataElem
0076 EA2D mov R30,R10
0078 FF27 clr R31
007A E80F add R30,R24
007C F91F adc R31,R25
007E 0083 std z+0,R16
0080 .dbline 123
0080 FE01 movw R30,R28
0082 2080 ldd R2,z+0
0084 3180 ldd R3,z+1
0086 4280 ldd R4,z+2
0088 5380 ldd R5,z+3
008A 4AE0 ldi R20,10
008C 50E0 ldi R21,0
008E 60E0 ldi R22,0
0090 70E0 ldi R23,0
0092 5A92 st -y,R5
0094 4A92 st -y,R4
0096 3A92 st -y,R3
0098 2A92 st -y,R2
009A 8A01 movw R16,R20
009C 9B01 movw R18,R22
009E 0E940000 xcall empy32u
00A2 FE01 movw R30,R28
00A4 0083 std z+0,R16
00A6 1183 std z+1,R17
00A8 2283 std z+2,R18
00AA 3383 std z+3,R19
00AC .dbline 124
00AC L3:
00AC .dbline 119
00AC A394 inc R10
00AE L5:
00AE .dbline 119
00AE AC14 cp R10,R12
00B0 08F4 brsh X0
00B2 B7CF xjmp L2
00B4 X0:
00B4 .dbline -2
00B4 .dbline 125
00B4 ; }
00B4 ; }
00B4 ; }
00B4 ; }
00B4 ; }
00B4 ; }
00B4 L1:
00B4 2896 adiw R28,8
00B6 0E940000 xcall pop_gset4
00BA 2496 adiw R28,4
00BC .dbline 0 ; func end
00BC 0895 ret
00BE .dbsym l y 4 l
00BE .dbsym l j 0 l
00BE .dbsym r i 10 c
00BE .dbsym r len 12 C
00BE .dbsym l dat 16 l
00BE .dbend
00BE .dbfile E:\ICC_H\HardExt.H
00BE .dbfunc e delay50us _delay50us fV
00BE ; j -> R20
00BE ; t -> R16,R17
.even
00BE _delay50us::
00BE 0E940000 xcall push_gset1
00C2 .dbline -1
00C2 .dbline 98
00C2 .dbline 100
00C2 07C0 xjmp L10
00C4 L7:
00C4 .dbline 101
00C4 4427 clr R20
00C6 01C0 xjmp L14
00C8 L11:
00C8 .dbline 102
00C8 L12:
00C8 .dbline 101
00C8 4395 inc R20
00CA L14:
00CA .dbline 101
00CA 4634 cpi R20,70
00CC E8F3 brlo L11
00CE L8:
00CE .dbline 100
00CE 0150 subi R16,1
00D0 1040 sbci R17,0
00D2 L10:
00D2 .dbline 100
00D2 2224 clr R2
00D4 3324 clr R3
00D6 2016 cp R2,R16
00D8 3106 cpc R3,R17
00DA A4F3 brlt L7
00DC .dbline -2
00DC .dbline 103
00DC L6:
00DC 0E940000 xcall pop_gset1
00E0 .dbline 0 ; func end
00E0 0895 ret
00E2 .dbsym r j 20 c
00E2 .dbsym r t 16 I
00E2 .dbend
00E2 .dbfunc e delay50ms _delay50ms fV
00E2 ; i -> R20,R21
00E2 ; t -> R16,R17
.even
00E2 _delay50ms::
00E2 0E940000 xcall push_gset1
00E6 .dbline -1
00E6 .dbline 113
00E6 .dbline 115
00E6 0BC0 xjmp L19
00E8 L16:
00E8 .dbline 116
00E8 4427 clr R20
00EA 5527 clr R21
00EC 02C0 xjmp L23
00EE L20:
00EE .dbline 117
00EE L21:
00EE .dbline 116
00EE 4F5F subi R20,255 ; offset = 1
00F0 5F4F sbci R21,255
00F2 L23:
00F2 .dbline 116
00F2 423A cpi R20,162
00F4 EDEC ldi R30,205
00F6 5E07 cpc R21,R30
00F8 D0F3 brlo L20
00FA L17:
00FA .dbline 115
00FA 0150 subi R16,1
00FC 1040 sbci R17,0
00FE L19:
00FE .dbline 115
00FE 2224 clr R2
0100 3324 clr R3
0102 2016 cp R2,R16
0104 3106 cpc R3,R17
0106 84F3 brlt L16
0108 .dbline -2
0108 .dbline 118
0108 L15:
0108 0E940000 xcall pop_gset1
010C .dbline 0 ; func end
010C 0895 ret
010E .dbsym r i 20 i
010E .dbsym r t 16 I
010E .dbend
.area vector(rom, abs)
.org 8
0008 0C948700 jmp _int1_isr
.area text(rom, con, rel)
010E .dbfile E:\ICC_H\HardExt.H
010E .dbfile E:\ProductPro\M16SD\ICCAVR\PD3Key\PD3KeyInt\PD3KeyInt.C
010E .dbfunc e int1_isr _int1_isr fV
.even
010E _int1_isr::
010E 0E940000 xcall push_lset
0112 .dbline -1
0112 .dbline 13
0112 .dbline 14
0112 8BB7 in R24,0x3b
0114 8F77 andi R24,127
0116 8BBF out 0x3b,R24
0118 .dbline 15
0118 88B3 in R24,0x18
011A 8F5F subi R24,255 ; addi 1
011C 88BB out 0x18,R24
011E .dbline 16
011E 04E0 ldi R16,4
0120 10E0 ldi R17,0
0122 DFDF xcall _delay50ms
0124 .dbline 17
0124 8BB7 in R24,0x3b
0126 8068 ori R24,128
0128 8BBF out 0x3b,R24
012A .dbline -2
012A .dbline 18
012A L24:
012A 0E940000 xcall pop_lset
012E .dbline 0 ; func end
012E 1895 reti
0130 .dbend
0130 .dbfunc e int1_init _int1_init fV
.even
0130 _int1_init::
0130 .dbline -1
0130 .dbline 21
0130 .dbline 22
0130 8B98 cbi 0x11,3
0132 .dbline 23
0132 939A sbi 0x12,3
0134 .dbline 24
0134 85B7 in R24,0x35
0136 836F ori R24,243
0138 85BF out 0x35,R24
013A .dbline 25
013A 8BB7 in R24,0x3b
013C 8068 ori R24,128
013E 8BBF out 0x3b,R24
0140 .dbline 26
0140 7894 sei
0142 .dbline -2
0142 .dbline 27
0142 L25:
0142 .dbline 0 ; func end
0142 0895 ret
0144 .dbend
0144 .dbfunc e main _main fV
.even
0144 _main::
0144 .dbline -1
0144 .dbline 30
0144 .dbline 31
0144 8FEF ldi R24,255
0146 87BB out 0x17,R24
0148 .dbline 32
0148 2224 clr R2
014A 28BA out 0x18,R2
014C .dbline 33
014C F1DF xcall _int1_init
014E .dbline 34
014E 8895 sleep
0150 L27:
0150 .dbline 35
0150 L28:
0150 .dbline 35
0150 FFCF xjmp L27
0152 X1:
0152 .dbline -2
0152 .dbline 36
0152 L26:
0152 .dbline 0 ; func end
0152 0895 ret
0154 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\ProductPro\M16SD\ICCAVR\PD3Key\PD3KeyInt\PD3KeyInt.C
0000 _dataElem::
0000 .blkb 6
0006 .dbfile E:\ICC_H\SoftExt.H
0006 .dbsym e dataElem _dataElem A[6:6]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -