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

📄 12ul_play.lst

📁 基于AVR单片机的12段LED管灯控制程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
   1               		.file	"12ul_Play.c"
   2               		.arch atmega8
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  79               	.global	bAshRgb
  80               		.data
  83               	bAshRgb:
  84 0000 10        		.byte	16
  85 0001 00        		.byte	0
  86 0002 00        		.byte	0
  87 0003 10        		.byte	16
  88 0004 04        		.byte	4
  89 0005 00        		.byte	0
  90 0006 10        		.byte	16
  91 0007 08        		.byte	8
  92 0008 00        		.byte	0
  93 0009 10        		.byte	16
  94 000a 0C        		.byte	12
  95 000b 00        		.byte	0
  96 000c 10        		.byte	16
  97 000d 10        		.byte	16
  98 000e 00        		.byte	0
  99 000f 0C        		.byte	12
 100 0010 10        		.byte	16
 101 0011 00        		.byte	0
 102 0012 08        		.byte	8
 103 0013 10        		.byte	16
 104 0014 00        		.byte	0
 105 0015 04        		.byte	4
 106 0016 10        		.byte	16
 107 0017 00        		.byte	0
 108 0018 00        		.byte	0
 109 0019 10        		.byte	16
 110 001a 00        		.byte	0
 111 001b 00        		.byte	0
 112 001c 10        		.byte	16
 113 001d 04        		.byte	4
 114 001e 00        		.byte	0
 115 001f 10        		.byte	16
 116 0020 08        		.byte	8
 117 0021 00        		.byte	0
 118 0022 10        		.byte	16
 119 0023 0C        		.byte	12
 120 0024 00        		.byte	0
 121 0025 10        		.byte	16
 122 0026 10        		.byte	16
 123 0027 00        		.byte	0
 124 0028 0C        		.byte	12
 125 0029 10        		.byte	16
 126 002a 00        		.byte	0
 127 002b 08        		.byte	8
 128 002c 10        		.byte	16
 129 002d 00        		.byte	0
 130 002e 04        		.byte	4
 131 002f 10        		.byte	16
 132 0030 00        		.byte	0
 133 0031 00        		.byte	0
 134 0032 10        		.byte	16
 135 0033 04        		.byte	4
 136 0034 00        		.byte	0
 137 0035 10        		.byte	16
 138 0036 08        		.byte	8
 139 0037 00        		.byte	0
 140 0038 10        		.byte	16
 141 0039 0C        		.byte	12
 142 003a 00        		.byte	0
 143 003b 10        		.byte	16
 144 003c 10        		.byte	16
 145 003d 00        		.byte	0
 146 003e 10        		.byte	16
 147 003f 10        		.byte	16
 148 0040 00        		.byte	0
 149 0041 0C        		.byte	12
 150 0042 10        		.byte	16
 151 0043 00        		.byte	0
 152 0044 08        		.byte	8
 153 0045 10        		.byte	16
 154 0046 00        		.byte	0
 155 0047 04        		.byte	4
 158               	bRgb_Logic:
 159 0048 01        		.byte	1
 160 0049 00        		.byte	0
 161 004a 00        		.byte	0
 162 004b 00        		.byte	0
 163 004c 01        		.byte	1
 164 004d 00        		.byte	0
 165 004e 00        		.byte	0
 166 004f 00        		.byte	0
 167 0050 01        		.byte	1
 168 0051 01        		.byte	1
 169 0052 00        		.byte	0
 170 0053 01        		.byte	1
 171 0054 00        		.byte	0
 172 0055 01        		.byte	1
 173 0056 01        		.byte	1
 174 0057 01        		.byte	1
 175 0058 01        		.byte	1
 176 0059 00        		.byte	0
 177 005a 01        		.byte	1
 178 005b 01        		.byte	1
 179 005c 01        		.byte	1
 180 005d 01        		.byte	1
 181 005e 01        		.byte	1
 182 005f 01        		.byte	1
 183 0060 01        		.byte	1
 184 0061 01        		.byte	1
 185 0062 01        		.byte	1
 186 0063 01        		.byte	1
 187 0064 01        		.byte	1
 188 0065 01        		.byte	1
 189 0066 01        		.byte	1
 190 0067 01        		.byte	1
 191 0068 01        		.byte	1
 192               		.text
 195               	.global	SendOneDotColorData
 197               	SendOneDotColorData:
   1:12ul_Play.c   **** /****************************************************************************
   2:12ul_Play.c   **** //------------------ All color 12ul play implement-----------------------
   3:12ul_Play.c   **** //FileName     : 12ul_Play.c
   4:12ul_Play.c   **** //Function     : All color(RGB) play implement
   5:12ul_Play.c   **** //Created by   : Zhoushengzhi
   6:12ul_Play.c   **** //Created date : 12/10/2006
   7:12ul_Play.c   **** //Version      : V0.1
   8:12ul_Play.c   **** 
   9:12ul_Play.c   **** //CopyRight (c)  2006 Zhoushengzhi
  10:12ul_Play.c   **** //E-mail       : zhounanxu@163.com
  11:12ul_Play.c   **** //--------------------------------------------------------------------------
  12:12ul_Play.c   **** ****************************************************************************/
  13:12ul_Play.c   **** #include <avrx/avrx.h>
  14:12ul_Play.c   **** #include "Hardware.h"
  15:12ul_Play.c   **** #include "12ul_Play.h"
  16:12ul_Play.c   **** 
  17:12ul_Play.c   **** //----------------------------------------------------------------
  18:12ul_Play.c   **** TimerControlBlock delay;// Declare the control blocks for timers	
  19:12ul_Play.c   **** /*================================================================
  20:12ul_Play.c   **** Function: All lamps revolve the same color:R-G-B-RB-GB-RG-RGB.
  21:12ul_Play.c   **** -----------------------------------------------------------------*/ 
  22:12ul_Play.c   **** void  Play_Jump_All(WORD bDelayT1ms)
  23:12ul_Play.c   **** {
  24:12ul_Play.c   ****     BYTE bi;
  25:12ul_Play.c   ****     for(bi = 0; bi < 7; bi++)
  26:12ul_Play.c   **** 	    {
  27:12ul_Play.c   **** 	    PlayAllOneColor(bi);
  28:12ul_Play.c   **** 	    AvrXDelay(&delay, bDelayT1ms);
  29:12ul_Play.c   ****    	    }
  30:12ul_Play.c   **** }
  31:12ul_Play.c   **** 
  32:12ul_Play.c   ****  //----------------------------------------------------------------
  33:12ul_Play.c   **** void  PlayAllOneColor(BYTE bColor) 
  34:12ul_Play.c   **** {
  35:12ul_Play.c   ****     WORD bi;
  36:12ul_Play.c   ****     Set_Stb();
  37:12ul_Play.c   ****     for(bi = 0; bi < BLAMPS*BXDOTS; bi++)
  38:12ul_Play.c   **** 	    {
  39:12ul_Play.c   **** 		SendOneDotColorData(bColor);
  40:12ul_Play.c   **** 		}
  41:12ul_Play.c   ****     Clr_Stb();
  42:12ul_Play.c   **** }
  43:12ul_Play.c   **** 
  44:12ul_Play.c   **** //----------------------------------------------------------------
  45:12ul_Play.c   **** void SendOneDotColorData(BYTE bColor)
  46:12ul_Play.c   **** {
 199               	.LM1:
 200               	/* prologue: frame size=0 */
 201               	/* prologue end (size=0) */
  47:12ul_Play.c   ****     BYTE bi;
  48:12ul_Play.c   **** 	Set_Clk();Set_Sdi();Clr_Clk();
 203               	.LM2:
 204 0000 939A      		sbi 50-0x20,3
 205 0002 949A      		sbi 50-0x20,4
 206 0004 9398      		cbi 50-0x20,3
 207 0006 9927      		clr r25
 208 0008 FC01      		movw r30,r24
 209 000a EE0F      		lsl r30
 210 000c FF1F      		rol r31
 211 000e E80F      		add r30,r24
 212 0010 F91F      		adc r31,r25
 213 0012 E050      		subi r30,lo8(-(bRgb_Logic))
 214 0014 F040      		sbci r31,hi8(-(bRgb_Logic))
 215 0016 92E0      		ldi r25,lo8(2)
 216               	.L7:
  49:12ul_Play.c   **** 	for(bi=0; bi<3; bi++)
  50:12ul_Play.c   **** 		{
  51:12ul_Play.c   **** 		Set_Clk();
 218               	.LM3:
 219 0018 939A      		sbi 50-0x20,3
  52:12ul_Play.c   **** 		if(bRgb_Logic[bColor*3+bi]  == 1)
 221               	.LM4:
 222 001a 8191      		ld r24,Z+
 223 001c 8130      		cpi r24,lo8(1)
 224 001e 11F4      		brne .L5
  53:12ul_Play.c   **** 			Clr_Sdi();
 226               	.LM5:
 227 0020 9498      		cbi 50-0x20,4
 228 0022 01C0      		rjmp .L6
 229               	.L5:
  54:12ul_Play.c   **** 		else
  55:12ul_Play.c   **** 			Set_Sdi(); 
 231               	.LM6:
 232 0024 949A      		sbi 50-0x20,4
 233               	.L6:
  56:12ul_Play.c   **** 		Clr_Clk();
 235               	.LM7:
 236 0026 9398      		cbi 50-0x20,3
 238               	.LM8:
 239 0028 9150      		subi r25,lo8(-(-1))
 240 002a 97FF      		sbrs r25,7
 241 002c F5CF      		rjmp .L7
 242               	/* epilogue: frame size=0 */
 243 002e 0895      		ret
 244               	/* epilogue end (size=1) */
 245               	/* function SendOneDotColorData size 24 (23) */
 250               	.Lscope0:
 253               	.global	PlayAllOneColor
 255               	PlayAllOneColor:
 257               	.LM9:
 258               	/* prologue: frame size=0 */
 259 0030 1F93      		push r17
 260 0032 CF93      		push r28
 261 0034 DF93      		push r29
 262               	/* prologue end (size=3) */
 263 0036 182F      		mov r17,r24
 265               	.LM10:
 266 0038 919A      		sbi 50-0x20,1
 267 003a C7E1      		ldi r28,lo8(23)
 268 003c D0E0      		ldi r29,hi8(23)
 269               	.L14:
 271               	.LM11:
 272 003e 812F      		mov r24,r17
 273 0040 DFDF      		rcall SendOneDotColorData
 275               	.LM12:
 276 0042 2197      		sbiw r28,1
 277 0044 D7FF      		sbrs r29,7
 278 0046 FBCF      		rjmp .L14
 280               	.LM13:
 281 0048 9198      		cbi 50-0x20,1
 282               	/* epilogue: frame size=0 */
 283 004a DF91      		pop r29
 284 004c CF91      		pop r28
 285 004e 1F91      		pop r17
 286 0050 0895      		ret
 287               	/* epilogue end (size=4) */
 288               	/* function PlayAllOneColor size 17 (10) */
 293               	.Lscope1:
 296               	.global	Play_Jump_All
 298               	Play_Jump_All:
 300               	.LM14:
 301               	/* prologue: frame size=0 */
 302 0052 0F93      		push r16
 303 0054 1F93      		push r17
 304 0056 CF93      		push r28
 305               	/* prologue end (size=3) */
 306 0058 8C01      		movw r16,r24
 308               	.LM15:
 309 005a C0E0      		ldi r28,lo8(0)
 310               	.L21:
 312               	.LM16:
 313 005c 8C2F      		mov r24,r28
 314 005e E8DF      		rcall PlayAllOneColor
 316               	.LM17:
 317 0060 B801      		movw r22,r16
 318 0062 80E0      		ldi r24,lo8(delay)
 319 0064 90E0      		ldi r25,hi8(delay)
 320 0066 00D0      		rcall AvrXDelay
 322               	.LM18:
 323 0068 CF5F      		subi r28,lo8(-(1))
 324 006a C730      		cpi r28,lo8(7)
 325 006c B8F3      		brlo .L21
 326               	/* epilogue: frame size=0 */
 327 006e CF91      		pop r28
 328 0070 1F91      		pop r17
 329 0072 0F91      		pop r16
 330 0074 0895      		ret
 331               	/* epilogue end (size=4) */
 332               	/* function Play_Jump_All size 18 (11) */
 337               	.Lscope2:
 341               	.global	SetCloseColor
 343               	SetCloseColor:
  57:12ul_Play.c   **** 		}
  58:12ul_Play.c   **** }
  59:12ul_Play.c   **** 
  60:12ul_Play.c   **** 
  61:12ul_Play.c   **** /*================================================================
  62:12ul_Play.c   **** Function: Run color close and open,R-G-B-RB-GB-RG.
  63:12ul_Play.c   **** -----------------------------------------------------------------*/ 
  64:12ul_Play.c   **** void  Play_CloseOpenMoveUpt( WORD bRunSpeed)
  65:12ul_Play.c   **** {
  66:12ul_Play.c   ****     BYTE bi;
  67:12ul_Play.c   ****     PlayAllOneColor(YELLOW);
  68:12ul_Play.c   ****     for(bi = RED; bi<= YELLOW; bi++)
  69:12ul_Play.c   **** 	if(bi%2 == 0)
  70:12ul_Play.c   ****         SetCloseColor( bi, bRunSpeed);
  71:12ul_Play.c   **** 	else
  72:12ul_Play.c   **** 	    SetOpenColor( bi, bRunSpeed);
  73:12ul_Play.c   **** }
  74:12ul_Play.c   **** //----------------------------------------------------------------
  75:12ul_Play.c   **** void  SetCloseColor( BYTE bMoveColor, WORD bMoveSpeed)
  76:12ul_Play.c   **** {
 345               	.LM19:
 346               	/* prologue: frame size=0 */
 347 0076 AF92      		push r10
 348 0078 BF92      		push r11
 349 007a DF92      		push r13
 350 007c EF92      		push r14
 351 007e FF92      		push r15
 352 0080 0F93      		push r16
 353 0082 1F93      		push r17
 354 0084 CF93      		push r28
 355 0086 DF93      		push r29
 356               	/* prologue end (size=9) */
 357 0088 D82E      		mov r13,r24
 358 008a 5B01      		movw r10,r22
  77:12ul_Play.c   ****     WORD bi, loop;
  78:12ul_Play.c   ****     for(loop=0; loop < (BLAMPS*BXDOTS)/2; loop++)
 360               	.LM20:
 361 008c 00E0      		ldi r16,lo8(0)
 362 008e 10E0      		ldi r17,hi8(0)
 363 0090 38E1      		ldi r19,lo8(24)
 364 0092 E32E      		mov r14,r19
 365 0094 F12C      		mov r15,__zero_reg__
 366               	.L37:
  79:12ul_Play.c   ****    	    {
  80:12ul_Play.c   **** 		Set_Stb();
 368               	.LM21:
 369 0096 919A      		sbi 50-0x20,1
  81:12ul_Play.c   **** 	    for(bi=0; bi < (BLAMPS*BXDOTS); bi++)
 371               	.LM22:
 372 0098 C0E0      		ldi r28,lo8(0)
 373 009a D0E0      		ldi r29,hi8(0)
 374               	.L36:
  82:12ul_Play.c   **** 	        {
  83:12ul_Play.c   **** 			if((bi <= loop) || (bi >= ((BLAMPS*BXDOTS)-loop)))
 376               	.LM23:
 377 009c 0C17      		cp r16,r28
 378 009e 1D07      		cpc r17,r29
 379 00a0 18F4      		brsh .L32
 380 00a2 CE15      		cp r28,r14
 381 00a4 DF05      		cpc r29,r15
 382 00a6 10F0      		brlo .L31
 383               	.L32:
  84:12ul_Play.c   **** 			    {
  85:12ul_Play.c   **** 		        SendOneDotColorData(bMoveColor);
 385               	.LM24:
 386 00a8 8D2D      		mov r24,r13
 387 00aa 06C0      		rjmp .L42
 388               	.L31:
  86:12ul_Play.c   **** 				}
  87:12ul_Play.c   **** 			else
  88:12ul_Play.c   **** 			    {
  89:12ul_Play.c   **** 			    if(bMoveColor == RED)
 390               	.LM25:
 391 00ac DD20      		tst r13
 392 00ae 11F4      		brne .L34
  90:12ul_Play.c   **** 				    {
  91:12ul_Play.c   **** 		            SendOneDotColorData(YELLOW);
 394               	.LM26:
 395 00b0 84E0      		ldi r24,lo8(4)
 396 00b2 02C0      		rjmp .L42
 397               	.L34:
  92:12ul_Play.c   **** 				    }
  93:12ul_Play.c   **** 				else 
  94:12ul_Play.c   **** 				    {
  95:12ul_Play.c   **** 		            SendOneDotColorData(bMoveColor-1);
 399               	.LM27:
 400 00b4 8D2D      		mov r24,r13
 401 00b6 8150      		subi r24,lo8(-(-1))
 402               	.L42:
 403 00b8 A3DF      		rcall SendOneDotColorData
 405               	.LM28:
 406 00ba 2196      		adiw r28,1
 407 00bc C831      		cpi r28,24
 408 00be D105      		cpc r29,__zero_reg__
 409 00c0 68F3      		brlo .L36

⌨️ 快捷键说明

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