📄 prt.c
字号:
#include <reg52.h>
#include <comm.h>
#include <lcd.h>
#define uchar unsigned char
#define uint unsigned int
extern uchar xdata high;
extern uint xdata nb_sp;
extern uchar key0;
extern bit DEBUG;
extern uchar code ASCII[118][16];
extern uchar code H_01[32],H_02[32],H_03[32],H_04[32],H_05[32],H_06[32],H_07[32];
extern uchar code H_08[32],H_09[32],H_10[32],H_11[32],H_12[32],H_13[32],H_14[32];
extern uchar code H_15[32],H_16[32],H_17[32],H_18[32],H_19[32],H_20[32],H_21[32];
extern uchar code H_22[32],H_23[32],H_24[32],H_25[32],H_26[32],H_27[32],H_28[32];
extern uchar code H_29[32],H_30[32],H_31[32],H_32[32],H_33[32],H_34[32],H_35[32];
extern uchar code H_36[32],H_37[32],H_38[32],H_39[32],H_40[32],H_41[32],H_42[32];
extern uchar code H_43[32],H_44[32],H_45[32],H_46[32],H_47[32],H_48[32],H_49[32];
extern uchar code H_50[32],H_51[32],H_52[32],H_53[32],H_54[32],H_55[32],H_56[32];
extern uchar code H_57[32],H_58[32],H_59[32],H_60[32],H_61[32],H_62[32],H_63[32];
extern uchar code H_64[32],H_65[32];
extern uchar xdata clockr [6];
extern uchar xdata err_ch[20];
uchar xdata clkasc[12],s;
void ascii_buff(uchar ascii,uchar *buf);
uchar bdata p_dot;
sbit dot7 = p_dot^7;
sbit dot6 = p_dot^6;
sbit dot5 = p_dot^5;
sbit dot4 = p_dot^4;
sbit dot3 = p_dot^3;
sbit dot2 = p_dot^2;
sbit dot1 = p_dot^1;
sbit dot0 = p_dot^0;
uchar xdata print_buff[640];
extern void clear_lcd(void);
extern uint rd_jsq;
extern uchar xdata file[400][MAX_TIME+8];
extern void rdtime(void);
void txtdata(uchar t_data)
{
TI=0;
SBUF=t_data;
wait3: if ( TI==0) goto wait3;
}
uchar rddata(void)
{
idata uchar rd = 0xff;
if ( RI == 0) goto wait3;
rd = SBUF;
RI=0;
wait3:
return(rd);
}
void out_pc(uint i)
{
idata j;
j = i/100;
txtdata(j);
j = i % 100;
j /= 10;
txtdata(j);
j = i % 10;
txtdata(j);
}
void to_pc(void)
{
idata uint i;
idata uchar c;
to_w0:
c = 0xff;
rd_jsq = 0;
while(c == 0xff)
{
if(rd_jsq > 2000) goto to_err;
c = rddata();
}
if(c == 0x7f) goto to_err;
if(c != 0x71) goto to_w0;
txtdata(0x72);
c = 0xff;
rd_jsq = 0;
while(c == 0xff)
{
if(rd_jsq > 2000) break;
c = rddata();
}
if(c != 0x73) goto to_err;
clear_lcd();
wr_hz(64+0*16,1,H_01);
wr_hz(64+1*16,1,H_02);
wr_hz(64+2*16,1,H_30);
wr_hz(64+3*16,1,H_18);
for(i=0;i<nb_sp;i++)
{
out_pc(i+1);
out_pc(file[i][FILE_XC]);
out_pc(file[i][FILE_YJ]);
}
txtdata(0x74);
txtdata(0x74);
c = 0xff;
rd_jsq = 0;
while(c == 0xff)
{
if(rd_jsq > 2000) break;
c = rddata();
}
if(c != 0x75) goto to_err;
clear_lcd();
wr_hz(64+0*16,1,H_30);
wr_hz(64+1*16,1,H_18);
wr_hz(64+2*16,1,H_50);
wr_hz(64+3*16,1,H_51);
key0 = 0;
goto to_end;
to_err:
clear_lcd();
wr_hz(64+0*16,1,H_30);
wr_hz(64+1*16,1,H_18);
wr_hz(64+2*16,1,H_48);
wr_hz(64+3*16,1,H_49);
key0 = 0;
to_end:
if(key0 != 6) goto to_end;
key0 = 0;
clear_lcd();
}
void ascii_buff(uchar ascii,uchar *buf)
{
idata uchar i;
ascii-=0x20;
for(i=0;i<16;i++) *buf++=ASCII[ascii][i];
}
void number_2p_map(uchar num,uchar *buff)
{
ascii_buff('.',buff); buff=buff+16;
ascii_buff('0'+num/10,buff); buff=buff+16;
ascii_buff('0'+num%10,buff);
}
void print_number(uint num)
{
idata uchar k,r,n;
uint idata ax,i;
i=0;k=100;ax=num;
for (r=0;r<3;r++)
{
ax=ax/k;
if ((ax|i|(r>1))==0) goto pn;
//txtdata(' ');
else
{
n='0';
for (i=0;i<ax;i++) n++;
txtdata(n);
}
pn: i=ax; ax=num%k; k=k/10;
}
}
/*
void print_p(uint num)
{
idata uchar r,n;
idata uint ax,i,k;
txtdata(9);
i=0;k=1000;ax=num;
for (r=0;r<4;r++)
{
ax=ax/k;
if ((ax|i|(r>1))==0) goto pp;
else
{
n='0';
for (i=0;i<ax;i++) n++;
}
txtdata(n);
if (r==2) txtdata('.');
pp:i=ax; ax=num%k; k=k/10;
}
}
*/
void print_2p(uint num)
{
idata uchar r,n;
idata uint ax,i,k;
txtdata(9);
i=0;k=100;ax=num;
for (r=0;r<3;r++)
{
ax=ax/k;
//if ((ax|i|(r>1))==0)
// goto pp;
//else
{
n='0';
for (i=0;i<ax;i++) n++;
}
txtdata(n);
if (r==0) txtdata('.');
i=ax; ax=num%k; k=k/10;
}
}
uchar print_chang(uchar dot_data)
{
idata uchar chang;
chang=0;
p_dot=dot_data;
if (dot7) chang|=0x01;
if (dot6) chang|=0x02;
if (dot5) chang|=0x04;
if (dot4) chang|=0x08;
if (dot3) chang|=0x10;
if (dot2) chang|=0x20;
if (dot1) chang|=0x40;
if (dot0) chang|=0x80;
return(chang);
}
void number_map(uint num,uchar *buff)
{
idata uchar k,r,n;
idata uint ax,i;
i=0;k=100;ax=num;
for (r=0;r<3;r++)
{
ax=ax/k;
if ((ax|i|(r>1))==0) ascii_buff(' ',buff);
else
{
n='0';
for (i=0;i<ax;i++) n++;
ascii_buff(n,buff);
}
buff=buff+16;
i=ax; ax=num%k; k=k/10;
}
}
void clk_asc(void)
{
rdtime();
s=clockr[5]; s >>= 4;
clkasc[11] = s + 0x30;
s=clockr[5]; s &= 0x0F;
clkasc[10] = s + 0x30;
s=clockr[4]; s >>= 4;
clkasc[9] = s + 0x30;
s=clockr[4]; s &= 0x0F;
clkasc[8] = s + 0x30;
s=clockr[3]; s >>= 4;
clkasc[7] = s + 0x30;
s=clockr[3]; s &= 0x0F;
clkasc[6] = s + 0x30;
s=clockr[2]; s >>= 0x04;
clkasc[5] = s + 0x30;
s=clockr[2]; s &= 0x0F;
clkasc[4] = s + 0x30;
s=clockr[1]; s >>= 0x04;
clkasc[3] = s + 0x30;
s=clockr[1]; s &= 0x0F;
clkasc[2] = s + 0x30;
s=clockr[0]; s &= 0x04;
clkasc[1] = s + 0x30;
s=clockr[0]; s &= 0x0F;
clkasc[0] = s + 0x30;
}
void print_16(uchar num)
{
idata uchar dot,k;
uchar xdata *buf;
for (dot=0;dot<2;dot++)
{
txtdata(27);
txtdata(75);
txtdata(num);
txtdata(0);
buf=print_buff;
buf=buf+dot;
for (k=0;k<num;k++)
{
txtdata(print_chang(*buf++));
buf++;
}
txtdata(0x0d);
}
}
void print_time(void)
{
clk_asc();
txtdata(27);txtdata(87);txtdata(2);
txtdata('2');txtdata('0');txtdata(clkasc[11]);txtdata(clkasc[10]);
txtdata('/');
txtdata(clkasc[9]);txtdata(clkasc[8]);
txtdata('/');
txtdata(clkasc[7]);txtdata(clkasc[6]);
txtdata(' ');txtdata(' ');txtdata(' ');
txtdata(clkasc[5]);txtdata(clkasc[4]);
txtdata(':');
txtdata(clkasc[3]);txtdata(clkasc[2]);
txtdata(0x0d);
txtdata(27);txtdata(87);txtdata(1);
}
void print_test(void)
{
idata uchar k;
idata uchar code *hp;
uchar xdata *buf;
txtdata(27);
txtdata(49);
txtdata(0);
txtdata(0x0d);
txtdata(0x0d);
print_time();
buf=print_buff;
if (err_ch[0]==0)
{
hp = H_54;
for (k=0;k<64;k++) *buf++=*hp++;
hp = H_03;
for (k=0;k<64;k++) *buf++=*hp++;
hp = H_01;
for (k=0;k<32;k++) *buf++=*hp++;
hp = H_56;
for (k=0;k<32;k++) *buf++=*hp++;
print_16(96);
}
else
{
hp = H_52;
for (k=0;k<64;k++) *buf++=*hp++;
hp = H_23;
for (k=0;k<64;k++) *buf++=*hp++;
ascii_buff(':',buf); buf=buf+16;
print_16(72);
txtdata(27);txtdata(87);txtdata(2);
txtdata(27);txtdata(68);txtdata(1);txtdata(8);txtdata(15);txtdata(22);txtdata(0);
for (k=0;k<20;k++)
{
if ( err_ch[k] == 0)
{
txtdata(0x0d);
break;
}
else
{
txtdata(9);
print_number(err_ch[k]);
if (((k+1)%4) == 0)
{
txtdata(0x0d);
txtdata(27);txtdata(68);txtdata(1);txtdata(8);txtdata(15);txtdata(22);txtdata(0);
}
}
}
txtdata(27);txtdata(87);txtdata(1);
}
txtdata(27);
txtdata(49);
txtdata(3);
txtdata(0x0d);
txtdata(0x0d);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -