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

📄 mydesign.lst

📁 本设计以ATMEL公司生产的AT90S8515作为控制核心
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0116) void timer0_ovf_isr(void)
(0117) {
(0118)  	SEI();
    01C3 9478      BSET	7
(0119) 	TCNT0 = 0xD9; //reload counter value
    01C4 ED89      LDI	R24,0xD9
    01C5 BF82      OUT	0x32,R24
(0120) 	time_count++;
    01C6 91800105  LDS	R24,_time_count
    01C8 5F8F      SUBI	R24,0xFF
    01C9 93800105  STS	_time_count,R24
(0121) 	if(time_count==100)
    01CB 3684      CPI	R24,0x64
    01CC F009      BEQ	0x01CE
    01CD C0D5      RJMP	0x02A3
(0122) 	{
(0123) 	 	time_count=0;
    01CE 2422      CLR	R2
    01CF 92200105  STS	_time_count,R2
(0124) 	    LCD_display(9,0,4,arv_ADC/arv_count/K1);
    01D1 9040008E  LDS	R4,0x8E
    01D3 9050008F  LDS	R5,0x8F
    01D5 9020008C  LDS	R2,0x8C
    01D7 9030008D  LDS	R3,0x8D
    01D9 9080008A  LDS	R8,0x8A
    01DB 9090008B  LDS	R9,0x8B
    01DD 90600088  LDS	R6,0x88
    01DF 90700089  LDS	R7,0x89
    01E1 925A      ST	R5,-Y
    01E2 924A      ST	R4,-Y
    01E3 923A      ST	R3,-Y
    01E4 922A      ST	R2,-Y
    01E5 2D06      MOV	R16,R6
    01E6 2D17      MOV	R17,R7
    01E7 2D28      MOV	R18,R8
    01E8 2D39      MOV	R19,R9
    01E9 D9CD      RCALL	div32u
    01EA 2FEC      MOV	R30,R28
    01EB 2FFD      MOV	R31,R29
    01EC 8702      STD	Z+10,R16
    01ED 8713      STD	Z+11,R17
    01EE 8724      STD	Z+12,R18
    01EF 8735      STD	Z+13,R19
    01F0 E10E      LDI	R16,0x1E
    01F1 E010      LDI	R17,0
    01F2 DA69      RCALL	lpm32
    01F3 933A      ST	R19,-Y
    01F4 932A      ST	R18,-Y
    01F5 931A      ST	R17,-Y
    01F6 930A      ST	R16,-Y
    01F7 2FEC      MOV	R30,R28
    01F8 2FFD      MOV	R31,R29
    01F9 8426      LDD	R2,Z+14
    01FA 8437      LDD	R3,Z+15
    01FB 8840      LDD	R4,Z+16
    01FC 8851      LDD	R5,Z+17
    01FD 9456      LSR	R5
    01FE 9447      ROR	R4
    01FF 9437      ROR	R3
    0200 9427      ROR	R2
    0201 2D02      MOV	R16,R2
    0202 2D13      MOV	R17,R3
    0203 2D24      MOV	R18,R4
    0204 2D35      MOV	R19,R5
    0205 DB12      RCALL	long2fp
    0206 933A      ST	R19,-Y
    0207 932A      ST	R18,-Y
    0208 931A      ST	R17,-Y
    0209 930A      ST	R16,-Y
    020A DC37      RCALL	mpy32fs
    020B E041      LDI	R20,1
    020C E050      LDI	R21,0
    020D E060      LDI	R22,0
    020E E070      LDI	R23,0
    020F 2FEC      MOV	R30,R28
    0210 2FFD      MOV	R31,R29
    0211 8426      LDD	R2,Z+14
    0212 8437      LDD	R3,Z+15
    0213 8840      LDD	R4,Z+16
    0214 8851      LDD	R5,Z+17
    0215 2224      AND	R2,R20
    0216 2235      AND	R3,R21
    0217 2246      AND	R4,R22
    0218 2257      AND	R5,R23
    0219 2D02      MOV	R16,R2
    021A 2D13      MOV	R17,R3
    021B 2D24      MOV	R18,R4
    021C 2D35      MOV	R19,R5
    021D DAFA      RCALL	long2fp
    021E 933A      ST	R19,-Y
    021F 932A      ST	R18,-Y
    0220 931A      ST	R17,-Y
    0221 930A      ST	R16,-Y
    0222 DB44      RCALL	add32fs
    0223 90400085  LDS	R4,0x85
    0225 90500086  LDS	R5,0x86
    0227 90200083  LDS	R2,0x83
    0229 90300084  LDS	R3,0x84
    022B 925A      ST	R5,-Y
    022C 924A      ST	R4,-Y
    022D 923A      ST	R3,-Y
    022E 922A      ST	R2,-Y
    022F DB8D      RCALL	div32f
    0230 2FEC      MOV	R30,R28
    0231 2FFD      MOV	R31,R29
    0232 8706      STD	Z+14,R16
    0233 8717      STD	Z+15,R17
    0234 8B20      STD	Z+16,R18
    0235 8B31      STD	Z+17,R19
    0236 2FEC      MOV	R30,R28
    0237 2FFD      MOV	R31,R29
    0238 8426      LDD	R2,Z+14
    0239 8437      LDD	R3,Z+15
    023A 8840      LDD	R4,Z+16
    023B 8851      LDD	R5,Z+17
    023C 925A      ST	R5,-Y
    023D 924A      ST	R4,-Y
    023E 923A      ST	R3,-Y
    023F 922A      ST	R2,-Y
    0240 E10A      LDI	R16,0x1A
    0241 E010      LDI	R17,0
    0242 DA19      RCALL	lpm32
    0243 933A      ST	R19,-Y
    0244 932A      ST	R18,-Y
    0245 931A      ST	R17,-Y
    0246 930A      ST	R16,-Y
    0247 DBCB      RCALL	cmp32f
    0248 F134      BLT	0x026F
    0249 2FEC      MOV	R30,R28
    024A 2FFD      MOV	R31,R29
    024B 8426      LDD	R2,Z+14
    024C 8437      LDD	R3,Z+15
    024D 8840      LDD	R4,Z+16
    024E 8851      LDD	R5,Z+17
    024F 925A      ST	R5,-Y
    0250 924A      ST	R4,-Y
    0251 923A      ST	R3,-Y
    0252 922A      ST	R2,-Y
    0253 E10A      LDI	R16,0x1A
    0254 E010      LDI	R17,0
    0255 DA06      RCALL	lpm32
    0256 933A      ST	R19,-Y
    0257 932A      ST	R18,-Y
    0258 931A      ST	R17,-Y
    0259 930A      ST	R16,-Y
    025A DB13      RCALL	sub32f
    025B DA83      RCALL	fp2long
    025C 2E20      MOV	R2,R16
    025D 2E31      MOV	R3,R17
    025E 2E42      MOV	R4,R18
    025F 2E53      MOV	R5,R19
    0260 E040      LDI	R20,0
    0261 E050      LDI	R21,0
    0262 E060      LDI	R22,0
    0263 E870      LDI	R23,0x80
    0264 0E24      ADD	R2,R20
    0265 1E35      ADC	R3,R21
    0266 1E46      ADC	R4,R22
    0267 1E57      ADC	R5,R23
    0268 2FEC      MOV	R30,R28
    0269 2FFD      MOV	R31,R29
    026A 8226      STD	Z+6,R2
    026B 8237      STD	Z+7,R3
    026C 8640      STD	Z+8,R4
    026D 8651      STD	Z+9,R5
    026E C00D      RJMP	0x027C
    026F 2FEC      MOV	R30,R28
    0270 2FFD      MOV	R31,R29
    0271 8506      LDD	R16,Z+14
    0272 8517      LDD	R17,Z+15
    0273 8920      LDD	R18,Z+16
    0274 8931      LDD	R19,Z+17
    0275 DA69      RCALL	fp2long
    0276 2FEC      MOV	R30,R28
    0277 2FFD      MOV	R31,R29
    0278 8306      STD	Z+6,R16
    0279 8317      STD	Z+7,R17
    027A 8720      STD	Z+8,R18
    027B 8731      STD	Z+9,R19
    027C 2FEC      MOV	R30,R28
    027D 2FFD      MOV	R31,R29
    027E 8026      LDD	R2,Z+6
    027F 8037      LDD	R3,Z+7
    0280 8440      LDD	R4,Z+8
    0281 8451      LDD	R5,Z+9
    0282 822A      STD	Y+2,R2
    0283 823B      STD	Y+3,R3
    0284 824C      STD	Y+4,R4
    0285 825D      STD	Y+5,R5
    0286 E084      LDI	R24,4
    0287 8388      STD	Y+0,R24
    0288 2722      CLR	R18
    0289 E009      LDI	R16,0x9
    028A D5A0      RCALL	_LCD_display
(0125) 		arv_ADC=0;
    028B E040      LDI	R20,0
    028C E050      LDI	R21,0
    028D E060      LDI	R22,0
    028E E070      LDI	R23,0
    028F 93500089  STS	0x89,R21
    0291 93400088  STS	0x88,R20
    0293 9370008B  STS	0x8B,R23
    0295 9360008A  STS	0x8A,R22
(0126) 		arv_count=0;
    0297 E040      LDI	R20,0
    0298 E050      LDI	R21,0
    0299 E060      LDI	R22,0
    029A E070      LDI	R23,0
    029B 9350008D  STS	0x8D,R21
    029D 9340008C  STS	0x8C,R20
    029F 9370008F  STS	0x8F,R23
    02A1 9360008E  STS	0x8E,R22
(0127) 	}
(0128) }
    02A3 9662      ADIW	R28,0x12
    02A4 D983      RCALL	pop_gset2
    02A5 D9E1      RCALL	pop_lset
    02A6 9518      RETI
_timer1_ovf_isr:
  jj                   --> Y+4
  ii                   --> Y+1
  iii                  --> Y+0
    02A7 D9C8      RCALL	push_lset
    02A8 9728      SBIW	R28,0x8
(0129) // 0.01s采集并发送控制数值
(0130) #pragma interrupt_handler timer1_ovf_isr:7
(0131) void timer1_ovf_isr(void)
(0132) {
(0133) 	long iii;
(0134) 	unsigned int  ii;
(0135) 	float	 jj;
(0136) 	
(0137) 	TCNT1H=Time1>>8;
    02A9 902000F7  LDS	R2,__idata_end
    02AB 903000F8  LDS	R3,__idata_end+1
    02AD 2C23      MOV	R2,R3
    02AE 2433      CLR	R3
    02AF BC2D      OUT	0x2D,R2
(0138) 	TCNT1L=Time1&0xff;
    02B0 918000F7  LDS	R24,__idata_end
    02B2 919000F8  LDS	R25,__idata_end+1
    02B4 7090      ANDI	R25,0
    02B5 BD8C      OUT	0x2C,R24
(0139) //	PID函数
(0140) 	PID(ADC-ADC_GD);                         
    02B6 90200108  LDS	R2,_ADC_GD
    02B8 90300109  LDS	R3,_ADC_GD+1
    02BA 9100010A  LDS	R16,_ADC
    02BC 9110010B  LDS	R17,_ADC+1
    02BE 1902      SUB	R16,R2
    02BF 0913      SBC	R17,R3
    02C0 D414      RCALL	_PID
(0141) 	DAC3=DAC>>8;                      // 写DAC3寄存器
    02C1 90200106  LDS	R2,_DAC
    02C3 90300107  LDS	R3,_DAC+1
    02C5 2C23      MOV	R2,R3
    02C6 2433      CLR	R3
    02C7 92208002  STS	0x8002,R2
(0142) 	DAC2=DAC&0x0FF;						   // 写DAC4寄存器
    02C9 91800106  LDS	R24,_DAC
    02CB 91900107  LDS	R25,_DAC+1
    02CD 7090      ANDI	R25,0
    02CE 93808001  STS	0x8001,R24
(0143) 	DACEN=0;                                   // 开始DA转换
    02D0 2422      CLR	R2
    02D1 9220C000  STS	0xC000,R2
(0144) 	
(0145) 	ADCCR=0x60;                                // 启动ADC
    02D3 E680      LDI	R24,0x60
    02D4 93804000  STS	0x4000,R24
(0146) 	ADCCR=0x40;
    02D6 E480      LDI	R24,0x40
    02D7 93804000  STS	0x4000,R24
(0147) 	PORTB^=0x01;    
    02D9 E081      LDI	R24,1
    02DA B228      IN	R2,0x18
    02DB 2628      EOR	R2,R24
    02DC BA28      OUT	0x18,R2
(0148) }
    02DD 9628      ADIW	R28,0x8
    02DE D9A8      RCALL	pop_lset
    02DF 9518      RETI
