网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> 代码示例 >> TI DSP代码示例 >> C2000 >> 文章正文
  DSP2407控制320*240大液晶显示的源程序         ★★★ 【字体:
DSP2407控制320*240大液晶显示的源程序
作者:61IC    文章来源:本站原创    点击数:    更新时间:2007-1-16    

#include <__LF240x.h>
#include <Led.h>
//#define  rbadd1 XBYTE[0xF000]  /* 读忙状态地址 */
//#define  wdadd1 XBYTE[0xF000]  /* 写参数及显示数据地址 */
//#define  rdadd1 XBYTE[0xF001]  /* 读参数及显示数据地址 */
//#define  wcadd1 XBYTE[0xF001]  /* 写指令代码地址 */


ioport unsigned     portF000;
ioport unsigned     portF001;
#define rbadd1         portF000
#define wdadd1           portF000
#define rdadd1           portF001
#define wcadd1        portF001

#define  PARA 0x29;     /* 程序参数定义,根据用户选择的LCM型号修改 */

const unsigned char CGTAB[4][32]={0x00,0x40,0x37,0x10,0x83,0x60,0x2F,0x08,    /* 清 */
                                 0x13,0x22,0xE3,0x22,0x23,0x22,0x22,0x22,
                                 0x40,0x48,0xFC,0x40,0xF8,0x40,0xFE,0x08,
                                 0xFC,0x08,0xF8,0x08,0xF8,0x08,0x28,0x10,
                                 0x04,0x04,0x08,0x08,0x18,0x29,0x4A,0x08,    /* 华 */
                                 0x09,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,
                                 0x40,0x48,0x58,0x60,0xC0,0x40,0x44,0x44,
                                 0x3C,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,
                                 0x04,0xFF,0x05,0x41,0x33,0x14,0x01,0xF6,    /* 蓬 */
                                 0x1B,0x10,0x13,0x10,0x17,0x10,0x28,0x47,
                                 0x44,0xFE,0x40,0xF8,0x10,0xE0,0x18,0x46,
                                 0xF8,0x40,0xF8,0x40,0xFC,0x40,0x46,0xFC,
                                 0x00,0x43,0x30,0x10,0x00,0x07,0xF1,0x11,    /* 远 */
                                 0x11,0x11,0x12,0x12,0x14,0x28,0x47,0x00,
                                 0x10,0xF8,0x00,0x00,0x08,0xFC,0x20,0x20,
                                 0x20,0x24,0x24,0x1C,0x00,0x06,0xFC,0x00  };
unsigned char SYSTAB[8]={0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00}; //系统设置指令参数
unsigned char SCROLLTAB[10]={0,0,0xf0,0xb0,0x04,0xf0}; //SCROLL指令参数

 

void INT_1(void)
   {
     unsigned char i;
     wcadd1=0x40;   /* SYSTEM SET代码 */
     for(i=0;i<8;i++)
        {
          wdadd1=SYSTAB[i];  /* 写入参数 */
        }
      wcadd1=0x44;   /* SCROLL代码 */
      for(i=0;i<10;i++)
        {
          wdadd1=SCROLLTAB[i];   /* 写入参数 */
        }
      wcadd1=0x5a;   /* HDOT SCR 代码 */
      asm(" NOP");
      wdadd1=0x00;   /* 设置参数P1 */
      asm(" NOP");
      asm(" NOP");
      wcadd1=0x5b;   /* OVLAY 代码 */
      asm(" NOP");
      asm(" NOP");
      asm(" NOP");
      wdadd1=0x00;   /* 设置参数:显示一,三区为文本属性 */
      CLEAR(0,0,0x00);       /* 调清屏函数 显示一区清屏*/
      CLEAR(0xb0,0x04,0x00);     /*显示二区清屏*/
      wcadd1=0x59;   /* 显示状态设置 */
      asm(" NOP");
      wdadd1=0x54;   /* 设置参数:显示一~四区开显示 */
    }


/*void CLEAR()
  {
    unsigned int i,j;
    wcadd1=0x4c;    CSRDIR 代码
    wcadd1=0x46;    CSRW 代码
    wdadd1=0x00;    设置参数光标指针低8位
    wdadd1=0x00;   设置参数光标指针高8位
    wcadd1=0x42;    MWRITE 代码
    for(j=0;j<2195;j++)
      {
        for(i=0;i<30;i++)
          {
            wdadd1=0x00;   写入数据
          }
      }
  }*/


void CGRAM(void)
  {
   unsigned char i,j;
   wcadd1=0x5c;  /* CGRAMADR 代码 */
   wdadd1=0x00;  /* 设置SAG=0x3000 */
   wdadd1=0x30;
   wcadd1=0x46;  /* CSRW 代码 */
   wdadd1=0x00;  /* 设置CSR=0x3400(字符代码=80H) */
   wdadd1=0x34;
   wcadd1=0x4c;  /* CSRDIR 代码 */
   wcadd1=0x42;  /* MWRITE 代码 */
   for(j=0;j<4;j++)
     {
   for(i=0;i<32;i++)
      {
       wdadd1=CGTAB[j][i];  /* 写入字模数据 */
       }
     }
  }

void CCW1_PR(char O_X,char O_Y,unsigned char code_1)
  {
    unsigned int i,j;
    i=PARA;
    j=i*O_Y+O_X;
    wcadd1=0x4f;      /* CSRDIR 代码(下移) */
    wcadd1=0x46;      /* CSRW 代码 */
    wdadd1=j%256;     /* 设置光标地址 */
    wdadd1=j/256;
    wcadd1=0x42;      /* MWRITE 代码 */
    wdadd1=code_1;    /* 写入汉字代码 */
    wdadd1=code_1+1;  /* 写入汉字代码 */
    j++;
    wcadd1=0x46;      /* CSRW 代码 */
    wdadd1=j%256;     /* 设置光标地址 */
    wdadd1=j/256;
    wcadd1=0x42;      /* MWRITE 代码 */
    wdadd1=code_1+2;  /* 写入汉字代码 */
    wdadd1=code_1+3;  /* 写入汉字代码 */
  }


/*void W_DOT(int O_X,int O_Y)
  {
    unsigned char i,j,dat;
    unsigned int k;
      j=PARA;
      i=O_X%8;
      O_X=O_X/8;
      k=j*O_Y+O_X;
      wcadd1=0x4f;
      wcadd1=0x46;  /* 设置光标地址
      wdadd1=k%256; /* 计算光标地址
      wdadd1=k/256;
      if(O_Y==0)O_Y=0x80;
      else
        {
             O_Y=1;
         for(;i<7;i++)  /* 计算显示位
             {
                O_Y=O_Y*2;
             }
         }
      wcadd1=0x43;  /* MREAD 代码
      dat=rdadd1;   /* 读取当前显示数据
      wcadd1=0x46;  /* 设置光标地址
      wdadd1=k%256;  /* 计算光标地址
      wdadd1=k/256;
      wcadd1=0x42;  /* MWRITE 代码
      wdadd1=dat|O_Y;  /* 写入合成数据
  }*/

static void CLEAR(unsigned short csrl,unsigned short csrh,unsigned short data1)
{
 unsigned char i,j;
 wcadd1=0x46;
 wdadd1=csrl;
 wdadd1=csrh;
 wcadd1=0x4c;
 wcadd1=0x42;
 for(i=0;i<240;i++)
 {
  for(j=0;j<320;j++)
  {
   wdadd1=data1;
  }
 }
}

void main()
{
     unsigned char i,j,code_1;
     unsigned short wCount;
     unsigned int O_X,O_Y;
     DISABLE();
  IMR = 0x0000;   /*初始化*/
  IFR = IFR;
  SCSR1 = 0x04fd;
  SCSR2 = (SCSR2&0x000c)|0x0002;
  WDCR = 0x006f;
     INT_1();   /* 调初始化函数 */
     OnInit8255();
/*     k=0;
     for(j=0;j<240;j++)   /* 绘点显示
       {
         O_X=k;
         O_Y=j+0x10;
         W_DOT(O_X,O_Y);  /* 调绘点函数
         k++;
         if(k>320)break;
       }
      for(j=240;j>0;j--)
       {
         O_X=k;
         O_Y=j+0x10;
         W_DOT(O_X,O_Y);  /* 调绘点函数
         k++;
         if(k>320)break;
       }*/
       /*------- 中文显示(文本方式)----------- */
   while(1)
   {
     CGRAM();                  /* 调CGRAM子程序 */
     code_1=0x80;              /* 取字模 */
     O_X=0x00;
     O_Y=0x02;
     CCW1_PR(O_X,O_Y,code_1);  /* 调中文显示函数(文本方式)  */
     code_1=0x84;              /* 取字模 */
     O_X=0x1c;
     O_Y=0x04;
     CCW1_PR(O_X,O_Y,code_1);  /* 调中文显示函数(文本方式)  */
     code_1=0x88;              /* 取字模 */
     O_X=0x00;
     O_Y=0x0e;
     CCW1_PR(O_X,O_Y,code_1);  /* 调中文显示函数(文本方式)  */
     code_1=0x8c;              /* 取字模 */
     O_X=0x1c;
     O_Y=0x0e;
     CCW1_PR(O_X,O_Y,code_1);  /* 调中文显示函数(文本方式)  */
   } 
}

void c_int1(void)
{
}

void c_int2(void)
{
}

void c_int3(void)
{
}

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    基于DSP2407产生带死区的6个…
    DSP2407平台下用C语言实现的…
    利用DSP2407控制马达代码
    基于DSP240x的串行EEPROM的接…
    基于DSP240x的串行EEPROM的接…
    TMS320LF2407与图形液晶显示…
    一个基于DSP2407串行通信接口…
    基于DSP240x PWM波形产生举例
    基于DSP2407 CAN控制器的程序…
    DSP2407头文件和命令文件示例…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号