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

📄 jianpan.c

📁 可以显示年月日,时间等,也可以设置闹钟,设定时间
💻 C
📖 第 1 页 / 共 2 页
字号:
/******这里设置程序初始化时显示的时间****************/
extern unsigned char time[3],alart[2],time_clock[3];//存放时、分、秒
extern unsigned int data[3];         //年、月、日
unsigned char clockn[2];
extern unsigned char clockstr[8]; /*时间显示的LCD显示*/
extern unsigned char alartstr[5]; /*闹钟显示的LCD显示*/
extern unsigned char datestr[10]; /*日期显示LCD显示*/
unsigned char naozhong,KB_valve;

   
/****************以下是所有子函数的声明*********************/
extern void LcdInit(void); //显示的初始化
extern void lcdshow1(unsigned char x,unsigned char y,unsigned char data);
extern void lcdshow2(unsigned char str[]);
extern void sys_init(unsigned char time[],unsigned int data[],unsigned char alart[] );                 /*系统的初始化程序*/
unsigned char getmonthdays(unsigned int,unsigned char);/*计算某月的天数子程序*/
extern void guangbiao(unsigned char x,unsigned char y);
/**************************函数部分*************************/

 void sys_init(unsigned char time[],unsigned int data[],unsigned char alart[] )
{  
   datestr[7]=data[0]%10+0x30; //日期
   datestr[6]=(data[0]/10)+0x30;
   datestr[5]=data[1]%10+0x30;
   datestr[4]=(data[1]/10)+0x30;
   datestr[3]=data[2]%10+0x30;
   datestr[2]=((data[2]/10))%10+0x30;
   datestr[1]=((data[2]/100))%10+0x30;
   datestr[0]=(data[2]/1000)+0x30;
   /*给元素0赋相应数码管显示编码,编码序号是秒数的个位*/
   clockstr[5]=time[0]%10+0x30; 
   clockstr[4]=(time[0]/10)+0x30; /*给元素1赋相应数码管显示编码,编码序号是秒数的十位*/
   clockstr[3]=time[1]%10+0x30;  /*以下类推*/
   clockstr[2]=(time[1]/10)+0x30;
   clockstr[1]=time[2]%10+0x30;
   clockstr[0]=(time[2]/10)+0x30;
   
   alartstr[3]=alart[0]%10+0x30;        //设置闹钟
   alartstr[2]=(int)alart[0]/10+0x30;
   alartstr[1]=alart[1]%10+0x30;
   alartstr[0]=(int)alart[1]/10+0x30;

       
}
unsigned char getmonthdays(unsigned int year,unsigned char month)/*得到某月的天数*/
{
 unsigned char days;
 switch (month)
 {
  case 4:
  case 6:
  case 9:
  case 11:days=30;
          break;
  case 2: if((year%4==0&&year%100!=0)||(year%400==0)) 
                     days=29;
   else days=28;
          break;
  default:days=31;
          break;
 }
 return days;
}
 
/*void Data_Change(unsigned char data,unsigned char change_data[2])
{
   change_data[1]=data/10;
   change_data[0]=data%10;
}
*/
void Delay(void)
{
  unsigned char i,j;
  for(i=0;i<230;i++)
    for(j=0;j<230;j++);
}

void Lcd_Show(unsigned char n)
{
   // unsigned char hyear,lyear,array[2]={0};
    LcdInit();
    if(n==1)
    {
	lcdshow1(1,4, clockstr[0]);  //show h low1
	lcdshow1(1,5, clockstr[1]);  //show h low2
	lcdshow1(1,6,':');            //show '.'
	lcdshow1(1,7, clockstr[2]);  //show m high 
	lcdshow1(1,8, clockstr[3]);  //show m low 
	lcdshow1(1,9,':');            //show '.'
	lcdshow1(1,10, clockstr[4]);  //show s high 
	lcdshow1(1,11, clockstr[5]);  //show s low	
    }
    else
    {
	
	lcdshow1(0,2,datestr[0]);  //show year high1
	lcdshow1(0,3,datestr[1]);  //show year high2	        
	lcdshow1(0,4,datestr[2]);  //show year low1
	lcdshow1(0,5,datestr[3]);  //show year low2
	lcdshow1(0,6,'-');            //show '.'
	lcdshow1(0,7,datestr[4]);  //show month high 
	lcdshow1(0,8,datestr[5]);  //show month low 
	lcdshow1(0,9,'-');            //show '.'
	lcdshow1(0,10,datestr[6]);  //show day high 
	lcdshow1(0,11,datestr[7]);  //show day low
        
	lcdshow1(1,4,alartstr[0]);  //show h low1
	lcdshow1(1,5,alartstr[1]);  //show h low2
	lcdshow1(1,6,':');            //show '.'
	lcdshow1(1,7,alartstr[2]);  //show m high 
	lcdshow1(1,8,alartstr[3]);  //show m low 
	}
}

void Lcd_Show_init(void)
{
	LcdInit();
	lcdshow1(1,4,'0');  //show h low1
	lcdshow1(1,5,'0');  //show h low2
	lcdshow1(1,6,':');  //show '.'
	lcdshow1(1,7,'0');  //show m high 
	lcdshow1(1,8,'0');  //show m low 
	lcdshow1(1,9,':');  //show '.'
	lcdshow1(1,10,'0');  //show s high 
	lcdshow1(1,11,'0');  //show s low
}

void str_change(unsigned char time_array[],unsigned char n)
{
	data[2]=time_array[0]*1000+time_array[1]*100+time_array[2]*10+time_array[3];
	data[1]=time_array[4]*10+time_array[5];
    data[0]=time_array[6]*10+time_array[7];
    time[2]=time_array[8]*10+time_array[9];
    time[1]=time_array[10]*10+time_array[11];
    time[0]=time_array[12]*10+time_array[13];      
}

void change_str(unsigned char time_array[],unsigned char n)
{
    	time_array[0]=data[2]/1000;
	    time_array[1]=data[2]%1000/100;
	    time_array[2]=data[2]%100/10;
	    time_array[3]=data[2]%10;
	    time_array[4]=data[1]/10;
	    time_array[5]=data[1]%10;
	    time_array[6]=data[0]/10;
	    time_array[7]=data[0]%10;
	    time_array[8]=time[2]/10;
	    time_array[9]=time[2]%10;
	    time_array[10]=time[1]/10;
	    time_array[11]=time[1]%10;
	    time_array[12]=time[0]/10;
	    time_array[13]=time[0]%10;
}

void str_clock(unsigned char time_array[],unsigned char n)
{
    time_clock[0]=time_array[8]*10+time_array[9];
    time_clock[1]=time_array[10]*10+time_array[11];
    time_clock[2]=time_array[12]*10+time_array[13];      
}

void Akey()
{ 
   unsigned char qidong[32]="1.set time      2.set clock     ";
   lcdshow2(qidong);
    KB_valve=0;
	  while(1)
	         {	   
	            if(KB_valve=='1')//选项1:调整时间
	               {   
	                  unsigned char gb_mask2=2,gb_mask1=0,sign=2,time_array[14];
	                   Lcd_Show(0);
	                   change_str(time_array,14);
	                   KB_valve=0;
	                     while(1)
	                        {
	                            guangbiao(gb_mask1,gb_mask2);
	                            if(KB_valve=='6')//光标右移
	                               {   
	                                   gb_mask2++;
	                                   sign++;
	                                   if(sign==10&&gb_mask1==0) sign=2;
	                                   if(sign==8&&gb_mask1==1) sign=2;
	                                   if(gb_mask2==6) gb_mask2=7;
	                                   if(gb_mask2==9) gb_mask2=10;
	                                   if(gb_mask2==12&&gb_mask1==0) gb_mask2=2;
	                                   if(gb_mask2==12&&gb_mask1==1) gb_mask2=4;
	                                   KB_valve=0;
	                               }

⌨️ 快捷键说明

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