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

📄 lcd.c

📁 基于intel8032的自动恒温采集系统
💻 C
字号:
#include<lcd.h>
unsigned char col,row;    //当前行号与列号
char code syn_57[ ]={
          0x3E,0x51,0x49,0x45,0x3E,     // 0      代码分别为 0
          0x42,0x43,0x7F,0x40,0x40,     // 1      代码分别为 1
          0x46,0x61,0x51,0x49,0x46,     // 2      代码分别为 2
          0x22,0x49,0x49,0x49,0x36,     // 3      代码分别为 3
          0x18,0x14,0x52,0x7F,0x50,     // 4      代码分别为 4
          0x2F,0x49,0x49,0x49,0x30,     // 5      代码分别为 5
          0x3E,0x49,0x49,0x49,0x30,     // 6      代码分别为 6
          0x01,0x61,0x11,0x0D,0x03,     // 7      代码分别为 7
          0x36,0x49,0x49,0x49,0x36,     // 8      代码分别为 8
          0x06,0x49,0x49,0x29,0x16,     // 9      代码分别为 9
          0x00,0x60,0x60,0x00,0x00,     // .      代码分别为 10
          0x08,0x08,0x7E,0x08,0x08,     // +      代码分别为 11
          0x08,0x08,0x08,0x08,0x08,     // -      代码分别为 12
          0x44,0x28,0x10,0x28,0x44,     // *      代码分别为 13
          0x40,0x20,0x10,0x08,0x04      // /      代码分别为 14

};
//校验芯片是否就绪
void wait(void)
{
        char xdata *ptr;
   	ptr=CS+5;
   	while(*ptr&0x80);
   	ptr=CS+6;
   	while(*ptr&0x80);
}

// 显示器开/关函数
void disp_on(void)
{
       char xdata *ptr;
       ptr=CS+1;
       wait();
       *ptr=0x3f;
       wait();
       *ptr=0xc0;                         //display start line
       ptr=CS+2;
       wait();
       *ptr=0x3f;
       wait();
       *ptr=0xc0;
}



//清屏
void clr_screen(void)
{
   char xdata *ptr;
   char cl,cs;
   row=0;
   col=0;

for(row=0;row<8;row++)
{
   for(col=0;col<128;col++)
   {
         if(col<64){
                        cs=1;
                        cl=col;
                   }
         else{
                  cs=2;
                  cl=col-64;
              }

         ptr=CS+cs;
         wait();
         *ptr=0xb8+row;
         wait();
         *ptr=0x40+cl;

         ptr=CS+8+cs;
         wait();
         *ptr=0x00;

            }
     }

}

void put_data(char dat)

  {
     char xdata *ptr;
     char cs,cl;
     row=row%8;
     col=col%128;
     if(col<64){
        cs=1;
        cl=col;
        }
     else{
         cs=2;
         cl=col-64;
         }
        ptr=CS+cs;
        *ptr=0xb8+row;
        wait();
        *ptr=0x40+cl;
        ptr=CS+8+cs;
        wait();
        *ptr=dat;
        col++;
        row=(row+col/128)%8;
        col=col%128;
 }

//光标定位
void locate (char r,char c)
{
     col=c;
     row=r;
}

//显示单个数据
void style_57(char c)     //调用字库 c为欲显示字符的代码
{
         int i;

         for (i=0; i<5; i++)
	      put_data(syn_57[5*c+i]);       //写入字符
	 put_data(0x00);                      //写入间隔列
}

void put_int(int n,char w)            //显示一个整数
{
      int i,m=1;
      for (i=0;i<w-1;i++)
      m=m*10;
      for (i=0;i<w;i++)
      {
        style_57(n/m);
         n=n%m;
         m=m/10;
        }
 }

void put_float(float f,char w1,char w2)  //显示浮点数
 {  int i,k,m=1;
    k=(int)f;
    put_int(k,w1);
    style_57(10);
    for (i=0;i<w2;i++)
         m=m*10;
    k=(f-k)*m;
    put_int(k,w2);
  }

⌨️ 快捷键说明

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