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

📄 runled.lis

📁 4个跑马灯
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module runled.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\程序设计\程序公文包\开发包\4LED-run\runled.c
 0000                   .dbfunc e WDT_ON _WDT_ON fV
                        .even
 0000           _WDT_ON::
 0000                   .dbline -1
 0000                   .dbline 120
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; #include <stdio.h>
 0000           ; 
 0000           ; #define uchar unsigned char
 0000           ; #define uint unsigned int
 0000           ; 
 0000           ; #define D01ON PORTB&=(~(1<<PB3))    //打开LED D1   与的方式置0
 0000           ; #define D01OFF PORTB|=(1<<PB3)      //关闭LED D1   或的方式置1
 0000           ; #define D02ON PORTB&=(~(1<<PB2))
 0000           ; #define D02OFF PORTB|=(1<<PB2)
 0000           ; #define D03ON PORTB&=(~(1<<PB1))
 0000           ; #define D03OFF PORTB|=(1<<PB1)
 0000           ; #define D04ON PORTB&=(~(1<<PB0))
 0000           ; #define D04OFF PORTB|=(1<<PB0)
 0000           ; 
 0000           ; #define LED1 D01ON;D02OFF;D03OFF;D04OFF;delay_nms(100);
 0000           ; #define LED12 D01ON;D02ON;D03OFF;D04OFF;delay_nms(100);
 0000           ; #define LED14 D01ON;D02OFF;D03ON;D04OFF;delay_nms(100);
 0000           ; #define LED13 D01ON;D02OFF;D03OFF;D04ON;delay_nms(100);
 0000           ; 
 0000           ; #define LED2 D02ON;D01OFF;D03OFF;D04OFF;delay_nms(100);
 0000           ; #define LED21 D02ON;D01ON;D03OFF;D04OFF;delay_nms(100);
 0000           ; #define LED24 D02ON;D01OFF;D03ON;D04OFF;delay_nms(100);
 0000           ; #define LED23 D02ON;D01OFF;D03OFF;D04ON;delay_nms(100);
 0000           ; 
 0000           ; #define LED4 D03ON;D02OFF;D01OFF;D04OFF;delay_nms(100);
 0000           ; #define LED41 D03ON;D02OFF;D01ON;D04OFF;delay_nms(100);
 0000           ; #define LED42 D03ON;D02ON;D01OFF;D04OFF;delay_nms(100);
 0000           ; #define LED43 D03ON;D02OFF;D01OFF;D04ON;delay_nms(100);
 0000           ; 
 0000           ; #define LED3 D04ON;D02OFF;D03OFF;D01OFF;delay_nms(100);
 0000           ; #define LED31 D04ON;D02OFF;D03OFF;D01ON;delay_nms(100);
 0000           ; #define LED32 D04ON;D02ON;D03OFF;D01OFF;delay_nms(100);
 0000           ; #define LED34 D04ON;D02OFF;D03ON;D01OFF;delay_nms(100);
 0000           ; 
 0000           ; #define LED44 D01ON;D02ON;D03ON;D04ON;delay_nms(100);     ///全亮
 0000           ; #define LED00 D01OFF;D02OFF;D03OFF;D04OFF;delay_nms(100); //全灭
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; #define BuzzerON  PORTC|=(1<<PC6)
 0000           ; #define BuzzerOFF PORTC&=(~(1<<PC6))
 0000           ; //比#define BuzzerOFF PORTC=0x00全修改方式相对好,仅修改个别位
 0000           ; #define BuzzerLongON  BuzzerON;delay_nms(500);BuzzerOFF;
 0000           ; #define BuzzerShortON BuzzerON;delay_nms(100);BuzzerOFF;
 0000           ; /*
 0000           ; void timer1_init(void);
 0000           ; void delay_nms(unsigned int n);
 0000           ; 
 0000           ; void timer1_init(void)///1秒中断初始化 定时1
 0000           ; {
 0000           ;    TCCR1B=0x00;
 0000           ;    TCNT1H=0xf0;
 0000           ;    TCNT1L=0xBE;
 0000           ;    OCR1AH=0x00;
 0000           ;    OCR1AL=0x00;
 0000           ;    OCR1BH=0x00;
 0000           ;    OCR1BL=0x00;
 0000           ;    TCCR1A=0x00;
 0000           ;    TCCR1B=0x05;
 0000           ; }
 0000           ; 
 0000           ; uint count60s=0;  //60秒=1分
 0000           ; uint count3600s=0; //60分钟=1时
 0000           ; uint count1h=0; //60分钟=1时
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; #pragma interrupt_handler timer1_ovf_isr:7
 0000           ; void timer1_ovf_isr(void) ///1秒中断
 0000           ; {
 0000           ;    TCNT1H=0xf0;
 0000           ;    TCNT1L=0xbe;
 0000           ;    if (count60s<60)
 0000           ;      {BuzzerShortON;
 0000           ;          count60s++;
 0000           ;        }
 0000           ;    if (count60s>60)
 0000           ;         {
 0000           ;            count60s=1;
 0000           ;            count3600s++;
 0000           ;            if (count3600s<60)
 0000           ;               {
 0000           ;                  count3600s++;
 0000           ;                }
 0000           ;            if (count3600s>60)
 0000           ;                {
 0000           ;                  count3600s=1;
 0000           ;                  count1h++;
 0000           ;                           if (count1h=7)
 0000           ;                               {
 0000           ;                                 count1h=0;
 0000           ;                                 while(1)
 0000           ;                                   {
 0000           ;                                         BuzzerShortON;
 0000           ;                                        }
 0000           ;                               }
 0000           ;                }
 0000           ;           }
 0000           ; }
 0000           ; 
 0000           ; 
 0000           ; #pragma interrupt_handler timer1_ovf_isr:7
 0000           ; void timer1_ovf_isr(void) ///1秒中断
 0000           ; {
 0000           ;    TCNT1H=0xf0;
 0000           ;    TCNT1L=0xbe;
 0000           ;     BuzzerShortON;
 0000           ;    if (count60s<60)
 0000           ;      {
 0000           ;          BuzzerShortON;
 0000           ;          count60s++;
 0000           ;        }
 0000           ;    
 0000           ; }
 0000           ; */
 0000           ; void WDT_ON(void)
 0000           ;  {
 0000                   .dbline 121
 0000           ;    WDR(); //this prevents a timout on enabling
 0000 A895              wdr
 0002                   .dbline 122
 0002           ;    WDTCR|=(1<<WDTOE)|(1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0);//WDTCR = 0x1F; //特别注意这一条不是ICC生成的,是后来加上的。
 0002 81B5              in R24,0x21
 0004 8F61              ori R24,31
 0006 81BD              out 0x21,R24
 0008                   .dbline 123
 0008           ;    WDTCR&=(~(1<<WDTOE))|(1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0);//WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs
 0008 81B5              in R24,0x21
 000A 8F7E              andi R24,239
 000C 81BD              out 0x21,R24
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbend
 0010                   .dbfunc e delay_1ms _delay_1ms fV
 0010           ;              i -> R16,R17
                        .even
 0010           _delay_1ms::
 0010                   .dbline -1
 0010                   .dbline 127
 0010           ;  }
 0010           ; 
 0010           ; void delay_1ms(void)//1ms延时函数
 0010           ; {
 0010                   .dbline 129
 0010           ;   unsigned int i;
 0010           ;   for (i=0;i<150;i++)
 0010 0027              clr R16
 0012 1127              clr R17
 0014 03C0              xjmp L6
 0016           L3:
 0016                   .dbline 130
 0016 A895              wdr
 0018           L4:
 0018                   .dbline 129
 0018 0F5F              subi R16,255  ; offset = 1
 001A 1F4F              sbci R17,255
 001C           L6:
 001C                   .dbline 129
 001C 0639              cpi R16,150
 001E E0E0              ldi R30,0
 0020 1E07              cpc R17,R30
 0022 C8F3              brlo L3
 0024                   .dbline -2
 0024           L2:
 0024                   .dbline 0 ; func end
 0024 0895              ret
 0026                   .dbsym r i 16 i
 0026                   .dbend
 0026                   .dbfunc e delay_nms _delay_nms fV
 0026           ;              i -> R20,R21
 0026           ;              n -> R22,R23
                        .even
 0026           _delay_nms::
 0026 0E940000          xcall push_gset2
 002A B801              movw R22,R16
 002C                   .dbline -1
 002C                   .dbline 134
 002C           ;   WDR();  
 002C           ; } 
 002C           ;  
 002C           ; void delay_nms(unsigned int n)//延时n毫秒
 002C           ; {
 002C                   .dbline 136
 002C           ;   unsigned int i;
 002C           ;   for (i=0;i<n;i++)//执行n次1毫秒延时
 002C 4427              clr R20
 002E 5527              clr R21
 0030 03C0              xjmp L11
 0032           L8:
 0032                   .dbline 137
 0032                   .dbline 138
 0032 EEDF              xcall _delay_1ms
 0034                   .dbline 139
 0034           L9:
 0034                   .dbline 136
 0034 4F5F              subi R20,255  ; offset = 1
 0036 5F4F              sbci R21,255
 0038           L11:
 0038                   .dbline 136
 0038 4617              cp R20,R22
 003A 5707              cpc R21,R23
 003C D0F3              brlo L8
 003E                   .dbline 140
 003E           ;       {
 003E           ;            delay_1ms(); 
 003E           ;       }
 003E           ;   WDR(); 
 003E A895              wdr
 0040                   .dbline -2
 0040           L7:
 0040 0E940000          xcall pop_gset2
 0044                   .dbline 0 ; func end
 0044 0895              ret
 0046                   .dbsym r i 20 i
 0046                   .dbsym r n 22 i
 0046                   .dbend
 0046                   .dbfunc e LED_Run _LED_Run fV
 0046           ;              i -> R20,R21
                        .even
 0046           _LED_Run::
 0046 0E940000          xcall push_gset1
 004A                   .dbline -1
 004A                   .dbline 144
 004A           ; }
 004A           ; 
 004A           ; void LED_Run(void)
 004A           ; {
 004A                   .dbline 146
 004A 45E0              ldi R20,5
 004C 50E0              ldi R21,0
 004E 25C0              xjmp L16
 0050           L13:
 0050                   .dbline 146
 0050                   .dbline 146
 0050 C398              cbi 0x18,3
 0052                   .dbline 146
 0052 C29A              sbi 0x18,2
 0054                   .dbline 146
 0054 C19A              sbi 0x18,1
 0056                   .dbline 146
 0056 C09A              sbi 0x18,0
 0058                   .dbline 146
 0058 04E6              ldi R16,100
 005A 10E0              ldi R17,0
 005C E4DF              xcall _delay_nms
 005E                   .dbline 146
 005E                   .dbline 146
 005E C398              cbi 0x18,3
 0060                   .dbline 146
 0060 C298              cbi 0x18,2
 0062                   .dbline 146
 0062 C19A              sbi 0x18,1
 0064                   .dbline 146
 0064 C09A              sbi 0x18,0
 0066                   .dbline 146
 0066 04E6              ldi R16,100
 0068 10E0              ldi R17,0
 006A DDDF              xcall _delay_nms
 006C                   .dbline 146
 006C                   .dbline 146
 006C C298              cbi 0x18,2
 006E                   .dbline 146
 006E C39A              sbi 0x18,3
 0070                   .dbline 146
 0070 C19A              sbi 0x18,1
 0072                   .dbline 146
 0072 C098              cbi 0x18,0
 0074                   .dbline 146
 0074 04E6              ldi R16,100
 0076 10E0              ldi R17,0
 0078 D6DF              xcall _delay_nms
 007A                   .dbline 146
 007A                   .dbline 146
 007A C098              cbi 0x18,0
 007C                   .dbline 146
 007C C29A              sbi 0x18,2
 007E                   .dbline 146
 007E C198              cbi 0x18,1
 0080                   .dbline 146
 0080 C39A              sbi 0x18,3
 0082                   .dbline 146
 0082 04E6              ldi R16,100
 0084 10E0              ldi R17,0
 0086 CFDF              xcall _delay_nms
 0088                   .dbline 146
 0088                   .dbline 146
 0088 C198              cbi 0x18,1
 008A                   .dbline 146
 008A C29A              sbi 0x18,2
 008C                   .dbline 146
 008C C398              cbi 0x18,3
 008E                   .dbline 146
 008E C09A              sbi 0x18,0
 0090                   .dbline 146
 0090 04E6              ldi R16,100
 0092 10E0              ldi R17,0
 0094 C8DF              xcall _delay_nms
 0096                   .dbline 146
 0096                   .dbline 146
 0096           L14:
 0096                   .dbline 146
 0096 4150              subi R20,1
 0098 5040              sbci R21,0
 009A           L16:
 009A                   .dbline 146
 009A           ;   uint i;
 009A           ;    for (i=5;i>0;i--){LED1;LED12;LED23;LED34;LED41;}
 009A 4030              cpi R20,0
 009C 4507              cpc R20,R21
 009E C1F6              brne L13
 00A0           X0:
 00A0                   .dbline 147
 00A0 45E0              ldi R20,5
 00A2 50E0              ldi R21,0
 00A4 25C0              xjmp L20
 00A6           L17:
 00A6                   .dbline 147
 00A6                   .dbline 147
 00A6 C398              cbi 0x18,3
 00A8                   .dbline 147
 00A8 C29A              sbi 0x18,2
 00AA                   .dbline 147
 00AA C19A              sbi 0x18,1
 00AC                   .dbline 147
 00AC C09A              sbi 0x18,0
 00AE                   .dbline 147
 00AE 04E6              ldi R16,100
 00B0 10E0              ldi R17,0
 00B2 B9DF              xcall _delay_nms
 00B4                   .dbline 147
 00B4                   .dbline 147
 00B4 C398              cbi 0x18,3
 00B6                   .dbline 147
 00B6 C29A              sbi 0x18,2
 00B8                   .dbline 147
 00B8 C198              cbi 0x18,1
 00BA                   .dbline 147
 00BA C09A              sbi 0x18,0
 00BC                   .dbline 147
 00BC 04E6              ldi R16,100
 00BE 10E0              ldi R17,0
 00C0 B2DF              xcall _delay_nms
 00C2                   .dbline 147
 00C2                   .dbline 147
 00C2 C198              cbi 0x18,1
 00C4                   .dbline 147
 00C4 C29A              sbi 0x18,2
 00C6                   .dbline 147
 00C6 C39A              sbi 0x18,3
 00C8                   .dbline 147
 00C8 C098              cbi 0x18,0
 00CA                   .dbline 147
 00CA 04E6              ldi R16,100
 00CC 10E0              ldi R17,0
 00CE ABDF              xcall _delay_nms
 00D0                   .dbline 147
 00D0                   .dbline 147
 00D0 C098              cbi 0x18,0
 00D2                   .dbline 147
 00D2 C298              cbi 0x18,2
 00D4                   .dbline 147
 00D4 C19A              sbi 0x18,1
 00D6                   .dbline 147
 00D6 C39A              sbi 0x18,3
 00D8                   .dbline 147
 00D8 04E6              ldi R16,100
 00DA 10E0              ldi R17,0
 00DC A4DF              xcall _delay_nms
 00DE                   .dbline 147
 00DE                   .dbline 147
 00DE C298              cbi 0x18,2
 00E0                   .dbline 147
 00E0 C398              cbi 0x18,3
 00E2                   .dbline 147
 00E2 C19A              sbi 0x18,1
 00E4                   .dbline 147
 00E4 C09A              sbi 0x18,0
 00E6                   .dbline 147
 00E6 04E6              ldi R16,100
 00E8 10E0              ldi R17,0
 00EA 9DDF              xcall _delay_nms
 00EC                   .dbline 147
 00EC                   .dbline 147
 00EC           L18:
 00EC                   .dbline 147
 00EC 4150              subi R20,1
 00EE 5040              sbci R21,0
 00F0           L20:
 00F0                   .dbline 147
 00F0           ;    for (i=5;i>0;i--){LED1;LED14;LED43;LED32;LED21;}
 00F0 4030              cpi R20,0

⌨️ 快捷键说明

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