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

📄 lcm.lst

📁 8位液晶屏LCM0825的点亮源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
    00E9 B222      IN	R2,0x12
    00EA 2A28      OR	R2,R24
    00EB BA22      OUT	0x12,R2
    00EC DF52      RCALL	_delay_1us
(0090)      PORTD&=0xbf; delay_1us(); 
    00ED B382      IN	R24,0x12
    00EE 7B8F      ANDI	R24,0xBF
    00EF BB82      OUT	0x12,R24
    00F0 DF4E      RCALL	_delay_1us
(0091) 	 PORTD|=0x40;  delay_1us();             
    00F1 9A96      SBI	0x12,6
    00F2 DF4C      RCALL	_delay_1us
(0092)      dat=(dat<<1); delay_1us(); 
    00F3 0F66      LSL	R22
    00F4 DF4A      RCALL	_delay_1us
    00F5 9543      INC	R20
    00F6 3048      CPI	R20,0x8
    00F7 F358      BCS	0x00E3
(0093)     }
(0094) 	PORTD|=0x10;delay_1us(); 
    00F8 9A94      SBI	0x12,4
    00F9 DF45      RCALL	_delay_1us
(0095) 	
(0096) 	PORTD|=0xc0;delay_1us();
    00FA B382      IN	R24,0x12
    00FB 6C80      ORI	R24,0xC0
    00FC BB82      OUT	0x12,R24
    00FD DF41      RCALL	_delay_1us
(0097) 	
(0098) 	//return(read_lcd()==)  
(0099) 	
(0100) 	   }break;
    00FE C030      RJMP	0x012F
(0101)    case 10://将高七位全部置零
(0102)    {
(0103)   
(0104)     dat=(dat<<3);
    00FF 0F66      LSL	R22
    0100 0F66      LSL	R22
    0101 0F66      LSL	R22
(0105)     PORTD&=0xef;delay_1us(); 
    0102 B382      IN	R24,0x12
    0103 7E8F      ANDI	R24,0xEF
    0104 BB82      OUT	0x12,R24
    0105 DF39      RCALL	_delay_1us
(0106) 	 data_1(1);
    0106 E001      LDI	R16,1
    0107 E010      LDI	R17,0
    0108 DF6D      RCALL	_data_1
(0107)    data_0(1);
    0109 E001      LDI	R16,1
    010A E010      LDI	R17,0
    010B DF54      RCALL	_data_0
(0108)    data_1(2);
    010C E002      LDI	R16,2
    010D E010      LDI	R17,0
    010E DF67      RCALL	_data_1
(0109) 	for(j=0;j<5;j++)
    010F 2744      CLR	R20
    0110 C013      RJMP	0x0124
(0110)     { 
(0111) 	
(0112)      PORTD&=0x7f;  delay_1us();       
    0111 B382      IN	R24,0x12
    0112 778F      ANDI	R24,0x7F
    0113 BB82      OUT	0x12,R24
    0114 DF2A      RCALL	_delay_1us
(0113)      PORTD|=(dat&0x80);delay_1us(); 
    0115 2F86      MOV	R24,R22
    0116 7880      ANDI	R24,0x80
    0117 B222      IN	R2,0x12
    0118 2A28      OR	R2,R24
    0119 BA22      OUT	0x12,R2
    011A DF24      RCALL	_delay_1us
(0114)      PORTD&=0xbf; delay_1us(); 
    011B B382      IN	R24,0x12
    011C 7B8F      ANDI	R24,0xBF
    011D BB82      OUT	0x12,R24
    011E DF20      RCALL	_delay_1us
(0115) 	 PORTD|=0x40;  delay_1us();             
    011F 9A96      SBI	0x12,6
    0120 DF1E      RCALL	_delay_1us
(0116)      dat=(dat<<1); delay_1us(); 
    0121 0F66      LSL	R22
    0122 DF1C      RCALL	_delay_1us
    0123 9543      INC	R20
    0124 3045      CPI	R20,5
    0125 F358      BCS	0x0111
(0117)     }
(0118) 	data_0(4);
    0126 E004      LDI	R16,4
    0127 E010      LDI	R17,0
    0128 DF37      RCALL	_data_0
(0119) 	PORTD|=0x10;delay_1us(); 
    0129 9A94      SBI	0x12,4
    012A DF14      RCALL	_delay_1us
(0120) 	
(0121) 	PORTD|=0xc0;delay_1us();
    012B B382      IN	R24,0x12
    012C 6C80      ORI	R24,0xC0
    012D BB82      OUT	0x12,R24
    012E DF10      RCALL	_delay_1us
(0122) 	
(0123) 	//return(read_lcd()==)  
(0124) 	
(0125) 	   }break;
    012F D064      RCALL	pop_gset3
    0130 9508      RET
