📄 164_test.lis
字号:
0062 ; {
0062 .dbline 27
0062 ; PORT_CLEAR|=(1<<CLEAR);
0062 DB9A sbi 0x1b,3
0064 .dbline -2
0064 L16:
0064 .dbline 0 ; func end
0064 0895 ret
0066 .dbend
0066 .dbfunc e write_164 _write_164 fV
0066 ; n -> R20
0066 ; i -> R16
.even
0066 _write_164::
0066 4A93 st -y,R20
0068 .dbline -1
0068 .dbline 31
0068 ; }
0068 ;
0068 ; void write_164(unsigned char i)
0068 ; {
0068 .dbline 33
0068 ; char n;
0068 ; for(n=8;n>0;n--)
0068 48E0 ldi R20,8
006A 0BC0 xjmp L21
006C L18:
006C .dbline 34
006C ; {
006C .dbline 35
006C ; if(i&0x80) PORT_DATA|=(1<<DATA);
006C 07FF sbrs R16,7
006E 02C0 rjmp L22
0070 X3:
0070 .dbline 35
0070 DC9A sbi 0x1b,4
0072 01C0 xjmp L23
0074 L22:
0074 .dbline 36
0074 ; else PORT_DATA&=~(1<<DATA);
0074 DC98 cbi 0x1b,4
0076 L23:
0076 .dbline 37
0076 ; NOP();
0076 0000 nop
0078 .dbline 38
0078 ; PORT_CLK|=(1<<CLK);
0078 DA9A sbi 0x1b,2
007A .dbline 39
007A ; NOP();
007A 0000 nop
007C .dbline 40
007C ; PORT_CLK&=~(1<<CLK);
007C DA98 cbi 0x1b,2
007E .dbline 41
007E ; i=(i<<1);
007E 000F lsl R16
0080 .dbline 42
0080 ; }
0080 L19:
0080 .dbline 33
0080 4A95 dec R20
0082 L21:
0082 .dbline 33
0082 80E0 ldi R24,0
0084 8417 cp R24,R20
0086 90F3 brlo L18
0088 X4:
0088 .dbline -2
0088 L17:
0088 .dbline 0 ; func end
0088 4991 ld R20,y+
008A 0895 ret
008C .dbsym r n 20 c
008C .dbsym r i 16 c
008C .dbend
008C .dbfunc e write_LED _write_LED fV
008C ; sel -> R22
008C ; i -> R20
008C ; p -> R10,R11
.even
008C _write_LED::
008C 0E940000 xcall push_xgsetF00C
0090 5801 movw R10,R16
0092 .dbline -1
0092 .dbline 45
0092 ; }
0092 ; void write_LED(unsigned char *p)
0092 ; {
0092 .dbline 46
0092 ; unsigned char i,sel=0x04;
0092 64E0 ldi R22,4
0094 .dbline 48
0094 ;
0094 ; for(i=0;i<4;i++)
0094 4427 clr R20
0096 19C0 xjmp L28
0098 L25:
0098 .dbline 49
0098 ; {
0098 .dbline 50
0098 ; write_164(Table[p[i]]);
0098 E42F mov R30,R20
009A FF27 clr R31
009C EA0D add R30,R10
009E FB1D adc R31,R11
00A0 E081 ldd R30,z+0
00A2 FF27 clr R31
00A4 80E0 ldi R24,<_Table
00A6 90E0 ldi R25,>_Table
00A8 E80F add R30,R24
00AA F91F adc R31,R25
00AC 0081 ldd R16,z+0
00AE DBDF xcall _write_164
00B0 .dbline 51
00B0 ; PORT_SEL&=(~sel);
00B0 262E mov R2,R22
00B2 2094 com R2
00B4 35B2 in R3,0x15
00B6 3220 and R3,R2
00B8 35BA out 0x15,R3
00BA .dbline 52
00BA ; delay_ms(2);
00BA 02E0 ldi R16,2
00BC 10E0 ldi R17,0
00BE BBDF xcall _delay_ms
00C0 .dbline 53
00C0 ; PORT_SEL|=SEL;
00C0 85B3 in R24,0x15
00C2 8C63 ori R24,60
00C4 85BB out 0x15,R24
00C6 .dbline 54
00C6 ; sel=sel<<1;
00C6 660F lsl R22
00C8 .dbline 55
00C8 ; }
00C8 L26:
00C8 .dbline 48
00C8 4395 inc R20
00CA L28:
00CA .dbline 48
00CA 4430 cpi R20,4
00CC 28F3 brlo L25
00CE X5:
00CE .dbline -2
00CE L24:
00CE .dbline 0 ; func end
00CE 0C940000 xjmp pop_xgsetF00C
00D2 .dbsym r sel 22 c
00D2 .dbsym r i 20 c
00D2 .dbsym r p 10 pc
00D2 .dbend
.area lit(rom, con, rel)
0000 L30:
0000 0102 .byte 1,2
0002 0304 .byte 3,4
.area text(rom, con, rel)
00D2 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\数码管\164.h
00D2 .dbfile D:\mega16_32实验板资料\ICCAVR源程序\164\数码管\164_test.c
00D2 .dbfunc e main _main fV
00D2 ; Date -> y+0
.even
00D2 _main::
00D2 2497 sbiw R28,4
00D4 .dbline -1
00D4 .dbline 12
00D4 ; //ICC-AVR application builder : 2008-11-11 16:14:49
00D4 ; // Target : M16
00D4 ; // Crystal: 8.0000Mhz
00D4 ;
00D4 ; #include <iom16v.h>
00D4 ; #include <macros.h>
00D4 ;
00D4 ; #include "delay.h"
00D4 ; #include "164.h"
00D4 ;
00D4 ; void main(void)
00D4 ; {
00D4 .dbline 13
00D4 ; unsigned char Date[4]={1,2,3,4};
00D4 80E0 ldi R24,<L30
00D6 90E0 ldi R25,>L30
00D8 FE01 movw R30,R28
00DA 04E0 ldi R16,4
00DC 10E0 ldi R17,0
00DE FA93 st -y,R31
00E0 EA93 st -y,R30
00E2 9A93 st -y,R25
00E4 8A93 st -y,R24
00E6 0E940000 xcall asgncblk
00EA .dbline 14
00EA ; delay_ms(20);
00EA 04E1 ldi R16,20
00EC 10E0 ldi R17,0
00EE A3DF xcall _delay_ms
00F0 .dbline 15
00F0 ; Init_164();
00F0 B1DF xcall _Init_164
00F2 .dbline 16
00F2 ; Clear_164();
00F2 B7DF xcall _Clear_164
00F4 02C0 xjmp L32
00F6 L31:
00F6 .dbline 18
00F6 ; while(1)
00F6 ; write_LED(Date); //显示1234*/
00F6 8E01 movw R16,R28
00F8 C9DF xcall _write_LED
00FA L32:
00FA .dbline 17
00FA FDCF xjmp L31
00FC X6:
00FC .dbline -2
00FC L29:
00FC .dbline 0 ; func end
00FC 2496 adiw R28,4
00FE 0895 ret
0100 .dbsym l Date 0 A[4:4]c
0100 .dbend
0100 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -