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 + -
显示快捷键?