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

📄 mega8.lis

📁 AVR 初学者
💻 LIS
字号:
                        .module mega8.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\单片机\单片机程序\AVR程序\闪烁灯\mega8.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; //ICC-AVR application builder : 2008-8-1 19:01:17
 0000           ; // Target : M8
 0000           ; // Crystal: 16.000Mhz
 0000           ; 
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 10
 0000           ;  PORTB = 0x00;
 0000 2224              clr R2
 0002 28BA              out 0x18,R2
 0004                   .dbline 11
 0004           ;  DDRB  = 0x00;
 0004 27BA              out 0x17,R2
 0006                   .dbline 12
 0006           ;  PORTC = 0x00; //m103 output only
 0006 25BA              out 0x15,R2
 0008                   .dbline 13
 0008           ;  DDRC  = 0x7F;
 0008 8FE7              ldi R24,127
 000A 84BB              out 0x14,R24
 000C                   .dbline 14
 000C           ;  PORTD = 0x00;
 000C 22BA              out 0x12,R2
 000E                   .dbline 15
 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 init_devices _init_devices fV
                        .even
 0012           _init_devices::
 0012                   .dbline -1
 0012                   .dbline 20
 0012           ; }
 0012           ; 
 0012           ; //call this routine to initialize all peripherals
 0012           ; void init_devices(void)
 0012           ; {
 0012                   .dbline 22
 0012           ;  //stop errant interrupts until set up
 0012           ;  CLI(); //disable all interrupts
 0012 F894              cli
 0014                   .dbline 23
 0014           ;  port_init();
 0014 F5DF              rcall _port_init
 0016                   .dbline 25
 0016           ; 
 0016           ;  MCUCR = 0x00;
 0016 2224              clr R2
 0018 25BE              out 0x35,R2
 001A                   .dbline 26
 001A           ;  GICR  = 0x00;
 001A 2BBE              out 0x3b,R2
 001C                   .dbline 27
 001C           ;  TIMSK = 0x00; //timer interrupt sources
 001C 29BE              out 0x39,R2
 001E                   .dbline 28
 001E           ;  SEI(); //re-enable interrupts
 001E 7894              sei
 0020                   .dbline -2
 0020           L2:
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbend
 0022                   .dbfunc e main _main fV
 0022           ;              K -> <dead>
 0022           ;              i -> R20,R21
 0022           ;              j -> R22,R23
                        .even
 0022           _main::
 0022                   .dbline -1
 0022                   .dbline 33
 0022           ;  //all peripherals are now initialized
 0022           ; }
 0022           ; 
 0022           ; void main()
 0022           ; {
 0022                   .dbline 35
 0022           ;   unsigned int i,j,K;
 0022           ;   init_devices();
 0022 F7DF              rcall _init_devices
 0024                   .dbline 36
 0024           ;   PORTC = 0X2A;
 0024 8AE2              ldi R24,42
 0026 85BB              out 0x15,R24
 0028 15C0              rjmp L5
 002A           L4:
 002A                   .dbline 38
 002A           ;   while(1)
 002A           ;   {
 002A                   .dbline 39
 002A           ;     for(i=0;i<500;i++)
 002A 4427              clr R20
 002C 5527              clr R21
 002E 0BC0              rjmp L10
 0030           L7:
 0030                   .dbline 40
 0030 6627              clr R22
 0032 7727              clr R23
 0034 02C0              rjmp L14
 0036           L11:
 0036                   .dbline 40
 0036           L12:
 0036                   .dbline 40
 0036 6F5F              subi R22,255  ; offset = 1
 0038 7F4F              sbci R23,255
 003A           L14:
 003A                   .dbline 40
 003A 6C32              cpi R22,44
 003C E1E0              ldi R30,1
 003E 7E07              cpc R23,R30
 0040 D0F3              brlo L11
 0042           L8:
 0042                   .dbline 39
 0042 4F5F              subi R20,255  ; offset = 1
 0044 5F4F              sbci R21,255
 0046           L10:
 0046                   .dbline 39
 0046 443F              cpi R20,244
 0048 E1E0              ldi R30,1
 004A 5E07              cpc R21,R30
 004C 88F3              brlo L7
 004E                   .dbline 41
 004E 25B2              in R2,0x15
 0050 2094              com R2
 0052 25BA              out 0x15,R2
 0054                   .dbline 42
 0054           L5:
 0054                   .dbline 37
 0054 EACF              rjmp L4
 0056           X0:
 0056                   .dbline -2
 0056           L3:
 0056                   .dbline 0 ; func end
 0056 0895              ret
 0058                   .dbsym l K 1 i
 0058                   .dbsym r i 20 i
 0058                   .dbsym r j 22 i
 0058                   .dbend

⌨️ 快捷键说明

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