⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 disp.c

📁 我的一个工程
💻 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 + -