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

📄 system.s

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 S
字号:
	.module System.c
	.area text(rom, con, rel)
	.dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例15_键盘显示模块\实例15_键盘显示模块-拨号装置\System.c
	.dbfunc e main _main fV
;              i -> R20
	.even
_main::
	.dbline -1
	.dbline 66
; /*********************************************************/
; /*                                                       */
; /*               实例15   键盘显示模块                   */
; /*                                                       */
; /*                                                       */
; /*                 程序设计 江海波                       */
; /*                                                       */
; /*        编写时间 : 2007-06     版本 : V1.0             */
; /*                                                       */
; /*     提示 : 代码受版权保护,示例程序用于工程应谨慎      */
; /*                                                       */
; /*           E-mail : soundman@sohu.com                  */
; /*-------------------------------------------------------*/
; /* 硬件环境:                                             */
; /*                                                       */
; /*     实验电路板,ATmega48单片机,CPU时钟1MHz             */
; /* ------------------------------------------------------*/
; /* 软件环境:                                             */
; /*                                                       */
; /*     ICCAVR 6.31A                                      */
; /* ------------------------------------------------------*/
; /* 最后修改时间:                                         */
; /*                                                       */
; /*-------------------------------------------------------*/
; /* 历史版本纪录:                                         */
; /*                                                       */
; /*********************************************************/
; 
; /********************
; * 头 文 件 配 置 区 *
; ********************/
; #include "PF_Config.h"
; #include "KeyDis_Drv.h"
; 
; /********************
; *   系 统 宏 定 义  *
; ********************/
; 
; /*------------------*
; *   常 数 宏 定 义  *
; *------------------*/
; 
; /*------------------*
; *   动 作 宏 定 义  *
; *------------------*/
; 
; /********************
; *  模块结构体定义区 *
; ********************/
; 
; /********************
; *   模块函数声明区  *
; ********************/
; 
; /********************
; *   模块变量声明区  *
; ********************/
; 
; /***********************************************************
; *   函数说明:主函数                                       *
; *   输入:    无                                           *
; *   输出:    无                                           *
; *   调用函数:System_INIT()                                *
; ***********************************************************/
; void main(void)
; {
	.dbline 69
;     unsigned char i;
;     
;     System_INIT();                                          //代码初始化
	rcall _System_INIT
	.dbline 71
;     
;     LEDDisBuffer[0] = Key_Null;
	clr R2
	sts _LEDDisBuffer,R2
	.dbline 72
;     LEDDisBuffer[1] = Key_Null;
	sts _LEDDisBuffer+1,R2
	.dbline 73
;     LEDDisBuffer[2] = Key_Null;
	sts _LEDDisBuffer+2,R2
	.dbline 74
;     LEDDisBuffer[3] = Key_Null;
	sts _LEDDisBuffer+3,R2
	.dbline 75
;     LEDDisBuffer[4] = Key_Null;
	sts _LEDDisBuffer+4,R2
	.dbline 76
;     LEDDisBuffer[5] = Key_Null;
	sts _LEDDisBuffer+5,R2
	.dbline 77
;     LEDDisBuffer[6] = Key_Null;
	sts _LEDDisBuffer+6,R2
	.dbline 78
;     LEDDisBuffer[7] = Key_Null;
	sts _LEDDisBuffer+7,R2
	rjmp L10
L9:
	.dbline 81
; 
;     while(TRUE)                                             //超级循环
;     {
	.dbline 82
;         if (KeyBuffer != Key_Null)
	lds R2,_KeyBuffer
	tst R2
	breq L12
	.dbline 83
;         {
	.dbline 84
;             for (i=7; i>0; i--)
	ldi R20,7
	rjmp L17
L14:
	.dbline 85
	.dbline 86
	ldi R24,<_LEDDisBuffer-1
	ldi R25,>_LEDDisBuffer-1
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_LEDDisBuffer
	ldi R25,>_LEDDisBuffer
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R2
	.dbline 87
L15:
	.dbline 84
	dec R20
L17:
	.dbline 84
	clr R2
	cp R2,R20
	brlo L14
	.dbline 89
;             {
;                 LEDDisBuffer[i] = LEDDisBuffer[i-1];
;             }
;             
;             LEDDisBuffer[0] = KeyBuffer;
	lds R2,_KeyBuffer
	sts _LEDDisBuffer,R2
	.dbline 91
;             
;             KeyBuffer = Key_Null;
	clr R2
	sts _KeyBuffer,R2
	.dbline 92
;         }
L12:
	.dbline 94
;         
;         if (DoTime == TRUE)
	lds R24,_DoTime
	cpi R24,1
	brne L19
	.dbline 95
;         {
	.dbline 96
;             DoTime = FALSE;
	clr R2
	sts _DoTime,R2
	.dbline 97
;             LEDDisplay();
	rcall _LEDDisplay
	.dbline 98
;             Port_refresh();
	rcall _Port_refresh
	.dbline 99
;             KeyBuffer = Key_service();
	rcall _Key_service
	sts _KeyBuffer,R16
	.dbline 100
;         }
L19:
	.dbline 101
L10:
	.dbline 80
	rjmp L9
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend

⌨️ 快捷键说明

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