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

📄 smg19264a_m_exsample_c51.c

📁 KS0108B图形点阵液晶显示模块系列
💻 C
📖 第 1 页 / 共 3 页
字号:
   {   lcdwc1(0xB8|((YPOS/8)&0x7));     //页地址设置
       lcdwc1(0x40|XPOS);               //列地址设置
   }
   else if(XPOS<128)
   {   lcdwc2(0xB8|((YPOS/8)&0x7));     //页地址设置
       lcdwc2(0x40|(XPOS&0x3F));        //列地址设置
   }
   else
   {   lcdwc3(0xB8|((YPOS/8)&0x7));     //页地址设置
       lcdwc3(0x40|(XPOS&0x3F));        //列地址设置
   }
}
//-------------------------------------------------------------------------------
//子程序名称:void lcdreset(void)
//功能:液晶显示控制器初始化
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
void lcdreset(void)                     //液晶显示控制器初始化子程序
{
    lcdwc1(0xC0);                       //设置显示初始行
    lcdwc2(0xC0);                       //设置显示初始行
    lcdwc3(0xC0);                       //设置显示初始行
    lcdwc1(0x3F);                       //开显示
    lcdwc2(0x3F);                       //开显示
    lcdwc3(0x3F);                       //开显示
}
//-------------------------------------------------------------------------------
//以下lcdwc1,lcdwc2,lcdwc3,lcdwd,lcdrd为MCS51总线接口的KS0108B液晶显示控制器的基本
//子程序,lcdwd1,lcdwd2,lcdwd3,lcdrd1,lcdrd2,lcdrd3,lcdwaitidle1,lcdwaitidle2,
//lcdwaitidle3为内部子程序.
//-------------------------------------------------------------------------------
//子程序名称:unsigned char lcdrd(void).
//功能:从液晶显示控制器中读图形数据.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
unsigned char lcdrd(void)
{unsigned char d;
    if(XPOS<64)
    {    d=lcdrd1();
         d=lcdrd1();
    }
    else if(XPOS<128)
    {    d=lcdrd2();
         d=lcdrd2();
    }
    else
    {    d=lcdrd3();
         d=lcdrd3();
    }
    return d;
}
//-------------------------------------------------------------------------------
//子程序名称:void lcdwd(unsigned char d).
//功能:向液晶显示控制器写图形数据.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
void lcdwd(unsigned char d)
{   if(XPOS<64)
        lcdwd1(d);
    else if(XPOS<128)
        lcdwd2(d);
    else
        lcdwd3(d);
}
//-------------------------------------------------------------------------------
//子程序名称:void lcdwd1(unsigned char d).
//功能:向液晶显示控制器1写图形数据.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
void lcdwd1(unsigned char d)
{   lcdwaitidle1();
    P1=d;
    RSPIN=1;
    RWPIN=0;
    CSAPIN=0;
    CSBPIN=0;
    EPIN=1;
    _nop_();
    EPIN=0;
}
//-------------------------------------------------------------------------------
//子程序名称:void lcdwd2(unsigned char d).
//功能:向液晶显示控制器2写图形数据.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
void lcdwd2(unsigned char d)
{   lcdwaitidle2();
    P1=d;
    RSPIN=1;
    RWPIN=0;
    CSAPIN=1;
    CSBPIN=0;
    EPIN=1;
    _nop_();
    EPIN=0;
}
//-------------------------------------------------------------------------------
//子程序名称:void lcdwd3(unsigned char d).
//功能:向液晶显示控制器3写图形数据.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
void lcdwd3(unsigned char d)
{   lcdwaitidle3();
    P1=d;
    RSPIN=1;
    RWPIN=0;
    CSAPIN=0;
    CSBPIN=1;
    EPIN=1;
    _nop_();
    EPIN=0;
}
//-------------------------------------------------------------------------------
//子程序名称:unsigned char lcdrd1(void).
//功能:从液晶显示控制器1中读图形数据.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
unsigned char lcdrd1(void)              //读图形数据子程序
{   unsigned char d;
    lcdwaitidle1();                     //检测液晶显示控制器是否空闲
    P1=0xff;
    RSPIN=1;
    RWPIN=1;
    CSAPIN=0;
    CSBPIN=0;
    EPIN=1;
    _nop_();
    d=P1;
    EPIN=0;
    return d;
}
//-------------------------------------------------------------------------------
//子程序名称:unsigned char lcdrd2(void).
//功能:从液晶显示控制器2中读图形数据.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
unsigned char lcdrd2(void)              //读图形数据子程序
{   unsigned char d;
    lcdwaitidle2();                     //检测液晶显示控制器是否空闲
    P1=0xff;
    RSPIN=1;                            //DUMMY READ
    RWPIN=1;
    CSAPIN=1;
    CSBPIN=0;
    EPIN=1;
    _nop_();
    d=P1;
    EPIN=0;
    return d;
}
//-------------------------------------------------------------------------------
//子程序名称:unsigned char lcdrd3(void).
//功能:从液晶显示控制器3中读图形数据.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
unsigned char lcdrd3(void)              //读图形数据子程序
{   unsigned char d;
    lcdwaitidle3();                     //检测液晶显示控制器是否空闲
    P1=0xff;
    RSPIN=1;
    RWPIN=1;
    CSAPIN=0;
    CSBPIN=1;
    EPIN=1;
    _nop_();
    d=P1;
    EPIN=0;
    return d;
}
//-------------------------------------------------------------------------------
//子程序名称:lcdwc1(unsigned char c).
//功能:向液晶显示控制器1送指令.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
void lcdwc1(unsigned char c)            //向液晶显示控制器1送指令
{   lcdwaitidle1();
    P1=c;
    RSPIN=0;
    RWPIN=0;
    CSAPIN=0;
    CSBPIN=0;
    EPIN=1;
    _nop_();
    EPIN=0;
}
//-------------------------------------------------------------------------------
//子程序名称:lcdwc2(unsigned char c).
//功能:向液晶显示控制器2送指令.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
void lcdwc2(unsigned char c)            //向液晶显示控制器2送指令
{   lcdwaitidle2();
    P1=c;
    RSPIN=0;
    RWPIN=0;
    CSAPIN=1;
    CSBPIN=0;
    EPIN=1;
    _nop_();
    EPIN=0;
}
//-------------------------------------------------------------------------------
//子程序名称:lcdwc3(unsigned char c).
//功能:向液晶显示控制器3送指令.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
void lcdwc3(unsigned char c)            //向液晶显示控制器3送指令
{   lcdwaitidle3();
    P1=c;
    RSPIN=0;
    RWPIN=0;
    CSAPIN=0;
    CSBPIN=1;
    EPIN=1;
    _nop_();
    EPIN=0;
}
//-------------------------------------------------------------------------------
//子程序名称:voidlcdwaitidle1(void).
//功能:忙检测,在对液晶显示控制器操作的每一条指令之前,需检测液晶显示器是否空闲.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
void lcdwaitidle1(void)                 //控制器1忙检测子程序
{   unsigned char i;
    P1=0xff;
    RSPIN=0;
    RWPIN=1;
    CSAPIN=0;
    CSBPIN=0;
    EPIN=1;
    for(i=0;i<20;i++)                   //
        if( (P1&0x80) != 0x80 ) break;  //D7=0 空闲退出
    EPIN=0;
}
//-------------------------------------------------------------------------------
//子程序名称:voidlcdwaitidle2(void).
//功能:忙检测,在对液晶显示控制器操作的每一条指令之前,需检测液晶显示器是否空闲.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
void lcdwaitidle2(void)                 //控制器2忙检测子程序
{   unsigned char i;
    P1=0xff;
    RSPIN=0;
    RWPIN=1;
    CSAPIN=1;
    CSBPIN=0;
    EPIN=1;
    for(i=0;i<20;i++)                   //
        if( (P1&0x80) != 0x80 ) break;  //D7=0 空闲退出
    EPIN=0;
}
//-------------------------------------------------------------------------------
//子程序名称:voidlcdwaitidle3(void).
//功能:忙检测,在对液晶显示控制器操作的每一条指令之前,需检测液晶显示器是否空闲.
//修改日期:2009.11.04
//修改人:chujianjun@sunman.cn,tanchao@sunman.cn
//-------------------------------------------------------------------------------
void lcdwaitidle3(void)                 //控制器3忙检测子程序
{   unsigned char i;
    P1=0xff;
    RSPIN=0;
    RWPIN=1;
    CSAPIN=0;
    CSBPIN=1;
    EPIN=1;
    for(i=0;i<20;i++)                   //
        if( (P1&0x80) != 0x80 ) break;  //D7=0 空闲退出
    EPIN=0;
}

⌨️ 快捷键说明

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