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

📄 main.lst

📁 旋转16个LED灯控制程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
   1               		.file	"main.c"
   2               		.arch attiny2313
   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
  17               	.Ltext0:
  18               	.global	scrollChar
  19               	.global	scrollChar
  20               		.section .bss
  23               	scrollChar:
  24 0000 0000      		.skip 2,0
  25               	.global	clean
  26               	.global	clean
  29               	clean:
  30 0002 00        		.skip 1,0
  31               	.global	pixelNum
  32               	.global	pixelNum
  35               	pixelNum:
  36 0003 00        		.skip 1,0
  37               	.global	charNum
  38               	.global	charNum
  41               	charNum:
  42 0004 00        		.skip 1,0
  43               	.global	botChar
  44               	.global	botChar
  47               	botChar:
  48 0005 0000      		.skip 2,0
  49               	.global	topChar
  50               	.global	topChar
  53               	topChar:
  54 0007 0000      		.skip 2,0
  55               	.global	line_shift
  56               		.data
  59               	line_shift:
  60 0000 0F        		.byte	15
  61               	.global	cur_line
  64               	cur_line:
  65 0001 FF        		.byte	-1
  66               	.global	line_timer_l
  69               	line_timer_l:
  70 0002 10        		.byte	16
  71               	.global	line_timer_h
  72               	.global	line_timer_h
  73               		.section .bss
  76               	line_timer_h:
  77 0009 00        		.skip 1,0
  78               	.global	lines
  79               		.section	.progmem.data,"a",@progbits
  82               	lines:
  83 0000 2020 2045 		.ascii	"   Episode IV      A New Hope                       It is a "
  83      7069 736F 
  83      6465 2049 
  83      5620 2020 
  83      2020 2041 
  84 003c 2020 2020 		.ascii	"       period of       civil war.                        Reb"
  84      2020 2070 
  84      6572 696F 
  84      6420 6F66 
  84      2020 2020 
  85 0078 656C 2020 		.ascii	"el         spaceships,      striking         from a        h"
  85      2020 2020 
  85      2020 2073 
  85      7061 6365 
  85      7368 6970 
  86 00b4 6964 6465 		.ascii	"idden base  "
  86      6E20 6261 
  86      7365 2020 
  87 00c0 2020 2020 		.string	"    have won       their first      victory..                   "
  87      6861 7665 
  87      2077 6F6E 
  87      2020 2020 
  87      2020 2074 
  88               		.text
  89               	.global	spi_transfer_n
  91               	spi_transfer_n:
  92               	.LFB2:
  93               	.LM1:
  94               	/* prologue: frame size=0 */
  95               	/* prologue end (size=0) */
  96 0000 962F      		mov r25,r22
  97               	.LM2:
  98 0002 8FB9      		out 47-0x20,r24
  99               	.LM3:
 100 0004 990F      		lsl r25
 101 0006 80E1      		ldi r24,lo8(16)
 102 0008 891B      		sub r24,r25
 103 000a 8064      		ori r24,lo8(64)
 104 000c 8EB9      		out 46-0x20,r24
 105               	.LM4:
 106 000e 7699      		sbic 46-0x20,6
 107 0010 04C0      		rjmp .L6
 108 0012 8BE1      		ldi r24,lo8(27)
 109               	.L4:
 110               	.LM5:
 111 0014 8DB9      		out 45-0x20,r24
 112 0016 769B      		sbis 46-0x20,6
 113 0018 FDCF      		rjmp .L4
 114               	.L6:
 115 001a 0895      		ret
 116               	/* epilogue: frame size=0 */
 117               	/* epilogue: noreturn */
 118               	/* epilogue end (size=0) */
 119               	/* function spi_transfer_n size 14 (14) */
 120               	.LFE2:
 122               	.global	spi_transfer
 124               	spi_transfer:
 125               	.LFB3:
 126               	.LM6:
 127               	/* prologue: frame size=0 */
 128               	/* prologue end (size=0) */
 129               	.LM7:
 130 001c 8FB9      		out 47-0x20,r24
 131               	.LM8:
 132 001e 80E4      		ldi r24,lo8(64)
 133 0020 8EB9      		out 46-0x20,r24
 134               	.LM9:
 135 0022 7699      		sbic 46-0x20,6
 136 0024 04C0      		rjmp .L12
 137 0026 8BE1      		ldi r24,lo8(27)
 138               	.L10:
 139               	.LM10:
 140 0028 8DB9      		out 45-0x20,r24
 141 002a 769B      		sbis 46-0x20,6
 142 002c FDCF      		rjmp .L10
 143               	.L12:
 144               	.LM11:
 145 002e 8FB1      		in r24,47-0x20
 146               	.LM12:
 147 0030 9927      		clr r25
 148               	/* epilogue: frame size=0 */
 149 0032 0895      		ret
 150               	/* epilogue end (size=1) */
 151               	/* function spi_transfer size 12 (11) */
 152               	.LFE3:
 154               	.global	clock_leds
 156               	clock_leds:
 157               	.LFB4:
 158               	.LM13:
 159               	/* prologue: frame size=0 */
 160               	/* prologue end (size=0) */
 161               	.LM14:
 162 0034 8091 0000 		lds r24,fleds
 163 0038 F1DF      		rcall spi_transfer
 164               	.LM15:
 165 003a 8091 0000 		lds r24,fleds+1
 166 003e EEDF      		rcall spi_transfer
 167               	.LM16:
 168 0040 8091 0000 		lds r24,fleds+2
 169 0044 EBDF      		rcall spi_transfer
 170               	.LM17:
 171 0046 8091 0000 		lds r24,fleds+3
 172 004a E8DF      		rcall spi_transfer
 173               	.LM18:
 174 004c 949A      		sbi 50-0x20,4
 175               	.LM19:
 176               	/* #APP */
 177 004e 0000      		nop
 178 0050 0000      		nop
 179 0052 0000      		nop
 180 0054 0000      		nop
 181               	.LM20:
 182               	/* #NOAPP */
 183 0056 9498      		cbi 50-0x20,4
 184               	/* epilogue: frame size=0 */
 185 0058 0895      		ret
 186               	/* epilogue end (size=1) */
 187               	/* function clock_leds size 23 (22) */
 188               	.LFE4:
 190               	.global	clock_scroll
 192               	clock_scroll:
 193               	.LFB5:
 194               	.LM21:
 195               	/* prologue: frame size=0 */
 196 005a CF93      		push r28
 197               	/* prologue end (size=1) */
 198               	.LM22:
 199 005c 8091 0000 		lds r24,fleds
 200 0060 DDDF      		rcall spi_transfer
 201               	.LM23:
 202 0062 8091 0000 		lds r24,fleds+1
 203 0066 DADF      		rcall spi_transfer
 204               	.LM24:
 205 0068 8091 0000 		lds r24,fleds+2
 206 006c D7DF      		rcall spi_transfer
 207               	.LM25:
 208 006e 8091 0000 		lds r24,fleds+3
 209 0072 D4DF      		rcall spi_transfer
 210               	.LM26:
 211 0074 C091 0000 		lds r28,line_shift
 212               	.LM27:
 213 0078 CC23      		tst r28
 214 007a 79F0      		breq .L15
 215               	.LM28:
 216 007c C830      		cpi r28,lo8(8)
 217 007e 20F4      		brsh .L16
 218               	.LM29:
 219 0080 6C2F      		mov r22,r28
 220 0082 8091 0000 		lds r24,fleds+4
 221 0086 08C0      		rjmp .L19
 222               	.L16:
 223               	.LM30:
 224 0088 8091 0000 		lds r24,fleds+4
 225 008c C7DF      		rcall spi_transfer
 226               	.LM31:
 227 008e C850      		subi r28,lo8(-(-8))
 228               	.LM32:
 229 0090 21F0      		breq .L15
 230               	.LM33:
 231 0092 6C2F      		mov r22,r28
 232 0094 8091 0000 		lds r24,fleds+5
 233               	.L19:
 234 0098 B3DF      		rcall spi_transfer_n
 235               	.L15:
 236               	.LM34:
 237 009a 949A      		sbi 50-0x20,4
 238               	.LM35:
 239               	/* #APP */
 240 009c 0000      		nop
 241 009e 0000      		nop
 242 00a0 0000      		nop
 243 00a2 0000      		nop
 244               	.LM36:
 245               	/* #NOAPP */
 246 00a4 9498      		cbi 50-0x20,4
 247               	/* epilogue: frame size=0 */
 248 00a6 CF91      		pop r28
 249 00a8 0895      		ret
 250               	/* epilogue end (size=2) */
 251               	/* function clock_scroll size 45 (42) */
 252               	.LFE5:
 254               	.global	__vector_6
 256               	__vector_6:
 257               	.LFB6:
 258               	.LM37:
 259               	/* prologue: frame size=0 */
 260 00aa 1F92      		push __zero_reg__
 261 00ac 0F92      		push __tmp_reg__
 262 00ae 0FB6      		in __tmp_reg__,__SREG__
 263 00b0 0F92      		push __tmp_reg__
 264 00b2 1124      		clr __zero_reg__
 265 00b4 2F93      		push r18
 266 00b6 8F93      		push r24
 267 00b8 9F93      		push r25
 268               	/* prologue end (size=8) */
 269               	.LM38:
 270 00ba 8091 0000 		lds r24,hall_debounce
 271 00be 8F3F      		cpi r24,lo8(-1)
 272 00c0 29F0      		breq .L21
 273               	.LM39:
 274 00c2 8091 0000 		lds r24,hall_debounce
 275 00c6 8F5F      		subi r24,lo8(-(1))
 276 00c8 8093 0000 		sts hall_debounce,r24
 277               	.L21:
 278               	.LM40:
 279 00cc 8091 0000 		lds r24,sensor_timer
 280 00d0 9091 0000 		lds r25,(sensor_timer)+1
 281 00d4 8F5F      		subi r24,lo8(-1)
 282 00d6 9F4F      		sbci r25,hi8(-1)
 283 00d8 49F0      		breq .L22
 284               	.LM41:
 285 00da 8091 0000 		lds r24,sensor_timer
 286 00de 9091 0000 		lds r25,(sensor_timer)+1
 287 00e2 0196      		adiw r24,1
 288 00e4 9093 0000 		sts (sensor_timer)+1,r25
 289 00e8 8093 0000 		sts sensor_timer,r24
 290               	.L22:
 291               	.LM42:
 292 00ec 8091 0000 		lds r24,line_timer_l
 293 00f0 8F5F      		subi r24,lo8(-(1))
 294 00f2 8093 0000 		sts line_timer_l,r24
 295               	.LM43:
 296 00f6 8091 0000 		lds r24,line_timer_l
 297 00fa 8823      		tst r24
 298 00fc 29F4      		brne .L20
 299               	.LM44:
 300 00fe 8091 0000 		lds r24,line_timer_h
 301 0102 8F5F      		subi r24,lo8(-(1))
 302 0104 8093 0000 		sts line_timer_h,r24
 303               	.L20:
 304               	/* epilogue: frame size=0 */
 305 0108 9F91      		pop r25
 306 010a 8F91      		pop r24
 307 010c 2F91      		pop r18
 308 010e 0F90      		pop __tmp_reg__
 309 0110 0FBE      		out __SREG__,__tmp_reg__
 310 0112 0F90      		pop __tmp_reg__
 311 0114 1F90      		pop __zero_reg__
 312 0116 1895      		reti
 313               	/* epilogue end (size=8) */
 314               	/* function __vector_6 size 56 (40) */
 315               	.LFE6:
 317               	.global	set_led
 319               	set_led:
 320               	.LFB12:
 321               	.LM45:
 322               	/* prologue: frame size=0 */
 323               	/* prologue end (size=0) */
 324 0118 282F      		mov r18,r24
 325               	.LM46:
 326 011a 8FEF      		ldi r24,lo8(-1)
 327 011c 8093 0000 		sts fleds+3,r24
 328 0120 8093 0000 		sts fleds+2,r24
 329 0124 8093 0000 		sts fleds+1,r24
 330 0128 8093 0000 		sts fleds,r24
 331               	.LM47:
 332 012c 822F      		mov r24,r18
 333 012e 8695      		lsr r24
 334 0130 8695      		lsr r24
 335 0132 8695      		lsr r24
 336 0134 E82F      		mov r30,r24
 337 0136 FF27      		clr r31
 338 0138 E050      		subi r30,lo8(-(fleds))
 339 013a F040      		sbci r31,hi8(-(fleds))
 340 013c 2770      		andi r18,lo8(7)
 341 013e 81E0      		ldi r24,lo8(1)
 342 0140 90E0      		ldi r25,hi8(1)
 343 0142 02C0      		rjmp 2f
 344 0144 880F      	1:	lsl r24
 345 0146 991F      		rol r25
 346 0148 2A95      	2:	dec r18
 347 014a E2F7      		brpl 1b
 348 014c 8095      		com r24
 349 014e 8083      		st Z,r24
 350               	.LM48:
 351 0150 71DF      		rcall clock_leds
 352               	/* epilogue: frame size=0 */
 353 0152 0895      		ret
 354               	/* epilogue end (size=1) */
 355               	/* function set_led size 31 (30) */
 356               	.LFE12:
 358               	.global	__vector_4
 360               	__vector_4:
 361               	.LFB7:
 362               	.LM49:
 363               	/* prologue: frame size=0 */
 364 0154 1F92      		push __zero_reg__
 365 0156 0F92      		push __tmp_reg__
 366 0158 0FB6      		in __tmp_reg__,__SREG__
 367 015a 0F92      		push __tmp_reg__
 368 015c 1124      		clr __zero_reg__
 369 015e CF92      		push r12
 370 0160 DF92      		push r13
 371 0162 EF92      		push r14
 372 0164 FF92      		push r15
 373 0166 0F93      		push r16
 374 0168 1F93      		push r17
 375 016a 2F93      		push r18
 376 016c 3F93      		push r19
 377 016e 4F93      		push r20
 378 0170 5F93      		push r21
 379 0172 6F93      		push r22
 380 0174 7F93      		push r23
 381 0176 8F93      		push r24
 382 0178 9F93      		push r25
 383 017a AF93      		push r26
 384 017c BF93      		push r27
 385 017e CF93      		push r28
 386 0180 DF93      		push r29
 387 0182 EF93      		push r30
 388 0184 FF93      		push r31
 389               	/* prologue end (size=25) */
 390               	.LM50:
 391               	/* #APP */
 392 0186 7894      		sei
 393               	.LM51:
 394               	/* #NOAPP */
 395 0188 E090 0000 		lds r14,topChar
 396 018c F090 0000 		lds r15,(topChar)+1
 397               	.LM52:
 398 0190 0091 0000 		lds r16,botChar
 399 0194 1091 0000 		lds r17,(botChar)+1
 400               	.LM53:
 401 0198 C090 0000 		lds r12,charNum
 402               	.LM54:
 403 019c D090 0000 		lds r13,pixelNum
 404               	.LM55:
 405 01a0 C091 0000 		lds r28,scrollChar
 406 01a4 D091 0000 		lds r29,(scrollChar)+1
 407               	.LM56:
 408 01a8 8091 0000 		lds r24,sensor_timer
 409 01ac 9091 0000 		lds r25,(sensor_timer)+1
 410 01b0 8256      		subi r24,lo8(610)
 411 01b2 9240      		sbci r25,hi8(610)
 412 01b4 08F0      		brlo .+2
 413 01b6 8CC0      		rjmp .L26
 414               	.LM57:
 415 01b8 D394      		inc r13
 416               	.LM58:
 417 01ba 80E1      		ldi r24,lo8(16)
 418 01bc D816      		cp r13,r24

⌨️ 快捷键说明

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