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

📄 dl.lis

📁 AVR单片机控制发光二极管的源代码
💻 LIS
字号:
                        .module dl.c
                        .area text(rom, con, rel)
 0000                   .dbfile dl.c
 0000                   .dbfunc e delay _delay fV
 0000           ;              x -> R16,R17
                        .even
 0000           _delay::
 0000                   .dbline -1
 0000                   .dbline 16
 0000           ; #include<iom8v.h>             //包含ATMEGA8的头文件
 0000           ; #include<macros.h>            //包含一些常用宏的定义
 0000           ; //#define osccal 0xaa//内部RC 校正常数
 0000           ; #define fosc 8000000 //晶振8MHZ
 0000           ; #define baud 4800 //波特率
 0000           ; #define osccal_addr         0x1ff
 0000           ; //内部晶体震荡器校正字存放地址
 0000           ; #define uint unsigned int
 0000           ; #define uchar unsigned char
 0000           ; 
 0000           ; uint j;
 0000           ; uchar t;
 0000           ; ///////////////延时
 0000           ; void delay(unsigned int x)
 0000           ; 
 0000           ; {
 0000 18C0              rjmp L3
 0002           L2:
 0002                   .dbline 18
 0002           ;    while(x-->0)
 0002           ;     {
 0002                   .dbline 19
 0002           ;     for(j=0;j<5;j++)
 0002 2224              clr R2
 0004 3324              clr R3
 0006 30920200          sts _j+1,R3
 000A 20920100          sts _j,R2
 000E 09C0              rjmp L8
 0010           L5:
 0010                   .dbline 20
 0010                   .dbline 20
 0010                   .dbline 20
 0010           L6:
 0010                   .dbline 19
 0010 80910100          lds R24,_j
 0014 90910200          lds R25,_j+1
 0018 0196              adiw R24,1
 001A 90930200          sts _j+1,R25
 001E 80930100          sts _j,R24
 0022           L8:
 0022                   .dbline 19
 0022 80910100          lds R24,_j
 0026 90910200          lds R25,_j+1
 002A 8530              cpi R24,5
 002C E0E0              ldi R30,0
 002E 9E07              cpc R25,R30
 0030 78F3              brlo L5
 0032                   .dbline 21
 0032           L3:
 0032                   .dbline 17
 0032 1801              movw R2,R16
 0034 0150              subi R16,1
 0036 1040              sbci R17,0
 0038 2220              tst R2
 003A 19F7              brne L2
 003C 3320              tst R3
 003E 09F7              brne L2
 0040           X0:
 0040                   .dbline -2
 0040                   .dbline 22
 0040           ;     {;}
 0040           ;     }
 0040           ; }
 0040           L1:
 0040                   .dbline 0 ; func end
 0040 0895              ret
 0042                   .dbsym r x 16 i
 0042                   .dbend
 0042                   .dbfunc e EEPROM_read _EEPROM_read fc
 0042           ;      uiAddress -> R16,R17
                        .even
 0042           _EEPROM_read::
 0042                   .dbline -1
 0042                   .dbline 25
 0042           L10:
 0042                   .dbline 25
 0042           L11:
 0042                   .dbline 25
 0042           ; 
 0042           ; unsigned char EEPROM_read(unsigned int uiAddress)
 0042           ; {while(EECR&(1<<EEWE));
 0042 E199              sbic 0x1c,1
 0044 FECF              rjmp L10
 0046                   .dbline 26
 0046           ;  EEAR=uiAddress;
 0046 1FBB              out 0x1f,R17
 0048 0EBB              out 0x1e,R16
 004A                   .dbline 27
 004A           ;  EECR|=(1<<EERE);
 004A E09A              sbi 0x1c,0
 004C                   .dbline 28
 004C           ;  return EEDR;
 004C 0DB3              in R16,0x1d
 004E                   .dbline -2
 004E           L9:
 004E                   .dbline 0 ; func end
 004E 0895              ret
 0050                   .dbsym r uiAddress 16 i
 0050                   .dbend
 0050                   .dbfunc e main _main fV
                        .even
 0050           _main::
 0050                   .dbline -1
 0050                   .dbline 33
 0050           ; }
 0050           ; 
 0050           ; 
 0050           ; void main(void)
 0050           ; { 
 0050                   .dbline 34
 0050           ;    delay(200);
 0050 08EC              ldi R16,200
 0052 10E0              ldi R17,0
 0054 D5DF              rcall _delay
 0056                   .dbline 35
 0056           ;    OSCCAL=EEPROM_read(osccal_addr);   //D£?y?ú2?RC??μ′μ??μ?ê
 0056 0FEF              ldi R16,511
 0058 11E0              ldi R17,1
 005A F3DF              rcall _EEPROM_read
 005C 01BF              out 0x31,R16
 005E                   .dbline 36
 005E           ;    DDRB=0xfe;
 005E 8EEF              ldi R24,254
 0060 87BB              out 0x17,R24
 0062                   .dbline 37
 0062           ;     DDRC=0xff;
 0062 8FEF              ldi R24,255
 0064 84BB              out 0x14,R24
 0066                   .dbline 39
 0066           ;       
 0066           ;       PORTC&=~(1<<5);
 0066 AD98              cbi 0x15,5
 0068 0FC0              rjmp L15
 006A           L14:
 006A                   .dbline 41
 006A           ;       while(1)
 006A           ;       {
 006A                   .dbline 42
 006A           ;       t=(PINB&0x01);
 006A 86B3              in R24,0x16
 006C 8170              andi R24,1
 006E 80930000          sts _t,R24
 0072                   .dbline 43
 0072           ;       if(t==0)
 0072 8823              tst R24
 0074 29F4              brne L17
 0076                   .dbline 44
 0076           ;       {
 0076                   .dbline 45
 0076           ;       PORTC|=(1<<5);
 0076 AD9A              sbi 0x15,5
 0078                   .dbline 46
 0078           ;       delay(50000);
 0078 00E5              ldi R16,50000
 007A 13EC              ldi R17,195
 007C C1DF              rcall _delay
 007E                   .dbline 47
 007E           ;       }
 007E 04C0              rjmp L18
 0080           L17:
 0080                   .dbline 49
 0080           ;       else
 0080           ;       {
 0080                   .dbline 50
 0080           ;       PORTC&=~(1<<5);
 0080 AD98              cbi 0x15,5
 0082                   .dbline 51
 0082           ;       delay(50000);
 0082 00E5              ldi R16,50000
 0084 13EC              ldi R17,195
 0086 BCDF              rcall _delay
 0088                   .dbline 52
 0088           ;       }
 0088           L18:
 0088                   .dbline 53
 0088           L15:
 0088                   .dbline 40
 0088 F0CF              rjmp L14
 008A           X1:
 008A                   .dbline -2
 008A                   .dbline 54
 008A           ;       }
 008A           ; }
 008A           L13:
 008A                   .dbline 0 ; func end
 008A 0895              ret
 008C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile dl.c
 0000           _t::
 0000                   .blkb 1
 0001                   .dbsym e t _t c
 0001           _j::
 0001                   .blkb 2
 0003                   .dbsym e j _j i

⌨️ 快捷键说明

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