易开发易投产的51单片机时钟计时器:番茄时钟——TFT彩屏显示方案

随着日常节奏的加快,每个人在工作时常常被打断,导致效率低下,许多人会采用一种高效的时间管理工具:番茄时钟,这个是一个提高工作效率的得力助手!

目前行业中已经有十分成熟又低廉的番茄时钟计时器了,不过基本都是使用段式TN屏,显示效果比较差也较为单调。而如今的社会环境又激发了人们对品质与格调的追求,因此许多人会想拥有一款做工更精致,然后看起来即漂亮又好用的时钟计时器。这里介绍一种方案,是采用TFT彩色屏做为显示,其显示效果可以做得比较亮丽,单片机还可以扩展许多功能,比如存储计时习惯、切换界面风格等等,绝对可以做出相当具有特色的计时器。

这里提供一个免费方案,该方案成本低廉,开发容易,生产简单,主要框架如下图:
易开发易投产的51单片机时钟计时器:番茄时钟——TFT彩屏显示方案_第1张图片
演示效果:
易开发易投产的51单片机时钟计时器:番茄时钟——TFT彩屏显示方案_第2张图片
限于空间,只传模拟演示图如上,液晶屏可以采用320x240、480x272、480x320、640x480或者800x480等等。此方案中界面图标、字符等均可灵活修改,研发可以自由发挥,做出有特色的计时器。

瑞佑(RAIO)的控制器是公认的程序特别好写的产品,开发时间快,效率高!下面截取一些代码出来先分享:

		BTE_Memory_Copy(0,1600,800,0,0,0,0,0,0,1600,0,0,12,800,480);   //	初始界面
		
		DMA_24bit(1,0,855,102,110,150,110,TIME[A0].start_addr);
		DMA_24bit(1,0,975,102,110,150,110,TIME[A0].start_addr);
		DMA_24bit(1,0,1148,102,110,150,110,TIME[A0].start_addr);
		DMA_24bit(1,0,1258,102,110,150,110,TIME[A0].start_addr);
		DMA_24bit(1,0,1378,150,80,100,80,TIME[B0].start_addr);
		DMA_24bit(1,0,1460,150,80,100,80,TIME[B0].start_addr);
		DMA_24bit(1,0,1088,405,memu_W,memu_H,memu_W,TIME[model2_up].start_addr);
		DMA_24bit(1,0,1423,0,136,50,136,TIME[model_countdown].start_addr);
		
		delay_ms(1000);
		delay_ms(800);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B4].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B3].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B2].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B1].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B0].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,sech_x,sec_y,sec_W,sec_H,sec_W,TIME[B2].start_addr);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B9].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B8].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B7].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,288,405,memu_W,memu_H,memu_W,TIME[model1_down].start_addr);  //模式1按下
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B6].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,288,405,memu_W,memu_H,memu_W,TIME[model1_up].start_addr);
		delay_ms(200);
		TIM_Cmd(BASIC_TIM, DISABLE);
		BTE_Memory_Copy(0,1600,800,0,0,0,0,0,0,1600,0,0,12,800,480);   //	模式2界面
		
		for(i=1;i<6;i++)
		{
			delay_ms(600);
			TimeShow_min(i);
		}
		
		delay_ms(1000);
		delay_ms(1000);
		DMA_24bit(1,0,533,405,memu_W,memu_H,memu_W,TIME[start_down].start_addr);  
		TIM_Cmd(BASIC_TIM, ENABLE);
		delay_ms(1000);
		DMA_24bit(1,0,533,405,memu_W,memu_H,memu_W,TIME[start_up].start_addr);
		delay_ms(200);
		DMA_24bit(1,0,533,405,memu_W,memu_H,memu_W,TIME[stop_up].start_addr);
		DMA_24bit(1,0,minl_x,min_y,min_W,min_H,min_W,TIME[A4].start_addr);
		DMA_24bit(1,0,sech_x,sec_y,sec_W,sec_H,sec_W,TIME[B5].start_addr);
		for(i=20;i>13;i--)
		{
			DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[i].start_addr);
			delay_ms(1000);
		}
		for(i=13;i>11;i--)
		{
			DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[i].start_addr);
			delay_ms(300);
		}
		TimeShow_run(4);
		TimeShow_run(3);
		TimeShow_run(2);
		TimeShow_run(1);
		TimeShow_run1(0);
		delay_ms(900);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B4].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B3].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B2].start_addr);
		delay_ms(1000);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B1].start_addr);
		delay_ms(1000);
		TIM_Cmd(BASIC_TIM, DISABLE);
		BTE_Memory_Copy(0,1600,900,480,0,0,0,0,0,1600,297,100,12,50,150);
		DMA_24bit(1,0,secl_x,sec_y,sec_W,sec_H,sec_W,TIME[B0].start_addr);
		BTE_Memory_Copy(0,1600,0,50,0,0,0,0,0,1600,0,480,12,800,250);    //备份显示区块00:00 00
		DMA_24bit(1,0,533,405,memu_W,memu_H,memu_W,TIME[start_up].start_addr);
		
		for(i=6;i>0;i--)
		{
			Time_Blink();
		}

欢迎大家与我交流!可提供相关码源,并且有机会获取专业的技术支持。

网址:http://www.lcdvision.com.cn/

你可能感兴趣的:(单片机)