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

📄 lcd.h

📁 一种实用的12864 液晶驱动程序
💻 H
字号:
#ifndef lcd_H
#define lcd_H

#include <absacc.h>
#include <REG52.h>
#include <stdio.h>
#include <intrins.h>
#include <decode.h>

#define  para1 0x20;
#define  dat1 DBYTE[0x30]
#define  dat2 DBYTE[0x31]
#define LCMDW    XBYTE[0xF0FF]
#define LCMCW    XBYTE[0xF1FF]
#define  com  DBYTE[0x32]
#define  O_Y DBYTE[0x33]
#define  O_X DBYTE[0x34]
#define  code_1 DBYTE[0x35]
sbit  ACC_0=ACC^0;
sbit  ACC_1=ACC^1;
sbit  ACC_3=ACC^3;

/************************************************/
/* 判状态位S1,S0 子程序(读写指令和读写数据状态) */
/************************************************/
void ST01(void)
    {
      do
        {
        ACC=LCMCW;
        }
      while(ACC_0==0&&ACC_1==0);
    }

/****************************/
/*   写指令和写数据子程序    */
/****************************/

void PR12(void)             /* 无参数指令写入入口 */
   {
     ST01();
     LCMCW=com;             /* 写入指令代码 */
   }

void PR11(void)             /* 单字节参数指令写入入口 */
    {
      ST01();
      LCMDW=dat2;           /* 取第二参数单元数据 */
      PR12();
    }

void PR1(void)              /* 双字节参数指令写入入口 */
    {
      ST01();
      LCMDW=dat1;           /* 取第一参数单元数据 */
       PR11();
      /* PR12(); */
    }
/************************************/
/* 判状态位S3子程序(数据自动写状态) */
/************************************/
void ST3(void)
   {
     do
     {
      ACC=LCMCW;
     }
     while(ACC_3==0);
   }
/**************************/
 /*      初始化子程序      */
 /**************************/
void chushi_1(void)
    {
       dat1=0x00;      /*设文本显示区域首地址*/
       dat2=0x00;
       com=0x40;
       PR1();
       dat1=para1;    /* 设文本显示区域宽度 */
       dat2=0x00;
       com=0x41;
       PR1();
       dat1=0x00;     /*设图形显示区域首地址*/
       dat2=0x08;
       com=0x42;
       PR1();
       dat1=para1;    /*设图形显示区域宽度*/
       dat2=0x00;
       com=0x43;
       PR1();
       com=0xa7;      /*光标形状设置*/
       PR12();
       com=0x80;      /*显示方式设置逻辑"或"合成*/
       PR12();
       com=0x9c;      /*显示开关设置 开文本和图形显示*/
       PR12();
    }
/***************************/
/*      清显示子程序       */
/***************************/
void CLEAR(void)
    {
    unsigned char i,j;
        dat1=0x00;
        dat2=0x00;
        com=0x24;
        PR1();
        com=0xb0;
        PR12();
    for(i=0;i<205;i++)           /* 205 */
       {
         for(j=0;j<=40;j++)      /* 40 */
            {
                ST3();
                LCMDW=0x00;
            }
        }
       com=0xb2;
       PR12();
    }


/********************************/
/*   16点阵汉字写入(图形方式)子程序 */
/********************************/
void CCW2_PR(uchar x1)
 {  unsigned char i,count1;
     unsigned int j;
        i=para1;
        j=i*O_Y+O_X+0x0800;
             for(count1=0;count1<32;count1=count1+2)
                {
                 dat1=j%256;
                 dat2=j/256;
                 com=0x24;
                 PR1();
                 dat2=CCTAB[code_1][count1];
                 com=0xc0;
                 if(x1==0)
                 {dat2=~dat2;}
                 PR11();
                 dat2=CCTAB[code_1][count1+1];
                 if(x1==0)
                 {dat2=~dat2;}
                 PR11();

                 j=j+i;
                }
 }
 void CCW2_Num(uchar x1)
{ unsigned char i,count1;
     unsigned int j;
        i=para1;
        PR1();
        j=i*O_Y+O_X+0x0800;
             for(count1=0;count1<16;count1++)
                {
                 dat1=j%256;
                 dat2=j/256;
                 com=0x24;
                 PR1();
                 dat2=CCNum[code_1][count1];
                 com=0xc4;
                 if(x1==0)
                 {dat2=~dat2;}
                 PR11();
                 j=j+i;
                }
              }
#endif

⌨️ 快捷键说明

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