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

📄 128riliok.c

📁 通过AVR atmege128 单片机显示模块显示年月日、日分秒、通过3个按键调试大小进行设置LCD显示模块RT0802A
💻 C
📖 第 1 页 / 共 2 页
字号:
			
				if(s1num==2) 
				{ 
					Key_tanqi();
					LCD_Write(0xA8+3,0);                  //调节分钟时的数据指针设置在(1,7)坐标处 
					//LCD_Com(0x0F);
					//PORTE|=_BV(PE2);
				} 
				if(s1num==3) 
				{ 
					Key_tanqi();
					LCD_Write(0xA8,0);                 //调节小时的数据指针设置在(1,4)坐标处 
					//LCD_Com(0x0F);
					//PORTE|=_BV(PE2);
				} 
				/*if(s1num==4) 
				{ 
					LCD_Write(0x80+13); 
				} 
				if(s1num==5) 
				{ 
					LCD_Write(0x80+10); 
				} 
				if(s1num==6) 
				{ 
					LCD_Write(0x80+7); 
				} 
				if(s1num==7) 
				{ 
					LCD_Write(0x80+4); 
				} 
				if(s1num==8) 
				{ 
					s1num=0; 
					LCD_Write(0x0c);                                   //按键4次后 开显示  光标不开不闪烁 
					//TR0=1;                                                           //又开始计时 
					TIMSK  =_BV(TOIE1);
				} */
				if(s1num==4) 					//ri
				{ 
					Key_tanqi();
					LCD_Write(0x80+6,0); 
					//LCD_Com(0x0F);
				} 
				if(s1num==5) 					//yue
				{ 
					Key_tanqi();
					LCD_Write(0x80+3,0); 
					//LCD_Com(0x0F);
				} 
				if(s1num==6) 					//nian
				{ 
					Key_tanqi();
					LCD_Write(0x80,0); 
					//LCD_Com(0x0F);
					Key_tanqi();
				} 
				if(s1num==7) 
				{ 
					Key_tanqi();
					s1num=0; 
					LCD_Write(0x0c,0);                                   //按键4次后 开显示  光标不开不闪烁 
					TIMSK  =_BV(TOIE1);
				} 
				ret=0;
			} 		 
			if(s1num!=0) 
			{ 
				if(ret==3) 
				{ 
					DelayMs(80);
					if(ret==3) 
					{ 
						while(!ret); 
						if(s1num==1) 
						{ 
							miao++; 
							if(miao==60) 
							miao=0; 
							LCD_Write(0xA8+6,0);
							miao_shuju();
							DelayMs(100);
							ret=0;
						} 
						if(s1num==2) 
						{ 
							fen++; 
							if(fen==60) 
							fen=0; 
							LCD_Write(0xA8+3,0); 
							fen_shuju();
							DelayMs(100);
							ret=0;
						} 
						if(s1num==3) 
						{ 
							//delay_2time(1);
							shi++; 
							if(shi==24) 
							shi=0; 
							LCD_Write(0xA8,0);
							//LCD_Com(0x0F);
							shi_shuju();
							//Write_Sfm(0,shi); 
							//LCD_Write(0xA8,0); 
							DelayMs(100);
							ret=0;
						} 
						/*if(s1num==4) 
						{ 
							xq++; 
							if(xq==8) 
							xq=0; 
							Write_Nyr(13,xq); 
							LCD_Write(0x80+13); 
						}   */   
						if(s1num==4) 
						{ 
							ri++; 
							if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12) 
							{ 
								if(ri==32) 
								ri=0; 
							} 
							else if(yue==2)                                         //注意这里没有考虑闰年 
							{ 
								if(ri==29) 
								ri=0; 
							} 
							else  
							{ 
								if(ri==31)   
								ri=0; 
							} 
							LCD_Write(0x80+6,0); 
							ri_shuju();
							DelayMs(100);
							ret=0;
						} 
						if(s1num==5) 
						{ 
							yue++; 
							if(yue==13) 
							yue=0; 
							LCD_Write(0x80+3,0); 
							yue_shuju();
							DelayMs(100);
							ret=0;
						} 
						if(s1num==6) 
						{ 
							nian++; 
							if(nian==99) 
							nian=0; 
							LCD_Write(0x80,0); 
							nian_shuju();
							DelayMs(100);
							ret=0;
						} 
					} 
					ret=0;
				} 
				if(ret==4) 
				{ 
					DelayMs(80);
					if(ret==4)  
					{ 
						while(!ret); 
						if(s1num==1) 
						{ 
							miao--; 
							//if(miao==-1) 
							if(miao==255)
							miao=59; 
							LCD_Write(0xA8+6,0); 
							miao_shuju();
							DelayMs(100);
							ret=0;
						} 
						if(s1num==2) 
						{ 
							fen--; 
							//if(fen==-1) 
							if(fen==255) 
							fen=59; 
							LCD_Write(0xA8+3,0); 
							fen_shuju();
							DelayMs(100);
							ret=0;							
							//Write_Sfm(3,fen); 
							//LCD_Write(0xA8+3,0); 
						} 
						if(s1num==3) 
						{ 
							shi--; 
							//if(shi==-1)
							if(shi==255)
							shi=23; 
							LCD_Write(0xA8,0); 
							shi_shuju();
							DelayMs(100);
							ret=0;							
							//Write_Sfm(0,shi); 
							//LCD_Write(0xA8,0); 
						} 
						/*if(s1num==4) 
						{ 
							xq--; 
							//if(xq==-1) 
							if(xq==255)
							xq=7; 
							Write_Nyr(13,xq); 
							LCD_Write(0x80+13); 
						} */
						if(s1num==4) 
						{ 
							ri--; 
							if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12) 
							{ 
								//if(ri==-1) 
								if(ri==255)
								ri=31; 
							} 
							else if(yue==2)                                         //注意这里没有考虑闰年 
							{ 
								//if(ri==-1) 
								if(ri==255)	
								ri=28; 
							} 
							else  
							{ 
								//if(ri==-1) 
								if(ri==255)
								ri=30; 
							} 
							LCD_Write(0x80+6,0); 
							ri_shuju();
							DelayMs(100);
							ret=0;							

						} 
						if(s1num==5) 
						{ 
							yue--; 
							//if(yue==-1) 
							if(yue==255)
							yue=12; 
							LCD_Write(0x80+3,0);
							yue_shuju();
							DelayMs(100);
							ret=0;							
						} 
						if(s1num==6) 
						{ 
							nian--; 
							//if(nian==-1) 
							if(nian==255)
							nian=99; 
							LCD_Write(0x80,0); 
							nian_shuju();
							DelayMs(100);
							ret=0;							
						} 
					} 
				} 
			}
			exit_set_status();
			
			if(exit_set_stutas==90)
			exit_set_stutas=0;
		} 
	}
} 
	void fen_is_zero(void)
	{
		uint8_t i;
		uint8_t fen_high;
		uint8_t fen_low;
		for(i=0;i<=4;i++)
		{
			fen_high=table1[3];
			fen_low=table1[4];
			fen=((fen_high-0x30)*10+(fen_low-0x30));
		}
	}
/**************************************************************************************

				下面的是中断函数

***************************************************************************************/

//计时器 
SIGNAL(SIG_OVERFLOW1)
{ 
	TCNT1H=0xAB;//(65536-50000)/256; 
	TCNT1L=0xA0;//(65536-50000)%256; 
	count++; 
	if(count==2) 
	{ 
		count=0; 
		miao++; 
		if(miao==60) 
		{ 
			miao=0; 
			fen_is_zero();
			fen++; 
			if(fen==60) 
			{ 
				fen=0; 
				shi++; 
				if(shi==24) 
				{ 
					shi=0; 
					ri++; 
					if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12) 
					{ 
						if(ri==31) 
						{ 
							ri=0; 
							yue++; 
							xq++; 
							if(xq==8) 
							{ 
								xq=1; 
							} 
							if(yue==12) 
							{ 
								yue=0; 
								nian++; 
								nian_shuju();
							} 
							yue_shuju();
						}  
					} 
					else if(yue==2)                                         //注意这里没有考虑闰年 
					{ 
						if(ri==31) 
						{  
							ri=0; 
							yue++; 
							xq++; 
							if(xq==8) 
							{ 
								xq=1; 
							} 
							if(yue==12) 
							{ 
								yue=0; 
								nian++; 
								nian_shuju();
							} 
							yue_shuju();

						} 
					} 
						else 
						{ 
							if(ri==31) 
							{ 
								ri=0; 
								yue++; 
								xq++; 
								if(xq==8) 
								{ 
									xq=1; 
								} 
								if(yue==12) 
								{ 
									yue=0; 
									nian++; 
									nian_shuju();
								} 
								yue_shuju();
							} 
						} 
						ri_shuju();
				} 
				shi_shuju();
			} 
			fen_shuju();
		} 
		miao_shuju();
	}  
} 
int main(void)
{


	cli();
	Port_Init();
	LCD_Init();

	LCD_Display(table,1);
	LCD_Display(table1,2);

	Timerone_Init();
	sei();
	while(1)
	{ 
	
		Key_Scan();
		Key_Handing();
	}
}












⌨️ 快捷键说明

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