📄 test.lst
字号:
__text_start:
__start:
0045 E5CF LDI R28,0x5F
0046 E0D4 LDI R29,4
0047 BFCD OUT 0x3D,R28
0048 BFDE OUT 0x3E,R29
0049 51C0 SUBI R28,0x10
004A 40D0 SBCI R29,0
004B EA0A LDI R16,0xAA
004C 8308 STD Y+0,R16
004D 2400 CLR R0
004E E9E5 LDI R30,0x95
004F E0F0 LDI R31,0
0050 E010 LDI R17,0
0051 39E5 CPI R30,0x95
0052 07F1 CPC R31,R17
0053 F011 BEQ 0x0056
0054 9201 ST R0,Z+
0055 CFFB RJMP 0x0051
0056 8300 STD Z+0,R16
0057 E5E4 LDI R30,0x54
0058 E0F0 LDI R31,0
0059 E6A0 LDI R26,0x60
005A E0B0 LDI R27,0
005B E010 LDI R17,0
005C 38E9 CPI R30,0x89
005D 07F1 CPC R31,R17
005E F021 BEQ 0x0063
005F 95C8 LPM
0060 9631 ADIW R30,1
0061 920D ST R0,X+
0062 CFF9 RJMP 0x005C
0063 940E0066 CALL _main
_exit:
0065 CFFF RJMP _exit
_main:
0066 9722 SBIW R28,2
FILE: G:\lcd1604\avr16-1020-2\main.c
(0001) /*--------------------------------------------------*/
(0002) /* AVR-ARM开发网论坛 */
(0003) /* http://www.avrarm.com */
(0004) /* AVR生成代码测试程序 */
(0005) /*--------------------------------------------------*/
(0006) /* 程序由AVR辅助开发工具V2.0.1自动生成 */
(0007) /* AVR系统的处理器为: ATMega16 */
(0008) /* AVR系统的晶振频率: 8.0000 Mhz */
(0009) /*--------------------------------------------------*/
(0010)
(0011) #include <iom16v.h>
(0012) #include <macros.h>
(0013) #include "lcd.h"
(0014) #include "delay.h"
(0015)
(0016) //-----------------------------------------------------------
(0017) //主函数
(0018) //-----------------------------------------------------------
(0019) void main(void)
(0020) {
(0021)
(0022) LCD16xx_init();
0067 940E010C CALL _LCD16xx_init
(0023) LCD16xx_clr(); //显示清屏
0069 940E012C CALL _LCD16xx_clr
(0024) delay_nms(10);
006B E00A LDI R16,0xA
006C E010 LDI R17,0
006D 940E00FD CALL _delay_nms
(0025) LCD16xx_write_string(2,0,"Welcome to");
006F E88A LDI R24,0x8A
0070 E090 LDI R25,0
0071 8399 STD Y+1,R25
0072 8388 STD Y+0,R24
0073 2722 CLR R18
0074 E002 LDI R16,2
0075 940E0177 CALL _LCD16xx_write_string
(0026) LCD16xx_write_string(2,1,"www.avrarm.com!");
0077 E78A LDI R24,0x7A
0078 E090 LDI R25,0
0079 8399 STD Y+1,R25
007A 8388 STD Y+0,R24
007B E021 LDI R18,1
007C E002 LDI R16,2
007D 940E0177 CALL _LCD16xx_write_string
(0027) LCD16xx_write_string(2,2,"By Peter");
007F E781 LDI R24,0x71
0080 E090 LDI R25,0
0081 8399 STD Y+1,R25
0082 8388 STD Y+0,R24
0083 E022 LDI R18,2
0084 E002 LDI R16,2
0085 940E0177 CALL _LCD16xx_write_string
(0028) LCD16xx_write_string(2,3,"2006.09.06");
0087 E686 LDI R24,0x66
0088 E090 LDI R25,0
0089 8399 STD Y+1,R25
008A 8388 STD Y+0,R24
008B E023 LDI R18,3
008C E002 LDI R16,2
008D 940E0177 CALL _LCD16xx_write_string
(0029) delay_nms(1500);
008F ED0C LDI R16,0xDC
0090 E015 LDI R17,5
0091 940E00FD CALL _delay_nms
(0030) LCD16xx_clr(); //显示清屏
0093 940E012C CALL _LCD16xx_clr
(0031) delay_nms(1);
0095 E001 LDI R16,1
0096 E010 LDI R17,0
0097 940E00FD CALL _delay_nms
0099 C04A RJMP 0x00E4
(0032)
(0033) while(1)
(0034) { LCD16xx_write_string(0,0,"PETER");
009A E680 LDI R24,0x60
009B E090 LDI R25,0
009C 8399 STD Y+1,R25
009D 8388 STD Y+0,R24
009E 2722 CLR R18
009F 2700 CLR R16
00A0 940E0177 CALL _LCD16xx_write_string
(0035) LCD16xx_write_string(4,1,"PETER");
00A2 E680 LDI R24,0x60
00A3 E090 LDI R25,0
00A4 8399 STD Y+1,R25
00A5 8388 STD Y+0,R24
00A6 E021 LDI R18,1
00A7 E004 LDI R16,4
00A8 940E0177 CALL _LCD16xx_write_string
(0036) LCD16xx_write_string(8,2,"PETER");
00AA E680 LDI R24,0x60
00AB E090 LDI R25,0
00AC 8399 STD Y+1,R25
00AD 8388 STD Y+0,R24
00AE E022 LDI R18,2
00AF E008 LDI R16,0x8
00B0 940E0177 CALL _LCD16xx_write_string
(0037) LCD16xx_write_string(12,3,"PETER");
00B2 E680 LDI R24,0x60
00B3 E090 LDI R25,0
00B4 8399 STD Y+1,R25
00B5 8388 STD Y+0,R24
00B6 E023 LDI R18,3
00B7 E00C LDI R16,0xC
00B8 940E0177 CALL _LCD16xx_write_string
(0038) LCD16xx_write_string(0,3,"PETER");
00BA E680 LDI R24,0x60
00BB E090 LDI R25,0
00BC 8399 STD Y+1,R25
00BD 8388 STD Y+0,R24
00BE E023 LDI R18,3
00BF 2700 CLR R16
00C0 940E0177 CALL _LCD16xx_write_string
(0039) LCD16xx_write_string(4,2,"PETER");
00C2 E680 LDI R24,0x60
00C3 E090 LDI R25,0
00C4 8399 STD Y+1,R25
00C5 8388 STD Y+0,R24
00C6 E022 LDI R18,2
00C7 E004 LDI R16,4
00C8 940E0177 CALL _LCD16xx_write_string
(0040) LCD16xx_write_string(8,1,"PETER");
00CA E680 LDI R24,0x60
00CB E090 LDI R25,0
00CC 8399 STD Y+1,R25
00CD 8388 STD Y+0,R24
00CE E021 LDI R18,1
00CF E008 LDI R16,0x8
00D0 940E0177 CALL _LCD16xx_write_string
(0041) LCD16xx_write_string(12,0,"PETER");
00D2 E680 LDI R24,0x60
00D3 E090 LDI R25,0
00D4 8399 STD Y+1,R25
00D5 8388 STD Y+0,R24
00D6 2722 CLR R18
00D7 E00C LDI R16,0xC
00D8 940E0177 CALL _LCD16xx_write_string
(0042) delay_nms(1500);
00DA ED0C LDI R16,0xDC
00DB E015 LDI R17,5
00DC 940E00FD CALL _delay_nms
(0043) LCD16xx_clr(); //显示清屏
00DE 940E012C CALL _LCD16xx_clr
(0044) delay_nms(1000);
00E0 EE08 LDI R16,0xE8
00E1 E013 LDI R17,3
00E2 940E00FD CALL _delay_nms
00E4 CFB5 RJMP 0x009A
00E5 9622 ADIW R28,2
00E6 9508 RET
FILE: G:\lcd1604\avr16-1020-2\delay.c
(0001) /*--------------------------------------------------*/
(0002) /* AVR-ARM开发网论坛 */
(0003) /* http://www.avrarm.com */
(0004) /* AVR生成代码测试程序 */
(0005) /*--------------------------------------------------*/
(0006) /* 程序由AVR辅助开发工具V2.0.1自动生成 */
(0007) /* AVR系统的处理器为: ATMega16 */
(0008) /* AVR系统的晶振频率: 8.0000 Mhz */
(0009) /*--------------------------------------------------*/
(0010)
(0011) #include <iom16v.h>
(0012) #include "delay.h"
(0013)
(0014) /*-----------------------------------------------------------------------
(0015) delay_us :1us延时函数
(0016) -----------------------------------------------------------------------*/
(0017) void delay_us(void)
(0018) {
(0019) unsigned char t=2;
_delay_us:
t --> R16
00E7 E002 LDI R16,2
(0020) t--;
00E8 950A DEC R16
00E9 9508 RET
_delay_nus:
t --> R20
00EA 940E019C CALL push_gset1
00EC 01A8 MOVW R20,R16
(0021) }
(0022)
(0023) /*-----------------------------------------------------------------------
(0024) delay_nus :长延时函数
(0025)
(0026) 输入参数: t :延时时间 us
(0027) -----------------------------------------------------------------------*/
(0028) void delay_nus(unsigned int t)
(0029) {
00ED C001 RJMP 0x00EF
(0030) while (t--)
(0031) delay_us();
00EE DFF8 RCALL _delay_us
00EF 011A MOVW R2,R20
00F0 5041 SUBI R20,1
00F1 4050 SBCI R21,0
00F2 2022 TST R2
00F3 F7D1 BNE 0x00EE
00F4 2033 TST R3
00F5 F7C1 BNE 0x00EE
00F6 940E019F CALL pop_gset1
00F8 9508 RET
(0032) }
(0033)
(0034) /*-----------------------------------------------------------------------
(0035) delay_ms :1ms延时函数
(0036) -----------------------------------------------------------------------*/
(0037) void delay_ms(void)
(0038) {
(0039) delay_nus(1000);
_delay_ms:
00F9 EE08 LDI R16,0xE8
00FA E013 LDI R17,3
00FB DFEE RCALL _delay_nus
00FC 9508 RET
_delay_nms:
t --> R20
00FD 940E019C CALL push_gset1
00FF 01A8 MOVW R20,R16
(0040) }
(0041)
(0042) /*-----------------------------------------------------------------------
(0043) delay_nms :长延时函数
(0044)
(0045) 输入参数: t :延时时间 ms
(0046) -----------------------------------------------------------------------*/
(0047) void delay_nms(unsigned int t)
(0048) {
0100 C001 RJMP 0x0102
(0049) while (t--)
(0050) delay_ms();
0101 DFF7 RCALL _delay_ms
0102 011A MOVW R2,R20
0103 5041 SUBI R20,1
0104 4050 SBCI R21,0
0105 2022 TST R2
0106 F7D1 BNE 0x0101
0107 2033 TST R3
0108 F7C1 BNE 0x0101
0109 940E019F CALL pop_gset1
010B 9508 RET
FILE: G:\lcd1604\avr16-1020-2\lcd.c
(0001) /*--------------------------------------------------*/
(0002) /* AVR-ARM开发网论坛 */
(0003) /* http://www.avrarm.com */
(0004) /* AVR生成代码测试程序 */
(0005) /*--------------------------------------------------*/
(0006) /* 程序由AVR辅助开发工具V2.0.1自动生成 */
(0007) /* AVR系统的处理器为: ATMega16 */
(0008) /* AVR系统的晶振频率: 8.0000 Mhz */
(0009) /*--------------------------------------------------*/
(0010)
(0011) #include <iom16v.h>
(0012) #include <macros.h>
(0013) #include "lcd.h"
(0014) #include "delay.h"
(0015)
(0016) /**********************************************************
(0017) 光标命令
(0018) LCD16xx_write_char(1,0x0e); //光标开
(0019) LCD16xx_write_char(1,0x0d); //光标所在字符闪烁
(0020) LCD16xx_write_char(1,0x0c); //光标关
(0021) **********************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -