?? show.c.svn-base
字號:
#include "NEW_8051.H"
#include <intrins.h>
#include"task.h"
#include"sbit.h"
uchar a; //標志計數器 a為自動轉換顯示時間,b為手動與自動標志
uchar b;
uchar f;
uchar ha;
uchar msec;
uchar id;
uchar x;
uchar y;
uchar h;
uchar p;
uchar n;
uchar q;
uchar l;
uchar mm;
uchar OldSec;
/********************************************************/
void Show_word() //串行輸出顯示
{
for(h=0;h<16;h++)
{
n=(h+1)%4;
if((h==0)||(h==15))
{
for(l=0;l<8;l++)
{
if(h==0)
Send_data6((&timer[15][p]),(&timer[15][5]));
else
Send_data6((&timer[15][5]),(&timer[15][3-p]));
}
P0=sw[h]; //輸出行信號
STR=1;
STR=0;
STR=1;
//鎖存為高,595鎖存信號
DelayMs(); //延時,等待一段時間,讓這列顯示的內容在人眼內產生“視覺暫留”現象。*/
if(h==0)
{
q++;
h++;
if(q>18)
{
p++;
q=0;
if(p>3)
p=0;
}
}
}
if((id==0)&&(f==0)||(id==1)) //f為三秒轉換顯示
{
if(Hour/16<1)
{
r=0;Send_data9((&timer[0][0]),(&timer[0][0]));
} //不顯示
else
{
r=0;
Send_data9((&timer[0][0]),(&timer[Hour/16][h]));
}
if((Flicker==1)&&(id==1)) //閃爍標志為1時不亮,為零時亮
{
Send_data((&timer[0][0]),(&timer[Hour%16][h])); //不顯示
Send_data((&timer[0][0]),(&timer[10][h])); //不顯示
Send_data((&timer[0][0]),(&timer[Cent/16][h])); //不顯示
Send_data((&timer[0][0]),(&timer[Cent%16][h])); //不顯示
}
else
{
Send_data((&timer[2][h]),(&timer[Hour%16][h])); //20年
if(w==0)
Send_data((&timer[0][h]),(&timer[10][h]));
else
Send_data((&timer[0][h]),(&timer[17][h]));
Send_data((&timer[Year/16][h]),(&timer[Cent/16][h])); //年值
Send_data((&timer[Year%16][h]),(&timer[Cent%16][h]));
}
if(w==0)
Send_data((&hanzi[h*2+641]),(&timer[10][h])); //年字符
else
Send_data((&hanzi[h*2+641]),(&timer[17][h]));
Send_data((&hanzi[h*2+640]),(&timer[Sec/16][h]));
ri=0;
Send_data9((&timer[0]),(&timer[Sec%16][h])); //不顯示
}
if((id==0)&&(f==1)||(id==2)||(id==3))
{
if((Flicker==1)&&(id==2)) //閃爍標志為1時不亮,為零時亮
{
Send_data9((&timer[0][0]),(&timer[Hour/16][h])); //不顯示
Send_data((&timer[0][0]),(&timer[Hour%16][h])); //不顯示
}
else if((Month/16<1)&&(Hour/16<1))
{
r=0;
Send_data9((&timer[0]),(&timer[0][0]));
Send_data((&timer[Month%16][h]),(&timer[Hour%16][h]));
} //月十位為零時不顯示
else if((Month/16<1)&&(Hour/16>0))
{
r=0;
Send_data9((&timer[0]),(&timer[Hour/16][h]));
Send_data((&timer[Month%16][h]),(&timer[Hour%16][h]));
} //月十位為零時不顯示
else if((Month/16>0)&&(Hour/16<1))
{
r=0;
Send_data9((&timer[Month/16][h]),(&timer[0][0]));
Send_data((&timer[Month%16][h]),(&timer[Hour%16][h]));
}
else
{
r=0;
Send_data9((&timer[Month/16][h]),(&timer[Hour/16][h])); //月值
Send_data((&timer[Month%16][h]),(&timer[Hour%16][h]));
}
if(w==0)
Send_data((&hanzi[h*2+673]),(&timer[10][h])); //月字符
else
Send_data((&hanzi[h*2+673]),(&timer[17][h]));
Send_data((&hanzi[h*2+672]),(&timer[Cent/16][h]));
if((Flicker==1)&&(id==3)) //閃爍標志為1時不亮,為零時亮
{
Send_data((&timer[0][0]),(&timer[Cent%16][h])); //不顯示
Send_data((&timer[0][0]),(&timer[10][h])); //不顯示
}
else
{
Send_data((&timer[Day/16][h]),(&timer[Cent%16][h])); //日值
if(w==0)
Send_data((&timer[Day%16][h]),(&timer[10][h]));
else
Send_data((&timer[Day%16][h]),(&timer[17][h]));
}
Send_data((&hanzi[h*2+961]),(&timer[Sec/16][h])); //日字符
ri=0;Send_data9((&hanzi[h*2+960]),(&timer[Sec%16][h]));
}
/**********************************************************************************/
if((id==0)&(f==5)|(id==4))//f為三秒轉換顯示
{
if(Hour/16<1)
{
r=0;
Send_data8((&timer[0]),(&timer[0][0]));
} //不顯示
else
{
r=0;
Send_data8((&timer[0]),(&timer[Hour/16][h]));
}
Send_data2((&hanzi[h*2+705]),(&timer[Hour%16][h])); //星字符
if(w==0)
{Send_data2((&hanzi[h*2+704]),(&timer[10][h])); }
else
{Send_data2((&hanzi[h*2+704]),(&timer[17][h]));}
Send_data2((&hanzi[h*2+737]),(&timer[Cent/16][h])); //期字符
Send_data2((&hanzi[h*2+736]),(&timer[Cent%16][h]));
if((Flicker==1)&&(id==4)) //閃爍標志為1時不亮,為零時亮
{
Send_data2((&timer[0][0]),(&timer[10][h])); //不顯示
Send_data2((&timer[0][0]),(&timer[Sec/16][h])); //不顯示
}
else
{
if(w==0)
{ Send_data2((&hanzi[Week%16*32+h*2+737]),(&timer[10][h]));} //星期值
else
{Send_data2((&hanzi[Week%16*32+h*2+737]),(&timer[17][h]));} //星期值
Send_data2((&hanzi[Week%16*32+h*2+736]),(&timer[Sec/16][h]));
}
ri=0;
Send_data8((&timer[0][0]),(&timer[Sec%16][h]));
} //不顯示
/**************************************************************************************/
if(id>4) //f為三秒轉換顯示
{
SERr=SERg=1;
if((Flicker==1)&&(id==5)) //閃爍標志為1時不亮,為零時亮
{
Show_pass1(); //不顯示一個字
}
else
{
if(Hour/16<1)
Send_data5(&timer[0][0]); //時十位小于1時不顯示
else
Send_data5(&timer[Hour/16][h]); //時值
Send_data5(&timer[Hour%16][h]);
}
Send_data4(&timer[10][h]); //兩個點
if((Flicker==1)&&(id==6)) //閃爍標志為1時不亮,為零時亮
{
Show_pass1(); //不顯示一個字
}
else
{
Send_data3(&timer[Cent/16][h]);
Send_data3(&timer[Cent%16][h]); //分值
}
Send_data4(&timer[10][h]); //兩個點
if((Flicker==1)&&(id==7)) //閃爍標志為1時不亮,為零時亮
{
Show_pass1(); //不顯示一個字
}
else
{
Send_data4(&timer[Sec/16][h]); //秒
Send_data4(&timer[Sec%16][h]);
}
}
if((id==0)&&(f==3)) //f為三秒轉換顯示
{
if(Hour/16<1)
{
r=0;
Send_data7((&hanzi[h*2+1185]),(&timer[0][0]));//溫字符
}
else
{
r=0;
Send_data7((&hanzi[h*2+1185]),(&timer[Hour/16][h]));
}
Send_data1((&hanzi[h*2+1184]),(&timer[Hour%16][h]));
if(w==0)
Send_data1((&hanzi[h*2+1217]),(&timer[10][h])); //度字符
else
Send_data1((&hanzi[h*2+1217]),(&timer[17][h]));
Send_data1((&hanzi[h*2+1216]),(&timer[Cent/16][h]));
Send_data1((&timer[10][h]),(&timer[Cent%16][h])); //兩個點
if(U8T_data_H/10==0x00)
{
if(w==0)
Send_data1((&timer[0][0]),(&timer[10][h]));
else
Send_data1((&timer[0][0]),(&timer[17][h]));
}
else
{
if(w==0)
Send_data1((&timer[U8T_data_H/10][h]),(&timer[10][h])); //溫度值的十位值
else
Send_data1((&timer[U8T_data_H/10][h]),(&timer[17][h]));
}
Send_data1((&timer[U8T_data_H%10][h]),(&timer[Sec/16][h])); //溫度值的個位
ri=0;
Send_data7((&timer[11][h]),(&timer[Sec%16][h]));
}
/******************************************************************************/
if((id==0)&&(f==4)) //f為三秒轉換顯示
{
if(Hour/16<1)
{
r=0;
Send_data7((&hanzi[h*2+3457]),(&timer[0][0]));
} //濕字符
else
{
r=0;
Send_data7((&hanzi[h*2+3457]),(&timer[Hour/16][h]));
}
Send_data1((&hanzi[h*2+3456]),(&timer[Hour%16][h]));
if(w==0)
Send_data1((&hanzi[h*2+1217]),(&timer[10][h])); //度字符
else
Send_data1((&hanzi[h*2+1217]),(&timer[17][h]));
Send_data1((&hanzi[h*2+1216]),(&timer[Cent/16][h]));
Send_data1((&timer[10][h]),(&timer[Cent%16][h])); //兩個點
if(U8RH_data_H/10==0x00)
{
if(w==0)
Send_data1((&timer[0][0]),(&timer[10][h]));
else
Send_data1((&timer[0][0]),(&timer[17][h]));
}
else
{
if(w==0)
Send_data1((&timer[U8RH_data_H/10][h]),(&timer[10][h]));
else
Send_data1((&timer[U8RH_data_H/10][h]),(&timer[17][h]));
} //濕度值的十位值
Send_data1((&timer[U8RH_data_H %10][h]),(&timer[Sec/16][h]));//濕度值的個位
ri=0;
Send_data7((&timer[16][h]),(&timer[Sec%16][h])); //濕度值的符號
}
/***********************************************************************************************/
//修改程
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -