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

📄 delayfunction.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
字号:
                         .module delayfunction.c
                         .area text
--- 0000                   .dbfile E:\grc\licc\例子10.3.2\delayfunction.c
--- 0000                   .dbfunc s delay _delay fI
                       ;              i -> R20,R21
                       ;     delayValue -> R16,R17
                         .even
 002A                  _delay::
 002A  D018              rcall push_gset1
 002B                    .dbline 3{
                       ; #include <io8515.h> /* 定义 8515 */
                       ; void delay(int delayValue)
                       ; {
 002B                    .dbline 5
 002B  2744              clr R20
 002C  2755              clr R21
 002D  C002              rjmp L5
 002E                  L2:
 002E                    .dbline 5
 002E                  L3:
 002E                    .dbline 5
 002E  5F4F              subi R20,255  ; offset = 1
 002F  4F5F              sbci R21,255
 0030                  L5:
 0030                    .dbline 5
                       ;  int i;
                       ;     for(i=0;i<delayValue;i++) ;
 0030  1740              cp R20,R16
 0031  0751              cpc R21,R17
 0032  F3DC              brlt L2
 0033                    .dbline 6}
                       ; }
 0033                  L1:
 0033  D012              rcall pop_gset1
 0034  9508              ret
 0035                    .dbsym r i 20 I
 0035                    .dbsym r delayValue 16 I
 0035                    .dbfunc s main _main fI
                       ;         runner -> R20
                         .even
 0035                  _main::
 0035                    .dbline 8{
                       ; void main(void)
                       ; {
 0035                    .dbline 9
                       ;  unsigned char runner = 0x01;
 0035  E041              ldi R20,1
 0036                    .dbline 10
                       ;  DDRB = 0xff; /* Port B 输出 */
 0036  EF8F              ldi R24,255
 0037  BB87              out 0x17,R24
 0038                    .dbline 11
                       ;  for (;;) /* 死循环 */
 0038                  L7:
 0038                    .dbline 12
                       ;       {
 0038                    .dbline 13
                       ;        if (runner) runner <<= 1;
 0038  2344              tst R20
 0039  F011              breq L11
 003A                    .dbline 13
 003A  0F44              lsl R20
 003B  C001              rjmp L12
 003C                  L11:
 003C                    .dbline 14
                       ;        else runner = 0x01;
 003C  E041              ldi R20,1
 003D                  L12:
 003D                    .dbline 15
                       ;        PORTB = runner;
 003D  BB48              out 0x18,R20
 003E                    .dbline 16
                       ;        delay(32767);
 003E  EF0F              ldi R16,255
 003F  E71F              ldi R17,127
 0040  DFE9              rcall _delay
 0041                    .dbline 17
                       ;        }
 0041                    .dbline 11
 0041                    .dbline 11
 0041  CFF6              rjmp L7
 0042                  X0:
 0042                  L6:
 0042  9508              ret
 0043                    .dbline 12}
 0043                    .dbsym r runner 20 c

⌨️ 快捷键说明

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