📄 system.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 + -