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

📄 8segled8loop.lst

📁 ATMEL AVR 单片机开发套件和大量C和ASM代码工程
💻 LST
字号:
                         .module .8SegLed8Loop.c
                         .area text
--- 0000                   .dbfile E:\grc\licc\例子10.3.7\8SegLed8Loop.c
--- 0000                   .dbfunc s delay _delay fI
                       ;              i -> R20,R21
                       ;              t -> R16,R17
                         .even
 002A                  _delay::
 002A  D031              rcall push_gset1
 002B                    .dbline 5{
                       ; #include <io8515.h>          
                       ; #define uchar unsigned char  
                       ; #define uint unsigned int
                       ; void delay(uint t)
                       ; {
 002B                    .dbline 7
                       ;  uint i;
                       ;  for (i=0;i<t;i++)
 002B  2744              clr R20
 002C  2755              clr R21
 002D  C002              rjmp L5
 002E                  L2:
 002E                    .dbline 8
 002E                  L3:
 002E                    .dbline 7
 002E  5F4F              subi R20,255  ; offset = 1
 002F  4F5F              sbci R21,255
 0030                  L5:
 0030                    .dbline 7
 0030  1740              cp R20,R16
 0031  0751              cpc R21,R17
 0032  F3D8              brlo L2
 0033                    .dbline 9}
                       ;     ;
                       ; }
 0033                  L1:
 0033  D02B              rcall pop_gset1
 0034  9508              ret
 0035                    .dbsym r i 20 i
 0035                    .dbsym r t 16 i
 0035                    .dbfunc s init_disp _init_disp fI
                         .even
 0035                  _init_disp::
 0035                    .dbline 11{
                       ; void init_disp(void)         
                       ; {
 0035                    .dbline 12
                       ; DDRB=0xff;
 0035  EF8F              ldi R24,255
 0036  BB87              out 0x17,R24
 0037                    .dbline 13
                       ; DDRD=0xff;
 0037  BB81              out 0x11,R24
 0038                    .dbline 14
                       ; PORTB=0x7f;                  
 0038  E78F              ldi R24,127
 0039  BB88              out 0x18,R24
 003A                    .dbline 15}
                       ; }
 003A                  L6:
 003A  9508              ret
 003B                    .dbfunc s scan _scan fI
                       ;              j -> R22
                       ;              i -> R20
                         .even
 003B                  _scan::
 003B  D037              rcall push_gset2
 003C                    .dbline 17{
                       ; void scan(void)              
                       ; {
 003C                    .dbline 19
                       ;  uchar i,j;
                       ;  for (i=0;i<6;i++)            
 003C  2744              clr R20
 003D  C016              rjmp L11
 003E                  L8:
 003E                    .dbline 20
                       ;    {
 003E                    .dbline 21
                       ;     j=150;
 003E  E966              ldi R22,150
 003F                  L12:
 003F                    .dbline 23
                       ;     do
                       ;       {
 003F                    .dbline 24
                       ;        PORTD=~(0x01<<i);
 003F  E001              ldi R16,1
 0040  2F14              mov R17,R20
 0041  D036              rcall lsl8
 0042  2E20              mov R2,R16
 0043  9420              com R2
 0044  BA22              out 0x12,R2
 0045                    .dbline 25
                       ;        delay(150);                
 0045  E906              ldi R16,150
 0046  E010              ldi R17,0
 0047  DFE2              rcall _delay
 0048                    .dbline 26
                       ;        PORTD=0xff;
 0048  EF8F              ldi R24,255
 0049  BB82              out 0x12,R24
 004A                    .dbline 27
                       ;        delay(2100);                
 004A  E304              ldi R16,52
 004B  E018              ldi R17,8
 004C  DFDD              rcall _delay
 004D                    .dbline 28
                       ;        }
 004D                  L13:
 004D                    .dbline 29
 004D  2F86              mov R24,R22
 004E  5081              subi R24,1
 004F  2E28              mov R2,R24
 0050  2D62              mov R22,R2
 0051  2022              tst R2
 0052  F761              brne L12
 0053                    .dbline 30
 0053                  L9:
 0053                    .dbline 19
 0053  9543              inc R20
 0054                  L11:
 0054                    .dbline 19
 0054  3046              cpi R20,6
 0055  F340              brlo L8
 0056                    .dbline 31}
                       ;     while(--j);
                       ;    }
                       ; }
 0056                  L7:
 0056  D01F              rcall pop_gset2
 0057  9508              ret
 0058                    .dbsym r j 22 c
 0058                    .dbsym r i 20 c
 0058                    .dbfunc s main _main fI
                         .even
 0058                  _main::
 0058                    .dbline 33{
                       ; void main(void)                  
                       ; {
 0058                    .dbline 34
                       ;  init_disp();                   
 0058  DFDC              rcall _init_disp
 0059                    .dbline 35
                       ;  for(;;)
 0059                  L16:
 0059                    .dbline 36
                       ;  scan();                         
 0059  DFE1              rcall _scan
 005A                    .dbline 35
 005A                    .dbline 35
 005A  CFFE              rjmp L16
 005B                  X0:
 005B                  L15:
 005B  9508              ret
 005C                    .dbline 36}

⌨️ 快捷键说明

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