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

📄 main.lss

📁 AVR做的打印机控制例子,基于AVR和CH375
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     568:	0e 94 dd 21 	call	0x43ba	; 0x43ba <__fixsfsi>
     56c:	dc 01       	movw	r26, r24
     56e:	cb 01       	movw	r24, r22
     570:	8a 8f       	std	Y+26, r24	; 0x1a
     572:	8a 8d       	ldd	r24, Y+26	; 0x1a
     574:	8d 8b       	std	Y+21, r24	; 0x15
     576:	8d 89       	ldd	r24, Y+21	; 0x15
     578:	8a 95       	dec	r24
     57a:	f1 f7       	brne	.-4      	; 0x578 <xWriteCH375Data+0x128>
     57c:	8d 8b       	std	Y+21, r24	; 0x15
	mDelay1uS( );
	mDelay1uS( );  // 至少延时1uS 
	*(volatile unsigned char *)CH375_DAT_PORT_ADDR = mData;  //通过并口直接读写CH375而非普通I/O模拟 
     57e:	e0 e2       	ldi	r30, 0x20	; 32
     580:	f0 e8       	ldi	r31, 0x80	; 128
     582:	89 a5       	ldd	r24, Y+41	; 0x29
     584:	80 83       	st	Z, r24
     586:	80 e0       	ldi	r24, 0x00	; 0
     588:	90 e0       	ldi	r25, 0x00	; 0
     58a:	a0 e8       	ldi	r26, 0x80	; 128
     58c:	bf e3       	ldi	r27, 0x3F	; 63
     58e:	8c 87       	std	Y+12, r24	; 0x0c
     590:	9d 87       	std	Y+13, r25	; 0x0d
     592:	ae 87       	std	Y+14, r26	; 0x0e
     594:	bf 87       	std	Y+15, r27	; 0x0f
void
_delay_us(double __us)
{
	uint8_t __ticks;
	double __tmp = ((F_CPU) / 3e6) * __us;
     596:	2a ef       	ldi	r18, 0xFA	; 250
     598:	3d ee       	ldi	r19, 0xED	; 237
     59a:	4b e6       	ldi	r20, 0x6B	; 107
     59c:	50 e4       	ldi	r21, 0x40	; 64
     59e:	6c 85       	ldd	r22, Y+12	; 0x0c
     5a0:	7d 85       	ldd	r23, Y+13	; 0x0d
     5a2:	8e 85       	ldd	r24, Y+14	; 0x0e
     5a4:	9f 85       	ldd	r25, Y+15	; 0x0f
     5a6:	0e 94 48 22 	call	0x4490	; 0x4490 <__mulsf3>
     5aa:	dc 01       	movw	r26, r24
     5ac:	cb 01       	movw	r24, r22
     5ae:	89 8b       	std	Y+17, r24	; 0x11
     5b0:	9a 8b       	std	Y+18, r25	; 0x12
     5b2:	ab 8b       	std	Y+19, r26	; 0x13
     5b4:	bc 8b       	std	Y+20, r27	; 0x14
	if (__tmp < 1.0)
     5b6:	20 e0       	ldi	r18, 0x00	; 0
     5b8:	30 e0       	ldi	r19, 0x00	; 0
     5ba:	40 e8       	ldi	r20, 0x80	; 128
     5bc:	5f e3       	ldi	r21, 0x3F	; 63
     5be:	69 89       	ldd	r22, Y+17	; 0x11
     5c0:	7a 89       	ldd	r23, Y+18	; 0x12
     5c2:	8b 89       	ldd	r24, Y+19	; 0x13
     5c4:	9c 89       	ldd	r25, Y+20	; 0x14
     5c6:	0e 94 f8 21 	call	0x43f0	; 0x43f0 <__eqsf2>
     5ca:	88 23       	and	r24, r24
     5cc:	0c f0       	brlt	.+2      	; 0x5d0 <xWriteCH375Data+0x180>
     5ce:	03 c0       	rjmp	.+6      	; 0x5d6 <xWriteCH375Data+0x186>
		__ticks = 1;
     5d0:	81 e0       	ldi	r24, 0x01	; 1
     5d2:	88 8b       	std	Y+16, r24	; 0x10
     5d4:	18 c0       	rjmp	.+48     	; 0x606 <xWriteCH375Data+0x1b6>
	else if (__tmp > 255)
     5d6:	20 e0       	ldi	r18, 0x00	; 0
     5d8:	30 e0       	ldi	r19, 0x00	; 0
     5da:	4f e7       	ldi	r20, 0x7F	; 127
     5dc:	53 e4       	ldi	r21, 0x43	; 67
     5de:	69 89       	ldd	r22, Y+17	; 0x11
     5e0:	7a 89       	ldd	r23, Y+18	; 0x12
     5e2:	8b 89       	ldd	r24, Y+19	; 0x13
     5e4:	9c 89       	ldd	r25, Y+20	; 0x14
     5e6:	0e 94 fb 21 	call	0x43f6	; 0x43f6 <__gesf2>
     5ea:	18 16       	cp	r1, r24
     5ec:	0c f0       	brlt	.+2      	; 0x5f0 <xWriteCH375Data+0x1a0>
     5ee:	02 c0       	rjmp	.+4      	; 0x5f4 <xWriteCH375Data+0x1a4>
		__ticks = 0;	/* i.e. 256 */
     5f0:	18 8a       	std	Y+16, r1	; 0x10
     5f2:	09 c0       	rjmp	.+18     	; 0x606 <xWriteCH375Data+0x1b6>
	else
		__ticks = (uint8_t)__tmp;
     5f4:	69 89       	ldd	r22, Y+17	; 0x11
     5f6:	7a 89       	ldd	r23, Y+18	; 0x12
     5f8:	8b 89       	ldd	r24, Y+19	; 0x13
     5fa:	9c 89       	ldd	r25, Y+20	; 0x14
     5fc:	0e 94 dd 21 	call	0x43ba	; 0x43ba <__fixsfsi>
     600:	dc 01       	movw	r26, r24
     602:	cb 01       	movw	r24, r22
     604:	88 8b       	std	Y+16, r24	; 0x10
     606:	88 89       	ldd	r24, Y+16	; 0x10
     608:	8b 87       	std	Y+11, r24	; 0x0b
     60a:	8b 85       	ldd	r24, Y+11	; 0x0b
     60c:	8a 95       	dec	r24
     60e:	f1 f7       	brne	.-4      	; 0x60c <xWriteCH375Data+0x1bc>
     610:	8b 87       	std	Y+11, r24	; 0x0b
     612:	80 e0       	ldi	r24, 0x00	; 0
     614:	90 e0       	ldi	r25, 0x00	; 0
     616:	a0 e8       	ldi	r26, 0x80	; 128
     618:	bf e3       	ldi	r27, 0x3F	; 63
     61a:	8a 83       	std	Y+2, r24	; 0x02
     61c:	9b 83       	std	Y+3, r25	; 0x03
     61e:	ac 83       	std	Y+4, r26	; 0x04
     620:	bd 83       	std	Y+5, r27	; 0x05
     622:	2a ef       	ldi	r18, 0xFA	; 250
     624:	3d ee       	ldi	r19, 0xED	; 237
     626:	4b e6       	ldi	r20, 0x6B	; 107
     628:	50 e4       	ldi	r21, 0x40	; 64
     62a:	6a 81       	ldd	r22, Y+2	; 0x02
     62c:	7b 81       	ldd	r23, Y+3	; 0x03
     62e:	8c 81       	ldd	r24, Y+4	; 0x04
     630:	9d 81       	ldd	r25, Y+5	; 0x05
     632:	0e 94 48 22 	call	0x4490	; 0x4490 <__mulsf3>
     636:	dc 01       	movw	r26, r24
     638:	cb 01       	movw	r24, r22
     63a:	8f 83       	std	Y+7, r24	; 0x07
     63c:	98 87       	std	Y+8, r25	; 0x08
     63e:	a9 87       	std	Y+9, r26	; 0x09
     640:	ba 87       	std	Y+10, r27	; 0x0a
     642:	20 e0       	ldi	r18, 0x00	; 0
     644:	30 e0       	ldi	r19, 0x00	; 0
     646:	40 e8       	ldi	r20, 0x80	; 128
     648:	5f e3       	ldi	r21, 0x3F	; 63
     64a:	6f 81       	ldd	r22, Y+7	; 0x07
     64c:	78 85       	ldd	r23, Y+8	; 0x08
     64e:	89 85       	ldd	r24, Y+9	; 0x09
     650:	9a 85       	ldd	r25, Y+10	; 0x0a
     652:	0e 94 f8 21 	call	0x43f0	; 0x43f0 <__eqsf2>
     656:	88 23       	and	r24, r24
     658:	0c f0       	brlt	.+2      	; 0x65c <xWriteCH375Data+0x20c>
     65a:	03 c0       	rjmp	.+6      	; 0x662 <xWriteCH375Data+0x212>
     65c:	81 e0       	ldi	r24, 0x01	; 1
     65e:	8e 83       	std	Y+6, r24	; 0x06
     660:	18 c0       	rjmp	.+48     	; 0x692 <xWriteCH375Data+0x242>
     662:	20 e0       	ldi	r18, 0x00	; 0
     664:	30 e0       	ldi	r19, 0x00	; 0
     666:	4f e7       	ldi	r20, 0x7F	; 127
     668:	53 e4       	ldi	r21, 0x43	; 67
     66a:	6f 81       	ldd	r22, Y+7	; 0x07
     66c:	78 85       	ldd	r23, Y+8	; 0x08
     66e:	89 85       	ldd	r24, Y+9	; 0x09
     670:	9a 85       	ldd	r25, Y+10	; 0x0a
     672:	0e 94 fb 21 	call	0x43f6	; 0x43f6 <__gesf2>
     676:	18 16       	cp	r1, r24
     678:	0c f0       	brlt	.+2      	; 0x67c <xWriteCH375Data+0x22c>
     67a:	02 c0       	rjmp	.+4      	; 0x680 <xWriteCH375Data+0x230>
     67c:	1e 82       	std	Y+6, r1	; 0x06
     67e:	09 c0       	rjmp	.+18     	; 0x692 <xWriteCH375Data+0x242>
     680:	6f 81       	ldd	r22, Y+7	; 0x07
     682:	78 85       	ldd	r23, Y+8	; 0x08
     684:	89 85       	ldd	r24, Y+9	; 0x09
     686:	9a 85       	ldd	r25, Y+10	; 0x0a
     688:	0e 94 dd 21 	call	0x43ba	; 0x43ba <__fixsfsi>
     68c:	dc 01       	movw	r26, r24
     68e:	cb 01       	movw	r24, r22
     690:	8e 83       	std	Y+6, r24	; 0x06
     692:	8e 81       	ldd	r24, Y+6	; 0x06
     694:	89 83       	std	Y+1, r24	; 0x01
     696:	89 81       	ldd	r24, Y+1	; 0x01
     698:	8a 95       	dec	r24
     69a:	f1 f7       	brne	.-4      	; 0x698 <xWriteCH375Data+0x248>
     69c:	89 83       	std	Y+1, r24	; 0x01
     69e:	a9 96       	adiw	r28, 0x29	; 41
     6a0:	0f b6       	in	r0, 0x3f	; 63
     6a2:	f8 94       	cli
     6a4:	de bf       	out	0x3e, r29	; 62
     6a6:	0f be       	out	0x3f, r0	; 63
     6a8:	cd bf       	out	0x3d, r28	; 61
     6aa:	df 91       	pop	r29
     6ac:	cf 91       	pop	r28
     6ae:	08 95       	ret

000006b0 <xReadCH375Data>:
/*
	PORTA = mData;  // 向CH375的并口输出数据 
	DDRA = 0xFF;  // 并口D0-D7输出 
	PORTB &= 0xF1;  // 输出有效写控制信号, 写CH375芯片的数据端口, A0=0; CS=0; WR=0; RD=1; 
	DDRA = 0xFF;  // 该操作无意义,仅作延时,CH375要求读写脉冲宽度大于100nS 
	PORTB |= 0x07;  // 输出无效的控制信号, 完成操作CH375芯片, A0=0; CS=1; WR=1; RD=1; 
	DDRA = 0x00;  // 禁止数据输出
*/
	mDelay1uS( );
	mDelay1uS( );  // 至少延时1.2uS 
}

UINT8 xReadCH375Data( void )			/* 外部定义的被CH375程序库调用的子程序,从CH375读数据 */
{
     6b0:	cf 93       	push	r28
     6b2:	df 93       	push	r29
     6b4:	cd b7       	in	r28, 0x3d	; 61
     6b6:	de b7       	in	r29, 0x3e	; 62
     6b8:	6f 97       	sbiw	r28, 0x1f	; 31
     6ba:	0f b6       	in	r0, 0x3f	; 63
     6bc:	f8 94       	cli
     6be:	de bf       	out	0x3e, r29	; 62
     6c0:	0f be       	out	0x3f, r0	; 63
     6c2:	cd bf       	out	0x3d, r28	; 61
	UINT8	mData;
	mData = *(volatile unsigned char *)CH375_DAT_PORT_ADDR;  //通过并口直接读写CH375而非普通I/O模拟 
     6c4:	e0 e2       	ldi	r30, 0x20	; 32
     6c6:	f0 e8       	ldi	r31, 0x80	; 128
     6c8:	80 81       	ld	r24, Z
     6ca:	8f 8f       	std	Y+31, r24	; 0x1f
     6cc:	80 e0       	ldi	r24, 0x00	; 0
     6ce:	90 e0       	ldi	r25, 0x00	; 0
     6d0:	a0 e8       	ldi	r26, 0x80	; 128
     6d2:	bf e3       	ldi	r27, 0x3F	; 63
     6d4:	8e 8b       	std	Y+22, r24	; 0x16
     6d6:	9f 8b       	std	Y+23, r25	; 0x17
     6d8:	a8 8f       	std	Y+24, r26	; 0x18
     6da:	b9 8f       	std	Y+25, r27	; 0x19
void
_delay_us(double __us)
{
	uint8_t __ticks;
	double __tmp = ((F_CPU) / 3e6) * __us;
     6dc:	2a ef       	ldi	r18, 0xFA	; 250
     6de:	3d ee       	ldi	r19, 0xED	; 237
     6e0:	4b e6       	ldi	r20, 0x6B	; 107
     6e2:	50 e4       	ldi	r21, 0x40	; 64
     6e4:	6e 89       	ldd	r22, Y+22	; 0x16
     6e6:	7f 89       	ldd	r23, Y+23	; 0x17
     6e8:	88 8d       	ldd	r24, Y+24	; 0x18
     6ea:	99 8d       	ldd	r25, Y+25	; 0x19
     6ec:	0e 94 48 22 	call	0x4490	; 0x4490 <__mulsf3>
     6f0:	dc 01       	movw	r26, r24
     6f2:	cb 01       	movw	r24, r22
     6f4:	8b 8f       	std	Y+27, r24	; 0x1b
     6f6:	9c 8f       	std	Y+28, r25	; 0x1c
     6f8:	ad 8f       	std	Y+29, r26	; 0x1d
     6fa:	be 8f       	std	Y+30, r27	; 0x1e
	if (__tmp < 1.0)
     6fc:	20 e0       	ldi	r18, 0x00	; 0
     6fe:	30 e0       	ldi	r19, 0x00	; 0
     700:	40 e8       	ldi	r20, 0x80	; 128
     702:	5f e3       	ldi	r21, 0x3F	; 63
     704:	6b 8d       	ldd	r22, Y+27	; 0x1b
     706:	7c 8d       	ldd	r23, Y+28	; 0x1c
     708:	8d 8d       	ldd	r24, Y+29	; 0x1d
     70a:	9e 8d       	ldd	r25, Y+30	; 0x1e
     70c:	0e 94 f8 21 	call	0x43f0	; 0x43f0 <__eqsf2>
     710:	88 23       	and	r24, r24
     712:	0c f0       	brlt	.+2      	; 0x716 <xReadCH375Data+0x66>
     714:	03 c0       	rjmp	.+6      	; 0x71c <xReadCH375Data+0x6c>
		__ticks = 1;
     716:	81 e0       	ldi	r24, 0x01	; 1
     718:	8a 8f       	std	Y+26, r24	; 0x1a
     71a:	18 c0       	rjmp	.+48     	; 0x74c <xReadCH375Data+0x9c>
	else if (__tmp > 255)
     71c:	20 e0       	ldi	r18, 0x00	; 0
     71e:	30 e0       	ldi	r19, 0x00	; 0
     720:	4f e7       	ldi	r20, 0x7F	; 127
     722:	53 e4       	ldi	r21, 0x43	; 67
     724:	6b 8d       	ldd	r22, Y+27	; 0x1b
     726:	7c 8d       	ldd	r23, Y+28	; 0x1c
     728:	8d 8d       	ldd	r24, Y+29	; 0x1d
     72a:	9e 8d       	ldd	r25, Y+30	; 0x1e
     72c:	0e 94 fb 21 	call	0x43f6	; 0x43f6 <__gesf2>
     730:	18 16       	cp	r1, r24
     732:	0c f0       	brlt	.+2      	; 0x736 <xReadCH375Data+0x86>
     734:	02 c0       	rjmp	.+4      	; 0x73a <xReadCH375Data+0x8a>
		__ticks = 0;	/* i.e. 256 */
     736:	1a 8e       	std	Y+26, r1	; 0x1a
     738:	09 c0       	rjmp	.+18     	; 0x74c <xReadCH375Data+0x9c>
	else
		__ticks = (uint8_t)__tmp;
     73a:	6b 8d       	ldd	r22, Y+27	; 0x1b
     73c:	7c 8d       	ldd	r23, Y+28	; 0x1c
     73e:	8d 8d       	ldd	r24, Y+29	; 0x1d
     740:	9e 8d       	ldd	r25, Y+30	; 0x1e
     742:	0e 94 dd 21 	call	0x43ba	; 0x43ba <__fixsfsi>
     746:	dc 01       	movw	r26, r24
     748:	cb 01       	movw	r24, r22
     74a:	8a 8f       	std	Y+26, r24	; 0x1a
     74c:	8a 8d       	ldd	r24, Y+26	; 0x1a
     74e:	8d 8b       	std	Y+21, r24	; 0x15
     750:	8d 89       	ldd	r24, Y+21	; 0x15
     752:	8a 95       	dec	r24
     754:	f1 f7       	brne	.-4      	; 0x752 <xReadCH375Data+0xa2>
     756:	8d 8b       	std	Y+21, r24	; 0x15
     758:	80 e0       	ldi	r24, 0x00	; 0
     75a:	90 e0       	ldi	r25, 0x00	; 0
     75c:	a0 e8       	ldi	r26, 0x80	; 128
     75e:	bf e3       	ldi	r27, 0x3F	; 63
     760:	8c 87       	std	Y+12, r24	; 0x0c
     762:	9d 87       	std	Y+13, r25	; 0x0d
     764:	ae 87       	std	Y+14, r26	; 0x0e
     766:	bf 87       	std	Y+15, r27	; 0x0f
     768:	2a ef       	ldi	r18, 0xFA	; 250
     76a:	3d ee       	ldi	r19, 0xED	; 237
     76c:	4b e6       	ldi	r20, 0x6B	; 107
     76e:	50 e4       	ldi	r21, 0x40	; 64
     770:	6c 85       	ldd	r22, Y+12	; 0x0c
     772:	7d 85       	ldd	r23, Y+13	; 0x0d
     774:	8e 85       	ldd	r24, Y+14	; 0x0e
     776:	9f 85       	ldd	r25, Y+15	; 0x0f
     778:	0e 94 48 22 	call	0x4490	; 0x4490 <__mulsf3>
     77c:	dc 01       	movw	r26, r24

⌨️ 快捷键说明

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