资讯中心
公司新闻
行业动态
技术文章
产品资讯
MORE推荐产品
首页 > 资讯中心 > 产品资讯

用单片机如何点亮12232液晶

作者:瑞祥微电子    点击:1869    时间:2013/8/12
/显示程序,用于显示所输入输出的量    12232
#include<stdio.h>
#include<regx52.h>
//#include<word.h>
  
#define ON      0xaf
#define OFF     0xae
#define RST  0xe2
#define ZKB  0XA8
#define QD   0XA4
#define ADC  0XA0
#define WE   0XEE
#define WB   0XE0

#define uchar unsigned char
#define uint  unsigned int
 
#define  E1   P1_0                      //5
#define  E2   P1_1                    //6                                          //P1口有特殊要求
//#define  RW   P3_2
#define  A0   P2_2         //8
#define  data P0
// m=&charge;n=&discharge;p=&laolian;

/***********延时***************************/
      /*void dly(unsigned long int i)
     {
      while(i--);
     }
 
/********主显写数据************************/
void MD(uchar i)
  {
      A0=1;
    E1=1;
    data=i;
    E1=0;
    }
 
/**********从显写数据**********************/ 
void SD(uchar i)
  {
      A0=1;
    E2=1;
    data=i;
    E2=0;
    }
/**********主显写命令**********************/ 

  void MO(uchar i)
   {
       A0=0;
    E1=1;
    data=i;
    E1=0;
    
   }
/**********从显写命令**********************/ 
   void SO(uchar i)
   {
       A0=0;
    E2=1;
    data=i;
    E2=0;
    
   }

/**********************主显写字符*********************/
void Mchar(uchar ch)
{MD(ch);
}
/**********************从显写字符*********************/
void Schar(uchar ch)
{
    SD(ch);
}
/**********设置页地址**********************/ 
   void page (uchar p0,p1)       
   {                          
       MO(0xb8|p0);
     SO(0xb8|p1);                                                                    //位或
   }
 
 /*******设置行*************/
 /*void x(d0,d1)
 {
     A0=0;
    MO(0xb0|d0);
    SO(0xb0|d1);
 }     */
/**********设置列地址**********************/ 
   void rank(uchar r0,uchar r1)
{
    MO(0x7f&r0);
     SO(0x7f&r1);                                                                   //位与        ?
 }

/**********初始化**********************/   
   void  initial_LCD(void)
   {
       MO(RST);SO(RST);        //复位
     MO(OFF);SO(OFF);        //关显示
     MO(QD);SO(QD);          //动态驱动
     MO(ADC);SO(ADC);        //时钟线输出
     MO(ZKB|1);SO(ZKB|1);    //1/32占空比  ---不可少
     MO(WE); SO(WE);         //结束写模式
     MO(ON);SO(ON);          //开显示
   }
/**********清屏**********************/ 
   void clrscreen(void)
   {
       uchar j,pager;
     for(pager=0;pager<4;pager++)
         {
            page(pager,pager);
             rank(0,0);
             for(j=0;j<61;j++)
             {
                Mchar(0);
                 Schar(0);
            }
        }
    }

void display(uchar pager,uchar ranker,uchar width,uchar *bmp1)//页,列,宽度,地址 //采用横向扫描
     {
        bit window=0;
        uchar Mranker;
        uchar Nranker;
        uchar x;
        
        Nranker=ranker;
/*********先写上半部分************/
        for(x=0;x<width;x++)
            {    
                if(ranker>60)
                {
                    window=1;
                    Mranker=ranker%61;
                }
                else Mranker=ranker;
                rank(Mranker,Mranker);    
                page(pager,pager);
                //x(0,0);
                if(window)
                    {
                        Schar(*(bmp1++));
                    }
                else Mchar(*(bmp1++));
                ranker++;
              }
/**********再写下半部分*************/
        page(pager+1,pager+1);
        window=0;
        for(x=0;x<width;x++)
            {    if(Nranker>60)
                {
                window=1;
                Mranker=Nranker%61;
                }
                else Mranker=Nranker;
                rank(Mranker,Mranker);
                if(window)
                    {
                        Schar(*(bmp1++));
                    }
                else Mchar(*(bmp1++));
                Nranker++;
              }       

     }
本文由深圳LCDLCM液晶模块液晶显示屏液晶模组点阵模块笔段模块液晶面板厂家瑞祥微电子搜集整理,转载请注明出处,如有侵权请联系删除,Q:381867214!
收缩
  • 电话咨询

  • 075527212675
网页聊天
live chat