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

📄 timer00.c

📁 这是用51开发的电子时钟
💻 C
字号:
/*说明:此程序只能让液晶从00:00:00开始计时,只能网液晶中读入数据*/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit rs=P3^5;
sbit lcden=P3^4;
sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
uchar code table[]={"2009-2-7 STA"};
uchar code table1[]={"    00:00:00"};
char shi,fen,miao;
uint count;
void delay(uint z)
{  uint x,y;
   for(x=z;x--;x>0)
      for(y=110;y--;y>0);
}
void write_com(uchar com)  //写指令rs=L,RW=L,lcden=高脉冲
{
   rs=0;
   lcden=0;
   P0=com;
   delay(5);  //控制写入指令的速率,可以省略
   lcden=1;
   delay(5);
   lcden=0;
     
}
void write_date(uchar date)//写数据rs=H
{
   rs=1;
   lcden=0;
   P0=date;
   delay(5); //控制写入数据的速率 ,可以省略
   lcden=1;
   delay(5);
   lcden=0;
}
/*初始化液晶,定时器*/
void init()
{
  write_com(0x38);
  write_com(0x0c);//开显示,无光标
  write_com(0x06);
  write_com(0x01);//清屏
  TMOD=0x01;
  EA=1;
  ET0=1;
  TR0=1;
  TH0=65536-50000/256;
  TL0=65536-50000%256;   
}
void write_sfm(uchar add,uchar date)
{  uchar ten,ge;
   ten=date/10;
   ge=date%10;
   write_com(0x80+0x40+add);
   write_date(0x30+ten);
   write_date(0x30+ge);
}
/*主函数*/
void main()
{
  uint i;
  init();
  
  for (i=0;i<=12;i++)
  write_date(table[i]);
  write_com(0x80+0x40);
  for(i=0;i<12;i++)
  write_date(table1[i]);
  while(1);
}
void timer0() interrupt 1
{
   TH0=65536-50000/256;
   TL0=65536-50000%256;	//50ms
   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(4,shi);
		 }
		 write_sfm(7,fen);
	   }
	   write_sfm(10,miao);

	   
   } 
}

⌨️ 快捷键说明

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