lcd.s

来自「用avr单片机接收GPS的数据的c语言程序」· S 代码 · 共 2,558 行 · 第 1/4 页

S
2,558
字号
	.dbline 347
;  	PORTC&=0xFC;
	in R24,0x15
	andi R24,252
	out 0x15,R24
	.dbline 348
;  	e_on;
	sbi 0x12,7
	.dbline 349
;  	NOP();
	nop
	.dbline 350
;  	NOP();
	nop
	.dbline 351
;  	NOP();
	nop
	.dbline 352
;  	lcd_wr_temp=(PINA&0XFC);
	in R20,0x19
	andi R20,252
	.dbline 353
; 	lcd_wr_temp|=(PINC&0x03);
	in R24,0x13
	andi R24,3
	or R20,R24
	.dbline 354
;  	e_off;
	cbi 0x12,7
	.dbline 355
;  	cs1_off;
	cbi 0x15,7
	xjmp L47
L46:
	.dbline 357
	.dbline 358
	cbi 0x12,7
	.dbline 359
	sbi 0x12,3
	.dbline 360
	cbi 0x12,4
	.dbline 361
	sbi 0x15,7
	.dbline 362
	in R24,0x1a
	andi R24,3
	out 0x1a,R24
	.dbline 363
	in R24,0x1b
	andi R24,3
	out 0x1b,R24
	.dbline 364
	in R24,0x14
	andi R24,252
	out 0x14,R24
	.dbline 365
	in R24,0x15
	andi R24,252
	out 0x15,R24
	.dbline 366
	sbi 0x12,7
	.dbline 367
	nop
	.dbline 368
	nop
	.dbline 369
	nop
	.dbline 370
	in R20,0x19
	andi R20,252
	.dbline 371
	in R24,0x13
	andi R24,3
	or R20,R24
	.dbline 372
	cbi 0x12,7
	.dbline 373
	cbi 0x15,7
	.dbline 374
L47:
	.dbline 356
;  	while(lcd_wr_temp&0x90)
	mov R24,R20
	andi R24,144
	brne L46
	.dbline 375
;  	{
;         e_off;					  				  //读lcd状态
; 	 	rw_on;
; 	 	di_off;
;  	 	cs1_on;
;  	 	DDRA&=0x03;
;  		PORTA&=0x03;
; 		DDRC&=0xFC;
;  		PORTC&=0xFC;
;  		e_on;
;  		NOP();
;  		NOP();
;  		NOP();
;  		lcd_wr_temp=(PINA&0XFC);
; 		lcd_wr_temp|=(PINC&0x03);
; 	 	e_off;
; 	 	cs1_off;
;     }
;  	e_off;										  //向lcd写数据
	cbi 0x12,7
	.dbline 376
;  	rw_off;
	cbi 0x12,3
	.dbline 377
;  	di_on;
	sbi 0x12,4
	.dbline 378
;  	cs1_on;
	sbi 0x15,7
	.dbline 379
;  	PORTA&=0x03;
	in R24,0x1b
	andi R24,3
	out 0x1b,R24
	.dbline 380
;  	PORTA|=(lcd_wr_buffer&0xFC);
	mov R24,R16
	andi R24,252
	in R2,0x1b
	or R2,R24
	out 0x1b,R2
	.dbline 381
; 	PORTC&=0xFC;
	in R24,0x15
	andi R24,252
	out 0x15,R24
	.dbline 382
;  	PORTC|=(lcd_wr_buffer&0x03); 
	mov R24,R16
	andi R24,3
	in R2,0x15
	or R2,R24
	out 0x15,R2
	.dbline 383
;  	DDRA|=0xFC;
	in R24,0x1a
	ori R24,252
	out 0x1a,R24
	.dbline 384
; 	DDRC|=0X03;
	in R24,0x14
	ori R24,3
	out 0x14,R24
	.dbline 385
;  	e_on;
	sbi 0x12,7
	.dbline 386
;  	NOP();
	nop
	.dbline 387
;  	NOP();
	nop
	.dbline 388
;  	NOP();
	nop
	.dbline 389
;  	NOP();
	nop
	.dbline 390
;  	e_off;
	cbi 0x12,7
	.dbline 391
;  	cs1_off;
	cbi 0x15,7
	.dbline 392
;  	NOP();
	nop
	.dbline 393
;  	NOP();	
	nop
	.dbline 394
;  	DDRA&=0x03;
	in R24,0x1a
	andi R24,3
	out 0x1a,R24
	.dbline 395
; 	DDRC&=0XFC;
	in R24,0x14
	andi R24,252
	out 0x14,R24
	.dbline -2
L45:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r lcd_wr_temp 20 c
	.dbsym r lcd_wr_buffer 16 c
	.dbend
	.dbfunc e lcd_wr2_ins _lcd_wr2_ins fV
;    lcd_wr_temp -> R20
;  lcd_wr_buffer -> R16
	.even
_lcd_wr2_ins::
	xcall push_gset1
	.dbline -1
	.dbline 400
; }
; 
; //写lcd的cs2命令寄存器函数
; void lcd_wr2_ins (unsigned char lcd_wr_buffer)
; {
	.dbline 402
;     unsigned char lcd_wr_temp;
;  	e_off;										  //读lcd状态
	cbi 0x12,7
	.dbline 403
;  	rw_on;
	sbi 0x12,3
	.dbline 404
;  	di_off;
	cbi 0x12,4
	.dbline 405
;  	cs2_on;
	cbi 0x15,7
	.dbline 406
;  	DDRA&=0x03;
	in R24,0x1a
	andi R24,3
	out 0x1a,R24
	.dbline 407
;  	PORTA&=0x03;
	in R24,0x1b
	andi R24,3
	out 0x1b,R24
	.dbline 408
; 	DDRC&=0xFC;
	in R24,0x14
	andi R24,252
	out 0x14,R24
	.dbline 409
;  	PORTC&=0xFC;
	in R24,0x15
	andi R24,252
	out 0x15,R24
	.dbline 410
;  	e_on;
	sbi 0x12,7
	.dbline 411
;  	NOP();
	nop
	.dbline 412
;  	NOP();
	nop
	.dbline 413
;  	NOP();
	nop
	.dbline 414
;  	lcd_wr_temp=(PINA&0XFC);
	in R20,0x19
	andi R20,252
	.dbline 415
; 	lcd_wr_temp|=(PINC&0x03);
	in R24,0x13
	andi R24,3
	or R20,R24
	.dbline 416
;  	e_off;
	cbi 0x12,7
	.dbline 417
;  	cs2_off;
	sbi 0x15,7
	xjmp L51
L50:
	.dbline 419
	.dbline 420
	cbi 0x12,7
	.dbline 421
	sbi 0x12,3
	.dbline 422
	cbi 0x12,4
	.dbline 423
	in R24,0x1a
	andi R24,3
	out 0x1a,R24
	.dbline 424
	in R24,0x1b
	andi R24,3
	out 0x1b,R24
	.dbline 425
	in R24,0x14
	andi R24,252
	out 0x14,R24
	.dbline 426
	in R24,0x15
	andi R24,252
	out 0x15,R24
	.dbline 427
	sbi 0x12,7
	.dbline 428
	nop
	.dbline 429
	nop
	.dbline 430
	nop
	.dbline 431
	in R20,0x19
	andi R20,252
	.dbline 432
	in R24,0x13
	andi R24,3
	or R20,R24
	.dbline 433
	cbi 0x12,7
	.dbline 434
	sbi 0x15,7
	.dbline 435
L51:
	.dbline 418
;  	while(lcd_wr_temp&0x90)
	mov R24,R20
	andi R24,144
	brne L50
	.dbline 436
;  	{
;         e_off;					  				  //读lcd状态
; 	 	rw_on;
; 	 	di_off;
;  	 	DDRA&=0x03;
;  		PORTA&=0x03;
; 		DDRC&=0xFC;
;  		PORTC&=0xFC;
;  		e_on;
;  		NOP();
;  		NOP();
;  		NOP();
;  		lcd_wr_temp=(PINA&0XFC);
; 		lcd_wr_temp|=(PINC&0x03);
; 	 	e_off;
; 	 	cs2_off;
;     }
;  	e_off;										  //写lcd命令
	cbi 0x12,7
	.dbline 437
;  	rw_off;
	cbi 0x12,3
	.dbline 438
;  	di_off;
	cbi 0x12,4
	.dbline 439
;  	cs2_on;
	cbi 0x15,7
	.dbline 440
;  	PORTA&=0x03;
	in R24,0x1b
	andi R24,3
	out 0x1b,R24
	.dbline 441
;  	PORTA|=(lcd_wr_buffer&0xFC);
	mov R24,R16
	andi R24,252
	in R2,0x1b
	or R2,R24
	out 0x1b,R2
	.dbline 442
; 	PORTC&=0xFC;
	in R24,0x15
	andi R24,252
	out 0x15,R24
	.dbline 443
;  	PORTC|=(lcd_wr_buffer&0x03); 
	mov R24,R16
	andi R24,3
	in R2,0x15
	or R2,R24
	out 0x15,R2
	.dbline 444
;  	DDRA|=0xFC;
	in R24,0x1a
	ori R24,252
	out 0x1a,R24
	.dbline 445
; 	DDRC|=0X03;
	in R24,0x14
	ori R24,3
	out 0x14,R24
	.dbline 446
;  	e_on;
	sbi 0x12,7
	.dbline 447
;  	NOP();
	nop
	.dbline 448
;  	NOP();
	nop
	.dbline 449
;  	NOP();
	nop
	.dbline 450
;  	NOP();
	nop
	.dbline 451
;  	e_off;
	cbi 0x12,7
	.dbline 452
;  	cs2_off;
	sbi 0x15,7
	.dbline 453
;  	NOP();
	nop
	.dbline 454
;  	NOP();	
	nop
	.dbline 455
;  	DDRA&=0x03;
	in R24,0x1a
	andi R24,3
	out 0x1a,R24
	.dbline 456
; 	DDRC&=0XFC;
	in R24,0x14
	andi R24,252
	out 0x14,R24
	.dbline -2
L49:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r lcd_wr_temp 20 c
	.dbsym r lcd_wr_buffer 16 c
	.dbend
	.dbfunc e lcd_wr2_data _lcd_wr2_data fV
;    lcd_wr_temp -> R20
;  lcd_wr_buffer -> R16
	.even
_lcd_wr2_data::
	xcall push_gset1
	.dbline -1
	.dbline 461
; }
; 
; //向lcd_cs2写数据函数
; void lcd_wr2_data (unsigned char lcd_wr_buffer)
; {
	.dbline 463
;     unsigned char lcd_wr_temp;
;  	e_off;										  //读lcd状态
	cbi 0x12,7
	.dbline 464
;  	rw_on;
	sbi 0x12,3
	.dbline 465
;  	di_off;
	cbi 0x12,4
	.dbline 466
;  	cs2_on;
	cbi 0x15,7
	.dbline 467
;  	DDRA&=0x03;
	in R24,0x1a
	andi R24,3
	out 0x1a,R24
	.dbline 468
;  	PORTA&=0x03;
	in R24,0x1b
	andi R24,3
	out 0x1b,R24
	.dbline 469
; 	DDRC&=0xFC;
	in R24,0x14
	andi R24,252
	out 0x14,R24
	.dbline 470
;  	PORTC&=0xFC;
	in R24,0x15
	andi R24,252
	out 0x15,R24
	.dbline 471
;  	e_on;
	sbi 0x12,7
	.dbline 472
;  	NOP();
	nop
	.dbline 473
;  	NOP();
	nop
	.dbline 474
;  	NOP();
	nop
	.dbline 475
;  	lcd_wr_temp=(PINA&0XFC);
	in R20,0x19
	andi R20,252
	.dbline 476
; 	lcd_wr_temp|=(PINC&0x03);
	in R24,0x13
	andi R24,3
	or R20,R24
	.dbline 477
;  	e_off;
	cbi 0x12,7
	.dbline 478
;  	cs2_off;
	sbi 0x15,7
	xjmp L55
L54:
	.dbline 480
	.dbline 481
	cbi 0x12,7
	.dbline 482
	sbi 0x12,3
	.dbline 483
	cbi 0x12,4
	.dbline 484
	cbi 0x15,7
	.dbline 485
	in R24,0x1a
	andi R24,3
	out 0x1a,R24
	.dbline 486
	in R24,0x1b
	andi R24,3
	out 0x1b,R24
	.dbline 487
	in R24,0x14
	andi R24,252
	out 0x14,R24
	.dbline 488
	in R24,0x15
	andi R24,252
	out 0x15,R24
	.dbline 489
	sbi 0x12,7
	.dbline 490
	nop
	.dbline 491
	nop
	.dbline 492
	nop
	.dbline 493
	in R20,0x19
	andi R20,252
	.dbline 494
	in R24,0x13
	andi R24,3
	or R20,R24
	.dbline 495
	cbi 0x12,7
	.dbline 496
	sbi 0x15,7
	.dbline 497
L55:
	.dbline 479
;  	while(lcd_wr_temp&0x90)
	mov R24,R20
	andi R24,144
	brne L54
	.dbline 498
;  	{
;         e_off;					  				  //读lcd状态
; 	 	rw_on;
; 	 	di_off;
;  	 	cs2_on;
;  	 	DDRA&=0x03;
;  		PORTA&=0x03;
; 		DDRC&=0xFC;
;  		PORTC&=0xFC;
;  		e_on;
;  		NOP();
;  		NOP();
;  		NOP();
;  		lcd_wr_temp=(PINA&0XFC);
; 		lcd_wr_temp|=(PINC&0x03);
; 	 	e_off;
; 	 	cs2_off;
;     }
;  	e_off;										  //向lcd写数据
	cbi 0x12,7
	.dbline 499
;  	rw_off;
	cbi 0x12,3
	.dbline 500
;  	di_on;
	sbi 0x12,4
	.dbline 501
;  	cs2_on;
	cbi 0x15,7
	.dbline 502
;  	PORTA&=0x03;
	in R24,0x1b
	andi R24,3
	out 0x1b,R24
	.dbline 503
;  	PORTA|=(lcd_wr_buffer&0xFC);
	mov R24,R16
	andi R24,252
	in R2,0x1b
	or R2,R24
	out 0x1b,R2
	.dbline 504
; 	PORTC&=0xFC;
	in R24,0x15
	andi R24,252
	out 0x15,R24
	.dbline 505
;  	PORTC|=(lcd_wr_buffer&0x03); 
	mov R24,R16
	andi R24,3
	in R2,0x15
	or R2,R24
	out 0x15,R2
	.dbline 506
;  	DDRA|=0xFC;
	in R24,0x1a
	ori R24,252
	out 0x1a,R24
	.dbline 507
; 	DDRC|=0X03;
	in R24,0x14
	ori R24,3
	out 0x14,R24
	.dbline 508
;  	e_on;
	sbi 0x12,7
	.dbline 509
;  	NOP();
	nop
	.dbline 510
;  	NOP();
	nop
	.dbline 511
;  	NOP();
	nop
	.dbline 512
;  	NOP();
	nop
	.dbline 513
;  	e_off;
	cbi 0x12,7
	.dbline 514
;  	cs2_off;
	sbi 0x15,7
	.dbline 515
;  	NOP();
	nop

⌨️ 快捷键说明

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