_main:
    02E0 9724      SBIW	R28,4
FILE: D:\hujie\main.c
(0001) #include <eeprom.h>
(0002) #include <io8515v.h>
(0003) #include "init.h"
(0004) #include "key5.h"
(0005) #include "1602LCD.h"
(0006) #define DEFAULT_K1 1.509
(0007) #define DEFAULT_T  100
(0008) #define MIN_T 50
(0009) // globals:
(0010) unsigned int  value;                  //  电流数值                     
(0011) //unsigned int  *p;                     //  数据指针
(0012) unsigned char DAC4_value=1;
(0013) float K1=DEFAULT_K1;
(0014) unsigned int  ADC;                    //  AD转换值
(0015) unsigned int  ADC_GD;
(0016) unsigned int  DAC;                    //  DA转换值
(0017) unsigned char time_count;             //  计数寄存器
(0018) float POUNT;
(0019) unsigned char value_table[5];         //  数据缓冲区
(0020) unsigned char mode=1;                 //  模式标志
(0021) unsigned int  value_temp;             //  数据寄存器
(0022) unsigned char j;  					  //  光标位置
(0023) unsigned long arv_ADC=0;
(0024) unsigned long arv_count=0;
(0025) unsigned int Time1;
(0026) 
(0027) void main(void)
(0028) {
(0029) 	mode_choice();
    02E1 D0A7      RCALL	_mode_choice
(0030) 	init_devices();                   //  硬件初始化
    02E2 DDFE      RCALL	_init_devices
    02E3 C009      RJMP	0x02ED
(0031) 	
(0032) 	while(1)                          //  主循环
(0033) 	{
(0034) 	    key_service(2,0,4,&value );   //  键盘服务
    02E4 E08C      LDI	R24,0xC
    02E5 E091      LDI	R25,1
    02E6 839B      STD	Y+3,R25
    02E7 838A      STD	Y+2,R24
    02E8 E084      LDI	R24,4
    02E9 8388      STD	Y+0,R24
    02EA 2722      CLR	R18
    02EB E002      LDI	R16,2
    02EC D5FB      RCALL	_key_service
    02ED CFF6      RJMP	0x02E4
(0035) 	}
(0036) }
    02EE 9624      ADIW	R28,4
    02EF 9508      RET
