📄 numled.lis
字号:
.module numled.c
.area lit(rom, con, rel)
0000 _seg_table::
0000 C0F9 .byte 192,249
0002 A4B0 .byte 164,176
0004 9992 .byte 153,146
0006 82F8 .byte 130,248
0008 8090 .byte 128,144
000A 8883 .byte 136,131
000C C6A1 .byte 198,161
000E 868E .byte 134,142
0010 .dbfile E:\icc\iccavr\mega8\mega8\ADC\numled.c
0010 .dbsym e seg_table _seg_table A[16:16]kc
.area data(ram, con, rel)
0000 .dbfile E:\icc\iccavr\mega8\mega8\ADC\numled.c
0000 _led_buff::
0000 .blkb 2
.area idata
0000 0000 .byte 0,0
.area data(ram, con, rel)
0002 .dbfile E:\icc\iccavr\mega8\mega8\ADC\numled.c
0002 .blkb 2
.area idata
0002 0000 .byte 0,0
.area data(ram, con, rel)
0004 .dbfile E:\icc\iccavr\mega8\mega8\ADC\numled.c
0004 .dbsym e led_buff _led_buff A[4:4]c
.area text(rom, con, rel)
0000 .dbfile E:\icc\iccavr\mega8\mega8\ADC\numled.c
0000 .dbfunc e delay_us _delay_us fV
0000 ; time -> R16,R17
.even
0000 _delay_us::
0000 .dbline -1
0000 .dbline 15
0000 ; /*******************************************/
0000 ; /* 广州天河双龙电子公司 */
0000 ; /* http://www.sl.com.cn */
0000 ; /* 数码LED驱动程序 */
0000 ; /* 作者:ntzwq@wx88.net */
0000 ; /* 2002年5月11日 */
0000 ; /* 目标MCU:MEGA8 晶振:内部RC(INT) 8MHZ */
0000 ; /*******************************************/
0000 ; #include<iom8v.h>
0000 ; const unsigned char seg_table[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0000 ; 0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
0000 ; unsigned char led_buff[4]={0,0,0,0};
0000 ; /* 微秒级延时程序 */
0000 ; void delay_us(int time)
0000 ; {
0000 L2:
0000 .dbline 17
0000 ; do
0000 ; {
0000 .dbline 18
0000 ; time--;
0000 0150 subi R16,1
0002 1040 sbci R17,0
0004 .dbline 19
0004 ; }
0004 L3:
0004 .dbline 20
0004 ; while (time>1);
0004 81E0 ldi R24,1
0006 90E0 ldi R25,0
0008 8017 cp R24,R16
000A 9107 cpc R25,R17
000C CCF3 brlt L2
000E .dbline -2
000E .dbline 21
000E ; }
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbsym r time 16 I
0010 .dbend
0010 .dbfunc e delay_ms _delay_ms fV
0010 ; time -> R20,R21
.even
0010 _delay_ms::
0010 00D0 rcall push_gset1
0012 A801 movw R20,R16
0014 .dbline -1
0014 .dbline 24
0014 ; /* 毫秒级延时程序 */
0014 ; void delay_ms(unsigned int time)
0014 ; {
0014 05C0 rjmp L7
0016 L6:
0016 .dbline 26
0016 .dbline 27
0016 08EE ldi R16,1000
0018 13E0 ldi R17,3
001A F2DF rcall _delay_us
001C .dbline 28
001C 4150 subi R20,1
001E 5040 sbci R21,0
0020 .dbline 29
0020 L7:
0020 .dbline 25
0020 ; while(time!=0)
0020 4030 cpi R20,0
0022 4507 cpc R20,R21
0024 C1F7 brne L6
0026 X0:
0026 .dbline -2
0026 .dbline 30
0026 ; {
0026 ; delay_us(1000);
0026 ; time--;
0026 ; }
0026 ; }
0026 L5:
0026 00D0 rcall pop_gset1
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbsym r time 20 i
002A .dbend
002A .dbfunc e display _display fV
002A ; i -> R20
.even
002A _display::
002A 00D0 rcall push_gset1
002C .dbline -1
002C .dbline 32
002C ; void display(void)
002C ; {
002C .dbline 34
002C ; unsigned char i;
002C ; DDRB=0xff;
002C 8FEF ldi R24,255
002E 87BB out 0x17,R24
0030 .dbline 35
0030 ; PORTB=0xff;
0030 88BB out 0x18,R24
0032 .dbline 36
0032 ; DDRD|=0xf0;
0032 81B3 in R24,0x11
0034 806F ori R24,240
0036 81BB out 0x11,R24
0038 .dbline 37
0038 ; PORTD|=0xf0;
0038 82B3 in R24,0x12
003A 806F ori R24,240
003C 82BB out 0x12,R24
003E .dbline 38
003E ; for(i=0;i<4;i++)
003E 4427 clr R20
0040 18C0 rjmp L13
0042 L10:
0042 .dbline 39
0042 .dbline 40
0042 80E0 ldi R24,<_led_buff
0044 90E0 ldi R25,>_led_buff
0046 E42F mov R30,R20
0048 FF27 clr R31
004A E80F add R30,R24
004C F91F adc R31,R25
004E 2080 ldd R2,z+0
0050 28BA out 0x18,R2
0052 .dbline 41
0052 142F mov R17,R20
0054 1C5F subi R17,252 ; addi 4
0056 01E0 ldi R16,1
0058 00D0 rcall lsl8
005A 202E mov R2,R16
005C 2094 com R2
005E 32B2 in R3,0x12
0060 3220 and R3,R2
0062 32BA out 0x12,R3
0064 .dbline 42
0064 01E0 ldi R16,1
0066 10E0 ldi R17,0
0068 D3DF rcall _delay_ms
006A .dbline 43
006A 82B3 in R24,0x12
006C 806F ori R24,240
006E 82BB out 0x12,R24
0070 .dbline 44
0070 L11:
0070 .dbline 38
0070 4395 inc R20
0072 L13:
0072 .dbline 38
0072 4430 cpi R20,4
0074 30F3 brlo L10
0076 .dbline -2
0076 .dbline 45
0076 ; {
0076 ; PORTB=led_buff[i];
0076 ; PORTD&=~(1<<(i+4));
0076 ; delay_ms(1);
0076 ; PORTD|=0xf0;
0076 ; }
0076 ; }
0076 L9:
0076 00D0 rcall pop_gset1
0078 .dbline 0 ; func end
0078 0895 ret
007A .dbsym r i 20 c
007A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -