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

📄 shizhong.c

📁 51单片机1602液晶可调时钟通过了proteusfa仿真测试
💻 C
字号:
#include<reg52.h> 
#define uchar unsigned char 
#define uint unsigned int
uchar code table[]=" 2008-03-25 MON";
uchar code table1[]="   10-10-10";
uchar code table2[]="  LIU TIAN WEI";
uchar code table3[]="QQ:372594681";
uchar ci,miao=10 ,fen=10 ,shi=10,jianci  ,gao,di,zen,jian;
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
sbit AA=P2^6;
sbit BB=P2^7;
sbit CC=P3^0;
void delay(uint x)			/*延时函数*/
{
	uint i,j;
	for(i=x;i>0;i--)
		for(j=110;j>0;j--);
}
void write_cod(uchar cod)   /*写指令函数*/
{
	E=0;
	RS=0;
	RW=0;
	P0=cod;
	delay(5);
	E=1;
	delay(5);
	E=0;
		
}
void write_date(uchar date)  /*写数据函数*/
{
	E=0;
	RS=1;
	RW=0;
	P0=date;
	delay(5);
	E=1;
	delay(5);
	E=0;
		
}
void init()				     /*初始化函数*/
{
	uchar num;
	write_cod(0x38);		/*液晶工作状态定义*/
	write_cod(0x0c);
	write_cod(0x06);
	write_cod(0x01);
	write_cod(0x80+0x16);   /*第一行*/ 
	for(num=0;num<14;num++)
	{
		write_date(table2[num]);	
		delay(5);
	}
	write_cod(0x80+0x56);	 /*第二行*/ 
	for(num=0;num<12;num++)
	{
		write_date(table3[num]);	
		delay(5);
	}
	for(num=0;num<20;num++)
	{
		write_cod(0x1c);
		delay(100);
	}
	delay(1000);
	write_cod(0x01);
	write_cod(0x06);
	write_cod(0x80);
	for(num=0;num<15;num++)
	{
		write_date(table[num]);	
		delay(80);
	}
	write_cod(0x80+0x40);
	for(num=0;num<12;num++)
	{
		write_date(table1[num]);	
		delay(80);
	}
	TMOD=0x01;
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	EA=1;	
	ET0=1;
	TR0=1;
}
void xianshi(uchar add,uchar shu)
{
	gao=shu/10;
	di=shu%10;
	write_cod(0x80+0x40+add);
	write_date(0x30+gao);
	write_date(0x30+di);
}
zenjian(uchar xx)
{
			zen=xx;
			if(BB==0)
			delay(15);
			if(BB==0)
		{ 
			while(!BB);
			zen++;
			if(zen==60)
			zen=0;
			//miao=zen;
			
		}
			if(CC==0)
			delay(15);
			if(CC==0)
		{ 
			while(!CC);
			zen--;
			if(zen==0)
			zen=59;
			//miao=zen;
			
		}  

return zen;
}
void  key()
{
	if(AA==0)
	delay(15);
	if(AA==0)
	{ while(!AA);
	 TR0=0;
	 jianci++;
	}
	if(jianci==1)
	{
	
     	write_cod(0x80+0x40+9);
		write_cod(0x0e);
		miao=zenjian( miao);
	    xianshi(9,miao);
	
		
		 
		
	}
	if(jianci==2)
	{
		write_cod(0x80+0x40+6);
		write_cod(0x0e);
		fen=zenjian(fen);
	
		xianshi(6,fen);
		 
	}
	if(jianci==3)
	{
		write_cod(0x80+0x40+3);
		write_cod(0x0e);
		shi=zenjian(shi);
		xianshi(3,shi);
		 
	}
	if(jianci==4)
	{
	  	jianci=0;
	  //write_cod(0x80+0x40+7);
		write_cod(0x0c);
		TR0=1;
	}

}

void main()
{
	init();
	while(1)
	{
		key();
		if(ci==20)
		{
	    	ci=0;
			miao++;
			if(miao==60)
			{
				miao=0;
				fen++;
				if(fen==60)
				{
					  fen=0;
					  shi++;
					if(shi==24)
					  shi=0;
					xianshi(3,shi);
					
			   	}
				xianshi(6,fen);
			}
			xianshi(9,miao);	
	    }
 
	}
 
}
void timer0() interrupt 1
{
	EA=0;
	ET0=0;
	TR0=0;
	ci++;
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	EA=1;
	ET0=1;
	TR0=1;
	
	
}

⌨️ 快捷键说明

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