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

📄 lcd1602.lss

📁 lcd1602液晶的avr测试实例程序
💻 LSS
📖 第 1 页 / 共 3 页
字号:
 1a8:	85 b3       	in	r24, 0x15	; 21
 1aa:	81 2b       	or	r24, r17
 1ac:	85 bb       	out	0x15, r24	; 21
 1ae:	c2 98       	cbi	0x18, 2	; 24
 1b0:	81 e0       	ldi	r24, 0x01	; 1
 1b2:	80 df       	rcall	.-256    	; 0xb4
 1b4:	80 e0       	ldi	r24, 0x00	; 0
 1b6:	85 df       	rcall	.-246    	; 0xc2
 1b8:	1f 91       	pop	r17
 1ba:	08 95       	ret

000001bc <Lcd_SetXy>:
}
/********************************************************
*  函数说明:设置显示坐标函数                           *
********************************************************/
void Lcd_SetXy(char x,char y)
{
 1bc:	98 2f       	mov	r25, r24
	char ucAddress;
	
	if(y == 0)
 1be:	66 23       	and	r22, r22
 1c0:	19 f4       	brne	.+6      	; 0x1c8
		ucAddress = 0x80 + x;
 1c2:	89 2f       	mov	r24, r25
 1c4:	80 58       	subi	r24, 0x80	; 128
 1c6:	02 c0       	rjmp	.+4      	; 0x1cc
	else
		ucAddress = 0xc0 + x;		
 1c8:	89 2f       	mov	r24, r25
 1ca:	80 54       	subi	r24, 0x40	; 64
	
	Lcd_SetCmd(ucAddress);
 1cc:	81 df       	rcall	.-254    	; 0xd0
 1ce:	08 95       	ret

000001d0 <Lcd_PutChar>:
}

/********************************************************
*  函数说明:显示一个字符                     *
********************************************************/
void Lcd_PutChar(char ucChar)
{
	Lcd_SetData(ucChar);
 1d0:	d1 df       	rcall	.-94     	; 0x174
 1d2:	08 95       	ret

000001d4 <Lcd_PutStr>:
}
/********************************************************
*  函数说明:显示一串字符                    *
********************************************************/
void Lcd_PutStr(char* ucStr)
{	
 1d4:	cf 93       	push	r28
 1d6:	df 93       	push	r29
 1d8:	ec 01       	movw	r28, r24
	while(*ucStr)
	{
	    Lcd_SetData(*ucStr);				
		ucStr++;
 1da:	88 81       	ld	r24, Y
 1dc:	88 23       	and	r24, r24
 1de:	29 f0       	breq	.+10     	; 0x1ea
 1e0:	89 91       	ld	r24, Y+
 1e2:	c8 df       	rcall	.-112    	; 0x174
 1e4:	88 81       	ld	r24, Y
 1e6:	88 23       	and	r24, r24
 1e8:	d9 f7       	brne	.-10     	; 0x1e0
 1ea:	df 91       	pop	r29
 1ec:	cf 91       	pop	r28
 1ee:	08 95       	ret

000001f0 <Lcd_TestFunc>:
	}	
}