_SaveToEEPROM:
  i                    --> R20
  add                  --> R22
  len                  --> R10
  off                  --> R12
    02F0 D95C      RCALL	push_gset4
    02F1 2EA2      MOV	R10,R18
    02F2 2EC0      MOV	R12,R16
    02F3 8568      LDD	R22,Y+8
    02F4 8579      LDD	R23,Y+9
(0037) void SaveToEEPROM(unsigned char off,unsigned char len,unsigned add)
(0038) {
(0039)  	int i;
(0040) 	for(i=0;i<len;i++)
    02F5 2744      CLR	R20
    02F6 2755      CLR	R21
    02F7 C015      RJMP	0x030D
(0041)  		EEPROMwrite(add++,value_table[off++]);
    02F8 2C2C      MOV	R2,R12
    02F9 2433      CLR	R3
    02FA 2D82      MOV	R24,R2
    02FB 5F8F      SUBI	R24,0xFF
    02FC 2EC8      MOV	R12,R24
    02FD EF8C      LDI	R24,0xFC
    02FE E090      LDI	R25,0
    02FF 2DE2      MOV	R30,R2
    0300 27FF      CLR	R31
    0301 0FE8      ADD	R30,R24
    0302 1FF9      ADC	R31,R25
    0303 8120      LDD	R18,Z+0
    0304 2E26      MOV	R2,R22
    0305 2E37      MOV	R3,R23
    0306 5F6F      SUBI	R22,0xFF
    0307 4F7F      SBCI	R23,0xFF
    0308 2D02      MOV	R16,R2
    0309 2D13      MOV	R17,R3
    030A D9BA      RCALL	_EEPROMwrite
    030B 5F4F      SUBI	R20,0xFF
    030C 4F5F      SBCI	R21,0xFF
    030D 2C2A      MOV	R2,R10
    030E 2433      CLR	R3
    030F 1542      CP	R20,R2
    0310 0553      CPC	R21,R3
    0311 F334      BLT	0x02F8
(0042) }
    0312 D919      RCALL	pop_gset4
    0313 9508      RET
_changK1:
    0314 D91B      RCALL	push_gset1
    0315 9724      SBIW	R28,4
(0043) unsigned int changK1(void)
(0044) {
(0045)  	if(K1>6.5) K1=6.5;
    0316 E40A      LDI	R16,0x4A
    0317 E010      LDI	R17,0
    0318 D943      RCALL	lpm32
    0319 933A      ST	R19,-Y
    031A 932A      ST	R18,-Y
    031B 931A      ST	R17,-Y
    031C 930A      ST	R16,-Y
    031D 90400085  LDS	R4,0x85
    031F 90500086  LDS	R5,0x86
    0321 90200083  LDS	R2,0x83
    0323 90300084  LDS	R3,0x84
    0325 925A      ST	R5,-Y
    0326 924A      ST	R4,-Y
    0327 923A      ST	R3,-Y
    0328 922A      ST	R2,-Y
    0329 DAE9      RCALL	cmp32f
    032A F45C      BGE	0x0336
    032B E406      LDI	R16,0x46
    032C E010      LDI	R17,0
    032D D92E      RCALL	lpm32
    032E 93100084  STS	0x84,R17
    0330 93000083  STS	0x83,R16
    0332 93300086  STS	0x86,R19
    0334 93200085  STS	0x85,R18
(0046)  	return K1*10000;
    0336 E402      LDI	R16,0x42

⌨️ 快捷键说明

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