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

📄 12232点阵信利液晶基本驱动程序.txt

📁 12232点阵信利液晶基本驱动程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
用【 小 | 中 | 大 】字体浏览 
C51编程:Re:第6476帖.12232点阵信利液晶基本驱动程序,国内很多122×32的液晶与之完全兼容 [8888] [291次] 01-11-13 下午 07:33:19
我的液晶上,还有一根R/W线,是否需要接上,并加入相应代码?


我们这儿的12232要120RMB哦,太贵啦。 [傲气雄鹰] [28次] 01-11-13 下午 07:57:25 

在济南有45的新的电子大楼,我是买的旧货50,因为有资料 [8888] [33次] 01-11-13 下午 08:57:18 

12232点阵信利液晶基本驱动程序 [8888] [722次] 01-11-13 下午 08:58:29 
12232点阵信利液晶基本驱动程序,国内很多122×32的液晶与之完全兼容 [龙啸九天] 
[1522次] 01-3-24 下午 07:54:57
/*————————————————————
〖说明〗12232点阵信利液晶基本驱动程序,国内很多122×32的液晶与之完全兼容,
        该液晶左右分MASTER和SLAVE,上下共分4页,左边列地址从0-61,
        右边列地址从0-61,由于芯片内部线路的落后,所以使用较麻烦。

〖文件〗12232lcd.c  ﹫2001/03/23
〖作者〗龙啸九天 c51@yeah.net <a href=<a href=http://mcs51.yeah.net target=_blank>http://mcs51.yeah.net</a> 
target=_blank><a href=http://mcs51.yeah.net</a> target=_blank>http://mcs51.yeah.net</a></a>
〖修改〗修改建议请到论坛公布 <a href=<a href=http://c51bbs.yeah.net target=_blank>http://c51bbs.yeah.net</a> 
target=_blank><a href=http://c51bbs.yeah.net</a> target=_blank>http://c51bbs.yeah.net</a></a>
〖版本〗V1.00A Build 0323
—————————————————————*/


#define E2 P3_5
#define E1 P3_6

#define A0 P3_7 
#define DATA P2 

/*----------------------------------------------------------------------------
调用方式:void OutMI(uchar i)
函数说明:发指令i到主窗口。(内函数,私有,用户不直接调用)
------------------------------------------------------------------------------*/
void OutMI(uchar i)
{
E1=1;_nop_();_nop_(); 
A0=0;_nop_();_nop_();
DATA=i;_nop_();_nop_();
E1=0;_nop_();_nop_();
}
/*------------------------------------------------------------------------------
--
调用方式:void OutMD(uchar i)
函数说明:发数据i到主窗口。(内函数,私有,用户不直接调用)
--------------------------------------------------------------------------------
-*/
void OutMD(uchar i)
{
E1=1;_nop_();_nop_();
A0=1;_nop_();_nop_();
DATA=i;_nop_();_nop_();
E1=0;_nop_();_nop_();
}
/*------------------------------------------------------------------------------
--
调用方式:void OutSI(uchar i)
函数说明:发指令i到从窗口。(内函数,私有,用户不直接调用)
--------------------------------------------------------------------------------
-*/
void OutSI(uchar i)
{
A0=0;_nop_();_nop_();
E2=1;_nop_();_nop_();
DATA=i;_nop_();_nop_();
E2=0;_nop_();_nop_();
}

/*------------------------------------------------------------------------------
--
调用方式:void OutSD(uchar i)
函数说明:发数据i到从窗口。(内函数,私有,用户不直接调用)
--------------------------------------------------------------------------------
-*/
void OutSD(uchar i)
{
A0=1;_nop_();_nop_();
E2=1;_nop_();_nop_();
DATA=i;_nop_();_nop_();
E2=0;_nop_();_nop_();
}

/*------------------------------------------------------------------------------
--
调用方式:void LcdIni(void)
函数说明:12232点阵液晶初始化,开机后仅调用一次。
--------------------------------------------------------------------------------
-*/
void LcdIni(void)
{
OutMI(0XE2);OutSI(0XE2);//复位
OutMI(0XAE);OutSI(0XAE);//POWER SAVE
OutMI(0XA4);OutSI(0XA4);//动态驱动
OutMI(0XA9);OutSI(0XA9);//1/32占空比
OutMI(0XA0);OutSI(0XA0);//时钟线输出
OutMI(0XEE);OutSI(0XEE);//写模式

OutMI(0X00);OutMI(0XC0);
OutSI(0X00);OutSI(0XC0);

OutMI(0XAF);OutSI(0XAF);
} 

/*------------------------------------------------------------------------------
--
调用方式:void SetPage(uchar page0,uchar page1)
函数说明:同时设置主从显示页为0-3页。(内函数,私有,用户不直接调用)
--------------------------------------------------------------------------------
-*/
void SetPage(uchar page0,uchar page1)
{
OutMI(0xB8|page1);OutSI(0xB8|page0);
}

/*------------------------------------------------------------------------------
--
调用方式:void SetAddress(uchar address0,uchar address1)
函数说明:同时设置主从列地址为0-121。(内函数,私有,用户不直接调用)
--------------------------------------------------------------------------------
-*/
void SetAddress(uchar address0,uchar address1)
{
OutMI(address1&0x7F);OutSI(address0&0x7F);
}

/*------------------------------------------------------------------------------
--
调用方式:void PutChar0(uchar ch)
函数说明:在左页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)
--------------------------------------------------------------------------------
-*/
void PutChar0(uchar ch)
{
OutSD(ch);
}

/*------------------------------------------------------------------------------
--
调用方式:void PutChar1(uchar ch)
函数说明:在右页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)
--------------------------------------------------------------------------------
-*/
void PutChar1(uchar ch)
{
OutMD(ch);
} 

/*------------------------------------------------------------------------------
--
调用方式:void DrawBmp(uchar x,bit layer,uchar width,uchar *bmp)
函数说明:画一个图,横坐标是x,layer表示上下层,width是图形的宽,高都是16,bmp是
图形指针
          使用zimo21软件,采用纵向取模得到bmp数据。
--------------------------------------------------------------------------------
-*/
void DrawBmp(uchar x0,bit layer,uchar width,uchar *bmp)
{
uchar x,address,i=0;     //address表示显存的物理地址
uchar page=0;
bit window=0;  //page表示上下两页,window表示左右两页
if (layer) page=2;

for (x=x0;x<x0+width;x++)
{
if (x>60) {window=1;address=x%61;}
else address=x;

SetPage(page,page);
SetAddress(address,address);

if (window) PutChar1(bmp[i]);
   else PutChar0(bmp[i]);//画上层

SetPage(page+1,page+1);
SetAddress(address,address);

if (window) PutChar1(bmp[i+width]);
           else PutChar0(bmp[i+width]);//画下层
    i++;
}
}


/*------------------------------------------------------------------------------
--
调用方式:void clrscr(void)
函数说明:清屏
--------------------------------------------------------------------------------
-*/
void clrscr(void)
{
uchar i;
uchar page;
for (page=0;page<4;page++)
{
SetPage(page,page);
SetAddress(0,0);
for (i=0;i<61;i++){PutChar0(0);PutChar1(0);}
}
} 

请教斑竹,疑问???? [haotz] [110次] 01-3-24 下午 09:54:11 
/*-------------------------------------------------------------------------
-----
--
调用方式:void DrawBmp(uchar x,bit layer,uchar width,uchar *bmp)
函数说明:画一个图,横坐标是x,layer表示上下层,width是图形的宽,高都是16,
bmp是
图形指针
          使用zimo21软件,采用纵向取模得到bmp数据。
---------------------------------------------------------------------------
-----
-*/
void DrawBmp(uchar x0,bit layer,uchar width,uchar *bmp)
{
uchar x,address,i=0;     //address表示显存的物理地址
uchar page=0;
bit window=0;  //page表示上下两页,window表示左右两页
if (layer) page=2;

for (x=x0;x60) {window=1;address=x%61;}
else address=x; //??????????哪来的else 

SetPage(page,page);
SetAddress(address,address);

if (window) PutChar1(bmp[i]);
   else PutChar0(bmp[i]);//画上层

SetPage(page+1,page+1);
SetAddress(address,address);

if (window) PutChar1(bmp[i+width]);
           else PutChar0(bmp[i+width]);//画下层
    i++;
}  ///???????????? 哪来的"}"
}



