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

📄 main.lss

📁 AVR单片机ATMEGA32驱动240*128LCD程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
    10ee:	99 27       	eor	r25, r25
    10f0:	a5 cf       	rjmp	.-182    	; 0x103c <__vector_10+0x6c>
				}break;
				case 8:
				{
					kk = val;
    10f2:	20 93 84 00 	sts	0x0084, r18
    10f6:	70 c0       	rjmp	.+224    	; 0x11d8 <__vector_10+0x208>
				}break;
				default: break;
			}
		}break;
		case 2:
		{
			switch(k)
    10f8:	80 91 83 00 	lds	r24, 0x0083
    10fc:	83 30       	cpi	r24, 0x03	; 3
    10fe:	59 f1       	breq	.+86     	; 0x1156 <__vector_10+0x186>
    1100:	84 30       	cpi	r24, 0x04	; 4
    1102:	30 f4       	brcc	.+12     	; 0x1110 <__vector_10+0x140>
    1104:	88 23       	and	r24, r24
    1106:	69 f0       	breq	.+26     	; 0x1122 <__vector_10+0x152>
    1108:	82 30       	cpi	r24, 0x02	; 2
    110a:	09 f0       	breq	.+2      	; 0x110e <__vector_10+0x13e>
    110c:	65 c0       	rjmp	.+202    	; 0x11d8 <__vector_10+0x208>
    110e:	16 c0       	rjmp	.+44     	; 0x113c <__vector_10+0x16c>
    1110:	85 30       	cpi	r24, 0x05	; 5
    1112:	09 f4       	brne	.+2      	; 0x1116 <__vector_10+0x146>
    1114:	48 c0       	rjmp	.+144    	; 0x11a6 <__vector_10+0x1d6>
    1116:	85 30       	cpi	r24, 0x05	; 5
    1118:	c8 f1       	brcs	.+114    	; 0x118c <__vector_10+0x1bc>
    111a:	86 30       	cpi	r24, 0x06	; 6
    111c:	09 f0       	breq	.+2      	; 0x1120 <__vector_10+0x150>
    111e:	5c c0       	rjmp	.+184    	; 0x11d8 <__vector_10+0x208>
    1120:	4f c0       	rjmp	.+158    	; 0x11c0 <__vector_10+0x1f0>
			{
				case 0:
				{
					LowStatus = val*0x100+kk;
    1122:	82 2f       	mov	r24, r18
    1124:	99 27       	eor	r25, r25
    1126:	98 2f       	mov	r25, r24
    1128:	88 27       	eor	r24, r24
    112a:	20 91 84 00 	lds	r18, 0x0084
    112e:	82 0f       	add	r24, r18
    1130:	91 1d       	adc	r25, r1
    1132:	90 93 7f 00 	sts	0x007F, r25
    1136:	80 93 7e 00 	sts	0x007E, r24
    113a:	4e c0       	rjmp	.+156    	; 0x11d8 <__vector_10+0x208>
				}break;
				case 1:
				{
					//FarVoltage =  val*0x100+kk;
				}break;
				case 2:
				{
					Voltage =  val*0x100+kk;
    113c:	82 2f       	mov	r24, r18
    113e:	99 27       	eor	r25, r25
    1140:	98 2f       	mov	r25, r24
    1142:	88 27       	eor	r24, r24
    1144:	20 91 84 00 	lds	r18, 0x0084
    1148:	82 0f       	add	r24, r18
    114a:	91 1d       	adc	r25, r1
    114c:	90 93 71 00 	sts	0x0071, r25
    1150:	80 93 70 00 	sts	0x0070, r24
    1154:	41 c0       	rjmp	.+130    	; 0x11d8 <__vector_10+0x208>
				}break;
				case 3:
				{ 
					ACurrent[mp]=val*0x100+kk;
    1156:	30 91 82 00 	lds	r19, 0x0082
    115a:	e3 2f       	mov	r30, r19
    115c:	ff 27       	eor	r31, r31
    115e:	ee 0f       	add	r30, r30
    1160:	ff 1f       	adc	r31, r31
    1162:	ed 56       	subi	r30, 0x6D	; 109
    1164:	ff 4f       	sbci	r31, 0xFF	; 255
    1166:	82 2f       	mov	r24, r18
    1168:	99 27       	eor	r25, r25
    116a:	98 2f       	mov	r25, r24
    116c:	88 27       	eor	r24, r24
    116e:	20 91 84 00 	lds	r18, 0x0084
    1172:	82 0f       	add	r24, r18
    1174:	91 1d       	adc	r25, r1
    1176:	91 83       	std	Z+1, r25	; 0x01
    1178:	80 83       	st	Z, r24
					if(mp>8)mp=0;
    117a:	39 30       	cpi	r19, 0x09	; 9
    117c:	18 f0       	brcs	.+6      	; 0x1184 <__vector_10+0x1b4>
    117e:	10 92 82 00 	sts	0x0082, r1
    1182:	2a c0       	rjmp	.+84     	; 0x11d8 <__vector_10+0x208>
					else mp++;
    1184:	3f 5f       	subi	r19, 0xFF	; 255
    1186:	30 93 82 00 	sts	0x0082, r19
    118a:	26 c0       	rjmp	.+76     	; 0x11d8 <__vector_10+0x208>
					
				}break;
				case 4:
				{
					Temp =  val*0x100+kk;
    118c:	82 2f       	mov	r24, r18
    118e:	99 27       	eor	r25, r25
    1190:	98 2f       	mov	r25, r24
    1192:	88 27       	eor	r24, r24
    1194:	20 91 84 00 	lds	r18, 0x0084
    1198:	82 0f       	add	r24, r18
    119a:	91 1d       	adc	r25, r1
    119c:	90 93 75 00 	sts	0x0075, r25
    11a0:	80 93 74 00 	sts	0x0074, r24
    11a4:	19 c0       	rjmp	.+50     	; 0x11d8 <__vector_10+0x208>
				}break;
				case 5:
				{
					Time =  val*0x100+kk;
    11a6:	82 2f       	mov	r24, r18
    11a8:	99 27       	eor	r25, r25
    11aa:	98 2f       	mov	r25, r24
    11ac:	88 27       	eor	r24, r24
    11ae:	20 91 84 00 	lds	r18, 0x0084
    11b2:	82 0f       	add	r24, r18
    11b4:	91 1d       	adc	r25, r1
    11b6:	90 93 77 00 	sts	0x0077, r25
    11ba:	80 93 76 00 	sts	0x0076, r24
    11be:	0c c0       	rjmp	.+24     	; 0x11d8 <__vector_10+0x208>
				}break;
				case 6:
				{
					Capacitor = val*0x100+kk;
    11c0:	82 2f       	mov	r24, r18
    11c2:	99 27       	eor	r25, r25
    11c4:	98 2f       	mov	r25, r24
    11c6:	88 27       	eor	r24, r24
    11c8:	20 91 84 00 	lds	r18, 0x0084
    11cc:	82 0f       	add	r24, r18
    11ce:	91 1d       	adc	r25, r1
    11d0:	90 93 79 00 	sts	0x0079, r25
    11d4:	80 93 78 00 	sts	0x0078, r24
				}break;
				case 7:
				{
				}break;
				case 8:
				{
					//eer_data = val*0x100+kk;
				}break;
				default: break;
			}
		}break;
		default:break;
	}
	if((++bn)>2)
    11d8:	80 91 63 00 	lds	r24, 0x0063
    11dc:	8f 5f       	subi	r24, 0xFF	; 255
    11de:	80 93 63 00 	sts	0x0063, r24
    11e2:	80 91 63 00 	lds	r24, 0x0063
    11e6:	83 30       	cpi	r24, 0x03	; 3
    11e8:	38 f0       	brcs	.+14     	; 0x11f8 <__vector_10+0x228>
	{
		bn = 0;
    11ea:	10 92 63 00 	sts	0x0063, r1
		k = 0;
    11ee:	10 92 83 00 	sts	0x0083, r1
		TimeOut = 0;
    11f2:	10 92 60 00 	sts	0x0060, r1
    11f6:	03 c0       	rjmp	.+6      	; 0x11fe <__vector_10+0x22e>
	}
	else TimeOut = 10;
    11f8:	8a e0       	ldi	r24, 0x0A	; 10
    11fa:	80 93 60 00 	sts	0x0060, r24
    11fe:	ff 91       	pop	r31
    1200:	ef 91       	pop	r30
    1202:	9f 91       	pop	r25
    1204:	8f 91       	pop	r24
    1206:	3f 91       	pop	r19
    1208:	2f 91       	pop	r18
    120a:	0f 90       	pop	r0
    120c:	0f be       	out	0x3f, r0	; 63
    120e:	0f 90       	pop	r0
    1210:	1f 90       	pop	r1
    1212:	18 95       	reti

00001214 <EEPROM_write>:
}
/////////////////////////////////////////////////////////////////////////
//自编函数区/////////////////////////////////////////////////////////////
void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
    1214:	e1 99       	sbic	0x1c, 1	; 28
    1216:	fe cf       	rjmp	.-4      	; 0x1214 <EEPROM_write>
	while(EECR & (1<<EEWE));/* 等待上一次写操作结束 */
	EEAR = uiAddress;/* 设置地址和数据寄存器*/
    1218:	9f bb       	out	0x1f, r25	; 31
    121a:	8e bb       	out	0x1e, r24	; 30
	EEDR = ucData;
    121c:	6d bb       	out	0x1d, r22	; 29
	EECR |= (1<<EEMWE);/* 置位EEMWE */
    121e:	e2 9a       	sbi	0x1c, 2	; 28
	EECR |= (1<<EEWE);/* 置位EEWE 以启动写操作*/
    1220:	e1 9a       	sbi	0x1c, 1	; 28
    1222:	08 95       	ret

00001224 <EEPROM_read>:
}
/***********************************/
unsigned char EEPROM_read(unsigned int uiAddress)
{
    1224:	e1 99       	sbic	0x1c, 1	; 28
    1226:	fe cf       	rjmp	.-4      	; 0x1224 <EEPROM_read>
	while(EECR & (1<<EEWE));/* 等待上一次写操作结束 */
	EEAR = uiAddress;/* 设置地址寄存器*/
    1228:	9f bb       	out	0x1f, r25	; 31
    122a:	8e bb       	out	0x1e, r24	; 30
	EECR |= (1<<EERE);/* 设置EERE 以启动读操作*/
    122c:	e0 9a       	sbi	0x1c, 0	; 28
	return(EEDR);/* 自数据寄存器返回数据 */
    122e:	8d b3       	in	r24, 0x1d	; 29
}
    1230:	99 27       	eor	r25, r25
    1232:	08 95       	ret

00001234 <AVE_current>:

void AVE_current(void)
{
    1234:	cf 93       	push	r28
    1236:	df 93       	push	r29
    1238:	60 e0       	ldi	r22, 0x00	; 0
    123a:	70 e0       	ldi	r23, 0x00	; 0
    123c:	cf ef       	ldi	r28, 0xFF	; 255
    123e:	df ef       	ldi	r29, 0xFF	; 255
    1240:	20 e0       	ldi	r18, 0x00	; 0
    1242:	30 e0       	ldi	r19, 0x00	; 0
    1244:	40 e0       	ldi	r20, 0x00	; 0
    1246:	50 e0       	ldi	r21, 0x00	; 0
    1248:	e3 e9       	ldi	r30, 0x93	; 147
    124a:	f0 e0       	ldi	r31, 0x00	; 0
	unsigned char i 		= 0;
	unsigned int  max		= 0;
	unsigned int  min		= 0xffff;
	unsigned long total = 0;
	for(i=0;i<10;i++)
	{
		if(ACurrent[i]>max)max=ACurrent[i];
    124c:	80 81       	ld	r24, Z
    124e:	91 81       	ldd	r25, Z+1	; 0x01
    1250:	68 17       	cp	r22, r24
    1252:	79 07       	cpc	r23, r25
    1254:	08 f4       	brcc	.+2      	; 0x1258 <AVE_current+0x24>
    1256:	bc 01       	movw	r22, r24
    1258:	8c 17       	cp	r24, r28
    125a:	9d 07       	cpc	r25, r29
    125c:	08 f4       	brcc	.+2      	; 0x1260 <AVE_current+0x2c>
    125e:	ec 01       	movw	r28, r24
		if(ACurrent[i]<min)min=ACurrent[i];
		total +=ACurrent[i];
    1260:	aa 27       	eor	r26, r26
    1262:	bb 27       	eor	r27, r27
    1264:	28 0f       	add	r18, r24
    1266:	39 1f       	adc	r19, r25
    1268:	4a 1f       	adc	r20, r26
    126a:	5b 1f       	adc	r21, r27
    126c:	32 96       	adiw	r30, 0x02	; 2
    126e:	80 e0       	ldi	r24, 0x00	; 0
    1270:	e7 3a       	cpi	r30, 0xA7	; 167
    1272:	f8 07       	cpc	r31, r24
    1274:	59 f7       	brne	.-42     	; 0x124c <AVE_current+0x18>
	}
	Current=(total-(max+min))/8;
    1276:	6c 0f       	add	r22, r28
    1278:	7d 1f       	adc	r23, r29
    127a:	cb 01       	movw	r24, r22
    127c:	aa 27       	eor	r26, r26
    127e:	bb 27       	eor	r27, r27
    1280:	28 1b       	sub	r18, r24
    1282:	39 0b       	sbc	r19, r25
    1284:	4a 0b       	sbc	r20, r26
    1286:	5b 0b       	sbc	r21, r27
    1288:	b3 e0       	ldi	r27, 0x03	; 3
    128a:	56 95       	lsr	r21
    128c:	47 95       	ror	r20
    128e:	37 95       	ror	r19
    1290:	27 95       	ror	r18
    1292:	ba 95       	dec	r27
    1294:	d1 f7       	brne	.-12     	; 0x128a <AVE_current+0x56>
    1296:	30 93 73 00 	sts	0x0073, r19
    129a:	20 93 72 00 	sts	0x0072, r18
    129e:	df 91       	pop	r29
    12a0:	cf 91       	pop	r28
    12a2:	08 95       	ret

000012a4 <vDataInit>:
}
void vDataInit(void)
{
    12a4:	ef 92       	push	r14
    12a6:	ff 92       	push	r15
    12a8:	0f 93       	push	r16
    12aa:	1f 93       	push	r17
    12ac:	cf 93       	push	r28
    12ae:	df 93       	push	r29
    12b0:	b2 e0       	ldi	r27, 0x02	; 2
    12b2:	eb 2e       	mov	r14, r27
    12b4:	f1 2c       	mov	r15, r1
    12b6:	c3 ed       	ldi	r28, 0xD3	; 211
    12b8:	d0 e0       	ldi	r29, 0x00	; 0
	
	unsigned char i;
	
	for(i=1;i<10;i++)
	{
	XVoltage[i]		=EEPROM_read(2*i);
    12ba:	c7 01       	movw	r24, r14
    12bc:	0e 94 12 09 	call	0x1224	; 0x1224 <EEPROM_read>
    12c0:	08 2f       	mov	r16, r24
    12c2:	11 27       	eor	r17, r17
    12c4:	19 83       	std	Y+1, r17	; 0x01
    12c6:	08 83       	st	Y, r16
	XVoltage[i]		+=EEPROM_read(2*i+1)*256;
    12c8:	c7 01       	movw	r24, r14
    12ca:	01 96       	adiw	r24, 0x01	; 1
    12cc:	0e 94 12 09 	call	0x1224	; 0x1224 <EEPROM_read>
    12d0:	99 27       	eor	r25, r25
    12d2:	98 2f       	mov	r25, r24
    12d4:	88 27       	eor	r24, r24
    12d6:	80 0f       	add	r24, r16
    12d8:	91 1f       	adc	r25, r17
    12da:	99 83       	std	Y+1, r25	; 0x01
    12dc:	88 83       	st	Y, r24
	if(XVoltage[i]>V_MAX)XVoltage[i] = 0;//加载恒压
    12de:	81 5d       	subi	r24, 0xD1	; 209
    12e0:	97 40       	sbci	r25, 0x07	; 7
    12e2:	10 f0       	brcs	.+4      	; 0x12e8 <vDataInit+0x44>
    12e4:	19 82       	std	Y+1, r1	; 0x01
    12e6:	18 82       	st	Y, r1
    12e8:	82 e0       	ldi	r24, 0x02	; 2
    12ea:	90 e0       	ldi	r25, 0x00	; 0
    12ec:	e8 0e       	add	r14, r24
    12ee:	f9 1e       	adc	r15, r25
    12f0:	22 96       	adiw	r28, 0x02	; 2
    12f2:	94 e1       	ldi	r25, 0x14	; 20
    12f4:	e9 16       	cp	r14, r25
    12f6:	f1 04       	cpc	r15, r1
    12f8:	01 f7       	brne	.-64     	; 0x12ba <vDataInit+0x16>
    12fa:	f6 e1       	ldi	r31, 0x16	; 22
    12fc:	ef 2e       	mov	r14, r31
    12fe:	f1 2c       	mov	r15, r1
    1300:	cf eb       	ldi	r28, 0xBF	; 191
    1302:	d0 e0       	ldi	r29, 0x00	; 0
	}
	for(i=1;i<10;i++)
	{
	XCurrent[i]		= EEPROM_read(2*i+20);
    1304:	c7 01       	movw	r24, r14
    1306:	0e 94 12 09 	call	0x1224	; 0x1224 <EEPROM_read>
    130a:	08 2f       	mov	r16, r24
    130c:	11 27       	eor	r17, r17
    130e:	19 83       	std	Y+1, r17	; 0x01
    1310:	08 83       	st	Y, r16
	XCurrent[i]		+= EEPROM_read(2*i+21)*256;
    1312:	c7 01       	movw	r24, r14
    1314:	01 96       	adiw	r24, 0x01	; 1
    1316:	0e 94 12 09 	call	0x1224	; 0x1224 <EEPROM_read>
    131a:	99 27       	eor	r25, r25
    131c:	98 2f       	mov	r25, r24
    131e:	88 27       	eor	r24, r24

⌨️ 快捷键说明

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