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

📄 1602时间函数.c

📁 采用AT89S51单片机的经典时钟程序
💻 C
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P1^0;
sbit rw=P1^1;
sbit e =P1^2;			
uchar hour,minute,second;
uint counter=0;  		  //250us计数单元
uchar n;      
////////////////////////////////////////////////////////////
void Timer0(void) interrupt 1    //T0中断服务函数
	{  
	counter++;
  	if(counter==4000)
	{
    counter=0;
    second++;
	}
  	if(second==60)  {second=0;minute++;}
    if(minute==60)  {minute=0;hour++;}
      if(hour==24)  {hour=0;}  
}
///////////////////////////////////////////////////////////1602显示函数
delay(uchar time)	 	//延时函数,12M下1us
	{
	while(time>0)
 		{time-- ;}
	}
write_cmd(uchar m)		//写指令,含指令码
	{ 
	rs=0;
 	rw=0;
 	P0=m;
	e=0;//
 	delay(250);
 	e=1;//e高脉冲
	}
write_data(uchar c)	  	//写数据
	{
	rs=1;
 	rw=0;
 	P0=c;
	e=0;//
 	delay(250);
 	e=1;//e高脉冲 
	}
position(uchar row,uchar colum)//写位置(第几行,第几列)
	{
	uchar p;
  	if(row==1)
    p=0x80+colum-1;
  	else
    p=0xc0+colum-1;
    write_cmd(p);
	}
display(uchar *s)			//写字符串
	{
	for(;*s!='\0';s++)
  	write_data(*s);
	}			

init_lcd(void)//标准初始化
	{
	delay(15000);
	write_cmd(0x38);	//显示模式设置(8位数据接口,双行显示,5×7点阵)
	delay(5000);
	write_cmd(0x38);
	delay(5000);
	write_cmd(0x38);	//以后写读数据时都要检测忙信号(此处没有)
	write_cmd(0x38);
	write_cmd(0x08);	//显示关闭
	write_cmd(0x01);	//显示清屏
	write_cmd(0x06);	//显示光标移动设置(地址计数递增,显示屏不移动)
	write_cmd(0x0c);	//显示开及光标设置(开显示,不显示光标)
	}
main()
	{
	TMOD=0x2;
	TH0=0x6;
	TL0=0x6;
	TR0=1;		   //开中断
	ET0=1;
	EA=1;          
 	
	hour=19;	   //设定时间初值
 	minute=41;
 	second=55;
	init_lcd();	   //初始化液晶
	
	while(1)
		{
		position(1,7);
		n=hour/10;
		write_data(n+48);		//单个字符显示,注意是映射码,液晶中是写入的内部规定的映射表
		n=hour%10;
		write_data(n+48);
		position(1,9);
		display(":");
		n=minute/10;
  		write_data(n+48);
		n=minute%10;
  		write_data(n+48);
  		position(1,12);
		display(":");
		n=second/10;
		write_data(n+48);
		n=second%10;
		write_data(n+48);
 	
		position(2,2);
 		display("Realtime Clock");
		}	
			
 		
	}

⌨️ 快捷键说明

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