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

📄 main.lss

📁 AVR单片机ATMEGA32驱动240*128LCD程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
    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 + -