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

📄 lesson9.c

📁 用1602液晶显示屏显示出时间,并且可以定义按键更改时间
💻 C
字号:
#include<reg52.h>
#define uchar unsigned char 
#define uint unsigned int
sbit rs=P3^0;
sbit rw=P3^1; 
sbit s1=P1^1;
sbit s2=P1^2;
sbit s3=P1^3;
sbit lcden=P3^2;
uchar count,s1num;
char shi,fen,miao;
uchar code table[]="  2009-03-10 MON";
uchar code table1[]="00:00:00";

void delay (uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
   for(y=100;y>0;y--);
}

void write_com(uchar com)
{
 rs=0;
 rw=0;
 P0=com;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
}


void write_date(uchar date)
{
 rs=1;
 rw=0;
 P0=date;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
}

void write_sfm(uchar add,uchar date)
{
	uchar shi,ge;
	shi=date/10;
	ge=date%10;
	write_com(0x80+0x40+add);
	write_date(0x30+shi);
	write_date(0x30+ge);
	}

void init()
{
 uchar num;
 lcden=0;
 write_com(0x38);
 write_com(0x0c);
 write_com(0x06);
 write_com(0x01);
 write_com(0x80);
 for(num=0;num<15;num++)
  {
   write_date(table[num]);

   }

  write_com(0x80+0x40);

  for(num=0;num<8;num++)
   {
    write_date(table1[num]);
 
	TMOD=0x01;
	TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
	ET0=1;
	EA=1;
	TR0=1;

   }
}

void keyscan()
{
 if(s1==0)
  {
    delay(5);
    if(s1==0)
    { 
      while (!s1);
	  s1num++;	  
     }
  }
  if(s1num==1)
  {
 	TR0=0;
	write_com(0x0f);
	write_com(0x80+0x40+7); 
	if(s2==0)
    {
	   	delay(5);
		if(s2==0)
		{
		 while(!s2);
		 miao++;
		 if(miao==60)
		 {
		  miao=0;
		  }
		  write_sfm(6,miao);
        }
     }
	 if(s3==0)
     {
	   	delay(5);
		if(s3==0)
		{
		 while(!s3);
		 miao--;
		 if(miao==0)
		 {
		  miao=59;
		  }
		  write_sfm(6,miao);
         }
	 }
  }

  if(s1num==2)
  {
	write_com(0x80+0x40+4); 
	if(s2==0)
    {
	   	delay(5);
		if(s2==0)
		{
		 while(!s2);
		 fen++;
		 if(fen==60)
		 {
		  fen=0;
		  }
		  write_sfm(3,fen);
         }
    }
	if(s3==0)
     {
	   	delay(5);
		if(s3==0)
		{
		 while(!s3);
		 fen--;
		  if(fen==0)
		 {
		  fen=59;
		  }	
		  write_sfm(3,fen);
         }
	 }
  }
  if(s1num==3)
  {
	write_com(0x80+0x40+1); 
	if(s2==0)
    {
	   	delay(5);
		if(s2==0)
		{
		 while(!s2);
		 shi++;
		 if(shi==24)
		 {
		  shi=0;
		  }
		  write_sfm(0,shi);
         }
     }
	 if(s3==0)
     {
	   	delay(5);
		if(s3==0)
		{
		 while(!s3);
		 shi--;
		 if(shi==0)
		 {
		  shi=23;
		  }
		  write_sfm(0,shi);
         }
	 }
	 }
  if(s1num==4)
  {
    s1num=0;
	write_com(0x0c);
	TR0=1;
   }
  }

  
 

void main()
{
 init();
 while(1)
 {
 keyscan();
 }
 }

void timer0() interrupt 1
{
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	count++;
	if(count==20)
		{
			count=0;
			miao++;
			if(miao==60)
			{
				miao=0;
				fen++;
				if(fen==60)
				{
					fen=0;
					shi++;
					if(shi==24)
					{
						shi=0;
					}
				  write_sfm(0,shi);
				}
				write_sfm(3,fen);
			}
			write_sfm(6,miao);
			
		}
} 
    

⌨️ 快捷键说明

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