📄 nyr.txt
字号:
#include <reg52.h>
#include"intrins.h" //_nop_();延时函数用
#define uchar unsigned char
#define uint unsigned int
sbit RS=P3^5;
sbit E=P3^7;
sbit RW=P3^6;
uchar add;
uchar data dis[6]=
{0x00,0x00,0x00,0x00,0x00,0x00}; //存计算结果
uchar data timedata[6]=
{0x00,0x00,0x00,0x00,0x00,0x00};
uchar data nyr[6]=
{0x00,0x00,0x00,0x00,0x00,0x00};
//*********************
void shijian(uchar *p)
{
dis[11]=timedata[0]+0x30;dis[10]=timedata[1]+0x30;
dis[9]=timedata[2]+0x30;dis[8]=timedata[3]+0x30;
dis[7]=timedata[4]+0x30;dis[6]=timedata[5]+0x30;
}
//**********************
void zhuan(uchar *q)
{dis[4]=nyr[0]/10+0x30;dis[5]=nyr[0]%10+0x30;
dis[2]=nyr[1]/10+0x30;dis[3]=nyr[1]%10+0x30;
dis[0]=nyr[2]/10+0x30;dis[1]=nyr[2]%10+0x30;}
/*************延时*************/
delay1(uint z)
{
uint i,j;
for(i=0;i<z;i++)
for(j=0;j<120;j++)
;
}
//*****************************
//写指令子程序
wrcod(uchar i)
{
P1=i;
RS=0;
E=0;
delay1(7);
E=1;
}
//*****************************
//写数据子程序
wrshu(uchar i)
{
P1=i;
RS=1;
E=0;
delay1(2);
E=1;
}
//*****************************
//初始化液晶
chushi()
{
uchar coad;
coad=0x01; //清屏
wrcod(coad);
coad=0x06;
wrcod(coad); //输入方式控制
coad=0x0e;
wrcod(coad); //显示开关控制
coad=0x38;
wrcod(coad); //功能设定:设置16x2显示,5x7显示,8位数据接口
}
//****************************
//显示程序
xian1()
{
uchar i=0;
while(i<12)
{
wrshu(dis[i]);
i++;
}
}
//**********************
main()
{
uint i,j;
chushi();
while(1)
{for(i=0;i<=900;i++)
for(j=0;j<120;j++);
if(i==900)
{i=0;
timedata[0]++;
if(timedata[0]>=10)
{timedata[0]=0;timedata[1]++;
if(timedata[1])>=6
{timedata[1]=0;timedata[2]++;
if(timedata[2]>=10)
{timedata[2]=0;timedata[3]++;
if(timedata[3]>=6)
{timedata[3]=0;timedata[4]++;
if(timedata[4]>=10)
{timedata[4]=0;timedata[5]++;
}
if(timedata[5]==2)
{if(timedata[4]==4)
{timedata[4]=0;timedata[5]=0;nyr[0]++;
if(nyr[1]==1||nyr[1]==3||nyr[1]==5||nyr[1]==7||nyr[1]==8||nyr[1]==10||nyr[1]==12)
{if(nyr[0]>=32)nyr[1]++
}
if(nyr[1]==4||nyr[1]==6||nyr[1]==9||nyr[1]==11)
{if(nyr[0]>=31)nyr[1]++
}
if(nyr[1]==2&&((nyr[2]%4==0&&nyr[2]%100!==0)||nyr[2]%400!==0))
{if(nyr[0]>=30)nyr[1]++;
else if(nyr[0]>=29)nyr[1]++}
if(nyr[1]>=12)nyr[2]++;
if(nyr[2]>=100)
{nyr[2]=0}
}
}
}
}
}
}
}
shijian(timedata);
zhuan(nyr)
add=0xc0; //显示
wrcod(add);
xian();
delay1(200);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -