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

📄 spilcd12864.lst

📁 ATmega16应用例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
    031A 8503      LDD	R16,Z+11
    031B 8514      LDD	R17,Z+12
    031C 8525      LDD	R18,Z+13
    031D 8536      LDD	R19,Z+14
    031E DD3B      RCALL	_speaData
(0158) 
(0159) 	lcd_set_xy(x,y);
    031F 2D2E      MOV	R18,R14
    0320 2D0A      MOV	R16,R10
    0321 DF10      RCALL	_lcd_set_xy
(0160) 	delay50us(40); 
    0322 E208      LDI	R16,0x28
    0323 E010      LDI	R17,0
    0324 DEBC      RCALL	_delay50us
(0161) 	if(length>effectLen)
    0325 840F      LDD	R0,Y+15
    0326 14C0      CP	R12,R0
    0327 F478      BCC	0x0337
(0162) 	{
(0163) 		for(i=length-effectLen-1;i>=0;i--)
    0328 2D80      MOV	R24,R0
    0329 198C      SUB	R24,R12
    032A 5081      SUBI	R24,1
    032B 2EA8      MOV	R10,R24
    032C C007      RJMP	0x0334
(0164) 		{
(0165) 			lcd_wrDat(' '&0xF0,(' '&0x0F)<<4);
    032D 2722      CLR	R18
    032E E200      LDI	R16,0x20
    032F DEF5      RCALL	_lcd_wrDat
(0166) 			delay50us(40); 
    0330 E208      LDI	R16,0x28
    0331 E010      LDI	R17,0
    0332 DEAE      RCALL	_delay50us
    0333 94AA      DEC	R10
    0334 2D8A      MOV	R24,R10
    0335 3080      CPI	R24,0
    0336 F7B4      BGE	0x032D
(0167) 		}
(0168) 	}
(0169) 	for(i=effectLen-1;i>=0;i--)
    0337 2D8C      MOV	R24,R12
    0338 5081      SUBI	R24,1
    0339 2EA8      MOV	R10,R24
    033A C01E      RJMP	0x0359
