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

📄 lcd1602.lst

📁 meg16 的所有功能实例
💻 LST
📖 第 1 页 / 共 2 页
字号:
    011C 2433      CLR	R3
    011D 0195      MOVW	R18,R10
    011E 0D22      ADD	R18,R2
    011F 1D33      ADC	R19,R3
    0120 5120      SUBI	R18,0x10
    0121 4030      SBCI	R19,0
    0122 E081      LDI	R24,1
    0123 E090      LDI	R25,0
    0124 0186      MOVW	R16,R12
    0125 2708      EOR	R16,R24
    0126 2719      EOR	R17,R25
    0127 DFC1      RCALL	_lcd_disp_char
(0142) 	   	s++;
    0128 5F6F      SUBI	R22,0xFF
    0129 4F7F      SBCI	R23,0xFF
(0143) 	   	i++;
    012A 9543      INC	R20
    012B 01FB      MOVW	R30,R22
    012C 8020      LDD	R2,Z+0
    012D 2022      TST	R2
    012E F009      BEQ	0x0130
    012F CFCE      RJMP	0x00FE
    0130 9621      ADIW	R28,1
    0131 940E01F7  CALL	pop_gset4
    0133 9508      RET
(0144) 	   }
(0145)       }
(0146) }
(0147) 
(0148) void lcd_init(void) //初始化液晶
(0149) {
(0150)  Open_Ctrl();
_lcd_init:
    0134 EB88      LDI	R24,0xB8
    0135 BB84      OUT	0x14,R24
(0151)  Data_out();
    0136 EF8F      LDI	R24,0xFF
    0137 BB8A      OUT	0x1A,R24
(0152)  lcd_write_cmd(0x38,0); //显示模式设置(不测试忙信号)共三次
    0138 2722      CLR	R18
    0139 E308      LDI	R16,0x38
    013A DF71      RCALL	_lcd_write_cmd
(0153)  delay_nms(5);
    013B E005      LDI	R16,5
    013C E010      LDI	R17,0
    013D DF44      RCALL	_delay_nms
(0154)  lcd_write_cmd(0x38,0);
    013E 2722      CLR	R18
    013F E308      LDI	R16,0x38
    0140 DF6B      RCALL	_lcd_write_cmd
(0155)  delay_nms(5);
    0141 E005      LDI	R16,5
    0142 E010      LDI	R17,0
    0143 DF3E      RCALL	_delay_nms
(0156)  lcd_write_cmd(0x38,0);
    0144 2722      CLR	R18
    0145 E308      LDI	R16,0x38
    0146 DF65      RCALL	_lcd_write_cmd
(0157)  delay_nms(5);
    0147 E005      LDI	R16,5
    0148 E010      LDI	R17,0
    0149 DF38      RCALL	_delay_nms
(0158) 
(0159)  lcd_write_cmd(0x38,1); //8位数据口,2行显示,5*7点阵
    014A E021      LDI	R18,1
    014B E308      LDI	R16,0x38
    014C DF5F      RCALL	_lcd_write_cmd
(0160)  lcd_write_cmd(0x08,1); //显示关
    014D E021      LDI	R18,1
    014E E008      LDI	R16,0x8
    014F DF5C      RCALL	_lcd_write_cmd
(0161)  lcd_write_cmd(0x01,1); //清屏
    0150 E021      LDI	R18,1
    0151 E001      LDI	R16,1
    0152 DF59      RCALL	_lcd_write_cmd
(0162)  lcd_write_cmd(0x06,1); //数据读,写后AC自增1,画面不动
    0153 E021      LDI	R18,1
    0154 E006      LDI	R16,6
    0155 DF56      RCALL	_lcd_write_cmd
(0163)  lcd_write_cmd(0x0C,1); //显示开
    0156 E021      LDI	R18,1
    0157 E00C      LDI	R16,0xC
    0158 DF53      RCALL	_lcd_write_cmd
    0159 9508      RET
_main:
  i                    --> R20
  test                 --> Y+60
  ver                  --> Y+48
  str1                 --> Y+32
  str                  --> Y+19
  clr                  --> Y+2
    015A 97EF      SBIW	R28,0x3F
    015B 972E      SBIW	R28,0xE
FILE: E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\LCD1602\main.c
(0001) /****************************************Copyright (c)**************************************************
(0002) **                               ADEmbed Development Co.,LTD.                                    
(0003) **                                 http://www.adembed.com
(0004) **--------------File Info-------------------------------------------------------------------------------
(0005) ** File name:			mian.c
(0006) ** Last modified Date:  2008-10-13
(0007) ** Last Version:		1.0
(0008) ** Descriptions:		lcd1602 test.
(0009) ** 
(0010) **------------------------------------------------------------------------------------------------------
(0011) ** Created by:			zhoufeng
(0012) ** Created date:		2008-10-13
(0013) ** Version:				1.0
(0014) ** Descriptions:		
(0015) **
(0016) **------------------------------------------------------------------------------------------------------
(0017) ** Modified by:         junbolu
(0018) ** Modified date:       2008-12-13
(0019) ** Version:
(0020) ** Descriptions:
(0021) **
(0022) **------------------------------------------------------------------------------------------------------
(0023) **ICC-AVR application builder : 2008-12-13
(0024) **Target : M16
(0025) **Crystal: 7.3728Mhz
(0026) **
(0027) **
(0028) **描述:这是一个Lcd1602的测试程序。LCD1602型号为JHD162A 使用8位并口数据传输.
(0029) **      
(0030) **
(0031) **涉及知识点:
(0032) **          
(0033) **          
(0034) **          
(0035) *******************************************************************************************************/
(0036) #include <iom16v.h>
(0037) #include <macros.h>
(0038) #include"lcd1602.h"
(0039) #include<ctype.h>
(0040) 
(0041) void main(void)
(0042) {
(0043)  char str[]="    Welcome ";
    015C E584      LDI	R24,0x54
    015D E090      LDI	R25,0
    015E 01FE      MOVW	R30,R28
    015F 9673      ADIW	R30,0x13
    0160 E00D      LDI	R16,0xD
    0161 E010      LDI	R17,0
    0162 93FA      ST	R31,-Y
    0163 93EA      ST	R30,-Y
    0164 939A      ST	R25,-Y
    0165 938A      ST	R24,-Y
    0166 940E0219  CALL	asgncblk
(0044)  char clr[]="                ";
    0168 E681      LDI	R24,0x61
    0169 E090      LDI	R25,0
    016A 01FE      MOVW	R30,R28
    016B 9632      ADIW	R30,2
    016C E101      LDI	R16,0x11
    016D E010      LDI	R17,0
    016E 93FA      ST	R31,-Y
    016F 93EA      ST	R30,-Y
    0170 939A      ST	R25,-Y
    0171 938A      ST	R24,-Y
    0172 940E0219  CALL	asgncblk
(0045)  char str1[]="www.adembed.com";
    0174 E782      LDI	R24,0x72
    0175 E090      LDI	R25,0
    0176 01FE      MOVW	R30,R28
    0177 96B0      ADIW	R30,0x20
    0178 E100      LDI	R16,0x10
    0179 E010      LDI	R17,0
    017A 93FA      ST	R31,-Y
    017B 93EA      ST	R30,-Y
    017C 939A      ST	R25,-Y
    017D 938A      ST	R24,-Y
    017E 940E0219  CALL	asgncblk
(0046)  char ver[]= "EasyAVR AV3";
    0180 E882      LDI	R24,0x82
    0181 E090      LDI	R25,0
    0182 01FE      MOVW	R30,R28
    0183 96F0      ADIW	R30,0x30
    0184 E00C      LDI	R16,0xC
    0185 E010      LDI	R17,0
    0186 93FA      ST	R31,-Y
    0187 93EA      ST	R30,-Y
    0188 939A      ST	R25,-Y
    0189 938A      ST	R24,-Y
    018A 940E0219  CALL	asgncblk
(0047)  char test[]="1602LCD DEMO PRO"; 
    018C E88E      LDI	R24,0x8E
    018D E090      LDI	R25,0
    018E 01FE      MOVW	R30,R28
    018F 96FC      ADIW	R30,0x3C
    0190 E101      LDI	R16,0x11
    0191 E010      LDI	R17,0
    0192 93FA      ST	R31,-Y
    0193 93EA      ST	R30,-Y
    0194 939A      ST	R25,-Y
    0195 938A      ST	R24,-Y
    0196 940E0219  CALL	asgncblk
(0048)  unsigned int i=0;
    0198 2744      CLR	R20
    0199 2755      CLR	R21
(0049)  lcd_init();
    019A 940E0134  CALL	_lcd_init
(0050)  delay_nms(10);
    019C E00A      LDI	R16,0xA
    019D E010      LDI	R17,0
    019E 940E0082  CALL	_delay_nms
(0051)  lcd_disp_string(0,0,str);
    01A0 01CE      MOVW	R24,R28
    01A1 9643      ADIW	R24,0x13
    01A2 8399      STD	Y+1,R25
    01A3 8388      STD	Y+0,R24
    01A4 2722      CLR	R18
    01A5 2733      CLR	R19
    01A6 2700      CLR	R16
    01A7 2711      CLR	R17
    01A8 940E00F5  CALL	_lcd_disp_string
(0052)   delay_nms(10);//短延时是必要的
    01AA E00A      LDI	R16,0xA
    01AB E010      LDI	R17,0
    01AC 940E0082  CALL	_delay_nms
(0053)  lcd_disp_string(1,0,str1);
    01AE 01CE      MOVW	R24,R28
    01AF 9680      ADIW	R24,0x20
    01B0 8399      STD	Y+1,R25
    01B1 8388      STD	Y+0,R24
    01B2 2722      CLR	R18
    01B3 2733      CLR	R19
    01B4 E001      LDI	R16,1
    01B5 E010      LDI	R17,0
    01B6 940E00F5  CALL	_lcd_disp_string
(0054)  delay_nms(2000);
    01B8 ED00      LDI	R16,0xD0
    01B9 E017      LDI	R17,7
    01BA 940E0082  CALL	_delay_nms
(0055)  lcd_disp_string(0,0,clr);
    01BC 01CE      MOVW	R24,R28
    01BD 9602      ADIW	R24,2
    01BE 8399      STD	Y+1,R25
    01BF 8388      STD	Y+0,R24
    01C0 2722      CLR	R18
    01C1 2733      CLR	R19
    01C2 2700      CLR	R16
    01C3 2711      CLR	R17
    01C4 940E00F5  CALL	_lcd_disp_string
(0056)   delay_nms(10);//短延时是必要的
    01C6 E00A      LDI	R16,0xA
    01C7 E010      LDI	R17,0
    01C8 940E0082  CALL	_delay_nms
(0057)  lcd_disp_string(0,0,ver);
    01CA 01CE      MOVW	R24,R28
    01CB 96C0      ADIW	R24,0x30
    01CC 8399      STD	Y+1,R25
    01CD 8388      STD	Y+0,R24
    01CE 2722      CLR	R18
    01CF 2733      CLR	R19
    01D0 2700      CLR	R16
    01D1 2711      CLR	R17
    01D2 940E00F5  CALL	_lcd_disp_string
(0058)   delay_nms(10);//短延时是必要的
    01D4 E00A      LDI	R16,0xA
    01D5 E010      LDI	R17,0
    01D6 940E0082  CALL	_delay_nms
(0059)  lcd_disp_string(1,0,clr); 
    01D8 01CE      MOVW	R24,R28
    01D9 9602      ADIW	R24,2
    01DA 8399      STD	Y+1,R25
    01DB 8388      STD	Y+0,R24
    01DC 2722      CLR	R18
    01DD 2733      CLR	R19
    01DE E001      LDI	R16,1
    01DF E010      LDI	R17,0
    01E0 940E00F5  CALL	_lcd_disp_string
(0060)   delay_nms(10);//短延时是必要的
    01E2 E00A      LDI	R16,0xA
    01E3 E010      LDI	R17,0
    01E4 940E0082  CALL	_delay_nms
(0061)  lcd_disp_string(1,0,test); 
    01E6 01CE      MOVW	R24,R28
    01E7 96CC      ADIW	R24,0x3C
    01E8 8399      STD	Y+1,R25
    01E9 8388      STD	Y+0,R24
    01EA 2722      CLR	R18
    01EB 2733      CLR	R19
    01EC E001      LDI	R16,1
    01ED E010      LDI	R17,0
    01EE 940E00F5  CALL	_lcd_disp_string
(0062)  while(1)
FILE: <library>
    01F0 CFFF      RJMP	0x01F0
    01F1 96EF      ADIW	R28,0x3F
    01F2 962E      ADIW	R28,0xE
    01F3 9508      RET
pop_gset2:
    01F4 E0E2      LDI	R30,2
    01F5 940C0206  JMP	pop
pop_gset4:
    01F7 E0E8      LDI	R30,0x8
    01F8 940C0206  JMP	pop
push_gset5:
    01FA 92FA      ST	R15,-Y
    01FB 92EA      ST	R14,-Y
push_gset4:
    01FC 92DA      ST	R13,-Y
    01FD 92CA      ST	R12,-Y
push_gset3:
    01FE 92BA      ST	R11,-Y
    01FF 92AA      ST	R10,-Y
push_gset2:
    0200 937A      ST	R23,-Y
    0201 936A      ST	R22,-Y
push_gset1:
    0202 935A      ST	R21,-Y
    0203 934A      ST	R20,-Y
    0204 9508      RET
pop_gset1:
    0205 E0E1      LDI	R30,1
pop:
    0206 9149      LD	R20,Y+
    0207 9159      LD	R21,Y+
    0208 FDE0      SBRC	R30,0
    0209 9508      RET
    020A 9169      LD	R22,Y+
    020B 9179      LD	R23,Y+
    020C FDE1      SBRC	R30,1
    020D 9508      RET
    020E 90A9      LD	R10,Y+
    020F 90B9      LD	R11,Y+
    0210 FDE2      SBRC	R30,2
    0211 9508      RET
    0212 90C9      LD	R12,Y+
    0213 90D9      LD	R13,Y+
    0214 FDE3      SBRC	R30,3
    0215 9508      RET
    0216 90E9      LD	R14,Y+
    0217 90F9      LD	R15,Y+
    0218 9508      RET
asgncblk:
    0219 93AA      ST	R26,-Y
    021A 93BA      ST	R27,-Y
    021B 93EA      ST	R30,-Y
    021C 93FA      ST	R31,-Y
    021D 920A      ST	R0,-Y
    021E 81AF      LDD	R26,Y+7
    021F 85B8      LDD	R27,Y+8
    0220 81ED      LDD	R30,Y+5
    0221 81FE      LDD	R31,Y+6
    0222 3000      CPI	R16,0
    0223 0701      CPC	R16,R17
    0224 F031      BEQ	0x022B
    0225 95C8      LPM
    0226 920D      ST	R0,X+
    0227 9631      ADIW	R30,1
    0228 5001      SUBI	R16,1
    0229 4010      SBCI	R17,0
    022A CFF7      RJMP	0x0222
    022B 9009      LD	R0,Y+
    022C 91F9      LD	R31,Y+
    022D 91E9      LD	R30,Y+
    022E 91B9      LD	R27,Y+
    022F 91A9      LD	R26,Y+
    0230 9624      ADIW	R28,4
    0231 9508      RET

⌨️ 快捷键说明

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