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

📄 main.c

📁 ds1302事实时钟+12864液晶显示 4094
💻 C
字号:
#include <iom8515v.h>
#include "ds1302.h"
#include "jhd12864.h"
#include "d4094.h"
#include "charindex.h"



uint gewei,shiwei;
uint sec,min,hour,year,month,day,date;
uchar mid[10]={0};


void jisuan(uchar b_data)
{
   uchar e,d;
   e=b_data;
   d=e;
   e=e&0x0f;
   d=d>>4;
   gewei=(e&0x01)+((e>>1)&0x01)*2+((e>>2)&0x01)*4+((e>>3)&0x01)*8;
   shiwei=(d&0x01)+((d>>1)&0x01)*2+((d>>2)&0x01)*4+((d>>3)&0x01)*8; 

   }

    
   
void main()
{

   uchar num=0x01; 
 
   DDRC=0xFF;
   PORTC=0xFF;

   LCD_Init();
   delay_1ms(50);
   LCD_Init();	 			//初始化两边是关键,否则液晶上电重起将不能显示
	
  WriteSec(0x50);
  WriteMin(0x59);
  WriteHour(0x23);
  WriteYear(0x99);
  WriteMonth(0x12);
  WriteDate(0x31);
  
  WriteDay(0x07);
  
  Char_Set_XY(1,0,"time");
  Char_Set_XY(1,1,"date");
  Char_Set_XY(1,2,"week");
  
 
  Char_Set_XY_BYTE(6,0,charindex[10],2);
  Char_Set_XY_BYTE(5,0,charindex[10],1);
  Char_Set_XY_BYTE(6,1,charindex[10],2);
  Char_Set_XY_BYTE(5,1,charindex[10],1);  
 
while(1)
{

  
	    sec=ReadSec();
        if(mid[1]!=sec)
		{
		  num++;
		  if(num>0x02)num=0x01;
		  jisuan(sec);
		  Char_Set_XY_BYTE(7,0,charindex[gewei],2);
		  Char_Set_XY_BYTE(7,0,charindex[shiwei],1);
		  Char_Set_XY_BYTE(0,3,num,1);
	     }
		 mid[1]=sec;
		 
		 
		min = ReadMin();
		if(mid[2]!=min)
		{
        jisuan(min);
		Char_Set_XY_BYTE(6,0,charindex[gewei],1); 
	    Char_Set_XY_BYTE(5,0,charindex[shiwei],2); 
	    Char_Set_XY_BYTE(5,0,charindex[10],1);
        }
	    mid[2]=min;
	
	    
		hour=ReadHour();
		if(mid[3]!=hour)
		{
		jisuan(hour);
		Char_Set_XY_BYTE(4,0,charindex[gewei],2);
	    Char_Set_XY_BYTE(4,0,charindex[shiwei],1);
		}
		mid[3]=hour;
		
		
		
		
		
		year=ReadYear();
		if(mid[4]!=year)
		{
		jisuan(year);
		Char_Set_XY_BYTE(4,1,charindex[gewei],2);
	    Char_Set_XY_BYTE(4,1,charindex[shiwei],1);
		}
		mid[4]=year;
		
		
		month=ReadMonth();
		if(mid[5]!=month)
		{
		jisuan(month);
		Char_Set_XY_BYTE(6,1,charindex[gewei],1);
	    Char_Set_XY_BYTE(5,1,charindex[shiwei],2);
		Char_Set_XY_BYTE(5,1,charindex[10],1);
		}
		mid[5]=month;	
			

        date=ReadDate();
		if(mid[7]!=date)
		{
		jisuan(date);
		Char_Set_XY_BYTE(7,1,charindex[gewei],2);
	    Char_Set_XY_BYTE(7,1,charindex[shiwei],1);
		}
		mid[7]=date;		
		  
       				
		day=ReadDay();
		if(mid[6]!=day)
		{
		jisuan(day);
		Char_Set_XY_BYTE(7,2,charindex[gewei],2);
	    Char_Set_XY_BYTE(7,2,charindex[shiwei],1);
		}
		mid[6]=day;
	 }
}

  

⌨️ 快捷键说明

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