📄 p1.c
字号:
//1302******************************
sbit sclk=P1^0;
sbit sio=P1^1;#define lcd_d XBYTE[0xd500]
#define lcd_c XBYTE[0xd501]
void delay(void)
{
uchar i,j,k;
for(i=0;i<=10;i++)
{
for(j=0;j<=10;j++)
{
for(k=0;k<=10;k++)
{;}
}
}
}
void delay1(uchar i)
{
while(i)
{
delay();
i--;
}
}
void wait(uchar i)
{
while(i)
{i--;}
}
void wcom(uchar a)
{
wait(6);
lcd_c=a;
}
void wdata(uchar a)
{
wait(6);
lcd_d=a;
}
void mps(uint add,uchar code *hzp)
{
uchar i;
uchar j;
uchar k;
add/=2;
wcom(0x4c);
for(i=0;i<0x10;i++)
{
wcom(0x46);wdata(add%256);wdata(add/256);
wcom(0x42);
kick_dog();/*t3 dog*/
for(k=0;k<2;k++)
{
j=*hzp;
gray(j,color);
hzp++;
}
add=add+0x28;
}
}
void dis_image(int dis_cfg[3],uchar code image[])
{
uchar i;
uchar j;
uchar k;
int xdata add=dis_cfg[0];
int xdata line=dis_cfg[1];
int xdata row=dis_cfg[2];
uchar code *p_disp=image;
add/=2;
wcom(0x4c);
for(i=0;i<line;i++)
{
wcom(0x46);wdata(add%256);wdata(add/256);
wcom(0x42);
kick_dog();/*t3 dog*/
for(k=0;k<row;k++)
{
j=*p_disp++;
gray(j,color);
}
add=add+0x28;
}
}
void gray(uchar a,uchar color)
{
if(color==0x03)
{wdata(a);}
else if(color==0x0c)
{wdata(~a);}
}
void start02(void)
{
time1302_on();
sclk=0;sio=0;
/* wait(2);*/
time1302_off();
}
void stop02(void)
{
time1302_off();
}
void wr02(uchar a)
{
uchar i;
for(i=0;i<8;i++)
{
sclk=0;
/* wait(2);*/
sio=a&0x01;
a=a>>1;
sclk=1;
/* wait(2);*/
}
}
uchar rd02(void)
{
uchar i;
bdata uchar a=0,b=0;
for(i=0;i<8;i++)
{
a=a>>1;
sclk=0;
wait(1);
sclk=1;
/* wait(2);*/
b=sio;
b=b<<7;
a=a+b;
}
return(a);
}
void set1302(void)
{
start02();
wr02(0xbe);
wr02(sec);
wr02(min);
wr02(hr);
wr02(date);
wr02(month);
wr02(day);
wr02(year);
wr02(0x00);
wr02(0xa5);
stop02();
}
void get1302(void)
{
start02();
wr02(0xbf);
sec=rd02();
min=rd02();
hr=rd02();
date=rd02();
month=rd02();
day=rd02();
if(day>0x06)
{day=0x00;}
year=rd02();
stop02();
}
void disp_time(void)
{
uchar xdata i;
uint xdata view;
if(hr!=hr_old)
{
hr_old=hr;
/*20***/
mps(160*111+18,tab_n2);
mps(160*111+20,tab_n0);
mps(160*111+22,*(p_disp+(year>>4)));
mps(160*111+24,*(p_disp+(year&0x0f)));
mps(160*111+26,symbol0);
mps(160*111+28,*(p_disp+(month>>4)));
mps(160*111+30,*(p_disp+(month&0x0f)));
mps(160*111+32,symbol0);
mps(160*111+34,*(p_disp+(date>>4)));
mps(160*111+36,*(p_disp+(date&0x0f)));
mps(160*111+38,text12);
mps(160*111+42,text12+0x20);
mps(160*111+46,text13+0x20*(day&0x07));
mps(160*111+50,*(p_disp+((hr>>4)&0x07)));
mps(160*111+52,*(p_disp+(hr&0x0f)));
mps(160*111+54,symbol1);
}
if(min_old!=min)
{
min_old=min;
mps(160*111+56,*(p_disp+(min>>4)));
mps(160*111+58,*(p_disp+(min&0x0f)));
if(++min_record>=5)
{menu_1=17;
min_record=0;
}
if(++min_recordh>=15)
{
for(i=0;i<8;i++)
{
if((comm_ok&squre[i])!=0)
{
view=iicre[i][0xac];
view=view*256+iicre[i][0xad];
history_t[i][history_p]=view;
view=iicre[i][0xd0];
view=view*256+iicre[i][0xd1];
history_rh[i][history_p]=view;
}
else
{
history_t[i][history_p]=0;
history_rh[i][history_p]=0;
}
}
min_recordh=0;
get1302();
settime7();
history_time=second7;
if(++history_p>95)
{
history_p=0;
history_r=0x5a;
}
history_k=0x6a;
}
}
/*
mps(160*111+58,symbol1);
mps(160*111+60,*(p_disp+(sec>>4)));
mps(160*111+62,*(p_disp+(sec&0x0f)));
*/
}
void dis_string(int address,add1,uchar length)
{
uchar i;
for(i=0;i<length;i++)
{
mps(address,add1);
address=address+4;
add1=add1+0x20;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -