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

📄 main.c

📁 KeilC环境下
💻 C
字号:
#include "reg51.h"
#include "main.h"
#include "type.h"
#include "lcd.h"
#include "public.h"
#include "ds1302.h"
#include "ds18b20.h"


#define sizeofA(n) sizeof(n)-1

void DisTime(void);
void ReadTmp(void);
void init1302(void);
					   
extern uchar cur_time[7];

const uchar code Welcome[]={"   Welcome !!   www.jssvc.edu.cn"};
const uchar code BcdAscii[]={"0123456789ABCDEF"};
const uchar code DS18B20Error[]={"Error"};
const uchar code LcdDateHead[]={"20"};
const uchar code LcdDateBack[]={"   "};
const uchar code LcdTempHead[]={" T:"};
const uchar code *Week[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; 
const uchar code InitTime[7]={0x00,0x35,0x11,0x24,0x11,0x06,0x07}; //Init:秒,分,时,日,月,星期,年				 

uchar   ddd[5];
uchar   Date[8],Time[8];
uchar   DisAll[14];
int     temp;
int     i,j;
sbit L1 = P1^3;
sbit L2 = P1^4;
sbit Beep = P2^4;



void main(void)
{
	//SP=0x5f;
	P0=0xff;
	P1=0xff;
	P2=0xff;
	P3=0xff;
	
	LcdReset();
	LcdClear();
	LcdFillWill(Welcome,sizeofA(Welcome));
 
	L1=0;
	L2=0;
	//Beep=0;
	DelayMs(1000);
	L1=1;
	L2=1;
	//Beep=1;
								
	init1302();			 
	DelayMs(2000);	   			
	
		
	while(1)
	{  
		
    
				   
		ReadTmp();
		if (DsErr==1)//DS18B20错误
		{
			LcdFillXY(DS18B20Error,sizeofA(DS18B20Error),11,1);
		} 
			DisTime();							
	} 
}

void DisTime(void)
{				
	get_time();
	//LcdClearDown();
	for (i=0,j=13;i<7;i++,j=j-2)
	{
		DisAll[j-1]=(cur_time[i]/16)|0x30;
		DisAll[j]=(cur_time[i]%16)|0x30;
	}
//	LcdFillXY(LcdDateHead,sizeofA(LcdDateHead),0,0);
//	LcdFillXY(DisAll,sizeof(DisAll),2,0);
	DelayMs(10);
	//日月年Date[]
	Date[0]=DisAll[0]; 	
	Date[1]=DisAll[1]; 
	Date[2]='.'; 	
	Date[3]=DisAll[4]; 
	Date[4]=DisAll[5]; 
	Date[5]='.'; 
	Date[6]=DisAll[6]; 
	Date[7]=DisAll[7];					
	LcdFillXY(LcdDateHead,sizeofA(LcdDateHead),0,0);
	LcdFillXY(Date,sizeof(Date),2,0);
	LcdFillXY(LcdDateBack,sizeofA(LcdDateBack),10,0);	  	 
	//星期
	LcdFillXY(Week[cur_time[5]%16],3,12,0);		     
	//时间
	Time[0]=DisAll[8];
	Time[1]=DisAll[9];	
	Time[2]=':';
	Time[3]=DisAll[10];
	Time[4]=DisAll[11];
	Time[5]=':';
	Time[6]=DisAll[12];
	Time[7]=DisAll[13];
	LcdFillXY(Time,sizeof(Time),0,1);	 	  		   		   
 													
}
								
void ReadTmp(void)
{	
	temp=ReadTemperature();
	ddd[0]=BcdAscii[(temp & 0xF000)>>12];
	if (ddd[0]==0x30) ddd[0]=' '; 
	ddd[1]=BcdAscii[(temp & 0x0F00)>>8];
	ddd[2]=BcdAscii[(temp & 0x00F0)>>4];
	ddd[3]='.';
	ddd[4]=BcdAscii[(temp & 0x000F)>>0];
	LcdFillXY(LcdTempHead,sizeof(LcdTempHead),8,1);
	LcdFillXY(ddd,sizeof(ddd),11,1);
	
}

void init1302(void)
{
	
	set_time(InitTime);
}




⌨️ 快捷键说明

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