📄 main.lis
字号:
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 + -