啊!我比较了一下,原来的代码不是这样的,可能是论坛的bug,把莫些C的操作符号认作
HTML符号了。我会想办法修正 [龙啸九天] [43次] 01-3-24 下午 10:04:32 

谢谢! [haotz] [20次] 01-3-24 下午 10:29:57 

源代码修正版>> [龙啸九天] [332次] 01-4-16 下午 09:12:28 
/*————————————————————
〖说明〗12232点阵信利液晶基本驱动程序,国内很多122×32的液晶与之完全兼容,
        该液晶左右分MASTER和SLAVE,上下共分4页,左边列地址从0-61,
        右边列地址从0-61,由于芯片内部线路的落后,所以使用较麻烦。

〖文件〗12232lcd.c  ﹫2001/03/23
〖作者〗龙啸九天 c51@yeah.net <a href=<a href=http://mcs51.yeah.net target=_blank>http://mcs51.yeah.net</a> 
target=_blank><a href=http://mcs51.yeah.net</a> target=_blank>http://mcs51.yeah.net</a></a>
〖修改〗修改建议请到论坛公布 <a href=<a href=http://c51bbs.yeah.net target=_blank>http://c51bbs.yeah.net</a> 
target=_blank><a href=http://c51bbs.yeah.net</a> target=_blank>http://c51bbs.yeah.net</a></a>
〖版本〗V1.00A Build 0323
—————————————————————*/


#define E2 P3_5
#define E1 P3_6

#define A0 P3_7        
#define DATA P2        

/*----------------------------------------------------------------------------
调用方式:void OutMI(uchar i)
函数说明:发指令i到主窗口。(内函数,私有,用户不直接调用)
------------------------------------------------------------------------------*/
void OutMI(uchar i)
{
    E1=1;_nop_();_nop_(); 
    A0=0;_nop_();_nop_();
    DATA=i;_nop_();_nop_();
    E1=0;_nop_();_nop_();
}
/*------------------------------------------------------------------------------
--
调用方式:void OutMD(uchar i)
函数说明:发数据i到主窗口。(内函数,私有,用户不直接调用)
--------------------------------------------------------------------------------
-*/
void OutMD(uchar i)
{
    E1=1;_nop_();_nop_();
    A0=1;_nop_();_nop_();
    DATA=i;_nop_();_nop_();
    E1=0;_nop_();_nop_();
}
/*------------------------------------------------------------------------------
--
调用方式:void OutSI(uchar i)
函数说明:发指令i到从窗口。(内函数,私有,用户不直接调用)
--------------------------------------------------------------------------------
-*/
void OutSI(uchar i)
{
    A0=0;_nop_();_nop_();
    E2=1;_nop_();_nop_();
    DATA=i;_nop_();_nop_();
    E2=0;_nop_();_nop_();
}

/*------------------------------------------------------------------------------
--
调用方式:void OutSD(uchar i)
函数说明:发数据i到从窗口。(内函数,私有,用户不直接调用)
--------------------------------------------------------------------------------
-*/
void OutSD(uchar i)
{
    A0=1;_nop_();_nop_();
    E2=1;_nop_();_nop_();
    DATA=i;_nop_();_nop_();
    E2=0;_nop_();_nop_();
}

/*------------------------------------------------------------------------------
--
调用方式:void LcdIni(void)
函数说明:12232点阵液晶初始化,开机后仅调用一次。
--------------------------------------------------------------------------------
-*/
void LcdIni(void)
{
    OutMI(0XE2);OutSI(0XE2);//复位
    OutMI(0XAE);OutSI(0XAE);//POWER SAVE
    OutMI(0XA4);OutSI(0XA4);//动态驱动
    OutMI(0XA9);OutSI(0XA9);//1/32占空比
    OutMI(0XA0);OutSI(0XA0);//时钟线输出
    OutMI(0XEE);OutSI(0XEE);//写模式
    
    OutMI(0X00);OutMI(0XC0);
    OutSI(0X00);OutSI(0XC0);
    
    OutMI(0XAF);OutSI(0XAF);
}    

/*------------------------------------------------------------------------------
--
调用方式:void SetPage(uchar page0,uchar page1)
函数说明:同时设置主从显示页为0-3页。(内函数,私有,用户不直接调用)

⌨️ 快捷键说明

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