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

📄 ac16-1.lst

📁 AVR单片机ATmega16(L)应用实例-驱动128×64点阵图形液晶模块
💻 LST
📖 第 1 页 / 共 2 页
字号:
__text_start:
__start:
    022A E5CF      LDI	R28,0x5F
    022B E0D4      LDI	R29,4
    022C BFCD      OUT	0x3D,R28
    022D BFDE      OUT	0x3E,R29
    022E 51C0      SUBI	R28,0x10
    022F 40D0      SBCI	R29,0
    0230 EA0A      LDI	R16,0xAA
    0231 8308      STD	Y+0,R16
    0232 2400      CLR	R0
    0233 E6E0      LDI	R30,0x60
    0234 E0F0      LDI	R31,0
    0235 E010      LDI	R17,0
    0236 36E0      CPI	R30,0x60
    0237 07F1      CPC	R31,R17
    0238 F011      BEQ	0x023B
    0239 9201      ST	R0,Z+
    023A CFFB      RJMP	0x0236
    023B 8300      STD	Z+0,R16
    023C E5E4      LDI	R30,0x54
    023D E0F4      LDI	R31,4
    023E E6A0      LDI	R26,0x60
    023F E0B0      LDI	R27,0
    0240 E014      LDI	R17,4
    0241 35E4      CPI	R30,0x54
    0242 07F1      CPC	R31,R17
    0243 F021      BEQ	0x0248
    0244 95C8      LPM
    0245 9631      ADIW	R30,1
    0246 920D      ST	R0,X+
    0247 CFF9      RJMP	0x0241
    0248 940E0264  CALL	_main
_exit:
    024A CFFF      RJMP	_exit
FILE: d:\MYDOCU~1\ac16-1\ac16-1.c
(0001) #include <iom16v.h>		
(0002) #include <macros.h>
(0003) //-----------------------------------------------
(0004) #define uchar unsigned char	
(0005) #define uint unsigned int
(0006) //---------------引脚电平的宏定义
(0007) #define RS_1 PORTB|=BIT(PB0)	 
(0008) #define RS_0 PORTB&=~BIT(PB0) 
(0009) #define RW_1 PORTB|=BIT(PB1)	 
(0010) #define RW_0 PORTB&=~BIT(PB1)
(0011) #define EN_1 PORTB|=BIT(PB2)	 
(0012) #define EN_0 PORTB&=~BIT(PB2) 
(0013) #define CS1_1 PORTB|=BIT(PB3)	  
(0014) #define CS1_0 PORTB&=~BIT(PB3) 
(0015) #define CS2_1 PORTB|=BIT(PB4)	 
(0016) #define CS2_0 PORTB&=~BIT(PB4)
(0017) #define RST_1 PORTB|=BIT(PB5)	 
(0018) #define RST_0 PORTB&=~BIT(PB5) 
(0019) //======================================
(0020) #define DataPort PORTA		//端口定义,双向数据总线。
(0021) #define xtal 8   				
(0022) 
(0023) void Delay_1ms(void)		//1mS延时子函数
(0024) { uint i;
(0025)  for(i=1;i<(uint)(xtal*143-2);i++)
_Delay_1ms:
  i                    --> R16
    024B E001      LDI	R16,1
    024C E010      LDI	R17,0
    024D C002      RJMP	0x0250
    024E 5F0F      SUBI	R16,0xFF
    024F 4F1F      SBCI	R17,0xFF
    0250 3706      CPI	R16,0x76
    0251 E0E4      LDI	R30,4
    0252 071E      CPC	R17,R30
    0253 F3D0      BCS	0x024E
    0254 9508      RET
_Delay_nms:
  i                    --> R20
  n                    --> R22
    0255 940E04E5  CALL	push_gset2
    0257 01B8      MOVW	R22,R16
(0026) ;
(0027) }
(0028) //====================================
(0029) void Delay_nms(uint n)		//n*1mS延时子函数
(0030) {
(0031)  uint i=0;
    0258 2744      CLR	R20
    0259 2755      CLR	R21
    025A C003      RJMP	0x025E
(0032)    while(i<n)
(0033)    {Delay_1ms();
    025B DFEF      RCALL	_Delay_1ms
(0034)     i++;
    025C 5F4F      SUBI	R20,0xFF
    025D 4F5F      SBCI	R21,0xFF
    025E 1746      CP	R20,R22
    025F 0757      CPC	R21,R23
    0260 F3D0      BCS	0x025B
    0261 940E04D9  CALL	pop_gset2
    0263 9508      RET
_main:
  loop                 --> R20
    0264 9723      SBIW	R28,3
(0035)    }
(0036) }
(0037) /**********函数声明列表*************/
(0038) void Delay_1ms(void);
(0039) void Delay_nms(uint n);		
(0040) void wcode(uchar c,uchar sel_l,uchar sel_r);
(0041) void wdata(uchar c,uchar sel_l,uchar sel_r);
(0042) void set_startline(uchar i);			
(0043) void set_xy(uchar x,uchar y);			
(0044) void dison_off(uchar o);				
(0045) void reset(void);						
(0046) void m16_init(void);
(0047) void lcd_init(void);					
(0048) void lw(uchar x, uchar y, uchar dd);
(0049) void display_hz(uchar x, uchar y, uchar n, uchar fb);
(0050) const uchar hz[];						
(0051) /*************主函数*************/
(0052) 
(0053) void main(void)	
(0054) {								
(0055) uchar loop;						
(0056) m16_init();			
    0265 D153      RCALL	_m16_init
(0057) lcd_init();			
    0266 D203      RCALL	_lcd_init
(0058) Delay_nms(1000);		
    0267 EE08      LDI	R16,0xE8
    0268 E013      LDI	R17,3
    0269 DFEB      RCALL	_Delay_nms
    026A C14B      RJMP	0x03B6
(0059) while(1)				
(0060) {				
(0061) /************************************/
(0062) for(loop=0;loop<8;loop++)			
    026B 2744      CLR	R20
    026C C041      RJMP	0x02AE
(0063) 	{display_hz(2*loop,0,loop,0);	
    026D 2422      CLR	R2
    026E 822A      STD	Y+2,R2
    026F 8348      STD	Y+0,R20
    0270 2722      CLR	R18
    0271 E082      LDI	R24,2
    0272 9F84      MUL	R24,R20
    0273 2D00      MOV	R16,R0
    0274 D212      RCALL	_display_hz
(0064) 	display_hz(2*loop,0,loop,0);	
    0275 2422      CLR	R2
    0276 822A      STD	Y+2,R2
    0277 8348      STD	Y+0,R20
    0278 2722      CLR	R18
    0279 E082      LDI	R24,2
    027A 9F84      MUL	R24,R20
    027B 2D00      MOV	R16,R0
    027C D20A      RCALL	_display_hz
(0065) 	display_hz(2*loop,0,loop,0);	
    027D 2422      CLR	R2
    027E 822A      STD	Y+2,R2
    027F 8348      STD	Y+0,R20
    0280 2722      CLR	R18
    0281 E082      LDI	R24,2
    0282 9F84      MUL	R24,R20
    0283 2D00      MOV	R16,R0
    0284 D202      RCALL	_display_hz
(0066) 	display_hz(2*loop,0,loop,0);	
    0285 2422      CLR	R2
    0286 822A      STD	Y+2,R2
    0287 8348      STD	Y+0,R20
    0288 2722      CLR	R18
    0289 E082      LDI	R24,2
    028A 9F84      MUL	R24,R20
    028B 2D00      MOV	R16,R0
    028C D1FA      RCALL	_display_hz
(0067) 	display_hz(2*loop,0,loop,0);	
    028D 2422      CLR	R2
    028E 822A      STD	Y+2,R2
    028F 8348      STD	Y+0,R20
    0290 2722      CLR	R18
    0291 E082      LDI	R24,2
    0292 9F84      MUL	R24,R20
    0293 2D00      MOV	R16,R0
    0294 D1F2      RCALL	_display_hz
(0068) 	display_hz(2*loop,0,loop,0);	
    0295 2422      CLR	R2
    0296 822A      STD	Y+2,R2
    0297 8348      STD	Y+0,R20
    0298 2722      CLR	R18
    0299 E082      LDI	R24,2
    029A 9F84      MUL	R24,R20
    029B 2D00      MOV	R16,R0
    029C D1EA      RCALL	_display_hz
(0069) 	display_hz(2*loop,0,loop,0);	
    029D 2422      CLR	R2
    029E 822A      STD	Y+2,R2
    029F 8348      STD	Y+0,R20
    02A0 2722      CLR	R18
    02A1 E082      LDI	R24,2
    02A2 9F84      MUL	R24,R20
    02A3 2D00      MOV	R16,R0
    02A4 D1E2      RCALL	_display_hz
(0070) 	display_hz(2*loop,0,loop,0);}	
    02A5 2422      CLR	R2
    02A6 822A      STD	Y+2,R2
    02A7 8348      STD	Y+0,R20
    02A8 2722      CLR	R18
    02A9 E082      LDI	R24,2
    02AA 9F84      MUL	R24,R20
    02AB 2D00      MOV	R16,R0
    02AC D1DA      RCALL	_display_hz
    02AD 9543      INC	R20
    02AE 3048      CPI	R20,0x8
    02AF F408      BCC	0x02B1
    02B0 CFBC      RJMP	0x026D
(0071) /******************************************/
(0072) for(loop=0;loop<8;loop++)			
    02B1 2744      CLR	R20
    02B2 C051      RJMP	0x0304
(0073) 	{display_hz(2*loop,2,loop+8,0);	
    02B3 2422      CLR	R2
    02B4 822A      STD	Y+2,R2
    02B5 2F84      MOV	R24,R20
    02B6 5F88      SUBI	R24,0xF8
    02B7 8388      STD	Y+0,R24
    02B8 E022      LDI	R18,2
    02B9 E082      LDI	R24,2
    02BA 9F84      MUL	R24,R20
    02BB 2D00      MOV	R16,R0
    02BC D1CA      RCALL	_display_hz
(0074) 	display_hz(2*loop,2,loop+8,0);	
    02BD 2422      CLR	R2
    02BE 822A      STD	Y+2,R2
    02BF 2F84      MOV	R24,R20
    02C0 5F88      SUBI	R24,0xF8
    02C1 8388      STD	Y+0,R24
    02C2 E022      LDI	R18,2
    02C3 E082      LDI	R24,2
    02C4 9F84      MUL	R24,R20
    02C5 2D00      MOV	R16,R0
    02C6 D1C0      RCALL	_display_hz
(0075) 	display_hz(2*loop,2,loop+8,0);	
    02C7 2422      CLR	R2
    02C8 822A      STD	Y+2,R2
    02C9 2F84      MOV	R24,R20
    02CA 5F88      SUBI	R24,0xF8
    02CB 8388      STD	Y+0,R24
    02CC E022      LDI	R18,2
    02CD E082      LDI	R24,2
    02CE 9F84      MUL	R24,R20
    02CF 2D00      MOV	R16,R0
    02D0 D1B6      RCALL	_display_hz
(0076) 	display_hz(2*loop,2,loop+8,0);	
    02D1 2422      CLR	R2
    02D2 822A      STD	Y+2,R2
    02D3 2F84      MOV	R24,R20
    02D4 5F88      SUBI	R24,0xF8
    02D5 8388      STD	Y+0,R24
    02D6 E022      LDI	R18,2
    02D7 E082      LDI	R24,2
    02D8 9F84      MUL	R24,R20
    02D9 2D00      MOV	R16,R0
    02DA D1AC      RCALL	_display_hz
(0077) 	display_hz(2*loop,2,loop+8,0);	
    02DB 2422      CLR	R2
    02DC 822A      STD	Y+2,R2
    02DD 2F84      MOV	R24,R20
    02DE 5F88      SUBI	R24,0xF8
    02DF 8388      STD	Y+0,R24
    02E0 E022      LDI	R18,2
    02E1 E082      LDI	R24,2
    02E2 9F84      MUL	R24,R20
    02E3 2D00      MOV	R16,R0
    02E4 D1A2      RCALL	_display_hz
(0078) 	display_hz(2*loop,2,loop+8,0);	
    02E5 2422      CLR	R2
    02E6 822A      STD	Y+2,R2
    02E7 2F84      MOV	R24,R20
    02E8 5F88      SUBI	R24,0xF8
    02E9 8388      STD	Y+0,R24
    02EA E022      LDI	R18,2
    02EB E082      LDI	R24,2
    02EC 9F84      MUL	R24,R20
    02ED 2D00      MOV	R16,R0
    02EE D198      RCALL	_display_hz
(0079) 	display_hz(2*loop,2,loop+8,0);	
    02EF 2422      CLR	R2
    02F0 822A      STD	Y+2,R2
    02F1 2F84      MOV	R24,R20
    02F2 5F88      SUBI	R24,0xF8
    02F3 8388      STD	Y+0,R24
    02F4 E022      LDI	R18,2
    02F5 E082      LDI	R24,2
    02F6 9F84      MUL	R24,R20
    02F7 2D00      MOV	R16,R0
    02F8 D18E      RCALL	_display_hz
(0080) 	display_hz(2*loop,2,loop+8,0);}	
    02F9 2422      CLR	R2
    02FA 822A      STD	Y+2,R2
    02FB 2F84      MOV	R24,R20
    02FC 5F88      SUBI	R24,0xF8
    02FD 8388      STD	Y+0,R24
    02FE E022      LDI	R18,2
    02FF E082      LDI	R24,2
    0300 9F84      MUL	R24,R20
    0301 2D00      MOV	R16,R0
    0302 D184      RCALL	_display_hz
    0303 9543      INC	R20
    0304 3048      CPI	R20,0x8
    0305 F408      BCC	0x0307
    0306 CFAC      RJMP	0x02B3
(0081) /*************************************/
(0082) for(loop=0;loop<8;loop++)		
    0307 2744      CLR	R20
    0308 C051      RJMP	0x035A
(0083) 	{display_hz(2*loop,4,loop+16,1);
    0309 E081      LDI	R24,1
    030A 838A      STD	Y+2,R24
    030B 2F84      MOV	R24,R20
    030C 5F80      SUBI	R24,0xF0
    030D 8388      STD	Y+0,R24
    030E E024      LDI	R18,4
    030F E082      LDI	R24,2
    0310 9F84      MUL	R24,R20
    0311 2D00      MOV	R16,R0
    0312 D174      RCALL	_display_hz
(0084) 	display_hz(2*loop,4,loop+16,1);	
    0313 E081      LDI	R24,1
    0314 838A      STD	Y+2,R24
    0315 2F84      MOV	R24,R20
    0316 5F80      SUBI	R24,0xF0
    0317 8388      STD	Y+0,R24
    0318 E024      LDI	R18,4
    0319 E082      LDI	R24,2
    031A 9F84      MUL	R24,R20
    031B 2D00      MOV	R16,R0
    031C D16A      RCALL	_display_hz
(0085) 	display_hz(2*loop,4,loop+16,1);
    031D E081      LDI	R24,1
    031E 838A      STD	Y+2,R24
    031F 2F84      MOV	R24,R20
    0320 5F80      SUBI	R24,0xF0
    0321 8388      STD	Y+0,R24
    0322 E024      LDI	R18,4
    0323 E082      LDI	R24,2
    0324 9F84      MUL	R24,R20
    0325 2D00      MOV	R16,R0
    0326 D160      RCALL	_display_hz
(0086) 	display_hz(2*loop,4,loop+16,1);
    0327 E081      LDI	R24,1
    0328 838A      STD	Y+2,R24
    0329 2F84      MOV	R24,R20
    032A 5F80      SUBI	R24,0xF0
    032B 8388      STD	Y+0,R24
    032C E024      LDI	R18,4
    032D E082      LDI	R24,2
    032E 9F84      MUL	R24,R20
    032F 2D00      MOV	R16,R0
    0330 D156      RCALL	_display_hz
(0087) 	display_hz(2*loop,4,loop+16,1);
    0331 E081      LDI	R24,1
    0332 838A      STD	Y+2,R24
    0333 2F84      MOV	R24,R20
    0334 5F80      SUBI	R24,0xF0
    0335 8388      STD	Y+0,R24
    0336 E024      LDI	R18,4
    0337 E082      LDI	R24,2
    0338 9F84      MUL	R24,R20
    0339 2D00      MOV	R16,R0
    033A D14C      RCALL	_display_hz
(0088) 	display_hz(2*loop,4,loop+16,1);
    033B E081      LDI	R24,1
    033C 838A      STD	Y+2,R24
    033D 2F84      MOV	R24,R20
    033E 5F80      SUBI	R24,0xF0
    033F 8388      STD	Y+0,R24
    0340 E024      LDI	R18,4
    0341 E082      LDI	R24,2
    0342 9F84      MUL	R24,R20
    0343 2D00      MOV	R16,R0
    0344 D142      RCALL	_display_hz
(0089) 	display_hz(2*loop,4,loop+16,1);
    0345 E081      LDI	R24,1
    0346 838A      STD	Y+2,R24
    0347 2F84      MOV	R24,R20
    0348 5F80      SUBI	R24,0xF0
    0349 8388      STD	Y+0,R24
    034A E024      LDI	R18,4
    034B E082      LDI	R24,2
    034C 9F84      MUL	R24,R20
    034D 2D00      MOV	R16,R0
    034E D138      RCALL	_display_hz
(0090) 	display_hz(2*loop,4,loop+16,1);}//60
    034F E081      LDI	R24,1
    0350 838A      STD	Y+2,R24
    0351 2F84      MOV	R24,R20
    0352 5F80      SUBI	R24,0xF0
    0353 8388      STD	Y+0,R24
    0354 E024      LDI	R18,4
    0355 E082      LDI	R24,2
    0356 9F84      MUL	R24,R20
    0357 2D00      MOV	R16,R0
    0358 D12E      RCALL	_display_hz
    0359 9543      INC	R20
    035A 3048      CPI	R20,0x8
    035B F408      BCC	0x035D
    035C CFAC      RJMP	0x0309
(0091) 
(0092) /**********************************/
(0093) for(loop=0;loop<8;loop++)
    035D 2744      CLR	R20
    035E C051      RJMP	0x03B0
(0094) 	{display_hz(2*loop,6,loop+24,1);
    035F E081      LDI	R24,1
    0360 838A      STD	Y+2,R24
    0361 2F84      MOV	R24,R20
    0362 5E88      SUBI	R24,0xE8
    0363 8388      STD	Y+0,R24
    0364 E026      LDI	R18,6
    0365 E082      LDI	R24,2
    0366 9F84      MUL	R24,R20
    0367 2D00      MOV	R16,R0
    0368 D11E      RCALL	_display_hz
(0095) 	display_hz(2*loop,6,loop+24,1);
    0369 E081      LDI	R24,1
    036A 838A      STD	Y+2,R24
    036B 2F84      MOV	R24,R20
    036C 5E88      SUBI	R24,0xE8
    036D 8388      STD	Y+0,R24
    036E E026      LDI	R18,6
    036F E082      LDI	R24,2
    0370 9F84      MUL	R24,R20
    0371 2D00      MOV	R16,R0
    0372 D114      RCALL	_display_hz
(0096) 	display_hz(2*loop,6,loop+24,1);
    0373 E081      LDI	R24,1
    0374 838A      STD	Y+2,R24
    0375 2F84      MOV	R24,R20
    0376 5E88      SUBI	R24,0xE8
    0377 8388      STD	Y+0,R24
    0378 E026      LDI	R18,6
    0379 E082      LDI	R24,2
    037A 9F84      MUL	R24,R20
    037B 2D00      MOV	R16,R0
    037C D10A      RCALL	_display_hz
(0097) 	display_hz(2*loop,6,loop+24,1);
    037D E081      LDI	R24,1
    037E 838A      STD	Y+2,R24
    037F 2F84      MOV	R24,R20
    0380 5E88      SUBI	R24,0xE8
    0381 8388      STD	Y+0,R24
    0382 E026      LDI	R18,6
    0383 E082      LDI	R24,2
    0384 9F84      MUL	R24,R20
    0385 2D00      MOV	R16,R0
    0386 D100      RCALL	_display_hz
(0098) 	display_hz(2*loop,6,loop+24,1);
    0387 E081      LDI	R24,1
    0388 838A      STD	Y+2,R24
    0389 2F84      MOV	R24,R20
    038A 5E88      SUBI	R24,0xE8
    038B 8388      STD	Y+0,R24
    038C E026      LDI	R18,6
    038D E082      LDI	R24,2
    038E 9F84      MUL	R24,R20
    038F 2D00      MOV	R16,R0
    0390 D0F6      RCALL	_display_hz
(0099) 	display_hz(2*loop,6,loop+24,1);
    0391 E081      LDI	R24,1
    0392 838A      STD	Y+2,R24
    0393 2F84      MOV	R24,R20
    0394 5E88      SUBI	R24,0xE8
    0395 8388      STD	Y+0,R24
    0396 E026      LDI	R18,6
    0397 E082      LDI	R24,2
    0398 9F84      MUL	R24,R20
    0399 2D00      MOV	R16,R0
    039A D0EC      RCALL	_display_hz
(0100) 	display_hz(2*loop,6,loop+24,1);
    039B E081      LDI	R24,1
    039C 838A      STD	Y+2,R24
    039D 2F84      MOV	R24,R20
    039E 5E88      SUBI	R24,0xE8
    039F 8388      STD	Y+0,R24
    03A0 E026      LDI	R18,6
    03A1 E082      LDI	R24,2
    03A2 9F84      MUL	R24,R20
    03A3 2D00      MOV	R16,R0
    03A4 D0E2      RCALL	_display_hz
(0101) 	display_hz(2*loop,6,loop+24,1);}
    03A5 E081      LDI	R24,1
    03A6 838A      STD	Y+2,R24
    03A7 2F84      MOV	R24,R20
    03A8 5E88      SUBI	R24,0xE8

⌨️ 快捷键说明

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