(0170) 	{
(0171) 		lcd_wrDat( (dataElem[i]+0x30)&0xF0 ,( (dataElem[i]+0x30)&0x0F )<<4 );
    033B E78D      LDI	R24,0x7D
    033C E090      LDI	R25,0
    033D 2DEA      MOV	R30,R10
    033E 27FF      CLR	R31
    033F FDE7      SBRC	R30,7
    0340 95F0      COM	R31
    0341 0FE8      ADD	R30,R24
    0342 1FF9      ADC	R31,R25
    0343 8180      LDD	R24,Z+0
    0344 2799      CLR	R25
    0345 96C0      ADIW	R24,0x30
    0346 2F28      MOV	R18,R24
    0347 702F      ANDI	R18,0xF
    0348 7030      ANDI	R19,0
    0349 0F22      LSL	R18
    034A 1F33      ROL	R19
    034B 0F22      LSL	R18
    034C 1F33      ROL	R19
    034D 0F22      LSL	R18
    034E 1F33      ROL	R19
    034F 0F22      LSL	R18
    0350 1F33      ROL	R19
    0351 2F08      MOV	R16,R24
    0352 7F00      ANDI	R16,0xF0
    0353 7010      ANDI	R17,0
    0354 DED0      RCALL	_lcd_wrDat
(0172) 		delay50us(40);
    0355 E208      LDI	R16,0x28
    0356 E010      LDI	R17,0
    0357 DE89      RCALL	_delay50us
    0358 94AA      DEC	R10
    0359 2D8A      MOV	R24,R10
    035A 3080      CPI	R24,0
    035B F6FC      BGE	0x033B
    035C 9621      ADIW	R28,1
    035D 940E0480  CALL	pop_gset5
    035F 9508      RET
_lcd_puts:
  str                  --> R20
  y                    --> R10
  x                    --> R22
    0360 940E0487  CALL	push_gset3
    0362 2EA2      MOV	R10,R18
    0363 2F60      MOV	R22,R16
    0364 814E      LDD	R20,Y+6
    0365 815F      LDD	R21,Y+7
(0173) 	}
(0174) }
(0175) 
(0176) void lcd_puts(uint8 x,uint8 y,uint8 *str)
(0177) { 
(0178) 	lcd_set_xy(x,y);
    0366 2D2A      MOV	R18,R10
    0367 2F06      MOV	R16,R22
    0368 DEC9      RCALL	_lcd_set_xy
(0179) 	delay50us(20);   
    0369 E104      LDI	R16,0x14
    036A E010      LDI	R17,0
    036B DE75      RCALL	_delay50us
    036C C00F      RJMP	0x037C
(0180) 	while(*str)
(0181) 	{
(0182) 		lcd_wrDat((*(str))&0xF0,((*(str))&0x0F)<<4);
    036D 01FA      MOVW	R30,R20
    036E 8020      LDD	R2,Z+0
    036F 2433      CLR	R3
    0370 2D22      MOV	R18,R2
    0371 702F      ANDI	R18,0xF
    0372 702F      ANDI	R18,0xF
    0373 9522      SWAP	R18
    0374 2D02      MOV	R16,R2
    0375 7F00      ANDI	R16,0xF0
    0376 DEAE      RCALL	_lcd_wrDat
(0183) 		str++;
    0377 5F4F      SUBI	R20,0xFF
    0378 4F5F      SBCI	R21,0xFF
(0184) 		delay50us(20);
    0379 E104      LDI	R16,0x14
    037A E010      LDI	R17,0
    037B DE65      RCALL	_delay50us
    037C 01FA      MOVW	R30,R20
    037D 8020      LDD	R2,Z+0
    037E 2022      TST	R2
    037F F769      BNE	0x036D
    0380 940E047A  CALL	pop_gset3
    0382 9508      RET
_lcd_puts_:
  str                  --> R20
  y                    --> R10
  x                    --> R22
    0383 940E0487  CALL	push_gset3
    0385 2EA2      MOV	R10,R18
    0386 2F60      MOV	R22,R16
    0387 814E      LDD	R20,Y+6
    0388 815F      LDD	R21,Y+7
(0185) 	} 
(0186) }
(0187) 
(0188) void lcd_puts_(uint8 x,uint8 y,uint8 *str)
(0189) { 
(0190) 	lcd_set_xy(x,y);
    0389 2D2A      MOV	R18,R10
    038A 2F06      MOV	R16,R22
    038B DEA6      RCALL	_lcd_set_xy
(0191) 	delay50us(20);   
    038C E104      LDI	R16,0x14
    038D E010      LDI	R17,0
    038E DE52      RCALL	_delay50us
    038F C00F      RJMP	0x039F
(0192) 	while(*str)
(0193) 	{
(0194) 		lcd_wrDat((*(str))&0xF0,((*(str))&0x0F)<<4);
    0390 01FA      MOVW	R30,R20
    0391 8020      LDD	R2,Z+0
    0392 2433      CLR	R3
    0393 2D22      MOV	R18,R2
    0394 702F      ANDI	R18,0xF
    0395 702F      ANDI	R18,0xF
    0396 9522      SWAP	R18
    0397 2D02      MOV	R16,R2
    0398 7F00      ANDI	R16,0xF0
    0399 DE8B      RCALL	_lcd_wrDat
(0195) 		str++;
    039A 5F4F      SUBI	R20,0xFF
    039B 4F5F      SBCI	R21,0xFF
(0196) 		delay50ms(4);
    039C E004      LDI	R16,4
    039D E010      LDI	R17,0
    039E DE54      RCALL	_delay50ms
    039F 01FA      MOVW	R30,R20
    03A0 8020      LDD	R2,Z+0
    03A1 2022      TST	R2
    03A2 F769      BNE	0x0390
    03A3 940E047A  CALL	pop_gset3
    03A5 9508      RET
(0197) 	} 
(0198) }
(0199) 
(0200) void lcd_init(void)
(0201) {
(0202) 	SPI_init();			
_lcd_init:
    03A6 DE62      RCALL	_SPI_init
(0203) 	delay50ms(1);
    03A7 E001      LDI	R16,1
    03A8 E010      LDI	R17,0
    03A9 DE49      RCALL	_delay50ms
(0204) 	lcd_wrCmd(0x30,0x30);	//使用8位控制界面,使用基本指令集
    03AA E320      LDI	R18,0x30
    03AB E300      LDI	R16,0x30
    03AC DE6B      RCALL	_lcd_wrCmd
(0205) 	lcd_wrCmd(0x30,0x30);	//使用8位控制界面,使用基本指令集
    03AD E320      LDI	R18,0x30
    03AE E300      LDI	R16,0x30
    03AF DE68      RCALL	_lcd_wrCmd
(0206) 	//lcd_wrCmd(0x00,0xF0);	//整体显示ON
(0207) 	lcd_wrCmd(0x00,0xC0);	//整体显示ON
    03B0 EC20      LDI	R18,0xC0
    03B1 2700      CLR	R16
    03B2 DE65      RCALL	_lcd_wrCmd
(0208) 	lcd_wrCmd(0x00,0x10);	//清屏
    03B3 E120      LDI	R18,0x10
    03B4 2700      CLR	R16
    03B5 DE62      RCALL	_lcd_wrCmd
(0209) 	//lcd_wrCmd(0x10,0x00);	//光标
(0210) 	lcd_wrCmd(0x00,0x60);	//显示右移
    03B6 E620      LDI	R18,0x60
    03B7 2700      CLR	R16
    03B8 DE5F      RCALL	_lcd_wrCmd
(0211) 	delay50ms(1);			//不可省去!!!
    03B9 E001      LDI	R16,1
    03BA E010      LDI	R17,0
    03BB DE37      RCALL	_delay50ms
    03BC 9508      RET
_main:
    03BD 9722      SBIW	R28,2
FILE: E:\WaveShare\微雪电子CD1\开发板试验器\SD系列\M16SD\试验教程\外围模块相关试验\SPILCD~2\SPILcd12864\SPILcd12864_.C
(0001) /*********************************************************************
(0002) 	微 雪 电 子   WaveShare   http://www.waveShare.net            	
(0003) 		                                                            
(0004) 目    的:   测试"lm3303"SPILCD12864液晶模块
(0005) 
(0006) 目标系统:   基于任何AVR单片机
(0007) 		                                                                
(0008) 应用软件:   ICCAVR
(0009) 		                                                                
(0010) 版    本:   Version 1.0                                                          
(0011) 		                                                                
(0012) 圆版时间:   2005-06-25
(0013) 	
(0014) 开发人员:   SEE
(0015) 
(0016) 说	 明:   若用于商业用途,请保留此段文字或注明代码来源
(0017) 	
(0018) 	深 圳 微 雪 电 子 保 留 所 有 的 版 权     
(0019) *********************************************************************/
(0020) 
(0021) /*01010101010101010101010101010101010101010101010101010101010101010101
(0022) ----------------------------------------------------------------------
(0023) 版本更新记录:
(0024) 
(0025) ----------------------------------------------------------------------
(0026) 实验内容:
(0027) 初始化、读写SPILCD12864。
(0028) ----------------------------------------------------------------------
(0029) 硬件连接:
(0030) 将SPILCD12864插入主板的“DotLcd”插槽;
(0031) SingleKeyBoard:K0----K7
(0032)                    |
(0033) M16SD:          PA0--PA7
(0034) ----------------------------------------------------------------------
(0035) 注意事项: 
(0036) 详见M16SD说明书
(0037) ----------------------------------------------------------------------
(0038) 10101010101010101010101010101010101010101010101010101010101010101010*/
(0039) #include <iom16v.h>
(0040) 
(0041) #define OUT_LCD_CS	sbi(DDRB,3)
(0042) #define SET_LCD_CS	sbi(PORTB,3)
(0043) #include "D:\ICC_H\SPILCD.H"
(0044) 
(0045) /*--------------------------------------------------------------------
(0046) 函数名称:
(0047) 函数功能:
(0048) 注意事项:
(0049) 提示说明:
(0050) 输    入:
(0051) 返    回:
(0052) --------------------------------------------------------------------*/
(0053) void main()
(0054) {             
(0055) 	SEI();
    03BE 9478      BSET	7
(0056) 	lcd_init();
    03BF DFE6      RCALL	_lcd_init
(0057) 	lcd_puts(1,1,"  WaveShare.net");
    03C0 E68D      LDI	R24,0x6D
    03C1 E090      LDI	R25,0
    03C2 8399      STD	Y+1,R25
    03C3 8388      STD	Y+0,R24
    03C4 E021      LDI	R18,1
    03C5 E001      LDI	R16,1
    03C6 DF99      RCALL	_lcd_puts
(0058) 	lcd_puts(3,1,"    微雪电子");
    03C7 E680      LDI	R24,0x60
    03C8 E090      LDI	R25,0
    03C9 8399      STD	Y+1,R25
    03CA 8388      STD	Y+0,R24
    03CB E021      LDI	R18,1
    03CC E003      LDI	R16,3
    03CD DF92      RCALL	_lcd_puts
(0059) 	while(1);
FILE: <library>
    03CE CFFF      RJMP	0x03CE
    03CF 9622      ADIW	R28,2
    03D0 9508      RET
push_arg4:
    03D1 933A      ST	R19,-Y
    03D2 932A      ST	R18,-Y
push_arg2:
    03D3 931A      ST	R17,-Y
    03D4 930A      ST	R16,-Y
    03D5 9508      RET
div32u:
    03D6 94E8      BCLR	6
    03D7 C001      RJMP	0x03D9
mod32u:
    03D8 9468      BSET	6
    03D9 D02F      RCALL	long_div_prolog
    03DA 24CC      CLR	R12
    03DB C008      RJMP	0x03E4
div32s:
    03DC 94E8      BCLR	6
    03DD C001      RJMP	0x03DF
mod32s:
    03DE 9468      BSET	6
    03DF D029      RCALL	long_div_prolog
    03E0 FD37      SBRC	R19,7
    03E1 D053      RCALL	neg_R16_R19
    03E2 FDB7      SBRC	R27,7
    03E3 D05A      RCALL	neg_R24_R27
    03E4 2477      CLR	R7
    03E5 2488      CLR	R8
    03E6 2499      CLR	R9
    03E7 24AA      CLR	R10
    03E8 24BB      CLR	R11
    03E9 D041      RCALL	tst_R16_R19
    03EA F0C1      BEQ	0x0403
    03EB D044      RCALL	tst_R24_R27
    03EC F0B1      BEQ	0x0403
    03ED E2E8      LDI	R30,0x28
    03EE 0F00      LSL	R16
    03EF 1F11      ROL	R17
    03F0 1F22      ROL	R18
    03F1 1F33      ROL	R19
    03F2 1C77      ROL	R7
    03F3 1C88      ROL	R8
    03F4 1C99      ROL	R9
    03F5 1CAA      ROL	R10
    03F6 1CBB      ROL	R11
    03F7 1688      CP	R8,R24
    03F8 0699      CPC	R9,R25
    03F9 06AA      CPC	R10,R26
    03FA 06BB      CPC	R11,R27
    03FB F028      BCS	0x0401
    03FC 1A88      SUB	R8,R24
    03FD 0A99      SBC	R9,R25
    03FE 0AAA      SBC	R10,R26
    03FF 0ABB      SBC	R11,R27
    0400 9503      INC	R16
    0401 95EA      DEC	R30
    0402 F759      BNE	0x03EE
    0403 F426      BRTC	0x0408
    0404 2D08      MOV	R16,R8
    0405 2D19      MOV	R17,R9
    0406 2D2A      MOV	R18,R10
    0407 2D3B      MOV	R19,R11
    0408 C013      RJMP	long_div_epilog
long_div_prolog:
    0409 927A      ST	R7,-Y
    040A 928A      ST	R8,-Y
    040B 929A      ST	R9,-Y
    040C 92AA      ST	R10,-Y
    040D 92BA      ST	R11,-Y
    040E 92CA      ST	R12,-Y
    040F 93EA      ST	R30,-Y
    0410 938A      ST	R24,-Y
    0411 939A      ST	R25,-Y
    0412 93AA      ST	R26,-Y
    0413 93BA      ST	R27,-Y
    0414 858B      LDD	R24,Y+11
    0415 859C      LDD	R25,Y+12
    0416 85AD      LDD	R26,Y+13
    0417 85BE      LDD	R27,Y+14
    0418 2EC3      MOV	R12,R19
    0419 F00E      BRTS	0x041B
    041A 26CB      EOR	R12,R27
    041B 9508      RET
long_div_epilog:
    041C FCC7      SBRC	R12,7
    041D D017      RCALL	neg_R16_R19
    041E 91B9      LD	R27,Y+
    041F 91A9      LD	R26,

⌨️ 快捷键说明

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