资源简介

stc89c51/52单片机,始终显示程序,包括3个按键可以设置和调剂 时、分、秒、以及年、月、日

资源截图

代码片段和文件信息

#include
#include
#define uchar unsigned char
#define uint  unsigned int
#define  LCD_date P0
sbit LCD_RS=P2^6;
sbit LCD_RW=P2^5;
sbit LCD_EN=P2^7;
uchar count shifenmiao;
uchar code lin1[]=“  2016-10-26 MON “;
uchar code lin2[]=“     :  :       “;
void Lcdwritecom(uchar com);
void write_sfm(uchar adduchar date);
void Lcdwritedate( uchar dat);
void LcdInit();
void delay(uint z)
{uint xy;
   for(x=z ;x>0;x--)
for(y=110;y>0;y--);
}
 void main()
{
LcdInit();
 while(1)
 {

 }
  }
void Lcdwritecom( uchar com)
{
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
P0=com;
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
}
void Lcdwritedate( uchar dat)
{
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=dat;
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
}
void LcdInit()
{ uchar num;
shi=18;
fen=01;
miao=30;
LCD_EN=0;
Lcdwritecom(0x01);
Lcdwritecom(0x38);
Lcdwritecom(0x0c);

Lcdwritecom(0x80);
for(num=0;num<16;num++)
{ Lcdwritedate(lin1[num]);
    delay(5);
}
Lcdwritecom(0x90);
for(num=0;num<16;num++)
{Lcdwritedate(lin2[num]);
  delay(5);
}
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-5000)%256;
EA=1;
ET0=1;
TR0=1;
}
void write_sfm(uchar adduchar date)
{
 uchar shige;
 shi=date/10;
 ge=date%10;
 Lcdwritecom(add);
 Lcdwritedate(0x30+shi);
 Lcdwritedate(0x30+ge);
}
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(0x90+1shi);
write_sfm(0x90+3fen);
   write_sfm(0x90+5miao);  
}
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-01-09 23:58  LCD1602时钟程序\
     文件        1702  2015-10-26 18:02  LCD1602时钟程序\shizhong.c.c

评论

共有 条评论