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

📄 sms0403.h

📁 基于ds18b20的温湿度检测程序。有液晶程序还有传感器的程序
💻 H
字号:
#include <delay.h>

#define LCD_DI PORTD.2		//根据实际接线定义
#define LCD_CLK PORTC.2

/* Use an 4 alphanumeric LCD connected
   to PORTC as follows:

  [LCD]   [SMS0403 PORTC HEADER]
   1 +5V
   2 LCD_DI 
   3 LCD_CLK
   4 GND
*/

void LCD_sendbyte(unsigned char lcd_data)//lcd移入数据
{ 
    unsigned char i;    
    for(i=0;i<8;i++)
    {   
  	LCD_DI=(lcd_data & 0x80);
  	LCD_CLK=1;
  	LCD_CLK=0;
  	LCD_CLK=1;
        lcd_data<<=1;//移位
    }
}

void LCD_SHOW(float * hex_data)
{
unsigned char LCD_buf[4]={0x82,0x82,0x82,0x82};//无数据时显示为0
unsigned char lcd_middle[4],i;
float j;

//"0"--0x82,"1"--0xee,"2"--0x43,"3"--0x4a,"4"--0x2e,"5"--0x1a,"6"--0x12,"7"--0xce,
//"8"--0x02,"9"--0x0a,"a"--0x86,"b"--0xa6,"c"--0x93,"d"--0x37,"e"--0x13,"f"--0x17,"-"--0x7f;
unsigned char show_member[17]={0x82,0xee,0x43,0x4a,0x2e,0x1a,0x12,0xce,0x02,0x0a,0x86,0xa6,0x93,0x37,0x13,0x17,0x7f};//移入数据对应显示数值

j=*hex_data;

/*
lcd_middle[0]=j;
lcd_middle[1]=(j-lcd_middle[0])/0.1;
lcd_middle[2]=(j-lcd_middle[0]-lcd_middle[1]*0.1)/0.01;
lcd_middle[3]=(j-lcd_middle[0]-lcd_middle[1]*0.1-lcd_middle[2]*0.01)/0.001;
//数据处理
*/
lcd_middle[0]=j/100;
lcd_middle[1]=(j-lcd_middle[0]*100)/10;
lcd_middle[2]=j-lcd_middle[0]*100-lcd_middle[1]*10;
lcd_middle[3]=(j-lcd_middle[0]*100-lcd_middle[1]*10-lcd_middle[2])/0.1;

if(j>=100)
{  
lcd_middle[1]=1;
lcd_middle[2]=0;
lcd_middle[3]=0;
}

switch(lcd_middle[0])
 	{
              case 0 :LCD_buf[0]=show_member[0];break;
              case 1 :LCD_buf[0]=show_member[1];break;
              case 2 :LCD_buf[0]=show_member[2];break;
              case 3 :LCD_buf[0]=show_member[3];break;
              case 4 :LCD_buf[0]=show_member[4];break;
              case 5 :LCD_buf[0]=show_member[5];break;
              case 6 :LCD_buf[0]=show_member[6];break;
              case 7 :LCD_buf[0]=show_member[7];break;
              case 8 :LCD_buf[0]=show_member[8];break;
              case 9 :LCD_buf[0]=show_member[9];break;
              case 10 :LCD_buf[0]=show_member[10];break;
              case 11 :LCD_buf[0]=show_member[11];break;
              case 12 :LCD_buf[0]=show_member[12];break;
              case 13 :LCD_buf[0]=show_member[13];break;
              case 14 :LCD_buf[0]=show_member[14];break;
              case 15 :LCD_buf[0]=show_member[15];break;
              case 16 :LCD_buf[0]=show_member[16];break;
              default :LCD_buf[0]=show_member[0];break;
              break; 
	}

       
      
      switch(lcd_middle[1])
      {
              case 0 :LCD_buf[1]=show_member[0];break;
              case 1 :LCD_buf[1]=show_member[1];break;
              case 2 :LCD_buf[1]=show_member[2];break;
              case 3 :LCD_buf[1]=show_member[3];break;
              case 4 :LCD_buf[1]=show_member[4];break;
              case 5 :LCD_buf[1]=show_member[5];break;
              case 6 :LCD_buf[1]=show_member[6];break;
              case 7 :LCD_buf[1]=show_member[7];break;
              case 8 :LCD_buf[1]=show_member[8];break;
              case 9 :LCD_buf[1]=show_member[9];break;
              case 10 :LCD_buf[1]=show_member[10];break;
              case 11 :LCD_buf[1]=show_member[11];break;
              case 12 :LCD_buf[1]=show_member[12];break;
              case 13 :LCD_buf[1]=show_member[13];break;
              case 14 :LCD_buf[1]=show_member[14];break;
              case 15 :LCD_buf[1]=show_member[15];break;
              default :
              break;             
      }	
      
      switch(lcd_middle[2])
      {
              case 0 :LCD_buf[2]=show_member[0];break;
              case 1 :LCD_buf[2]=show_member[1];break;
              case 2 :LCD_buf[2]=show_member[2];break;
              case 3 :LCD_buf[2]=show_member[3];break;
              case 4 :LCD_buf[2]=show_member[4];break;
              case 5 :LCD_buf[2]=show_member[5];break;
              case 6 :LCD_buf[2]=show_member[6];break;
              case 7 :LCD_buf[2]=show_member[7];break;
              case 8 :LCD_buf[2]=show_member[8];break;
              case 9 :LCD_buf[2]=show_member[9];break;
              case 10 :LCD_buf[2]=show_member[10];break;
              case 11 :LCD_buf[2]=show_member[11];break;
              case 12 :LCD_buf[2]=show_member[12];break;
              case 13 :LCD_buf[2]=show_member[13];break;
              case 14 :LCD_buf[2]=show_member[14];break;
              case 15 :LCD_buf[2]=show_member[15];break;
              default :
              break;            
      }	
      
      LCD_buf[2]&=0xfd; //加小数点 
      
      switch(lcd_middle[3])
      {
              case 0 :LCD_buf[3]=show_member[0];break;
              case 1 :LCD_buf[3]=show_member[1];break;
              case 2 :LCD_buf[3]=show_member[2];break;
              case 3 :LCD_buf[3]=show_member[3];break;
              case 4 :LCD_buf[3]=show_member[4];break;
              case 5 :LCD_buf[3]=show_member[5];break;
              case 6 :LCD_buf[3]=show_member[6];break;
              case 7 :LCD_buf[3]=show_member[7];break;
              case 8 :LCD_buf[3]=show_member[8];break;
              case 9 :LCD_buf[3]=show_member[9];break;
              case 10 :LCD_buf[3]=show_member[10];break;
              case 11 :LCD_buf[3]=show_member[11];break;
              case 12 :LCD_buf[3]=show_member[12];break;
              case 13 :LCD_buf[3]=show_member[13];break;
              case 14 :LCD_buf[3]=show_member[14];break;
              case 15 :LCD_buf[3]=show_member[15];break;
              default :
              break;              
      }
     
          for(i=0;i<4;i++)
      	  {
      	      LCD_sendbyte(LCD_buf[i]);
      	      delay_us(100);
     	  }
     	  delay_ms(10);//为显示时不闪烁
}

⌨️ 快捷键说明

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