_main:
  init                 --> Y+20
  add                  --> R22
  address              --> Y+0
  j                    --> R22
  i                    --> R20
    0131 9768      SBIW	R28,0x18
(0126)    
(0127)  }
(0128) }
(0129)  void main(void)
(0130) {
(0131) unsigned char init[4]={0x29,0x18,0x01,0x03}, address[20]={0x06,0x10,0x03,0x1e,0x07,0x1a,              
    0132 E286      LDI	R24,0x26
    0133 E090      LDI	R25,0
    0134 01FE      MOVW	R30,R28
    0135 9674      ADIW	R30,0x14
    0136 E004      LDI	R16,4
    0137 E010      LDI	R17,0
    0138 93FA      ST	R31,-Y
    0139 93EA      ST	R30,-Y
    013A 939A      ST	R25,-Y
    013B 938A      ST	R24,-Y
    013C D078      RCALL	asgncblk
    013D E28A      LDI	R24,0x2A
    013E E090      LDI	R25,0
    013F 01FE      MOVW	R30,R28
    0140 E104      LDI	R16,0x14
    0141 E010      LDI	R17,0
    0142 93FA      ST	R31,-Y
    0143 93EA      ST	R30,-Y
    0144 939A      ST	R25,-Y
    0145 938A      ST	R24,-Y
    0146 D06E      RCALL	asgncblk
(0132)                                                                                0x06,0x13,0x05,0x1b,0x05,0x1f,
(0133) 															                   0x07,0x10,0x07,0x1f,0x07,0x1b,
(0134) 															                   0x07,0x1d};//初始化命令字表和0~9数字表
(0135)                                                                                                                                                                                                
(0136)  char i,add;    
(0137)  unsigned int j;                                                                                      
(0138)  DDRD|=0xf0;delay_1us();   
    0147 B381      IN	R24,0x11
    0148 6F80      ORI	R24,0xF0
    0149 BB81      OUT	0x11,R24
    014A DEF4      RCALL	_delay_1us
(0139)  PORTD|=0xf0;delay_1us();   
    014B B382      IN	R24,0x12
    014C 6F80      ORI	R24,0xF0
    014D BB82      OUT	0x12,R24
    014E DEF0      RCALL	_delay_1us
(0140) for(i=0;i<10;i++)
    014F 2744      CLR	R20
    0150 C00A      RJMP	0x015B
(0141)    	   for(j=0;j<6000;j++);	  
    0151 2766      CLR	R22
    0152 2777      CLR	R23
    0153 C002      RJMP	0x0156
    0154 5F6F      SUBI	R22,0xFF
    0155 4F7F      SBCI	R23,0xFF
    0156 3760      CPI	R22,0x70
    0157 E1E7      LDI	R30,0x17
    0158 077E      CPC	R23,R30
    0159 F3D0      BCS	0x0154
    015A 9543      INC	R20
    015B 304A      CPI	R20,0xA
    015C F3A0      BCS	0x0151
(0142)  for(i=0;i<4;i++)//初始化
    015D 2744      CLR	R20
    015E C00A      RJMP	0x0169
(0143)   write_lcd(12,init[i]);
    015F 01CE      MOVW	R24,R28
    0160 9644      ADIW	R24,0x14
    0161 2FE4      MOV	R30,R20
    0162 27FF      CLR	R31
    0163 0FE8      ADD	R30,R24
    0164 1FF9      ADC	R31,R25
    0165 8120      LDD	R18,Z+0
    0166 E00C      LDI	R16,0xC
    0167 DF25      RCALL	_write_lcd
    0168 9543      INC	R20
    0169 3044      CPI	R20,4
    016A F3A0      BCS	0x015F
(0144)   for(add=2;add<16;add++)//将高七位置零
    016B E062      LDI	R22,2
    016C C004      RJMP	0x0171
(0145)   write_lcd(10,add);
    016D 2F26      MOV	R18,R22
    016E E00A      LDI	R16,0xA
    016F DF1D      RCALL	_write_lcd
    0170 9563      INC	R22
    0171 3160      CPI	R22,0x10
    0172 F3D0      BCS	0x016D
    0173 C01B      RJMP	0x018F
(0146)  //delay(300);
(0147)  while(1)
(0148)   {
(0149)   for(i=0;i<20;i++) //写一个数据延时一段时间
    0174 2744      CLR	R20
    0175 C017      RJMP	0x018D
(0150)    {
(0151)     write_lcd(13,address[i++]);
    0176 2E24      MOV	R2,R20
    0177 2433      CLR	R3
    0178 5F4F      SUBI	R20,0xFF
    0179 01CE      MOVW	R24,R28
    017A 2DE2      MOV	R30,R2
    017B 27FF      CLR	R31
    017C 0FE8      ADD	R30,R24
    017D 1FF9      ADC	R31,R25
    017E 8120      LDD	R18,Z+0
    017F E00D      LDI	R16,0xD
    0180 DF0C      RCALL	_write_lcd
(0152)    write_lcd(13,address[i]);
    0181 01CE      MOVW	R24,R28
    0182 2FE4      MOV	R30,R20
    0183 27FF      CLR	R31
    0184 0FE8      ADD	R30,R24
    0185 1FF9      ADC	R31,R25
    0186 8120      LDD	R18,Z+0
    0187 E00D      LDI	R16,0xD
    0188 DF04      RCALL	_write_lcd
(0153)   
(0154) 	delay(200);
FILE: <library>
    0189 EC08      LDI	R16,0xC8
    018A E010      LDI	R17,0
    018B DEC7      RCALL	_delay
    018C 9543      INC	R20
    018D 3144      CPI	R20,0x14
    018E F338      BCS	0x0176
    018F CFE4      RJMP	0x0174
    0190 9668      ADIW	R28,0x18
    0191 9508      RET
pop_gset2:
    0192 E0E2      LDI	R30,2
    0193 C00E      RJMP	pop
pop_gset3:
    0194 E0E4      LDI	R30,4
    0195 C00C      RJMP	pop
push_gset5:
    0196 92FA      ST	R15,-Y
    0197 92EA      ST	R14,-Y
push_gset4:
    0198 92DA      ST	R13,-Y
    0199 92CA      ST	R12,-Y
push_gset3:
    019A 92BA      ST	R11,-Y
    019B 92AA      ST	R10,-Y
push_gset2:
    019C 937A      ST	R23,-Y
    019D 936A      ST	R22,-Y
push_gset1:
    019E 935A      ST	R21,-Y
    019F 934A      ST	R20,-Y
    01A0 9508      RET
pop_gset1:
    01A1 E0E1      LDI	R30,1
pop:
    01A2 9149      LD	R20,Y+
    01A3 9159      LD	R21,Y+
    01A4 FDE0      SBRC	R30,0
    01A5 9508      RET
    01A6 9169      LD	R22,Y+
    01A7 9179      LD	R23,Y+
    01A8 FDE1      SBRC	R30,1
    01A9 9508      RET
    01AA 90A9      LD	R10,Y+
    01AB 90B9      LD	R11,Y+
    01AC FDE2      SBRC	R30,2
    01AD 9508      RET
    01AE 90C9      LD	R12,Y+
    01AF 90D9      LD	R13,Y+
    01B0 FDE3      SBRC	R30,3
    01B1 9508      RET
    01B2 90E9      LD	R14,Y+
    01B3 90F9      LD	R15,Y+
    01B4 9508      RET
asgncblk:
    01B5 93AA      ST	R26,-Y
    01B6 93BA      ST	R27,-Y
    01B7 93EA      ST	R30,-Y
    01B8 93FA      ST	R31,-Y
    01B9 920A      ST	R0,-Y
    01BA 81AF      LDD	R26,Y+7
    01BB 85B8      LDD	R27,Y+8
    01BC 81ED      LDD	R30,Y+5
    01BD 81FE      LDD	R31,Y+6
    01BE 3000      CPI	R16,0
    01BF 0701      CPC	R16,R17
    01C0 F031      BEQ	0x01C7
    01C1 95C8      LPM
    01C2 920D      ST	R0,X+
    01C3 9631      ADIW	R30,1
    01C4 5001      SUBI	R16,1
    01C5 4010      SBCI	R17,0
    01C6 CFF7      RJMP	0x01BE
    01C7 9009      LD	R0,Y+
    01C8 91F9      LD	R31,Y+
    01C9 91E9      LD	R30,Y+
    01CA 91B9      LD	R27,Y+
    01CB 91A9      LD	R26,Y+
    01CC 9624      ADIW	R28,4
    01CD 9508      RET

⌨️ 快捷键说明

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