📄 zhenxian.c
字号:
for(i=0;i<125;i++) ;
}
dingshi()
{
TMOD=0x02;
TL0=TH0=0x06;
EA=1;
ET0=1;
TR0=1;
}
void time0_int(void) interrupt 1
{
timen++; //到4000为1s;
if(timen==4000)TR0=0;
}
KEYSCAN()
{
P2_3=P2_4=P2_5=P2_6=1;
if((P2_3&&P2_4&&P2_5&&P2_6)==0)DELAY(8);
while(P2_3==0)KV=1;
while(P2_4==0)KV=2;
while(P2_5==0)KV=3;
while(P2_6==0)KV=4;
}
// 频显前准备
swch()
{
char i=0;
switch(F)
{
case 0:
for(i=0;i<16;i++)
fre[i]=uca_0[i];break;
case 1:
for(i=0;i<16;i++)
fre[i]=uca_1[i];break;
case 2:
for(i=0;i<16;i++)
fre[i]=uca_2[i];break;
case 3:
for(i=0;i<16;i++)
fre[i]=uca_3[i];break;
case 4:
for(i=0;i<16;i++)
fre[i]=uca_4[i];break;
case 5:
for(i=0;i<16;i++)
fre[i]=uca_5[i];break;
case 6:
for(i=0;i<16;i++)
fre[i]=uca_6[i];break;
case 7:
for(i=0;i<16;i++)
fre[i]=uca_7[i];break;
case 8:
for(i=0;i<16;i++)
fre[i]=uca_8[i];break;
case 9:
for(i=0;i<16;i++)
fre[i]=uca_9[i];break;
}
}
//频率显示前二进制到十进制转换
trans()
{
int i;
i=511*4e6/indata;
F=i/1000;
swch();
vShowOneChar(2,40,fre);
F=i/100%10;
swch();
vShowOneChar(2,48,fre);
F=i/10%10;
swch();
vShowOneChar(2,56,fre);
F=i%10;
swch();
vShowOneChar(2,64,fre);
}
//测量中 ...
show_celiang()
{
clearscr();
vShowOneChin16(2,32,uca_ce);
vShowOneChin16(2,48,uca_liang);
vShowOneChin16(2,64,uca_zhong);
vShowOneChar(2,80,uca_dian);
vShowOneChar(2,88,uca_dian);
vShowOneChar(2,96,uca_dian);
P1_5=0;P1_6=0; // 开继电器,开始计数,定时器开始定时1s
dingshi();
while(timen!=4000);
if(timen==4000)
{
P1_6=1;P1_5=1;timen=0;read_p0();show_result();
}
}
/* //显示20/19
Y2K_DISP()
{
F=TIME_BUFF[7]/10;
swch();
vShowOneChar(0,0,fre);
F=TIME_BUFF[7]%10;
swch();
vShowOneChar(0,8,fre);
}
//显示XX年
YR_DISP()
{
F=TIME_BUFF[5]/10;
swch();
vShowOneChar(0,16,fre);
F=TIME_BUFF[5]%10;
swch();
vShowOneChar(0,24,fre);
}
//显示XX月
MO_DISP()
{
F=TIME_BUFF[4]/10;
swch();
vShowOneChar(2,0,fre);
F=TIME_BUFF[4]%10;
swch();
vShowOneChar(2,8,fre);
}
//显示XX日
DT_DISP()
{
F=TIME_BUFF[3]/10;
swch();
vShowOneChar(2,32,fre);
F=TIME_BUFF[3]%10;
swch();
vShowOneChar(2,40,fre);
}
//显示星期X
DW_DISP()
{
switch(TIME_BUFF[6])
{
case 0:
vShowOneChin16(4,32,uca_tian);break;
case 1:
vShowOneChin16(4,32,uca_yi);break;
case 2:
vShowOneChin16(4,32,uca_er);break;
case 3:
vShowOneChin16(4,32,uca_san);break;
case 4:
vShowOneChin16(4,32,uca_si);break;
case 5:
vShowOneChin16(4,32,uca_wu);break;
case 6:
vShowOneChin16(4,32,uca_liu);break;
}
}
//显示时间XX整点
HR_DISP()
{
F=TIME_BUFF[2]/10;
swch();
vShowOneChar(6,0,fre);
F=TIME_BUFF[2]%10;
swch();
vShowOneChar(6,8,fre);
}
//显示时间XX分
MN_DISP()
{
F=TIME_BUFF[1]/10;
swch();
vShowOneChar(6,24,fre);
F=TIME_BUFF[1]%10;
swch();
vShowOneChar(6,32,fre);
}
//显示时间XX秒
SC_DISP()
{
F=TIME_BUFF[0]/10;
swch();
vShowOneChar(6,48,fre);
F=TIME_BUFF[0]%10;
swch();
vShowOneChar(6,56,fre);
}
//时间显示
time_display()
{
RD_ISC12028();
Y2K_DISP();
YR_DISP();
vShowOneChin16(0,32,uca_nian);
MO_DISP();
vShowOneChin16(2,16,uca_yue);
DT_DISP();
vShowOneChin16(2,48,uca_ri);
vShowOneChin16(4,0,uca_xing);
vShowOneChin16(4,16,uca_qi);
DW_DISP();
HR_DISP();
vShowOneChin16(6,16,uca_MAOHAO);
MN_DISP();
vShowOneChin16(6,40,uca_MAOHAO);
SC_DISP();
}
*/
//显示欢迎界面,1、测量;2、时钟
show_wel()
{
clearscr();
vShowOneChin16(2,32,uca_nin);
vShowOneChin16(2,48,uca_hao);
vShowGraph(1,64,32,4,bmp);
vShowOneChin12(6,0,uca_kai);
vShowOneChin12(6,12,uca_shi);
while(KV!=1)KEYSCAN();
//测量
if(KV==1)
{
KV=0;show_celiang();
}
/*//时钟
if(KV==4)
{
KV=0;
while(KV!=4&&KV!=1)
{
time_display();
KEYSCAN();
}
}*/
}
//读P0口数据
read_p0()
{
P3_6=0;
delay2ms();
indata=P0;
P3_6=1;
P3_7=0;
delay2ms();
indata=indata+256*P0;
P3_7=1;
P2_0=0;
delay2ms();
indata=indata+256*256*P0;
P2_0=1;
}
//显示测量结果
show_result()
{
clearscr();
vShowOneChin16(0,0,uca_ce);
vShowOneChin16(0,16,uca_liang);
vShowOneChin16(0,32,uca_pin);
vShowOneChin16(0,48,uca_lv);
vShowOneChin16(0,64,uca_wei);
vShowOneChin16(0,80,uca_MAOHAO);
vShowOneChin12(6,105,uca_tui);
vShowOneChin12(6,117,uca_chu);
vShowOneChin12(6,0,uca_fan);
vShowOneChin12(6,12,uca_hui);
trans();
vShowOneChar(3,80,uca_H);
vShowOneChar(3,88,uca_z);
while(KV!=2&&KV!=3)KEYSCAN();
if(KV==2)
{
KV=0;show_celiang();
}
if(KV==3)
{
KV=0;show_wel();
}
}
main()
{
P3_6=1;
P3_7=1;
P2_0=1;
P1_6=1;
P1_5=1;
vLCDInitialize();
show_wel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -