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

📄 lcd.lst

📁 采用Mega128控制LCD12864液晶显示器
💻 LST
📖 第 1 页 / 共 2 页
字号:
     180 2711      CLR	R17
     181 0D02      ADD	R16,R2
     182 1D13      ADC	R17,R3
     183 DFB4      RCALL	_Write_LCDCOM
(0112) 		Write_LCDCOM(HIBYTE(column)); 	//列地址,高低字节两次写入
     184 0186      MOVW	R16,R12
     185 2F01      MOV	R16,R17
     186 2711      CLR	R17
     187 7010      ANDI	R17,0
     188 DFAF      RCALL	_Write_LCDCOM
(0113) 		Write_LCDCOM(LOBYTE(column));
     189 2D0C      MOV	R16,R12
     18A DFAD      RCALL	_Write_LCDCOM
(0114) 		
(0115) 		for(seg = 0; seg < 16; seg++)	//写16列
     18B 2766      CLR	R22
     18C C005      RJMP	0x0192
(0116) 		{ 
(0117) 			Write_LCDDATA((BYTE)(*ptr++));
     18D 01F5      MOVW	R30,R10
     18E 9101      LD	R16,Z+
     18F 015F      MOVW	R10,R30
     190 DFAD      RCALL	_Write_LCDDATA
     191 9563      INC	R22
     192 3160      CPI	R22,0x10
     193 F3C8      BCS	0x018D
     194 9543      INC	R20
     195 3042      CPI	R20,2
     196 F330      BCS	0x017D
     197 940C 0217 JMP	pop_xgsetF0FC
FILE: F:\avr\mega128\lcd12864\main.c
(0001) #include "so12864.h"
(0002) 
(0003) void delay()
(0004) {
(0005) 	int i = 0, j = 0;
_delay:
  i                    --> R16
  j                    --> R18
     199 2700      CLR	R16
     19A 2711      CLR	R17
     19B 2722      CLR	R18
     19C 2733      CLR	R19
(0006) 	for(i = 0; i < 5000; i++)
(0007) 		for (j = 0; j < 200; j++)
     19D 2722      CLR	R18
     19E 2733      CLR	R19
(0008) 		{
(0009) 			nop();
     19F 0000      NOP
     1A0 5F2F      SUBI	R18,0xFF
     1A1 4F3F      SBCI	R19,0xFF
     1A2 3C28      CPI	R18,0xC8
     1A3 E0E0      LDI	R30,0
     1A4 073E      CPC	R19,R30
     1A5 F3CC      BLT	0x019F
     1A6 5F0F      SUBI	R16,0xFF
     1A7 4F1F      SBCI	R17,0xFF
     1A8 3808      CPI	R16,0x88
     1A9 E1E3      LDI	R30,0x13
     1AA 071E      CPC	R17,R30
     1AB F38C      BLT	0x019D
     1AC 9508      RET
_main:
  EN_tab               --> Y,+130
  CN_tab               --> Y,+2
     1AD 97EF      SBIW	R28,0x3F
     1AE 97EF      SBIW	R28,0x3F
     1AF 97EF      SBIW	R28,0x3F
     1B0 97EF      SBIW	R28,0x3F
     1B1 97EF      SBIW	R28,0x3F
     1B2 9767      SBIW	R28,0x17
(0010) 		}
(0011) }
(0012) 
(0013) int main(void)
(0014) {
(0015) 	BYTE EN_tab[][8] = {
     1B3 E88C      LDI	R24,0x8C
     1B4 E090      LDI	R25,0
     1B5 01FE      MOVW	R30,R28
     1B6 57EE      SUBI	R30,0x7E
     1B7 4FFF      SBCI	R31,0xFF
     1B8 ED00      LDI	R16,0xD0
     1B9 E010      LDI	R17,0
     1BA 93FA      ST	R31,-Y
     1BB 93EA      ST	R30,-Y
     1BC 939A      ST	R25,-Y
     1BD 938A      ST	R24,-Y
     1BE 940E 022D CALL	asgncblkx
(0016) 			{0x00,0x7E,0x11,0x11,0x11,0x7E,0x00,0x00},    /*"A"=21h*/
(0017)             {0x00,0x41,0x7F,0x49,0x49,0x36,0x00,0x00},    /*"B"=22h*/
(0018)             {0x00,0x3E,0x41,0x41,0x41,0x22,0x00,0x00},    /*"C"=23h*/
(0019)             {0x00,0x41,0x7F,0x41,0x41,0x3E,0x00,0x00},    /*"D"=24h*/
(0020)             {0x00,0x7F,0x49,0x49,0x49,0x49,0x00,0x00},    /*"E"=25h*/
(0021)             {0x00,0x7F,0x09,0x09,0x09,0x01,0x00,0x00},    /*"F"=26h*/
(0022)             {0x00,0x3E,0x41,0x41,0x49,0x7A,0x00,0x00},    /*"G"=27h*/
(0023)             {0x00,0x7F,0x08,0x08,0x08,0x7F,0x00,0x00},    /*"h"=28h*/
(0024)             {0x00,0x00,0x41,0x7F,0x41,0x00,0x00,0x00},    /*"I"=29h*/
(0025)             {0x00,0x20,0x40,0x41,0x3F,0x01,0x00,0x00},    /*"J"=2Ah*/
(0026)             {0x00,0x7F,0x08,0x14,0x22,0x41,0x00,0x00},    /*"K"=2Bh*/
(0027)             {0x00,0x7F,0x40,0x40,0x40,0x40,0x00,0x00},    /*"L"=2Ch*/
(0028)             {0x00,0x7F,0x02,0x0C,0x02,0x7F,0x00,0x00},    /*"M"=2Dh*/
(0029)             {0x00,0x7F,0x06,0x08,0x30,0x7F,0x00,0x00},    /*"N"=2Eh*/
(0030)             {0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,0x00},    /*"O"=2Fh*/
(0031)             {0x00,0x7F,0x09,0x09,0x09,0x06,0x00,0x00},    /*"P"=30h*/
(0032)             {0x00,0x3E,0x41,0x51,0x21,0x5E,0x00,0x00},    /*"Q"=31h*/
(0033)             {0x00,0x7F,0x09,0x19,0x29,0x46,0x00,0x00},    /*"R"=32h*/
(0034)             {0x00,0x26,0x49,0x49,0x49,0x32,0x00,0x00},    /*"S"=33h*/
(0035)             {0x00,0x01,0x01,0x7F,0x01,0x01,0x00,0x00},    /*"T"=34h*/
(0036)             {0x00,0x3F,0x40,0x40,0x40,0x3F,0x00,0x00},    /*"U"=35h*/
(0037)             {0x00,0x1F,0x20,0x40,0x20,0x1F,0x00,0x00},    /*"V"=36h*/
(0038)             {0x00,0x7F,0x20,0x18,0x20,0x7F,0x00,0x00},    /*"W"=37h*/
(0039)             {0x00,0x63,0x14,0x08,0x14,0x63,0x00,0x00},    /*"X"=38h*/
(0040)             {0x00,0x07,0x08,0x70,0x08,0x07,0x00,0x00},    /*"Y"=39h*/
(0041)             {0x00,0x61,0x51,0x49,0x45,0x43,0x00,0x00}
(0042) 	};
(0043) 	BYTE CN_tab[][32] ={
     1C0 E58C      LDI	R24,0x5C
     1C1 E091      LDI	R25,1
     1C2 01FE      MOVW	R30,R28
     1C3 9632      ADIW	R30,2
     1C4 E800      LDI	R16,0x80
     1C5 E010      LDI	R17,0
     1C6 93FA      ST	R31,-Y
     1C7 93EA      ST	R30,-Y
     1C8 939A      ST	R25,-Y
     1C9 938A      ST	R24,-Y
     1CA 940E 022D CALL	asgncblkx
(0044) 			{0x00,0x00,0x00,0xC0,0x70,0x20,0x00,0xFF,0x00,0x10,0x20,0xC0,0x80,0x00,0x00,0x00,0x04,0x02,0x01,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x01,0x07,0x02,0x00},
(0045) 			{0x00,0x40,0x44,0x54,0x55,0x56,0xD4,0x7C,0x54,0x54,0x56,0x55,0x54,0x44,0x40,0x00,0x00,0x20,0x10,0x48,0x44,0x4B,0x4A,0x7E,0x4A,0x4A,0x4A,0x7E,0x40,0x40,0x40,0x00},
(0046) 			{0x02,0xF2,0x12,0x12,0x1E,0x00,0x80,0x80,0xFF,0xA0,0x90,0x88,0x86,0x84,0x80,0x00,0x01,0x03,0x41,0x81,0x7F,0x00,0x00,0x40,0xFF,0x40,0x23,0x0C,0x10,0x60,0x20,0x00},
(0047) 			{0x10,0xF0,0x1F,0x10,0xF0,0x12,0x12,0xFE,0x12,0xFE,0x00,0xFE,0x62,0x9A,0x06,0x00,0x40,0x21,0x1A,0x86,0x49,0x31,0x0D,0x43,0x81,0x7F,0x00,0xFF,0x08,0x18,0x0F,0x00}
(0048) 			};
(0049) 
(0050) 	Init_LCD();
     1CC 940E 0111 CALL	_Init_LCD
     1CE C037      RJMP	0x0206
(0051) 	
(0052) 	while(1)
(0053) 	{
(0054) 		DispCN_LCD(PAGE_3, COLUMN_24, (BYTE *)(CN_tab[0]));
     1CF 01CE      MOVW	R24,R28
     1D0 9602      ADIW	R24,2
     1D1 8399      STD	Y+1,R25
     1D2 8388      STD	Y+0,R24
     1D3 E028      LDI	R18,0x8
     1D4 E131      LDI	R19,0x11
     1D5 EB03      LDI	R16,0xB3
     1D6 940E 0175 CALL	_DispCN_LCD
(0055) 		delay();
     1D8 DFC0      RCALL	_delay
(0056) 		DispCN_LCD(PAGE_3, COLUMN_40, (BYTE *)(CN_tab[1]));
     1D9 01CE      MOVW	R24,R28
     1DA 9682      ADIW	R24,0x22
     1DB 8399      STD	Y+1,R25
     1DC 8388      STD	Y+0,R24
     1DD E028      LDI	R18,0x8
     1DE E132      LDI	R19,0x12
     1DF EB03      LDI	R16,0xB3
     1E0 940E 0175 CALL	_DispCN_LCD
(0057) 		delay();
     1E2 DFB6      RCALL	_delay
(0058) 		DispCN_LCD(PAGE_3, COLUMN_56, (BYTE *)(CN_tab[1]));
     1E3 01CE      MOVW	R24,R28
     1E4 9682      ADIW	R24,0x22
     1E5 8399      STD	Y+1,R25
     1E6 8388      STD	Y+0,R24
     1E7 E028      LDI	R18,0x8
     1E8 E133      LDI	R19,0x13
     1E9 EB03      LDI	R16,0xB3
     1EA 940E 0175 CALL	_DispCN_LCD
(0059) 		delay();
     1EC DFAC      RCALL	_delay
(0060) 		DispCN_LCD(PAGE_3, COLUMN_72, (BYTE *)(CN_tab[2]));
     1ED 01CE      MOVW	R24,R28
     1EE 5B8E      SUBI	R24,0xBE
     1EF 4F9F      SBCI	R25,0xFF
     1F0 8399      STD	Y+1,R25
     1F1 8388      STD	Y+0,R24
     1F2 E028      LDI	R18,0x8
     1F3 E134      LDI	R19,0x14
     1F4 EB03      LDI	R16,0xB3
     1F5 940E 0175 CALL	_DispCN_LCD
(0061) 		delay();
     1F7 DFA1      RCALL	_delay
(0062) 		DispCN_LCD(PAGE_3, COLUMN_86, (BYTE *)(CN_tab[3]));
     1F8 01CE      MOVW	R24,R28
     1F9 598E      SUBI	R24,0x9E
     1FA 4F9F      SBCI	R25,0xFF
     1FB 8399      STD	Y+1,R25
     1FC 8388      STD	Y+0,R24
     1FD E026      LDI	R18,6
     1FE E135      LDI	R19,0x15
     1FF EB03      LDI	R16,0xB3
     200 940E 0175 CALL	_DispCN_LCD
(0063) 		delay();	
     202 DF96      RCALL	_delay
(0064) 		Clear_LCD();
     203 940E 0144 CALL	_Clear_LCD
(0065) 		delay();
FILE: <library>
     205 DF93      RCALL	_delay
     206 CFC8      RJMP	0x01CF
     207 96EF      ADIW	R28,0x3F
     208 96EF      ADIW	R28,0x3F
     209 96EF      ADIW	R28,0x3F
     20A 96EF      ADIW	R28,0x3F
     20B 96EF      ADIW	R28,0x3F
     20C 9667      ADIW	R28,0x17
     20D 9508      RET
pop_xgset30FC:
     20E 90A9      LD	R10,Y+
     20F 90B9      LD	R11,Y+
     210 90C9      LD	R12,Y+
     211 90D9      LD	R13,Y+
     212 90E9      LD	R14,Y+
     213 90F9      LD	R15,Y+
     214 9149      LD	R20,Y+
     215 9159      LD	R21,Y+
     216 9508      RET
pop_xgsetF0FC:
     217 90A9      LD	R10,Y+
     218 90B9      LD	R11,Y+
     219 90C9      LD	R12,Y+
     21A 90D9      LD	R13,Y+
     21B 90E9      LD	R14,Y+
     21C 90F9      LD	R15,Y+
     21D 9149      LD	R20,Y+
     21E 9159      LD	R21,Y+
     21F 9169      LD	R22,Y+
     220 9179      LD	R23,Y+
     221 9508      RET
push_xgsetF0FC:
     222 937A      ST	R23,-Y
     223 936A      ST	R22,-Y
push_xgset30FC:
     224 935A      ST	R21,-Y
     225 934A      ST	R20,-Y
push_xgset00FC:
     226 92FA      ST	R15,-Y
     227 92EA      ST	R14,-Y
push_xgset003C:
     228 92DA      ST	R13,-Y
     229 92CA      ST	R12,-Y
     22A 92BA      ST	R11,-Y
     22B 92AA      ST	R10,-Y
     22C 9508      RET
asgncblkx:
     22D 93AA      ST	R26,-Y
     22E 93BA      ST	R27,-Y
     22F 93EA      ST	R30,-Y
     230 93FA      ST	R31,-Y
     231 920A      ST	R0,-Y
     232 81AF      LDD	R26,Y+7
     233 85B8      LDD	R27,Y+8
     234 81ED      LDD	R30,Y+5
     235 81FE      LDD	R31,Y+6
     236 3000      CPI	R16,0
     237 0701      CPC	R16,R17
     238 F031      BEQ	0x023F
     239 95D8      ELPM
     23A 920D      ST	R0,X+
     23B 9631      ADIW	R30,1
     23C 5001      SUBI	R16,1
     23D 4010      SBCI	R17,0
     23E CFF7      RJMP	0x0236
     23F 9009      LD	R0,Y+
     240 91F9      LD	R31,Y+
     241 91E9      LD	R30,Y+
     242 91B9      LD	R27,Y+
     243 91A9      LD	R26,Y+
     244 9624      ADIW	R28,4
     245 9508      RET

⌨️ 快捷键说明

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