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

📄 ir_irss.h

📁 这是我用ds12887+12864+遥控器写的程序希望能够多多交流qq519212866
💻 H
字号:
ir_irs()
{
	if(flag0==1) 
	{
		if(ir==0x14)  
		{
			flag0=0;    //flag0标志清0
			Sound_ir();
		}
		if(ir==0x04)   
		{
			flag0=0;     //flag0标志清0
			Sound_ir();
		}
		if(ir==0x05)  
		{
			flag0=0;       //flag0标志清0
			Sound_ir();
		}
		if(ir==0x0e)  
		{
			flag0=0;       //flag0标志清0
			Sound_ir();
		}
		if(ir==0x0c)  
		{
			flag0=0;       //flag0标志清0
			Sound_ir();
		}
		if(ir==0x0a)  
		{
			flag0=0;       //flag0标志清0
			Sound_ir();
		}
		if(ir==0x06)  
		{
			flag0=0;       //flag0标志清0
			Sound_ir();
		}
		if(ir==0x00)  
		{
			flag0=0;       //flag0标志清0
			Sound_ir();
		}
		if(ir==0x01)  
		{
			flag0=0;       //flag0标志清0
			Sound_ir();
		}
		if(ir==0x08)  
		{
			flag0=0;       //flag0标志清0
			Sound_ir();
		}
		if(ir==0x09)  
		{
			flag0=0;       //flag0标志清0
			Sound_ir();
		}
		if(ir==0x16)  
		{
			flag0=0;       //flag0标志清0
			Sound_ir();
		}  
	}
	if(ir==0x16)   //遥控器输入切换键判断,遥控器的键值是(0x16)
	{
	flag0=0;   //flag0清除标志位
	flag1=1;   //flag1标志位置1
	num1++;	   //k3键循环的次数加加
			switch(num1)  //k3键每按一次,蜂鸣器就会响一声函数时调用了(Sound_ir();)
			{
				case 1: write_command(0x8f);	//第三行显示秒的位置 
						write_command(0x0f);		//显示光标开
						break;    
				case 2: write_command(0x8d);	 //第三行显示分的位置
						write_command(0x0f);		 //显示光标开
						break;    
				case 3: write_command(0x8b);	 //第三行显示时的位置
						write_command(0x0f);		 //显示光标开
						break;     
				case 4: write_command(0x97);	  //第二行显示星期的位置
						write_command(0x0f);	  //显示光标开
						break;     
				case 5: write_command(0x92);   	//第二行显示日的位置 
						write_command(0x0f);	//显示光标开
						break;    
				case 6: write_command(0x90);   //第二行显示月的位置
						write_command(0x0f);   //显示光标开
						break;    
				case 7: write_command(0x81);	//第一行显示年的位置
						write_command(0x0f);	//显示光标开
						break;     
				case 8: write_command(0x9f);  //第四行显示闹钟秒的位置
						write_command(0x0f);		  //显示光标开
						break;   
				case 9: write_command(0x9d);  //第四行显示闹钟分的位置
						write_command(0x0f); 		  //显示光标开
						break;   
				case 10: write_command(0x9b);   //第四行显示闹钟时的位置
						write_command(0x0f); 		   //显示光标开
						break;    
				case 11: 
					    ds887_write_date(5,ahour);    //设置的 闹钟 时 写入887
					    ds887_write_date(3,aminute);  //设置的 闹钟 分 写入887
					    ds887_write_date(1,asecond);  //设置的 闹钟 秒 写入887
						ds887_write_date(9,year);    //设置的 年 写入887
						ds887_write_date(8,month);   //设置的 月 写入887
						ds887_write_date(7,date);    //设置的 日 写入887
						ds887_write_date(6,week);    //设置的 星期 写入887 
						ds887_write_date(4,hour);    //设置的 时 写入887
						ds887_write_date(2,minute);  //设置的 分 写入887
						ds887_write_date(0,second);  //设置的 秒 写入887
						write_command(0x0c);  //显示光标关	
						flag1=0;   //清除标志位
						Sound_ir();
						num1=0; break;   //num1就清为0         			
				default:break;
			}
	}
	if(num1!=0)
	{
			//-----------------------------------遥控器加键开始----------------------------------------//
		if(ir==0x00)  //遥控器 加 键判断,遥控器的键值是(0x00)
		{
			Sound_ir();
					switch(num1)  //调用的是k3键循环的次数
						{
						case 1: 	second++;   //当k2键按下,second开始++
									if(second==60)   //如果second等于60,
									second=0;        //那么second就等于0   【下面的以此类推】
									write_12864add_three(7,second);      //设置后的数据要刷新12864屏,地址是屏的第三行位置6,数据是秒
									write_command(0x8f);			  //设置要调节的地址,这一步必须放在此处
									break; 
						case 2:		minute++;
									if(minute==60)
									minute=0;
									write_12864add_three(5,minute);      //设置后的数据要刷新12864屏,地址是屏的第三行位置3,数据是分
									write_command(0x8d);			  //设置要调节的地址,这一步必须放在此处
									break;  
						case 3:		hour++;
									if(hour==24)
									hour=0;
									write_12864add_three(3,hour);      //设置后的数据要刷新12864屏,地址是屏的第三行位置0,数据是时
									write_command(0x8b);		    	//设置要调节的地址,这一步必须放在此处
									break;  
						case 4:		week++;
									if(week==8)
									week=1;
									write_12864add_two(7,week);      //设置后的数据要刷新12864屏,地址是屏的第二行位置14,数据是星期
									write_command(0x97);			  //设置要调节的地址,这一步必须放在此处
									break;   
						case 5:		date++;
									if(date==32)
									date=1;
									write_12864add_two(2,date);      //设置后的数据要刷新12864屏,地址是屏的第二行位置8,数据是日
									write_command(0x92);			 //设置要调节的地址,这一步必须放在此处
									break;   
						case 6:		month++;
									if(month==13)
									month=1;
									write_12864add_two(0,month);      //设置后的数据要刷新12864屏,地址是屏的第二行位置5,数据是月
									write_command(0x90);			  //设置要调节的地址,这一步必须放在此处
									break;  
						case 7:		year++;
									if(year==100)
									year=0;
									write_12864add_one(1,year);      //设置后的数据要刷新12864屏,地址是屏的第一行位置2,数据是年
									write_command(0x81);			 //设置要调节的地址,这一步必须放在此处
									break;   
						case 8:		asecond++;
									if(asecond==60)
									asecond=0;
									write_12864add_four(7,asecond);      //设置后的数据要刷新12864屏,地址是屏的第二行位置14,数据是闹钟秒
									write_command(0x9f);				 //设置要调节的地址,这一步必须放在此处 
									break;  
						case 9:		aminute++;
									if(aminute==60)
									aminute=0;
									write_12864add_four(5,aminute);      //设置后的数据要刷新12864屏,地址是屏的第二行位置11,数据是闹钟分
									write_command(0x9d);				 //设置要调节的地址,这一步必须放在此处
									break;   
						case 10:	ahour++;
									if(ahour==24)
									ahour=0;
									write_12864add_four(3,ahour);      //设置后的数据要刷新12864屏,地址是屏的第二行位置8,数据是时
									write_command(0x9b);			   //设置要调节的地址,这一步必须放在此处
									break;   
						case 11:	num1=0; break;
					default:break;
						}
		}
	}
	//=================================遥控器减开始=====================================//
	if(num1!=0)
	{
		if(ir==0x01)   //遥控器 减 键判断,遥控器的键值是(0x01)
		{
			Sound_ir();
		switch(num1)    //调用的是k3键循环的次数
			{
			case 1: 	second--;       //当k2键按下,second开始--,同时蜂鸣器会响一声
						if(second==-1)  //如果second等于-1?						second=59;      //那么second就等于59   【下面的以此类推】
						write_12864add_three(7,second);      //设置后的数据要刷新12864屏,地址是屏的第三行位置6,数据是秒
						write_command(0x8f);			  //设置要调节的地址,这一步必须放在此处
						break; 
			case 2:		minute--;
						if(minute==-1)
						minute=59;
						write_12864add_three(5,minute);      //设置后的数据要刷新12864屏,地址是屏的第三行位置3,数据是分
						write_command(0x8d);			  //设置要调节的地址,这一步必须放在此处
						break;
			case 3:		hour--;
						if(hour==-1)
						hour=23;
						write_12864add_three(3,hour);      //设置后的数据要刷新12864屏,地址是屏的第三行位置0,数据是时
						write_command(0x8b);		    	//设置要调节的地址,这一步必须放在此处
						break;
			case 4:		week--;
						if(week==0)
						week=7;
						write_12864add_two(7,week);      //设置后的数据要刷新12864屏,地址是屏的第二行位置14,数据是星期
						write_command(0x97);			  //设置要调节的地址,这一步必须放在此处
						break; 
			case 5:		date--;
						if(date==0)
						date=31;
						write_12864add_two(2,date);      //设置后的数据要刷新12864屏,地址是屏的第二行位置8,数据是日
						write_command(0x92);			 //设置要调节的地址,这一步必须放在此处
						break; 
			case 6:		month--;
						if(month==0)
						month=12;
						write_12864add_two(0,month);      //设置后的数据要刷新12864屏,地址是屏的第二行位置5,数据是月
						write_command(0x90);			  //设置要调节的地址,这一步必须放在此处
						break;
			case 7:		year--;
						if(year==-1)
						year=99;
						write_12864add_one(1,year);      //设置后的数据要刷新12864屏,地址是屏的第一行位置2,数据是年
						write_command(0x81);			 //设置要调节的地址,这一步必须放在此处
						break; 
			case 8:		asecond--;
						if(asecond==-1)
						asecond=59;
						write_12864add_four(7,asecond);      //设置后的数据要刷新12864屏,地址是屏的第二行位置14,数据是闹钟秒
						write_command(0x9f);				 //设置要调节的地址,这一步必须放在此处 
						break;  
			case 9:		aminute--;
						if(aminute==-1)
						aminute=59;
						write_12864add_four(5,aminute);      //设置后的数据要刷新12864屏,地址是屏的第二行位置11,数据是闹钟分
						write_command(0x9d);				 //设置要调节的地址,这一步必须放在此处
						break;  
			case 10:	ahour--;
						if(ahour==-1)
						ahour=23;
						write_12864add_four(3,ahour);      //设置后的数据要刷新12864屏,地址是屏的第二行位置8,数据是时
						write_command(0x9b);			   //设置要调节的地址,这一步必须放在此处 
						break; 
			case 11:	num1=0; break;
		default:break;
			}
		}
	}
}  

⌨️ 快捷键说明

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