📄 main.lis
字号:
.module main.c
.area lit(rom, con, rel)
0000 _Tab::
0000 149F .byte 20,159
0002 381A .byte 56,26
0004 9352 .byte 147,'R
0006 501F .byte 'P,31
0008 1012 .byte 16,18
000A 11D0 .byte 17,208
000C 7498 .byte 't,152
000E 7071 .byte 'p,'q
0010 .dbfile F:\ouravr\ds3231\main.c
0010 .dbsym e Tab _Tab A[16:16]kc
.area text(rom, con, rel)
0000 .dbfile F:\ouravr\ds3231\main.c
0000 .dbfunc e main _main fV
0000 ; Address -> R20
.even
0000 _main::
0000 .dbline -1
0000 .dbline 12
0000 ; #include <iom16v.h>
0000 ;
0000 ; #define uchar unsigned char
0000 ; #define uint unsigned int
0000 ;
0000 ; void delay(uint ticks);//延时
0000 ;
0000 ; unsigned char const Tab[]={0x14,0x9F,0x38,0x1A,0x93,0x52,0x50,0x1F,
0000 ; 0x10,0x12,0x11,0xD0,0x74,0x98,0x70,0x71};
0000 ;
0000 ; void main()
0000 ; {
0000 .dbline 14
0000 ; uchar Address;
0000 ; init_devices();
0000 00D0 rcall _init_devices
0002 .dbline 16
0002 4427 clr R20
0004 06C0 rjmp L5
0006 L2:
0006 .dbline 16
0006 242F mov R18,R20
0008 3327 clr R19
000A 042F mov R16,R20
000C 1127 clr R17
000E 00D0 rcall _Write24c02_OneByte
0010 L3:
0010 .dbline 16
0010 4395 inc R20
0012 L5:
0012 .dbline 16
0012 ; //向0到127这128个单元写顺序写入0到127
0012 ; for(Address=0;Address!=128;Address++)Write24c02_OneByte(Address,Address);
0012 4038 cpi R20,128
0014 C1F7 brne L2
0016 .dbline 17
0016 ; PORTA=0x80;
0016 80E8 ldi R24,128
0018 8BBB out 0x1b,R24
001A 15C0 rjmp L7
001C L6:
001C .dbline 19
001C ; while(1)
001C ; {
001C .dbline 20
001C ; for(Address=0;Address!=128;Address++)
001C 4427 clr R20
001E 11C0 rjmp L12
0020 L9:
0020 .dbline 21
0020 .dbline 23
0020 042F mov R16,R20
0022 1127 clr R17
0024 00D0 rcall _Read24c02_OneByte
0026 80E0 ldi R24,<_Tab
0028 90E0 ldi R25,>_Tab
002A E02F mov R30,R16
002C F12F mov R31,R17
002E EF70 andi R30,15
0030 F070 andi R31,0
0032 E80F add R30,R24
0034 F91F adc R31,R25
0036 C895 lpm
0038 05BA out 0x15,R0
003A .dbline 24
003A 08E8 ldi R16,5000
003C 13E1 ldi R17,19
003E 05D0 rcall _delay
0040 .dbline 25
0040 L10:
0040 .dbline 20
0040 4395 inc R20
0042 L12:
0042 .dbline 20
0042 4038 cpi R20,128
0044 69F7 brne L9
0046 .dbline 27
0046 L7:
0046 .dbline 18
0046 EACF rjmp L6
0048 X0:
0048 .dbline -2
0048 L1:
0048 .dbline 0 ; func end
0048 0895 ret
004A .dbsym r Address 20 c
004A .dbend
004A .dbfunc e delay _delay fV
004A ; i -> R20
004A ; ticks -> R16,R17
.even
004A _delay::
004A 00D0 rcall push_gset1
004C .dbline -1
004C .dbline 31
004C ; {
004C ; //把0到128单元的内容顺序读出并显示
004C ; PORTC=Tab[Read24c02_OneByte(Address)&0x0f];
004C ; delay(5000);
004C ; }
004C ;
004C ; }
004C ; }
004C ;
004C ; void delay(uint ticks)
004C ; {
004C 05C0 rjmp L15
004E L14:
004E .dbline 33
004E 44E6 ldi R20,100
0050 01C0 rjmp L20
0052 L17:
0052 .dbline 33
0052 L18:
0052 .dbline 33
0052 4A95 dec R20
0054 L20:
0054 .dbline 33
0054 4423 tst R20
0056 E9F7 brne L17
0058 L15:
0058 .dbline 33
0058 ; uchar i;
0058 ; while(ticks--)for(i=100;i!=0;i--);//约0.1mS
0058 202E mov R2,R16
005A 312E mov R3,R17
005C 0150 subi R16,1
005E 1040 sbci R17,0
0060 2220 tst R2
0062 A9F7 brne L14
0064 3320 tst R3
0066 99F7 brne L14
0068 X1:
0068 .dbline -2
0068 L13:
0068 00D0 rcall pop_gset1
006A .dbline 0 ; func end
006A 0895 ret
006C .dbsym r i 20 c
006C .dbsym r ticks 16 i
006C .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -