MSP430控制SED1335液晶显示源程序例程

来源:本站
导读:目前正在解读《MSP430控制SED1335液晶显示源程序例程》的相关信息,《MSP430控制SED1335液晶显示源程序例程》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《MSP430控制SED1335液晶显示源程序例程》的详细说明。
简介:MSP430控制SED1335液晶显示源程序例程

/*-------------------------------------

基于MSP430单片机子程序

功能:SED1335液晶控制器子程序

介绍:SED1335是日本SEIKOEPSON公司出品的液晶显示控制器,在同类产品中是功能很强。其特点为:有较强功能的I/O缓冲器;指令功能丰富;四位数据并行发送;图形和文本方式混合显示。

来源:晖创电子网:www.schuitron.comMSP430源程序例程

------------------------------- */

#define WC_ADD XBYTE[0xC100]

#define WD_ADD XBYTE[0xC000]

#define RD_ADD XBYTE[0xC100]

#define RB_ADD XBYTE[0xC000]

void INTR(void);

void CLEAR(void); /* 信号输入 x [0---319] ,y [0---239] */

void CCTW(unsigned int x,unsigned char y,unsigned char m,unsigned char n,unsigned char *p);

void dot (unsigned int x,unsigned char y,bit c); /* c=1 划点 c=0 取消点*/

void INTR(void)

{

unsigned char code SYSTAB[]={0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00}; // control parameter

unsigned char code SCRTAB[]={0x00,0x00,0xf0,0x00,0x40,0xf0,0x00,0x80,0x00,0x00};

unsigned char i=0x0;

WC_ADD = 0x40;

for(i = 0 ;i < 8; i++)

{

WD_ADD = SYSTAB;

}

WC_ADD = 0x44;

for(i = 0;i < 10;i++)

{

WD_ADD = SCRTAB;

}

WC_ADD = 0x5a;

WD_ADD = 0x0;

WC_ADD = 0x5b;

WD_ADD = 0x0;

WC_ADD = 0x59;

WD_ADD = 0x54;

}

void CLEAR(void)

{

unsigned char i=0,j=0;

WC_ADD = 0x4c;

WC_ADD = 0x46;

WD_ADD = 0x0;

WD_ADD = 0x0;

WC_ADD = 0x42;

for(i = 0;i < 255;i++)

{

for(j = 0;j < 255;j++)

{ WD_ADD = 0x0;

}

}

}

void CCTW(unsigned int x,unsigned char y,unsigned char m,unsigned char n,unsigned char *p)

{

unsigned char ap=0x28,i,j,k,tt=0,uu=0,rr=0,ee=0,ff=0,gg=0; /*ap 修改 P7, 行字符个数 */

unsigned int l;

tt = x%8;

x=x/8;

l = y*ap + x+0x4000;

x = (unsigned char)(l&0x00ff);

y = (unsigned char)((l&0xff00)>>8);

WC_ADD=0x4c; /*设置光标“右”移动方式 */

for(i=0;i< n;i++)

{

WC_ADD = 0x46; /* 光标指针设置 */

WD_ADD = x; /* 光标地址16位 */

WD_ADD = y;

if(tt==0)

{

WC_ADD = 0x42; /* 连续写入数据*/

for (j=0;j<m/8;j++)

{

WD_ADD = *p;

p++ ;

}

} /* 0 1 2 3 */

else { /* 0---7 8---16 17---24 25---32*/

for(j=0;j<m/8;j++)

{

RD_ADD=0x43; /* 读数据 */

uu=RD_ADD;

rr=RD_ADD;

/*-----------------------------------------------------*/

gg=*p; /* 处理数据*/

p++;

k=uu>>(8-tt);

k=k<<(8-tt); // 高位

ee=k;

k=gg>>tt; // 移高位作为低位

ee=ee|k;

/*-----------*/

k=rr<<tt;

k=k>>tt; // 低位

ff=k;

k=gg<<(8-tt);

ff=ff|k;

/*--------------------------------------------------------------*/

WC_ADD=0x4d; /*改变光标“左”移动方式 */

RD_ADD=0x43;

k=RD_ADD;

k=RD_ADD;

WC_ADD=0x4c; /*非复光标“右”移动方式 */

WC_ADD = 0x42; /* 送数据两个 */

WD_ADD =ee;

WD_ADD =ff;

/*本送一个数据,前面送了两个,需要返回一个*/

WC_ADD=0x4d; /*改变光标“左”移动方式 */

RD_ADD=0x43;

k=RD_ADD;

k=RD_ADD;

WC_ADD=0x4c; /*非复光标“右”移动方式 */

RD_ADD=0x43;

k=RD_ADD;

}

}

l=(ap+x+(y<<8));

x=(unsigned char)(l&0x00ff);

y=(unsigned char)((l&0xff00)>>8);

}

}

void dot (unsigned int x,unsigned char y,bit c)

{

unsigned char ap=0x28,tt=0,uu=0,gg=0,k=0; /*ap 修改 P7, 行字符个数 */

unsigned int l=0;

tt = x%8;

x = x/8;

l = y*ap + x+0x4000;

x = (unsigned char)(l&0x00ff);

y = (unsigned char)((l&0xff00)>>8);

WC_ADD = 0x4c;

WC_ADD = 0x46; /* 光标指针设置 */

WD_ADD = x; /* 光标地址16位 */

WD_ADD = y;

RD_ADD=0x43; /* 读数据 */

uu=RD_ADD;

if(c)

{

gg = 1;

gg =gg<<(7-tt);

uu=uu|gg;

}

else {

gg = 1;

gg =gg<<(7-tt);

gg = ~gg;

uu=uu&gg;

}

WC_ADD=0x4d;

RD_ADD=0x43;

k=RD_ADD;

WC_ADD = 0x4c; /*非复光标“右”移动方式 */

WC_ADD = 0x42; /* 送数据两个 */

WD_ADD = uu;

}

提醒:《MSP430控制SED1335液晶显示源程序例程》最后刷新时间 2024-03-14 01:13:48,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《MSP430控制SED1335液晶显示源程序例程》该内容的真实性请自行鉴别。