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

📄 main.s

📁 LCD彩显驱动 nokia 6100 LCD
💻 S
📖 第 1 页 / 共 5 页
字号:
	rjmp L185
X13:
	.dbline 311
	.dbline 312
; 	glcdn_WriteData(0x0B);
	movw R30,R28
	ldd R2,z+3
	ldd R3,z+4
	ldd R4,z+5
	ldd R5,z+6
	movw R30,R28
	ldd R6,z+11
	ldd R7,z+12
	ldd R8,z+13
	ldd R9,z+14
	sub R6,R2
	sbc R7,R3
	sbc R8,R4
	sbc R9,R5
	movw R30,R28
	std z+11,R6
	std z+12,R7
	std z+13,R8
	std z+14,R9
	.dbline 313
; 	glcdn_WriteData(0x0D);
	ldd R2,y+20
	ldd R3,y+21
	clr R4
	sbrc R3,7
	com R4
	clr R5
	sbrc R4,7
	com R5
	movw R30,R28
	ldd R6,z+3
	ldd R7,z+4
	ldd R8,z+5
	ldd R9,z+6
	sub R6,R2
	sbc R7,R3
	sbc R8,R4
	sbc R9,R5
	movw R30,R28
	std z+3,R6
	std z+4,R7
	std z+5,R8
	std z+6,R9
	.dbline 314
; 	glcdn_WriteData(0x0F);
	movw R24,R12
	adiw R24,1
	movw R12,R24
	.dbline 315
; 
	movw R24,R10
	sbiw R24,1
	movw R10,R24
	.dbline 316
; 	glcdn_WriteData(0x00);
	clr R0
	inc R0
	std y+19,R0
	.dbline 317
; 	glcdn_WriteData(0x04);
L185:
	.dbline 318
	ldd R24,y+17
	ldd R25,y+18
	sbiw R24,1
	std y+18,R25
	std y+17,R24
	.dbline 319
	movw R24,R14
	adiw R24,1
	movw R14,R24
	.dbline 320
L181:
	.dbline 303
	movw R30,R28
	ldd R2,z+3
	ldd R3,z+4
	ldd R4,z+5
	ldd R5,z+6
	movw R30,R28
	ldd R6,z+7
	ldd R7,z+8
	ldd R8,z+9
	ldd R9,z+10
	cp R2,R6
	cpc R3,R7
	cpc R4,R8
	cpc R5,R9
	brlt X14
	rjmp L180
X14:
	.dbline -2
	.dbline 321
; 	glcdn_WriteData(0x0B);
; 	glcdn_WriteData(0x0F);
; 	
; glcdn_ClearLcd();
L158:
	adiw R28,22
	rcall pop_gset5
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym l bb 15 I
	.dbsym l aa 20 I
	.dbsym l fill 19 c
	.dbsym r xe 14 I
	.dbsym l xs 17 I
	.dbsym r ye 10 I
	.dbsym l er 11 L
	.dbsym r ys 12 I
	.dbsym l ir 7 L
	.dbsym l cr 3 L
	.dbsym l b 38 c
	.dbsym r a 10 c
	.dbsym l y 34 c
	.dbsym l x 32 c
	.dbend
	.dbfunc e RoundRect _RoundRect fV
;            zy1 -> <dead>
;             rs -> R20
;            zx1 -> R22
;             Oy -> y+5
;             Ox -> y+4
;             xt -> R12
;             rr -> R14
;             xx -> R10,R11
;             yt -> y+3
;              r -> y+24
;              h -> y+22
;              w -> y+20
;              y -> y+18
;              x -> y+16
	.even
_RoundRect::
	rcall push_arg4
	rcall push_gset5
	sbiw R28,6
	.dbline -1
	.dbline 324
; 
; 
; }
	.dbline 330
