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

📄 system.lis

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0040 F91F              adc R31,R25
 0042 E491              lpm R30,Z
 0044 E0930900          sts _PortBuffer+1,R30
 0048                   .dbline 105
 0048           ;         }
 0048                   .dbline -2
 0048           L1:
 0048 00D0              rcall pop_gset1
 004A                   .dbline 0 ; func end
 004A 0895              ret
 004C                   .dbsym r LocalTime 20 c
 004C                   .dbend
 004C                   .dbfunc e Port_refresh _Port_refresh fV
 004C           ;              i -> R16
                        .even
 004C           _Port_refresh::
 004C                   .dbline -1
 004C                   .dbline 115
 004C           ; }
 004C           ; 
 004C           ; /***********************************************************
 004C           ; *   函数说明:端口通讯程序                                 *
 004C           ; *   输入:    无                                           *
 004C           ; *   输出:    无                                           *
 004C           ; *   调用函数:                                             *
 004C           ; ***********************************************************/
 004C           ; void Port_refresh (void)
 004C           ; {
 004C                   .dbline 118
 004C           ;     unsigned char i;
 004C           ; 
 004C           ;     SS_Low;                         //模拟#SS的下跳沿
 004C 2A98              cbi 0x5,2
 004E                   .dbline 120
 004E           ; 
 004E           ;     for (i=0; i<ExtPortNum; i++)
 004E 0027              clr R16
 0050 0CC0              rjmp L11
 0052           L8:
 0052                   .dbline 121
 0052           ;     {
 0052                   .dbline 122
 0052           ;         SPDR = PortBuffer[i];       //刷新虚拟端口的一个字节
 0052 80E0              ldi R24,<_PortBuffer
 0054 90E0              ldi R25,>_PortBuffer
 0056 E02F              mov R30,R16
 0058 FF27              clr R31
 005A E80F              add R30,R24
 005C F91F              adc R31,R25
 005E 2080              ldd R2,z+0
 0060 2EBC              out 0x2e,R2
 0062           L12:
 0062                   .dbline 123
 0062           L13:
 0062                   .dbline 123
 0062 2DB4              in R2,0x2d
 0064 27FE              sbrs R2,7
 0066 FDCF              rjmp L12
 0068                   .dbline 124
 0068           L9:
 0068                   .dbline 120
 0068 0395              inc R16
 006A           L11:
 006A                   .dbline 120
 006A 0330              cpi R16,3
 006C 90F3              brlo L8
 006E                   .dbline 126
 006E           ;         while(!(SPSR&(1<<SPIF)));   //等待通讯完成
 006E           ;     }
 006E           ; 
 006E           ;     SS_High;                        //模拟#SS的上跳沿
 006E 2A9A              sbi 0x5,2
 0070                   .dbline -2
 0070           L7:
 0070                   .dbline 0 ; func end
 0070 0895              ret
 0072                   .dbsym r i 16 c
 0072                   .dbend
 0072                   .dbfunc e main _main fV
                        .even
 0072           _main::
 0072                   .dbline -1
 0072                   .dbline 136
 0072           ; }
 0072           ; 
 0072           ; /***********************************************************
 0072           ; *   函数说明:主函数                                       *
 0072           ; *   输入:    无                                           *
 0072           ; *   输出:    无                                           *
 0072           ; *   调用函数:System_INIT()                                *
 0072           ; ***********************************************************/
 0072           ; void main(void)
 0072           ; {
 0072                   .dbline 137
 0072           ;     System_INIT();                                          //代码初始化
 0072 00D0              rcall _System_INIT
 0074                   .dbline 139
 0074           ;     
 0074           ;     LEDDisBuffer[0] = 0x00;
 0074 2224              clr R2
 0076 20920000          sts _LEDDisBuffer,R2
 007A                   .dbline 140
 007A           ;     LEDDisBuffer[1] = 0x01;
 007A 81E0              ldi R24,1
 007C 80930100          sts _LEDDisBuffer+1,R24
 0080                   .dbline 141
 0080           ;     LEDDisBuffer[2] = 0x02;
 0080 82E0              ldi R24,2
 0082 80930200          sts _LEDDisBuffer+2,R24
 0086                   .dbline 142
 0086           ;     LEDDisBuffer[3] = 0x03;
 0086 83E0              ldi R24,3
 0088 80930300          sts _LEDDisBuffer+3,R24
 008C                   .dbline 143
 008C           ;     LEDDisBuffer[4] = 0x04;
 008C 84E0              ldi R24,4
 008E 80930400          sts _LEDDisBuffer+4,R24
 0092                   .dbline 144
 0092           ;     LEDDisBuffer[5] = 0x05;
 0092 85E0              ldi R24,5
 0094 80930500          sts _LEDDisBuffer+5,R24
 0098                   .dbline 145
 0098           ;     LEDDisBuffer[6] = 0x06;
 0098 86E0              ldi R24,6
 009A 80930600          sts _LEDDisBuffer+6,R24
 009E                   .dbline 146
 009E           ;     LEDDisBuffer[7] = 0x07;
 009E 87E0              ldi R24,7
 00A0 80930700          sts _LEDDisBuffer+7,R24
 00A4 09C0              rjmp L24
 00A6           L23:
 00A6                   .dbline 149
 00A6           ; 
 00A6           ;     while(TRUE)                                             //超级循环
 00A6           ;     {
 00A6                   .dbline 150
 00A6           ;         if (DoTime==TRUE)
 00A6 80910000          lds R24,_DoTime
 00AA 8130              cpi R24,1
 00AC 29F4              brne L26
 00AE                   .dbline 151
 00AE           ;         {
 00AE                   .dbline 152
 00AE           ;             DoTime=FALSE;
 00AE 2224              clr R2
 00B0 20920000          sts _DoTime,R2
 00B4                   .dbline 153
 00B4           ;             LEDDisplay();
 00B4 A5DF              rcall _LEDDisplay
 00B6                   .dbline 154
 00B6           ;             Port_refresh();
 00B6 CADF              rcall _Port_refresh
 00B8                   .dbline 155
 00B8           ;         }
 00B8           L26:
 00B8                   .dbline 156
 00B8           L24:
 00B8                   .dbline 148
 00B8 F6CF              rjmp L23
 00BA           X0:
 00BA                   .dbline -2
 00BA           L15:
 00BA                   .dbline 0 ; func end
 00BA 0895              ret
 00BC                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例15_键盘显示模块\实例15_键盘显示模块-显示驱动测试\System.c
 0000           _LEDDisBuffer::
 0000                   .blkb 8
 0008                   .dbsym e LEDDisBuffer _LEDDisBuffer A[8:8]c
 0008           _PortBuffer::
 0008                   .blkb 3
 000B                   .dbsym e PortBuffer _PortBuffer A[3:3]c

⌨️ 快捷键说明

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