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

📄 system.lis

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LIS
字号:
                        .module System.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例15_键盘显示模块\实例15_键盘显示模块-拨号装置\System.c
 0000                   .dbfunc e main _main fV
 0000           ;              i -> R20
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 66
 0000           ; /*********************************************************/
 0000           ; /*                                                       */
 0000           ; /*               实例15   键盘显示模块                   */
 0000           ; /*                                                       */
 0000           ; /*                                                       */
 0000           ; /*                 程序设计 江海波                       */
 0000           ; /*                                                       */
 0000           ; /*        编写时间 : 2007-06     版本 : V1.0             */
 0000           ; /*                                                       */
 0000           ; /*     提示 : 代码受版权保护,示例程序用于工程应谨慎      */
 0000           ; /*                                                       */
 0000           ; /*           E-mail : soundman@sohu.com                  */
 0000           ; /*-------------------------------------------------------*/
 0000           ; /* 硬件环境:                                             */
 0000           ; /*                                                       */
 0000           ; /*     实验电路板,ATmega48单片机,CPU时钟1MHz             */
 0000           ; /* ------------------------------------------------------*/
 0000           ; /* 软件环境:                                             */
 0000           ; /*                                                       */
 0000           ; /*     ICCAVR 6.31A                                      */
 0000           ; /* ------------------------------------------------------*/
 0000           ; /* 最后修改时间:                                         */
 0000           ; /*                                                       */
 0000           ; /*-------------------------------------------------------*/
 0000           ; /* 历史版本纪录:                                         */
 0000           ; /*                                                       */
 0000           ; /*********************************************************/
 0000           ; 
 0000           ; /********************
 0000           ; * 头 文 件 配 置 区 *
 0000           ; ********************/
 0000           ; #include "PF_Config.h"
 0000           ; #include "KeyDis_Drv.h"
 0000           ; 
 0000           ; /********************
 0000           ; *   系 统 宏 定 义  *
 0000           ; ********************/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   常 数 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   动 作 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /********************
 0000           ; *  模块结构体定义区 *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   模块函数声明区  *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   模块变量声明区  *
 0000           ; ********************/
 0000           ; 
 0000           ; /***********************************************************
 0000           ; *   函数说明:主函数                                       *
 0000           ; *   输入:    无                                           *
 0000           ; *   输出:    无                                           *
 0000           ; *   调用函数:System_INIT()                                *
 0000           ; ***********************************************************/
 0000           ; void main(void)
 0000           ; {
 0000                   .dbline 69
 0000           ;     unsigned char i;
 0000           ;     
 0000           ;     System_INIT();                                          //代码初始化
 0000 00D0              rcall _System_INIT
 0002                   .dbline 71
 0002           ;     
 0002           ;     LEDDisBuffer[0] = Key_Null;
 0002 2224              clr R2
 0004 20920000          sts _LEDDisBuffer,R2
 0008                   .dbline 72
 0008           ;     LEDDisBuffer[1] = Key_Null;
 0008 20920100          sts _LEDDisBuffer+1,R2
 000C                   .dbline 73
 000C           ;     LEDDisBuffer[2] = Key_Null;
 000C 20920200          sts _LEDDisBuffer+2,R2
 0010                   .dbline 74
 0010           ;     LEDDisBuffer[3] = Key_Null;
 0010 20920300          sts _LEDDisBuffer+3,R2
 0014                   .dbline 75
 0014           ;     LEDDisBuffer[4] = Key_Null;
 0014 20920400          sts _LEDDisBuffer+4,R2
 0018                   .dbline 76
 0018           ;     LEDDisBuffer[5] = Key_Null;
 0018 20920500          sts _LEDDisBuffer+5,R2
 001C                   .dbline 77
 001C           ;     LEDDisBuffer[6] = Key_Null;
 001C 20920600          sts _LEDDisBuffer+6,R2
 0020                   .dbline 78
 0020           ;     LEDDisBuffer[7] = Key_Null;
 0020 20920700          sts _LEDDisBuffer+7,R2
 0024 2BC0              rjmp L10
 0026           L9:
 0026                   .dbline 81
 0026           ; 
 0026           ;     while(TRUE)                                             //超级循环
 0026           ;     {
 0026                   .dbline 82
 0026           ;         if (KeyBuffer != Key_Null)
 0026 20900000          lds R2,_KeyBuffer
 002A 2220              tst R2
 002C D9F0              breq L12
 002E                   .dbline 83
 002E           ;         {
 002E                   .dbline 84
 002E           ;             for (i=7; i>0; i--)
 002E 47E0              ldi R20,7
 0030 0FC0              rjmp L17
 0032           L14:
 0032                   .dbline 85
 0032                   .dbline 86
 0032 80E0              ldi R24,<_LEDDisBuffer-1
 0034 90E0              ldi R25,>_LEDDisBuffer-1
 0036 E42F              mov R30,R20
 0038 FF27              clr R31
 003A E80F              add R30,R24
 003C F91F              adc R31,R25
 003E 2080              ldd R2,z+0
 0040 80E0              ldi R24,<_LEDDisBuffer
 0042 90E0              ldi R25,>_LEDDisBuffer
 0044 E42F              mov R30,R20
 0046 FF27              clr R31
 0048 E80F              add R30,R24
 004A F91F              adc R31,R25
 004C 2082              std z+0,R2
 004E                   .dbline 87
 004E           L15:
 004E                   .dbline 84
 004E 4A95              dec R20
 0050           L17:
 0050                   .dbline 84
 0050 2224              clr R2
 0052 2416              cp R2,R20
 0054 70F3              brlo L14
 0056                   .dbline 89
 0056           ;             {
 0056           ;                 LEDDisBuffer[i] = LEDDisBuffer[i-1];
 0056           ;             }
 0056           ;             
 0056           ;             LEDDisBuffer[0] = KeyBuffer;
 0056 20900000          lds R2,_KeyBuffer
 005A 20920000          sts _LEDDisBuffer,R2
 005E                   .dbline 91
 005E           ;             
 005E           ;             KeyBuffer = Key_Null;
 005E 2224              clr R2
 0060 20920000          sts _KeyBuffer,R2
 0064                   .dbline 92
 0064           ;         }
 0064           L12:
 0064                   .dbline 94
 0064           ;         
 0064           ;         if (DoTime == TRUE)
 0064 80910000          lds R24,_DoTime
 0068 8130              cpi R24,1
 006A 41F4              brne L19
 006C                   .dbline 95
 006C           ;         {
 006C                   .dbline 96
 006C           ;             DoTime = FALSE;
 006C 2224              clr R2
 006E 20920000          sts _DoTime,R2
 0072                   .dbline 97
 0072           ;             LEDDisplay();
 0072 00D0              rcall _LEDDisplay
 0074                   .dbline 98
 0074           ;             Port_refresh();
 0074 00D0              rcall _Port_refresh
 0076                   .dbline 99
 0076           ;             KeyBuffer = Key_service();
 0076 00D0              rcall _Key_service
 0078 00930000          sts _KeyBuffer,R16
 007C                   .dbline 100
 007C           ;         }
 007C           L19:
 007C                   .dbline 101
 007C           L10:
 007C                   .dbline 80
 007C D4CF              rjmp L9
 007E           X0:
 007E                   .dbline -2
 007E           L1:
 007E                   .dbline 0 ; func end
 007E 0895              ret
 0080                   .dbsym r i 20 c
 0080                   .dbend

⌨️ 快捷键说明

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