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

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

📁 12232点阵信利液晶基本驱动程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
--------------------------------------------------------------------------------
-*/
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);}
    }
} 

急!板注:我用了你的源代码,可是他是在左右屏同时显示一样的字符的,我只想显示一
屏,怎么修改? [keilc51] [3次] 01-9-10 上午 11:46:28 

检查cs信号(E1,E2)的处理,你可能把左右两块同时打开了? [晓奇] [1次] 01-9-10 下午 
12:39:26 

在每个子函数里,E1,E2选中后都会关掉,应该不会是这个问题吧。 [keilc51] [2次] 01-
9-10 下午 02:42:44 

可能是什么问题呢?谁能看看龙版注的程序? [keilc51] [1次] 01-9-10 下午 06:03:41 

我可没有在左右屏同时显示一样的字符,你是不是在硬件上把两个片选E1/E2接一起了? 
[龙啸九天] [1次] 01-9-10 下午 09:23:51 

没有呀,如果我要显示超过4个汉字时(16*16),右边屏的汉字同时会在左屏显示,而且把
左屏原来的汉字覆盖了。 [keilc51] [2次] 01-9-11 上午 09:33:01 

以下是我的主程序,再请大虾帮我看一下: [keilc51] [18次] 01-9-12 上午 10:18:37 
void main()
{
 uint j;
 LcdIni(); //reset
 clrscr(); //
 for(j=0;j<6;j++)
   DrawBmp(16*j,0,16,table+32*j); //table为字模表格首址,显示六个汉字
 while (1);
 } 

 
点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2001 



我公司用新的才50RMB [独孤九剑] [25次] 01-11-14 上午 11:30:01 

是啊,那些人简直就是抢钱!!我宁愿等他们降下来再说。 [傲气雄鹰] [22次] 01-11-14 下午 12:57:53 

加入R/W控制脚的改进的信利12232基本驱动程序 [mikewolf] [85次] 01-12-18 17:40:57 
非常感谢龙斑,使我在对TRULY12232编程时用了很短的时间就搞定了!!!!!!!!!

/*
 *====================================================================
 *                      以下是TRULY12232控制程序
*/
#define lcd_E1 p23         /*液晶主窗口选择端口*/
#define lcd_E2 p22         /*液晶从窗口选择端口*/
#define lcd_RW p21         /*液晶读写控制      */
#define lcd_A0 p20         /*液晶数据或寄存器  */
#define lcd_DATA P0        /*8位数据口         */

/*  发命令i到主窗口*/

void lcd_MC(uchar i)
{
     lcd_E1=1;
     lcd_A0=0;
     lcd_RW=0;
     lcd_DATA=i;
     lcd_E1=0;
}

/*  写数据i到主窗口*/

void lcd_MD(uchar i)
{
     lcd_E1=1;
     lcd_A0=1;
     lcd_RW=0;
     lcd_DATA=i;
     lcd_E1=0;
}

/*  读主窗口状态*/

uchar lcd_MRE(void)
{
     uchar i;
     lcd_E1=1;
     lcd_A0=0;
     lcd_RW=1;
     i=lcd_DATA;
     lcd_E1=0;
     return(i);
}

/*  读主窗口数据*/

uchar lcd_MRD(void)
{
     uchar i;
     lcd_E1=1;
     lcd_A0=1;
     lcd_RW=1;
     i=lcd_DATA;
     lcd_E1=0;
     return(i);
}


/*  发命令i到从窗口*/

void lcd_SC(uchar i)
{
     lcd_E2=1;
     lcd_A0=0;
     lcd_RW=0;
     lcd_DATA=i;
     lcd_E2=0;
}

/*  写数据i到从窗口*/

void lcd_SD(uchar i)
{
     lcd_E2=1;
     lcd_A0=1;
     lcd_RW=0;
     lcd_DATA=i;
     lcd_E2=0;
}

/*  读从窗口状态*/

uchar lcd_SRE(void)
{
     uchar i;
     lcd_E2=1;
     lcd_A0=0;
     lcd_RW=1;
     i=lcd_DATA;
     lcd_E2=0;
     return(i);
}

/*  读从窗口数据*/

uchar lcd_SRD(void)
{
     uchar i;
     lcd_E2=1;
     lcd_A0=1;
     lcd_RW=1;
     i=lcd_DATA;
     lcd_E2=0;
     return(i);
}


/*   清屏                                */

void lcd_clear(void)
{
     uchar i;
     uchar page;
     for (page=0;page<4;page++)
         {
             lcd_MC(0xB8|page);       /*设置显示页面*/
             lcd_SC(0xB8|page);
             lcd_MC(0&0x7F);          /*设置列地址*/
             lcd_SC(0&0x7F);
             for (i=0;i<61;i++)
             {
                 lcd_SD(0);
                 lcd_MD(0);
             }
         }
}

/*   画一个图,横座标是X,layer表示上下层,width是图形的宽,高都是16,bmp是图形
指针 */
/*   使用zimo21软件,采用纵向取模得到bmp数据 */

void lcd_DrawBmp(uchar x0,bit layer,uchar width,uchar *bmp)
{
     uchar x,address,i=0;
     /* address表示显存的物理地址  */
     uchar page=2;
     bit window=0;
     /* page 表示上下两页,windows表示左右两页    */
     if (layer) page=0;

     for (x=x0;x<x0+width;x++)
     {
         if (x>60)
         {
             window=1;
             address=x%61;
          }
          else
             address=x;
          /*同时设置主从显示页为0-3页*/
          lcd_MC(0xB8|page);
          lcd_SC(0xB8|page);
          /*同时设置主从列地址为0-121*/
          lcd_MC(address&0x7F);
          lcd_SC(address&0x7F);

          if (window) lcd_SD(bmp[i]);
          else     lcd_MD(bmp[i]);               /* 画上层 */
          lcd_MC(0xB8|(page+1));
          lcd_SC(0xB8|(page+1));
          lcd_MC(address&0x7F);
          lcd_SC(address&0x7F);

          if (window) lcd_SD(bmp[i+width]);
             else     lcd_MD(bmp[i+width]);        /* 画下层 */

          i++;
     }
} 

不可能吧?!深圳这里全新带LED背光的12864才¥90,量大还便宜。 [xgdzd] [28次] 01-12-18 17:48:46 

大量供应LCD显示模块 [baker220] [34次] 02-1-5 上午 12:26:15 
大量供应液晶显示模块
字符型:802,161,162,164,202,204,402,404
点阵型:12232A,12232C/D,12864A/B/C/E/G/H,19264A,24064,240128。。。
如果你需要报价,无法一一说明,简单例几个(小批量)
型号    尺寸   配置                        单价(RMB/PCS)不含税
162A   80X36   LED背光                     27
12232D 84X44   内振,LED背光               50
12864A 113X65  0108驱动,LED背光,带负压   120
12864G 54X50   0108驱动,EL背光,带负压    110
19264A 100X60  0108驱动,LED背光,带负压   120
24064A 180X65  TA6963C,LED背光,带负压    300
。。。
地址:深圳市华强电子世界20A233,陈小姐
电话:0755-3687053, 13923782231

或联系郑先生,13005497155



向各位仁兄求教有关1621液晶有关问题 [IAMHNR] [14次] 02-1-12 下午 04:03:07 
我现在要设计一款1621的液晶模块,要求选用IC为51Pins,4COM,32SEG,管脚定义分别为/CS
(Pin1),/RD(Pin2),/WR(Pin3),/DATA(Pin4),VSS(Pin5),OSCO(Pin6),OSCI(Pin7),VLCD
(Pin8),VDD(Pin9),/IRQ(Pin10),BZ(Pin11),/BZ()Pin12,未知(Pin13),未知(Pin14),未知
(Pin15),COM0-COM3(Pin16-pin19),seg0-seg31(Pin20-Pin51),我现在找到了一种IC,是
Holtek1621(48Pins),理论上可以实现基本功能,但是要增加三个电容以降低其功耗,有
那位仁兄知道有那种IC有51个引脚,而且能够实现Holtek1621相同的功能,请mail 
me:IAMHNR@SOHU.COM。盼不辞见教! 
 

 
点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2002 

⌨️ 快捷键说明

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