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

📄 ac11-2.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module ac11-2.c
                        .area lit(rom, con, rel)
 0000           _SEG7::
 0000 3F06              .byte 63,6
 0002 5B4F              .byte 91,'O
 0004 666D              .byte 'f,'m
 0006 7D07              .byte 125,7
 0008 7F6F              .byte 127,'o
 000A                   .dbfile d:\MYDOCU~1\ac11-2\ac11-2.c
 000A                   .dbsym e SEG7 _SEG7 A[10:10]kc
 000A           _ACT::
 000A FEFD              .byte 254,253
 000C FBF7              .byte 251,247
 000E                   .dbsym e ACT _ACT A[4:4]kc
                        .area text(rom, con, rel)
 0000                   .dbfile d:\MYDOCU~1\ac11-2\ac11-2.c
 0000                   .dbfunc e delay_ms _delay_ms fV
 0000           ;              i -> R20,R21
 0000           ;              j -> R22,R23
 0000           ;              k -> R16,R17
                        .even
 0000           _delay_ms::
 0000 0E940000          xcall push_gset2
 0004                   .dbline -1
 0004                   .dbline 10
 0004           ; #include <iom16v.h>                   
 0004           ; #define uchar unsigned char   
 0004           ; #define uint  unsigned int    
 0004           ; uchar const SEG7[10]={0x3f,0x06,0x5b, 
 0004           ; 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
 0004           ; uchar const ACT[4]={0xfe,0xfd,0xfb,0xf7};
 0004           ; uchar x,y;                            
 0004           ; //*************************************
 0004           ; void delay_ms(uint k) 
 0004           ; {
 0004                   .dbline 12
 0004           ; uint i,j;                     
 0004           ;     for(i=0;i<k;i++)
 0004 4427              clr R20
 0006 5527              clr R21
 0008 0BC0              xjmp L5
 000A           L2:
 000A                   .dbline 13
 000A           ;     {
 000A                   .dbline 14
 000A           ;        for(j=0;j<1140;j++)
 000A 6627              clr R22
 000C 7727              clr R23
 000E 02C0              xjmp L9
 0010           L6:
 0010                   .dbline 15
 0010           L7:
 0010                   .dbline 14
 0010 6F5F              subi R22,255  ; offset = 1
 0012 7F4F              sbci R23,255
 0014           L9:
 0014                   .dbline 14
 0014 6437              cpi R22,116
 0016 E4E0              ldi R30,4
 0018 7E07              cpc R23,R30
 001A D0F3              brlo L6
 001C                   .dbline 16
 001C           L3:
 001C                   .dbline 12
 001C 4F5F              subi R20,255  ; offset = 1
 001E 5F4F              sbci R21,255
 0020           L5:
 0020                   .dbline 12
 0020 4017              cp R20,R16
 0022 5107              cpc R21,R17
 0024 90F3              brlo L2
 0026                   .dbline -2
 0026           L1:
 0026 0E940000          xcall pop_gset2
 002A                   .dbline 0 ; func end
 002A 0895              ret
 002C                   .dbsym r i 20 i
 002C                   .dbsym r j 22 i
 002C                   .dbsym r k 16 i
 002C                   .dbend
 002C                   .dbfunc e W_EEP _W_EEP fV
 002C           ;            dat -> R18
 002C           ;            add -> R16,R17
                        .even
 002C           _W_EEP::
 002C                   .dbline -1
 002C                   .dbline 20
 002C           ;        ;
 002C           ;     }
 002C           ; }
 002C           ; //************写EEPROM子函数**************
 002C           ; void W_EEP(uint add,uchar dat) 
 002C           ; {
 002C           L11:
 002C                   .dbline 21
 002C           L12:
 002C                   .dbline 21
 002C           ; while(EECR&(1<<EEWE));        
 002C E199              sbic 0x1c,1
 002E FECF              rjmp L11
 0030                   .dbline 22
 0030           ; EEAR=add;                     
 0030 1FBB              out 0x1f,R17
 0032 0EBB              out 0x1e,R16
 0034                   .dbline 23
 0034           ; EEDR=dat;                     
 0034 2DBB              out 0x1d,R18
 0036                   .dbline 24
 0036           ; EECR|=(1<<EEMWE);
 0036 E29A              sbi 0x1c,2
 0038                   .dbline 25
 0038           ; EECR|=(1<<EEWE);      
 0038 E19A              sbi 0x1c,1
 003A                   .dbline -2
 003A           L10:
 003A                   .dbline 0 ; func end
 003A 0895              ret
 003C                   .dbsym r dat 18 c
 003C                   .dbsym r add 16 i
 003C                   .dbend
 003C                   .dbfunc e R_EEP _R_EEP fc
 003C           ;            add -> R16,R17
                        .even
 003C           _R_EEP::
 003C                   .dbline -1
 003C                   .dbline 29
 003C           ; }
 003C           ; //****************读EEPROM子函数*******************
 003C           ; uchar R_EEP(uint add)
 003C           ; {
 003C           L15:
 003C                   .dbline 30
 003C           L16:
 003C                   .dbline 30
 003C           ; while(EECR&(1<<EEWE));
 003C E199              sbic 0x1c,1
 003E FECF              rjmp L15
 0040                   .dbline 31
 0040           ; EEAR=add;                     
 0040 1FBB              out 0x1f,R17
 0042 0EBB              out 0x1e,R16
 0044                   .dbline 32
 0044           ; EECR|=(1<<EERE);
 0044 E09A              sbi 0x1c,0
 0046                   .dbline 33
 0046           ; return EEDR;
 0046 0DB3              in R16,0x1d
 0048                   .dbline -2
 0048           L14:
 0048                   .dbline 0 ; func end
 0048 0895              ret
 004A                   .dbsym r add 16 i
 004A                   .dbend
 004A                   .dbfunc e display _display fV
                        .even
 004A           _display::
 004A                   .dbline -1
 004A                   .dbline 37
 004A           ; }
 004A           ; //*************************************
 004A           ; void display(void)    
 004A           ; {
 004A                   .dbline 38
 004A           ; PORTA=SEG7[y%10];
 004A 2AE0              ldi R18,10
 004C 30E0              ldi R19,0
 004E 00910000          lds R16,_y
 0052 1127              clr R17
 0054 0E940000          xcall mod16s
 0058 F801              movw R30,R16
 005A 80E0              ldi R24,<_SEG7
 005C 90E0              ldi R25,>_SEG7
 005E E80F              add R30,R24
 0060 F91F              adc R31,R25
 0062 E491              lpm R30,Z
 0064 EBBB              out 0x1b,R30
 0066                   .dbline 39
 0066           ; PORTC=ACT[0];
 0066 E0E0              ldi R30,<_ACT
 0068 F0E0              ldi R31,>_ACT
 006A E491              lpm R30,Z
 006C E5BB              out 0x15,R30
 006E                   .dbline 40
 006E           ; delay_ms(1);
 006E 01E0              ldi R16,1
 0070 10E0              ldi R17,0
 0072 C6DF              xcall _delay_ms
 0074                   .dbline 41
 0074           ; PORTA=SEG7[(y%100)/10];
 0074 24E6              ldi R18,100
 0076 30E0              ldi R19,0
 0078 00910000          lds R16,_y
 007C 1127              clr R17
 007E 0E940000          xcall mod16s
 0082 2AE0              ldi R18,10
 0084 30E0              ldi R19,0
 0086 0E940000          xcall div16s
 008A F801              movw R30,R16
 008C 80E0              ldi R24,<_SEG7
 008E 90E0              ldi R25,>_SEG7
 0090 E80F              add R30,R24
 0092 F91F              adc R31,R25
 0094 E491              lpm R30,Z
 0096 EBBB              out 0x1b,R30
 0098                   .dbline 42
 0098           ; PORTC=ACT[1];
 0098 E0E0              ldi R30,<_ACT+1
 009A F0E0              ldi R31,>_ACT+1
 009C E491              lpm R30,Z
 009E E5BB              out 0x15,R30
 00A0                   .dbline 43
 00A0           ; delay_ms(1);
 00A0 01E0              ldi R16,1
 00A2 10E0              ldi R17,0
 00A4 ADDF              xcall _delay_ms
 00A6                   .dbline 44
 00A6           ; PORTA=SEG7[(y%1000)/100];
 00A6 28EE              ldi R18,1000
 00A8 33E0              ldi R19,3
 00AA 00910000          lds R16,_y
 00AE 1127              clr R17
 00B0 0E940000          xcall mod16s
 00B4 24E6              ldi R18,100
 00B6 30E0              ldi R19,0
 00B8 0E940000          xcall div16s
 00BC F801              movw R30,R16
 00BE 80E0              ldi R24,<_SEG7
 00C0 90E0              ldi R25,>_SEG7
 00C2 E80F              add R30,R24
 00C4 F91F              adc R31,R25
 00C6 E491              lpm R30,Z
 00C8 EBBB              out 0x1b,R30
 00CA                   .dbline 45
 00CA           ; PORTC=ACT[2];
 00CA E0E0              ldi R30,<_ACT+2
 00CC F0E0              ldi R31,>_ACT+2
 00CE E491              lpm R30,Z
 00D0 E5BB              out 0x15,R30
 00D2                   .dbline 46
 00D2           ; delay_ms(1);
 00D2 01E0              ldi R16,1
 00D4 10E0              ldi R17,0
 00D6 94DF              xcall _delay_ms
 00D8                   .dbline 47
 00D8           ; PORTA=SEG7[y/1000];
 00D8 28EE              ldi R18,1000
 00DA 33E0              ldi R19,3
 00DC 00910000          lds R16,_y
 00E0 1127              clr R17
 00E2 0E940000          xcall div16s
 00E6 F801              movw R30,R16
 00E8 80E0              ldi R24,<_SEG7
 00EA 90E0              ldi R25,>_SEG7
 00EC E80F              add R30,R24
 00EE F91F              adc R31,R25
 00F0 E491              lpm R30,Z
 00F2 EBBB              out 0x1b,R30
 00F4                   .dbline 48
 00F4           ; PORTC=ACT[3];
 00F4 E0E0              ldi R30,<_ACT+3
 00F6 F0E0              ldi R31,>_ACT+3
 00F8 E491              lpm R30,Z
 00FA E5BB              out 0x15,R30
 00FC                   .dbline 49
 00FC           ; delay_ms(1);
 00FC 01E0              ldi R16,1
 00FE 10E0              ldi R17,0
 0100 7FDF              xcall _delay_ms
 0102                   .dbline 51
 0102           ; //----------------------
 0102           ; PORTA=SEG7[x%10];
 0102 2AE0              ldi R18,10
 0104 30E0              ldi R19,0
 0106 00910100          lds R16,_x
 010A 1127              clr R17
 010C 0E940000          xcall mod16s
 0110 F801              movw R30,R16
 0112 80E0              ldi R24,<_SEG7
 0114 90E0              ldi R25,>_SEG7
 0116 E80F              add R30,R24
 0118 F91F              adc R31,R25

⌨️ 快捷键说明

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