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

📄 project based on embeded system(c51).txt

📁 一个基于嵌入式内核做的项目的源代码(c51的).
💻 TXT
📖 第 1 页 / 共 5 页
字号:
}





/*********************************************************************************************************
** 函数名称: lcd1INT_1()
** 功能描述: lcd1初始化
**
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: lcd1PR1();
           lcd1PR4();
**
** 作 者: 陈杰峰   wishercjf@163.com 
** 日 期: 2004年5月10日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

void  lcd1INT_1()
        {
           lcd1com=reset;  /* 复位*/
           lcd1PR1();      /* 写指令函数 */
           lcd1PR4();      /* 写指令函数 */
           lcd1com=sleep_off;/* 关闭休闲状态*/
           lcd1PR1();
           lcd1PR4();
           lcd1com=duty32; /* 占空比为32DUTY*/
           lcd1PR1();
           lcd1PR4();
           lcd1com=ADC_P;   /*  ADC=0正向顺序  */
           lcd1PR1();
           lcd1PR4();
           lcd1com=start_line0;  /* 显示起始行为0 */
           lcd1PR1();
           lcd1PR4();
           lcd1com=display_on;  /* 开显示  */
           lcd1PR1();
           lcd1PR4();
        }
/*********************************************************************************************************
** 函数名称: lcd1CLEAR()
** 功能描述: lcd1 清屏函数   
**
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: lcd1PR1();
           lcd1PR4(); 
     lcd1PR2();
            lcd1PR5();
**
** 作 者: 陈杰峰   wishercjf@163.com 
** 日 期: 2004年5月10日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/


void  lcd1CLEAR()
        {
         unsigned int i;
                for(count1=0xb8;count1!=0xbc;count1++) /*以页地址作为循环量*/
                {
                  lcd1com=count1;  /* 页面地址设置 */
                  lcd1PR1();
                  lcd1PR4();
                  lcd1com=0x00;    /* 列地址设置为"0" */
                  lcd1PR1();
                  lcd1PR4();
                  for(i=0;i<62;i++)   /*清除所有SED1520的内部RAM单元*/
                      {
                        dat1=0x00;  /* 写入数据为"0x00"*/
                        lcd1PR2();
                        lcd1PR5();
                       }
                  }
        }




/*********************************************************************************************************
** 函数名称: lcd2PR1()、lcd2PR4()
** 功能描述: 向lcd1模块发送命令,因为使用的液晶为两个部分,所以分别控制
**
** 输 入: 无
** 输 出: 无
** 全局变量: DATA2,以及lcd1有关的一些端口
** 调用模块: 
**
** 作 者: 陈杰峰   wishercjf@163.com 
** 日 期: 2004年5月10日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/


void  lcd2PR1()
{
    lcd2RS=0;
    lcd2RW=1;
    do  
{
          DATA2=0xFF;
          lcd2E1=1;
          ACC=DATA2;                /*  读状态字  */
          lcd2E1=0;
      }  while (ACC_7==1);                /*  判“忙”标志  */
     lcd2RW=0;
     DATA2=lcd2com;
     lcd2E1=1;
     lcd2E1=0;

}

void  lcd2PR4()
{
    lcd2RS=0;
    lcd2RW=1;
    do  
{
          DATA2=0xFF;
          lcd2E2=1;
          ACC=DATA2;                /*  读状态字  */
          lcd2E2=0;
      }  while (ACC_7==1);                /*  判“忙”标志  */
     lcd2RW=0;
     DATA2=lcd2com;
     lcd2E2=1;
     lcd2E2=0;

}
/*********************************************************************************************************
** 函数名称: lcd2PR2()、lcd2PR5()
** 功能描述: 向lcd1模块发送数据,因为使用的液晶为两个部分,所以分别控制
**
** 输 入: 无
** 输 出: 无
** 全局变量: DATA1,以及lcd1有关的一些端口
** 调用模块: 
**
** 作 者: 陈杰峰   wishercjf@163.com 
** 日 期: 2004年5月10日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

void  lcd2PR2()
{
    lcd2RS=0;
    lcd2RW=1;
    do  
{
          DATA2=0xFF;
          lcd2E1=1;
          ACC=DATA2;                /*  读状态字  */
          lcd2E1=0;
      }  while (ACC_7==1);                /*  判“忙”标志  */
lcd2RS=1;
     lcd2RW=0;
     DATA2=dat2;
     lcd2E1=1;
     lcd2E1=0;

}

void  lcd2PR5()
{
    lcd2RS=0;
    lcd2RW=1;
    do  
{
          DATA2=0xFF;
          lcd2E2=1;
          ACC=DATA2;                /*  读状态字  */
          lcd2E2=0;
      }  while (ACC_7==1);                /*  判“忙”标志  */
    lcd2RS=1;
     lcd2RW=0;
     DATA2=dat2;
     lcd2E2=1;
     lcd2E2=0;

}





/*********************************************************************************************************
** 函数名称: lcd2INT_1()
** 功能描述: lcd2初始化
**
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: lcd2PR1();
           lcd2PR4();
**
** 作 者: 陈杰峰   wishercjf@163.com 
** 日 期: 2004年5月10日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

void  lcd2INT_1()
        {
           lcd2com=reset;  /* 复位*/
           lcd2PR1();      /* 写指令函数 */
           lcd2PR4();      /* 写指令函数 */
           lcd2com=sleep_off;/* 关闭休闲状态*/
           lcd2PR1();
           lcd2PR4();
           lcd2com=duty32; /* 占空比为32DUTY*/
           lcd2PR1();
           lcd2PR4();
           lcd2com=ADC_P;   /*  ADC=0正向顺序  */
           lcd2PR1();
           lcd2PR4();
           lcd2com=start_line0;  /* 显示起始行为0 */
           lcd2PR1();
           lcd2PR4();
           lcd2com=display_on;  /* 开显示  */
           lcd2PR1();
           lcd2PR4();
        }

/*********************************************************************************************************
** 函数名称: lcd2CLEAR()
** 功能描述: lcd2 清屏函数   
**
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: lcd2PR1();
           lcd2PR4(); 
     lcd2PR2();
            lcd2PR5();
**
** 作 者: 陈杰峰   wishercjf@163.com 
** 日 期: 2004年5月10日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/


void  lcd2CLEAR()
        {
         unsigned int i;
                for(count2=0xb8;count2!=0xbc;count2++) /*以页地址作为循环量*/
                {
                  lcd2com=count2;  /* 页面地址设置 */
                  lcd2PR1();
                  lcd2PR4();
                  lcd2com=0x00;    /* 列地址设置为"0" */
                  lcd2PR1();
                  lcd2PR4();
                  for(i=0;i<62;i++)   /*清除所有SED1520的内部RAM单元*/
                      {
                        dat2=0x00;  /* 写入数据为"0x00"*/
                        lcd2PR2();
                        lcd2PR5();
                       }
                  }
        }

/*********************************************************************************************************
** 函数名称: CW_PR1()
** 功能描述: lcd1  西文写入函数       
**
** 输 入: 无
** 输 出: 无
** 全局变量: lcd1com、lcd1O_X、lcd1O_Y
** 调用模块: lcd1PR1();
           lcd1PR4(); 
     lcd1PR2();
            lcd1PR5();
**
** 作 者: 陈杰峰   wishercjf@163.com 
** 日 期: 2004年5月10日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/



void   CW_PR1()
        {
           unsigned int i,j;
           unsigned char k;
                i=0;
                j=para1;
    loop:       lcd1com=lcd1O_Y|0xb8;  /* 设页地址 */
                lcd1PR1();
                lcd1PR4();
                  if(lcd1O_X<j) /* 是否小于SED1520控制器宽度 */
                     {
                        lcd1com=lcd1O_X;
                        lcd1PR1();  /* 小于写E1 */
                        k=1;
                     }
                  else
                     {
                        lcd1com=lcd1O_X-j;
                        lcd1PR4();  /* 不小于写E2 */
                        k=0;
                     }
                  for(count1=i;count1<i+8;count1++)
                     {
                         dat1=CHTAB[code_1][count1];  /* 取数据 */
                         if(k==1)
                           {
                                lcd1PR2();  /* 写E1 */
                           }
                         else
                           {
                                lcd1PR5(); /* 写E2 */
                           }
                                lcd1com++;  /* 计算列 */

                         if(j==lcd1com)
                            {
                                if(k==1)  /* 判左屏出界还是右屏出界 */
                                   {
                                       lcd1com=0;
                                       lcd1PR4();   /* 左屏出界写右屏 */
                                       k=0;
                                   }
                                 else
                                   {
                                     goto loop2;
                                    }
                            }
                     }
    loop2:        if(i==0)
                     {
                         i=8;
                         lcd1O_Y++;                 /* 计算页 */
                                if(lcd1O_Y==4)
                                   {
                                      return;
                                   }
                                      else
                                          {
                                               goto loop;
                                          }
                     }
        }

/*********************************************************************************************************
** 函数名称: CW_PR1()
** 功能描述: lcd1  中文写入函数       
**
** 输 入: 无
** 输 出: 无
** 全局变量: lcd1com、lcd1O_X、lcd1O_Y
** 调用模块: lcd1PR1();
           lcd1PR4(); 
     lcd1PR2();
            lcd1PR5();
**
** 作 者: 陈杰峰   wishercjf@163

⌨️ 快捷键说明

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