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

📄 main.lst

📁 诺基亚3310手机液晶屏驱动程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 228:3310LCD.h     **** 最后修改日期      :2004-8-13 
 229:3310LCD.h     **** -----------------------------------------------------------------------*/
 230:3310LCD.h     **** void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,unsigned char *map,
 231:3310LCD.h     ****                   unsigned char Pix_x,unsigned char Pix_y)
 232:3310LCD.h     ****   {
 233:3310LCD.h     ****     unsigned int i,n;
 234:3310LCD.h     ****     unsigned char row;
 235:3310LCD.h     ****     
 236:3310LCD.h     ****     if (Pix_y%8==0) row=Pix_y/8;      //计算位图所占行数
 237:3310LCD.h     ****       else
 238:3310LCD.h     ****         row=Pix_y/8+1;
 239:3310LCD.h     ****     
 240:3310LCD.h     ****     for (n=0;n<row;n++)
 241:3310LCD.h     ****       {
 242:3310LCD.h     ****       	LCD_set_XY(X,Y);
 243:3310LCD.h     ****         for(i=0; i<Pix_x; i++)
 244:3310LCD.h     ****           {
 245:3310LCD.h     ****             LCD_write_byte(map[i+n*Pix_x], 1);
 246:3310LCD.h     ****           }
 247:3310LCD.h     ****         Y++;                         //换行
 248:3310LCD.h     ****       }      
 249:3310LCD.h     ****   }
 250:3310LCD.h     **** 
 251:3310LCD.h     **** /*-----------------------------------------------------------------------
 252:3310LCD.h     **** LCD_write_byte    : 使用SPI接口写数据到LCD
 253:3310LCD.h     **** 
 254:3310LCD.h     **** 输入参数:data    :写入的数据;
 255:3310LCD.h     ****           command :写数据/命令选择;
 256:3310LCD.h     **** 
 257:3310LCD.h     **** 编写日期          :2004-8-10 
 258:3310LCD.h     **** 最后修改日期      :2004-8-13 
 259:3310LCD.h     **** -----------------------------------------------------------------------*/
 260:3310LCD.h     **** void LCD_write_byte(unsigned char data, unsigned char command)
 261:3310LCD.h     ****   {
 286               	n	68,0,265,.LM18-LCD_write_byte
 287               	.LM18:
 288               		cbi 56-0x20,6
 289               		rjmp .L27
 262:3310LCD.h     ****     PORTB &= ~LCD_CE ;		        // 使能LCD
 290               	:
 292 006a C498      	.LM19:
 263:3310LCD.h     ****     
 264:3310LCD.h     ****     if (command == 0)
 293               	i 56-0x20,6
 294               	.L27:
 296 006e 01F4      	.LM20:
 265:3310LCD.h     ****       PORTB &= ~LCD_DC ;	        // 传送命令
 297               	 47-0x20,r24
 298               	.L28:
 300 0072 00C0      	.LM21:
 301               		sbis 46-0x20,7
 266:3310LCD.h     ****     else
 267:3310LCD.h     ****       PORTB |= LCD_DC ;		        // 传送数据
 302               	 .L28
 304 0074 C69A      	.LM22:
 305               		sbi 56-0x20,4
 268:3310LCD.h     **** 
 269:3310LCD.h     ****     SPDR = data;			// 传送数据到SPI寄存器
 306               	pilogue: frame size=0 */
 307               		ret
 308 0076 8FB9      	/* epilogue end (size=1) */
 309               	/* function LCD_write_byte size 11 (10) */
 270:3310LCD.h     **** 
 271:3310LCD.h     ****     while ((SPSR & 0x80) == 0);         // 等待数据传送完毕
 310               	ze	LCD_write_byte, .-LCD_write_byte
 311               	.Lscope7:
 272:3310LCD.h     **** 	
 273:3310LCD.h     ****     PORTB |= LCD_CE ;			// 关闭LCD
 314               	bal	LCD_write_char
 316 007c C49A      	LCD_write_char:
 318 007e 0895      	.LM23:
 319               	/* prologue: frame size=0 */
 320               		push r17
 321               		push r28
 322               		push r29
 323               	/* prologue end (size=3) */
 324               		subi r24,lo8(-(-32))
 325               		ldi r25,lo8(6)
 326               		mul r24,r25
 327               		movw r28,r0
 328               		clr r1
 329               		subi r28,lo8(-(font6x8))
 330               		sbci r29,hi8(-(font6x8))
 331 0080 1F93      		ldi r17,lo8(0)
 332 0082 CF93      	.L34:
 334               	.LM24:
 335 0086 8052      		ldi r22,lo8(1)
 336 0088 96E0      		ld r24,Y+
 337 008a 899F      		call LCD_write_byte
 339 008e 1124      	.LM25:
 340 0090 C050      		subi r17,lo8(-(1))
 341 0092 D040      		cpi r17,lo8(6)
 342 0094 10E0      		brne .L34
 343               	/* epilogue: frame size=0 */
 344               		pop r29
 345               		pop r28
 346 0096 61E0      		pop r17
 347 0098 8991      		ret
 348 009a 0E94 0000 	/* epilogue end (size=4) */
 349               	/* function LCD_write_char size 22 (15) */
 354               	.Lscope8:
 358 00aa 0895      	.global	LCD_set_XY
 360               	LCD_set_XY:
 362               	.LM26:
 363               	/* prologue: frame size=0 */
 364               		push r17
 365               	/* prologue end (size=1) */
 366               		mov r17,r24
 367               		mov r24,r22
 369               	.LM27:
 370               		ldi r22,lo8(0)
 371               		ori r24,lo8(64)
 372               		call LCD_write_byte
 374               	.LM28:
 375 00ac 1F93      		ldi r22,lo8(0)
 376               		mov r24,r17
 377 00ae 182F      		ori r24,lo8(-128)
 378 00b0 862F      		call LCD_write_byte
 379               	/* epilogue: frame size=0 */
 380               		pop r17
 381 00b2 60E0      		ret
 382 00b4 8064      	/* epilogue end (size=2) */
 383 00b6 0E94 0000 	/* function LCD_set_XY size 14 (11) */
 385               	.Lscope9:
 392 00c6 0895      	.global	LCD_draw_bmp_pixel
 394               	LCD_draw_bmp_pixel:
 396               	.LM29:
 397               	/* prologue: frame size=0 */
 398               		push r8
 399               		push r9
 400               		push r10
 401               		push r11
 402               		push r12
 403               		push r13
 404               		push r14
 405               		push r15
 406               		push r16
 407               		push r17
 408               		push r28
 409 00c8 8F92      		push r29
 410 00ca 9F92      	/* prologue end (size=12) */
 411 00cc AF92      		mov r8,r24
 412 00ce BF92      		mov r11,r22
 414 00d2 DF92      	.LM30:
 415 00d4 EF92      		mov r24,r16
 416 00d6 FF92      		clr r25
 417 00d8 0F93      		andi r24,lo8(7)
 418 00da 1F93      		andi r25,hi8(7)
 419 00dc CF93      		lsr r16
 420 00de DF93      		lsr r16
 421               		lsr r16
 422 00e0 882E      		or r24,r25
 423 00e2 B62E      		brne .L42
 425               	.LM31:
 426 00e4 802F      		mov r9,r16
 427 00e6 9927      		rjmp .L44
 428 00e8 8770      	.L42:
 430 00ec 0695      	.LM32:
 431 00ee 0695      		mov r9,r16
 432 00f0 0695      		inc r9
 433 00f2 892B      	.L44:
 435               	.LM33:
 436               		mov r12,r18
 437 00f6 902E      		clr r13
 438 00f8 00C0      		movw r16,r20
 439               		clr r10
 440               		rjmp .L45
 441               	.L46:
 443 00fc 9394      	.LM34:
 444               		mov r22,r11
 445               		mov r24,r8
 446               		call LCD_set_XY
 447 00fe C22E      		movw r14,r16
 448 0100 DD24      		ldi r28,lo8(0)
 449 0102 8A01      		ldi r29,hi8(0)
 450 0104 AA24      		rjmp .L47
 451 0106 00C0      	.L48:
 453               	.LM35:
 454               		ldi r22,lo8(1)
 455 0108 6B2D      		movw r30,r14
 456 010a 882D      		ld r24,Z+
 457 010c 0E94 0000 		movw r14,r30
 458 0110 7801      		call LCD_write_byte
 460 0114 D0E0      	.LM36:
 461 0116 00C0      		adiw r28,1
 462               	.L47:
 463               		cp r28,r12
 464               		cpc r29,r13
 465 0118 61E0      		brne .L48
 467 011c 8191      	.LM37:
 468 011e 7F01      		inc r11
 469 0120 0E94 0000 		inc r10
 470               		add r16,r12
 471               		adc r17,r13
 472 0124 2196      	.L45:
 474 0126 CC15      	.LM38:
 475 0128 DD05      		cp r10,r9
 476 012a 01F4      		brne .L46
 477               	/* epilogue: frame size=0 */
 478               		pop r29
 479 012c B394      		pop r28
 480 012e A394      		pop r17
 481 0130 0C0D      		pop r16
 482 0132 1D1D      		pop r15
 483               		pop r14
 484               		pop r13
 485               		pop r12
 486 0134 A914      		pop r11
 487 0136 01F4      		pop r10
 488               		pop r9
 489 0138 DF91      		pop r8
 490 013a CF91      		ret
 491 013c 1F91      	/* epilogue end (size=13) */
 492 013e 0F91      	/* function LCD_draw_bmp_pixel size 69 (44) */
 498 014a AF90      	.Lscope10:
 503               	.global	LCD_move_chinese_string
 505               	LCD_move_chinese_string:
 507               	.LM39:
 508               	/* prologue: frame size=168 */
 509               		push r9
 510               		push r10
 511               		push r11
 512               		push r12
 513               		push r13
 514               		push r14
 515               		push r15
 516               		push r16
 517               		push r17
 518               		push r28
 519               		push r29
 520 0152 9F92      		in r28,__SP_L__
 521 0154 AF92      		in r29,__SP_H__
 522 0156 BF92      		subi r28,lo8(168)
 523 0158 CF92      		sbci r29,hi8(168)
 524 015a DF92      		in __tmp_reg__,__SREG__
 525 015c EF92      		cli
 526 015e FF92      		out __SP_H__,r29
 527 0160 0F93      		out __SREG__,__tmp_reg__
 528 0162 1F93      		out __SP_L__,r28
 529 0164 CF93      	/* prologue end (size=20) */
 530 0166 DF93      		mov r9,r24
 531 0168 CDB7      		mov r12,r22
 532 016a DEB7      		movw r10,r20
 534 016e D040      	.LM40:
 535 0170 0FB6      		ldi r24,lo8(84)
 536 0172 F894      		movw r30,r28
 537 0174 DEBF      		subi r30,lo8(-(85))
 538 0176 0FBE      		sbci r31,hi8(-(85))
 539 0178 CDBF      		mov r18,r24
 540               		st Z+,__zero_reg__
 541 017a 982E      	        dec r18
 542 017c C62E      		brne .-6
 544               	.LM41:
 545               		movw r30,r28
 546 0180 84E5      		adiw r30,1
 547 0182 FE01      		st Z+,__zero_reg__
 548 0184 EB5A      	        dec r24
 549 0186 FF4F      		brne .-6
 550 0188 282F      		clr r13
 551 018a 1192      		clr r14
 552 018c 2A95      		clr r15
 553 018e 01F4      	.L53:
 555               	.LM42:
 556 0190 FE01      		mov r24,r14
 557 0192 3196      		ldi r22,lo8(12)
 558 0194 1192      		call __udivmodqi4
 559 0196 8A95      		clr r25
 560 0198 01F4      		ldi r18,lo8(24)
 561 019a DD24      		ldi r19,hi8(24)
 562 019c EE24      		mul r24,r18
 563 019e FF24      		movw r30,r0
 564               		mul r24,r19
 565               		add r31,r0
 566               		mul r25,r18
 567 01a0 8E2D      		add r31,r0
 568 01a2 6CE0      		clr r1
 569 01a4 0E94 0000 		subi r30,lo8(-(move_chinese_string))
 570 01a8 9927      		sbci r31,hi8(-(move_chinese_string))
 571 01aa 28E1      		add r30,r13
 572 01ac 30E0      		adc r31,__zero_reg__
 573 01ae 829F      		ld r24,Z
 575 01b2 839F      	.LM43:
 576 01b4 F00D      		ldd r25,Z+12
 578 01b8 F00D      	.LM44:
 579 01ba 1124      		inc r13
 581 01be F040      	.LM45:
 582 01c0 ED0D      		cp r13,r22
 583 01c2 F11D      		brne .L54
 584 01c4 8081      		clr r13
 585               	.L54:

⌨️ 快捷键说明

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