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

📄 delayfunction.lis

📁 单片机开发资料光盘-双龙-686M.zip
💻 LIS
字号:
                         .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
 0000                 _delay::
 0000 00D0              rcall push_gset1
 0002                   .dbline 3{
                       ; #include <io8515.h> /* 定义 8515 */
                       ; void delay(int delayValue)
                       ; {
 0002                   .dbline 5
 0002 4427              clr R20
 0004 5527              clr R21
 0006 02C0              rjmp L5
 0008                 L2:
 0008                   .dbline 5
 0008                 L3:
 0008                   .dbline 5
 0008 4F5F              subi R20,255  ; offset = 1
 000A 5F4F              sbci R21,255
 000C                 L5:
 000C                   .dbline 5
                       ;  int i;
                       ;     for(i=0;i<delayValue;i++) ;
 000C 4017              cp R20,R16
 000E 5107              cpc R21,R17
 0010 DCF3              brlt L2
 0012                   .dbline 6}
                       ; }
 0012                 L1:
 0012 00D0              rcall pop_gset1
 0014 0895              ret
 0016                   .dbsym r i 20 I
 0016                   .dbsym r delayValue 16 I
 0016                   .dbfunc s main _main fI
                       ;         runner -> R20
                         .even
 0016                 _main::
 0016                   .dbline 8{
                       ; void main(void)
                       ; {
 0016                   .dbline 9
                       ;  unsigned char runner = 0x01;
 0016 41E0              ldi R20,1
 0018                   .dbline 10
                       ;  DDRB = 0xff; /* Port B 输出 */
 0018 8FEF              ldi R24,255
 001A 87BB              out 0x17,R24
 001C                   .dbline 11
                       ;  for (;;) /* 死循环 */
 001C                 L7:
 001C                   .dbline 12
                       ;       {
 001C                   .dbline 13
                       ;        if (runner) runner <<= 1;
 001C 4423              tst R20
 001E 11F0              breq L11
 0020                   .dbline 13
 0020 440F              lsl R20
 0022 01C0              rjmp L12
 0024                 L11:
 0024                   .dbline 14
                       ;        else runner = 0x01;
 0024 41E0              ldi R20,1
 0026                 L12:
 0026                   .dbline 15
                       ;        PORTB = runner;
 0026 48BB              out 0x18,R20
 0028                   .dbline 16
                       ;        delay(32767);
 0028 0FEF              ldi R16,255
 002A 1FE7              ldi R17,127
 002C E9DF              rcall _delay
 002E                   .dbline 17
                       ;        }
 002E                   .dbline 11
 002E                   .dbline 11
 002E F6CF              rjmp L7
 0030                 X0:
 0030                 L6:
 0030 0895              ret
 0032                   .dbline 12}
 0032                   .dbsym r runner 20 c

⌨️ 快捷键说明

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