⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 numled.lis

📁 双龙公司mega8芯片ad转换程序例程。
💻 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 + -