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

📄 ac10-2.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module ac10-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\ac10-2\ac10-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\ac10-2\ac10-2.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 15
 0000           ; #include <iom16v.h>                   
 0000           ; #define uchar unsigned char   
 0000           ; #define uint  unsigned int
 0000           ; #define OUT1_0  (PORTB=PORTB&0xfe) 
 0000           ; #define OUT1_1  (PORTB=PORTB|0x01) 
 0000           ; #define OUT2_0  (PORTB=PORTB&0xfd) 
 0000           ; #define OUT2_1  (PORTB=PORTB|0x02) 
 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 value,dis_val; 
 0000           ; uchar i,flag; 
 0000           ; /****************************************/
 0000           ; void port_init(void)  
 0000           ; {                                             
 0000                   .dbline 16
 0000           ;  PORTA = 0x7F;        
 0000 8FE7              ldi R24,127
 0002 8BBB              out 0x1b,R24
 0004                   .dbline 17
 0004           ;  DDRA  = 0x7F;                
 0004 8ABB              out 0x1a,R24
 0006                   .dbline 18
 0006           ;  PORTB = 0xFF;                
 0006 8FEF              ldi R24,255
 0008 88BB              out 0x18,R24
 000A                   .dbline 19
 000A           ;  DDRB  = 0xFF;
 000A 87BB              out 0x17,R24
 000C                   .dbline 20
 000C           ;  PORTC = 0xFF;                        
 000C 85BB              out 0x15,R24
 000E                   .dbline 21
 000E           ;  DDRC  = 0xFF;                
 000E 84BB              out 0x14,R24
 0010                   .dbline 22
 0010           ;  PORTD = 0xFF;                        
 0010 82BB              out 0x12,R24
 0012                   .dbline 23
 0012           ;  DDRD  = 0xFF;                        
 0012 81BB              out 0x11,R24
 0014                   .dbline -2
 0014           L1:
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbend
 0016                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0016           _timer0_init::
 0016                   .dbline -1
 0016                   .dbline 27
 0016           ; }                             
 0016           ; /************************************/
 0016           ; void timer0_init(void) 
 0016           ; {
 0016                   .dbline 28
 0016           ;  TCNT0 = 0x83;        
 0016 83E8              ldi R24,131
 0018 82BF              out 0x32,R24
 001A                   .dbline 29
 001A           ;  OCR0  = 0x7D;
 001A 8DE7              ldi R24,125
 001C 8CBF              out 0x3c,R24
 001E                   .dbline 30
 001E           ;  TCCR0 = 0x03;        
 001E 83E0              ldi R24,3
 0020 83BF              out 0x33,R24
 0022                   .dbline -2
 0022           L2:
 0022                   .dbline 0 ; func end
 0022 0895              ret
 0024                   .dbend
                        .area vector(rom, abs)
                        .org 36
 0024 0C941200          jmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 0024                   .dbfile d:\MYDOCU~1\ac10-2\ac10-2.c
 0024                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 0024           _timer0_ovf_isr::
 0024 2A92              st -y,R2
 0026 0A93              st -y,R16
 0028 1A93              st -y,R17
 002A 2A93              st -y,R18
 002C 3A93              st -y,R19
 002E 8A93              st -y,R24
 0030 9A93              st -y,R25
 0032 EA93              st -y,R30
 0034 FA93              st -y,R31
 0036 2FB6              in R2,0x3f
 0038 2A92              st -y,R2
 003A 0E940000          xcall push_gset1
 003E                   .dbline -1
 003E                   .dbline 35
 003E           ; }
 003E           ; /*************************************/
 003E           ; #pragma interrupt_handler timer0_ovf_isr:10 
 003E           ; void timer0_ovf_isr(void)
 003E           ; {
 003E                   .dbline 36
 003E           ;  TCNT0 = 0x83;        
 003E 83E8              ldi R24,131
 0040 82BF              out 0x32,R24
 0042                   .dbline 37
 0042           ;  if(++i>3)i=0;        
 0042 80910100          lds R24,_i
 0046 8F5F              subi R24,255    ; addi 1
 0048 282E              mov R2,R24
 004A 20920100          sts _i,R2
 004E 83E0              ldi R24,3
 0050 8215              cp R24,R2
 0052 18F4              brsh L4
 0054                   .dbline 37
 0054 2224              clr R2
 0056 20920100          sts _i,R2
 005A           L4:
 005A                   .dbline 38
 005A           ;  switch(i)            
 005A 40910100          lds R20,_i
 005E 5527              clr R21
 0060 4030              cpi R20,0
 0062 4507              cpc R20,R21
 0064 79F0              breq L9
 0066           X0:
 0066 4130              cpi R20,1
 0068 E0E0              ldi R30,0
 006A 5E07              cpc R21,R30
 006C F9F0              breq L10
 006E 4230              cpi R20,2
 0070 E0E0              ldi R30,0
 0072 5E07              cpc R21,R30
 0074 09F4              brne X2
 0076 32C0              xjmp L12
 0078           X2:
 0078 4330              cpi R20,3
 007A E0E0              ldi R30,0
 007C 5E07              cpc R21,R30
 007E 09F4              brne X3
 0080 45C0              xjmp L14
 0082           X3:
 0082 57C0              xjmp L7
 0084           X1:
 0084                   .dbline 39
 0084           ;  {
 0084           L9:
 0084                   .dbline 40
 0084           ;  case 0:PORTA=SEG7[dis_val%10];PORTC=ACT[0];break;
 0084 2AE0              ldi R18,10
 0086 30E0              ldi R19,0
 0088 00910200          lds R16,_dis_val
 008C 10910300          lds R17,_dis_val+1
 0090 0E940000          xcall mod16u
 0094 F801              movw R30,R16
 0096 80E0              ldi R24,<_SEG7
 0098 90E0              ldi R25,>_SEG7
 009A E80F              add R30,R24
 009C F91F              adc R31,R25
 009E E491              lpm R30,Z
 00A0 EBBB              out 0x1b,R30
 00A2                   .dbline 40
 00A2 E0E0              ldi R30,<_ACT
 00A4 F0E0              ldi R31,>_ACT
 00A6 E491              lpm R30,Z
 00A8 E5BB              out 0x15,R30
 00AA                   .dbline 40
 00AA 43C0              xjmp L7
 00AC           L10:
 00AC                   .dbline 41
 00AC           ;  case 1:PORTA=SEG7[(dis_val/10)%10];PORTC=ACT[1];break;
 00AC 2AE0              ldi R18,10
 00AE 30E0              ldi R19,0
 00B0 00910200          lds R16,_dis_val
 00B4 10910300          lds R17,_dis_val+1
 00B8 0E940000          xcall div16u
 00BC 2AE0              ldi R18,10
 00BE 30E0              ldi R19,0
 00C0 0E940000          xcall mod16u
 00C4 F801              movw R30,R16
 00C6 80E0              ldi R24,<_SEG7
 00C8 90E0              ldi R25,>_SEG7
 00CA E80F              add R30,R24
 00CC F91F              adc R31,R25
 00CE E491              lpm R30,Z
 00D0 EBBB              out 0x1b,R30
 00D2                   .dbline 41
 00D2 E0E0              ldi R30,<_ACT+1
 00D4 F0E0              ldi R31,>_ACT+1
 00D6 E491              lpm R30,Z
 00D8 E5BB              out 0x15,R30
 00DA                   .dbline 41
 00DA 2BC0              xjmp L7
 00DC           L12:
 00DC                   .dbline 42
 00DC           ;  case 2:PORTA=SEG7[(dis_val/100)%10];PORTC=ACT[2];break;
 00DC 24E6              ldi R18,100
 00DE 30E0              ldi R19,0
 00E0 00910200          lds R16,_dis_val
 00E4 10910300          lds R17,_dis_val+1
 00E8 0E940000          xcall div16u
 00EC 2AE0              ldi R18,10
 00EE 30E0              ldi R19,0
 00F0 0E940000          xcall mod16u
 00F4 F801              movw R30,R16
 00F6 80E0              ldi R24,<_SEG7
 00F8 90E0              ldi R25,>_SEG7
 00FA E80F              add R30,R24
 00FC F91F              adc R31,R25
 00FE E491              lpm R30,Z
 0100 EBBB              out 0x1b,R30
 0102                   .dbline 42
 0102 E0E0              ldi R30,<_ACT+2
 0104 F0E0              ldi R31,>_ACT+2
 0106 E491              lpm R30,Z
 0108 E5BB              out 0x15,R30
 010A                   .dbline 42
 010A 13C0              xjmp L7
 010C           L14:
 010C                   .dbline 43
 010C 28EE              ldi R18,1000
 010E 33E0              ldi R19,3
 0110 00910200          lds R16,_dis_val
 0114 10910300          lds R17,_dis_val+1
 0118 0E940000          xcall div16u
 011C F801              movw R30,R16
 011E 80E0              ldi R24,<_SEG7
 0120 90E0              ldi R25,>_SEG7
 0122 E80F              add R30,R24
 0124 F91F              adc R31,R25
 0126 E491              lpm R30,Z
 0128 EBBB              out 0x1b,R30
 012A                   .dbline 43
 012A E0E0              ldi R30,<_ACT+3
 012C F0E0              ldi R31,>_ACT+3
 012E E491              lpm R30,Z
 0130 E5BB              out 0x15,R30
 0132                   .dbline 43
 0132                   .dbline 44
 0132           L7:
 0132                   .dbline -2
 0132           L3:
 0132 0E940000          xcall pop_gset1
 0136 2990              ld R2,y+
 0138 2FBE              out 0x3f,R2
 013A F991              ld R31,y+
 013C E991              ld R30,y+
 013E 9991              ld R25,y+
 0140 8991              ld R24,y+
 0142 3991              ld R19,y+
 0144 2991              ld R18,y+
 0146 1991              ld R17,y+
 0148 0991              ld R16,y+
 014A 2990              ld R2,y+
 014C                   .dbline 0 ; func end
 014C 1895              reti
 014E                   .dbend
 014E                   .dbfunc e timer1_init _timer1_init fV
                        .even
 014E           _timer1_init::
 014E                   .dbline -1
 014E                   .dbline 49
 014E           ;  case 3:PORTA=SEG7[dis_val/1000];PORTC=ACT[3];break;
 014E           ;  default:break;
 014E           ;  }
 014E           ; }
 014E           ; /************************************/
 014E           ; void timer1_init(void)        
 014E           ; {
 014E                   .dbline 50
 014E           ;  TCNT1H = 0xE7;       
 014E 87EE              ldi R24,231
 0150 8DBD              out 0x2d,R24
 0152                   .dbline 51
 0152           ;  TCNT1L = 0x96;
 0152 86E9              ldi R24,150
 0154 8CBD              out 0x2c,R24
 0156                   .dbline 52
 0156           ;  TCCR1B = 0x03;       
 0156 83E0              ldi R24,3
 0158 8EBD              out 0x2e,R24
 015A                   .dbline -2
 015A           L16:
 015A                   .dbline 0 ; func end
 015A 0895              ret
 015C                   .dbend
                        .area vector(rom, abs)
                        .org 32
 0020 0C94AE00          jmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 015C                   .dbfile d:\MYDOCU~1\ac10-2\ac10-2.c
 015C                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 015C           _timer1_ovf_isr::
 015C 8A93              st -y,R24
 015E 8FB7              in R24,0x3f
 0160 8A93              st -y,R24
 0162                   .dbline -1
 0162                   .dbline 57
 0162           ; }
 0162           ; /***************************************************/
 0162           ; #pragma interrupt_handler timer1_ovf_isr:9 
 0162           ; void timer1_ovf_isr(void)
 0162           ; {
 0162                   .dbline 58
 0162           ;  TCNT1H = 0xE7;               
 0162 87EE              ldi R24,231
 0164 8DBD              out 0x2d,R24
 0166                   .dbline 59
 0166           ;  TCNT1L = 0x96; 
 0166 86E9              ldi R24,150
 0168 8CBD              out 0x2c,R24
 016A                   .dbline -2
 016A           L17:
 016A 8991              ld R24,y+
 016C 8FBF              out 0x3f,R24
 016E 8991              ld R24,y+
 0170                   .dbline 0 ; func end
 0170 1895              reti
 0172                   .dbend
 0172                   .dbfunc e adc_init _adc_init fV
                        .even
 0172           _adc_init::
 0172                   .dbline -1
 0172                   .dbline 63
 0172           ;  }

⌨️ 快捷键说明

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