📄 test.s
字号:
.module Test.c
.area text(rom, con, rel)
; us -> R16
.even
_delay_us::
L2:
L3:
; #include "LCM_240128.h"
; #include <iom16v.h>
; //#include <util/delay.h> //头文件
; //#include <avr/pgmspace.h> //空间分配定义头文件
; /*
; const unsigned char testbmp[]={
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,
; 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,
; 0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x01,0x81,
; 0x80,0x00,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x03,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x00,0x00,0x80,0x00,0x00,
; 0x00,0xF1,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
; 0xE0,0x00,0x00,0xFF,0x80,0x00,0x00,0x20,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x01,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xA0,0x00,
; 0x00,0x00,0x00,0x00,0x18,0x04,0x00,0x00,0x00,0xFF,0xF0,0x00,0x00,0x03,0x00,0x00,
; 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x60,0x00,0x00,0x06,
; 0x00,0x00,0x7F,0x85,0xC0,0x00,0x00,0xE0,0x20,0x00,0x00,0x06,0x00,0x00,0x01,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x0C,0x40,0x00,0x00,0x02,0x00,0x00,
; 0x0A,0x07,0x40,0x00,0x00,0x80,0x40,0x00,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x13,0xC0,0x00,0x00,0x03,0xE0,0x00,0x0C,0x02,
; 0xC0,0x00,0x00,0xC3,0xC0,0x00,0x00,0x08,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x0C,0x11,0x80,0x00,0x00,0x07,0x00,0x00,0x0C,0x03,0x80,0x00,
; 0x00,0xC3,0xC0,0x00,0x00,0x18,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x02,0x21,0xE0,0x00,0x00,0x3B,0x00,0x00,0x0C,0x03,0xC0,0x00,0x00,0xCF,
; 0x00,0x00,0x00,0x1C,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x02,0x21,0x10,0x00,0x03,0xC3,0x00,0x00,0x0C,0x06,0x03,0xC0,0x00,0xFA,0x18,0x00,
; 0x00,0x04,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x22,
; 0x0C,0x00,0x02,0x03,0x00,0x00,0x0C,0x00,0x1C,0x60,0x00,0xFE,0x30,0x00,0x00,0x02,
; 0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x42,0x02,0x00,
; 0x00,0x03,0x00,0x00,0x1C,0x80,0xE0,0x20,0x00,0x12,0x60,0x00,0x00,0x02,0x00,0x00,
; 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x44,0x01,0x80,0x00,0x02,
; 0x00,0x00,0x1C,0xC3,0x80,0x60,0x00,0x32,0xC0,0x00,0x00,0x02,0x00,0x00,0x04,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x8C,0x00,0x60,0x00,0x02,0x00,0x00,
; 0x1C,0x5D,0x60,0x60,0x00,0x3B,0x80,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x88,0x00,0x00,0x00,0x02,0x00,0x00,0x1C,0x61,
; 0xF0,0x40,0x00,0x4B,0x00,0x00,0x00,0x02,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x03,0x17,0x00,0x00,0x00,0x02,0x00,0x00,0x28,0x61,0xA0,0x40,
; 0x00,0x8F,0x00,0x00,0x00,0x02,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x05,0x00,0xE0,0x00,0x00,0x02,0x00,0x00,0x28,0x20,0xF8,0x40,0x01,0x06,
; 0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x07,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x28,0x31,0xC0,0x40,0x02,0x06,0x00,0x00,
; 0x00,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,
; 0x00,0x00,0x00,0x02,0x00,0x00,0x28,0x10,0xC0,0x80,0x04,0x02,0x00,0x00,0x00,0xC2,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
; 0x00,0x02,0x00,0x00,0x38,0x18,0x08,0x80,0x18,0x01,0x00,0x00,0x00,0x62,0x00,0x00,
; 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x03,0xF0,0x00,0x00,0x02,
; 0x00,0x00,0x18,0x00,0x04,0x80,0x60,0x00,0x80,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,
; 0x18,0x00,0x03,0x80,0x00,0x00,0x40,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x08,0x00,
; 0x03,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,
; 0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x08,
; 0x01,0x30,0x00,0x02,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0xFE,0x00,0x00,0x08,0x00,0x08,
; 0x00,0x03,0x00,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x02,0x7F,0xC0,0x00,0x00,0x00,0x07,0xE8,0x00,0x00,0x09,0x80,0x04,0x00,0x01,
; 0x01,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
; 0x80,0x80,0x00,0x00,0x00,0x00,0x98,0x00,0x00,0x0B,0x86,0x00,0x00,0x00,0x8F,0x00,
; 0x00,0x04,0xC3,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x06,0x00,0x00,0x01,0x81,0x00,
; 0x00,0x00,0x00,0x00,0x90,0x00,0x00,0x0D,0x07,0xF0,0x00,0x00,0xFE,0x00,0x00,0x08,
; 0x43,0x1C,0x00,0x00,0x60,0x00,0x00,0x3F,0xFC,0x00,0x00,0x00,0x83,0x00,0x00,0x00,
; 0x00,0x00,0xE0,0x00,0x00,0x19,0x06,0x60,0x00,0x00,0x84,0x00,0x00,0x10,0x43,0xF0,
mov R24,R16
subi R24,1
mov R16,R24
tst R24
brne L2
L1:
.dbline 0 ; func end
ret
; Status -> R16
.even
_Lcd_RW_Check::
; 0x00,0x00,0x60,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xCC,0x00,0x00,0x00,0x00,0x00,
; 0xCF,0xE0,0x00,0x1A,0x07,0x80,0x00,0x00,0x44,0x00,0x00,0x10,0xFE,0x00,0x00,0x03,
; 0xFF,0xE0,0x00,0x00,0x40,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x03,0xF8,0x00,
; 0x00,0x12,0x1E,0x00,0x00,0x00,0x7C,0x00,0x00,0x20,0x22,0x00,0x00,0xCC,0x20,0x60,
; 0x00,0x00,0xC0,0x00,0x00,0x00,0x68,0x20,0x00,0x00,0x07,0xFC,0x00,0x00,0x00,0x82,
; 0xE4,0x00,0x00,0x00,0xE0,0x00,0x00,0xE0,0x22,0x00,0x00,0x68,0x20,0x60,0x00,0x00,
; 0x80,0x00,0x00,0x00,0x88,0xC0,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0xF2,0x04,0x00,
clr R2
out 0x14,R2
L6:
; 0x00,0x00,0x01,0x80,0x01,0xE0,0x22,0x00,0x00,0x20,0x20,0x40,0x00,0x01,0x80,0x00,
; 0x00,0x01,0x8B,0x00,0x00,0x00,0x00,0x06,0x3F,0x00,0x00,0x02,0x0C,0x00,0x00,0x01,
; 0x9F,0x00,0x02,0xA0,0x14,0x0C,0x00,0x30,0x38,0x40,0x00,0x01,0xC0,0x00,0x00,0x03,
sbi 0x17,3
sbi 0x18,3
; 0x0E,0x00,0x00,0x00,0x00,0x03,0xC1,0x00,0x00,0x0E,0x1B,0x00,0x00,0x01,0xF8,0x60,
sbi 0x17,2
cbi 0x18,2
; 0x03,0x10,0x19,0xF8,0x00,0x13,0xE8,0xC0,0x00,0x01,0x40,0x00,0x00,0x03,0x0C,0x00,
sbi 0x17,1
cbi 0x18,1
; 0x00,0x00,0x00,0x02,0x8F,0x00,0x00,0x34,0x30,0x80,0x00,0x1F,0x10,0xC0,0x00,0x10,
in R16,0x13
; 0x3E,0x00,0x00,0x0A,0x20,0x80,0x00,0x01,0x5F,0x80,0x00,0x02,0x98,0x00,0x00,0x00,
sbi 0x17,1
sbi 0x18,1
; 0x00,0x03,0x72,0x00,0x00,0xE4,0x20,0x40,0x00,0x33,0x13,0x00,0x00,0x11,0xF0,0x00,
sbi 0x17,2
sbi 0x18,2
; 0x00,0x0C,0x27,0x80,0x00,0x02,0x60,0x70,0x00,0x04,0x58,0x00,0x00,0x00,0x00,0x01,
andi R16,3
; 0x46,0x00,0x00,0x04,0x00,0x20,0x00,0x03,0x14,0x00,0x00,0x13,0x00,0x00,0x00,0x04,
L7:
; 0x7D,0x00,0x00,0x06,0x60,0x10,0x00,0x08,0x78,0x00,0x00,0x00,0x00,0x01,0x0C,0x00,
cpi R16,3
brne L6
L5:
.dbline 0 ; func end
ret
; dat -> R20
.even
_Lcd_SendDat::
xcall push_gset1
mov R20,R16
; 0x00,0x08,0x00,0x10,0x00,0x06,0x98,0x00,0x00,0x10,0x00,0x00,0x00,0x06,0xFA,0x00,
; 0x00,0x04,0x60,0x00,0x00,0x08,0x30,0x00,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,0x28,
; 0x00,0x00,0x00,0x04,0x58,0x00,0x00,0x10,0x00,0x20,0x00,0x03,0xEA,0x00,0x00,0x08,
; 0x60,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00,0x01,0xD8,0x00,0x00,0x28,0x00,0x00,
; 0x00,0x08,0x38,0x00,0x00,0x10,0x60,0x20,0x00,0x02,0x24,0x00,0x00,0x08,0x60,0x00,
; 0x00,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0xB8,0x08,0x00,0x18,0x18,0x1C,0x00,0x18,
xcall _Lcd_RW_Check
; 0x38,0x00,0x00,0x10,0x20,0x20,0x00,0x00,0x34,0x08,0x00,0x10,0x60,0x00,0x00,0x60,
ldi R24,255
out 0x14,R24
; 0x08,0x00,0x00,0x00,0x00,0x00,0x78,0x0C,0x00,0x13,0x0C,0x04,0x00,0x10,0x18,0x00,
sbi 0x17,3
cbi 0x18,3
; 0x00,0x10,0x30,0x20,0x00,0x00,0x10,0x08,0x00,0x30,0x60,0x00,0x00,0x40,0x04,0x00,
sbi 0x17,2
cbi 0x18,2
; 0x00,0x00,0x00,0x00,0x48,0x04,0x06,0x01,0x83,0x04,0x00,0x20,0x0C,0x00,0x00,0x10,
out 0x15,R20
; 0x00,0x40,0x00,0x00,0x10,0x7C,0x00,0x20,0x60,0x00,0x01,0x80,0x02,0x00,0x00,0x00,
sbi 0x17,0
cbi 0x18,0
; 0x00,0x00,0x8C,0x0C,0x02,0x00,0xC0,0x04,0x00,0x60,0x06,0x00,0x00,0x18,0x00,0xC0,
sbi 0x17,0
sbi 0x18,0
; 0x00,0x00,0x1F,0x80,0x00,0x20,0x40,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01,
sbi 0x17,2
sbi 0x18,2
L9:
xcall pop_gset1
.dbline 0 ; func end
ret
; Comm -> R20
.even
_Lcd_SendCom0::
xcall push_gset1
mov R20,R16
; 0x06,0x70,0x01,0x00,0x00,0x04,0x00,0xC0,0x03,0x00,0x00,0x18,0x00,0x80,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x06,0x01,0x80,
; 0x00,0x80,0x00,0x04,0x01,0x80,0x01,0x80,0x00,0x18,0x01,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
xcall _Lcd_RW_Check
; 0x00,0x00,0x00,0x20,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
ldi R24,255
out 0x14,R24
; 0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
sbi 0x17,3
sbi 0x18,3
; 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
sbi 0x17,2
cbi 0x18,2
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
out 0x15,R20
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
sbi 0x17,0
cbi 0x18,0
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
sbi 0x17,0
sbi 0x18,0
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
sbi 0x17,2
sbi 0x18,2
L10:
xcall pop_gset1
.dbline 0 ; func end
ret
; Comm -> R20
; dat -> R22
.even
_Lcd_SendCom1::
xcall push_gset2
mov R20,R18
mov R22,R16
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
mov R16,R22
xcall _Lcd_SendDat
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
mov R16,R20
xcall _Lcd_SendCom0
L11:
xcall pop_gset2
.dbline 0 ; func end
ret
; Comm -> y+4
; dat1 -> R20
; dat0 -> R22
.even
_Lcd_SendCom2::
xcall push_gset2
mov R20,R18
mov R22,R16
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,
; 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x18,0x00,0x01,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x01,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
mov R16,R22
xcall _Lcd_SendDat
; 0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x10,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
mov R16,R20
xcall _Lcd_SendDat
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
ldd R16,y+4
xcall _Lcd_SendCom0
L12:
xcall pop_gset2
.dbline 0 ; func end
ret
; addr -> R20,R21
; y -> R22
; x -> R20
.even
_Lcd_Locate::
xcall push_gset2
mov R22,R18
mov R20,R16
sbiw R28,1
; 0x00,0x00,0x00,0x04,0x00,0x00,0x20,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x1C,0x04,0x38,0x00,0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,
; 0x06,0x01,0xDF,0xF0,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0xF8,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x01,0x01,
; 0xC0,0x30,0x11,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x08,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0C,0x03,0x40,0x61,
; 0x11,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x08,0x0E,0x00,0x00,0x00,0x00,
; 0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x08,0x06,0x40,0xCF,0x31,0x00,
; 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x13,0x00,0x03,0x00,0x00,0x80,0x63,
; 0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x08,0x00,0x43,0xF2,0x31,0x00,0x04,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x04,0x20,0x61,0x00,0x13,0x20,0x08,0xC0,0x43,0x04,0x00,
; 0x00,0x00,0x00,0x00,0x07,0xF1,0x18,0x00,0x4F,0xC4,0x51,0x00,0x08,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x02,0x40,0xC0,0x00,0x32,0x20,0x08,0x40,0x42,0x04,0x00,0x00,0x00,
; 0x00,0x01,0xFE,0x21,0x10,0x00,0x5C,0x78,0x51,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x03,0x80,0x80,0x00,0x42,0x20,0x0C,0x40,0x82,0x08,0x00,0x00,0x00,0x00,0x00,
; 0x02,0x61,0x30,0x00,0x40,0x78,0xD1,0x00,0x08,0x00,0x00,0x00,0x07,0xE0,0x00,0x0F,
; 0xF1,0x80,0x70,0x86,0x20,0x04,0x21,0x82,0x30,0x00,0x00,0x00,0x00,0x00,0x02,0xC0,
; 0xA0,0x00,0x41,0xE4,0x9A,0x00,0x08,0x00,0x00,0x00,0x0C,0x10,0x20,0x02,0x11,0x03,
; 0xE1,0x07,0x20,0x0C,0x21,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0xC0,0x00,
; 0x43,0x6D,0x1A,0x00,0x10,0x00,0x00,0x00,0x18,0x08,0x40,0x02,0x11,0x3F,0x03,0xFE,
; 0x20,0x08,0x13,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0xC0,0x00,0x40,0xFE,
; 0x1A,0x00,0x10,0x00,0x00,0x00,0x18,0x0D,0x80,0x02,0x13,0x03,0x00,0xE8,0x30,0x18,
; 0x12,0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x80,0x00,0x40,0x7C,0x1A,0x00,
; 0x20,0x00,0x00,0x00,0x00,0x07,0x00,0x06,0x12,0x03,0x80,0x10,0x10,0x10,0x1A,0x06,
; 0x20,0x00,0x00,0x00,0x00,0x00,0x0F,0x01,0xC0,0x00,0x40,0x70,0x02,0x00,0x20,0x00,
ldi R24,30
mul R24,R22
movw R2,R0
mov R4,R20
clr R5
add R2,R4
adc R3,R5
movw R20,R2
; 0x00,0x00,0x00,0x00,0x00,0x03,0x21,0x03,0x80,0x10,0x18,0x30,0x0C,0x06,0x10,0x00,
ldi R24,36
std y+0,R24
movw R18,R2
mov R18,R19
clr R19
mov R16,R2
xcall _Lcd_SendCom2
L13:
adiw R28,1
xcall pop_gset2
.dbline 0 ; func end
ret
; i -> R20,R21
.even
_Lcd_ClrScreen::
xcall push_gset1
sbiw R28,1
; 0x00,0x00,0x00,0x00,0x0A,0x02,0x40,0x00,0x40,0xE0,0x0A,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x02,0x61,0x07,0x00,0x30,0x07,0xE0,0x0C,0x06,0x08,0x00,0x00,0x00,
; 0x00,0x00,0x12,0x06,0x40,0x00,0x41,0x80,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x02,0x40,0xFB,0x00,0x00,0x01,0x80,0x04,0x06,0x04,0x00,0x00,0x00,0x00,0x00,
; 0x32,0x04,0x20,0x00,0x47,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
; 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x08,
; 0x20,0x00,0x44,0x00,0x0A,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x10,0x30,0x00,
; 0x40,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0xC0,0x00,
ldi R24,36
std y+0,R24
clr R18
clr R16
xcall _Lcd_SendCom2
; 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
clr R20
clr R21
xjmp L18
L15:
ldi R18,192
clr R16
xcall _Lcd_SendCom1
L16:
subi R20,255 ; offset = 1
sbci R21,255
L18:
cpi R20,0
ldi R30,128
cpc R21,R30
brlo L15
L14:
adiw R28,1
xcall pop_gset1
.dbline 0 ; func end
ret
; i -> R20,R21
.even
_Lcd_ClrText::
xcall push_gset1
sbiw R28,1
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0xC0,0x00,0x02,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x02,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
ldi R24,36
std y+0,R24
clr R18
clr R16
xcall _Lcd_SendCom2
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
clr R20
clr R21
xjmp L23
L20:
ldi R18,192
clr R16
xcall _Lcd_SendCom1
L21:
subi R20,255 ; offset = 1
sbci R21,255
L23:
cpi R20,224
ldi R30,1
cpc R21,R30
brlo L20
L19:
adiw R28,1
xcall pop_gset1
.dbline 0 ; func end
ret
; i -> R20,R21
.even
_Lcd_ClrGraph::
xcall push_gset1
sbiw R28,1
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
ldi R24,36
std y+0,R24
ldi R18,3
ldi R16,0
xcall _Lcd_SendCom2
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
clr R20
clr R21
xjmp L28
L25:
ldi R18,192
clr R16
xcall _Lcd_SendCom1
L26:
subi R20,255 ; offset = 1
sbci R21,255
L28:
cpi R20,0
ldi R30,15
cpc R21,R30
brlo L25
L24:
adiw R28,1
xcall pop_gset1
.dbline 0 ; func end
ret
; c -> R22
; str -> R20,R21
; y -> R10
; x -> R22
.even
_Lcd_PrintText::
xcall push_gset3
mov R10,R18
mov R22,R16
ldd R20,y+6
ldd R21,y+7
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
mov R18,R10
mov R16,R22
xcall _Lcd_Locate
xjmp L31
L30:
ldi R18,192
mov R16,R22
subi R16,32
xcall _Lcd_SendCom1
subi R20,255 ; offset = 1
sbci R21,255
L31:
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
movw R30,R20
ldd R2,z+0
mov R22,R2
tst R22
brne L30
L29:
xcall pop_gset3
.dbline 0 ; func end
ret
; addr -> R22,R23
; draw -> y+5
; y -> R22
; x -> R20
.even
_Lcd_Point::
xcall push_gset2
mov R22,R18
mov R20,R16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -