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

📄 mian.lis

📁 手操器
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00EE 0895              ret
 00F0                   .dbend
 00F0                   .dbfunc e spi_init _spi_init fV
                        .even
 00F0           _spi_init::
 00F0                   .dbline -1
 00F0                   .dbline 83
 00F0           ; }
 00F0           ; 
 00F0           ; //-------------------------------------------------------------
 00F0           ; //SPI initialize
 00F0           ; // clock rate: 2000000hz
 00F0           ; void spi_init(void)
 00F0           ; {
 00F0                   .dbline 84
 00F0           ;  SPCR = 0x50; //setup SPI
 00F0 80E5              ldi R24,80
 00F2 8DB9              out 0xd,R24
 00F4                   .dbline 85
 00F4           ;  SPSR = 0x00; //setup SPI
 00F4 2224              clr R2
 00F6 2EB8              out 0xe,R2
 00F8                   .dbline -2
 00F8           L15:
 00F8                   .dbline 0 ; func end
 00F8 0895              ret
 00FA                   .dbend
 00FA                   .dbfunc e init_devices _init_devices fV
                        .even
 00FA           _init_devices::
 00FA                   .dbline -1
 00FA                   .dbline 90
 00FA           ; }
 00FA           ; //call this routine to initialize all peripherals
 00FA           ; //-------------------------------------------------------------
 00FA           ; void init_devices(void)
 00FA           ; {
 00FA                   .dbline 92
 00FA           ;  //stop errant interrupts until set up
 00FA           ;  CLI(); //disable all interrupts
 00FA F894              cli
 00FC                   .dbline 93
 00FC           ;  port_init();
 00FC 81DF              rcall _port_init
 00FE                   .dbline 94
 00FE           ;  timer0_init();
 00FE 8CDF              rcall _timer0_init
 0100                   .dbline 95
 0100           ;  timer1_init();
 0100 E0DF              rcall _timer1_init
 0102                   .dbline 96
 0102           ;  spi_init();
 0102 F6DF              rcall _spi_init
 0104                   .dbline 98
 0104           ;  
 0104           ;  MCUCR = 0x00;
 0104 2224              clr R2
 0106 25BE              out 0x35,R2
 0108                   .dbline 99
 0108           ;  GICR  = 0x00;
 0108 2BBE              out 0x3b,R2
 010A                   .dbline 100
 010A           ;  TIMSK = 0x01; //timer interrupt sources
 010A 81E0              ldi R24,1
 010C 89BF              out 0x39,R24
 010E                   .dbline 101
 010E           ;  SEI(); //re-enable interrupts
 010E 7894              sei
 0110                   .dbline -2
 0110           L16:
 0110                   .dbline 0 ; func end
 0110 0895              ret
 0112                   .dbend
 0112                   .dbfunc e Reset_Meter _Reset_Meter fc
                        .even
 0112           _Reset_Meter::
 0112 2397              sbiw R28,3
 0114                   .dbline -1
 0114                   .dbline 107
 0114           ;  //all peripherals are now initialized
 0114           ; }
 0114           ; 
 0114           ; //-------------------------------------------------------------
 0114           ; u8 Reset_Meter(void)
 0114           ; {
 0114                   .dbline 109
 0114           ;        
 0114           ;       init_devices();
 0114 F2DF              rcall _init_devices
 0116                   .dbline 110
 0116           ;       EEPROMReadBytes(0,(u8 *)(& Cal),12); 
 0116 8CE0              ldi R24,12
 0118 90E0              ldi R25,0
 011A 9983              std y+1,R25
 011C 8883              std y+0,R24
 011E 20E0              ldi R18,<_Cal
 0120 30E0              ldi R19,>_Cal
 0122 0027              clr R16
 0124 1127              clr R17
 0126 00D0              rcall _EEPROMReadBytes
 0128                   .dbline 111
 0128           ;       if(Cal.OutH==0xffff)
 0128 80910900          lds R24,_Cal+4
 012C 90910A00          lds R25,_Cal+4+1
 0130 8F3F              cpi R24,255
 0132 EFEF              ldi R30,255
 0134 9E07              cpc R25,R30
 0136 21F5              brne L18
 0138           X3:
 0138                   .dbline 112
 0138           ;       {               
 0138                   .dbline 113
 0138           ;               Cal.OutH=0x33C3;
 0138 83EC              ldi R24,13251
 013A 93E3              ldi R25,51
 013C 90930A00          sts _Cal+4+1,R25
 0140 80930900          sts _Cal+4,R24
 0144                   .dbline 114
 0144           ;               Cal.OutM=0x2062;
 0144 82E6              ldi R24,8290
 0146 90E2              ldi R25,32
 0148 90930800          sts _Cal+2+1,R25
 014C 80930700          sts _Cal+2,R24
 0150                   .dbline 115
 0150           ;               Cal.OutL=0xA4C;
 0150 8CE4              ldi R24,2636
 0152 9AE0              ldi R25,10
 0154 90930600          sts _Cal+1,R25
 0158 80930500          sts _Cal,R24
 015C                   .dbline 116
 015C           ;               Cal.IB_H=0xfe;
 015C 8EEF              ldi R24,254
 015E 80930B00          sts _Cal+6,R24
 0162                   .dbline 117
 0162           ;               Cal.IB_M=0x80;
 0162 80E8              ldi R24,128
 0164 80930C00          sts _Cal+7,R24
 0168                   .dbline 118
 0168           ;               Cal.IB_L=0X38;
 0168 88E3              ldi R24,56
 016A 80930D00          sts _Cal+8,R24
 016E                   .dbline 119
 016E           ;               Cal.IK_H=0x2B;
 016E 8BE2              ldi R24,43
 0170 80930E00          sts _Cal+9,R24
 0174                   .dbline 120
 0174           ;               Cal.IK_M=0xB5;
 0174 85EB              ldi R24,181
 0176 80930F00          sts _Cal+10,R24
 017A                   .dbline 121
 017A           ;               Cal.IK_L=0X2A;
 017A 8AE2              ldi R24,42
 017C 80931000          sts _Cal+11,R24
 0180                   .dbline 122
 0180           ;       }
 0180           L18:
 0180                   .dbline 123
 0180           ;       disbuff0=Table[1];
 0180 20900100          lds R2,_Table+1
 0184 20921900          sts _disbuff+7,R2
 0188                   .dbline 124
 0188           ;       disbuff1=Table[2];
 0188 20900200          lds R2,_Table+2
 018C 20921800          sts _disbuff+6,R2
 0190                   .dbline 125
 0190           ;       disbuff2=Table[3];
 0190 20900300          lds R2,_Table+3
 0194 20921700          sts _disbuff+5,R2
 0198                   .dbline 126
 0198           ;       disbuff3=Table[4];
 0198 20900400          lds R2,_Table+4
 019C 20921600          sts _disbuff+4,R2
 01A0                   .dbline 127
 01A0           ;       disbuff4=Table[5];
 01A0 20900500          lds R2,_Table+5
 01A4 20921500          sts _disbuff+3,R2
 01A8                   .dbline 128
 01A8           ;       disbuff5=Table[6];
 01A8 20900600          lds R2,_Table+6
 01AC 20921400          sts _disbuff+2,R2
 01B0                   .dbline 129
 01B0           ;       disbuff6=Table[7];
 01B0 20900700          lds R2,_Table+7
 01B4 20921300          sts _disbuff+1,R2
 01B8                   .dbline 130
 01B8           ;       disbuff7=Table[8];
 01B8 20900800          lds R2,_Table+8
 01BC 20921200          sts _disbuff,R2
 01C0                   .dbline 132
 01C0           ;       
 01C0           ;       Clr_RST();
 01C0 82B3              in R24,0x12
 01C2 877F              andi R24,247
 01C4 82BB              out 0x12,R24
 01C6                   .dbline 133
 01C6           ;       Delay(4000);
 01C6 00EA              ldi R16,160
 01C8 1FE0              ldi R17,15
 01CA 20E0              ldi R18,0
 01CC 30E0              ldi R19,0
 01CE 7DD7              rcall _Delay
 01D0                   .dbline 134
 01D0           ;       Set_RST();
 01D0 939A              sbi 0x12,3
 01D2                   .dbline 135
 01D2           ;       CS5460a_Write(SYNC1,SYNC1,SYNC1,SYNC0); 
 01D2 8EEF              ldi R24,254
 01D4 8A83              std y+2,R24
 01D6 8FEF              ldi R24,255
 01D8 8883              std y+0,R24
 01DA 2FEF              ldi R18,255
 01DC 0FEF              ldi R16,255
 01DE 00D0              rcall _CS5460a_Write
 01E0                   .dbline 136
 01E0           ;       CS5460A_REG_WR(0,0x00,0x00,0x11);
 01E0 81E1              ldi R24,17
 01E2 8A83              std y+2,R24
 01E4 2224              clr R2
 01E6 2882              std y+0,R2
 01E8 2227              clr R18
 01EA 0027              clr R16
 01EC 00D0              rcall _CS5460A_REG_WR
 01EE                   .dbline 137
 01EE           ;       CS5460A_REG_WR(28,0,0x00,0x04);//控制寄存器     
 01EE 84E0              ldi R24,4
 01F0 8A83              std y+2,R24
 01F2 2224              clr R2
 01F4 2882              std y+0,R2
 01F6 2227              clr R18
 01F8 0CE1              ldi R16,28
 01FA 00D0              rcall _CS5460A_REG_WR
 01FC                   .dbline 138
 01FC           ;       CS5460A_REG_WR(15,0xff,0xff,0xff);
 01FC 8FEF              ldi R24,255
 01FE 8A83              std y+2,R24
 0200 8883              std y+0,R24
 0202 2FEF              ldi R18,255
 0204 0FE0              ldi R16,15
 0206 00D0              rcall _CS5460A_REG_WR
 0208                   .dbline 139
 0208           ;       CS5460A_REG_WR(26,0x80,0x00,0x00);      
 0208 2224              clr R2
 020A 2A82              std y+2,R2
 020C 2882              std y+0,R2
 020E 20E8              ldi R18,128
 0210 0AE1              ldi R16,26
 0212 00D0              rcall _CS5460A_REG_WR
 0214                   .dbline 140
 0214           ;       CS5460A_REG_WR(5,0x00,0x03,0x20);       
 0214 80E2              ldi R24,32
 0216 8A83              std y+2,R24
 0218 83E0              ldi R24,3
 021A 8883              std y+0,R24
 021C 2227              clr R18
 021E 05E0              ldi R16,5
 0220 00D0              rcall _CS5460A_REG_WR
 0222                   .dbline 141
 0222           ;       CS5460A_REG_WR(1,Cal.IB_H,Cal.IB_M,Cal.IB_L);
 0222 20900D00          lds R2,_Cal+8
 0226 2A82              std y+2,R2
 0228 20900C00          lds R2,_Cal+7
 022C 2882              std y+0,R2
 022E 20910B00          lds R18,_Cal+6
 0232 01E0              ldi R16,1
 0234 00D0              rcall _CS5460A_REG_WR
 0236                   .dbline 142
 0236           ;       Delay(1000);
 0236 08EE              ldi R16,232
 0238 13E0              ldi R17,3
 023A 20E0              ldi R18,0
 023C 30E0              ldi R19,0
 023E 45D7              rcall _Delay
 0240                   .dbline 143
 0240           ;       CS5460A_REG_WR(2,Cal.IK_H,Cal.IK_M,Cal.IK_L);
 0240 20901000          lds R2,_Cal+11
 0244 2A82              std y+2,R2
 0246 20900F00          lds R2,_Cal+10
 024A 2882              std y+0,R2
 024C 20910E00          lds R18,_Cal+9
 0250 02E0              ldi R16,2
 0252 00D0              rcall _CS5460A_REG_WR
 0254                   .dbline 144
 0254           ;       Delay(1000);
 0254 08EE              ldi R16,232
 0256 13E0              ldi R17,3
 0258 20E0              ldi R18,0
 025A 30E0              ldi R19,0
 025C 36D7              rcall _Delay
 025E                   .dbline 145
 025E           ;       CS5460a_Write_Byte(0xe8);
 025E 08EE              ldi R16,232
 0260 00D0              rcall _CS5460a_Write_Byte
 0262                   .dbline 146
 0262           ;       CalTemp=0;
 0262 2224              clr R2
 0264 3324              clr R3
 0266 30920400          sts _CalTemp+1,R3
 026A 20920300          sts _CalTemp,R2
 026E                   .dbline 147
 026E           ;       Per=400;
 026E 80E9              ldi R24,400
 0270 91E0              ldi R25,1
 0272 90930200          sts _Per+1,R25
 0276 80930100          sts _Per,R24
 027A                   .dbline 148
 027A           ;       return(GOTO_WAIT);       
 027A 01E0              ldi R16,1
 027C                   .dbline -2
 027C           L17:
 027C                   .dbline 0 ; func end
 027C 2396              adiw R28,3
 027E 0895              ret
 0280                   .dbend
 0280                   .dbfunc e Wait _Wait fc
 0280           ;           temp -> y+0
                        .even
 0280           _Wait::
 0280 00D0              rcall push_xgsetF000
 0282 2497              sbiw R28,4
 0284                   .dbline -1
 0284                   .dbline 152
 0284           ; }
 0284           ; //-------------------------------------------------------------
 0284           ; u8 Wait(void)
 0284           ; {     
 0284                   .dbline 154
 0284           ;       unsigned long temp;
 0284           ;       temp= CS5460a_Read(11)>>9;
 0284 0BE0              ldi R16,11
 0286 00D0              rcall _CS5460a_Read
 0288 89E0              ldi R24,9
 028A 90E0              ldi R25,0
 028C 8A93              st -y,R24
 028E 00D0              rcall asr32
 0290 0883              std y+0,R16
 0292 1983              std y+1,R17
 0294 2A83              std y+2,R18
 0296 3B83              std y+3,R19
 0298                   .dbline 155
 0298           ;       if(temp>9999)
 0298 4FE0              ldi R20,15
 029A 57E2              ldi R21,39
 029C 60E0              ldi R22,0
 029E 70E0              ldi R23,0
 02A0 2880              ldd R2,y+0
 02A2 3980              ldd R3,y+1

⌨️ 快捷键说明

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