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