📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\ICCAVR\project\AVRMEG~2\icc\015-LCD1602\main.c
0000 .dbfunc e main _main fV
0000 ; i -> R20
0000 ; p -> R22,R23
.even
0000 _main::
0000 2297 sbiw R28,2
0002 .dbline -1
0002 .dbline 16
0002 ; /*
0002 ; 实验十五:
0002 ; LCD1602显示实验。
0002 ; 1、LCD1602显示实验。显示欢及网址信息。
0002 ; 2、内部1 M晶振,程序采用单任务方式,软件延时。
0002 ; 3、进行此实验请插上JP1、JP2的所有8个短路块,PC7短路块。
0002 ;
0002 ; AVR mega16学习板
0002 ; www.iccavr.com
0002 ; 2007-04-13
0002 ; */
0002 ;
0002 ; #include <iom16v.h>
0002 ; #include "lcd1602.h"
0002 ;
0002 ; void main(void) {
0002 .dbline 21
0002 ;
0002 ; unsigned char i;
0002 ; unsigned char *p;
0002 ;
0002 ; PORTA = 0xFF; /*打开上拉*/
0002 8FEF ldi R24,255
0004 8BBB out 0x1b,R24
0006 .dbline 22
0006 ; DDRA = 0x00; /*方向输入*/
0006 2224 clr R2
0008 2ABA out 0x1a,R2
000A .dbline 23
000A ; PORTB = 0xFF; /*电平设置*/
000A 88BB out 0x18,R24
000C .dbline 24
000C ; DDRB = 0xFF; /*方向输出*/
000C 87BB out 0x17,R24
000E .dbline 25
000E ; PORTC = 0x7F;
000E 8FE7 ldi R24,127
0010 85BB out 0x15,R24
0012 .dbline 26
0012 ; DDRC = 0x80;
0012 80E8 ldi R24,128
0014 84BB out 0x14,R24
0016 .dbline 27
0016 ; PORTD = 0xFF;
0016 8FEF ldi R24,255
0018 82BB out 0x12,R24
001A .dbline 28
001A ; DDRD = 0x00;
001A 21BA out 0x11,R2
001C .dbline 30
001C ;
001C ; delay_ms(100);
001C 04E6 ldi R16,100
001E 0E940000 xcall _delay_ms
0022 .dbline 31
0022 ; LCD_init();
0022 0E940000 xcall _LCD_init
0026 25C0 xjmp L3
0028 L2:
0028 .dbline 33
0028 ;
0028 ; while (1) {
0028 .dbline 34
0028 ; i = 1;
0028 41E0 ldi R20,1
002A .dbline 35
002A ; p = "www.iccavr.com";
002A 60E0 ldi R22,<L5
002C 70E0 ldi R23,>L5
002E .dbline 36
002E ; LCD_clear();
002E 0E940000 xcall _LCD_clear
0032 .dbline 37
0032 ; LCD_write_str(5,0,"Welcome");
0032 80E0 ldi R24,<L6
0034 90E0 ldi R25,>L6
0036 9983 std y+1,R25
0038 8883 std y+0,R24
003A 2227 clr R18
003C 05E0 ldi R16,5
003E 0E940000 xcall _LCD_write_str
0042 .dbline 38
0042 ; delay_ms(250);
0042 0AEF ldi R16,250
0044 0E940000 xcall _delay_ms
0048 0DC0 xjmp L8
004A L7:
004A .dbline 40
004A .dbline 41
004A FB01 movw R30,R22
004C 2080 ldd R2,z+0
004E 2882 std y+0,R2
0050 21E0 ldi R18,1
0052 042F mov R16,R20
0054 0E940000 xcall _LCD_write_char
0058 .dbline 42
0058 4395 inc R20
005A .dbline 43
005A 6F5F subi R22,255 ; offset = 1
005C 7F4F sbci R23,255
005E .dbline 44
005E 0AEF ldi R16,250
0060 0E940000 xcall _delay_ms
0064 .dbline 45
0064 L8:
0064 .dbline 40
0064 FB01 movw R30,R22
0066 2080 ldd R2,z+0
0068 2220 tst R2
006A 79F7 brne L7
006C .dbline 46
006C 0AEF ldi R16,250
006E 0E940000 xcall _delay_ms
0072 .dbline 47
0072 L3:
0072 .dbline 33
0072 DACF xjmp L2
0074 X0:
0074 .dbline -2
0074 L1:
0074 2296 adiw R28,2
0076 .dbline 0 ; func end
0076 0895 ret
0078 .dbsym r i 20 c
0078 .dbsym r p 22 pc
0078 .dbend
.area data(ram, con, rel)
0000 .dbfile E:\ICCAVR\project\AVRMEG~2\icc\015-LCD1602\main.c
0000 L6:
0000 .blkb 8
.area idata
0000 57656C636F6D6500 .byte 'W,'e,'l,'c,'o,'m,'e,0
.area data(ram, con, rel)
0008 .dbfile E:\ICCAVR\project\AVRMEG~2\icc\015-LCD1602\main.c
0008 L5:
0008 .blkb 15
.area idata
0008 7777772E6963636176722E636F6D00 .byte 'w,'w,'w,46,'i,'c,'c,'a,'v,'r,46,'c,'o,'m,0
.area data(ram, con, rel)
0017 .dbfile E:\ICCAVR\project\AVRMEG~2\icc\015-LCD1602\main.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -