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

📄 main.lss

📁 用来显示LCM103的单片机程序。非常好的例子
💻 LSS
📖 第 1 页 / 共 2 页
字号:
 16e:	1f 93       	push	r17
 170:	cf 93       	push	r28
 172:	df 93       	push	r29
 174:	08 2f       	mov	r16, r24
 176:	f6 2e       	mov	r15, r22
	uint8_t i;
	CS1;
 178:	df 9a       	sbi	0x1b, 7	; 27
	delay(1);
 17a:	81 e0       	ldi	r24, 0x01	; 1
 17c:	90 e0       	ldi	r25, 0x00	; 0
 17e:	0e 94 47 00 	call	0x8e
	CS0;
 182:	df 98       	cbi	0x1b, 7	; 27
	delay(1);
 184:	81 e0       	ldi	r24, 0x01	; 1
 186:	90 e0       	ldi	r25, 0x00	; 0
 188:	0e 94 47 00 	call	0x8e
	lcd_send_bit(1);
 18c:	81 e0       	ldi	r24, 0x01	; 1
 18e:	0e 94 a2 00 	call	0x144
	lcd_send_bit(0);
 192:	80 e0       	ldi	r24, 0x00	; 0
 194:	0e 94 a2 00 	call	0x144
	lcd_send_bit(1);
 198:	81 e0       	ldi	r24, 0x01	; 1
 19a:	0e 94 a2 00 	call	0x144
	
	for(i=0;i<6;i++)
 19e:	10 e0       	ldi	r17, 0x00	; 0
 1a0:	c5 e0       	ldi	r28, 0x05	; 5
 1a2:	d0 e0       	ldi	r29, 0x00	; 0
	{
		if(addr & _BV(5-i))
 1a4:	80 2f       	mov	r24, r16
 1a6:	99 27       	eor	r25, r25
 1a8:	0c 2e       	mov	r0, r28
 1aa:	02 c0       	rjmp	.+4      	; 0x1b0
 1ac:	95 95       	asr	r25
 1ae:	87 95       	ror	r24
 1b0:	0a 94       	dec	r0
 1b2:	e2 f7       	brpl	.-8      	; 0x1ac
 1b4:	80 ff       	sbrs	r24, 0
 1b6:	02 c0       	rjmp	.+4      	; 0x1bc
			lcd_send_bit(1);
 1b8:	81 e0       	ldi	r24, 0x01	; 1
 1ba:	01 c0       	rjmp	.+2      	; 0x1be
		else
			lcd_send_bit(0);			
 1bc:	80 e0       	ldi	r24, 0x00	; 0
 1be:	0e 94 a2 00 	call	0x144
 1c2:	1f 5f       	subi	r17, 0xFF	; 255
 1c4:	21 97       	sbiw	r28, 0x01	; 1
 1c6:	16 30       	cpi	r17, 0x06	; 6
 1c8:	68 f3       	brcs	.-38     	; 0x1a4
	}
	for(i=0;i<4;i++)
 1ca:	10 e0       	ldi	r17, 0x00	; 0
 1cc:	c0 e0       	ldi	r28, 0x00	; 0
 1ce:	d0 e0       	ldi	r29, 0x00	; 0
	{
		if(data & _BV(i))
 1d0:	8f 2d       	mov	r24, r15
 1d2:	99 27       	eor	r25, r25
 1d4:	0c 2e       	mov	r0, r28
 1d6:	02 c0       	rjmp	.+4      	; 0x1dc
 1d8:	95 95       	asr	r25
 1da:	87 95       	ror	r24
 1dc:	0a 94       	dec	r0
 1de:	e2 f7       	brpl	.-8      	; 0x1d8
 1e0:	80 ff       	sbrs	r24, 0
 1e2:	02 c0       	rjmp	.+4      	; 0x1e8
			lcd_send_bit(1);
 1e4:	81 e0       	ldi	r24, 0x01	; 1
 1e6:	01 c0       	rjmp	.+2      	; 0x1ea
		else
			lcd_send_bit(0);
 1e8:	80 e0       	ldi	r24, 0x00	; 0
 1ea:	0e 94 a2 00 	call	0x144
 1ee:	1f 5f       	subi	r17, 0xFF	; 255
 1f0:	21 96       	adiw	r28, 0x01	; 1
 1f2:	14 30       	cpi	r17, 0x04	; 4
 1f4:	68 f3       	brcs	.-38     	; 0x1d0
	}
	CS1;
 1f6:	df 9a       	sbi	0x1b, 7	; 27
	delay(1);
 1f8:	81 e0       	ldi	r24, 0x01	; 1
 1fa:	90 e0       	ldi	r25, 0x00	; 0
 1fc:	0e 94 47 00 	call	0x8e
}
 200:	df 91       	pop	r29
 202:	cf 91       	pop	r28
 204:	1f 91       	pop	r17
 206:	0f 91       	pop	r16
 208:	ff 90       	pop	r15
 20a:	08 95       	ret

0000020c <lcd_send_cmd>:
void lcd_send_cmd(uint8_t cmd)
{
 20c:	0f 93       	push	r16
 20e:	1f 93       	push	r17
 210:	cf 93       	push	r28
 212:	df 93       	push	r29
 214:	08 2f       	mov	r16, r24
	uint8_t i;
	CS1;
 216:	df 9a       	sbi	0x1b, 7	; 27
	delay(1);
 218:	81 e0       	ldi	r24, 0x01	; 1
 21a:	90 e0       	ldi	r25, 0x00	; 0
 21c:	0e 94 47 00 	call	0x8e
	CS0;
 220:	df 98       	cbi	0x1b, 7	; 27
	delay(1);
 222:	81 e0       	ldi	r24, 0x01	; 1
 224:	90 e0       	ldi	r25, 0x00	; 0
 226:	0e 94 47 00 	call	0x8e
	lcd_send_bit(1);
 22a:	81 e0       	ldi	r24, 0x01	; 1
 22c:	0e 94 a2 00 	call	0x144
	lcd_send_bit(0);
 230:	80 e0       	ldi	r24, 0x00	; 0
 232:	0e 94 a2 00 	call	0x144
	lcd_send_bit(0);
 236:	80 e0       	ldi	r24, 0x00	; 0
 238:	0e 94 a2 00 	call	0x144
	for(i=0;i<8;i++)
 23c:	10 e0       	ldi	r17, 0x00	; 0
 23e:	c7 e0       	ldi	r28, 0x07	; 7
 240:	d0 e0       	ldi	r29, 0x00	; 0
	{
		if(cmd & _BV(7-i))
 242:	80 2f       	mov	r24, r16
 244:	99 27       	eor	r25, r25
 246:	0c 2e       	mov	r0, r28
 248:	02 c0       	rjmp	.+4      	; 0x24e
 24a:	95 95       	asr	r25
 24c:	87 95       	ror	r24
 24e:	0a 94       	dec	r0
 250:	e2 f7       	brpl	.-8      	; 0x24a
 252:	80 ff       	sbrs	r24, 0
 254:	02 c0       	rjmp	.+4      	; 0x25a
			lcd_send_bit(1);
 256:	81 e0       	ldi	r24, 0x01	; 1
 258:	01 c0       	rjmp	.+2      	; 0x25c
		else
			lcd_send_bit(0);		
 25a:	80 e0       	ldi	r24, 0x00	; 0
 25c:	0e 94 a2 00 	call	0x144
 260:	1f 5f       	subi	r17, 0xFF	; 255
 262:	21 97       	sbiw	r28, 0x01	; 1
 264:	18 30       	cpi	r17, 0x08	; 8
 266:	68 f3       	brcs	.-38     	; 0x242
	}
	lcd_send_bit(0);
 268:	80 e0       	ldi	r24, 0x00	; 0
 26a:	0e 94 a2 00 	call	0x144
	CS1;
 26e:	df 9a       	sbi	0x1b, 7	; 27
	delay(1);
 270:	81 e0       	ldi	r24, 0x01	; 1
 272:	90 e0       	ldi	r25, 0x00	; 0
 274:	0e 94 47 00 	call	0x8e
}
 278:	df 91       	pop	r29
 27a:	cf 91       	pop	r28
 27c:	1f 91       	pop	r17
 27e:	0f 91       	pop	r16
 280:	08 95       	ret

00000282 <test_lcd>:
void test_lcd(void)
{
 282:	0f 93       	push	r16
 284:	1f 93       	push	r17
 286:	cf 93       	push	r28
 288:	df 93       	push	r29
	uint8_t i,j;
	lcd_send_cmd(LCD_CMD_INITIAL);
 28a:	89 e2       	ldi	r24, 0x29	; 41
 28c:	0e 94 06 01 	call	0x20c
	lcd_send_cmd(LCD_CMD_SEL_RC);
 290:	88 e1       	ldi	r24, 0x18	; 24
 292:	0e 94 06 01 	call	0x20c
	lcd_send_cmd(LCD_CMD_OP_RC);
 296:	81 e0       	ldi	r24, 0x01	; 1
 298:	0e 94 06 01 	call	0x20c
	lcd_send_cmd(LCD_CMD_OP_LCD);
 29c:	83 e0       	ldi	r24, 0x03	; 3
 29e:	0e 94 06 01 	call	0x20c
	beep();	
 2a2:	0e 94 57 00 	call	0xae
	delay(1000);
 2a6:	88 ee       	ldi	r24, 0xE8	; 232
 2a8:	93 e0       	ldi	r25, 0x03	; 3
 2aa:	0e 94 47 00 	call	0x8e
	/*display S1---S4*/
	for(i=0;i<0x20;i++)
 2ae:	00 e0       	ldi	r16, 0x00	; 0
	{
		for(j=0;j<4;j++)
 2b0:	10 e0       	ldi	r17, 0x00	; 0
 2b2:	c0 e0       	ldi	r28, 0x00	; 0
 2b4:	d0 e0       	ldi	r29, 0x00	; 0
		{
			lcd_send_data(i,_BV(j));
 2b6:	81 e0       	ldi	r24, 0x01	; 1
 2b8:	90 e0       	ldi	r25, 0x00	; 0
 2ba:	0c 2e       	mov	r0, r28
 2bc:	02 c0       	rjmp	.+4      	; 0x2c2
 2be:	88 0f       	add	r24, r24
 2c0:	99 1f       	adc	r25, r25
 2c2:	0a 94       	dec	r0
 2c4:	e2 f7       	brpl	.-8      	; 0x2be
 2c6:	68 2f       	mov	r22, r24
 2c8:	80 2f       	mov	r24, r16
 2ca:	0e 94 b5 00 	call	0x16a
			beep();
 2ce:	0e 94 57 00 	call	0xae
			delay(1000);
 2d2:	88 ee       	ldi	r24, 0xE8	; 232
 2d4:	93 e0       	ldi	r25, 0x03	; 3
 2d6:	0e 94 47 00 	call	0x8e
 2da:	1f 5f       	subi	r17, 0xFF	; 255
 2dc:	21 96       	adiw	r28, 0x01	; 1
 2de:	14 30       	cpi	r17, 0x04	; 4
 2e0:	50 f3       	brcs	.-44     	; 0x2b6
 2e2:	0f 5f       	subi	r16, 0xFF	; 255
 2e4:	00 32       	cpi	r16, 0x20	; 32
 2e6:	20 f3       	brcs	.-56     	; 0x2b0
		}
	}
	beep();
 2e8:	0e 94 57 00 	call	0xae
	delay(200);
 2ec:	88 ec       	ldi	r24, 0xC8	; 200
 2ee:	90 e0       	ldi	r25, 0x00	; 0
 2f0:	0e 94 47 00 	call	0x8e
	beep();
 2f4:	0e 94 57 00 	call	0xae
	lcd_send_cmd(LCD_CMD_CL_LCD);
 2f8:	82 e0       	ldi	r24, 0x02	; 2
 2fa:	0e 94 06 01 	call	0x20c
}
 2fe:	df 91       	pop	r29
 300:	cf 91       	pop	r28
 302:	1f 91       	pop	r17
 304:	0f 91       	pop	r16
 306:	08 95       	ret

00000308 <main>:

int main(void)
{
 308:	cf e5       	ldi	r28, 0x5F	; 95
 30a:	d4 e0       	ldi	r29, 0x04	; 4
 30c:	de bf       	out	0x3e, r29	; 62
 30e:	cd bf       	out	0x3d, r28	; 61
/*PC7 output to speak;PC6 to TP.
  PC5~2 correspond to JTAG.only PC4 correspond to JTAG TDO(test data out),should be output MCU.
  PC1~0 correspond to color LED,should be output from MCU.*/
	DDRA=0xFF;
 310:	8f ef       	ldi	r24, 0xFF	; 255
 312:	8a bb       	out	0x1a, r24	; 26
	PORTA=0xFF;
 314:	8b bb       	out	0x1b, r24	; 27
	DDRC=0xD3;
 316:	83 ed       	ldi	r24, 0xD3	; 211
 318:	84 bb       	out	0x14, r24	; 20
	PORTC=0x2C;
 31a:	8c e2       	ldi	r24, 0x2C	; 44
 31c:	85 bb       	out	0x15, r24	; 21
	
	delay(3000);
 31e:	88 eb       	ldi	r24, 0xB8	; 184
 320:	9b e0       	ldi	r25, 0x0B	; 11
 322:	0e 94 47 00 	call	0x8e
	while(1)
	{
		test_lcd();		
 326:	0e 94 41 01 	call	0x282
 32a:	fd cf       	rjmp	.-6      	; 0x326

⌨️ 快捷键说明

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