📄 disp.c
字号:
#include <reg52.h>
#include "disp.h"
#define a 0x01
#define b 0x02
#define c 0x04
#define d 0x08
#define e 0x10
#define f 0x20
#define g 0x40
#define dot 0x80
#define H 10
#define L 11
#define P 12
sbit sd=P2^ 4;
unsigned char code disp_code[] = {
a+b+c+d+e+f, // 0
b+c, // 1
a+b+d+e+g, // 2
a+b+c+d+g, // 3
b+c+f+g, // 4
a+c+d+f+g, // 5
a+c+d+e+f+g, // 6
a+b+c, // 7
a+b+c+d+e+f+g, // 8
a+b+c+d+f+g, // 9
b+c+e+f+g, //H
d+e+f, //L
a+b+e+f+g, //P
a+e+f+g, //F
g, //-
a+b+c+e+f+g, //A
a+d+e+f+g //E
};
void sendbyte(unsigned char byte)
{ P2=0;
sd=1;
P0=disp_code[byte];
sd=0;
}
void display(unsigned int i)
{ unsigned int k;
unsigned char j,m,q;
unsigned int s[6];
s[0] = i/10000;
k = i%10000;
s[1] = k/1000;
k = k%1000;
s[2] = k/100;
k = k%100;
s[3] = k/10;
k = k%10;
s[4] = k;
j=0x10;
q=2;
for(k = 0; s[k] == 0 && k<3; k++);
if (k==3) k--; // if all bytes are '0', get back one position
if(s[4]==0)
{
q--;
if(s[3]==0)q--;
}
do
{
if(k==2)
{
m=j>>4;
}
P2=(m|j);
P0=(disp_code[s[k++]]);
j<<=1;
}
while (k<3);
while(q&&(j<0x80))
{
P2=(m|j);
P0=(disp_code[s[k++]]);
j<<=1;
q--;
}
}
/*
void display(unsigned int i)
{ unsigned int k;
unsigned char j,m,q;
unsigned int s[6];
s[0] = i/1000;
k = i%1000;
s[1] = k/100;
k = k%100;
s[2] = k/10;
k = k%10;
s[3] = k;
//k = k%10;
//s[4] = k;
j=0x80;
for(k = 0; s[k] == 0 && k<4; k++);
if (k==4) k--; // if all bytes are '0', get back one position
do
{
P2=j;
P0=(disp_code[s[k++]]);
j>>=1;
}
while (k<4);
} */
void display_humidity(void)
{
P0=0x00;
P2=0xff;
switch(set)
{
case 0: //运行状态
if(AdValue>0)
{
sendbyte(13);
}
else
{
sendbyte(14);
}
display((int)temperature);
break;
case 1: //显示上限值状态
sendbyte(10);
display(upper_limit.X);
break;
case 2://显示上限值状态
sendbyte(11);
display(lower_limit.X);
break;
case 3://显示偏差值状态
sendbyte(12);
display(difference.X);
break;
case 4://显示AD590采集到的值
ADC=1;
sendbyte(15);
display((int)AdValue);
break;
case 5://显示Pt100采集到的值
ADC=0;
sendbyte(16);
display((int)AdValue);
break;
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -