📄 lcd1602.lis
字号:
.module lcd1602.c
.area text(rom, con, rel)
0000 .dbfile lcd1602.c
.area data(ram, con, rel)
0000 .dbfile lcd1602.c
0000 _table::
0000 .blkb 13
.area idata
0000 49204C494B4520415652202100 .byte 'I,32,'L,'I,'K,'E,32,'A,'V,'R,32,33,0
.area data(ram, con, rel)
000D .dbfile lcd1602.c
000D .dbfile F:\新学习板程序\avr程序\7LCD1603液晶显示\lcd1602.c
000D .dbsym e table _table A[13:13]c
000D _table1::
000D .blkb 14
.area idata
000D 3520585545204449414E5A492000 .byte 53,32,'X,'U,'E,32,'D,'I,'A,'N,'Z,'I,32,0
.area data(ram, con, rel)
001B .dbfile F:\新学习板程序\avr程序\7LCD1603液晶显示\lcd1602.c
001B .dbsym e table1 _table1 A[14:14]c
.area text(rom, con, rel)
0000 .dbfile F:\新学习板程序\avr程序\7LCD1603液晶显示\lcd1602.c
0000 .dbfunc e delay _delay fV
0000 ; i -> R20,R21
0000 ; j -> R22,R23
0000 ; ms -> R16,R17
.even
0000 _delay::
0000 0E940000 xcall push_xgsetF000
0004 .dbline -1
0004 .dbline 12
0004 ; #include <iom16v.h>
0004 ; #include <macros.h>
0004 ; #define uchar unsigned char
0004 ; #define uint unsigned int
0004 ;
0004 ; //#pragma data:code
0004 ;
0004 ; const uchar table[]="I LIKE AVR !";
0004 ; const uchar table1[]="5 XUE DIANZI ";
0004 ;
0004 ; void delay(uint ms)
0004 ; {
0004 .dbline 14
0004 ; uint i,j;
0004 ; for(i=0;i<ms;i++)
0004 4427 clr R20
0006 5527 clr R21
0008 0BC0 xjmp L5
000A L2:
000A .dbline 15
000A ; {
000A .dbline 16
000A ; for(j=0;j<1141;j++);
000A 6627 clr R22
000C 7727 clr R23
000E 02C0 xjmp L9
0010 L6:
0010 .dbline 16
0010 L7:
0010 .dbline 16
0010 6F5F subi R22,255 ; offset = 1
0012 7F4F sbci R23,255
0014 L9:
0014 .dbline 16
0014 6537 cpi R22,117
0016 E4E0 ldi R30,4
0018 7E07 cpc R23,R30
001A D0F3 brlo L6
001C X0:
001C .dbline 17
001C ; }
001C L3:
001C .dbline 14
001C 4F5F subi R20,255 ; offset = 1
001E 5F4F sbci R21,255
0020 L5:
0020 .dbline 14
0020 4017 cp R20,R16
0022 5107 cpc R21,R17
0024 90F3 brlo L2
0026 X1:
0026 .dbline -2
0026 L1:
0026 .dbline 0 ; func end
0026 0C940000 xjmp pop_xgsetF000
002A .dbsym r i 20 i
002A .dbsym r j 22 i
002A .dbsym r ms 16 i
002A .dbend
002A .dbfunc e write_com _write_com fV
002A ; com -> R10
.even
002A _write_com::
002A AA92 st -y,R10
002C A02E mov R10,R16
002E .dbline -1
002E .dbline 22
002E ; }
002E ;
002E ;
002E ; void write_com(uchar com)
002E ; {
002E .dbline 23
002E ; PORTA&=~BIT(5);
002E DD98 cbi 0x1b,5
0030 .dbline 24
0030 ; PORTA&=~BIT(6);
0030 DE98 cbi 0x1b,6
0032 .dbline 25
0032 ; PORTC=com;
0032 A5BA out 0x15,R10
0034 .dbline 26
0034 ; PORTA|=BIT(7);
0034 DF9A sbi 0x1b,7
0036 .dbline 27
0036 ; delay(1);
0036 01E0 ldi R16,1
0038 10E0 ldi R17,0
003A E2DF xcall _delay
003C .dbline 28
003C ; PORTA&=~BIT(7);
003C DF98 cbi 0x1b,7
003E .dbline -2
003E L10:
003E .dbline 0 ; func end
003E A990 ld R10,y+
0040 0895 ret
0042 .dbsym r com 10 c
0042 .dbend
0042 .dbfunc e write_dat _write_dat fV
0042 ; dat -> R10
.even
0042 _write_dat::
0042 AA92 st -y,R10
0044 A02E mov R10,R16
0046 .dbline -1
0046 .dbline 32
0046 ; }
0046 ;
0046 ; void write_dat(uchar dat)
0046 ; {
0046 .dbline 33
0046 ; PORTA|=BIT(5);
0046 DD9A sbi 0x1b,5
0048 .dbline 34
0048 ; PORTA&=~BIT(6);
0048 DE98 cbi 0x1b,6
004A .dbline 35
004A ; PORTC=dat;
004A A5BA out 0x15,R10
004C .dbline 36
004C ; PORTA|=BIT(7);
004C DF9A sbi 0x1b,7
004E .dbline 37
004E ; delay(1);
004E 01E0 ldi R16,1
0050 10E0 ldi R17,0
0052 D6DF xcall _delay
0054 .dbline 38
0054 ; PORTA&=~BIT(7);
0054 DF98 cbi 0x1b,7
0056 .dbline -2
0056 L11:
0056 .dbline 0 ; func end
0056 A990 ld R10,y+
0058 0895 ret
005A .dbsym r dat 10 c
005A .dbend
005A .dbfunc e main _main fV
005A ; i -> R20
.even
005A _main::
005A .dbline -1
005A .dbline 41
005A ; }
005A ; void main()
005A ; {
005A .dbline 43
005A ; uchar i;
005A ; DDRC=0XFF;
005A 8FEF ldi R24,255
005C 84BB out 0x14,R24
005E .dbline 44
005E ; DDRA|=BIT(5)|BIT(6)|BIT(7);
005E 8AB3 in R24,0x1a
0060 806E ori R24,224
0062 8ABB out 0x1a,R24
0064 .dbline 45
0064 ; PORTC&=~BIT(7);
0064 AF98 cbi 0x15,7
0066 .dbline 47
0066 ;
0066 ; write_com(0X38);
0066 08E3 ldi R16,56
0068 E0DF xcall _write_com
006A .dbline 48
006A ; delay(5);
006A 05E0 ldi R16,5
006C 10E0 ldi R17,0
006E C8DF xcall _delay
0070 .dbline 49
0070 ; write_com(0X01);
0070 01E0 ldi R16,1
0072 DBDF xcall _write_com
0074 .dbline 50
0074 ; delay(5);
0074 05E0 ldi R16,5
0076 10E0 ldi R17,0
0078 C3DF xcall _delay
007A .dbline 51
007A ; write_com(0X0C);
007A 0CE0 ldi R16,12
007C D6DF xcall _write_com
007E .dbline 52
007E ; delay(5);
007E 05E0 ldi R16,5
0080 10E0 ldi R17,0
0082 BEDF xcall _delay
0084 .dbline 53
0084 ; write_com(0X06);
0084 06E0 ldi R16,6
0086 D1DF xcall _write_com
0088 .dbline 54
0088 ; delay(5);
0088 05E0 ldi R16,5
008A 10E0 ldi R17,0
008C B9DF xcall _delay
008E .dbline 55
008E ; write_com(0X80+0X10);
008E 00E9 ldi R16,144
0090 CCDF xcall _write_com
0092 .dbline 56
0092 ; delay(5);
0092 05E0 ldi R16,5
0094 10E0 ldi R17,0
0096 B4DF xcall _delay
0098 .dbline 57
0098 ; for(i=0;i<12;i++)
0098 4427 clr R20
009A 0CC0 xjmp L16
009C L13:
009C .dbline 58
009C ; {
009C .dbline 59
009C ; write_dat(table[i]);
009C 80E0 ldi R24,<_table
009E 90E0 ldi R25,>_table
00A0 E42F mov R30,R20
00A2 FF27 clr R31
00A4 E80F add R30,R24
00A6 F91F adc R31,R25
00A8 0081 ldd R16,z+0
00AA CBDF xcall _write_dat
00AC .dbline 60
00AC ; delay(5);
00AC 05E0 ldi R16,5
00AE 10E0 ldi R17,0
00B0 A7DF xcall _delay
00B2 .dbline 61
00B2 ; }
00B2 L14:
00B2 .dbline 57
00B2 4395 inc R20
00B4 L16:
00B4 .dbline 57
00B4 4C30 cpi R20,12
00B6 90F3 brlo L13
00B8 X2:
00B8 .dbline 62
00B8 ; write_com(0X80+0X50);
00B8 00ED ldi R16,208
00BA B7DF xcall _write_com
00BC .dbline 63
00BC ; delay(5);
00BC 05E0 ldi R16,5
00BE 10E0 ldi R17,0
00C0 9FDF xcall _delay
00C2 .dbline 64
00C2 ; for(i=0;i<13;i++)
00C2 4427 clr R20
00C4 0CC0 xjmp L20
00C6 L17:
00C6 .dbline 65
00C6 ; {
00C6 .dbline 66
00C6 ; write_dat(table1[i]);
00C6 80E0 ldi R24,<_table1
00C8 90E0 ldi R25,>_table1
00CA E42F mov R30,R20
00CC FF27 clr R31
00CE E80F add R30,R24
00D0 F91F adc R31,R25
00D2 0081 ldd R16,z+0
00D4 B6DF xcall _write_dat
00D6 .dbline 67
00D6 ; delay(5);
00D6 05E0 ldi R16,5
00D8 10E0 ldi R17,0
00DA 92DF xcall _delay
00DC .dbline 68
00DC ; }
00DC L18:
00DC .dbline 64
00DC 4395 inc R20
00DE L20:
00DE .dbline 64
00DE 4D30 cpi R20,13
00E0 90F3 brlo L17
00E2 X3:
00E2 .dbline 69
00E2 ; for(i=0;i<16;i++)
00E2 4427 clr R20
00E4 06C0 xjmp L24
00E6 L21:
00E6 .dbline 70
00E6 ; {
00E6 .dbline 71
00E6 ; write_com(0X18);
00E6 08E1 ldi R16,24
00E8 A0DF xcall _write_com
00EA .dbline 72
00EA ; delay(500);
00EA 04EF ldi R16,500
00EC 11E0 ldi R17,1
00EE 88DF xcall _delay
00F0 .dbline 73
00F0 ; }
00F0 L22:
00F0 .dbline 69
00F0 4395 inc R20
00F2 L24:
00F2 .dbline 69
00F2 4031 cpi R20,16
00F4 C0F3 brlo L21
00F6 X4:
00F6 .dbline -2
00F6 L12:
00F6 .dbline 0 ; func end
00F6 0895 ret
00F8 .dbsym r i 20 c
00F8 .dbend
00F8 ;
00F8 ; }
00F8 ;
00F8 ;
00F8 ;
00F8 ;
00F8 ;
00F8 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -