📄 disp.c
字号:
////////////////////////////////////////////////////
/* disp.c */
///////////////////////////////////////////////////
#include "REG51STC.H"
#include <ABSACC.H>
#include "oven.h"
#include "citation.h"
/////////////////////////////////////////////////////
/****************************************************
* 功能:动态扫描
*****************************************************/
/*void disp(void)
{
uchar j,dotnum;
P2 |=0x07; //0x38; //关显示
if(state!=9)
{
if(!light) {if((state==1 || state==2) && (kmok && timerov && !fanner_fail))led_pow=1;}
else led_pow=0;
}
j=led[disp_bit];
if(disp_bit==dotbit)dotnum=0x08; //小数点
else dotnum=0x00;
if(disp_bit==4) SBUF=j;
else SBUF=leddata[j]-dotnum;
delay(1);
P2 &=tabbit[disp_bit]; //打开相应位
disp_bit++;
if (disp_bit==5) disp_bit=0;
}*/
/****************************************************
* 功能:静态显示
*****************************************************/
void disp(void)
{ uchar i,j;
if(state!=9)
{
if(!light) {if((state==1 || state==2) && (kmok && timerov && !fanner_fail))led_pow=1;}
else led_pow=0;
}
//led_pow=0;
//led_set=1;
XC=1;
for(i=0;i<5;i++)
{
if(i==0) bbyte=led[4];
else
{
bbyte=leddata[led[4-i]];
if(i==4-dotbit)bbyte+=0x80;
}
for(j=0;j<8;j++)
{ XB=a7;
bbyte<<=1;
delay(1);
XA=0;
delay(1);
XA=1;
}
}
XA=0;XB=0;XC=0;
}
/*********************************
* 功能:显示温湿度数据
*********************************/
void disp_u(uint u)
{
uchar m,i;
for(i=0;i<4;i++)
{
m=u%10;led[3-i]=m;u/=10;
}
}
/*********************************
* 功能:显示时间数据
*********************************/
void disp_time(void)
{ uint x;
switch(state)
{
case 0:
led[0]=0;led[1]=0;led[2]=0;led[3]=0;dotbit=5;
led[4]=0xbf;
heat_ok=0;
RLY1=1;RLY2=1; //RLY3=1;
OUTOM1=1;
OUTOM2=1;
break;
case 1:
dotbit=1;
led[0]=0x0a;
x=work_time; //烘干计时,精度1s
led[1]=x/3600;x%=3600;
led[2]=x/600;x%=600;
led[3]=x/60;
break;
case 2:
dotbit=1;
led[0]=0x0b;
x=count_down+59; //消毒倒计时,精度1s
led[1]=x/3600;x%=3600;
led[2]=x/600;x%=600;
led[3]=x/60;
break;
default:
break;
}
}
/*********************************
* 功能:显示温湿度数据
*********************************/
void disp_setb1(void)
{
uchar m,i;
uchar u;
u=dynamo*5;
if(u==0 || u>100) {u=100;dynamo=20;}
for(i=0;i<4;i++)
{
m=u%10;led[3-i]=m;u/=10;
}
led[0]=menu;
dotbit=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -