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

📄 main.lis

📁 一个关于AVR单片机的例程
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 001E           ;  TCCR0 = 0x01; //start timer
 001E 81E0              ldi R24,1
 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 76
 004C 0C941200          jmp _timer0_comp_isr
                        .area text(rom, con, rel)
 0024                   .dbfile E:\avr\RCtest\main.c
 0024                   .dbfunc e timer0_comp_isr _timer0_comp_isr fV
                        .even
 0024           _timer0_comp_isr::
 0024 2A92              st -y,R2
 0026 8A93              st -y,R24
 0028 9A93              st -y,R25
 002A 2FB6              in R2,0x3f
 002C 2A92              st -y,R2
 002E                   .dbline -1
 002E                   .dbline 58
 002E           ; }
 002E           ; 
 002E           ; #pragma interrupt_handler timer0_comp_isr:20
 002E           ; void timer0_comp_isr(void)
 002E           ; {
 002E                   .dbline 60
 002E           ;  //compare occured TCNT0=OCR0
 002E           ;   TCNT0 = 0x00;
 002E 2224              clr R2
 0030 22BE              out 0x32,R2
 0032                   .dbline 61
 0032           ;   timer_count++;
 0032 80910000          lds R24,_timer_count
 0036 90910100          lds R25,_timer_count+1
 003A 0196              adiw R24,1
 003C 90930100          sts _timer_count+1,R25
 0040 80930000          sts _timer_count,R24
 0044                   .dbline -2
 0044           L3:
 0044 2990              ld R2,y+
 0046 2FBE              out 0x3f,R2
 0048 9991              ld R25,y+
 004A 8991              ld R24,y+
 004C 2990              ld R2,y+
 004E                   .dbline 0 ; func end
 004E 1895              reti
 0050                   .dbend
 0050                   .dbfunc e init_devices _init_devices fV
                        .even
 0050           _init_devices::
 0050                   .dbline -1
 0050                   .dbline 65
 0050           ; }
 0050           ; //call this routine to initialize all peripherals
 0050           ; void init_devices(void)
 0050           ; {
 0050                   .dbline 67
 0050           ;  //stop errant interrupts until set up
 0050           ;  CLI(); //disable all interrupts
 0050 F894              cli
 0052                   .dbline 68
 0052           ;  port_init();
 0052 D6DF              xcall _port_init
 0054                   .dbline 69
 0054           ;  MCUCR = 0x00;
 0054 2224              clr R2
 0056 25BE              out 0x35,R2
 0058                   .dbline 70
 0058           ;  GICR  = 0x00;
 0058 2BBE              out 0x3b,R2
 005A                   .dbline 71
 005A           ;  TIMSK = 0x02;  //timer interrupt sources
 005A 82E0              ldi R24,2
 005C 89BF              out 0x39,R24
 005E                   .dbline 72
 005E           ;  SEI(); //re-enable interrupts
 005E 7894              sei
 0060                   .dbline -2
 0060           L4:
 0060                   .dbline 0 ; func end
 0060 0895              ret
 0062                   .dbend
 0062                   .dbfunc e delay _delay fV
 0062           ;              i -> R16,R17
 0062           ;              j -> R18
                        .even
 0062           _delay::
 0062                   .dbline -1
 0062                   .dbline 77
 0062           ;  //all peripherals are now initialized
 0062           ; }
 0062           ; 
 0062           ; void delay(void)  //延时
 0062           ; { 
 0062                   .dbline 78
 0062           ;  unsigned int i=0;
 0062 0027              clr R16
 0064 1127              clr R17
 0066                   .dbline 79
 0066           ;  unsigned char j=0;
 0066 2227              clr R18
 0068                   .dbline 80
 0068           ;  for(i=1;i!=0;i++)
 0068 01E0              ldi R16,1
 006A 07C0              xjmp L9
 006C           L6:
 006C                   .dbline 81
 006C           ;  {
 006C                   .dbline 82
 006C           ;    for(j=1;j!=0;j++)
 006C 21E0              ldi R18,1
 006E 01C0              xjmp L13
 0070           L10:
 0070                   .dbline 83
 0070           L11:
 0070                   .dbline 82
 0070 2395              inc R18
 0072           L13:
 0072                   .dbline 82
 0072 2223              tst R18
 0074 E9F7              brne L10
 0076                   .dbline 84
 0076           L7:
 0076                   .dbline 80
 0076 0F5F              subi R16,255  ; offset = 1
 0078 1F4F              sbci R17,255
 007A           L9:
 007A                   .dbline 80
 007A 0030              cpi R16,0
 007C 0107              cpc R16,R17
 007E B1F7              brne L6
 0080           X0:
 0080                   .dbline -2
 0080           L5:
 0080                   .dbline 0 ; func end
 0080 0895              ret
 0082                   .dbsym r i 16 i
 0082                   .dbsym r j 18 c
 0082                   .dbend
 0082                   .dbfunc e Delay100us _Delay100us fV
 0082           ;              i -> R20
 0082           ;              x -> R16
                        .even
 0082           _Delay100us::
 0082 0E940000          xcall push_gset1
 0086                   .dbline -1
 0086                   .dbline 88
 0086           ;     ;
 0086           ;  }
 0086           ; }
 0086           ; 
 0086           ; void Delay100us(unsigned char x)
 0086           ; {
 0086                   .dbline 90
 0086           ;       unsigned char i;          //4clock                   
 0086           ;       for(i=147;x!=0;x--)     
 0086 43E9              ldi R20,147
 0088 06C0              xjmp L18
 008A           L19:
 008A                   .dbline 91
 008A           L20:
 008A                   .dbline 91
 008A 842F              mov R24,R20
 008C 8150              subi R24,1
 008E 482F              mov R20,R24
 0090 8823              tst R24
 0092 D9F7              brne L19
 0094           L16:
 0094                   .dbline 90
 0094 0A95              dec R16
 0096           L18:
 0096                   .dbline 90
 0096 0023              tst R16
 0098 C1F7              brne L20
 009A                   .dbline -2
 009A           L14:
 009A 0E940000          xcall pop_gset1
 009E                   .dbline 0 ; func end
 009E 0895              ret
 00A0                   .dbsym r i 20 c
 00A0                   .dbsym r x 16 c
 00A0                   .dbend
 00A0                   .dbfunc e Delay1ms _Delay1ms fV
 00A0           ;              n -> R20,R21
                        .even
 00A0           _Delay1ms::
 00A0 0E940000          xcall push_gset1
 00A4 A801              movw R20,R16
 00A6                   .dbline -1
 00A6                   .dbline 94
 00A6           ;       while(--i);      //5 * i clock
 00A6           ; }
 00A6           ; void Delay1ms( unsigned int n)
 00A6           ; {        
 00A6                   .dbline 95
 00A6 04C0              xjmp L26
 00A8           L23:
 00A8                   .dbline 95
 00A8                   .dbline 96
 00A8 0AE0              ldi R16,10
 00AA EBDF              xcall _Delay100us
 00AC                   .dbline 97
 00AC           L24:
 00AC                   .dbline 95
 00AC 4150              subi R20,1
 00AE 5040              sbci R21,0
 00B0           L26:
 00B0                   .dbline 95
 00B0           ;       for (;n!=0;n--){
 00B0 4030              cpi R20,0
 00B2 4507              cpc R20,R21
 00B4 C9F7              brne L23
 00B6           X1:
 00B6                   .dbline -2
 00B6           L22:
 00B6 0E940000          xcall pop_gset1
 00BA                   .dbline 0 ; func end
 00BA 0895              ret
 00BC                   .dbsym r n 20 i
 00BC                   .dbend
 00BC                   .dbfunc e Delay1s _Delay1s fV
 00BC           ;              m -> R20,R21
                        .even
 00BC           _Delay1s::
 00BC 0E940000          xcall push_gset1
 00C0 A801              movw R20,R16
 00C2                   .dbline -1
 00C2                   .dbline 100
 00C2           ;               Delay100us(10);
 00C2           ;       }
 00C2           ; }
 00C2           ; void Delay1s( unsigned int m)         //  m <= 6 ,when m==7, it is 1. 
 00C2           ; {
 00C2                   .dbline 101
 00C2           ;       m=m*40;                
 00C2 08E2              ldi R16,40
 00C4 10E0              ldi R17,0
 00C6 9A01              movw R18,R20
 00C8 0E940000          xcall empy16s
 00CC A801              movw R20,R16
 00CE                   .dbline 102
 00CE 04C0              xjmp L31
 00D0           L28:
 00D0                   .dbline 102
 00D0                   .dbline 103
 00D0 0AEF              ldi R16,250
 00D2 D7DF              xcall _Delay100us
 00D4                   .dbline 104
 00D4           L29:
 00D4                   .dbline 102
 00D4 4150              subi R20,1
 00D6 5040              sbci R21,0
 00D8           L31:
 00D8                   .dbline 102
 00D8           ;       for (;m!=0;m--){
 00D8 4030              cpi R20,0
 00DA 4507              cpc R20,R21
 00DC C9F7              brne L28
 00DE           X2:
 00DE                   .dbline -2
 00DE           L27:
 00DE 0E940000          xcall pop_gset1
 00E2                   .dbline 0 ; func end
 00E2 0895              ret
 00E4                   .dbsym r m 20 i
 00E4                   .dbend
                        .area lit(rom, con, rel)
 0181           _X_TAB::
 0181 7E0A              .byte 126,10
 0183 0A0A              .byte 10,10
 0185 007E              .byte 0,126
 0187 4040              .byte 64,64
 0189 7E00              .byte 126,0
 018B 7E42              .byte 126,'B
 018D 4242              .byte 'B,'B
 018F 007E              .byte 0,126
 0191 1824              .byte 24,36
 0193 4200              .byte 'B,0
 0195 0000              .byte 0,0
 0197 427E              .byte 'B,126
 0199 0200              .byte 2,0
 019B 7C12              .byte 124,18
 019D 127C              .byte 18,124
 019F 007E              .byte 0,126
 01A1 0A0A              .byte 10,10
 01A3 0E00              .byte 14,0
 01A5 7C12              .byte 124,18
 01A7 127C              .byte 18,124
 01A9 007E              .byte 0,126
 01AB 0810              .byte 8,16
 01AD 7E                .byte 126
 01AE                   .dbsym e X_TAB _X_TAB A[45:45]kc
                        .area text(rom, con, rel)
 00E4                   .dbfile E:\avr\RCtest\main.c
 00E4                   .dbfunc e LcdInit _LcdInit fV
                        .even
 00E4           _LcdInit::
 00E4                   .dbline -1
 00E4                   .dbline 135
 00E4           ;               Delay100us(250);
 00E4           ;       }
 00E4           ; }
 00E4           ; 
 00E4           ; 
 00E4           ; /*--------------------------------------------------------------------------------------------------
 00E4           ;                                       Global Variables
 00E4           ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,10个
 00E4           ; --------------------------------------------------------------------------------------------------*/
 00E4           ; //字模 "FUCK JAPAN"
 00E4           ; unsigned char const X_TAB[]  =    
 00E4           ; {0x7E,0x0A,0x0A,0x0A,0x00,0x7E,0x40,0x40,0x7E,0x00,0x7E,0x42,0x42,0x42,0x00,0x7E,0x18,0x24,0x42,0x00,0x00,0x00,0x42,0x7E,0x02,0x00,0x7C,0x12,0x12,0x7C,
 00E4           ; 0x00,0x7E,0x0A,0x0A,0x0E,0x00,0x7C,0x12,0x12,0x7C,0x00,0x7E,0x08,0x10,0x7E};
 00E4           ; 
 00E4           ; 
 00E4           ; 
 00E4           ; 
 00E4           ; 
 00E4           ; 
 00E4           ; 
 00E4           ; ////////////////////////////////////////////////////////////////////////////////////////////////////
 00E4           ; ////////////////////////////////////////////////////////////////////////////////////////////////////
 00E4           ; ////////////////////////////////////////////////////////////////////////////////////////////////////
 00E4           ; ////////////////////////////////////////////////////////////////////////////////////////////////////
 00E4           ; 
 00E4           ; /*--------------------------------------------------------------------------------------------------
 00E4           ;   Name         :  LcdInit
 00E4           ;   Description  :  Performs MCU SPI & LCD controller initialization.
 00E4           ;   Argument(s)  :  None.
 00E4           ;   Return value :  None.
 00E4           ; --------------------------------------------------------------------------------------------------*/
 00E4           ; void LcdInit( void )
 00E4           ; {    
 00E4                   .dbline 138
 00E4           ;     //unsigned char Clear;
 00E4           ;     //  Pull-up on reset pin,上电复位端口,此时为高,不复位;
 00E4           ;     PORTB |= LCD_RST_PIN;
 00E4 C09A              sbi 0x18,0
 00E6                   .dbline 141

⌨️ 快捷键说明

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