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

📄 ac9-3.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module ac9-3.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\ac9-3\ac9-3.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\ac9-3\ac9-3.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 13
 0000           ; #include <iom16v.h>   
 0000           ; #define uchar unsigned char
 0000           ; #define uint unsigned int
 0000           ; uchar const SEG7[10]={0x3f,0x06,0x5b, 
 0000           ;         0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
 0000           ; uchar const ACT[4]={0xfe,0xfd,0xfb,0xf7}; 
 0000           ; uint cnt; 
 0000           ; uchar start_flag; 
 0000           ; uchar i; 
 0000           ; #define S1 (PIND&0x10)        
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 14
 0000           ;  PORTA = 0x00; 
 0000 2224              clr R2
 0002 2BBA              out 0x1b,R2
 0004                   .dbline 15
 0004           ;  DDRA  = 0xFF; 
 0004 8FEF              ldi R24,255
 0006 8ABB              out 0x1a,R24
 0008                   .dbline 16
 0008           ;  PORTC = 0xFF; 
 0008 85BB              out 0x15,R24
 000A                   .dbline 17
 000A           ;  DDRC  = 0xFF; 
 000A 84BB              out 0x14,R24
 000C                   .dbline 18
 000C           ;  PORTD = 0xFF; 
 000C 82BB              out 0x12,R24
 000E                   .dbline 19
 000E           ;  DDRD  = 0x00; 
 000E 21BA              out 0x11,R2
 0010                   .dbline -2
 0010           L1:
 0010                   .dbline 0 ; func end
 0010 0895              ret
 0012                   .dbend
 0012                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0012           _timer0_init::
 0012                   .dbline -1
 0012                   .dbline 23
 0012           ; }
 0012           ; 
 0012           ; void timer0_init(void)
 0012           ; {
 0012                   .dbline 24
 0012           ;  TCNT0 = 0x83; 
 0012 83E8              ldi R24,131
 0014 82BF              out 0x32,R24
 0016                   .dbline 25
 0016           ;  TCCR0 = 0x03; 
 0016 83E0              ldi R24,3
 0018 83BF              out 0x33,R24
 001A                   .dbline -2
 001A           L2:
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbend
                        .area vector(rom, abs)
                        .org 36
 0024 0C940E00          jmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 001C                   .dbfile d:\MYDOCU~1\ac9-3\ac9-3.c
 001C                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 001C           _timer0_ovf_isr::
 001C 2A92              st -y,R2
 001E 0A93              st -y,R16
 0020 1A93              st -y,R17
 0022 2A93              st -y,R18
 0024 3A93              st -y,R19
 0026 8A93              st -y,R24
 0028 9A93              st -y,R25
 002A EA93              st -y,R30
 002C FA93              st -y,R31
 002E 2FB6              in R2,0x3f
 0030 2A92              st -y,R2
 0032 0E940000          xcall push_gset1
 0036                   .dbline -1
 0036                   .dbline 30
 0036           ; }
 0036           ; 
 0036           ; #pragma interrupt_handler timer0_ovf_isr:10
 0036           ; void timer0_ovf_isr(void)
 0036           ; {
 0036                   .dbline 31
 0036           ;  SREG=0x80;
 0036 80E8              ldi R24,128
 0038 8FBF              out 0x3f,R24
 003A                   .dbline 32
 003A           ;  TCNT0 = 0x83; 
 003A 83E8              ldi R24,131
 003C 82BF              out 0x32,R24
 003E                   .dbline 33
 003E           ;  if(++i>3)i=0; 
 003E 80910000          lds R24,_i
 0042 8F5F              subi R24,255    ; addi 1
 0044 282E              mov R2,R24
 0046 20920000          sts _i,R2
 004A 83E0              ldi R24,3
 004C 8215              cp R24,R2
 004E 18F4              brsh L4
 0050                   .dbline 33
 0050 2224              clr R2
 0052 20920000          sts _i,R2
 0056           L4:
 0056                   .dbline 34
 0056           ;  switch(i)
 0056 40910000          lds R20,_i
 005A 5527              clr R21
 005C 4030              cpi R20,0
 005E 4507              cpc R20,R21
 0060 79F0              breq L9
 0062           X0:
 0062 4130              cpi R20,1
 0064 E0E0              ldi R30,0
 0066 5E07              cpc R21,R30
 0068 21F1              breq L10
 006A 4230              cpi R20,2
 006C E0E0              ldi R30,0
 006E 5E07              cpc R21,R30
 0070 09F4              brne X2
 0072 3CC0              xjmp L11
 0074           X2:
 0074 4330              cpi R20,3
 0076 E0E0              ldi R30,0
 0078 5E07              cpc R21,R30
 007A 09F4              brne X3
 007C 55C0              xjmp L12
 007E           X3:
 007E 6CC0              xjmp L7
 0080           X1:
 0080                   .dbline 35
 0080           ;  {
 0080           L9:
 0080                   .dbline 36
 0080           ;  case 0: PORTA=SEG7[cnt%10]; PORTC=ACT[i];break;
 0080 2AE0              ldi R18,10
 0082 30E0              ldi R19,0
 0084 00910200          lds R16,_cnt
 0088 10910300          lds R17,_cnt+1
 008C 0E940000          xcall mod16u
 0090 F801              movw R30,R16
 0092 80E0              ldi R24,<_SEG7
 0094 90E0              ldi R25,>_SEG7
 0096 E80F              add R30,R24
 0098 F91F              adc R31,R25
 009A E491              lpm R30,Z
 009C EBBB              out 0x1b,R30
 009E                   .dbline 36
 009E 80E0              ldi R24,<_ACT
 00A0 90E0              ldi R25,>_ACT
 00A2 E0910000          lds R30,_i
 00A6 FF27              clr R31
 00A8 E80F              add R30,R24
 00AA F91F              adc R31,R25
 00AC E491              lpm R30,Z
 00AE E5BB              out 0x15,R30
 00B0                   .dbline 36
 00B0 53C0              xjmp L7
 00B2           L10:
 00B2                   .dbline 37
 00B2           ;  case 1: PORTA=SEG7[(cnt/10)%10]; PORTC=ACT[i];break;
 00B2 2AE0              ldi R18,10
 00B4 30E0              ldi R19,0
 00B6 00910200          lds R16,_cnt
 00BA 10910300          lds R17,_cnt+1
 00BE 0E940000          xcall div16u
 00C2 2AE0              ldi R18,10
 00C4 30E0              ldi R19,0
 00C6 0E940000          xcall mod16u
 00CA F801              movw R30,R16
 00CC 80E0              ldi R24,<_SEG7
 00CE 90E0              ldi R25,>_SEG7
 00D0 E80F              add R30,R24
 00D2 F91F              adc R31,R25
 00D4 E491              lpm R30,Z
 00D6 EBBB              out 0x1b,R30
 00D8                   .dbline 37
 00D8 80E0              ldi R24,<_ACT
 00DA 90E0              ldi R25,>_ACT
 00DC E0910000          lds R30,_i
 00E0 FF27              clr R31
 00E2 E80F              add R30,R24
 00E4 F91F              adc R31,R25
 00E6 E491              lpm R30,Z
 00E8 E5BB              out 0x15,R30
 00EA                   .dbline 37
 00EA 36C0              xjmp L7
 00EC           L11:
 00EC                   .dbline 38
 00EC           ;  case 2: PORTA=SEG7[(cnt/100)%10]|0x80; PORTC=ACT[i];break;
 00EC 24E6              ldi R18,100
 00EE 30E0              ldi R19,0
 00F0 00910200          lds R16,_cnt
 00F4 10910300          lds R17,_cnt+1
 00F8 0E940000          xcall div16u
 00FC 2AE0              ldi R18,10
 00FE 30E0              ldi R19,0
 0100 0E940000          xcall mod16u
 0104 F801              movw R30,R16
 0106 80E0              ldi R24,<_SEG7
 0108 90E0              ldi R25,>_SEG7
 010A E80F              add R30,R24
 010C F91F              adc R31,R25
 010E E491              lpm R30,Z
 0110 E068              ori R30,128
 0112 EBBB              out 0x1b,R30
 0114                   .dbline 38
 0114 80E0              ldi R24,<_ACT
 0116 90E0              ldi R25,>_ACT
 0118 E0910000          lds R30,_i
 011C FF27              clr R31
 011E E80F              add R30,R24
 0120 F91F              adc R31,R25
 0122 E491              lpm R30,Z
 0124 E5BB              out 0x15,R30
 0126                   .dbline 38
 0126 18C0              xjmp L7
 0128           L12:
 0128                   .dbline 39
 0128 28EE              ldi R18,1000
 012A 33E0              ldi R19,3
 012C 00910200          lds R16,_cnt
 0130 10910300          lds R17,_cnt+1
 0134 0E940000          xcall div16u
 0138 F801              movw R30,R16
 013A 80E0              ldi R24,<_SEG7
 013C 90E0              ldi R25,>_SEG7
 013E E80F              add R30,R24
 0140 F91F              adc R31,R25
 0142 E491              lpm R30,Z
 0144 EBBB              out 0x1b,R30
 0146                   .dbline 39
 0146 80E0              ldi R24,<_ACT
 0148 90E0              ldi R25,>_ACT
 014A E0910000          lds R30,_i
 014E FF27              clr R31
 0150 E80F              add R30,R24
 0152 F91F              adc R31,R25
 0154 E491              lpm R30,Z
 0156 E5BB              out 0x15,R30
 0158                   .dbline 39
 0158                   .dbline 40
 0158           L7:
 0158                   .dbline -2
 0158           L3:
 0158 0E940000          xcall pop_gset1
 015C 2990              ld R2,y+

⌨️ 快捷键说明

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