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

📄 handle.lst

📁 手操器
💻 LST
📖 第 1 页 / 共 5 页
字号:
_spi_init:
    0010E E580      LDI	R24,0x50
    0010F B98D      OUT	0x0D,R24
(0085)  SPSR = 0x00; //setup SPI
    00110 2422      CLR	R2
    00111 B82E      OUT	0x0E,R2
    00112 9508      RET
(0086) }
(0087) //call this routine to initialize all peripherals
(0088) //-------------------------------------------------------------
(0089) void init_devices(void)
(0090) {
(0091)  //stop errant interrupts until set up
(0092)  CLI(); //disable all interrupts
_init_devices:
    00113 94F8      BCLR	7
(0093)  port_init();
    00114 DF81      RCALL	_port_init
(0094)  timer0_init();
    00115 DF8C      RCALL	_timer0_init
(0095)  timer1_init();
    00116 DFE0      RCALL	_timer1_init
(0096)  spi_init();
    00117 DFF6      RCALL	_spi_init
(0097)  
(0098)  MCUCR = 0x00;
    00118 2422      CLR	R2
    00119 BE25      OUT	0x35,R2
(0099)  GICR  = 0x00;
    0011A BE2B      OUT	0x3B,R2
(0100)  TIMSK = 0x01; //timer interrupt sources
    0011B E081      LDI	R24,1
    0011C BF89      OUT	0x39,R24
(0101)  SEI(); //re-enable interrupts
    0011D 9478      BSET	7
    0011E 9508      RET
_Reset_Meter:
    0011F 9723      SBIW	R28,3
(0102)  //all peripherals are now initialized
(0103) }
(0104) 
(0105) //-------------------------------------------------------------
(0106) u8 Reset_Meter(void)
(0107) {
(0108) 	 
(0109)  	init_devices();
    00120 DFF2      RCALL	_init_devices
(0110)  	EEPROMReadBytes(0,(u8 *)(& Cal),12); 
    00121 E08C      LDI	R24,0xC
    00122 E090      LDI	R25,0
    00123 8399      STD	Y+1,R25
    00124 8388      ST	Y,R24
    00125 E72D      LDI	R18,0x7D
    00126 E030      LDI	R19,0
    00127 2700      CLR	R16
    00128 2711      CLR	R17
    00129 D957      RCALL	_EEPROMReadBytes
(0111) 	if(Cal.OutH==0xffff)
    0012A 9180 0081 LDS	R24,Cal+4
    0012C 9190 0082 LDS	R25,Cal+5
    0012E 3F8F      CPI	R24,0xFF
    0012F EFEF      LDI	R30,0xFF
    00130 079E      CPC	R25,R30
    00131 F521      BNE	0x0156
(0112) 	{		
(0113) 		Cal.OutH=0x33C3;
    00132 EC83      LDI	R24,0xC3
    00133 E393      LDI	R25,0x33
    00134 9390 0082 STS	Cal+5,R25
    00136 9380 0081 STS	Cal+4,R24
(0114) 		Cal.OutM=0x2062;
    00138 E682      LDI	R24,0x62
    00139 E290      LDI	R25,0x20
    0013A 9390 0080 STS	Cal+3,R25
    0013C 9380 007F STS	Cal+2,R24
(0115) 		Cal.OutL=0xA4C;
    0013E E48C      LDI	R24,0x4C
    0013F E09A      LDI	R25,0xA
    00140 9390 007E STS	Cal+1,R25
    00142 9380 007D STS	Cal,R24
(0116) 		Cal.IB_H=0xfe;
    00144 EF8E      LDI	R24,0xFE
    00145 9380 0083 STS	Cal+6,R24
(0117) 		Cal.IB_M=0x80;
    00147 E880      LDI	R24,0x80
    00148 9380 0084 STS	Cal+7,R24
(0118) 		Cal.IB_L=0X38;
    0014A E388      LDI	R24,0x38
    0014B 9380 0085 STS	Cal+8,R24
(0119) 		Cal.IK_H=0x2B;
    0014D E28B      LDI	R24,0x2B
    0014E 9380 0086 STS	Cal+9,R24
(0120) 		Cal.IK_M=0xB5;
    00150 EB85      LDI	R24,0xB5
    00151 9380 0087 STS	Cal+10,R24
(0121) 		Cal.IK_L=0X2A;
    00153 E28A      LDI	R24,0x2A
    00154 9380 0088 STS	Cal+11,R24
(0122) 	}
(0123)  	disbuff0=Table[1];
    00156 9020 0061 LDS	R2,Table+1
    00158 9220 0091 STS	disbuff+7,R2
(0124)  	disbuff1=Table[2];
    0015A 9020 0062 LDS	R2,Table+2
    0015C 9220 0090 STS	disbuff+6,R2
(0125) 	disbuff2=Table[3];
    0015E 9020 0063 LDS	R2,Table+3
    00160 9220 008F STS	disbuff+5,R2
(0126) 	disbuff3=Table[4];
    00162 9020 0064 LDS	R2,Table+4
    00164 9220 008E STS	disbuff+4,R2
(0127) 	disbuff4=Table[5];
    00166 9020 0065 LDS	R2,Table+5
    00168 9220 008D STS	disbuff+3,R2
(0128)  	disbuff5=Table[6];
    0016A 9020 0066 LDS	R2,Table+6
    0016C 9220 008C STS	disbuff+2,R2
(0129)  	disbuff6=Table[7];
    0016E 9020 0067 LDS	R2,Table+7
    00170 9220 008B STS	disbuff+1,R2
(0130)  	disbuff7=Table[8];
    00172 9020 0068 LDS	R2,Table+8
    00174 9220 008A STS	disbuff,R2
(0131) 	
(0132) 	Clr_RST();
    00176 B382      IN	R24,0x12
    00177 7F87      ANDI	R24,0xF7
    00178 BB82      OUT	0x12,R24
(0133) 	Delay(4000);
    00179 EA00      LDI	R16,0xA0
    0017A E01F      LDI	R17,0xF
    0017B E020      LDI	R18,0
    0017C E030      LDI	R19,0
    0017D D77D      RCALL	_Delay
(0134) 	Set_RST();
    0017E 9A93      SBI	0x12,3
(0135) 	CS5460a_Write(SYNC1,SYNC1,SYNC1,SYNC0);	
    0017F EF8E      LDI	R24,0xFE
    00180 838A      STD	Y+2,R24
    00181 EF8F      LDI	R24,0xFF
    00182 8388      ST	Y,R24
    00183 EF2F      LDI	R18,0xFF
    00184 EF0F      LDI	R16,0xFF
    00185 DED2      RCALL	_CS5460a_Write
(0136) 	CS5460A_REG_WR(0,0x00,0x00,0x11);
    00186 E181      LDI	R24,0x11
    00187 838A      STD	Y+2,R24
    00188 2422      CLR	R2
    00189 8228      ST	Y,R2
    0018A 2722      CLR	R18
    0018B 2700      CLR	R16
    0018C DED9      RCALL	_CS5460A_REG_WR
(0137) 	CS5460A_REG_WR(28,0,0x00,0x04);//控制寄存器	
    0018D E084      LDI	R24,4
    0018E 838A      STD	Y+2,R24
    0018F 2422      CLR	R2
    00190 8228      ST	Y,R2
    00191 2722      CLR	R18
    00192 E10C      LDI	R16,0x1C
    00193 DED2      RCALL	_CS5460A_REG_WR
(0138) 	CS5460A_REG_WR(15,0xff,0xff,0xff);
    00194 EF8F      LDI	R24,0xFF
    00195 838A      STD	Y+2,R24
    00196 8388      ST	Y,R24
    00197 EF2F      LDI	R18,0xFF
    00198 E00F      LDI	R16,0xF
    00199 DECC      RCALL	_CS5460A_REG_WR
(0139) 	CS5460A_REG_WR(26,0x80,0x00,0x00);	
    0019A 2422      CLR	R2
    0019B 822A      STD	Y+2,R2
    0019C 8228      ST	Y,R2
    0019D E820      LDI	R18,0x80
    0019E E10A      LDI	R16,0x1A
    0019F DEC6      RCALL	_CS5460A_REG_WR
(0140) 	CS5460A_REG_WR(5,0x00,0x03,0x20);	
    001A0 E280      LDI	R24,0x20
    001A1 838A      STD	Y+2,R24
    001A2 E083      LDI	R24,3
    001A3 8388      ST	Y,R24
    001A4 2722      CLR	R18
    001A5 E005      LDI	R16,5
    001A6 DEBF      RCALL	_CS5460A_REG_WR
(0141) 	CS5460A_REG_WR(1,Cal.IB_H,Cal.IB_M,Cal.IB_L);
    001A7 9020 0085 LDS	R2,Cal+8
    001A9 822A      STD	Y+2,R2
    001AA 9020 0084 LDS	R2,Cal+7
    001AC 8228      ST	Y,R2
    001AD 9120 0083 LDS	R18,Cal+6
    001AF E001      LDI	R16,1
    001B0 DEB5      RCALL	_CS5460A_REG_WR
(0142) 	Delay(1000);
    001B1 EE08      LDI	R16,0xE8
    001B2 E013      LDI	R17,3
    001B3 E020      LDI	R18,0
    001B4 E030      LDI	R19,0
    001B5 D745      RCALL	_Delay
(0143) 	CS5460A_REG_WR(2,Cal.IK_H,Cal.IK_M,Cal.IK_L);
    001B6 9020 0088 LDS	R2,Cal+11
    001B8 822A      STD	Y+2,R2
    001B9 9020 0087 LDS	R2,Cal+10
    001BB 8228      ST	Y,R2
    001BC 9120 0086 LDS	R18,Cal+9
    001BE E002      LDI	R16,2
    001BF DEA6      RCALL	_CS5460A_REG_WR
(0144) 	Delay(1000);
    001C0 EE08      LDI	R16,0xE8
    001C1 E013      LDI	R17,3
    001C2 E020      LDI	R18,0
    001C3 E030      LDI	R19,0
    001C4 D736      RCALL	_Delay
(0145) 	CS5460a_Write_Byte(0xe8);
    001C5 EE08      LDI	R16,0xE8
    001C6 DE87      RCALL	_CS5460a_Write_Byte
(0146) 	CalTemp=0;
    001C7 2422      CLR	R2
    001C8 2433      CLR	R3
    001C9 9230 007C STS	CalTemp+1,R3
    001CB 9220 007B STS	CalTemp,R2
(0147) 	Per=400;
    001CD E980      LDI	R24,0x90
    001CE E091      LDI	R25,1
    001CF 9390 007A STS	Per+1,R25
    001D1 9380 0079 STS	Per,R24
(0148) 	return(GOTO_WAIT);	 
    001D3 E001      LDI	R16,1
    001D4 9623      ADIW	R28,3
    001D5 9508      RET
_Wait:
  temp                 --> Y,+0
    001D6 D823      RCALL	push_xgsetF000
    001D7 9724      SBIW	R28,4
(0149) }
(0150) //-------------------------------------------------------------
(0151) u8 Wait(void)
(0152) {	
(0153) 	unsigned long temp;
(0154) 	temp= CS5460a_Read(11)>>9;
    001D8 E00B      LDI	R16,0xB
    001D9 DE9F      RCALL	_CS5460a_Read
    001DA E089      LDI	R24,0x9
    001DB E090      LDI	R25,0
    001DC 938A      ST	-Y,R24
    001DD D748      RCALL	asr32
    001DE 8308      ST	Y,R16
    001DF 8319      STD	Y+1,R17
    001E0 832A      STD	Y+2,R18
    001E1 833B      STD	Y+3,R19
(0155) 	if(temp>9999)
    001E2 E04F      LDI	R20,0xF
    001E3 E257      LDI	R21,0x27
    001E4 E060      LDI	R22,0
    001E5 E070      LDI	R23,0
    001E6 8028      LD	R2,Y
    001E7 8039      LDD	R3,Y+1
    001E8 804A      LDD	R4,Y+2
    001E9 805B      LDD	R5,Y+3
    001EA 1542      CP	R20,R2
    001EB 0553      CPC	R21,R3
    001EC 0564      CPC	R22,R4
    001ED 0575      CPC	R23,R5
    001EE F008      BCS	0x01F0
    001EF C077      RJMP	0x0267
(0156) 	{
(0157) 		temp/=10;
    001F0 E04A      LDI	R20,0xA
    001F1 E050      LDI	R21,0
    001F2 E060      LDI	R22,0
    001F3 E070      LDI	R23,0
    001F4 0181      MOVW	R16,R2
    001F5 0192      MOVW	R18,R4
    001F6 937A      ST	-Y,R23
    001F7 936A      ST	-Y,R22
    001F8 935A      ST	-Y,R21
    001F9 934A      ST	-Y,R20
    001FA D753      RCALL	div32u
    001FB 8308      ST	Y,R16
    001FC 8319      STD	Y+1,R17
    001FD 832A      STD	Y+2,R18
    001FE 833B      STD	Y+3,R19
(0158) 		disbuff4=Table[temp/1000];
    001FF EE48      LDI	R20,0xE8
    00200 E053      LDI	R21,3
    00201 E060      LDI	R22,0
    00202 E070      LDI	R23,0
    00203 8108      LD	R16,Y
    00204 8119      LDD	R17,Y+1
    00205 812A      LDD	R18,Y+2
    00206 813B      LDD	R19,Y+3
    00207 937A      ST	-Y,R23
    00208 936A      ST	-Y,R22
    00209 935A      ST	-Y,R21
    0020A 934A      ST	-Y,R20
    0020B D742      RCALL	div32u
    0020C 01F8      MOVW	R30,R16
    0020D E680      LDI	R24,0x60
    0020E E090      LDI	R25,0
    0020F 0FE8      ADD	R30,R24
    00210 1FF9      ADC	R31,R25
    00211 8020      LD	R2,Z
    00212 9220 008D STS	disbuff+3,R2
(0159) 		disbuff5=Table[temp/100%10]&0x7f;
    00214 E644      LDI	R20,0x64
    00215 E050      LDI	R21,0
    00216 E060      LDI	R22,0
    00217 E070      LDI	R23,0
    00218 8108      LD	R16,Y
    00219 8119      LDD	R17,Y+1
    0021A 812A      LDD	R18,Y+2
    0021B 813B      LDD	R19,Y+3
    0021C 937A      ST	-Y,R23
    0021D 936A      ST	-Y,R22
    0021E 935A      ST	-Y,R21
    0021F 934A      ST	-Y,R20
    00220 D72D      RCALL	div32u
    00221 E04A      LDI	R20,0xA
    00222 E050      LDI	R21,0
    00223 E060      LDI	R22,0
    00224 E070      LDI	R23,0
    00225 937A      ST	-Y,R23
    00226 936A      ST	-Y,R22
    00227 935A      ST	-Y,R21
    00228 934A      ST	-Y,R20
    00229 D726      RCALL	mod32u
    0022A 01F8      MOVW	R30,R16
    0022B E680      LDI	R24,0x60
    0022C E090      LDI	R25,0
    0022D 0FE8      ADD	R30,R24
    0022E 1FF9      ADC	R31,R25
    0022F 8180      LD	R24,Z
    00230 778F      ANDI	R24,0x7F
    00231 9380 008C STS	disbuff+2,R24
(0160) 		disbuff6=Table[temp/10%10];
    00233 E04A      LDI	R20,0xA
    00234 E050      LDI	R21,0
    00235 E060      LDI	R22,0
    00236 E070      LDI	R23,0
    00237 8108      LD	R16,Y
    00238 8119      LDD	R17,Y+1
    00239 812A      LDD	R18,Y+2
    0023A 813B      LDD	R19,Y+3
    0023B 937A      ST	-Y,R23
    0023C 936A      ST	-Y,R22
    0023D 935A      ST	-Y,R21
    0023E 934A      ST	-Y,R20
    0023F D70E      RCALL	div32u
    00240 E04A      LDI	R20,0xA
    00241 E050      LDI	R21,0
    00242 E060      LDI	R22,0
    00243 E070      LDI	R23,0
    00244 937A      ST	-Y,R23
    00245 936A      ST	-Y,R22
    00246 935A      ST	-Y,R21
    00247 934A      ST	-Y,R20
    00248 D707      RCALL	mod32u
    00249 01F8      MOVW	R30,R16
    0024A E680      LDI	R24,0x60
    0024B E090      LDI	R25,0
    0024C 0FE8      ADD	R30,R24
    0024D 1FF9      ADC	R31,R25
    0024E 8020      LD	R2,Z
    0024F 9220 008B STS	disbuff+1,R2
(0161) 		disbuff7=Table[temp%10];
    00251 E04A      LDI	R20,0xA
    00252 E050      LDI	R21,0
    00253 E060      LDI	R22,0
    00254 E070      LDI	R23,0
    00255 8108      LD	R16,Y
    00256 8119      LDD	R17,Y+1
    00257 812A      LDD	R18,Y+2
    00258 813B      LDD	R19,Y+3
    00259 937A      ST	-Y,R23
    0025A 936A      ST	-Y,R22
    0025B 935A      ST	-Y,R21
    0025C 934A      ST	-Y,R20
    0025D D6F2      RCALL	mod32u
    0025E 01F8      MOVW	R30,R16
    0025F E680      LDI	R24,0x60
    00260 E090      LDI	R25,0
    00261 0FE8      ADD	R30,R24
    00262 1FF9      ADC	R31,R25
    00263 8020      LD	R2,Z
    00264 9220 008A STS	disbuff,R2
(0162) 	}
    00266 C067      RJMP	0x02CE
(0163) 	else
(0164) 	{
(0165) 		disbuff4=Table[temp/1000]&0x7f;
    00267 EE48      LDI	R20,0xE8
    00268 E053      LDI	R21,3
    00269 E060      LDI	R22,0
    0026A E070      LDI	R23,0
    0026B 8108      LD	R16,Y
    0026C 8119      LDD	R17,Y+1
    0026D 812A      LDD	R18,Y+2
    0026E 813B      LDD	R19,Y+3
    0026F 937A      ST	-Y,R23
    00270 936A      ST	-Y,R22
    00271 935A      ST	-Y,R21
    00272 934A      ST	-Y,R20
    00273 D6DA      RCALL	div32u
    00274 01F8      MOVW	R30,R16
    00275 E680      LDI	R24,0x60
    00276 E090      LDI	R25,0
    00277 0FE8      ADD	R30,R24
    00278 1FF9      ADC	R31,R25
    00279 8180      LD	R24,Z
    0027A 778F      ANDI	R24,0x7F
    0027B 9380 008D STS	disbuff+3,R24
(0166) 		disbuff5=Table[temp/100%10];
    0027D E644      LDI	R20,0x64
    0027E E050      LDI	R21,0
    0027F E060      LDI	R22,0
    00280 E070      LDI	R23,0
    00281 8108      LD	R16,Y
    00282 8119      LDD	R17,Y+1
    00283 812A      LDD	R18,Y+2
    00284 813B      LDD	R19,Y+3
    00285 937A      ST	-Y,R23
    00286 936A      ST	-Y,R22
    00287 935A      ST	-Y,R21
    00288 934A      ST	-Y,R20

⌨️ 快捷键说明

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