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

📄 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	pixelNum
  26               		.data
  29               	pixelNum:
  30 0000 0F        		.byte	15
  31               	.global	charNum
  34               	charNum:
  35 0001 1F        		.byte	31
  36               	.global	botChar
  37               	.global	botChar
  38               		.section .bss
  41               	botChar:
  42 0002 0000      		.skip 2,0
  43               	.global	topChar
  44               	.global	topChar
  47               	topChar:
  48 0004 0000      		.skip 2,0
  49               	.global	line_shift
  50               		.data
  53               	line_shift:
  54 0002 0F        		.byte	15
  55               	.global	cur_line
  58               	cur_line:
  59 0003 05        		.byte	5
  60               	.global	line_timer
  63               	line_timer:
  64 0004 10        		.byte	16
  65               	.global	dynamicTime
  68               	dynamicTime:
  69 0005 3533 7C38 		.ascii	"53|85|21"
  69      357C 3231 
  70               	.global	div732
  71               		.section	.progmem.data,"a",@progbits
  74               	div732:
  75 0000 00        		.string	""
  76 0001 00        		.string	""
  77 0002 0100      		.string	"\001"
  78 0004 00        		.string	""
  79 0005 0300      		.string	"\003"
  80 0007 00        		.string	""
  81 0008 0500      		.string	"\005"
  82 000a 0101 00   		.string	"\001\001"
  83 000d 0202 00   		.string	"\002\002"
  84 0010 0403 00   		.string	"\004\003"
  85 0013 0806 0107 		.string	"\b\006\001\007\003\003\004\005"
  85      0303 0405 
  85      00
  86               	.global	dynamicRPM
  87               		.data
  90               	dynamicRPM:
  91 000d 3030 30   		.ascii	"000"
  92               	.global	dynamicType
  93               	.global	dynamicType
  94               		.section .bss
  97               	dynamicType:
  98 0006 00        		.skip 1,0
  99               	.global	dynamicPtr
 100               	.global	dynamicPtr
 103               	dynamicPtr:
 104 0007 0000      		.skip 2,0
 105               	.global	dInfo
 106               		.section	.progmem.data
 109               	dInfo:
 110 001c 00        		.byte	0
 111 001d 3B        		.byte	59
 112 001e 00        		.byte	0
 113 001f 00        		.byte	0
 114 0020 2A        		.byte	42
 115 0021 00        		.byte	0
 116 0022 00        		.byte	0
 117 0023 3B        		.byte	59
 118               	.global	lines
 121               	lines:
 122 0024 2020 2020 		.string	"    07/03/06        00-00-00                        RPM:0000    "
 122      3037 2F30 
 122      332F 3036 
 122      2020 2020 
 122      2020 2020 
 123               	.global	lineOffsets
 126               	lineOffsets:
 127 0065 00        		.byte	0
 128 0066 10        		.byte	16
 129 0067 20        		.byte	32
 130 0068 20        		.byte	32
 131 0069 30        		.byte	48
 132 006a 20        		.byte	32
 133 006b 00        		.byte	0
 134 006c 10        		.byte	16
 135               		.text
 136               	.global	clock_scroll
 138               	clock_scroll:
 139               	.LFB2:
 140               	.LM1:
 141               	/* prologue: frame size=0 */
 142 0000 CF93      		push r28
 143               	/* prologue end (size=1) */
 144 0002 C82F      		mov r28,r24
 145               	.LM2:
 146 0004 8091 0000 		lds r24,fleds
 147 0008 00D0      		rcall spi_transfer
 148               	.LM3:
 149 000a 8091 0000 		lds r24,fleds+1
 150 000e 00D0      		rcall spi_transfer
 151               	.LM4:
 152 0010 8091 0000 		lds r24,fleds+2
 153 0014 00D0      		rcall spi_transfer
 154               	.LM5:
 155 0016 8091 0000 		lds r24,fleds+3
 156 001a 00D0      		rcall spi_transfer
 157               	.LM6:
 158 001c CC23      		tst r28
 159 001e 79F0      		breq .L2
 160               	.LM7:
 161 0020 C830      		cpi r28,lo8(8)
 162 0022 20F4      		brsh .L3
 163               	.LM8:
 164 0024 6C2F      		mov r22,r28
 165 0026 8091 0000 		lds r24,fleds+4
 166 002a 08C0      		rjmp .L6
 167               	.L3:
 168               	.LM9:
 169 002c 8091 0000 		lds r24,fleds+4
 170 0030 00D0      		rcall spi_transfer
 171               	.LM10:
 172 0032 C850      		subi r28,lo8(-(-8))
 173               	.LM11:
 174 0034 21F0      		breq .L2
 175               	.LM12:
 176 0036 6C2F      		mov r22,r28
 177 0038 8091 0000 		lds r24,fleds+5
 178               	.L6:
 179 003c 00D0      		rcall spi_transfer_n
 180               	.L2:
 181               	.LM13:
 182 003e 949A      		sbi 50-0x20,4
 183               	.LM14:
 184               	/* #APP */
 185 0040 0000      		nop
 186 0042 0000      		nop
 187 0044 0000      		nop
 188 0046 0000      		nop
 189               	.LM15:
 190               	/* #NOAPP */
 191 0048 9498      		cbi 50-0x20,4
 192               	/* epilogue: frame size=0 */
 193 004a CF91      		pop r28
 194 004c 0895      		ret
 195               	/* epilogue end (size=2) */
 196               	/* function clock_scroll size 44 (41) */
 197               	.LFE2:
 199               	.global	__vector_6
 201               	__vector_6:
 202               	.LFB3:
 203               	.LM16:
 204               	/* prologue: frame size=0 */
 205 004e 1F92      		push __zero_reg__
 206 0050 0F92      		push __tmp_reg__
 207 0052 0FB6      		in __tmp_reg__,__SREG__
 208 0054 0F92      		push __tmp_reg__
 209 0056 1124      		clr __zero_reg__
 210 0058 2F93      		push r18
 211 005a 8F93      		push r24
 212 005c 9F93      		push r25
 213               	/* prologue end (size=8) */
 214               	.LM17:
 215 005e 8091 0000 		lds r24,hall_debounce
 216 0062 8F5F      		subi r24,lo8(-(1))
 217 0064 8093 0000 		sts hall_debounce,r24
 218               	.LM18:
 219 0068 8091 0000 		lds r24,sensor_timer+1
 220 006c 8F3F      		cpi r24,lo8(-1)
 221 006e 49F0      		breq .L8
 222               	.LM19:
 223 0070 8091 0000 		lds r24,sensor_timer
 224 0074 9091 0000 		lds r25,(sensor_timer)+1
 225 0078 0196      		adiw r24,1
 226 007a 9093 0000 		sts (sensor_timer)+1,r25
 227 007e 8093 0000 		sts sensor_timer,r24
 228               	.L8:
 229               	.LM20:
 230 0082 8091 0000 		lds r24,line_timer
 231 0086 8F5F      		subi r24,lo8(-(1))
 232 0088 8093 0000 		sts line_timer,r24
 233               	.LM21:
 234 008c 8091 0000 		lds r24,dynamicTimeCounter
 235 0090 9091 0000 		lds r25,(dynamicTimeCounter)+1
 236 0094 845F      		subi r24,lo8(-(268))
 237 0096 9E4F      		sbci r25,hi8(-(268))
 238 0098 9093 0000 		sts (dynamicTimeCounter)+1,r25
 239 009c 8093 0000 		sts dynamicTimeCounter,r24
 240               	.LM22:
 241 00a0 8091 0000 		lds r24,dynamicTimeCounter+1
 242 00a4 87FF      		sbrs r24,7
 243 00a6 4FC0      		rjmp .L7
 244               	.LM23:
 245 00a8 8091 0000 		lds r24,dynamicTimeCounter+1
 246 00ac 8F77      		andi r24,lo8(127)
 247 00ae 8093 0000 		sts dynamicTimeCounter+1,r24
 248               	.LM24:
 249 00b2 8091 0000 		lds r24,dynamicTime
 250 00b6 8F5F      		subi r24,lo8(-(1))
 251 00b8 8093 0000 		sts dynamicTime,r24
 252               	.LM25:
 253 00bc 8091 0000 		lds r24,dynamicTime
 254 00c0 8A33      		cpi r24,lo8(58)
 255 00c2 09F0      		breq .+2
 256 00c4 40C0      		rjmp .L7
 257               	.LM26:
 258 00c6 20E3      		ldi r18,lo8(48)
 259 00c8 2093 0000 		sts dynamicTime,r18
 260               	.LM27:
 261 00cc 8091 0000 		lds r24,dynamicTime+1
 262 00d0 8F5F      		subi r24,lo8(-(1))
 263 00d2 8093 0000 		sts dynamicTime+1,r24
 264               	.LM28:
 265 00d6 8091 0000 		lds r24,dynamicTime+1
 266 00da 8633      		cpi r24,lo8(54)
 267 00dc A1F5      		brne .L7
 268               	.LM29:
 269 00de 2093 0000 		sts dynamicTime+1,r18
 270               	.LM30:
 271 00e2 8091 0000 		lds r24,dynamicTime+3
 272 00e6 8F5F      		subi r24,lo8(-(1))
 273 00e8 8093 0000 		sts dynamicTime+3,r24
 274               	.LM31:
 275 00ec 8091 0000 		lds r24,dynamicTime+3
 276 00f0 8A33      		cpi r24,lo8(58)
 277 00f2 49F5      		brne .L7
 278               	.LM32:
 279 00f4 2093 0000 		sts dynamicTime+3,r18
 280               	.LM33:
 281 00f8 8091 0000 		lds r24,dynamicTime+4
 282 00fc 8F5F      		subi r24,lo8(-(1))
 283 00fe 8093 0000 		sts dynamicTime+4,r24
 284               	.LM34:
 285 0102 8091 0000 		lds r24,dynamicTime+4
 286 0106 8633      		cpi r24,lo8(54)
 287 0108 F1F4      		brne .L7
 288               	.LM35:
 289 010a 2093 0000 		sts dynamicTime+4,r18
 290               	.LM36:
 291 010e 8091 0000 		lds r24,dynamicTime+6
 292 0112 8F5F      		subi r24,lo8(-(1))
 293 0114 8093 0000 		sts dynamicTime+6,r24
 294               	.LM37:
 295 0118 8091 0000 		lds r24,dynamicTime+6
 296 011c 8A33      		cpi r24,lo8(58)
 297 011e 39F4      		brne .L14
 298               	.LM38:
 299 0120 2093 0000 		sts dynamicTime+6,r18
 300               	.LM39:
 301 0124 8091 0000 		lds r24,dynamicTime+7
 302 0128 8F5F      		subi r24,lo8(-(1))
 303 012a 8093 0000 		sts dynamicTime+7,r24
 304               	.L14:
 305               	.LM40:
 306 012e 9091 0000 		lds r25,dynamicTime+7
 307 0132 9133      		cpi r25,lo8(49)
 308 0134 41F4      		brne .L7
 309 0136 8091 0000 		lds r24,dynamicTime+6
 310 013a 8333      		cpi r24,lo8(51)
 311 013c 21F4      		brne .L7
 312               	.LM41:
 313 013e 2093 0000 		sts dynamicTime+7,r18
 314               	.LM42:
 315 0142 9093 0000 		sts dynamicTime+6,r25
 316               	.L7:
 317               	/* epilogue: frame size=0 */
 318 0146 9F91      		pop r25
 319 0148 8F91      		pop r24
 320 014a 2F91      		pop r18
 321 014c 0F90      		pop __tmp_reg__
 322 014e 0FBE      		out __SREG__,__tmp_reg__
 323 0150 0F90      		pop __tmp_reg__
 324 0152 1F90      		pop __zero_reg__
 325 0154 1895      		reti
 326               	/* epilogue end (size=8) */
 327               	/* function __vector_6 size 132 (116) */
 328               	.LFE3:
 330               	.global	set_all
 332               	set_all:
 333               	.LFB8:
 334               	.LM43:
 335               	/* prologue: frame size=0 */
 336               	/* prologue end (size=0) */
 337               	.LM44:
 338 0156 8093 0000 		sts fleds+3,r24
 339 015a 8093 0000 		sts fleds+2,r24
 340 015e 8093 0000 		sts fleds+1,r24
 341 0162 8093 0000 		sts fleds,r24
 342               	.LM45:
 343 0166 80E0      		ldi r24,lo8(0)
 344 0168 4BDF      		rcall clock_scroll
 345               	/* epilogue: frame size=0 */
 346 016a 0895      		ret
 347               	/* epilogue end (size=1) */
 348               	/* function set_all size 11 (10) */
 349               	.LFE8:
 351               	.global	__vector_4
 353               	__vector_4:
 354               	.LFB4:
 355               	.LM46:
 356               	/* prologue: frame size=0 */
 357 016c 1F92      		push __zero_reg__
 358 016e 0F92      		push __tmp_reg__
 359 0170 0FB6      		in __tmp_reg__,__SREG__
 360 0172 0F92      		push __tmp_reg__
 361 0174 1124      		clr __zero_reg__
 362 0176 2F93      		push r18
 363 0178 3F93      		push r19
 364 017a 4F93      		push r20
 365 017c 5F93      		push r21
 366 017e 6F93      		push r22
 367 0180 7F93      		push r23
 368 0182 8F93      		push r24
 369 0184 9F93      		push r25
 370 0186 AF93      		push r26
 371 0188 BF93      		push r27
 372 018a EF93      		push r30
 373 018c FF93      		push r31
 374               	/* prologue end (size=17) */
 375               	.LM47:
 376 018e 8091 0000 		lds r24,sensor_timer+1
 377 0192 8230      		cpi r24,lo8(2)
 378 0194 08F0      		brlo .+2
 379 0196 7EC0      		rjmp .L18
 380               	.LM48:
 381 0198 8091 0000 		lds r24,pixelNum
 382 019c 8F5F      		subi r24,lo8(-(1))
 383 019e 8093 0000 		sts pixelNum,r24
 384               	.LM49:
 385 01a2 8091 0000 		lds r24,pixelNum
 386 01a6 8031      		cpi r24,lo8(16)
 387 01a8 D9F5      		brne .L19
 388               	.LM50:
 389 01aa 8091 0000 		lds r24,charNum
 390 01ae 8F30      		cpi r24,lo8(15)
 391 01b0 29F4      		brne .L20
 392               	.LM51:
 393 01b2 8EB5      		in r24,78-0x20
 394 01b4 887F      		andi r24,lo8(-8)
 395 01b6 8EBD      		out 78-0x20,r24
 396               	.LM52:
 397 01b8 8FEF      		ldi r24,lo8(-1)
 398 01ba 70C0      		rjmp .L24
 399               	.L20:
 400               	.LM53:
 401 01bc 1092 0000 		sts pixelNum,__zero_reg__
 402               	.LM54:
 403 01c0 8091 0000 		lds r24,charNum
 404 01c4 8F5F      		subi r24,lo8(-(1))
 405 01c6 8F70      		andi r24,lo8(15)
 406 01c8 8093 0000 		sts charNum,r24
 407               	.LM55:
 408 01cc 8091 0000 		lds r24,charNum
 409 01d0 E82F      		mov r30,r24
 410 01d2 FF27      		clr r31
 411 01d4 E050      		subi r30,lo8(-(topLine))
 412 01d6 F040      		sbci r31,hi8(-(topLine))
 413 01d8 8081      		ld r24,Z
 414 01da 9927      		clr r25
 415 01dc 8097      		sbiw r24,32
 416 01de 880F      		lsl r24
 417 01e0 991F      		rol r25
 418 01e2 9093 0000 		sts (topChar)+1,r25
 419 01e6 8093 0000 		sts topChar,r24
 420               	.LM56:
 421 01ea 8091 0000 		lds r24,charNum
 422 01ee E82F      		mov r30,r24
 423 01f0 FF27      		clr r31
 424 01f2 E050      		subi r30,lo8(-(botLine))
 425 01f4 F040      		sbci r31,hi8(-(botLine))
 426 01f6 8081      		ld r24,Z
 427 01f8 9927      		clr r25
 428 01fa 8097      		sbiw r24,32
 429 01fc 880F      		lsl r24
 430 01fe 991F      		rol r25
 431 0200 9093 0000 		sts (botChar)+1,r25
 432 0204 8093 0000 		sts botChar,r24
 433               	.LM57:
 434 0208 8091 0000 		lds r24,charNum

⌨️ 快捷键说明

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