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

📄 xiu.c

📁 一个C语言的液晶检测程序,完全正确的,引脚是P2.6 P2.7
💻 C
字号:
#include<reg52.h>
#include<intrins.h>

#define time_1 10
sbit DATA2=P2^6;
sbit CLKPIN=P2^7;
unsigned char data l_data[5];      //用户自定义LCD缓冲区
unsigned char dis[4];
unsigned char  d[4]={0,0,0,0};

void delay(unsigned int t)         // 延时子程序
{  unsigned int i,j;
   for(i=0;i<t;i++)
      for(j=0;j<114;j++)
         ;
}
//主函数之前是与显示相关的程序,等待调用
unsigned char led_seg(unsigned char i)
{
   unsigned char tem;
   switch(i)
   {
     case 0: tem=0x88;break;
     case 1: tem=0xbb;break;
     case 2: tem=0xc1;break;
     case 3: tem=0x91;break;
     case 4: tem=0xb2;break;
     case 5: tem=0x94;break;
     case 6: tem=0x84;break;
     case 7: tem=0xb9;break;
     case 8: tem=0x80;break;
     case 9: tem=0x90;break;
     default:break;
   }
   return tem;
}
 
void lcdwbit2(bit n2)      //低位
{  DATA2 = n2;
   CLKPIN = 1;
   CLKPIN = 0;
   CLKPIN = 1;
}


void lcdwd2(unsigned char data2)     //低位
{  unsigned char i;
   //data2=~data2;                  //数据取反
   for(i=0;i<8;i++)
   {  if((data2&0x01)==0x01)
         lcdwbit2(1);
      else 
         lcdwbit2(0);
      data2>>=1;
   }
}

  void l_setd()
{
  unsigned char i;
  l_data[1]=0xff;
  for(i=2;i<6;i++)
  { l_data[i]=led_seg(dis[i-2]); }
  l_data[4]=l_data[4]&0x7f;
}

 
void lcdwdd()            //低位
{  unsigned char i;
   for(i=0;i<5;i++) 
      lcdwd2(l_data[i+1]);
}
 void xianshi(unsigned  long  dd)    
  {  
     int j; 
	 for(j=0;j<8;j++)
     { d[j]=dd%10;  dd=dd/10;  }
     //开始显示
     while(1)
     {
     dis[0]=d[3];
     dis[1]=d[2];
     dis[2]=d[1];
     dis[3]=d[0];
     l_setd(); lcdwdd(); delay(time_1);  //低4位显示
     
     }
  }
void main()
{
xianshi(4321);
}

⌨️ 快捷键说明

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