📄 main.lss
字号:
1320: 80 0f add r24, r16
1322: 91 1f adc r25, r17
1324: 99 83 std Y+1, r25 ; 0x01
1326: 88 83 st Y, r24
if(XCurrent[i]>A_MAX)XCurrent[i] = 0;//加载恒流
1328: 89 58 subi r24, 0x89 ; 137
132a: 93 41 sbci r25, 0x13 ; 19
132c: 10 f0 brcs .+4 ; 0x1332 <vDataInit+0x8e>
132e: 19 82 std Y+1, r1 ; 0x01
1330: 18 82 st Y, r1
1332: 82 e0 ldi r24, 0x02 ; 2
1334: 90 e0 ldi r25, 0x00 ; 0
1336: e8 0e add r14, r24
1338: f9 1e adc r15, r25
133a: 22 96 adiw r28, 0x02 ; 2
133c: 98 e2 ldi r25, 0x28 ; 40
133e: e9 16 cp r14, r25
1340: f1 04 cpc r15, r1
1342: 01 f7 brne .-64 ; 0x1304 <vDataInit+0x60>
1344: 7a e2 ldi r23, 0x2A ; 42
1346: e7 2e mov r14, r23
1348: f1 2c mov r15, r1
134a: c5 e1 ldi r28, 0x15 ; 21
134c: d1 e0 ldi r29, 0x01 ; 1
}
for(i=1;i<10;i++)
{
XStopCurrent[i] = EEPROM_read(2*i+40);
134e: c7 01 movw r24, r14
1350: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
1354: 08 2f mov r16, r24
1356: 11 27 eor r17, r17
1358: 19 83 std Y+1, r17 ; 0x01
135a: 08 83 st Y, r16
XStopCurrent[i] += EEPROM_read(2*i+41)*256;
135c: c7 01 movw r24, r14
135e: 01 96 adiw r24, 0x01 ; 1
1360: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
1364: 99 27 eor r25, r25
1366: 98 2f mov r25, r24
1368: 88 27 eor r24, r24
136a: 80 0f add r24, r16
136c: 91 1f adc r25, r17
136e: 99 83 std Y+1, r25 ; 0x01
1370: 88 83 st Y, r24
if(XStopCurrent[i]>A_MAX)XStopCurrent[i] = 0;//加载涓流
1372: 89 58 subi r24, 0x89 ; 137
1374: 93 41 sbci r25, 0x13 ; 19
1376: 10 f0 brcs .+4 ; 0x137c <vDataInit+0xd8>
1378: 19 82 std Y+1, r1 ; 0x01
137a: 18 82 st Y, r1
137c: 82 e0 ldi r24, 0x02 ; 2
137e: 90 e0 ldi r25, 0x00 ; 0
1380: e8 0e add r14, r24
1382: f9 1e adc r15, r25
1384: 22 96 adiw r28, 0x02 ; 2
1386: 9c e3 ldi r25, 0x3C ; 60
1388: e9 16 cp r14, r25
138a: f1 04 cpc r15, r1
138c: 01 f7 brne .-64 ; 0x134e <vDataInit+0xaa>
138e: 5e e3 ldi r21, 0x3E ; 62
1390: e5 2e mov r14, r21
1392: f1 2c mov r15, r1
1394: c9 ee ldi r28, 0xE9 ; 233
1396: d0 e0 ldi r29, 0x00 ; 0
}
for(i=1;i<10;i++)
{
XStopTime[i] = EEPROM_read(2*i+60);
1398: c7 01 movw r24, r14
139a: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
139e: 08 2f mov r16, r24
13a0: 11 27 eor r17, r17
13a2: 19 83 std Y+1, r17 ; 0x01
13a4: 08 83 st Y, r16
XStopTime[i] += EEPROM_read(2*i+61)*256;
13a6: c7 01 movw r24, r14
13a8: 01 96 adiw r24, 0x01 ; 1
13aa: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
13ae: 99 27 eor r25, r25
13b0: 98 2f mov r25, r24
13b2: 88 27 eor r24, r24
13b4: 80 0f add r24, r16
13b6: 91 1f adc r25, r17
13b8: 99 83 std Y+1, r25 ; 0x01
13ba: 88 83 st Y, r24
if(XStopTime[i]>TI_MAX)XStopTime[i] = 0;//加载停止时间
13bc: 80 5d subi r24, 0xD0 ; 208
13be: 97 40 sbci r25, 0x07 ; 7
13c0: 10 f0 brcs .+4 ; 0x13c6 <vDataInit+0x122>
13c2: 19 82 std Y+1, r1 ; 0x01
13c4: 18 82 st Y, r1
13c6: 82 e0 ldi r24, 0x02 ; 2
13c8: 90 e0 ldi r25, 0x00 ; 0
13ca: e8 0e add r14, r24
13cc: f9 1e adc r15, r25
13ce: 22 96 adiw r28, 0x02 ; 2
13d0: 90 e5 ldi r25, 0x50 ; 80
13d2: e9 16 cp r14, r25
13d4: f1 04 cpc r15, r1
13d6: 01 f7 brne .-64 ; 0x1398 <vDataInit+0xf4>
13d8: 32 e5 ldi r19, 0x52 ; 82
13da: e3 2e mov r14, r19
13dc: f1 2c mov r15, r1
13de: cb ea ldi r28, 0xAB ; 171
13e0: d0 e0 ldi r29, 0x00 ; 0
}
for(i=1;i<10;i++)
{
XStopCapacitor[i] = EEPROM_read(2*i+80);
13e2: c7 01 movw r24, r14
13e4: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
13e8: 08 2f mov r16, r24
13ea: 11 27 eor r17, r17
13ec: 19 83 std Y+1, r17 ; 0x01
13ee: 08 83 st Y, r16
XStopCapacitor[i] += EEPROM_read(2*i+81)*256;
13f0: c7 01 movw r24, r14
13f2: 01 96 adiw r24, 0x01 ; 1
13f4: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
13f8: 99 27 eor r25, r25
13fa: 98 2f mov r25, r24
13fc: 88 27 eor r24, r24
13fe: 80 0f add r24, r16
1400: 91 1f adc r25, r17
1402: 99 83 std Y+1, r25 ; 0x01
1404: 88 83 st Y, r24
if(XStopCapacitor[i]>CA_MAX)XStopCapacitor[i] = 0;//加载停止容量
1406: 80 51 subi r24, 0x10 ; 16
1408: 97 42 sbci r25, 0x27 ; 39
140a: 10 f0 brcs .+4 ; 0x1410 <vDataInit+0x16c>
140c: 19 82 std Y+1, r1 ; 0x01
140e: 18 82 st Y, r1
1410: 82 e0 ldi r24, 0x02 ; 2
1412: 90 e0 ldi r25, 0x00 ; 0
1414: e8 0e add r14, r24
1416: f9 1e adc r15, r25
1418: 22 96 adiw r28, 0x02 ; 2
141a: 94 e6 ldi r25, 0x64 ; 100
141c: e9 16 cp r14, r25
141e: f1 04 cpc r15, r1
1420: 01 f7 brne .-64 ; 0x13e2 <vDataInit+0x13e>
1422: c7 e6 ldi r28, 0x67 ; 103
1424: d0 e0 ldi r29, 0x00 ; 0
1426: 0d ef ldi r16, 0xFD ; 253
1428: e0 2e mov r14, r16
142a: 00 e0 ldi r16, 0x00 ; 0
142c: f0 2e mov r15, r16
}
for(i=1;i<10;i++)
{
XS_state[i]= EEPROM_read(i+102);
142e: ce 01 movw r24, r28
1430: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
1434: 99 27 eor r25, r25
1436: f7 01 movw r30, r14
1438: 81 93 st Z+, r24
143a: 91 93 st Z+, r25
143c: 7f 01 movw r14, r30
143e: 21 96 adiw r28, 0x01 ; 1
1440: c0 37 cpi r28, 0x70 ; 112
1442: d1 05 cpc r29, r1
1444: a1 f7 brne .-24 ; 0x142e <vDataInit+0x18a>
1446: c1 e7 ldi r28, 0x71 ; 113
1448: d0 e0 ldi r29, 0x00 ; 0
144a: 18 e8 ldi r17, 0x88 ; 136
144c: e1 2e mov r14, r17
144e: 10 e0 ldi r17, 0x00 ; 0
1450: f1 2e mov r15, r17
}
for(i=1;i<10;i++)
{
S_number[i]= EEPROM_read(i+112);
1452: ce 01 movw r24, r28
1454: 0e 94 12 09 call 0x1224 ; 0x1224 <EEPROM_read>
1458: f7 01 movw r30, r14
145a: 81 93 st Z+, r24
145c: 7f 01 movw r14, r30
145e: 21 96 adiw r28, 0x01 ; 1
1460: ca 37 cpi r28, 0x7A ; 122
1462: d1 05 cpc r29, r1
1464: b1 f7 brne .-20 ; 0x1452 <vDataInit+0x1ae>
1466: df 91 pop r29
1468: cf 91 pop r28
146a: 1f 91 pop r17
146c: 0f 91 pop r16
146e: ff 90 pop r15
1470: ef 90 pop r14
1472: 08 95 ret
00001474 <vGetInt>:
}
}
void vGetInt(unsigned char key)
{
1474: 48 2f mov r20, r24
unsigned int k = 0;
if(key >0x09)
1476: 8a 30 cpi r24, 0x0A ; 10
1478: 28 f0 brcs .+10 ; 0x1484 <vGetInt+0x10>
{
TempValue = 0;
147a: 10 92 81 00 sts 0x0081, r1
147e: 10 92 80 00 sts 0x0080, r1
1482: 08 95 ret
return;
}
if(WorkStatus==0x25)k = TempValue%100;//温度99.9
1484: 80 91 64 00 lds r24, 0x0064
1488: 20 91 80 00 lds r18, 0x0080
148c: 30 91 81 00 lds r19, 0x0081
1490: 85 32 cpi r24, 0x25 ; 37
1492: 21 f4 brne .+8 ; 0x149c <vGetInt+0x28>
1494: c9 01 movw r24, r18
1496: 64 e6 ldi r22, 0x64 ; 100
1498: 70 e0 ldi r23, 0x00 ; 0
149a: 03 c0 rjmp .+6 ; 0x14a2 <vGetInt+0x2e>
else k = TempValue%1000;
149c: c9 01 movw r24, r18
149e: 68 ee ldi r22, 0xE8 ; 232
14a0: 73 e0 ldi r23, 0x03 ; 3
14a2: 0e 94 49 1d call 0x3a92 ; 0x3a92 <__udivmodhi4>
14a6: 9c 01 movw r18, r24
k *= 10;
14a8: 63 e0 ldi r22, 0x03 ; 3
14aa: 88 0f add r24, r24
14ac: 99 1f adc r25, r25
14ae: 6a 95 dec r22
14b0: e1 f7 brne .-8 ; 0x14aa <vGetInt+0x36>
14b2: 22 0f add r18, r18
14b4: 33 1f adc r19, r19
14b6: 28 0f add r18, r24
14b8: 39 1f adc r19, r25
k += key;
TempValue = k;
14ba: 24 0f add r18, r20
14bc: 31 1d adc r19, r1
14be: 30 93 81 00 sts 0x0081, r19
14c2: 20 93 80 00 sts 0x0080, r18
14c6: 08 95 ret
000014c8 <vCheck>:
}
void vMenu(unsigned char key)
{
if(key>0x14)return;
switch(WorkStatus)
{
case 0x00://上电,显示LOGO,按任意键继续
{
if(key<0x14)
{
WorkStatus = 0x10;//待机状态
DisNum(0,0);
vLCD_Page_Change(1);//切换到数据显示页面
m_page=1;
vStop();
dis_fige=0;
}
}break;
case 0x10://待机状态
{
if(key==F2)//启动,需要等待确认(需要确定工作参数合理)
{
if((LowStatus&0x00ff)==0x0001)
{
WorkStatus = 0x11;
vWait2Ensure();
}
}
if(key==F1)//设定参数
{
WorkStatus = 0x20;
vWait2Ensure();
}
CVoltage = XVoltage[1];
CCurrent = XCurrent[1];
StopCurrent = XStopCurrent[1];
StopTime = XStopTime[1];
StopCapacitor = XStopCapacitor[1];
NS_state = XS_state[1];
N_step = 1;
N_cycle = 1;
}break;
case 0x30:
{
Work_commend=0x00ff;
WorkStatus = 0x12;
vWork();
dis_fige=1;
}break;
case 0x11://等待确认启动
{
if(key==ENTER)//已确定启动
{
WorkStatus = 0x12;//工作!
Work_commend=0x00ff;
//vLCD_Page_Change(2);//
vWork();
dis_fige=1;
}
else
{
WorkStatus = 0x10;//待机
vStop();
dis_fige=0;
}
}break;
case 0x12://工作
{
if(key==F3)//停止,需要等待确认
{
WorkStatus = 0x13;//确认后停止
vWait2Ensure();
}
if(key==F1)
{
WorkStatus = 0x14;//查询工作参数
vCheck();
vDisplay();
vLCD_Page_Change(2);//切换到参数显示页面B
m_page=2;
}
}break;
case 0x13://等待确认停止
{
if(key==ENTER)//已确定停止
{
WorkStatus = 0x10;
Work_commend=0xff00;
vStop();
dis_fige=0;
}
else
{
WorkStatus = 0x12;
vWork();
dis_fige=1;
}
}break;
case 0x14://显示工作参数态,按任意键返回工作界面
{
if(key==RIGHT)//下一页
{
if(number>=10)
{
number=10;
break;
}
number++;
vDisplay();
vSetup();
break;
}
if(key==LIFT)//上一页
{
if(number<=1)break;
number--;
vDisplay();
vSetup();
break;
}
if(key==ESC)//取消,进入主界面
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -