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

📄 ac10-1.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module ac10-1.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-1\ac10-1.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-1\ac10-1.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 11
 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 adc_val,dis_val; 
 0000           ; uchar i,cnt;                          
 0000           ; /************************************************/
 0000           ; void port_init(void)  
 0000           ; {                                             
 0000                   .dbline 12
 0000           ;  PORTA = 0x7F;                        
 0000 8FE7              ldi R24,127
 0002 8BBB              out 0x1b,R24
 0004                   .dbline 13
 0004           ;  DDRA  = 0x7F;                        
 0004 8ABB              out 0x1a,R24
 0006                   .dbline 14
 0006           ;  PORTB = 0xFF;
 0006 8FEF              ldi R24,255
 0008 88BB              out 0x18,R24
 000A                   .dbline 15
 000A           ;  DDRB  = 0xFF;                
 000A 87BB              out 0x17,R24
 000C                   .dbline 16
 000C           ;  PORTC = 0xFF; 
 000C 85BB              out 0x15,R24
 000E                   .dbline 17
 000E           ;  DDRC  = 0xFF;                
 000E 84BB              out 0x14,R24
 0010                   .dbline 18
 0010           ;  PORTD = 0xFF;                
 0010 82BB              out 0x12,R24
 0012                   .dbline 19
 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 adc_init _adc_init fV
                        .even
 0016           _adc_init::
 0016                   .dbline -1
 0016                   .dbline 23
 0016           ; }                             
 0016           ; /************************************************/
 0016           ; void adc_init(void)   
 0016           ; {                                     
 0016                   .dbline 24
 0016           ; ADCSRA = 0xE3;                
 0016 83EE              ldi R24,227
 0018 86B9              out 0x6,R24
 001A                   .dbline 25
 001A           ; ADMUX = 0xC7;         
 001A 87EC              ldi R24,199
 001C 87B9              out 0x7,R24
 001E                   .dbline -2
 001E           L2:
 001E                   .dbline 0 ; func end
 001E 0895              ret
 0020                   .dbend
 0020                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0020           _timer0_init::
 0020                   .dbline -1
 0020                   .dbline 29
 0020           ; }                     
 0020           ; //***************************
 0020           ; void timer0_init(void)        
 0020           ; {                                     
 0020                   .dbline 30
 0020           ; TCNT0 = 0x83;                 
 0020 83E8              ldi R24,131
 0022 82BF              out 0x32,R24
 0024                   .dbline 31
 0024           ; TCCR0 = 0x03;                 
 0024 83E0              ldi R24,3
 0026 83BF              out 0x33,R24
 0028                   .dbline 32
 0028           ; TIMSK = 0x01;                 
 0028 81E0              ldi R24,1
 002A 89BF              out 0x39,R24
 002C                   .dbline -2
 002C           L3:
 002C                   .dbline 0 ; func end
 002C 0895              ret
 002E                   .dbend
 002E                   .dbfunc e init_devices _init_devices fV
                        .even
 002E           _init_devices::
 002E                   .dbline -1
 002E                   .dbline 36
 002E           ; }                             
 002E           ; /*********************************************/
 002E           ; void init_devices(void)       
 002E           ; {                                                     
 002E                   .dbline 37
 002E           ;  port_init(); 
 002E E8DF              xcall _port_init
 0030                   .dbline 38
 0030           ;  timer0_init();                       
 0030 F7DF              xcall _timer0_init
 0032                   .dbline 39
 0032           ;  adc_init();                  
 0032 F1DF              xcall _adc_init
 0034                   .dbline 40
 0034           ;  SREG=0x80;   
 0034 80E8              ldi R24,128
 0036 8FBF              out 0x3f,R24
 0038                   .dbline -2
 0038           L4:
 0038                   .dbline 0 ; func end
 0038 0895              ret
 003A                   .dbend
                        .area vector(rom, abs)
                        .org 36
 0024 0C941D00          jmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 003A                   .dbfile d:\MYDOCU~1\ac10-1\ac10-1.c
 003A                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 003A           _timer0_ovf_isr::
 003A 2A92              st -y,R2
 003C 0A93              st -y,R16
 003E 1A93              st -y,R17
 0040 2A93              st -y,R18
 0042 3A93              st -y,R19
 0044 8A93              st -y,R24
 0046 9A93              st -y,R25
 0048 EA93              st -y,R30
 004A FA93              st -y,R31
 004C 2FB6              in R2,0x3f
 004E 2A92              st -y,R2
 0050 0E940000          xcall push_gset1
 0054                   .dbline -1
 0054                   .dbline 45
 0054           ; }                                                     
 0054           ; //***************************
 0054           ; #pragma interrupt_handler timer0_ovf_isr:10
 0054           ; void timer0_ovf_isr(void)     
 0054           ; {                                                     
 0054                   .dbline 46
 0054           ;  TCNT0 = 0x83;                                
 0054 83E8              ldi R24,131
 0056 82BF              out 0x32,R24
 0058                   .dbline 47
 0058           ;  cnt++;                               
 0058 80910000          lds R24,_cnt
 005C 8F5F              subi R24,255    ; addi 1
 005E 80930000          sts _cnt,R24
 0062                   .dbline 48
 0062           ;  if(++i>3)i=0;                        
 0062 80910100          lds R24,_i
 0066 8F5F              subi R24,255    ; addi 1
 0068 282E              mov R2,R24
 006A 20920100          sts _i,R2
 006E 83E0              ldi R24,3
 0070 8215              cp R24,R2
 0072 18F4              brsh L6
 0074                   .dbline 48
 0074 2224              clr R2
 0076 20920100          sts _i,R2
 007A           L6:
 007A                   .dbline 49
 007A           ;  switch(i)    
 007A 40910100          lds R20,_i
 007E 5527              clr R21
 0080 4030              cpi R20,0
 0082 4507              cpc R20,R21
 0084 79F0              breq L11
 0086           X0:
 0086 4130              cpi R20,1
 0088 E0E0              ldi R30,0
 008A 5E07              cpc R21,R30
 008C F9F0              breq L12
 008E 4230              cpi R20,2
 0090 E0E0              ldi R30,0
 0092 5E07              cpc R21,R30
 0094 09F4              brne X2
 0096 32C0              xjmp L14
 0098           X2:
 0098 4330              cpi R20,3
 009A E0E0              ldi R30,0
 009C 5E07              cpc R21,R30
 009E 09F4              brne X3
 00A0 45C0              xjmp L16
 00A2           X3:
 00A2 57C0              xjmp L9
 00A4           X1:
 00A4                   .dbline 50
 00A4           ;  {
 00A4           L11:
 00A4                   .dbline 51
 00A4           ;  case 0:PORTA=SEG7[dis_val%10];PORTC=ACT[0];break;
 00A4 2AE0              ldi R18,10
 00A6 30E0              ldi R19,0
 00A8 00910200          lds R16,_dis_val
 00AC 10910300          lds R17,_dis_val+1
 00B0 0E940000          xcall mod16u
 00B4 F801              movw R30,R16
 00B6 80E0              ldi R24,<_SEG7
 00B8 90E0              ldi R25,>_SEG7
 00BA E80F              add R30,R24
 00BC F91F              adc R31,R25
 00BE E491              lpm R30,Z
 00C0 EBBB              out 0x1b,R30
 00C2                   .dbline 51
 00C2 E0E0              ldi R30,<_ACT
 00C4 F0E0              ldi R31,>_ACT
 00C6 E491              lpm R30,Z
 00C8 E5BB              out 0x15,R30
 00CA                   .dbline 51
 00CA 43C0              xjmp L9
 00CC           L12:
 00CC                   .dbline 52
 00CC           ;  case 1:PORTA=SEG7[(dis_val/10)%10];PORTC=ACT[1];break;
 00CC 2AE0              ldi R18,10
 00CE 30E0              ldi R19,0
 00D0 00910200          lds R16,_dis_val
 00D4 10910300          lds R17,_dis_val+1
 00D8 0E940000          xcall div16u
 00DC 2AE0              ldi R18,10
 00DE 30E0              ldi R19,0
 00E0 0E940000          xcall mod16u
 00E4 F801              movw R30,R16
 00E6 80E0              ldi R24,<_SEG7
 00E8 90E0              ldi R25,>_SEG7
 00EA E80F              add R30,R24
 00EC F91F              adc R31,R25
 00EE E491              lpm R30,Z
 00F0 EBBB              out 0x1b,R30
 00F2                   .dbline 52
 00F2 E0E0              ldi R30,<_ACT+1
 00F4 F0E0              ldi R31,>_ACT+1
 00F6 E491              lpm R30,Z
 00F8 E5BB              out 0x15,R30
 00FA                   .dbline 52
 00FA 2BC0              xjmp L9
 00FC           L14:
 00FC                   .dbline 53
 00FC           ;  case 2:PORTA=SEG7[(dis_val/100)%10];PORTC=ACT[2];break;
 00FC 24E6              ldi R18,100
 00FE 30E0              ldi R19,0
 0100 00910200          lds R16,_dis_val
 0104 10910300          lds R17,_dis_val+1
 0108 0E940000          xcall div16u
 010C 2AE0              ldi R18,10
 010E 30E0              ldi R19,0
 0110 0E940000          xcall mod16u
 0114 F801              movw R30,R16
 0116 80E0              ldi R24,<_SEG7
 0118 90E0              ldi R25,>_SEG7
 011A E80F              add R30,R24
 011C F91F              adc R31,R25
 011E E491              lpm R30,Z
 0120 EBBB              out 0x1b,R30

⌨️ 快捷键说明

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