📄 yj12864.lst
字号:
03D6 C047 RJMP 0x041E
03D7 376D CPI R22,0x7D
03D8 E0E0 LDI R30,0
03D9 077E CPC R23,R30
03DA F409 BNE 0x03DC
03DB C03A RJMP 0x0416
03DC 376E CPI R22,0x7E
03DD E0E0 LDI R30,0
03DE 077E CPC R23,R30
03DF F171 BEQ 0x040E
03E0 C046 RJMP 0x0427
03E1 3D67 CPI R22,0xD7
03E2 E0E0 LDI R30,0
03E3 077E CPC R23,R30
03E4 F409 BNE 0x03E6
03E5 C03C RJMP 0x0422
03E6 3D6B CPI R22,0xDB
03E7 E0E0 LDI R30,0
03E8 077E CPC R23,R30
03E9 F181 BEQ 0x041A
03EA 3D6D CPI R22,0xDD
03EB E0E0 LDI R30,0
03EC 077E CPC R23,R30
03ED F121 BEQ 0x0412
03EE 3D6E CPI R22,0xDE
03EF E0E0 LDI R30,0
03F0 077E CPC R23,R30
03F1 F0C1 BEQ 0x040A
03F2 3D67 CPI R22,0xD7
03F3 E0E0 LDI R30,0
03F4 077E CPC R23,R30
03F5 F40C BGE 0x03F7
03F6 C030 RJMP 0x0427
03F7 3E67 CPI R22,0xE7
03F8 E0E0 LDI R30,0
03F9 077E CPC R23,R30
03FA F129 BEQ 0x0420
03FB 3E6B CPI R22,0xEB
03FC E0E0 LDI R30,0
03FD 077E CPC R23,R30
03FE F0C9 BEQ 0x0418
03FF 3E6D CPI R22,0xED
0400 E0E0 LDI R30,0
0401 077E CPC R23,R30
0402 F069 BEQ 0x0410
0403 3E6E CPI R22,0xEE
0404 E0E0 LDI R30,0
0405 077E CPC R23,R30
0406 F009 BEQ 0x0408
0407 C01F RJMP 0x0427
(0057) {
(0058) case 0xEE:
(0059) keycode=0x0;
0408 2744 CLR R20
(0060) break;
0409 C01D RJMP 0x0427
(0061) case 0xDE:
(0062) keycode=0x1;
040A E041 LDI R20,1
(0063) break;
040B C01B RJMP 0x0427
(0064) case 0xBE:
(0065) keycode=0x2;
040C E042 LDI R20,2
(0066) break;
040D C019 RJMP 0x0427
(0067) case 0x7E:
(0068) keycode=0x3;
040E E043 LDI R20,3
(0069) break;
040F C017 RJMP 0x0427
(0070) case 0xED:
(0071) keycode=0x4;
0410 E044 LDI R20,4
(0072) break;
0411 C015 RJMP 0x0427
(0073) case 0xDD:
(0074) keycode=0x5;
0412 E045 LDI R20,5
(0075) break;
0413 C013 RJMP 0x0427
(0076) case 0xBD:
(0077) keycode=0x6;
0414 E046 LDI R20,6
(0078) break;
0415 C011 RJMP 0x0427
(0079) case 0x7D:
(0080) keycode=0x7;
0416 E047 LDI R20,7
(0081) break;
0417 C00F RJMP 0x0427
(0082) case 0xEB:
(0083) keycode=0x8;
0418 E048 LDI R20,0x8
(0084) break;
0419 C00D RJMP 0x0427
(0085) case 0xDB:
(0086) keycode=0x9;
041A E049 LDI R20,0x9
(0087) break;
041B C00B RJMP 0x0427
(0088) case 0xBB:
(0089) keycode=0xA;
041C E04A LDI R20,0xA
(0090) break;
041D C009 RJMP 0x0427
(0091) case 0x7B:
(0092) keycode=0xB;
041E E04B LDI R20,0xB
(0093) break;
041F C007 RJMP 0x0427
(0094) case 0xE7:
(0095) keycode=0xC;
0420 E04C LDI R20,0xC
(0096) break;
0421 C005 RJMP 0x0427
(0097) case 0xD7:
(0098) keycode=0xD;
0422 E04D LDI R20,0xD
(0099) break;
0423 C003 RJMP 0x0427
(0100) case 0xB7:
(0101) keycode=0xE;
0424 E04E LDI R20,0xE
(0102) break;
0425 C001 RJMP 0x0427
(0103) case 0x77:
(0104) keycode=0xF;
0426 E04F LDI R20,0xF
(0105) break;
(0106) }
(0107) }
(0108) return keycode; //返回经过翻译的键码
0427 2F04 MOV R16,R20
0428 940E0A72 CALL pop_gset3
042A 9508 RET
FILE: C:\DOCUME~1\Administrator\桌面\12864液晶菜单显示时钟不过不能调2\12864.h
(0001) #pragma data:code //以下是字模工具取出的图片数组
(0002) const uchar GDRAM[1024]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0003) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0004) 0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
(0005) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0006) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0007) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0008) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0009) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0010) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0011) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0012) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0013) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0014) 0x20,0x7F,0xFF,0xC0,0xFF,0xFF,0x80,0xFF,0xFF,0x80,0xFF,0xFF,0x83,0xFF,0xFE,0x04,
(0015) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0016) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0017) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0018) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0019) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0020) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0021) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0022) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0023) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0024) 0x20,0x7F,0xFF,0xC0,0xFF,0xFF,0x80,0xFF,0xFF,0x80,0xFF,0xFF,0x83,0xFF,0xFE,0x04,
(0025) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0026) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0027) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0028) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0029) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0030) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0031) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0032) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0033) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0034) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0035) 0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
(0036) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0037) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0038) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0039) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0040) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0041) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0042) 0x20,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0043) 0x20,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0044) 0x20,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0045) 0x2F,0xFF,0xFF,0xFF,0xC1,0xF8,0x7F,0xBF,0xC1,0xE3,0x9C,0x00,0x78,0x1E,0x3F,0xC4,
(0046) 0x26,0xD9,0xB6,0x6D,0x80,0x60,0x33,0x1B,0x63,0x31,0x8C,0x00,0xCC,0x33,0x1B,0x64,
(0047) 0x26,0xD9,0xB6,0x6D,0x80,0x60,0x1E,0x1B,0x66,0x31,0x8C,0x01,0x8C,0x61,0x9B,0x64,
(0048) 0x27,0xF9,0xFE,0x7F,0x80,0x60,0x0C,0x1B,0x66,0x01,0x8C,0x01,0x80,0x61,0x9B,0x64,
(0049) 0x27,0xF9,0xFE,0x7F,0x80,0x60,0x1E,0x1B,0x66,0x01,0x8C,0x01,0x80,0x61,0x9B,0x64,
(0050) 0x23,0x30,0xCC,0x33,0x1C,0x6C,0x33,0x1B,0x63,0x31,0x9C,0x70,0xCC,0x33,0x1B,0x64,
(0051) 0x23,0x30,0xCC,0x33,0x1C,0x78,0x7F,0xBF,0xF1,0xE0,0xFC,0x70,0x78,0x1E,0x3F,0xF4,
(0052) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0053) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0054) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0055) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0056) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0057) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0058) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0059) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0060) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0061) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0062) 0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
(0063) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0064) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0065) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
(0066) #pragma data:data
(0067)
(0068) /*******************************************
(0069) 函数名称: LCD12864_portini
(0070) 功 能: 初始化12864液晶用到的IO口
(0071) 参 数: 无
(0072) 返回值 : 无
(0073) /********************************************/
(0074) void LCD12864_portini(void)
(0075) {
(0076) LCDb_CTRL_DDR |= BIT(LCDb_RS)|BIT(LCDb_RW)|BIT(LCDb_E)|BIT(LCDb_RST);//配置控制管脚为输出
_LCD12864_portini:
042B B381 IN R24,0x11
042C 6F80 ORI R24,0xF0
042D BB81 OUT 0x11,R24
(0077) LCDb_DATA_DDR |= 0xFF; //配置数据管脚为输出
042E B387 IN R24,0x17
042F 6F8F ORI R24,0xFF
0430 BB87 OUT 0x17,R24
(0078) LCDb_SET_RST; //不使能复位端
0431 9A97 SBI 0x12,7
0432 9508 RET
_LCD12864_readbyte:
dByte --> R20
DatCmd --> R20
0433 940E0A80 CALL push_gset1
0435 2F40 MOV R20,R16
(0079) }
(0080) /*******************************************
(0081) 函数名称: LCD12864_readbyte
(0082) 功 能: 从12864液晶读出一个字节数据或者指令
(0083) 参 数: DatCmd--为iDat时是数据,为iCmd时是指令
(0084) 返回值 : dByte--读回的数据或者指令
(0085) /********************************************/
(0086) uchar LCD12864_readbyte(uchar DatCmd)
(0087) {
(0088) uchar dByte;
(0089) if (DatCmd == iCmd) //指令操作
0436 2344 TST R20
0437 F411 BNE 0x043A
(0090) LCDb_CLR_RS;
0438 9894 CBI 0x12,4
0439 C001 RJMP 0x043B
(0091) else
(0092) LCDb_SET_RS;
043A 9A94 SBI 0x12,4
(0093)
(0094) LCDb_SET_RW; //读操作
043B 9A95 SBI 0x12,5
(0095) LCDb_SET_E;
043C 9A96 SBI 0x12,6
(0096) LCDb_DATA_DDR=0x00; //数据总线定义为输入
043D 2422 CLR R2
043E BA27 OUT 0x17,R2
(0097) dByte=LCDb_DI; //读数据或者指令
043F B346 IN R20,0x16
(0098) Delayms(1); //时序调整
0440 E001 LDI R16,1
0441 E010 LDI R17,0
0442 DEFC RCALL _Delayms
(0099) LCDb_CLR_E;
0443 9896 CBI 0x12,6
(0100) LCDb_DATA_DDR|=0xff; //数据总线还原为输出
0444 B387 IN R24,0x17
0445 6F8F ORI R24,0xFF
0446 BB87 OUT 0x17,R24
(0101) return dByte;
0447 2F04 MOV R16,R20
0448 940E0A83 CALL pop_gset1
044A 9508 RET
_LCD12864_sendbyte:
dByte --> R20
DatCmd --> R22
044B 940E0A7E CALL push_gset2
044D 2F42 MOV R20,R18
044E 2F60 MOV R22,R16
(0102) }
(0103) /*******************************************
(0104) 函数名称: LCD12864_sendbyte
(0105) 功 能: 向12864液晶写入一个字节数据或者指令
(0106) 参 数: DatCmd--为iDat时是数据,为iCmd时是指令
(0107) dByte--为写入12864的数据或者指令
(0108) 返回值 : 无
(0109) /********************************************/
(0110) void LCD12864_sendbyte(uchar DatCmd, uchar dByte)
(0111) {
(0112) if (DatCmd == iCmd) //指令操作
044F 2366 TST R22
0450 F411 BNE 0x0453
(0113) LCDb_CLR_RS;
0451 9894 CBI 0x12,4
0452 C001 RJMP 0x0454
(0114) else
(0115) LCDb_SET_RS;
0453 9A94 SBI 0x12,4
(0116)
(0117) LCDb_CLR_RW; //写操作
0454 9895 CBI 0x12,5
(0118) LCDb_SET_E;
0455 9A96 SBI 0x12,6
(0119) LCDb_DO = dByte; //写入数据
0456 BB48 OUT 0x18,R20
(0120) Delayus(100);
0457 E604 LDI R16,0x64
0458 E010 LDI R17,0
0459 DECD RCALL _Delayus
(0121) LCDb_CLR_E;
045A 9896 CBI 0x12,6
045B 940E0A6F CALL pop_gset2
045D 9508 RET
_LCD12864_sendstr:
ptString --> R20
045E 940E0A80 CALL push_gset1
0460 01A8 MOVW R20,R16
(0122) }
(0123) /*******************************************
(0124) 函数名称: LCD12864_sendstr
(0125) 功 能: 向12864液晶写入一个字符串
(0126) 参 数: ptString--字符串指针
(0127) 返回值 : 无
(0128) /********************************************/
(0129) void LCD12864_sendstr(uchar *ptString)
(0130) {
0461 C008 RJMP 0x046A
(0131) while((*ptString)!='\0') //字符串未结束一直写
(0132) {
(0133) LCD12864_sendbyte(iDat, *ptString++);
0462 01FA MOVW R30,R20
0463 9121 LD R18,Z+
0464 01AF MOVW R20,R30
0465 E001 LDI R16,1
0466 DFE4 RCALL _LCD12864_sendbyte
(0134) Delayms(10);
0467 E00A LDI R16,0xA
0468 E010 LDI R17,0
0469 DED5 RCALL _Delayms
046A 01FA MOVW R30,R20
046B 8020 LDD R2,Z+0
046C 2022 TST R2
046D F7A1 BNE 0x0462
046E 940E0A83 CALL pop_gset1
0470 9508 RET
(0135) }
(0136) }
(0137) /*******************************************
(0138) 函数名称: LCD12864_clear
(0139) 功 能: 12864液晶清屏
(0140) 参 数: 无
(0141) 返回值 : 无
(0142) /********************************************/
(0143) void LCD12864_clear(void)
(0144) {
(0145) LCD12864_sendbyte(iCmd,LCDb_CLS);
_LCD12864_clear:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -