📄 mdls40466.lis
字号:
.module MDLS40466.c
.area text(rom, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\MDLS40466\MDLS40466.c
.area code(ram, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\MDLS40466\MDLS40466.c
.area lit(rom, con, rel)
0000 _table::
0000 49204C494B4520415652202100 .byte 'I,32,'L,'I,'K,'E,32,'A,'V,'R,32,33,0
000D .dbsym e table _table A[13:13]kc
000D _table1::
000D 5757572E54584D43552E434F4D00 .byte 'W,'W,'W,46,'T,'X,'M,'C,'U,46,'C,'O,'M,0
001B .dbsym e table1 _table1 A[14:14]kc
001B _table2::
001B 49204C4F564520594F55202100 .byte 'I,32,'L,'O,'V,'E,32,'Y,'O,'U,32,33,0
0028 .dbsym e table2 _table2 A[13:13]kc
0028 _table3::
0028 5757572E5A4A5352552E4E455400 .byte 'W,'W,'W,46,'Z,'J,'S,'R,'U,46,'N,'E,'T,0
0036 .dbsym e table3 _table3 A[14:14]kc
.area text(rom, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\MDLS40466\MDLS40466.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 13
0004 ; #include <iom16v.h>
0004 ; #include <macros.h>
0004 ; #define uchar unsigned char
0004 ; #define uint unsigned int
0004 ; #pragma data:code
0004 ; const uchar table[]="I LIKE AVR !";
0004 ; const uchar table1[]="WWW.TXMCU.COM";
0004 ; const uchar table2[]="I LOVE YOU !";
0004 ; const uchar table3[]="WWW.ZJSRU.NET";
0004 ; uchar k;
0004 ;
0004 ; void delay(uint ms)
0004 ; {
0004 .dbline 15
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 16
000A ; {
000A .dbline 17
000A ; for(j=0;j<1141;j++);
000A 6627 clr R22
000C 7727 clr R23
000E 02C0 xjmp L9
0010 L6:
0010 .dbline 17
0010 L7:
0010 .dbline 17
0010 6F5F subi R22,255 ; offset = 1
0012 7F4F sbci R23,255
0014 L9:
0014 .dbline 17
0014 6537 cpi R22,117
0016 E4E0 ldi R30,4
0018 7E07 cpc R23,R30
001A D0F3 brlo L6
001C X0:
001C .dbline 18
001C ; }
001C L3:
001C .dbline 15
001C 4F5F subi R20,255 ; offset = 1
001E 5F4F sbci R21,255
0020 L5:
0020 .dbline 15
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 21
002E ; }
002E ; void write_com(uchar com)
002E ; {
002E .dbline 22
002E ; PORTD&=~BIT(4);
002E 9498 cbi 0x12,4
0030 .dbline 23
0030 ; PORTD&=~BIT(5);
0030 9598 cbi 0x12,5
0032 .dbline 24
0032 ; PORTB=com;
0032 A8BA out 0x18,R10
0034 .dbline 25
0034 ; PORTD|=BIT(k);
0034 10910000 lds R17,_k
0038 01E0 ldi R16,1
003A 0E940000 xcall lsl8
003E 22B2 in R2,0x12
0040 202A or R2,R16
0042 22BA out 0x12,R2
0044 .dbline 26
0044 ; delay(1);
0044 01E0 ldi R16,1
0046 10E0 ldi R17,0
0048 DBDF xcall _delay
004A .dbline 27
004A ; PORTD&=~BIT(k);
004A 10910000 lds R17,_k
004E 01E0 ldi R16,1
0050 0E940000 xcall lsl8
0054 202E mov R2,R16
0056 2094 com R2
0058 32B2 in R3,0x12
005A 3220 and R3,R2
005C 32BA out 0x12,R3
005E .dbline -2
005E L10:
005E .dbline 0 ; func end
005E A990 ld R10,y+
0060 0895 ret
0062 .dbsym r com 10 c
0062 .dbend
0062 .dbfunc e write_dat _write_dat fV
0062 ; dat -> R10
.even
0062 _write_dat::
0062 AA92 st -y,R10
0064 A02E mov R10,R16
0066 .dbline -1
0066 .dbline 31
0066 ; }
0066 ;
0066 ; void write_dat(uchar dat)
0066 ; {
0066 .dbline 32
0066 ; PORTD|=BIT(4);
0066 949A sbi 0x12,4
0068 .dbline 33
0068 ; PORTD&=~BIT(5);
0068 9598 cbi 0x12,5
006A .dbline 34
006A ; PORTB=dat;
006A A8BA out 0x18,R10
006C .dbline 35
006C ; PORTD|=BIT(k);
006C 10910000 lds R17,_k
0070 01E0 ldi R16,1
0072 0E940000 xcall lsl8
0076 22B2 in R2,0x12
0078 202A or R2,R16
007A 22BA out 0x12,R2
007C .dbline 36
007C ; delay(1);
007C 01E0 ldi R16,1
007E 10E0 ldi R17,0
0080 BFDF xcall _delay
0082 .dbline 37
0082 ; PORTD&=~BIT(k);
0082 10910000 lds R17,_k
0086 01E0 ldi R16,1
0088 0E940000 xcall lsl8
008C 202E mov R2,R16
008E 2094 com R2
0090 32B2 in R3,0x12
0092 3220 and R3,R2
0094 32BA out 0x12,R3
0096 .dbline -2
0096 L11:
0096 .dbline 0 ; func end
0096 A990 ld R10,y+
0098 0895 ret
009A .dbsym r dat 10 c
009A .dbend
009A .dbfunc e main _main fV
009A ; i -> R20
.even
009A _main::
009A .dbline -1
009A .dbline 40
009A ; }
009A ; void main()
009A ; {
009A .dbline 42
009A ; uchar i;
009A ; for(k=6;k<8;k++)
009A 86E0 ldi R24,6
009C 80930000 sts _k,R24
00A0 8DC0 xjmp L16
00A2 L13:
00A2 .dbline 43
00A2 ; {
00A2 .dbline 44
00A2 ; DDRB=0XFF;
00A2 8FEF ldi R24,255
00A4 87BB out 0x17,R24
00A6 .dbline 45
00A6 ; DDRD|=BIT(4)|BIT(5)|BIT(k);
00A6 10910000 lds R17,_k
00AA 01E0 ldi R16,1
00AC 0E940000 xcall lsl8
00B0 802F mov R24,R16
00B2 8063 ori R24,48
00B4 21B2 in R2,0x11
00B6 282A or R2,R24
00B8 21BA out 0x11,R2
00BA .dbline 46
00BA ; PORTD&=~BIT(k);
00BA 10910000 lds R17,_k
00BE 01E0 ldi R16,1
00C0 0E940000 xcall lsl8
00C4 202E mov R2,R16
00C6 2094 com R2
00C8 32B2 in R3,0x12
00CA 3220 and R3,R2
00CC 32BA out 0x12,R3
00CE .dbline 47
00CE ; write_com(0X38);
00CE 08E3 ldi R16,56
00D0 ACDF xcall _write_com
00D2 .dbline 48
00D2 ; delay(5);
00D2 05E0 ldi R16,5
00D4 10E0 ldi R17,0
00D6 94DF xcall _delay
00D8 .dbline 49
00D8 ; write_com(0X01);/*清屏*/
00D8 01E0 ldi R16,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -