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

📄 lcd1602四线接口应用范例.lst

📁 LCD1602四线接口应用范例(AVR_GCC)
💻 LST
📖 第 1 页 / 共 4 页
字号:
(0022)   { 
(0023)      delay_nms(20);
    03FF E104      LDI	R16,0x14
    0400 E010      LDI	R17,0
    0401 D078      RCALL	_delay_nms
(0024) 	 LCD_init();
    0402 DC60      RCALL	_LCD_init
(0025) //例如要写入以下数据 
(0026) 	 BT1_time=545;
    0403 E281      LDI	R24,0x21
    0404 E092      LDI	R25,2
    0405 939000A9  STS	BT1_time+1,R25
    0407 938000A8  STS	BT1_time,R24
(0027) 	 BT1_T=551;
    0409 E287      LDI	R24,0x27
    040A 939000A7  STS	BT1_T+1,R25
    040C 938000A6  STS	BT1_T,R24
(0028) 	 D882_P=1050;
    040E E18A      LDI	R24,0x1A
    040F E094      LDI	R25,4
    0410 939000A5  STS	D882_P+1,R25
    0412 938000A4  STS	D882_P,R24
(0029) 	 hour=0;min=6;sec=12;//00:06:12
    0414 2422      CLR	R2
    0415 922000AD  STS	hour,R2
    0417 E086      LDI	R24,6
    0418 938000AC  STS	min,R24
    041A E08C      LDI	R24,0xC
    041B 938000AB  STS	sec,R24
(0030) //调用功能函数对数据进行处理并写入缓存	 
(0031) 	 LCD_write_time(7,1,hour,min,sec);	
    041D 2E28      MOV	R2,R24
    041E 822C      STD	Y+4,R2
    041F 902000AC  LDS	R2,min
    0421 822A      STD	Y+2,R2
    0422 902000AD  LDS	R2,hour
    0424 8228      STD	Y+0,R2
    0425 E021      LDI	R18,1
    0426 E007      LDI	R16,7
    0427 DEC6      RCALL	_LCD_write_time
(0032) 	 LCD_write_number(7,0,0,BT1_time,"sec",10);	
    0428 E08A      LDI	R24,0xA
    0429 8788      STD	Y+8,R24
    042A E78F      LDI	R24,0x7F
    042B E090      LDI	R25,0
    042C 839F      STD	Y+7,R25
    042D 838E      STD	Y+6,R24
    042E 902000A8  LDS	R2,BT1_time
    0430 903000A9  LDS	R3,BT1_time+1
    0432 2444      CLR	R4
    0433 2455      CLR	R5
    0434 822A      STD	Y+2,R2
    0435 823B      STD	Y+3,R3
    0436 824C      STD	Y+4,R4
    0437 825D      STD	Y+5,R5
    0438 2422      CLR	R2
    0439 8228      STD	Y+0,R2
    043A 2722      CLR	R18
    043B E007      LDI	R16,7
    043C DD8C      RCALL	_LCD_write_number
(0033) 	 LCD_write_number(0,1,1,BT1_T,"C",0); 
    043D 2422      CLR	R2
    043E 8628      STD	Y+8,R2
    043F E78D      LDI	R24,0x7D
    0440 E090      LDI	R25,0
    0441 839F      STD	Y+7,R25
    0442 838E      STD	Y+6,R24
    0443 902000A6  LDS	R2,BT1_T
    0445 903000A7  LDS	R3,BT1_T+1
    0447 2444      CLR	R4
    0448 2455      CLR	R5
    0449 822A      STD	Y+2,R2
    044A 823B      STD	Y+3,R3
    044B 824C      STD	Y+4,R4
    044C 825D      STD	Y+5,R5
    044D E081      LDI	R24,1
    044E 8388      STD	Y+0,R24
    044F E021      LDI	R18,1
    0450 2700      CLR	R16
    0451 DD77      RCALL	_LCD_write_number
(0034)      LCD_write_number(0,0,0,D882_P,"mW",0);
    0452 2422      CLR	R2
    0453 8628      STD	Y+8,R2
    0454 E78A      LDI	R24,0x7A
    0455 E090      LDI	R25,0
    0456 839F      STD	Y+7,R25
    0457 838E      STD	Y+6,R24
    0458 902000A4  LDS	R2,D882_P
    045A 903000A5  LDS	R3,D882_P+1
    045C 2444      CLR	R4
    045D 2455      CLR	R5
    045E 822A      STD	Y+2,R2
    045F 823B      STD	Y+3,R3
    0460 824C      STD	Y+4,R4
    0461 825D      STD	Y+5,R5
    0462 2422      CLR	R2
    0463 8228      STD	Y+0,R2
    0464 2722      CLR	R18
    0465 2700      CLR	R16
    0466 DD62      RCALL	_LCD_write_number
(0035) 	 
(0036)      LCD_write_new();//把缓存里的数据写入LCD
    0467 DEF3      RCALL	_LCD_write_new
    0468 C003      RJMP	0x046C
(0037) 	 while(1)
(0038) 	  {
(0039) 		 delay_nms(100);
    0469 E604      LDI	R16,0x64
    046A E010      LDI	R17,0
    046B D00E      RCALL	_delay_nms
    046C CFFC      RJMP	0x0469
    046D 9629      ADIW	R28,0x9
    046E 9508      RET
FILE: E:\刻录的\电子技术\项目\驱动程序\LCD1602四线接口应用范例\delay.c
(0001) #include <iom8v.h>
(0002) #include <macros.h>
(0003) //8MHz时钟下
(0004) void delay_1ms(void)//1ms延时函数
(0005) {
(0006)   unsigned int i;
(0007)   asm("nop");
_delay_1ms:
  i                    --> R16
    046F 0000      NOP
(0008)   for (i=0;i<1139;i++)
    0470 2700      CLR	R16
    0471 2711      CLR	R17
    0472 C002      RJMP	0x0475
    0473 5F0F      SUBI	R16,0xFF
    0474 4F1F      SBCI	R17,0xFF
    0475 3703      CPI	R16,0x73
    0476 E0E4      LDI	R30,4
    0477 071E      CPC	R17,R30
    0478 F3D0      BCS	0x0473
    0479 9508      RET
_delay_nms:
  i                    --> R20
  n                    --> R22
    047A D0C8      RCALL	push_gset2
    047B 01B8      MOVW	R22,R16
(0009)   {  
(0010)   } 
(0011) }
(0012) 
(0013) void delay_nms(unsigned int n)//延时n毫秒
(0014) {
(0015)   unsigned int i;
(0016)   for (i=0;i<n;i++)//执行n次1毫秒延时
    047C 2744      CLR	R20
    047D 2755      CLR	R21
    047E C003      RJMP	0x0482
(0017)   delay_1ms(); 
    047F DFEF      RCALL	_delay_1ms
    0480 5F4F      SUBI	R20,0xFF
    0481 4F5F      SBCI	R21,0xFF
    0482 1746      CP	R20,R22
    0483 0757      CPC	R21,R23
    0484 F3D0      BCS	0x047F
    0485 D0B3      RCALL	pop_gset2
    0486 9508      RET
_delay_nus:
  i                    --> R20
  n                    --> R16
    0487 D0BD      RCALL	push_gset1
(0018) }
(0019) 
(0020) void delay_nus(unsigned int n)//延时N微秒,N>=5  晶振:8MHz
(0021) {
(0022)   unsigned int i;
(0023)   for (i=5;i<n;i++)
    0488 E045      LDI	R20,5
    0489 E050      LDI	R21,0
    048A C004      RJMP	0x048F
(0024)   	  {
(0025) 	  asm("nop");
    048B 0000      NOP
(0026) 	  asm("nop");	 
FILE: <library>
    048C 0000      NOP
    048D 5F4F      SUBI	R20,0xFF
    048E 4F5F      SBCI	R21,0xFF
    048F 1740      CP	R20,R16
    0490 0751      CPC	R21,R17
    0491 F3C8      BCS	0x048B
    0492 D0B5      RCALL	pop_gset1
    0493 9508      RET
mod16u:
    0494 9468      BSET	6
    0495 C001      RJMP	xdiv16u
div16u:
    0496 94E8      BCLR	6
xdiv16u:
    0497 92EA      ST	R14,-Y
    0498 92FA      ST	R15,-Y
    0499 938A      ST	R24,-Y
    049A 24EE      CLR	R14
    049B 24FF      CLR	R15
    049C E180      LDI	R24,0x10
    049D 0F00      LSL	R16
    049E 1F11      ROL	R17
    049F 1CEE      ROL	R14
    04A0 1CFF      ROL	R15
    04A1 16E2      CP	R14,R18
    04A2 06F3      CPC	R15,R19
    04A3 F018      BCS	0x04A7
    04A4 1AE2      SUB	R14,R18
    04A5 0AF3      SBC	R15,R19
    04A6 9503      INC	R16
    04A7 958A      DEC	R24
    04A8 F7A1      BNE	0x049D
    04A9 F416      BRTC	0x04AC
    04AA 2D0E      MOV	R16,R14
    04AB 2D1F      MOV	R17,R15
    04AC 9189      LD	R24,Y+
    04AD 90F9      LD	R15,Y+
    04AE 90E9      LD	R14,Y+
    04AF 9508      RET
div32u:
    04B0 94E8      BCLR	6
    04B1 C001      RJMP	0x04B3
mod32u:
    04B2 9468      BSET	6
    04B3 D02F      RCALL	long_div_prolog
    04B4 24CC      CLR	R12
    04B5 C008      RJMP	0x04BE
div32s:
    04B6 94E8      BCLR	6
    04B7 C001      RJMP	0x04B9
mod32s:
    04B8 9468      BSET	6
    04B9 D029      RCALL	long_div_prolog
    04BA FD37      SBRC	R19,7
    04BB D053      RCALL	neg_R16_R19
    04BC FDB7      SBRC	R27,7
    04BD D05A      RCALL	neg_R24_R27
    04BE 2477      CLR	R7
    04BF 2488      CLR	R8
    04C0 2499      CLR	R9
    04C1 24AA      CLR	R10
    04C2 24BB      CLR	R11
    04C3 D041      RCALL	tst_R16_R19
    04C4 F0C1      BEQ	0x04DD
    04C5 D044      RCALL	tst_R24_R27
    04C6 F0B1      BEQ	0x04DD
    04C7 E2E8      LDI	R30,0x28
    04C8 0F00      LSL	R16
    04C9 1F11      ROL	R17
    04CA 1F22      ROL	R18
    04CB 1F33      ROL	R19
    04CC 1C77      ROL	R7
    04CD 1C88      ROL	R8
    04CE 1C99      ROL	R9
    04CF 1CAA      ROL	R10
    04D0 1CBB      ROL	R11
    04D1 1688      CP	R8,R24
    04D2 0699      CPC	R9,R25
    04D3 06AA      CPC	R10,R26
    04D4 06BB      CPC	R11,R27
    04D5 F028      BCS	0x04DB
    04D6 1A88      SUB	R8,R24
    04D7 0A99      SBC	R9,R25
    04D8 0AAA      SBC	R10,R26
    04D9 0ABB      SBC	R11,R27
    04DA 9503      INC	R16
    04DB 95EA      DEC	R30
    04DC F759      BNE	0x04C8
    04DD F426      BRTC	0x04E2
    04DE 2D08      MOV	R16,R8
    04DF 2D19      MOV	R17,R9
    04E0 2D2A      MOV	R18,R10
    04E1 2D3B      MOV	R19,R11
    04E2 C013      RJMP	long_div_epilog
long_div_prolog:
    04E3 927A      ST	R7,-Y
    04E4 928A      ST	R8,-Y
    04E5 929A      ST	R9,-Y
    04E6 92AA      ST	R10,-Y
    04E7 92BA      ST	R11,-Y
    04E8 92CA      ST	R12,-Y
    04E9 93EA      ST	R30,-Y
    04EA 938A      ST	R24,-Y
    04EB 939A      ST	R25,-Y
    04EC 93AA      ST	R26,-Y
    04ED 93BA      ST	R27,-Y
    04EE 858B      LDD	R24,Y+11
    04EF 859C      LDD	R25,Y+12
    04F0 85AD      LDD	R26,Y+13
    04F1 85BE      LDD	R27,Y+14
    04F2 2EC3      MOV	R12,R19
    04F3 F00E      BRTS	0x04F5
    04F4 26CB      EOR	R12,R27
    04F5 9508      RET
long_div_epilog:
    04F6 FCC7      SBRC	R12,7
    04F7 D017      RCALL	neg_R16_R19
    04F8 91B9      LD	R27,Y+
    04F9 91A9      LD	R26,Y+
    04FA 9199      LD	R25,Y+
    04FB 9189      LD	R24,Y+
    04FC 91E9      LD	R30,Y+
    04FD 90C9      LD	R12,Y+
    04FE 90B9      LD	R11,Y+
    04FF 90A9      LD	R10,Y+
    0500 9099      LD	R9,Y+
    0501 9089      LD	R8,Y+
    0502 9079      LD	R7,Y+
    0503 9624      ADIW	R28,4
    0504 9508      RET
tst_R16_R19:
    0505 2FE0      MOV	R30,R16
    0506 2BE1      OR	R30,R17
    0507 2BE2      OR	R30,R18
    0508 2BE3      OR	R30,R19
    0509 9508      RET
tst_R24_R27:
    050A 2FE8      MOV	R30,R24
    050B 2BE9      OR	R30,R25
    050C 2BEA      OR	R30,R26
    050D 2BEB      OR	R30,R27
    050E 9508      RET
neg_R16_R19:
    050F 9500      COM	R16
    0510 9510      COM	R17
    0511 9520      COM	R18
    0512 9530      COM	R19
    0513 5F0F      SUBI	R16,0xFF
    0514 4F1F      SBCI	R17,0xFF
    0515 4F2F      SBCI	R18,0xFF
    0516 4F3F      SBCI	R19,0xFF
    0517 9508      RET
neg_R24_R27:
    0518 9580      COM	R24
    0519 9590      COM	R25
    051A 95A0      COM	R26
    051B 95B0      COM	R27
    051C 5F8F      SUBI	R24,0xFF
    051D 4F9F      SBCI	R25,0xFF
    051E 4FAF      SBCI	R26,0xFF
    051F 4FBF      SBCI	R27,0xFF
    0520 9508      RET
mod8u:
    0521 9468      BSET	6
    0522 C001      RJMP	xdiv8u
div8u:
    0523 94E8      BCLR	6
xdiv8u:
    0524 932A      ST	R18,-Y
    0525 92FA      ST	R15,-Y
    0526 92EA      ST	R14,-Y
    0527 24FF      CLR	R15
    0528 24EE      CLR	R14
    0529 E120      LDI	R18,0x10
    052A 0F00      LSL	R16
    052B 1CFF      ROL	R15
    052C 1CEE      ROL	R14
    052D 16E1      CP	R14,R17
    052E F010      BCS	0x0531
    052F 1AE1      SUB	R14,R17
    0530 9503      INC	R16
    0531 952A      DEC	R18
    0532 F7B9      BNE	0x052A
    0533 F40E      BRTC	0x0535
    0534 2D0E      MOV	R16,R14
    0535 90E9      LD	R14,Y+
    0536 90F9      LD	R15,Y+
    0537 9129      LD	R18,Y+
    0538 9508      RET
pop_gset2:
    0539 E0E2      LDI	R30,2
    053A C00E      RJMP	pop
pop_gset5:
    053B 27EE      CLR	R30
    053C C00C      RJMP	pop
push_gset5:
    053D 92FA      ST	R15,-Y
    053E 92EA      ST	R14,-Y
push_gset4:
    053F 92DA      ST	R13,-Y
    0540 92CA      ST	R12,-Y
push_gset3:
    0541 92BA      ST	R11,-Y
    0542 92AA      ST	R10,-Y
push_gset2:
    0543 937A      ST	R23,-Y
    0544 936A      ST	R22,-Y
push_gset1:
    0545 935A      ST	R21,-Y
    0546 934A      ST	R20,-Y
    0547 9508      RET
pop_gset1:
    0548 E0E1      LDI	R30,1
pop:
    0549 9149      LD	R20,Y+
    054A 9159      LD	R21,Y+
    054B FDE0      SBRC	R30,0
    054C 9508      RET
    054D 9169      LD	R22,Y+
    054E 9179      LD	R23,Y+
    054F FDE1      SBRC	R30,1
    0550 9508      RET
    0551 90A9      LD	R10,Y+
    0552 90B9      LD	R11,Y+
    0553 FDE2      SBRC	R30,2
    0554 9508      RET
    0555 90C9      LD	R12,Y+
    0556 90D9      LD	R13,Y+
    0557 FDE3      SBRC	R30,3
    0558 9508      RET
    0559 90E9      LD	R14,Y+
    055A 90F9      LD	R15,Y+
    055B 9508      RET
asgncblk:
    055C 93AA      ST	R26,-Y
    055D 93BA      ST	R27,-Y
    055E 93EA      ST	R30,-Y
    055F 93FA      ST	R31,-Y
    0560 920A      ST	R0,-Y
    0561 81AF      LDD	R26,Y+7
    0562 85B8      LDD	R27,Y+8
    0563 81ED      LDD	R30,Y+5
    0564 81FE      LDD	R31,Y+6
    0565 3000      CPI	R16,0
    0566 0701      CPC	R16,R17
    0567 F031      BEQ	0x056E
    0568 95C8      LPM
    0569 920D      ST	R0,X+
    056A 9631      ADIW	R30,1
    056B 5001      SUBI	R16,1
    056C 4010      SBCI	R17,0
    056D CFF7      RJMP	0x0565
    056E 9009      LD	R0,Y+
    056F 91F9      LD	R31,Y+
    0570 91E9      LD	R30,Y+
    0571 91B9      LD	R27,Y+
    0572 91A9      LD	R26,Y+
    0573 9624      ADIW	R28,4
    0574 9508      RET

⌨️ 快捷键说明

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