//测试函数
void Lcd_TestFunc(void)
{
 1f0:	08 95       	ret

000001f2 <Uart_Init>:
	14.4K	86		68		34		16		8		3	
*/
//初始化
void Uart_Init(unsigned int ucBaudRate) //9600 :25/4m 38/6m
{
 1f2:	9c 01       	movw	r18, r24
 // 晶振频率 : 4.0MHz
    // 通信参数: 8 Data, 1 Stop, No Parity 
    // 波特率:
    // UBRRL= 0x0C    19200;
    // UBRRL= 0x19    9600;
    // UBRRL= 0x33    4800;
    // UBRRL= 0x67    2400	
    UCSRB |= (1<<RXEN)|(1<<TXEN)|(1<<RXCIE);  //允许发送和接收,接收中断使能
 1f4:	8a b1       	in	r24, 0x0a	; 10
 1f6:	88 69       	ori	r24, 0x98	; 152
 1f8:	8a b9       	out	0x0a, r24	; 10
    UCSRC |= (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //8位数据位+1位停止位
 1fa:	80 b5       	in	r24, 0x20	; 32
 1fc:	86 68       	ori	r24, 0x86	; 134
 1fe:	80 bd       	out	0x20, r24	; 32
    UBRRH = (unsigned char)(ucBaudRate >> 8); 
 200:	83 2f       	mov	r24, r19
 202:	99 27       	eor	r25, r25
 204:	80 bd       	out	0x20, r24	; 32
    UBRRL = (unsigned char)(ucBaudRate & 0x7f);		
 206:	82 2f       	mov	r24, r18
 208:	8f 77       	andi	r24, 0x7F	; 127
 20a:	89 b9       	out	0x09, r24	; 9
	
	fdevopen(Uart_PutChar,Uart_GetChar,0);
 20c:	40 e0       	ldi	r20, 0x00	; 0
 20e:	50 e0       	ldi	r21, 0x00	; 0
 210:	6b e1       	ldi	r22, 0x1B	; 27
 212:	71 e0       	ldi	r23, 0x01	; 1
 214:	8e e0       	ldi	r24, 0x0E	; 14
 216:	91 e0       	ldi	r25, 0x01	; 1
 218:	34 d0       	rcall	.+104    	; 0x282
 21a:	08 95       	ret

0000021c <Uart_PutChar>:
}
//输出一个字符
int Uart_PutChar(char c)
{
 21c:	cf 93       	push	r28
 21e:	c8 2f       	mov	r28, r24
	if(c=='\n')
 220:	8a 30       	cpi	r24, 0x0A	; 10
 222:	11 f4       	brne	.+4      	; 0x228
		Uart_PutChar('\r');
 224:	8d e0       	ldi	r24, 0x0D	; 13
 226:	fa df       	rcall	.-12     	; 0x21c
	loop_until_bit_is_set(UCSRA,UDRE);
 228:	5d 9b       	sbis	0x0b, 5	; 11
 22a:	fe cf       	rjmp	.-4      	; 0x228
	UDR = c;	
 22c:	cc b9       	out	0x0c, r28	; 12
	return 0;
}
 22e:	80 e0       	ldi	r24, 0x00	; 0
 230:	90 e0       	ldi	r25, 0x00	; 0
 232:	cf 91       	pop	r28
 234:	08 95       	ret

00000236 <Uart_GetChar>:
//输入一个字符
int  Uart_GetChar(void)
{
	loop_until_bit_is_set(UCSRA,RXC);
 236:	5f 9b       	sbis	0x0b, 7	; 11
 238:	fe cf       	rjmp	.-4      	; 0x236
	return UDR;
 23a:	8c b1       	in	r24, 0x0c	; 12
}
 23c:	99 27       	eor	r25, r25
 23e:	08 95       	ret

00000240 <Uart_PutStr>:
//输出一个字符串
void Uart_PutStr(unsigned char* szStr)
{
 240:	cf 93       	push	r28
 242:	df 93       	push	r29
 244:	ec 01       	movw	r28, r24
	while(*szStr != '\0')
	{
		Uart_PutChar(*szStr);
		szStr++;
 246:	88 81       	ld	r24, Y
 248:	88 23       	and	r24, r24
 24a:	29 f0       	breq	.+10     	; 0x256
 24c:	89 91       	ld	r24, Y+
 24e:	e6 df       	rcall	.-52     	; 0x21c
 250:	88 81       	ld	r24, Y
 252:	88 23       	and	r24, r24
 254:	d9 f7       	brne	.-10     	; 0x24c
 256:	df 91       	pop	r29
 258:	cf 91       	pop	r28
 25a:	08 95       	ret

0000025c <DelayUs>:
void DelayUs(unsigned int Time)
{
     unsigned int a = 0;
	 
     for (a = 0;a<Time;a++)
 25c:	00 97       	sbiw	r24, 0x00	; 0
 25e:	19 f0       	breq	.+6      	; 0x266
	 {
	     asm("nop");
 260:	00 00       	nop
 262:	01 97       	sbiw	r24, 0x01	; 1
 264:	fb cf       	rjmp	.-10     	; 0x25c
 266:	08 95       	ret

00000268 <DelayMs>:
	 }
}

/********************************************************
*  函数说明:毫秒延时函数(8M)                           *
*  输入:    需要延时的时间长度                         *
********************************************************/
void DelayMs(unsigned int Time)
{
 268:	cf 93       	push	r28
 26a:	df 93       	push	r29
    unsigned int Temp = 0;
	for (Temp = 0;Temp < Time;Temp++)
 26c:	00 97       	sbiw	r24, 0x00	; 0
 26e:	31 f0       	breq	.+12     	; 0x27c
 270:	ec 01       	movw	r28, r24
	{
	    DelayUs(1710);
 272:	8e ea       	ldi	r24, 0xAE	; 174
 274:	96 e0       	ldi	r25, 0x06	; 6
 276:	f2 df       	rcall	.-28     	; 0x25c
 278:	21 97       	sbiw	r28, 0x01	; 1
 27a:	d9 f7       	brne	.-10     	; 0x272
 27c:	df 91       	pop	r29
 27e:	cf 91       	pop	r28
 280:	08 95       	ret

00000282 <fdevopen>:
 282:	0f 93       	push	r16
 284:	1f 93       	push	r17
 286:	cf 93       	push	r28
 288:	df 93       	push	r29
 28a:	8c 01       	movw	r16, r24
 28c:	eb 01       	movw	r28, r22
 28e:	00 97       	sbiw	r24, 0x00	; 0
 290:	11 f4       	brne	.+4      	; 0x296
 292:	67 2b       	or	r22, r23
 294:	a9 f1       	breq	.+106    	; 0x300
 296:	6c e0       	ldi	r22, 0x0C	; 12
 298:	70 e0       	ldi	r23, 0x00	; 0
 29a:	81 e0       	ldi	r24, 0x01	; 1
 29c:	90 e0       	ldi	r25, 0x00	; 0
 29e:	a6 d0       	rcall	.+332    	; 0x3ec
 2a0:	fc 01       	movw	r30, r24
 2a2:	89 2b       	or	r24, r25
 2a4:	61 f1       	breq	.+88     	; 0x2fe
 2a6:	20 97       	sbiw	r28, 0x00	; 0
 2a8:	71 f0       	breq	.+28     	; 0x2c6
 2aa:	c2 87       	std	Z+10, r28	; 0x0a
 2ac:	d3 87       	std	Z+11, r29	; 0x0b
 2ae:	81 e0       	ldi	r24, 0x01	; 1
 2b0:	83 83       	std	Z+3, r24	; 0x03
 2b2:	80 91 72 00 	lds	r24, 0x0072
 2b6:	90 91 73 00 	lds	r25, 0x0073
 2ba:	89 2b       	or	r24, r25
 2bc:	21 f4       	brne	.+8      	; 0x2c6
 2be:	f0 93 73 00 	sts	0x0073, r31
 2c2:	e0 93 72 00 	sts	0x0072, r30
 2c6:	01 15       	cp	r16, r1
 2c8:	11 05       	cpc	r17, r1
 2ca:	c9 f0       	breq	.+50     	; 0x2fe
 2cc:	00 87       	std	Z+8, r16	; 0x08
 2ce:	11 87       	std	Z+9, r17	; 0x09
 2d0:	83 81       	ldd	r24, Z+3	; 0x03
 2d2:	82 60       	ori	r24, 0x02	; 2
 2d4:	83 83       	std	Z+3, r24	; 0x03
 2d6:	80 91 74 00 	lds	r24, 0x0074
 2da:	90 91 75 00 	lds	r25, 0x0075
 2de:	89 2b       	or	r24, r25
 2e0:	71 f4       	brne	.+28     	; 0x2fe
 2e2:	f0 93 75 00 	sts	0x0075, r31
 2e6:	e0 93 74 00 	sts	0x0074, r30
 2ea:	80 91 76 00 	lds	r24, 0x0076
 2ee:	90 91 77 00 	lds	r25, 0x0077
 2f2:	89 2b       	or	r24, r25
 2f4:	21 f4       	brne	.+8      	; 0x2fe
 2f6:	f0 93 77 00 	sts	0x0077, r31
 2fa:	e0 93 76 00 	sts	0x0076, r30
 2fe:	cf 01       	movw	r24, r30
 300:	df 91       	pop	r29
 302:	cf 91       	pop	r28
 304:	1f 91       	pop	r17
 306:	0f 91       	pop	r16
 308:	08 95       	ret

0000030a <fgetc>:
 30a:	cf 93       	push	r28
 30c:	df 93       	push	r29
 30e:	ec 01       	movw	r28, r24
 310:	4b 81       	ldd	r20, Y+3	; 0x03
 312:	84 2f       	mov	r24, r20
 314:	99 27       	eor	r25, r25
 316:	80 ff       	sbrs	r24, 0
 318:	1b c0       	rjmp	.+54     	; 0x350
 31a:	86 ff       	sbrs	r24, 6
 31c:	09 c0       	rjmp	.+18     	; 0x330
 31e:	4f 7b       	andi	r20, 0xBF	; 191
 320:	4b 83       	std	Y+3, r20	; 0x03
 322:	8e 81       	ldd	r24, Y+6	; 0x06
 324:	9f 81       	ldd	r25, Y+7	; 0x07
 326:	01 96       	adiw	r24, 0x01	; 1
 328:	8e 83       	std	Y+6, r24	; 0x06
 32a:	9f 83       	std	Y+7, r25	; 0x07
 32c:	8a 81       	ldd	r24, Y+2	; 0x02
 32e:	26 c0       	rjmp	.+76     	; 0x37c
 330:	82 ff       	sbrs	r24, 2
 332:	11 c0       	rjmp	.+34     	; 0x356
 334:	e8 81       	ld	r30, Y
 336:	f9 81       	ldd	r31, Y+1	; 0x01
 338:	81 91       	ld	r24, Z+
 33a:	28 2f       	mov	r18, r24
 33c:	33 27       	eor	r19, r19
 33e:	27 fd       	sbrc	r18, 7
 340:	30 95       	com	r19
 342:	e8 83       	st	Y, r30
 344:	f9 83       	std	Y+1, r31	; 0x01
 346:	21 15       	cp	r18, r1
 348:	31 05       	cpc	r19, r1
 34a:	91 f4       	brne	.+36     	; 0x370
 34c:	40 62       	ori	r20, 0x20	; 32
 34e:	4b 83       	std	Y+3, r20	; 0x03
 350:	8f ef       	ldi	r24, 0xFF	; 255
 352:	9f ef       	ldi	r25, 0xFF	; 255
 354:	14 c0       	rjmp	.+40     	; 0x37e
 356:	ea 85       	ldd	r30, Y+10	; 0x0a
 358:	fb 85       	ldd	r31, Y+11	; 0x0b
 35a:	09 95       	icall
 35c:	9c 01       	movw	r18, r24
 35e:	8f ef       	ldi	r24, 0xFF	; 255
 360:	2f 3f       	cpi	r18, 0xFF	; 255
 362:	38 07       	cpc	r19, r24
 364:	29 f4       	brne	.+10     	; 0x370

⌨️ 快捷键说明

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