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

📄 hyj.lss

📁 240*320 TFT屏用M16读取SD卡内BMP格式图片.和汉字显示程序(字库也是存在SD卡里
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     4d6:	10 e0       	ldi	r17, 0x00	; 0
     4d8:	2f ef       	ldi	r18, 0xFF	; 255
     4da:	3f ef       	ldi	r19, 0xFF	; 255
     4dc:	45 e5       	ldi	r20, 0x55	; 85
     4de:	50 e0       	ldi	r21, 0x00	; 0
     4e0:	60 e0       	ldi	r22, 0x00	; 0
     4e2:	70 e0       	ldi	r23, 0x00	; 0
     4e4:	88 e7       	ldi	r24, 0x78	; 120
     4e6:	90 e0       	ldi	r25, 0x00	; 0
     4e8:	0e 94 a5 07 	call	0xf4a	; 0xf4a <GUI_sprintf_chartobit>
				delay_us(0xffff);
     4ec:	8f ef       	ldi	r24, 0xFF	; 255
     4ee:	9f ef       	ldi	r25, 0xFF	; 255
     4f0:	0e 94 e8 02 	call	0x5d0	; 0x5d0 <delay_us>
				GUI_sprintf_chartobit(120,0,0xaa,0xffff,0x0000) ;
     4f4:	2f ef       	ldi	r18, 0xFF	; 255
     4f6:	3f ef       	ldi	r19, 0xFF	; 255
     4f8:	4a ea       	ldi	r20, 0xAA	; 170
     4fa:	50 e0       	ldi	r21, 0x00	; 0
     4fc:	60 e0       	ldi	r22, 0x00	; 0
     4fe:	70 e0       	ldi	r23, 0x00	; 0
     500:	88 e7       	ldi	r24, 0x78	; 120
     502:	90 e0       	ldi	r25, 0x00	; 0
     504:	0e 94 a5 07 	call	0xf4a	; 0xf4a <GUI_sprintf_chartobit>
				delay_us(0xffff);
     508:	8f ef       	ldi	r24, 0xFF	; 255
     50a:	9f ef       	ldi	r25, 0xFF	; 255
     50c:	0e 94 e8 02 	call	0x5d0	; 0x5d0 <delay_us>
     510:	e1 cf       	rjmp	.-62     	; 0x4d4 <main+0x60>
  delay_us(0xffff);
  MMC_SD_Init();//初始化spi口
  delay_us(0xffff);
  
	  
  while(MMC_SD_Reset())//初始化SD卡					//sd card initialize
     512:	0e 94 81 08 	call	0x1102	; 0x1102 <MMC_SD_Reset>
     516:	89 2b       	or	r24, r25
     518:	d1 f6       	brne	.-76     	; 0x4ce <main+0x5a>
				delay_us(0xffff);
			}
		}
	} 
	  	  
	GUI_sprintf_chartobit(120,0,0xf0,0xffff,0x0000) ; 
     51a:	00 e0       	ldi	r16, 0x00	; 0
     51c:	10 e0       	ldi	r17, 0x00	; 0
     51e:	2f ef       	ldi	r18, 0xFF	; 255
     520:	3f ef       	ldi	r19, 0xFF	; 255
     522:	40 ef       	ldi	r20, 0xF0	; 240
     524:	50 e0       	ldi	r21, 0x00	; 0
     526:	60 e0       	ldi	r22, 0x00	; 0
     528:	70 e0       	ldi	r23, 0x00	; 0
     52a:	88 e7       	ldi	r24, 0x78	; 120
     52c:	90 e0       	ldi	r25, 0x00	; 0
     52e:	0e 94 a5 07 	call	0xf4a	; 0xf4a <GUI_sprintf_chartobit>
    OSCCAL = 0xff;//最大RC振荡频率				//normal operation maximum the frequency
     532:	8f ef       	ldi	r24, 0xFF	; 255
     534:	81 bf       	out	0x31, r24	; 49

	delay_us(0xffff);	 
     536:	8f ef       	ldi	r24, 0xFF	; 255
     538:	9f ef       	ldi	r25, 0xFF	; 255
     53a:	0e 94 e8 02 	call	0x5d0	; 0x5d0 <delay_us>
	
	if(FAT_Init())//初始化文件系统 支持FAT16和FAT32	//initialize file system  FAT16 and FAT32 are supported
     53e:	0e 94 cc 0e 	call	0x1d98	; 0x1d98 <FAT_Init>
     542:	88 23       	and	r24, r24
     544:	f9 f0       	breq	.+62     	; 0x584 <main+0x110>
	{
		while(1)
		{
			while(1)
			{
				GUI_sprintf_chartobit(120,0,0x00,0xffff,0x0000) ;
     546:	00 e0       	ldi	r16, 0x00	; 0
     548:	10 e0       	ldi	r17, 0x00	; 0
     54a:	2f ef       	ldi	r18, 0xFF	; 255
     54c:	3f ef       	ldi	r19, 0xFF	; 255
     54e:	40 e0       	ldi	r20, 0x00	; 0
     550:	50 e0       	ldi	r21, 0x00	; 0
     552:	60 e0       	ldi	r22, 0x00	; 0
     554:	70 e0       	ldi	r23, 0x00	; 0
     556:	88 e7       	ldi	r24, 0x78	; 120
     558:	90 e0       	ldi	r25, 0x00	; 0
     55a:	0e 94 a5 07 	call	0xf4a	; 0xf4a <GUI_sprintf_chartobit>
				delay_us(0xffff);
     55e:	8f ef       	ldi	r24, 0xFF	; 255
     560:	9f ef       	ldi	r25, 0xFF	; 255
     562:	0e 94 e8 02 	call	0x5d0	; 0x5d0 <delay_us>
				GUI_sprintf_chartobit(120,0,0xff,0xffff,0x0000) ;
     566:	2f ef       	ldi	r18, 0xFF	; 255
     568:	3f ef       	ldi	r19, 0xFF	; 255
     56a:	4f ef       	ldi	r20, 0xFF	; 255
     56c:	50 e0       	ldi	r21, 0x00	; 0
     56e:	60 e0       	ldi	r22, 0x00	; 0
     570:	70 e0       	ldi	r23, 0x00	; 0
     572:	88 e7       	ldi	r24, 0x78	; 120
     574:	90 e0       	ldi	r25, 0x00	; 0
     576:	0e 94 a5 07 	call	0xf4a	; 0xf4a <GUI_sprintf_chartobit>
				delay_us(0xffff);
     57a:	8f ef       	ldi	r24, 0xFF	; 255
     57c:	9f ef       	ldi	r25, 0xFF	; 255
     57e:	0e 94 e8 02 	call	0x5d0	; 0x5d0 <delay_us>
     582:	e1 cf       	rjmp	.-62     	; 0x546 <main+0xd2>
			}
		}

	}
	SearchInit();  //搜索文件初始化
     584:	0e 94 62 0e 	call	0x1cc4	; 0x1cc4 <SearchInit>
    milliseconds can be achieved.
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
     588:	08 ec       	ldi	r16, 0xC8	; 200
     58a:	10 e0       	ldi	r17, 0x00	; 0
		    {
		      image_count ++ ;
		    }
		 else 
		    {
			  image_count = 1 ;
     58c:	c1 e0       	ldi	r28, 0x01	; 1
     58e:	d0 e0       	ldi	r29, 0x00	; 0
	}
	SearchInit();  //搜索文件初始化
	
	while(1) 
	 {
	    disp_image() ;
     590:	0e 94 c9 00 	call	0x192	; 0x192 <disp_image>
     594:	80 e6       	ldi	r24, 0x60	; 96
     596:	9a ee       	ldi	r25, 0xEA	; 234
     598:	f8 01       	movw	r30, r16
     59a:	31 97       	sbiw	r30, 0x01	; 1
     59c:	f1 f7       	brne	.-4      	; 0x59a <main+0x126>
		__ticks = (uint16_t) (__ms * 10.0);
		while(__ticks)
		{
			// wait 1/10 ms
			_delay_loop_2(((F_CPU) / 4e3) / 10);
			__ticks --;
     59e:	01 97       	sbiw	r24, 0x01	; 1
		__ticks = 1;
	else if (__tmp > 65535)
	{
		//	__ticks = requested delay in 1/10 ms
		__ticks = (uint16_t) (__ms * 10.0);
		while(__ticks)
     5a0:	d9 f7       	brne	.-10     	; 0x598 <main+0x124>
		_delay_ms(6000) ;
		                              //Print_hz(72,30,16,"汉字显示测试",0xffff,0x0000) ;
		if(image_count<image_all)
     5a2:	20 91 7a 00 	lds	r18, 0x007A
     5a6:	30 91 7b 00 	lds	r19, 0x007B
     5aa:	80 91 7c 00 	lds	r24, 0x007C
     5ae:	90 91 7d 00 	lds	r25, 0x007D
     5b2:	28 17       	cp	r18, r24
     5b4:	39 07       	cpc	r19, r25
     5b6:	38 f4       	brcc	.+14     	; 0x5c6 <main+0x152>
		    {
		      image_count ++ ;
     5b8:	2f 5f       	subi	r18, 0xFF	; 255
     5ba:	3f 4f       	sbci	r19, 0xFF	; 255
     5bc:	30 93 7b 00 	sts	0x007B, r19
     5c0:	20 93 7a 00 	sts	0x007A, r18
     5c4:	e5 cf       	rjmp	.-54     	; 0x590 <main+0x11c>
		    }
		 else 
		    {
			  image_count = 1 ;
     5c6:	d0 93 7b 00 	sts	0x007B, r29
     5ca:	c0 93 7a 00 	sts	0x007A, r28
     5ce:	e0 cf       	rjmp	.-64     	; 0x590 <main+0x11c>

000005d0 <delay_us>:

/***********************
    1us延时函数
***********************/
void delay_us(uint16 t)
{
     5d0:	08 95       	ret

000005d2 <delay_ms>:

/**********************
    1ms延时函数
***********************/
void delay_ms(uint16 t)
{
     5d2:	08 95       	ret

000005d4 <LCD_IO_Init>:

/*********************
    I/O口初始化
**********************/
void LCD_IO_Init()
{
     5d4:	8f ef       	ldi	r24, 0xFF	; 255
     5d6:	8a bb       	out	0x1a, r24	; 26
  
  DDRA = 0xFF;
  DDRC = 0xFF;
     5d8:	84 bb       	out	0x14, r24	; 20

}
     5da:	08 95       	ret

000005dc <LCD_WriteRegister>:

/********************************
         写寄存器函数
********************************/
void LCD_WriteRegister(uint8 index)
{
     5dc:	ab 98       	cbi	0x15, 3	; 21

	LCD_RS_L ;
    LCD_CS_H;
     5de:	ae 9a       	sbi	0x15, 6	; 21
	
	PORTA= index;
     5e0:	8b bb       	out	0x1b, r24	; 27
	LCD_WR_L;
     5e2:	ac 98       	cbi	0x15, 4	; 21
	LCD_WR_H;
     5e4:	ac 9a       	sbi	0x15, 4	; 21

}
     5e6:	08 95       	ret

000005e8 <LCD_WriteByte>:

/***************************
    写8位数据函数
****************************/
void LCD_WriteByte(uint8 data)
{
     5e8:	ab 9a       	sbi	0x15, 3	; 21
	LCD_RS_H;
	LCD_CS_H;
     5ea:	ae 9a       	sbi	0x15, 6	; 21
	
	DATA= data;
     5ec:	8b bb       	out	0x1b, r24	; 27
	LCD_WR_L;
     5ee:	ac 98       	cbi	0x15, 4	; 21
	LCD_WR_H ;
     5f0:	ac 9a       	sbi	0x15, 4	; 21
}
     5f2:	08 95       	ret

000005f4 <LCD_WriteCommand>:
/***************************************************
//写寄存器数据函数
//输入:type 数据位数: 1为16位,0为8位。
****************************************************/
void LCD_WriteCommand(uint8 type,uint8 index,uint16 val)
{
     5f4:	ab 98       	cbi	0x15, 3	; 21
	LCD_RS_L ;
	LCD_CS_H ;
     5f6:	ae 9a       	sbi	0x15, 6	; 21
	DATA= index;
     5f8:	6b bb       	out	0x1b, r22	; 27
	LCD_WR_L;
     5fa:	ac 98       	cbi	0x15, 4	; 21
	LCD_WR_H ;
     5fc:	ac 9a       	sbi	0x15, 4	; 21
	delay_us(1);
	LCD_RS_H;
     5fe:	ab 9a       	sbi	0x15, 3	; 21
	if(type)
     600:	88 23       	and	r24, r24
     602:	19 f0       	breq	.+6      	; 0x60a <LCD_WriteCommand+0x16>
	{
		DATA= (uint8)(val>>8);
     604:	5b bb       	out	0x1b, r21	; 27
		LCD_WR_L;
     606:	ac 98       	cbi	0x15, 4	; 21
		LCD_WR_H ;
     608:	ac 9a       	sbi	0x15, 4	; 21

	}
	delay_us(1);
	
	DATA= (uint8)val;
     60a:	4b bb       	out	0x1b, r20	; 27
	LCD_WR_L;
     60c:	ac 98       	cbi	0x15, 4	; 21
	LCD_WR_H ;
     60e:	ac 9a       	sbi	0x15, 4	; 21
	
}
     610:	08 95       	ret

00000612 <LCD_WriteData>:
/***************************
//写16位数据函数
//输入: val数据
****************************/
void LCD_WriteData(uint16 val)
{
     612:	ab 9a       	sbi	0x15, 3	; 21
	LCD_RS_H;
	LCD_CS_H;
     614:	ae 9a       	sbi	0x15, 6	; 21
	
	DATA= (uint8)(val>>8);
     616:	9b bb       	out	0x1b, r25	; 27
	LCD_WR_L;
     618:	ac 98       	cbi	0x15, 4	; 21
    LCD_WR_H;
     61a:	ac 9a       	sbi	0x15, 4	; 21

	DATA= (uint8)val;
     61c:	8b bb       	out	0x1b, r24	; 27
	LCD_WR_L;
     61e:	ac 98       	cbi	0x15, 4	; 21
	LCD_WR_H ;
     620:	ac 9a       	sbi	0x15, 4	; 21

}
     622:	08 95       	ret

00000624 <LCD_Init>:

/**********************
    LCD初始化函数
***********************/
void LCD_Init()
{   
     624:	8f ef       	ldi	r24, 0xFF	; 255
     626:	8a bb       	out	0x1a, r24	; 26
**********************/
void LCD_IO_Init()
{
  
  DDRA = 0xFF;
  DDRC = 0xFF;
     628:	84 bb       	out	0x14, r24	; 20
    LCD初始化函数
***********************/
void LCD_Init()
{   
    LCD_IO_Init();
	LCD_RST_L;
     62a:	af 98       	cbi	0x15, 7	; 21
	delay_ms(10);
	LCD_RST_H;
     62c:	af 9a       	sbi	0x15, 7	; 21
         写寄存器函数
********************************/
void LCD_WriteRegister(uint8 index)
{

	LCD_RS_L ;
     62e:	ab 98       	cbi	0x15, 3	; 21
    LCD_CS_H;

⌨️ 快捷键说明

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