单片机
返回首页

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

2021-04-23 来源:eefocus

简介: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{

WD_ADD = *p;

p++ ;

}

} /* 0 1 2 3 */

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


for(j=0;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<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≫

}


WC_ADD=0x4d;

RD_ADD=0x43;

k=RD_ADD;


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

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

WD_ADD = uu;


}


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章