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

📄 1602.txt

📁 1602液晶屏的多个参考程序
💻 TXT
字号:
#include<reg52.h>
#include<absacc.h>
#include<stdio.h>
#include<stdlib.h> 
#include<intrins.h>
#include<absacc.h>
#define ADC XBYTE[0xA000]
#define wc 0x9000
#define wd 0x9800
#define rc 0x9000
void delay5ms()
  {
unsigned int  TempCyc = 2000;
while(TempCyc--);
  }

void waitLcd()
  {
   
bit flag=1;
while(flag==1)
    {
    unsigned char temp;
   
   temp=XBYTE[rc];
   temp=temp>>7;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
        if (temp==0) flag=0;

}

  }


void WC_Lcd(bit isCheck,char c)
  {
   if (isCheck==1) waitLcd();

   XBYTE[wc]=c;
  
   
  }

void WD_Lcd(char c)
  {
    waitLcd();

  XBYTE[wd]=c;

  }

void LcdInit()
  {
   
delay5ms();
delay5ms();
WC_Lcd(0,0x38); 

delay5ms();
WC_Lcd(0,0x38);
delay5ms(); 
WC_Lcd(0,0x38);
delay5ms();

WC_Lcd(1,0x38); 
WC_Lcd(1,0x08); 
WC_Lcd(1,0x01); 
WC_Lcd(1,0x06); // 显示光标移动设置
WC_Lcd(1,0x0C); // 显示开及光标设置
  } 


void displayOneChar(unsigned char idata  X, unsigned char idata  Y, unsigned char idata  DData)
  {if(X>=0x10)Y=1;
Y &= 0x1;
X &= 0xF; 
if (Y) X |= 0x40; 
X |= 0x80; 
WC_Lcd(0,X); 
WD_Lcd(DData);
}

unsigned char idata  lbuf[7]={0,0,0,0},n,c;
sbit p=P2^1;

main()
{unsigned long idata input,b; 
               ADC=0x00; 
                           LcdInit();//清屏
                           if(p==1){
                     b=(unsigned long)(ADC);
                                         c=ADC;
                   
                                   input=b*500/256;
            lbuf[0]=input/1000;//存十位
            lbuf[1]=(input%1000)/100;//存个位
            lbuf[2]=(input%100)/10;//存小数点后的第一位
            lbuf[3]=(input%100)%10;
                        lbuf[4]=c/100;
                        lbuf[5]=(c%100)/10;
                        lbuf[6]=c%10;
         
       displayOneChar(5, 0,0x30+lbuf[0] );//输出十位
       displayOneChar(6, 0,0x30+lbuf[1] );//输出电压值的个位
       displayOneChar(7, 0,0x2E );//输出小数点
           displayOneChar(8, 0,0x30+lbuf[2] );//输出电压值小数点后的第一位
       displayOneChar(9, 0,0x30+lbuf[3] );
           displayOneChar(10, 0,0x56 );
           displayOneChar(0, 0,0x30+lbuf[4] );
           displayOneChar(1, 0,0x30+lbuf[5] );
           displayOneChar(2, 0,0x30+lbuf[6] );}
         
}

⌨️ 快捷键说明

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