📄 p_hot.c
字号:
if(ss>9){ss=0;flag1=1;}
break;
case 15: //在横坐标轴上打印坐标 15 共9行
ss++;
if(ss>9){ss=0;flag1=1;}
break;
case 20: //在横坐标轴上打印坐标 20 共10行
ss++;
if(ss>10){ss=0;flag1=1;}
break;
case 25: //在横坐标轴上打印坐标 25 共10行
ss++;
if(ss>10){ss=0;flag1=1;}
break;
case 30: //在横坐标轴上打印坐标 30 共10行
ss++;
if(ss>10){ss=0;flag1=1;}
break;
case 35: //在横坐标轴上打印坐标 35 共10行
ss++;
if(ss>10){ss=0;flag1=1;}
break;
case 40: //在横坐标轴上打印坐标 40 共10行
ss++;
if(ss>10){ss=0;flag1=1;}
break;
case 45: //在横坐标轴上打印坐标 45 共10行
ss++;
if(ss>10){ss=0;flag1=1;}
break;
case 50: //在横坐标轴上打印坐标 50 共10行
ss++;
if(ss>10){ss=0;flag1=1;}
break;
case 55: //在横坐标轴上打印坐标 55 共10行
ss++;
if(ss>10){ss=0;flag1=1;}
break;
case 60: //在横坐标轴上打印坐标 60 共10行
ss++;
if(ss>10){ss=0;flag1=1;}
break;
case 65: //在横坐标轴上打印坐标 65 共10行
ss++;
if(ss>10){ss=0;flag1=1;}
break;
case 70: //在横坐标轴上打印坐标 70 共10行
ss++;
if(ss>10){ss=0;flag1=1;}
break;
}
}
if(ss>0){print_data=print_data+9;} //除 1 外,其他数据都是5* 7点阵,x=x+2+9
else
{print_data=print_data+2;} //把两点之间的阶跃空白补上
send(print_data); // 将要打印x个点
for(tempi1=tempmin;tempi1<=tempmax;) //打印x个点
{ send(tempi1);
tempi1++;
}
if(ss>0)
{
ss1=ss-1;
switch(j2)
{
case 5:
for(i2=0;i2<7;) //打印数字 5 的点阵
{ tempi1=ll5[ss1][i2];
send(tempi1);
i2++;
}
i2=0;
break;
case 10: //打印数字 10 的点阵
if(ss1<=3)
{
for(i2=0;i2<7;)
{
tempi1=ll1[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-4;
for(i2=0;i2<7;)
{
tempi1=ll0[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 15: //打印数字 15 的点阵
if(ss1<=3)
{
for(i2=0;i2<7;)
{
tempi1=ll1[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-4;
for(i2=0;i2<7;)
{
tempi1=ll5[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 20: //打印数字 20 的点阵
if(ss1<=4)
{
for(i2=0;i2<7;)
{
tempi1=ll2[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-5;
for(i2=0;i2<7;)
{
tempi1=ll0[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 25: //打印数字 25 的点阵
if(ss1<=4)
{
for(i2=0;i2<7;)
{
tempi1=ll2[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-5;
for(i2=0;i2<7;)
{
tempi1=ll5[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 30: //打印数字 30 的点阵
if(ss1<=4)
{
for(i2=0;i2<7;)
{
tempi1=ll3[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-5;
for(i2=0;i2<7;)
{
tempi1=ll0[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 35: //打印数字 35 的点阵
if(ss1<=4)
{
for(i2=0;i2<7;)
{
tempi1=ll3[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-5;
for(i2=0;i2<7;)
{
tempi1=ll5[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 40: //打印数字 40 的点阵
if(ss1<=4)
{
for(i2=0;i2<7;)
{
tempi1=ll4[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-5;
for(i2=0;i2<7;)
{
tempi1=ll0[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 45: //打印数字 45 的点阵
if(ss1<=4)
{
for(i2=0;i2<7;)
{
tempi1=ll4[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-5;
for(i2=0;i2<7;)
{
tempi1=ll5[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 50: //打印数字 50 的点阵
if(ss1<=4)
{
for(i2=0;i2<7;)
{
tempi1=ll5[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-5;
for(i2=0;i2<7;)
{
tempi1=ll0[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 55: //打印数字 55 的点阵
if(ss1<=4)
{
for(i2=0;i2<7;)
{
tempi1=ll5[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-5;
for(i2=0;i2<7;)
{
tempi1=ll5[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 60: //打印数字 60 的点阵
if(ss1<=4)
{
for(i2=0;i2<7;)
{
tempi1=ll6[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-5;
for(i2=0;i2<7;)
{
tempi1=ll0[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 65: //打印数字 65 的点阵
if(ss1<=4)
{
for(i2=0;i2<7;)
{
tempi1=ll6[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-5;
for(i2=0;i2<7;)
{
tempi1=ll5[ss1][i2];
send(tempi1);
i2++;
}
}
break;
case 70: //打印数字 70 的点阵
if(ss1<=4)
{
for(i2=0;i2<7;)
{
tempi1=ll7[ss1][i2];
send(tempi1);
i2++;
}
}
else
{
ss1=ss1-5;
for(i2=0;i2<7;)
{
tempi1=ll0[ss1][i2];
send(tempi1);
i2++;
}
}
break;
} //switch 语句结束
} //if语句结束
send(0xc8); //横坐标轴点
send(0x0d); //回车换行
}
}
//////////////////////////////////////////////////////////画曲线子程序
void draw(unsigned int start_id,unsigned int end_id)
{
unsigned int temp_start,temp_end;
unsigned int temp_many,temp_many1;
unsigned int i,j;
unsigned char temp1,temp2,i1;
unsigned int temp3;
temp_start=start_id;
temp_end=end_id;
temp_many=(temp_end-temp_start)/2;
temp_many1=(temp_end-temp_start)/14;
if(flag168==1)
{
for(i=0;i<temp_many1;i++)
{
j=i*14;
temp3=temp_start+j;
fpread(temp3);
temp1=flash_read;
temp2=flash_read;
for(i1=0;i1<14;i1++)
{
temp3=temp_start+j+i1;
fpread(temp3);
if(temp1<flash_read){temp1=flash_read;}
if(temp2>flash_read){temp2=flash_read;}
}
j1=i%20; //判断是否在第20个点上
if(i!=0&j1==0){j2++;}
j3=i%100;
key_i=in1;
if(key_i==0x7f)goto end_draw;
lian(temp1,temp2);
}
}
else
{
for(i=0;i<temp_many;i++)
{
j=i*2;
temp3=temp_start+j;
fpread(temp3);
temp1=flash_read;
temp3=temp_start+j+1;
fpread(temp3);
temp2=flash_read;
j1=i%20; //判断是否在第20个点上
if(i!=0&j1==0){j2++;}
j3=i%100;
key_i=in1;
if(key_i==0x7f)goto end_draw;
lian(temp1,temp2);
}
}
goto end_xx;
end_draw:
flag_end=1;
end_xx:
temp1=0;
temp2=0;
}
////////////////////////////////////////////////////////////a/d转换中断
void adc(void) interrupt 6
{
unsigned char adcdl,adcdh;
adcdl=ADCDATAL;
adcdh=ADCDATAH;
flag_ad=1;
adcdh=adcdh&0x0f;
ad_data=adcdh;
ad_data=ad_data<<8;
ad_data=ad_data|adcdl;
if(max_c==0){max_temp=ad_data;max_c=1;} //一分钟数据取最大值,最小值
else{if(ad_data>max_temp)max_temp=ad_data;}
if(min_c==0){min_temp=ad_data;min_c=1;}
else{if(ad_data<min_temp)min_temp=ad_data;}
}
/////////////////////////////////////////////////////
void get_time() //取时间
{
unsigned char tempm1,tempm2,i;
for(i=1;i<5;)
{
tempm1=(i+1)*2-1;
tempm2=i-1;
tempm1=tempm1+0x80;
write_cm(tempm1);
read_ds();
cs=0;
////delay1(2);
sclk=0;
geted_time[tempm2]=xx2;
i++;
}
write_cm(0x8d); //取年
read_ds();
cs=0;
//delay1(2);
sclk=0;
geted_time[4]=xx2;
write_cm(0x81); //取miao
read_ds();
cs=0;
//delay1(2);
sclk=0;
geted_time[5]=xx2;
}
///////////////////////////
void led_clear()
{
led_7219(6,led_bcd[10]);
led_7219(5,0x4e);
led_7219(4,0x0e);
led_7219(3,0x4f);
led_7219(2,0x77);
led_7219(1,0x05);
}
/////////////////////////////
void led_print()
{
led_7219(6,0x67);
led_7219(5,0x05);
led_7219(4,led_bcd[10]);
if(flag168==1){led_7219(3,led_bcd[1]);}
else{led_7219(3,led_bcd[10]);}
if(flag168==1){led_7219(2,led_bcd[6]);}
if(flag24==1){led_7219(2,led_bcd[2]);}
if(flag8==1){led_7219(2,led_bcd[10]);}
if(flag168==1){led_7219(1,led_bcd[8]);}
if(flag24==1){led_7219(1,led_bcd[4]);}
if(flag8==1){led_7219(1,led_bcd[8]);}
}
//////////////////////////////////
void ledlp() //显示 lp
{
led_7219(6,0x0e);
led_7219(5,0x67);
led_7219(4,0x80);
led_7219(3,0x80);
led_7219(2,0x80);
led_7219(1,0x80);
}
//////////////////////////
void led_wei()
{
led_7219(1,led_bcd[0]);
if(fan_wei==0){led_7219(2,led_bcd[2]);}
else{led_7219(2,led_bcd[6]);}
if(fan_wei==0){led_7219(3,led_bcd[1]);}
else{led_7219(3,led_bcd[10]);}
led_7219(4,led_bcd[10]);
led_7219(5,led_bcd[10]);
led_7219(6,0x47);
}
///////////////////////////
void led_dog(unsigned char dog) //显示电流变比
{
led_7219(1,led_bcd[5]);
led_7219(2,1);
if(dog==1){led_7219(3,led_bcd[5]);}
if(dog==2){led_7219(3,led_bcd[0]);}
if(dog==3){led_7219(3,led_bcd[0]);}
if(dog==4){led_7219(3,led_bcd[0]);}
if(dog==1){led_7219(4,led_bcd[7]);}
if(dog==2){led_7219(4,led_bcd[0]);}
if(dog==3){led_7219(4,led_bcd[5]);}
if(dog==4){led_7219(4,led_bcd[0]);}
if(dog==1){led_7219(5,led_bcd[10]);}
if(dog==2){led_7219(5,led_bcd[1]);}
if(dog==3){led_7219(5,led_bcd[1]);}
if(dog==4){led_7219(5,led_bcd[2]);}
led_7219(6,0x1f);
}
///////////////////////////////////
void led_time(void)
{
unsigned char op1,np1,np2;
unsigned char temp1;
get_time();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -