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

📄 sample1.txt

📁 TI的MCU——MSP430F149与图形点阵控制芯片T6963的接口程序及相关的函数介绍
💻 TXT
字号:

 MSP430F149控制6963c驱动液晶 
 
 
 
/*****************************************************************************
读液晶状态字到STA
功能:用于往液晶写数据或命令之前判断忙闲
******************************************************************************/
void read_sta(void)
{
   P4DIR = 0x00;          //P4数据输入
   P3OUT  =  P3_2_DATAIO; //4245(x1)数据传送方向选择为:由液晶到430
   P3OUT  =  P3_1_CD;     //命令方式
   P3OUT &= ~P3_0_RD;     //read
   STA = P4IN;            //读回状态
   P3OUT  = P3_0_RD;      //cancel read
   P4DIR = 0xff;          //P4口置为数据输出方式    
   P3OUT &= ~P3_2_DATAIO; //4245(x1)数据传送方向选择为:由430到液晶
 
}
/*****************************************************************************
判状态位S1,S0 函数(读写指令和读写数据状态)
******************************************************************************/
void ST1( void )
    {
      do
        {
        read_sta();
        }
      while( (STA & 0x03) != 0x03 );
 
    }
/*****************************************************************************
判状态位S2函数(数据自动读状态)
******************************************************************************/
void ST2( void )
   {
     do
     {
       read_sta();
     }
    while( (STA & 0x04) != 0x04);
   }
/*****************************************************************************
-判状态位S3函数(数据自动写状态)-
******************************************************************************/
void ST3( void )
   {
     do
     {
       read_sta();
     }
     while( (STA & 0x08) != 0x08 );
   }
/*****************************************************************************
写入数据字节
******************************************************************************/
void write_data(unsigned char Byte )
{
        ST1();
        P4OUT = Byte;
        P3OUT &= ~P3_1_CD;       //数据方式
        P2OUT &= ~P2_7_WR ;      // write
        P2OUT  =  P2_7_WR ;    
}
/*****************************************************************************
自动写入数据字节
******************************************************************************/
void autowrite_data(unsigned char Byte )
{
        P4OUT = Byte;
        P3OUT &= ~P3_1_CD;       //数据方式
        P2OUT &= ~P2_7_WR ;      // write
        P2OUT  =  P2_7_WR ;    
}
 
/*****************************************************************************
写入命令字
******************************************************************************/
void write_cmd(unsigned char cmd )
{
        ST1();
        P4OUT = cmd ;
        P3OUT  =  P3_1_CD  ;      //命令方式
        P2OUT &= ~P2_7_WR ;       // write
        P2OUT  =  P2_7_WR ;    
}
/*****************************************************************************
写只有一个参数的命令
******************************************************************************/
void write_onepara(unsigned char dat1,unsigned char command )
{
 
        write_data( dat1 );
        write_cmd( command );
        
}
/*****************************************************************************
写含有双参数的命令
******************************************************************************/
void write_doublepara(unsigned char dat1,unsigned char dat2,unsigned char command )
{
 
        write_data( dat1 );
        write_data( dat2 );
        write_cmd( command );
        
}
/*****************************************************************************
清显示缓冲的函数
******************************************************************************/
void CLEAR_RAM( void )
    {
    int i;
    write_doublepara( 0x00,0x00,0x24 );       /* 设置显示RAM 首地址 */
  
    write_cmd( 0xb0 );                        /* 设置自动写方式 */
 
    for(i=0;i<8200;i++)                       /* 清8K存储器 */
       {         
         ST3();                               /* 判状态位S3 */
         write_data(0x00);                    /* 写入数据 */            
        }
     write_cmd( 0xb2 );                       /* 设置自动写结束指令 */        
       
    }
/*****************************************************************************
对液晶屏的一些初始设置函数
******************************************************************************/
void LcdIni( void )
    {
       write_doublepara(0x00,0x00,0x40);       /*设文本显示区域首地址*/
       write_doublepara(0x28,0x00,0x41);       /*设文本显示区域宽度*/
       write_doublepara(0x03,0x00,0x22);    /* 设置CGRAM偏置地址 */
 
       write_doublepara(0x00,0x08,0x42);       /*设图形显示区域首地址*/
       write_doublepara(0x1e,0x00,0x43);       /*设图形显示区域宽度*/
 //      write_cmd(0xa2);                        /*光标形状设置*/   
  //     write_doublepara(0x08,0x08,0x21);       /* 设置光标 位置*/ 
       write_cmd(0x80);                        /*显示方式设置逻辑"或"合成, 内部字符发生器有效*/
       write_cmd(0x98);                        /*显示开关设置 关文本和开图形显示*/
       CLEAR_RAM();
    }
 
 
文章录入:尘封往事    责任编辑:尘封往事  
 
 
上一篇文章: MSP430+液晶SED1335控制器子程序

下一篇文章: 没有了
 
 
 /*****************************************************************************
读液晶状态字到STA
功能:用于往液晶写数据或命令之前判断忙闲
******************************************************************************/
void read_sta(void)
{
   P4DIR = 0x00;          //P4数据输入
   P3OUT  =  P3_2_DATAIO; //4245(x1)数据传送方向选择为:由液晶到430
   P3OUT  =  P3_1_CD;     //命令方式
   P3OUT &= ~P3_0_RD;     //read
   STA = P4IN;            //读回状态
   P3OUT  = P3_0_RD;      //cancel read
   P4DIR = 0xff;          //P4口置为数据输出方式    
   P3OUT &= ~P3_2_DATAIO; //4245(x1)数据传送方向选择为:由430到液晶
 
}
/*****************************************************************************
判状态位S1,S0 函数(读写指令和读写数据状态)
******************************************************************************/
void ST1( void )
    {
      do
        {
        read_sta();
        }
      while( (STA & 0x03) != 0x03 );
 
    }
/*****************************************************************************
判状态位S2函数(数据自动读状态)
******************************************************************************/
void ST2( void )
   {
     do
     {
       read_sta();
     }
    while( (STA & 0x04) != 0x04);
   }
/*****************************************************************************
-判状态位S3函数(数据自动写状态)-
******************************************************************************/
void ST3( void )
   {
     do
     {
       read_sta();
     }
     while( (STA & 0x08) != 0x08 );
   }
/*****************************************************************************
写入数据字节
******************************************************************************/
void write_data(unsigned char Byte )
{
        ST1();
        P4OUT = Byte;
        P3OUT &= ~P3_1_CD;       //数据方式
        P2OUT &= ~P2_7_WR ;      // write
        P2OUT  =  P2_7_WR ;    
}
/*****************************************************************************
自动写入数据字节
******************************************************************************/
void autowrite_data(unsigned char Byte )
{
        P4OUT = Byte;
        P3OUT &= ~P3_1_CD;       //数据方式
        P2OUT &= ~P2_7_WR ;      // write
        P2OUT  =  P2_7_WR ;    
}
 
/*****************************************************************************
写入命令字
******************************************************************************/
void write_cmd(unsigned char cmd )
{
        ST1();
        P4OUT = cmd ;
        P3OUT  =  P3_1_CD  ;      //命令方式
        P2OUT &= ~P2_7_WR ;       // write
        P2OUT  =  P2_7_WR ;    
}
/*****************************************************************************
写只有一个参数的命令
******************************************************************************/
void write_onepara(unsigned char dat1,unsigned char command )
{
 
        write_data( dat1 );
        write_cmd( command );
        
}
/*****************************************************************************
写含有双参数的命令
******************************************************************************/
void write_doublepara(unsigned char dat1,unsigned char dat2,unsigned char command )
{
 
        write_data( dat1 );
        write_data( dat2 );
        write_cmd( command );
        
}
/*****************************************************************************
清显示缓冲的函数
******************************************************************************/
void CLEAR_RAM( void )
    {
    int i;
    write_doublepara( 0x00,0x00,0x24 );       /* 设置显示RAM 首地址 */
  
    write_cmd( 0xb0 );                        /* 设置自动写方式 */
 
    for(i=0;i<8200;i++)                       /* 清8K存储器 */
       {         
         ST3();                               /* 判状态位S3 */
         write_data(0x00);                    /* 写入数据 */            
        }
     write_cmd( 0xb2 );                       /* 设置自动写结束指令 */        
       
    }
/*****************************************************************************
对液晶屏的一些初始设置函数
******************************************************************************/
void LcdIni( void )
    {
       write_doublepara(0x00,0x00,0x40);       /*设文本显示区域首地址*/
       write_doublepara(0x28,0x00,0x41);       /*设文本显示区域宽度*/
       write_doublepara(0x03,0x00,0x22);    /* 设置CGRAM偏置地址 */
 
       write_doublepara(0x00,0x08,0x42);       /*设图形显示区域首地址*/
       write_doublepara(0x1e,0x00,0x43);       /*设图形显示区域宽度*/
 //      write_cmd(0xa2);                        /*光标形状设置*/   
  //     write_doublepara(0x08,0x08,0x21);       /* 设置光标 位置*/ 
       write_cmd(0x80);                        /*显示方式设置逻辑"或"合成, 内部字符发生器有效*/
       write_cmd(0x98);                        /*显示开关设置 关文本和开图形显示*/
       CLEAR_RAM();
    }

⌨️ 快捷键说明

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