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

📄 main.c

📁 DS1302资料lcd.rar
💻 C
字号:
#include<intrins.h>
#include<stdio.h>
#include <REG52.H> 
//#include "1602.h" 

//这里各人的1602程序不一样.所以我把测试程序中的这一块去掉了

#include "DS1302.h"
 
sbit LCM_power = P0^0;
sbit key01=P0^3;

unsigned char code use[]={"date:/"};
unsigned char code use1[]={"time:/"};

extern void Init_1602(void);
extern void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
extern void  DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
extern void Delay5Ms(void);
void main() 
{ 
SYSTEMTIME CurrentTime;

//long int delay;
//delay=100000;
//while(delay--);



/*波特率600 晶振12M与电脑串行通信*/
	SCON = 0x50; /*scon八位 SM0,SM1,SM2,REN,TB8,RB8,TI,RI 设置为01010000串
				口方式一,允许接收REN*/
	TMOD = 0x20; ;/*定时器一方式2 八位自动装载模式*/
	PCON = PCON&0x80;/*波特率倍数为SMOD位为1*/
	TCON = 0x40; /*TCON八位,TF1,TR1,TF0,TR0,,,,,*/
	
//	IP=0X02;    //用于设置中断优先级,设置外部中断优先,
   				//IP的第0位到第5位分别代表PX0,PT0,PX1,PT1,PS(串口通信),PT2
				//5---0   ps,pt1,px1,pt0,px0
	TH1 = 0xcc;
	TL1 = 0xcc;//设置初值

	TR1 =1;
	ET1=1;

	TI = 1; 
//	TH0=0xd8;
//	TL0=0x0d;//精确延时10ms
//	TR0=1;
//	ET0=1;	
//	IT1=1;

	 EA=1;

// Lcddelay(0xaf);
// LcdReset(); 
DS1302_Initial();
Init_1602();
// DisplayListChar(0,0,"Date: ",6);
// DisplayListChar(0,1,"Time: ",6);

CurrentTime.Year = 9;
CurrentTime.Month = 6;
CurrentTime.Day = 12;
CurrentTime.Week = 3;
CurrentTime.Hour = 13;
CurrentTime.Minute = 12;
CurrentTime.Second = 27;




DS1302_SetTime(&CurrentTime);



	DisplayListChar(0, 0, use);
	DisplayListChar(0, 1, use1);



   DisplayOneChar(8,0,(CurrentTime.Year%100)/10+0x30);
   DisplayOneChar(9,0,(CurrentTime.Year%10)+0x30);
   DisplayOneChar(11,0,(CurrentTime.Month/10)+0x30);
   DisplayOneChar(12,0,(CurrentTime.Month%10)+0x30);
   DisplayOneChar(14,0,(CurrentTime.Day/10)+0x30);
   DisplayOneChar(15,0,(CurrentTime.Day%10)+0x30);
   LCM_power=1;

while(1) 
{ 
   DS1302_GetTime(&CurrentTime); 
 // printf("year:%d\n\t",(int)CurrentTime.Year);
 // printf("month:%d\n\t",(int)CurrentTime.Month);
 // printf("day:%d\n\t",(int)CurrentTime.Day);
 // printf("week:%d\n\t",(int)CurrentTime.Week);
 // printf("Hour:%d\n\t",(int)CurrentTime.Hour);
 // printf("Minute:%d\n\t",(int)CurrentTime.Minute);
  //printf("Second:%d\n\t",(int)CurrentTime.Second);


  
   
   DisplayOneChar(6,1,(CurrentTime.Week)+0x30);
   DisplayOneChar(8,1,(CurrentTime.Hour%100)/10+0x30);
   DisplayOneChar(9,1,(CurrentTime.Hour%10)+0x30);
   DisplayOneChar(11,1,(CurrentTime.Minute/10)+0x30);
   DisplayOneChar(12,1,(CurrentTime.Minute%10)+0x30);
   DisplayOneChar(14,1,(CurrentTime.Second/10)+0x30);
   DisplayOneChar(15,1,(CurrentTime.Second%10)+0x30);
   key01=1;
   if(!key01)
   {
   key01=1;
   Delay5Ms();
   if(!key01)
	   {
	   LCM_power=~LCM_power;
	   }
   }
} 
} 

⌨️ 快捷键说明

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