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

📄 main.lst

📁 用来显示LCM103的单片机程序。非常好的例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
  85:main.c        **** 	
  86:main.c        **** 	for(i=0;i<6;i++)
 387               	.LM49:
 388 0110 10E0      		ldi r17,lo8(0)
 389 0112 C5E0      		ldi r28,lo8(5)
 390 0114 D0E0      		ldi r29,hi8(5)
 391               	.L52:
  87:main.c        **** 	{
  88:main.c        **** 		if(addr & _BV(5-i))
 393               	.LM50:
 394 0116 802F      		mov r24,r16
 395 0118 9927      		clr r25
 396 011a 0C2E      		mov r0,r28
 397 011c 02C0      		rjmp 2f
 398 011e 9595      	1:	asr r25
 399 0120 8795      		ror r24
 400 0122 0A94      	2:	dec r0
 401 0124 E2F7      		brpl 1b
 402 0126 80FF      		sbrs r24,0
 403 0128 02C0      		rjmp .L50
  89:main.c        **** 			lcd_send_bit(1);
 405               	.LM51:
 406 012a 81E0      		ldi r24,lo8(1)
 407 012c 01C0      		rjmp .L65
 408               	.L50:
  90:main.c        **** 		else
  91:main.c        **** 			lcd_send_bit(0);			
 410               	.LM52:
 411 012e 80E0      		ldi r24,lo8(0)
 412               	.L65:
 413 0130 0E94 0000 		call lcd_send_bit
 415               	.LM53:
 416 0134 1F5F      		subi r17,lo8(-(1))
 417 0136 2197      		sbiw r28,1
 418 0138 1630      		cpi r17,lo8(6)
 419 013a 68F3      		brlo .L52
  92:main.c        **** 	}
  93:main.c        **** 	for(i=0;i<4;i++)
 421               	.LM54:
 422 013c 10E0      		ldi r17,lo8(0)
 423 013e C0E0      		ldi r28,lo8(0)
 424 0140 D0E0      		ldi r29,hi8(0)
 425               	.L59:
  94:main.c        **** 	{
  95:main.c        **** 		if(data & _BV(i))
 427               	.LM55:
 428 0142 8F2D      		mov r24,r15
 429 0144 9927      		clr r25
 430 0146 0C2E      		mov r0,r28
 431 0148 02C0      		rjmp 2f
 432 014a 9595      	1:	asr r25
 433 014c 8795      		ror r24
 434 014e 0A94      	2:	dec r0
 435 0150 E2F7      		brpl 1b
 436 0152 80FF      		sbrs r24,0
 437 0154 02C0      		rjmp .L57
  96:main.c        **** 			lcd_send_bit(1);
 439               	.LM56:
 440 0156 81E0      		ldi r24,lo8(1)
 441 0158 01C0      		rjmp .L66
 442               	.L57:
  97:main.c        **** 		else
  98:main.c        **** 			lcd_send_bit(0);
 444               	.LM57:
 445 015a 80E0      		ldi r24,lo8(0)
 446               	.L66:
 447 015c 0E94 0000 		call lcd_send_bit
 449               	.LM58:
 450 0160 1F5F      		subi r17,lo8(-(1))
 451 0162 2196      		adiw r28,1
 452 0164 1430      		cpi r17,lo8(4)
 453 0166 68F3      		brlo .L59
  99:main.c        **** 	}
 100:main.c        **** 	CS1;
 455               	.LM59:
 456 0168 DF9A      		sbi 59-0x20,7
 101:main.c        **** 	delay(1);
 458               	.LM60:
 459 016a 81E0      		ldi r24,lo8(1)
 460 016c 90E0      		ldi r25,hi8(1)
 461 016e 0E94 0000 		call delay
 102:main.c        **** }
 463               	.LM61:
 464               	.LBE7:
 465               	/* epilogue: frame size=0 */
 466 0172 DF91      		pop r29
 467 0174 CF91      		pop r28
 468 0176 1F91      		pop r17
 469 0178 0F91      		pop r16
 470 017a FF90      		pop r15
 471 017c 0895      		ret
 472               	/* epilogue end (size=6) */
 473               	/* function lcd_send_data size 81 (70) */
 478               	.Lscope4:
 482               	.global	lcd_send_cmd
 484               	lcd_send_cmd:
 103:main.c        **** void lcd_send_cmd(uint8_t cmd)
 104:main.c        **** {
 486               	.LM62:
 487               	/* prologue: frame size=0 */
 488 017e 0F93      		push r16
 489 0180 1F93      		push r17
 490 0182 CF93      		push r28
 491 0184 DF93      		push r29
 492               	/* prologue end (size=4) */
 493 0186 082F      		mov r16,r24
 105:main.c        **** 	uint8_t i;
 106:main.c        **** 	CS1;
 495               	.LM63:
 496               	.LBB8:
 497 0188 DF9A      		sbi 59-0x20,7
 107:main.c        **** 	delay(1);
 499               	.LM64:
 500 018a 81E0      		ldi r24,lo8(1)
 501 018c 90E0      		ldi r25,hi8(1)
 502 018e 0E94 0000 		call delay
 108:main.c        **** 	CS0;
 504               	.LM65:
 505 0192 DF98      		cbi 59-0x20,7
 109:main.c        **** 	delay(1);
 507               	.LM66:
 508 0194 81E0      		ldi r24,lo8(1)
 509 0196 90E0      		ldi r25,hi8(1)
 510 0198 0E94 0000 		call delay
 110:main.c        **** 	lcd_send_bit(1);
 512               	.LM67:
 513 019c 81E0      		ldi r24,lo8(1)
 514 019e 0E94 0000 		call lcd_send_bit
 111:main.c        **** 	lcd_send_bit(0);
 516               	.LM68:
 517 01a2 80E0      		ldi r24,lo8(0)
 518 01a4 0E94 0000 		call lcd_send_bit
 112:main.c        **** 	lcd_send_bit(0);
 520               	.LM69:
 521 01a8 80E0      		ldi r24,lo8(0)
 522 01aa 0E94 0000 		call lcd_send_bit
 113:main.c        **** 	for(i=0;i<8;i++)
 524               	.LM70:
 525 01ae 10E0      		ldi r17,lo8(0)
 526 01b0 C7E0      		ldi r28,lo8(7)
 527 01b2 D0E0      		ldi r29,hi8(7)
 528               	.L76:
 114:main.c        **** 	{
 115:main.c        **** 		if(cmd & _BV(7-i))
 530               	.LM71:
 531 01b4 802F      		mov r24,r16
 532 01b6 9927      		clr r25
 533 01b8 0C2E      		mov r0,r28
 534 01ba 02C0      		rjmp 2f
 535 01bc 9595      	1:	asr r25
 536 01be 8795      		ror r24
 537 01c0 0A94      	2:	dec r0
 538 01c2 E2F7      		brpl 1b
 539 01c4 80FF      		sbrs r24,0
 540 01c6 02C0      		rjmp .L74
 116:main.c        **** 			lcd_send_bit(1);
 542               	.LM72:
 543 01c8 81E0      		ldi r24,lo8(1)
 544 01ca 01C0      		rjmp .L80
 545               	.L74:
 117:main.c        **** 		else
 118:main.c        **** 			lcd_send_bit(0);		
 547               	.LM73:
 548 01cc 80E0      		ldi r24,lo8(0)
 549               	.L80:
 550 01ce 0E94 0000 		call lcd_send_bit
 552               	.LM74:
 553 01d2 1F5F      		subi r17,lo8(-(1))
 554 01d4 2197      		sbiw r28,1
 555 01d6 1830      		cpi r17,lo8(8)
 556 01d8 68F3      		brlo .L76
 119:main.c        **** 	}
 120:main.c        **** 	lcd_send_bit(0);
 558               	.LM75:
 559 01da 80E0      		ldi r24,lo8(0)
 560 01dc 0E94 0000 		call lcd_send_bit
 121:main.c        **** 	CS1;
 562               	.LM76:
 563 01e0 DF9A      		sbi 59-0x20,7
 122:main.c        **** 	delay(1);
 565               	.LM77:
 566 01e2 81E0      		ldi r24,lo8(1)
 567 01e4 90E0      		ldi r25,hi8(1)
 568 01e6 0E94 0000 		call delay
 123:main.c        **** }
 570               	.LM78:
 571               	.LBE8:
 572               	/* epilogue: frame size=0 */
 573 01ea DF91      		pop r29
 574 01ec CF91      		pop r28
 575 01ee 1F91      		pop r17
 576 01f0 0F91      		pop r16
 577 01f2 0895      		ret
 578               	/* epilogue end (size=5) */
 579               	/* function lcd_send_cmd size 59 (50) */
 584               	.Lscope5:
 587               	.global	test_lcd
 589               	test_lcd:
 124:main.c        **** void test_lcd(void)
 125:main.c        **** {
 591               	.LM79:
 592               	/* prologue: frame size=0 */
 593 01f4 0F93      		push r16
 594 01f6 1F93      		push r17
 595 01f8 CF93      		push r28
 596 01fa DF93      		push r29
 597               	/* prologue end (size=4) */
 126:main.c        **** 	uint8_t i,j;
 127:main.c        **** 	lcd_send_cmd(LCD_CMD_INITIAL);
 599               	.LM80:
 600               	.LBB9:
 601 01fc 89E2      		ldi r24,lo8(41)
 602 01fe 0E94 0000 		call lcd_send_cmd
 128:main.c        **** 	lcd_send_cmd(LCD_CMD_SEL_RC);
 604               	.LM81:
 605 0202 88E1      		ldi r24,lo8(24)
 606 0204 0E94 0000 		call lcd_send_cmd
 129:main.c        **** 	lcd_send_cmd(LCD_CMD_OP_RC);
 608               	.LM82:
 609 0208 81E0      		ldi r24,lo8(1)
 610 020a 0E94 0000 		call lcd_send_cmd
 130:main.c        **** 	lcd_send_cmd(LCD_CMD_OP_LCD);
 612               	.LM83:
 613 020e 83E0      		ldi r24,lo8(3)
 614 0210 0E94 0000 		call lcd_send_cmd
 131:main.c        **** 	beep();	
 616               	.LM84:
 617 0214 0E94 0000 		call beep
 132:main.c        **** 	delay(1000);
 619               	.LM85:
 620 0218 88EE      		ldi r24,lo8(1000)
 621 021a 93E0      		ldi r25,hi8(1000)
 622 021c 0E94 0000 		call delay
 133:main.c        **** 	/*display S1---S4*/
 134:main.c        **** 	for(i=0;i<0x20;i++)
 624               	.LM86:
 625 0220 00E0      		ldi r16,lo8(0)
 626               	.L91:
 135:main.c        **** 	{
 136:main.c        **** 		for(j=0;j<4;j++)
 628               	.LM87:
 629 0222 10E0      		ldi r17,lo8(0)
 630 0224 C0E0      		ldi r28,lo8(0)
 631 0226 D0E0      		ldi r29,hi8(0)
 632               	.L90:
 137:main.c        **** 		{
 138:main.c        **** 			lcd_send_data(i,_BV(j));
 634               	.LM88:
 635 0228 81E0      		ldi r24,lo8(1)
 636 022a 90E0      		ldi r25,hi8(1)
 637 022c 0C2E      		mov r0,r28
 638 022e 02C0      		rjmp 2f
 639 0230 880F      	1:	lsl r24
 640 0232 991F      		rol r25
 641 0234 0A94      	2:	dec r0
 642 0236 E2F7      		brpl 1b
 643 0238 682F      		mov r22,r24
 644 023a 802F      		mov r24,r16
 645 023c 0E94 0000 		call lcd_send_data
 139:main.c        **** 			beep();
 647               	.LM89:
 648 0240 0E94 0000 		call beep
 140:main.c        **** 			delay(1000);
 650               	.LM90:
 651 0244 88EE      		ldi r24,lo8(1000)
 652 0246 93E0      		ldi r25,hi8(1000)
 653 0248 0E94 0000 		call delay
 655               	.LM91:
 656 024c 1F5F      		subi r17,lo8(-(1))
 657 024e 2196      		adiw r28,1
 658 0250 1430      		cpi r17,lo8(4)
 659 0252 50F3      		brlo .L90
 661               	.LM92:
 662 0254 0F5F      		subi r16,lo8(-(1))
 663 0256 0032      		cpi r16,lo8(32)
 664 0258 20F3      		brlo .L91
 141:main.c        **** 		}
 142:main.c        **** 	}
 143:main.c        **** 	beep();
 666               	.LM93:
 667 025a 0E94 0000 		call beep
 144:main.c        **** 	delay(200);
 669               	.LM94:
 670 025e 88EC      		ldi r24,lo8(200)
 671 0260 90E0      		ldi r25,hi8(200)
 672 0262 0E94 0000 		call delay
 145:main.c        **** 	beep();
 674               	.LM95:
 675 0266 0E94 0000 		call beep
 146:main.c        **** 	lcd_send_cmd(LCD_CMD_CL_LCD);
 677               	.LM96:
 678 026a 82E0      		ldi r24,lo8(2)
 679 026c 0E94 0000 		call lcd_send_cmd
 147:main.c        **** }
 681               	.LM97:
 682               	.LBE9:
 683               	/* epilogue: frame size=0 */
 684 0270 DF91      		pop r29
 685 0272 CF91      		pop r28
 686 0274 1F91      		pop r17
 687 0276 0F91      		pop r16
 688 0278 0895      		ret
 689               	/* epilogue end (size=5) */
 690               	/* function test_lcd size 67 (58) */
 696               	.Lscope6:
 699               	.global	main
 701               	main:
 148:main.c        **** 
 149:main.c        **** int main(void)
 150:main.c        **** {
 703               	.LM98:
 704               	/* prologue: frame size=0 */
 705 027a C0E0      		ldi r28,lo8(__stack - 0)
 706 027c D0E0      		ldi r29,hi8(__stack - 0)
 707 027e DEBF      		out __SP_H__,r29
 708 0280 CDBF      		out __SP_L__,r28
 709               	/* prologue end (size=4) */
 151:main.c        **** /*PC7 output to speak;PC6 to TP.
 152:main.c        ****   PC5~2 correspond to JTAG.only PC4 correspond to JTAG TDO(test data out),should be output MCU.
 153:main.c        ****   PC1~0 correspond to color LED,should be output from MCU.*/
 154:main.c        **** 	DDRA=0xFF;
 711               	.LM99:
 712 0282 8FEF      		ldi r24,lo8(-1)
 713 0284 8ABB      		out 58-0x20,r24
 155:main.c        **** 	PORTA=0xFF;
 715               	.LM100:
 716 0286 8BBB      		out 59-0x20,r24
 156:main.c        **** 	DDRC=0xD3;
 718               	.LM101:
 719 0288 83ED      		ldi r24,lo8(-45)
 720 028a 84BB      		out 52-0x20,r24
 157:main.c        **** 	PORTC=0x2C;
 722               	.LM102:
 723 028c 8CE2      		ldi r24,lo8(44)
 724 028e 85BB      		out 53-0x20,r24
 158:main.c        **** 	
 159:main.c        **** 	delay(3000);
 726               	.LM103:
 727 0290 88EB      		ldi r24,lo8(3000)
 728 0292 9BE0      		ldi r25,hi8(3000)
 729 0294 0E94 0000 		call delay
 730               	.L100:
 160:main.c        **** 	while(1)
 161:main.c        **** 	{
 162:main.c        **** 		test_lcd();		
 732               	.LM104:
 733 0298 0E94 0000 		call test_lcd
 734 029c FDCF      		rjmp .L100
 163:main.c        **** 		
 164:main.c        **** 	}
 165:main.c        **** 	return 0;
 166:main.c        **** }
 736               	.LM105:
 737               	/* epilogue: frame size=0 */
 738               	/* epilogue: noreturn */
 739               	/* epilogue end (size=0) */
 740               	/* function main size 18 (14) */
 742               	.Lscope7:
 744               		.text
 746               	Letext:
 747               	/* File "main.c": code  339 = 0x0153 ( 293), prologues  22, epilogues  24 */
DEFINED SYMBOLS
                            *ABS*:00000000 main.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:62     .text:00000000 delay
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:121    .text:00000020 beep
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:183    .text:00000042 send
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:294    .text:000000b6 lcd_send_bit
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:345    .text:000000dc lcd_send_data
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:484    .text:0000017e lcd_send_cmd
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:589    .text:000001f4 test_lcd
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:701    .text:0000027a main
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:746    .text:0000029e Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack

⌨️ 快捷键说明

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