; 
; void glcdn_InitDisplay(void)
; {int i;
; 	glcdn_Delay(20000);
;     PORTB=0x00;
; 	GLCD_SER_DDR = 0xff;
	lds R2,_cbk
	lds R3,_cbk+1
	sbrs R3,7
	rjmp L188
	.dbline 331
; 	PORTD=0x00;
	.dbline 331
	movw R16,R2
	rcall _RGBToChar
	.dbline 333
; 	DDRD=0xff;
; 	//csl;//sbi(GLCD_CTRL_PORT, GLCD_CE_);
	ldd R2,y+16
	ldd R0,y+24
	add R2,R0
	std y+4,R2
	.dbline 333
	ldd R2,y+18
	ldd R0,y+24
	add R2,R0
	std y+5,R2
	.dbline 334
; 	
	ldd R0,y+24
	std y+3,R0
	.dbline 335
; 	/*
	ldd R0,y+24
	mov R16,R0
	mul R0,R16
	mov R24,R0
	subi R24,255    ; addi 1
	mov R14,R24
	.dbline 336
; 	resth;
	ldd R2,y+3
	lsr R2
	ldd R20,y+3
	add R20,R2
	lsr R20
	.dbline 338
; 	glcdn_Delay(50);
; 	restl;
	clr R12
	rjmp L193
L190:
	.dbline 339
; 	glcdn_Delay(100);
	.dbline 340
; 	resth;//sbi(GLCD_CTRL_PORT, GLCD_RES_);
	mul R12,R12
	movw R10,R0
	rjmp L195
L194:
	.dbline 341
	ldd R0,y+3
	dec R0
	std y+3,R0
L195:
	.dbline 341
	mov R2,R14
	clr R3
	sub R2,R10
	sbc R3,R11
	ldd R0,y+3
	mov R16,R0
	mul R0,R16
	cp R2,R0
	cpc R3,R1
	brlt L194
	.dbline 343
	ldd R2,y+4
	add R2,R12
	ldd R0,y+20
	add R2,R0
	ldi R24,2
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zx,R2
	.dbline 344
	mov R22,R2
	.dbline 345
	ldd R2,y+5
	sub R2,R16
	sts _zy,R2
	.dbline 349
	ldd R2,y+4
	sub R2,R12
	sts _zx,R2
	.dbline 352
	.dbline 353
	lds R2,_zy
	std y+2,R2
	lds R24,_zx
	subi R24,255    ; addi 1
	std y+0,R24
	mov R18,R2
	mov R16,R22
	subi R16,1
	rcall _glcdFillRect
	.dbline 354
	.dbline 356
	lds R22,_zx
	.dbline 358
	ldd R2,y+5
	ldd R0,y+3
	add R2,R0
	ldd R0,y+22
	add R2,R0
	ldi R24,2
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zy,R2
	.dbline 361
	ldd R2,y+4
	add R2,R12
	ldd R0,y+20
	add R2,R0
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zx,R2
	.dbline 362
	.dbline 363
	lds R2,_zy
	std y+2,R2
	lds R24,_zx
	subi R24,1
	std y+0,R24
	mov R18,R2
	mov R16,R22
	subi R16,255    ; addi 1
	rcall _glcdFillRect
	.dbline 364
	.dbline 366
	ldd R2,y+4
	ldd R0,y+3
	add R2,R0
	ldd R0,y+20
	add R2,R0
	ldi R24,2
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zx,R2
	.dbline 367
	ldd R2,y+5
	sub R2,R12
	sts _zy,R2
	.dbline 370
	lds R22,_zx
	.dbline 372
	ldd R2,y+4
	ldd R0,y+3
	sub R2,R0
	sts _zx,R2
	.dbline 376
	lds R2,_zy
	std y+2,R2
	lds R24,_zx
	subi R24,255    ; addi 1
	std y+0,R24
	mov R18,R2
	mov R16,R22
	subi R16,1
	rcall _glcdFillRect
	.dbline 379
	lds R22,_zx
	.dbline 380
	ldd R2,y+5
	add R2,R12
	ldd R0,y+22
	add R2,R0
	ldi R24,2
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zy,R2
	.dbline 383
	ldd R2,y+4
	ldd R0,y+3
	add R2,R0
	ldd R0,y+20
	add R2,R0
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zx,R2
	.dbline 386
	lds R2,_zy
	std y+2,R2
	lds R24,_zx
	subi R24,1
	std y+0,R24
	mov R18,R2
	mov R16,R22
	subi R16,255    ; addi 1
	rcall _glcdFillRect
	.dbline 388
L191:
	.dbline 338
	inc R12
L193:
	.dbline 338
	cp R20,R12
	brlo X15
	rjmp L190
X15:
	.dbline 392
; 	csl;
; 	glcdn_Delay(50000);
; 	sclkh;//sbi(GLCD_SER_PORT, GLCD_SCLK);
; 	sdatah;//sbi(GLCD_SER_PORT, GLCD_MOSI);
; 	csh;//sbi(GLCD_CTRL_PORT, GLCD_CE_);
; */
;     csh;
; 	NOP();
; 	csl;//sbi(GLCD_CTRL_PORT, GLCD_CE_);
; 	restl;
; 	glcdn_Delay(60000);
; 	resth;//sbi(GLCD_CTRL_PORT, GLCD_RES_);
; 	glcdn_Delay(60000);
; 	sclkh;//sbi(GLCD_SER_PORT, GLCD_SCLK);
; 	sdatah;//sbi(GLCD_SER_PORT, GLCD_MOSI);
; 	csh;
; 	//NOP();
; 	//csl;//sbi(GLCD_CTRL_PORT, GLCD_CE_);
; 
; 
; 	//SPCR = (1<<CPHA) | (0x01 << SPE) | (0x01 << MSTR) | (0x01 << CPOL);
; 	//SPSR = (1<<SPI2X);
; 
; 	/*
; while(1)
; {
; 	glcdn_WriteCommand(GLCD_SWRESET);
; 	glcdn_WriteCommand(GLCD_SLEEPOUT);
; 	glcdn_WriteCommand(GLCD_DISPLAYON);
; 	glcdn_WriteCommand(GLCD_BSTRON);
; 
; 	while(!(SPSR & 0x80));
; 	glcdn_Delay(8);
;  }*/
;  	//glcdn_WriteCommand(0xAE);
; 	//glcdn_WriteCommand(GLCD_SWRESET);
; 	glcdn_WriteCommand(0x94);
; 	
; 	glcdn_WriteCommand(0xAF);
; 	glcdn_WriteCommand(0xA6);
; 	glcdn_WriteCommand(0xBB);
; 	glcdn_WriteCommand(0xBC);
; 	
; 	glcdn_WriteCommand(0xCA);
; 	glcdn_WriteData(0xFF);
; 	glcdn_WriteData(0xFF);
; 	glcdn_WriteData(0xFF);
; 	glcdn_WriteData(0xFF);
; 	//glcdn_WriteCommand(0x12);
; 	//glcdn_WriteCommand(GLCD_BSTRON);
; 	glcdn_Delay(50000);
; 
	ldd R24,y+18
	ldd R0,y+22
	add R24,R0
	ldd R0,y+24
	sub R24,R0
	subi R24,1
	std y+2,R24
	ldd R24,y+16
	ldd R0,y+20
	add R24,R0
	subi R24,1
	std y+0,R24
	ldd R18,y+18
	ldd R0,y+24
	add R18,R0
	subi R18,255    ; addi 1
	ldd R16,y+16
	subi R16,255    ; addi 1
	rcall _glcdFillRect
	.dbline 395
; 	//glcdn_WriteCommand(0xBC);
; 	glcdn_WriteData(GLCD_8BITCOLOR);
; 	
L188:
	.dbline 398
; 	glcdn_WriteCommand(0xBC);
; 	glcdn_WriteData(0x00);
; 	glcdn_WriteData(0x02);
	lds R2,_cfg
	lds R3,_cfg+1
	sbrs R3,7
	rjmp L197
	.dbline 399
; 	glcdn_WriteData(0x04);
	.dbline 400
; 	glcdn_WriteData(0x06);
	movw R16,R2
	rcall _RGBToChar
	.dbline 401
; 	glcdn_WriteData(0x09);
	ldd R0,y+18
	std y+2,R0
	ldd R2,y+16
	ldd R0,y+20
	add R2,R0
	ldd R0,y+24
	sub R2,R0
	std y+0,R2
	ldd R18,y+18
	ldd R16,y+16
	add R16,R0
	rcall _glcdLine
	.dbline 402
; 	glcdn_WriteData(0x0B);
	ldd R2,y+18
	ldd R0,y+22
	add R2,R0
	ldd R0,y+24
	sub R2,R0
	std y+2,R2
	ldd R0,y+16
	std y+0,R0
	ldd R18,y+18
	ldd R0,y+24
	add R18,R0
	ldd R16,y+16
	rcall _glcdLine
	.dbline 403
; 	glcdn_WriteData(0x0D);
	ldd R2,y+18
	ldd R0,y+22
	add R2,R0
	ldd R0,y+24
	sub R2,R0
	std y+2,R2
	ldd R2,y+16
	ldd R0,y+20
	add R2,R0
	std y+0,R2
	ldd R18,y+18
	ldd R0,y+24
	add R18,R0
	mov R16,R2
	rcall _glcdLine
	.dbline 404
; 	glcdn_WriteData(0x0F);
	ldd R2,y+18
	ldd R0,y+22
	add R2,R0
	std y+2,R2
	ldd R4,y+16
	ldd R0,y+20
	add R4,R0
	ldd R0,y+24
	sub R4,R0
	std y+0,R4
	mov R18,R2
	ldd R16,y+16
	add R16,R0
	rcall _glcdLine
	.dbline 407
; 
; 	glcdn_WriteData(0x00);
; 	glcdn_WriteData(0x02);
	ldd R2,y+16
	ldd R0,y+24
	add R2,R0
	std y+4,R2
	.dbline 407
	ldd R2,y+18
	ldd R0,y+24
	add R2,R0
	std y+5,R2
	.dbline 408
; 	glcdn_WriteData(0x04);
	ldd R0,y+24
	std y+3,R0
	.dbline 409
; 	glcdn_WriteData(0x06);
	ldd R0,y+24
	mov R16,R0
	mul R0,R16
	mov R24,R0
	subi R24,255    ; addi 1
	mov R14,R24
	.dbline 410
; 	glcdn_WriteData(0x09);
	ldd R2,y+3
	lsr R2
	ldd R20,y+3
	add R20,R2
	lsr R20
	.dbline 412
; 	glcdn_WriteData(0x0B);
; 	glcdn_WriteData(0x0D);
	clr R12
	rjmp L202
L199:
	.dbline 413
; 	glcdn_WriteData(0x0F);
	.dbline 414
; 
	mul R12,R12
	movw R10,R0
	rjmp L204
L203:
	.dbline 415
	ldd R0,y+3
	dec R0
	std y+3,R0
L204:
	.dbline 415
	mov R2,R14
	clr R3
	sub R2,R10
	sbc R3,R11
	ldd R0,y+3
	mov R16,R0
	mul R0,R16
	cp R2,R0
	cpc R3,R1
	brlt L203
	.dbline 417
	ldd R2,y+4
	add R2,R12
	ldd R0,y+20
	add R2,R0
	ldi R24,2
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zx,R2
	.dbline 418
	ldd R2,y+5
	sub R2,R16
	sts _zy,R2
	.dbline 419
	rcall _point2
	.dbline 422
	ldd R2,y+4
	sub R2,R12
	sts _zx,R2
	.dbline 423
	rcall _point2
	.dbline 425
	ldd R2,y+5
	ldd R0,y+3
	add R2,R0
	ldd R0,y+22
	add R2,R0
	ldi R24,2
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zy,R2
	.dbline 426
	rcall _point2
	.dbline 428
	ldd R2,y+4
	add R2,R12
	ldd R0,y+20
	add R2,R0
	ldi R24,2
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zx,R2
	.dbline 429
	rcall _point2
	.dbline 432
	ldd R2,y+4
	ldd R0,y+3
	add R2,R0
	ldd R0,y+20
	add R2,R0
	ldi R24,2
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zx,R2
	.dbline 433
	ldd R2,y+5
	sub R2,R12
	sts _zy,R2
	.dbline 434
	rcall _point2
	.dbline 437
	ldd R2,y+4
	ldd R0,y+3
	sub R2,R0
	sts _zx,R2
	.dbline 438
	rcall _point2
	.dbline 440
	ldd R2,y+5
	add R2,R12
	ldd R0,y+22
	add R2,R0
	ldi R24,2
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zy,R2
	.dbline 441
	rcall _point2
	.dbline 443
	ldd R2,y+4
	ldd R0,y+3
	add R2,R0
	ldd R0,y+20
	add R2,R0
	ldi R24,2
	ldd R0,y+24
	mul R24,R0
	sub R2,R0
	sts _zx,R2
	.dbline 444
	rcall _point2
	.dbline 446
L200:
	.dbline 412
	inc R12
L202:
	.dbline 412
	cp R20,R12
	brlo X16
	rjmp L199
X16:
	.dbline 447
L197:
	.dbline -2
	.dbline 448
; 	glcdn_WriteData(0x00);
; 	glcdn_WriteData(0x04);
; 	glcdn_WriteData(0x0B);
; 	glcdn_WriteData(0x0F);
; 
; 	//glcdn_WriteCommand(MEM_ACCESS_CTRL);
; 	//memAccessCtrl = (0x01 << MIRROR_X) | (0x01 << RGB);
; 	//glcdn_WriteData(memAccessCtrl);
; 	
; 	    glcdn_WriteCommand(MEM_ACCESS_CTRL);
;     memAccessCtrl = (1 << MEM_MX) | (0 << MEM_MY) | (1 << MEM_RGB) | (0 << MEM_VW) | (0 << MEM_LAO);
;     glcdn_WriteData(memAccessCtrl);
; 	glcdn_ClearLcd();
; 	
; 	//glcdn_WriteCommand(GLCD_DISPLAYON);
; }
; 
; void glcdn_SetPageArea(char x1, char x2, char y1, char y2)
; {
; 	glcdn_WriteCommand(ADDRX);
; 	glcdn_WriteData(x1+1);
; 	glcdn_WriteData(x2+1);
; 	glcdn_WriteCommand(ADDRY);
; 	glcdn_WriteData(y1+1);
; 	glcdn_WriteData(y2+1);
; }
; 
; void glcdn_ClearLcd(void)
; {unsigned long i;
; unsigned char r=0,g=0,b=0;
; 
; 	//glcdn_WriteCommand(GLCD_MADCTL);
; 	//glcdn_WriteData((1 << GLCD_MX) | (1 << RGB));
; 
L187:
	adiw R28,6
	rcall pop_gset5
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym l zy1 4 c
	.dbsym r rs 20 c
	.dbsym r zx1 22 c
	.dbsym l Oy 5 c
	.dbsym l Ox 4 c
	.dbsym r xt 12 c
	.dbsym r rr 14 c
	.dbsym r xx 10 I
	.dbsym l yt 3 c
	.dbsym l r 24 c
	.dbsym l h 22 c
	.dbsym l w 20 c
	.dbsym l y 18 c
	.dbsym l x 16 c
	.dbend
	.dbfile E:\电子\ICCAVR\6610ME~1\MAIN.C
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 24
	.dbline 25
	clr R2
	out 0x18,R2
	.dbline 26
	ldi R24,255
	out 0x17,R24
	.dbline 27
	ldi R24,127
	out 0x15,R24
	.dbline 28
	out 0x14,R2
	.dbline 29
	out 0x12,R2
	.dbline 30
	ldi R24,255
	out 0x11,R24
	.dbline -2
	.dbline 31
L206:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 35
	.dbline 37
	cli
	.dbline 38
	rcall _port_init
	.dbline 40
	clr R2
	out 0x35,R2
	.dbline 41
	out 0x3b,R2
	.dbline 42
	out 0x39,R2
	.dbline -2
	.dbline 45
L207:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e glcdn_Delay _glcdn_Delay fV
;              d -> y+0
;             ld -> y+8
	.even
_glcdn_Delay::
	rcall push_arg4
	rcall push_gset2
	sbiw R28,4
	.dbline -1
	.dbline 48
	.dbline 50
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	std z+0,R20
	std z+1,R21
	std z+2,R22
	std z+3,R23
	rjmp L212
L209:
	.dbline 51
	.dbline 52
	nop
	.dbline 53
	nop
	.dbline 54
	nop
	.dbline 55
	nop
	.dbline 56
	nop
	.dbline 57
	nop
	.dbline 59
L210:
	.dbline 50
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
L212:
	.dbline 50
	movw R30,R28
	ldd R2,z+8
	ldd R3,z+9
	ldd R4,z+10
	ldd R5,z+11
	movw R30,R28
	ldd R6,z+0
	ldd R7,z+1
	ldd R8,z+2
	ldd R9,z+3
	cp R6,R2
	cpc R7,R3
	cpc R8,R4
	cpc R9,R5
	brge X17
	rjmp L209
X17:
	.dbline -2
	.dbline 60
L208:
	adiw R28,4
	rcall pop_gset2
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym l d 0 L
	.dbsym l ld 8 L
	.dbend
	.dbfunc e main _main fV
	.even
_main::
	sbiw R28,5
	.dbline -1

⌨️ 快捷键说明

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