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

📄 main.lis

📁 用AVR atmega16做的一个完整彩色LED控制程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0004           ; {RBASE,KIND2|DIR0|SPEED0},{RBASE,KIND2|DIR0|SPEED1},{RBASE,KIND2|DIR0|SPEED2},{RBASE,KIND2|DIR1|SPEED0},
 0004           ; //56
 0004           ; {RBASE,KIND2|DIR1|SPEED1},{GBASE,KIND2|DIR0|SPEED0},{GBASE,KIND2|DIR0|SPEED1},{GBASE,KIND2|DIR0|SPEED2},
 0004           ; //60
 0004           ; {GBASE,KIND2|DIR1|SPEED0},{GBASE,KIND2|DIR1|SPEED1},{YBASE,KIND2|DIR0|SPEED0},{YBASE,KIND2|DIR0|SPEED1},
 0004           ; //64
 0004           ; {YBASE,KIND2|DIR0|SPEED2},{YBASE,KIND2|DIR1|SPEED0},{YBASE,KIND2|DIR1|SPEED1},{BBASE,KIND2|DIR0|SPEED0},
 0004           ; //68
 0004           ; {BBASE,KIND2|DIR0|SPEED1},{BBASE,KIND2|DIR0|SPEED2},{BBASE,KIND2|DIR1|SPEED0},{BBASE,KIND2|DIR1|SPEED1},
 0004           ; //72
 0004           ; {GBASE,KIND2|DIR0|SPEED0},{GBASE,KIND2|DIR0|SPEED1},{GBASE,KIND2|DIR0|SPEED2},{GBASE,KIND2|DIR1|SPEED0},
 0004           ; //76
 0004           ; {GBASE,KIND2|DIR1|SPEED1},{GBBASE,KIND2|DIR0|SPEED0},{GBBASE,KIND2|DIR0|SPEED1},{GBBASE,KIND2|DIR0|SPEED2},
 0004           ; //80
 0004           ; {GBBASE,KIND2|DIR1|SPEED0},{GBBASE,KIND2|DIR1|SPEED1},{BBASE,KIND2|DIR0|SPEED0},{BBASE,KIND2|DIR0|SPEED1},
 0004           ; //84
 0004           ; {BBASE,KIND2|DIR0|SPEED2},{BBASE,KIND2|DIR1|SPEED0},{BBASE,KIND2|DIR1|SPEED1},{RBASE,KIND2|DIR0|SPEED0},
 0004           ; //88
 0004           ; {RBASE,KIND2|DIR0|SPEED1},{RBASE,KIND2|DIR0|SPEED2},{RBASE,KIND2|DIR1|SPEED0},{RBASE,KIND2|DIR1|SPEED1},
 0004           ; //92
 0004           ; {RBBASE,KIND2|DIR0|SPEED0},{RBBASE,KIND2|DIR0|SPEED1},{RBBASE,KIND2|DIR0|SPEED2},{RBBASE,KIND2|DIR1|SPEED0},
 0004           ; //96
 0004           ; {RBBASE,KIND2|DIR1|SPEED1},{GBASE,KIND2|DIR0|SPEED0},{GBASE,KIND2|DIR0|SPEED1},{GBASE,KIND2|DIR0|SPEED2},
 0004           ; //100
 0004           ; {GBASE,KIND2|DIR1|SPEED0},{GBASE,KIND2|DIR1|SPEED1},{RBASE,KIND2|DIR0|SPEED0},{RBASE,KIND2|DIR0|SPEED1},
 0004           ; //104
 0004           ; {RBASE,KIND2|DIR0|SPEED2},{RBASE,KIND2|DIR1|SPEED0},{RBASE,KIND2|DIR1|SPEED1},{BBASE,KIND2|DIR0|SPEED0},
 0004           ; //108
 0004           ; {BBASE,KIND2|DIR0|SPEED1},{BBASE,KIND2|DIR0|SPEED2},{BBASE,KIND2|DIR1|SPEED0},{BBASE,KIND2|DIR1|SPEED1}
 0004           ; };
 0004           ; 
 0004           ; 
 0004           ; #define               SIZE 20 
 0004           ; unsigned char SPI_rx_buff[SIZE]; 
 0004           ; unsigned char SPI_tx_buff[SIZE]; 
 0004           ; unsigned char rx_wr_index,rx_rd_index,rx_counter,rx_buffer_overflow; 
 0004           ; unsigned char tx_wr_index,tx_rd_index,tx_counter; 
 0004           ; 
 0004           ; char   DispBuffer[6];
 0004           ; const char   CharFont[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0xc7,0x8c,0xa1};
 0004           ; //                      0    1   2    3    4    5    6    7    8    9    a    b     c    d    e   f                                                     -      L               P        d
 0004           ; long          val;
 0004           ; unsigned char          KeyCode;
 0004           ; void          Display(void);
 0004           ; void          Display_Fast(void);
 0004           ; char          PressKeyProcess(void);
 0004           ; void          spi_init(void);
 0004           ; void          putSPIchar(char c);
 0004           ; unsigned char getSPIchar(void);
 0004           ; void          spi_stc_isr(void);
 0004           ; void  WatchDog(char  tim);
 0004           ; unsigned char         SendKindData(char kind);
 0004           ; void  EepromICnumberWr(void);
 0004           ; void  EepromICnumberRd(void);
 0004           ; void          FactorySetup(void);
 0004           ; void  EepromViewModeWr(void);
 0004           ; void  EepromViewModeRd(void);
 0004           ; void          EepromPasswordRd(void);
 0004           ; void          EepromPasswordWr(void);
 0004           ; void          EepromDateValueRd(void);
 0004           ; void          EepromDateValueWr(void);
 0004           ; void          EepromDayDataRd(void);
 0004           ; void          EepromDayDataWr(void);
 0004           ; int           CompareDate(void);
 0004           ; int           CalMonthDay(uchar month,uchar day);
 0004           ; uchar         ProcessEdgeToMiddle(char data,uchar mode,uchar BC,uchar class);
 0004           ; uchar         ProcessMiddleToEdge(char data,uchar mode,uchar BC,uchar class );
 0004           ; void          AllClearICBuffer(void);
 0004           ; void          DelayNs(char tim);
 0004           ; uchar SendFirstToEnd(uchar kind,uchar mode,uchar si_flag,uchar ss_flag);
 0004           ; char          SpeedDelay(uchar  speed);
 0004           ; void          AllStarRight(uchar da1,uchar da2,uchar da3,uchar da4,uint init);
 0004           ; uchar AllStarMiddleToEdge(uchar da1,uchar da2,uchar da3,uchar da4,uchar mode);
 0004           ; void  timer0_init(void) ;
 0004           ; void          Enable_Time0_Interrupt(void);
 0004           ; void          Disable_Time0_Interrupt(void);
 0004           ; void          FullProcess(uchar fullflag,uchar looplenght,uchar *data);
 0004           ; 
 0004           ; 
 0004           ; 
 0004           ; void   Delay(char tim)
 0004           ; {
 0004                   .dbline 420
 0004           ;          unsigned char i,j;
 0004           ;          for(j=0;j<tim;j++)
 0004 4427              clr R20
 0006 0BC0              xjmp L5
 0008           L2:
 0008                   .dbline 421
 0008           ;          {
 0008                   .dbline 422
 0008           ;                  for(i=200;i>0;i--)
 0008 68EC              ldi R22,200
 000A 04C0              xjmp L9
 000C           L6:
 000C                   .dbline 423
 000C                   .dbline 424
 000C 0000              nop
 000E                   .dbline 425
 000E 0000              nop
 0010                   .dbline 426
 0010 0000              nop
 0012                   .dbline 427
 0012           L7:
 0012                   .dbline 422
 0012 6A95              dec R22
 0014           L9:
 0014                   .dbline 422
 0014 2224              clr R2
 0016 2616              cp R2,R22
 0018 C8F3              brlo L6
 001A                   .dbline 430
 001A A895              wdr
 001C                   .dbline 432
 001C           L3:
 001C                   .dbline 420
 001C 4395              inc R20
 001E           L5:
 001E                   .dbline 420
 001E 4017              cp R20,R16
 0020 98F3              brlo L2
 0022                   .dbline -2
 0022           L1:
 0022 0E940000          xcall pop_gset2
 0026                   .dbline 0 ; func end
 0026 0895              ret
 0028                   .dbsym r j 20 c
 0028                   .dbsym r i 22 c
 0028                   .dbsym r tim 16 c
 0028                   .dbend
 0028                   .dbfunc e DelayNs _DelayNs fV
 0028           ;              j -> R20
 0028           ;            tim -> R16
                        .even
 0028           _DelayNs::
 0028 0E940000          xcall push_gset1
 002C                   .dbline -1
 002C                   .dbline 435
 002C           ;                  {
 002C           ;                          asm("nop");
 002C           ;                          asm("nop");
 002C           ;                          asm("nop");
 002C           ;                  }
 002C           ; #ifdef VERSION_CONTROL
 002C           ;       /* WDT 复位*/
 002C           ;       _WDR();
 002C           ; #endif
 002C           ;          }
 002C           ; }
 002C           ; void   DelayNs(char tim)
 002C           ; {
 002C                   .dbline 437
 002C           ;          unsigned char j;
 002C           ;          for(j=0;j<tim;j++)
 002C 4427              clr R20
 002E 04C0              xjmp L14
 0030           L11:
 0030                   .dbline 438
 0030                   .dbline 439
 0030 0000              nop
 0032                   .dbline 440
 0032 0000              nop
 0034                   .dbline 441
 0034 0000              nop
 0036                   .dbline 442
 0036           L12:
 0036                   .dbline 437
 0036 4395              inc R20
 0038           L14:
 0038                   .dbline 437
 0038 4017              cp R20,R16
 003A D0F3              brlo L11
 003C                   .dbline 445
 003C           ;          {
 003C           ;                  asm("nop");
 003C           ;                  asm("nop");
 003C           ;                  asm("nop");
 003C           ;          }
 003C           ; #ifdef VERSION_CONTROL
 003C           ;       /* WDT 复位*/
 003C           ;       _WDR();
 003C A895              wdr
 003E                   .dbline -2
 003E           L10:
 003E 0E940000          xcall pop_gset1
 0042                   .dbline 0 ; func end
 0042 0895              ret
 0044                   .dbsym r j 20 c
 0044                   .dbsym r tim 16 c
 0044                   .dbend
 0044                   .dbfunc e SendSS _SendSS fV
 0044           ;           loop -> R20
                        .even
 0044           _SendSS::
 0044 0E940000          xcall push_gset1
 0048 402F              mov R20,R16
 004A                   .dbline -1
 004A                   .dbline 450
 004A           ; #endif
 004A           ; }
 004A           ; 
 004A           ; void          SendSS(uchar loop )
 004A           ; {
 004A                   .dbline 451
 004A           ;       if(loop==0) return;
 004A 4423              tst R20
 004C 09F4              brne L16
 004E                   .dbline 451
 004E 04C0              xjmp L15
 0050           L16:
 0050                   .dbline 452
 0050           ;       PORTB |= 0x10; //SS output  high 电平 
 0050 C49A              sbi 0x18,4
 0052                   .dbline 453
 0052           ;       DelayNs(20);
 0052 04E1              ldi R16,20
 0054 E9DF              xcall _DelayNs
 0056                   .dbline 454
 0056           ;       PORTB &=(~0x10); //SS  output  low 电平 
 0056 C498              cbi 0x18,4
 0058                   .dbline -2
 0058           L15:
 0058 0E940000          xcall pop_gset1
 005C                   .dbline 0 ; func end
 005C 0895              ret
 005E                   .dbsym r loop 20 c
 005E                   .dbend
 005E                   .dbfunc e SendSI _SendSI fV
 005E           ;              i -> R20
 005E           ;           loop -> R22
                        .even
 005E           _SendSI::
 005E 0E940000          xcall push_gset2
 0062 602F              mov R22,R16
 0064                   .dbline -1
 0064                   .dbline 458
 0064           ; }
 0064           ; 
 0064           ; void          SendSI(uchar loop)
 0064           ; {
 0064                   .dbline 460
 0064           ;       uchar   i;
 0064           ;       if(loop==0) return;
 0064 6623              tst R22
 0066 09F4              brne L19
 0068                   .dbline 460
 0068 09C0              xjmp L18
 006A           L19:
 006A                   .dbline 461
 006A           ;       for(i=0;i<loop;i++)
 006A 4427              clr R20
 006C 05C0              xjmp L24
 006E           L21:
 006E                   .dbline 462
 006E                   .dbline 463
 006E C39A              sbi 0x18,3
 0070                   .dbline 464
 0070 B4D6              xcall _Display_Fast
 0072                   .dbline 465
 0072 C398              cbi 0x18,3
 0074                   .dbline 466
 0074 B2D6              xcall _Display_Fast
 0076                   .dbline 467
 0076           L22:
 0076                   .dbline 461
 0076 4395              inc R20
 0078           L24:
 0078                   .dbline 461
 0078 4617              cp R20,R22
 007A C8F3              brlo L21
 007C                   .dbline -2
 007C           L18:
 007C 0E940000          xcall pop_gset2
 0080                   .dbline 0 ; func end
 0080 0895              ret
 0082                   .dbsym r i 20 c
 0082                   .dbsym r loop 22 c
 0082                   .dbend
 0082                   .dbfunc e hmod _hmod fi
 0082           ;              i -> R20
 0082           ;            src -> R22
 0082           ;           dest -> R18,R19
 0082           ;         source -> R16,R17
                        .even
 0082           _hmod::
 0082 0E940000          xcall push_gset2

⌨️ 快捷键说明

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