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

📄 display.c

📁 在外部环境中检测亮度
💻 C
字号:

#include <reg52.h>
#include <stdio.h>
#include <absacc.h>
#include <ctype.h>
#include <intrins.h>  



typedef unsigned char uchar;
sbit STB=P1^5;
sbit CLK=P1^4;
sbit DATA0=P1^3;
 int A[6];
int a1,a2,a3,a4,a5,a6;
unsigned char i,j;
float DATA;
extern void delay(unsigned long );
extern void Display(float display_data);
/***********************************************************************************/
main()
{//int A[6]={19,19,0,0,0,0};
 A[4]=23;
 A[5]=24;
while(1)
 {
  Display(18.6);
  delay(0xffff);
   A[4]=19;
  A[5]=16;
  Display(26.7);
  delay(0xffff);
   A[4]=23;
   A[5]=24;
  Display(8.3);
  delay(0xffff);
  Display(0.9);
  delay(0xffff);
  Display(26);
    A[4]=19;
    A[5]=16;
  delay(0xffff);
  Display(6);
  delay(0xffff);
   A[4]=23;
   A[5]=24;
  Display(138);
  delay(0xffff);
  }
}
//***************************************数码管显示函数**************************************/   
void Display(float display_data)
{
 uchar D[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E,0X89,0XC7,0X8C,0X88,0XC1,0X91,0XFF,0X9C,0XC6};
 uchar dp_data,Y;
 if(display_data<1)
   {A[0]=22;
    A[1]=22;
    A[2]=0;
	A[3]=(int)(display_data*10);
	}
 else if(display_data<10)
    {A[0]=22;
     A[1]=22;
     A[2]=(int)(display_data/1);
     A[3]=(int)(display_data*10)%10;
     }
 else if(display_data<100)
    {A[0]=22;
     A[1]=(int)(display_data/10);
     A[2]=(int)(display_data)%10;
     A[3]=(int)(display_data*10)%10;
     }
 else if(display_data<1000)
    {A[0]=(int)(display_data/100);
     A[1]=(int)(display_data/10)%10;
     A[2]=(int)(display_data)%10;
     A[3]=(int)(display_data*10)%10;
    }
 a1=A[0];
 a2=A[1];
 a3=A[2];
 a4=A[3];
 a5=A[4];
 a6=A[5];
 for(i=0;i<6;i++)
 {dp_data=D[A[i]];
  if(i==2)
   dp_data=dp_data&0x7f;
   for(j=8;j>0;j--)
     {  CLK=0;
   	    if(dp_data&0x80)
	       Y=1;
		else Y=0;
	       DATA0=Y;
	       CLK=1;
		   dp_data=dp_data<<1;
     
      }  
	
  }
   STB=0;
   STB=1;
   delay(2);
   STB=0;
 
}
 



void delay(unsigned long s)
{ 
  for(;s>0;s--);
  {
	  for(;s>0;s--);	 
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -