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

📄 1.lst

📁 AVR mega16双机通讯实验 从机接受数据并发送到lcd1602上显示
💻 LST
📖 第 1 页 / 共 2 页
字号:
    00E3 E010      LDI	R17,0
    00E4 DFDC      RCALL	_delay_us
(0052) 	EN_CLR;
    00E5 9896      CBI	0x12,6
    00E6 940E0171  CALL	pop_gset1
    00E8 9508      RET
_LCD_write_data:
  data                 --> R20
    00E9 940E016E  CALL	push_gset1
    00EB 2F40      MOV	R20,R16
(0053) }
(0054) 
(0055) /*显示屏命令写入函数*/
(0056) void LCD_write_data(unsigned char data) {
(0057) 
(0058) 	RS_SET;
    00EC 9A93      SBI	0x12,3
(0059) 	RW_CLR;
    00ED 9894      CBI	0x12,4
(0060) 	EN_SET;
    00EE 9A96      SBI	0x12,6
(0061) 	PORTA = data;
    00EF BB4B      OUT	0x1B,R20
(0062) 	delay_us(5);
    00F0 E005      LDI	R16,5
    00F1 E010      LDI	R17,0
    00F2 DFCE      RCALL	_delay_us
(0063) 	EN_CLR;
    00F3 9896      CBI	0x12,6
    00F4 940E0171  CALL	pop_gset1
    00F6 9508      RET
(0064) }
(0065) 
(0066) /*显示屏清空显示*/
(0067) void LCD_clear(void) {
(0068) 
(0069) 	LCD_write_com(0x01);
_LCD_clear:
    00F7 E001      LDI	R16,1
    00F8 DFE2      RCALL	_LCD_write_com
(0070) 	delay_ms(5);
    00F9 E005      LDI	R16,5
    00FA DFD1      RCALL	_delay_ms
    00FB 9508      RET
_LCD_write_str:
  s                    --> R20
  y                    --> R10
  x                    --> R22
    00FC 940E016A  CALL	push_gset3
    00FE 2EA2      MOV	R10,R18
    00FF 2F60      MOV	R22,R16
    0100 814E      LDD	R20,Y+6
    0101 815F      LDD	R21,Y+7
(0071) }
(0072) 
(0073) /*显示屏字符串写入函数*/
(0074) void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s) {
(0075) 	
(0076)     if (y == 0) {
    0102 20AA      TST	R10
    0103 F421      BNE	0x0108
(0077)     	LCD_write_com(0x80 + x);
    0104 2F06      MOV	R16,R22
    0105 5800      SUBI	R16,0x80
    0106 DFD4      RCALL	_LCD_write_com
(0078)     	}
    0107 C009      RJMP	0x0111
(0079)     else {
(0080)     	LCD_write_com(0xC0 + x);
    0108 2F06      MOV	R16,R22
    0109 5400      SUBI	R16,0x40
    010A DFD0      RCALL	_LCD_write_com
(0081)     	}
    010B C005      RJMP	0x0111
(0082)     
(0083)     while (*s) {
(0084)     	LCD_write_data( *s);
    010C 01FA      MOVW	R30,R20
    010D 8100      LDD	R16,Z+0
    010E DFDA      RCALL	_LCD_write_data
(0085)     	s ++;
    010F 5F4F      SUBI	R20,0xFF
    0110 4F5F      SBCI	R21,0xFF
    0111 01FA      MOVW	R30,R20
    0112 8020      LDD	R2,Z+0
    0113 2022      TST	R2
    0114 F7B9      BNE	0x010C
    0115 940E0163  CALL	pop_gset3
    0117 9508      RET
_LCD_write_char:
  data                 --> Y+4
  y                    --> R22
  x                    --> R20
    0118 940E016C  CALL	push_gset2
    011A 2F62      MOV	R22,R18
    011B 2F40      MOV	R20,R16
(0086)     	}
(0087) }
(0088) 
(0089) /*显示屏单字符写入函数*/
(0090) void LCD_write_char(unsigned char x,unsigned char y,unsigned char data) {
(0091) 	
(0092)     if (y == 0) {
    011C 2366      TST	R22
    011D F421      BNE	0x0122
(0093)     	LCD_write_com(0x80 + x);
    011E 2F04      MOV	R16,R20
    011F 5800      SUBI	R16,0x80
    0120 DFBA      RCALL	_LCD_write_com
(0094)     	}
    0121 C003      RJMP	0x0125
(0095)     else {
(0096)     	LCD_write_com(0xC0 + x);
    0122 2F04      MOV	R16,R20
    0123 5400      SUBI	R16,0x40
    0124 DFB6      RCALL	_LCD_write_com
(0097)     	}
(0098)     
(0099)     LCD_write_data( data);  
    0125 810C      LDD	R16,Y+4
    0126 DFC2      RCALL	_LCD_write_data
    0127 940E0160  CALL	pop_gset2
    0129 9508      RET
(0100) }
(0101) 
(0102) /*显示屏初始化函数*/
(0103) void LCD_init(void) {
(0104) 	
(0105) 	DDRA = 0xFF;						/*I/O口方向设置*/
_LCD_init:
    012A EF8F      LDI	R24,0xFF
    012B BB8A      OUT	0x1A,R24
(0106) 	DDRD |= (1 << PD3) | (1 << PD4) | (1 << PD6);
    012C B381      IN	R24,0x11
    012D 6588      ORI	R24,0x58
    012E BB81      OUT	0x11,R24
(0107) 	LCD_write_com(0x38);				/*显示模式设置*/
    012F E308      LDI	R16,0x38
    0130 DFAA      RCALL	_LCD_write_com
(0108) 	delay_ms(5);
    0131 E005      LDI	R16,5
    0132 DF99      RCALL	_delay_ms
(0109) 	LCD_write_com(0x38);
    0133 E308      LDI	R16,0x38
    0134 DFA6      RCALL	_LCD_write_com
(0110) 	delay_ms(5);
    0135 E005      LDI	R16,5
    0136 DF95      RCALL	_delay_ms
(0111) 	LCD_write_com(0x38);
    0137 E308      LDI	R16,0x38
    0138 DFA2      RCALL	_LCD_write_com
(0112) 	delay_ms(5);
    0139 E005      LDI	R16,5
    013A DF91      RCALL	_delay_ms
(0113) 	LCD_write_com(0x38);
    013B E308      LDI	R16,0x38
    013C DF9E      RCALL	_LCD_write_com
(0114) 	
(0115) 	LCD_write_com(0x08);				/*显示关闭*/
    013D E008      LDI	R16,0x8
    013E DF9C      RCALL	_LCD_write_com
(0116) 	LCD_write_com(0x01);				/*显示清屏*/
    013F E001      LDI	R16,1
    0140 DF9A      RCALL	_LCD_write_com
(0117) 	LCD_write_com(0x06);				/*显示光标移动设置*/
    0141 E006      LDI	R16,6
    0142 DF98      RCALL	_LCD_write_com
(0118) 	delay_ms(5);
    0143 E005      LDI	R16,5
    0144 DF87      RCALL	_delay_ms
(0119) 	LCD_write_com(0x0C);				/*显示开及光标设置*/
FILE: <library>
    0145 E00C      LDI	R16,0xC
    0146 DF94      RCALL	_LCD_write_com
    0147 9508      RET
mod8u:
    0148 9468      BSET	6
    0149 C001      RJMP	xdiv8u
div8u:
    014A 94E8      BCLR	6
xdiv8u:
    014B 932A      ST	R18,-Y
    014C 92FA      ST	R15,-Y
    014D 92EA      ST	R14,-Y
    014E 24FF      CLR	R15
    014F 24EE      CLR	R14
    0150 E120      LDI	R18,0x10
    0151 0F00      LSL	R16
    0152 1CFF      ROL	R15
    0153 1CEE      ROL	R14
    0154 16E1      CP	R14,R17
    0155 F010      BCS	0x0158
    0156 1AE1      SUB	R14,R17
    0157 9503      INC	R16
    0158 952A      DEC	R18
    0159 F7B9      BNE	0x0151
    015A F40E      BRTC	0x015C
    015B 2D0E      MOV	R16,R14
    015C 90E9      LD	R14,Y+
    015D 90F9      LD	R15,Y+
    015E 9129      LD	R18,Y+
    015F 9508      RET
pop_gset2:
    0160 E0E2      LDI	R30,2
    0161 940C0172  JMP	pop
pop_gset3:
    0163 E0E4      LDI	R30,4
    0164 940C0172  JMP	pop
push_gset5:
    0166 92FA      ST	R15,-Y
    0167 92EA      ST	R14,-Y
push_gset4:
    0168 92DA      ST	R13,-Y
    0169 92CA      ST	R12,-Y
push_gset3:
    016A 92BA      ST	R11,-Y
    016B 92AA      ST	R10,-Y
push_gset2:
    016C 937A      ST	R23,-Y
    016D 936A      ST	R22,-Y
push_gset1:
    016E 935A      ST	R21,-Y
    016F 934A      ST	R20,-Y
    0170 9508      RET
pop_gset1:
    0171 E0E1      LDI	R30,1
pop:
    0172 9149      LD	R20,Y+
    0173 9159      LD	R21,Y+
    0174 FDE0      SBRC	R30,0
    0175 9508      RET
    0176 9169      LD	R22,Y+
    0177 9179      LD	R23,Y+
    0178 FDE1      SBRC	R30,1
    0179 9508      RET
    017A 90A9      LD	R10,Y+
    017B 90B9      LD	R11,Y+
    017C FDE2      SBRC	R30,2
    017D 9508      RET
    017E 90C9      LD	R12,Y+
    017F 90D9      LD	R13,Y+
    0180 FDE3      SBRC	R30,3
    0181 9508      RET
    0182 90E9      LD	R14,Y+
    0183 90F9      LD	R15,Y+
    0184 9508      RET
push_lset:
    0185 93FA      ST	R31,-Y
    0186 93EA      ST	R30,-Y
    0187 93BA      ST	R27,-Y
    0188 93AA      ST	R26,-Y
    0189 939A      ST	R25,-Y
    018A 938A      ST	R24,-Y
    018B 933A      ST	R19,-Y
    018C 932A      ST	R18,-Y
    018D 931A      ST	R17,-Y
    018E 930A      ST	R16,-Y
    018F 929A      ST	R9,-Y
    0190 928A      ST	R8,-Y
    0191 927A      ST	R7,-Y
    0192 926A      ST	R6,-Y
    0193 925A      ST	R5,-Y
    0194 924A      ST	R4,-Y
    0195 923A      ST	R3,-Y
    0196 922A      ST	R2,-Y
    0197 921A      ST	R1,-Y
    0198 920A      ST	R0,-Y
    0199 B60F      IN	R0,0x3F
    019A 920A      ST	R0,-Y
    019B 9508      RET
pop_lset:
    019C 9009      LD	R0,Y+
    019D BE0F      OUT	0x3F,R0
    019E 9009      LD	R0,Y+
    019F 9019      LD	R1,Y+
    01A0 9029      LD	R2,Y+
    01A1 9039      LD	R3,Y+
    01A2 9049      LD	R4,Y+
    01A3 9059      LD	R5,Y+
    01A4 9069      LD	R6,Y+
    01A5 9079      LD	R7,Y+
    01A6 9089      LD	R8,Y+
    01A7 9099      LD	R9,Y+
    01A8 9109      LD	R16,Y+
    01A9 9119      LD	R17,Y+
    01AA 9129      LD	R18,Y+
    01AB 9139      LD	R19,Y+
    01AC 9189      LD	R24,Y+
    01AD 9199      LD	R25,Y+
    01AE 91A9      LD	R26,Y+
    01AF 91B9      LD	R27,Y+
    01B0 91E9      LD	R30,Y+
    01B1 91F9      LD	R31,Y+
    01B2 9508      RET

⌨️ 快捷键说明

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