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

📄 led.lis

📁 AtMega169芯片连接RTC的测试程序
💻 LIS
字号:
                        .module led.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\TDdownload\zxy\169demo\169RTC\led.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                   .dbsym e seg_table _seg_table A[16:16]kc
                        .area data(ram, con, rel)
 0000                   .dbfile C:\TDdownload\zxy\169demo\169RTC\led.c
 0000           _led_buff::
 0000                   .blkb 2
                        .area idata
 0000 0000              .byte 0,0
                        .area data(ram, con, rel)
 0002                   .dbfile C:\TDdownload\zxy\169demo\169RTC\led.c
 0002                   .blkb 2
                        .area idata
 0002 0000              .byte 0,0
                        .area data(ram, con, rel)
 0004                   .dbfile C:\TDdownload\zxy\169demo\169RTC\led.c
 0004                   .dbsym e led_buff _led_buff A[4:4]c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\TDdownload\zxy\169demo\169RTC\led.c
 0000                   .dbfunc e delay_us _delay_us fV
 0000           ;           time -> R16,R17
                        .even
 0000           _delay_us::
 0000                   .dbline -1
 0000                   .dbline 7
 0000           ; #include<iom169v.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 9
 0000           ;         do
 0000           ;               {
 0000                   .dbline 10
 0000           ;                time--;
 0000 0150              subi R16,1
 0002 1040              sbci R17,0
 0004                   .dbline 11
 0004           ;               }       
 0004           L3:
 0004                   .dbline 12
 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           X0:
 000E                   .dbline -2
 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 4A93              st -y,R20
 0012 5A93              st -y,R21
 0014 A801              movw R20,R16
 0016                   .dbline -1
 0016                   .dbline 16
 0016           ;        }        
 0016           ; /*                        毫秒级延时程序                      */       
 0016           ; void delay_ms(unsigned int time)
 0016           ;        {
 0016 05C0              xjmp L7
 0018           L6:
 0018                   .dbline 18
 0018           ;         while(time!=0)
 0018           ;                 {             
 0018                   .dbline 19
 0018           ;                  delay_us(1000);
 0018 08EE              ldi R16,1000
 001A 13E0              ldi R17,3
 001C F1DF              xcall _delay_us
 001E                   .dbline 20
 001E           ;                  time--;
 001E 4150              subi R20,1
 0020 5040              sbci R21,0
 0022                   .dbline 21
 0022           ;                 }
 0022           L7:
 0022                   .dbline 17
 0022 4030              cpi R20,0
 0024 4507              cpc R20,R21
 0026 C1F7              brne L6
 0028           X1:
 0028                   .dbline -2
 0028           L5:
 0028                   .dbline 0 ; func end
 0028 5991              ld R21,y+
 002A 4991              ld R20,y+
 002C 0895              ret
 002E                   .dbsym r time 20 i
 002E                   .dbend
 002E                   .dbfunc e display _display fV
 002E           ;              n -> R20
                        .even
 002E           _display::
 002E 4A93              st -y,R20
 0030 5A93              st -y,R21
 0032                   .dbline -1
 0032                   .dbline 24
 0032           ;        }                                      
 0032           ; void display(void)
 0032           ;        {
 0032                   .dbline 26
 0032           ;         unsigned char n;
 0032           ;         DDRE=0xff;
 0032 8FEF              ldi R24,255
 0034 8DB9              out 0xd,R24
 0036                   .dbline 27
 0036           ;         PORTE=0xff;
 0036 8EB9              out 0xe,R24
 0038                   .dbline 28
 0038           ;         DDRB|=0xf0;
 0038 84B1              in R24,0x4
 003A 806F              ori R24,240
 003C 84B9              out 0x4,R24
 003E                   .dbline 29
 003E           ;         PORTB|=0xf0;
 003E 85B1              in R24,0x5
 0040 806F              ori R24,240
 0042 85B9              out 0x5,R24
 0044                   .dbline 30
 0044           ;         for(n=0;n<3;n++)
 0044 4427              clr R20
 0046 1CC0              xjmp L13
 0048           L10:
 0048                   .dbline 31
 0048           ;                {      
 0048                   .dbline 33
 0048           ;                 
 0048           ;                 PORTE=led_buff[n];
 0048 80E0              ldi R24,<_led_buff
 004A 90E0              ldi R25,>_led_buff
 004C E42F              mov R30,R20
 004E FF27              clr R31
 0050 E80F              add R30,R24
 0052 F91F              adc R31,R25
 0054 2080              ldd R2,z+0
 0056 2EB8              out 0xe,R2
 0058                   .dbline 34
 0058           ;                 PORTB&=~(1<<(n+4));
 0058 142F              mov R17,R20
 005A 1C5F              subi R17,252    ; addi 4
 005C 01E0              ldi R16,1
 005E 0E940000          xcall lsl8
 0062 202E              mov R2,R16
 0064 2094              com R2
 0066 35B0              in R3,0x5
 0068 3220              and R3,R2
 006A 35B8              out 0x5,R3
 006C                   .dbline 35
 006C           ;                 delay_ms(1);
 006C 01E0              ldi R16,1
 006E 10E0              ldi R17,0
 0070 CFDF              xcall _delay_ms
 0072                   .dbline 36
 0072           ;                 PORTB|=0xf0;
 0072 85B1              in R24,0x5
 0074 806F              ori R24,240
 0076 85B9              out 0x5,R24
 0078                   .dbline 37
 0078           ;                 delay_us(100);
 0078 04E6              ldi R16,100
 007A 10E0              ldi R17,0
 007C C1DF              xcall _delay_us
 007E                   .dbline 39
 007E           ;                 
 007E           ;                }
 007E           L11:
 007E                   .dbline 30
 007E 4395              inc R20
 0080           L13:
 0080                   .dbline 30
 0080 4330              cpi R20,3
 0082 10F3              brlo L10
 0084           X2:
 0084                   .dbline -2
 0084           L9:
 0084                   .dbline 0 ; func end
 0084 5991              ld R21,y+
 0086 4991              ld R20,y+
 0088 0895              ret
 008A                   .dbsym r n 20 c
 008A                   .dbend
 008A           ;        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -