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

📄 lcm(truly m240128-1a1)显示程序.txt

📁 LCM(TRULY M240128-1A1)显示程序 LCM 控制芯片 T6963C 带32KRAM MCU 型号:LPC2132
💻 TXT
📖 第 1 页 / 共 2 页
字号:
//主程序    
   
   
   
   
/***********************************/   
/* LCM(TRULY M240128-1A1)显示程序*/   
/* LCM 控制芯片 T6963C 带32KRAM    */   
/* MCU 型号: LPC2132               */   
/* 时钟频率: 11.0592 MHz           */   
/* 接口方式: 模拟方式              */   
/* 开发环境: ADS1.2                */   
/* 开发日期: 2007.7.7              */   
/* 程序编写: 用芯工作              */   
/*邮件地址 kufund@163.com          */   
/***********************************/   
   
/***********************************  
**     硬件接口  
**   D0-------P0.4  
**        |  
**   D7-------P0.11  
  
**   WR-------P0.12  
**   RD-------P0.13  
**   CE-------P0.14  
**   C/D------P0.15  
**   RST------P0.16  
  
************************************/   
   
#define t6963c_c 1    
#include "t6963c.h"    
   
   
/***********************************  
**  
**           接口定义  
**  
***********************************/   
   
/* 定义总线起始的GPIO,即D0对应的GPIO值(P0.4) */   
#define  BUS_NO     4    
   
/* 输出总线数据宏定义 */   
#define  OutData(dat)   IO0CLR = 0xFF<<BUS_NO; for(i="0;" i,temp; uchar { 判断(读写指令和读写数据) 状态位STA1,STA0 check_cmd_st(void) ********************************** ="函数原型:" 非0不忙,否则忙 值: 回 数: 查询是否可读写命令和数据的状态 能: check_cmd_st() } i++); i<100; i; int DELAY5(void) void ********************************************************************************** 出口参数:无 * 入口参数:无 功能:软件延时函数。用于LCM显示输出时序控制。 名称:DELAY5() ********************************************************************************* txthome,grhome; uint wr="P1^0;*/" sbit rd="P1^1;" cs="p1^2;" cd="P1^3;" reset="p3^0;" p3="0xb0;" sfr p2="0xa0;" p1="0x90;" p0="0x80;" *sfr **************************************** IO0CLR="1<<LCM_WR" CRST() #define IO0SET="(dat&0xff)<<BUS_NO" SRST() 16 LCM_RST 控制 CE 定义 CCD() SCD() 15 LCM_CD CD CCE() SCE() 14 LCM_CE CRD() SRD() 13 LCM_RD RD CWR() SWR(); 12 LCM_WR WR 0xFF<<BUS_NO DATA_PORT *数据口宏定义>0;i--)    
    {   
           
        CCE();   
        DELAY5();   
        SCD();   
      DELAY5();   
      SRD();   
      DELAY5();   
        CRD();   
        DELAY5();   
        temp = (uchar)((IO0PIN&0x00000FF0)>>4);  //读总线数据    
        SRD();   
        if((temp & 0x03) == 0x03)   
        break;   
    }   
    return i; // 若返回零,说明错误    
}   
   
/**********************************  
//= 函数原型: uchar check_ar_st  
//= 功    能: 查询是否可数据自动读状态  
//= 参    数:  
//= 返 回 值: 非0不忙,否则忙  
//= 函数性质:私有函数  
**********************************/   
uchar check_ar_st(void) // 状态位ST2 判断(数据自动读状态)    
{   
    uchar i,temp;   
    for(i=100;i>0;i--)   
    {   
        CCE();   
        DELAY5();   
        SCD();   
        DELAY5();   
        SRD();   
        DELAY5();   
        CRD();   
        temp = (uchar)((IO0PIN&0x00000FF0)>>4);  //读总线数据    
        SRD();          
        if((temp & 0x04) == 0x04)   
        break;   
           
    }   
    return i; // 若返回零,说明错误    
}   
   
/**********************************  
//= 函数原型: uchar check_aw_st  
//= 功    能: 查询是否可数据自动写状态  
//= 参    数:  
//= 返 回 值: 非0不忙,否则忙  
//= 函数性质:私有函数  
**********************************/   
uchar check_aw_st(void) // 状态位ST3 判断(数据自动写状态)    
{   
    uchar i,temp;   
    for(i=100;i>0;i--)   
    {   
      CCE();   
      DELAY5();   
        SCD();   
        DELAY5();   
        SRD();   
        DELAY5();   
        CRD();   
            DELAY5();   
        temp = (uchar)((IO0PIN&0x00000FF0)>>4);  //读总线数据    
        SRD();          
        if((temp & 0x08) == 0x08)   
        break;   
    }   
    return i; // 若返回零,说明错误    
}   
   
/**********************************  
//= 函数原型: uchar check_scrPeek_st()  
//= 功    能: 查询是否可屏读/屏拷贝状态状态  
//= 参    数:  
//= 返 回 值: 非0不忙,否则忙  
//= 函数性质:私有函数  
**********************************/   
uchar check_scrPeek_st(void) // 状态位ST6 判断(屏读/屏拷贝状态)    
{   
    uchar i,temp;   
    for(i=100;i>0;i--)   
    {   
        CCE();   
        DELAY5();   
        SCD();   
        DELAY5();   
        SRD();   
        DELAY5();   
        CRD();   
            DELAY5();   
        temp = (uchar)((IO0PIN&0x00000FF0)>>4);  //读总线数据    
        SRD();          
        if((temp & 0x40) == 0x40)   
        break;   
    }   
    return i; // 若返回零,说明错误    
}   
   
/**********************************  
//= 函数原型: uchar wr_cmd_2(uchar uCmd,uint uPar)  
//= 功    能: 给T6963C写带双参数的指令  
//= 参    数:  
//= 返 回 值: 返回0 成功,否则忙  
//= 函数性质:私有函数  
**********************************/   
uchar wr_cmd_2(uchar uCmd,uint uPar) // 写双参数的指令    
{   
     uchar temp;   
        
    if(check_cmd_st() == 0)    return 1;   
            CCD();   
            DELAY5();   
        SWR();   
        DELAY5();   
        CWR();   
        DELAY5();   
          temp = (uchar)(uPar& 0xFF);    
          OutData(temp);               //先写低字节    
          DELAY5();   
          SWR();   
          DELAY5();   
        SCD();   
    if(check_cmd_st() == 0)    return 2;   
           
        CCD();   
        DELAY5();   
        SWR();   
        DELAY5();   
        CWR();   
        DELAY5();   
          temp = (uchar)(uPar>>8);  //再写高字节    
          OutData(temp);    
          DELAY5();   
          SWR();   
          DELAY5();   
        SCD();     
           
    if(check_cmd_st() == 0)    return 3;   
        SCD();   
        DELAY5();   
            SWR();   
            DELAY5();   
          CWR();   
          DELAY5();   
          OutData(uCmd);   
          DELAY5();   
        SWR();     
       
    return 0; // 返回0 成功    
}   
   
/**********************************  
//= 函数原型: uchar wr_cmd_1(uchar uCmd,uchar uPar1)  
//= 功    能: 给T6963C写带单参数的指令  
//= 参    数:  
//= 返 回 值: 返回0 成功,否则忙  
//= 函数性质:私有函数  
**********************************/   
uchar wr_cmd_1(uchar uCmd,uchar uPar) // 写单参数的指令    
{   
    if(check_cmd_st() == 0)    return 1;   
        CCD();   
        DELAY5();   
        SWR();   
        DELAY5();   
        CWR();   
        DELAY5();   
        OutData(uPar);      
          DELAY5();    
          SWR();   
          DELAY5();   
        SCD();     
    if(check_cmd_st() == 0)    return 2;   
     SCD();   
     DELAY5();   
         SWR();   
         DELAY5();   
         CWR();   
         DELAY5();   
         OutData(uCmd);   
         DELAY5();   
     SWR();    
    return 0; // 返回0 成功    
}   
   
/**********************************  
//= 函数原型: uchar wr_cmd_0(uchar uCmd)  
//= 功    能: 给T6963C写无参数的指令  
//= 参    数:  
//= 返 回 值: 返回0 成功,否则忙  
//= 函数性质:私有函数  
**********************************/   
uchar wr_cmd_0(uchar uCmd) // 写无参数的指令    
{   
    if(check_cmd_st() == 0)    return 1;   
     SCD();   
     DELAY5();   
         SWR();   
         DELAY5();   
         CWR();   
         DELAY5();   
         OutData(uCmd);   
         DELAY5();   
     SWR();    
    return 0; // 返回0 成功    
}   
   
/**********************************  
//= 函数原型: uchar wr_data(uchar uData)  
//= 功    能: 给T6963C写一次数据  
//= 参    数:  
//= 返 回 值: 返回0 成功,否则忙  
//= 函数性质:私有函数  
**********************************/   
uchar wr_data(uchar uData) // 写一次数据    
{   
    if(check_cmd_st() == 0)    return 1;   
        CCD();   
        DELAY5();   
        SWR();   
        DELAY5();   
        CWR();   
        DELAY5();   
          OutData(uData);            
                DELAY5();   
          SWR();   
                DELAY5();   
        SCD();         
    return 0; // 返回0 成功    
}   
   
   
/**********************************  
//= 函数原型: uchar awr_data(uchar uData)  
//= 功    能: 给T6963C写一个地址增加自动连续数据  
//= 参    数:  
//= 返 回 值: 返回0 成功,否则忙  
//= 函数性质:私有函数  
**********************************/   
uchar awr_data(uchar uData) // 自动写数据    
{   
    if(check_aw_st() == 0)    return 1;   
        CCD();   
        DELAY5();   
        SWR();   
        DELAY5();   
        CWR();   
        DELAY5();   
         // P0=  uData;     
          OutData(uData);            
          DELAY5();   
          SWR();   
          DELAY5();   
        SCD();         
   // LCMDP = uData;    
    return 0; // 返回0 成功    
}   
   
/**********************************  
//= 函数原型: uchar ard_data(uchar uData)  
//= 功    能: 从T6963C读一个地址增加自动连续数据  
//= 参    数:  
//= 返 回 值: 返回0 成功,否则忙  
//= 函数性质:私有函数  
**********************************/   
uchar ard_data(void) // 自动读数据    
{   
      uchar temp;   
         
         
      if(check_ar_st() == 0)    return 1;    
        CCE();   
        DELAY5();   
        CCD();   
        DELAY5();   
        SRD();   
        DELAY5();   
        CRD();   
        DELAY5();   
        temp = (uchar)((IO0PIN&0x00000FF0)>>4);  //读总线数据    
        SRD();          
        return temp;       
  //  if(check_ar_st() == 0)    return 1;    
             
   // return LCMDP;    
}   

⌨️ 快捷键说明

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