台湾矽创微电子LCD驱动IC ST7528 用于128128LCD点阵 参考程序.docx

上传人:b****4 文档编号:11974818 上传时间:2023-04-16 格式:DOCX 页数:33 大小:17.51KB
下载 相关 举报
台湾矽创微电子LCD驱动IC ST7528 用于128128LCD点阵 参考程序.docx_第1页
第1页 / 共33页
台湾矽创微电子LCD驱动IC ST7528 用于128128LCD点阵 参考程序.docx_第2页
第2页 / 共33页
台湾矽创微电子LCD驱动IC ST7528 用于128128LCD点阵 参考程序.docx_第3页
第3页 / 共33页
台湾矽创微电子LCD驱动IC ST7528 用于128128LCD点阵 参考程序.docx_第4页
第4页 / 共33页
台湾矽创微电子LCD驱动IC ST7528 用于128128LCD点阵 参考程序.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

台湾矽创微电子LCD驱动IC ST7528 用于128128LCD点阵 参考程序.docx

《台湾矽创微电子LCD驱动IC ST7528 用于128128LCD点阵 参考程序.docx》由会员分享,可在线阅读,更多相关《台湾矽创微电子LCD驱动IC ST7528 用于128128LCD点阵 参考程序.docx(33页珍藏版)》请在冰豆网上搜索。

台湾矽创微电子LCD驱动IC ST7528 用于128128LCD点阵 参考程序.docx

台湾矽创微电子LCD驱动ICST7528用于128128LCD点阵参考程序

台湾矽创微电子LCD驱动ICST7528用于128*128点阵参考程序主程序

//CONTROLICST7528

//DESIGNEDLIUKING

#include

#include

#include"test.h"

#include"logo.txt"

#include"logo_pic.txt"

#definenop_nop_()

#defineucharunsignedchar

#defineuintunsignedint

#definecom128

#defineseg128

#defineADDMAP0x08//P2^3

#defineSUBMAP0x04//P2^2

#defineADDVOP0x02//P2^1

#defineSUBVOP0x01//P2^0

#definemapmax9

#defineKEY_INP2

sbita0=P3^3;

sbitrw=P3^2;

sbite=P3^1;

sbitreset=P3^4;

sbitcs1=P3^5;

voiddelay_10us(void);

voiddelay_n_ms(uintn);

voidwrcmd(ucharcmd);

voidwrdata(ucharData);

voidinit(void);

voidgray(void);

voiddisplay_all(void);

voiddisplay_off(void);

voiddisplay_fl1(void);

voiddisplay_fl2(void);

ucharVOP=0x1a;

ucharMAP_ID=0;

voidinit(void)

{

cs1=0;

nop;

reset=0;

delay_n_ms(200);

reset=1;

delay_n_ms(200);

/////////////////////EXT=0/////////////////////////

wrcmd(0x38);

wrcmd(0xf4);//2byteinstructionsetmode:

123HZandEXT=0

delay_n_ms(10);

delay_n_ms(10);

wrcmd(0x40);

wrcmd(0x00);//setinitialdisplaylineregister

delay_n_ms(10);

wrcmd(0x44);

wrcmd(0x00);//setinitialdisplaycom0register

delay_n_ms(10);

wrcmd(0xab);//oscillatoron

wrcmd(0x27);//setRb,Ra

wrcmd(0x81);

wrcmd(0x3f);//setreference

wrcmd(0x54);//set1/11bias

delay_n_ms(10);

wrcmd(0xc8);//comreverse

wrcmd(0xa0);//normalseg

//wrcmd(0x64);//set3timesbooster

delay_n_ms(200);

//wrcmd(0x2c);//setpowercontrol;allon

wrcmd(0x67);//set6timesbooster

delay_n_ms(200);

//wrcmd(0x2e);

delay_n_ms(10);

wrcmd(0x2f);

delay_n_ms(200);

wrcmd(0xbf);//set4FRCand60PWM

}

voiddisplay_all()

{

uchari,j,page=0;

//wrcmd(0x40);

//wrcmd(0x00);//setinitialdisplaylineregister

for(i=16;i>0;i--)

{

wrcmd(0xb0+page);//setpageaddress

wrcmd(0x10);

wrcmd(0x00);//setcolumeaddress

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

{

wrdata(0xff);

wrdata(0xff);

wrdata(0xff);

wrdata(0xff);

}

page++;

}

wrcmd(0xaf);

}

ucharcodegraycode[]={

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x00,

0xff,0x00,0xff,0xff,0xff,0x00,0xff,0x00,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0x00,

0x00,0xff,0xff,0xff,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0x00,

0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00

};

voidgraytest2(void)

{

uchari,j,m,column,page=0;

//wrcmd(0x40);

//wrcmd(0x00);//setinitialdisplaylineregister

for(i=17;i>0;i--)

{

wrcmd(0xb0+page);//setpageaddress

column=0;

for(m=0;m<16;m++)

{

wrcmd(0x10+column/16);//setcolumnhighaddress

wrcmd(0x00+column%16);//setcolumnlowaddress

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

{

wrdata(graycode[4*m+0]);

wrdata(graycode[4*m+1]);

wrdata(graycode[4*m+2]);

wrdata(graycode[4*m+3]);

}

column=column+10;

}

page++;

}

wrcmd(0xaf);

}

voiddisplay_off()

{

uchari,j,page=0;

//wrcmd(0x40);

//wrcmd(0x00);//setinitialdisplaylineregister

for(i=com/8+1;i>0;i--)

{

wrcmd(0xb0+page);//setpageaddress

wrcmd(0x10);

wrcmd(0x00);//setcolumeaddress

for(j=0;j

{

wrdata(0x00);

wrdata(0x00);

wrdata(0x00);

wrdata(0x00);

}

page++;

}

wrcmd(0xaf);

}

voiddisplay_fl1(void)

{

uchari,j,page=0;

//wrcmd(0x40);

//wrcmd(0x00);//setinitialdisplaylineregister

for(i=com/8+1;i>0;i--)

{

wrcmd(0xb0+page);//setpageaddress

wrcmd(0x10);

wrcmd(0x00);//setcolumeaddress

for(j=0;j

{

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

}

page++;

}

wrcmd(0xaf);

}

voiddisplay_fl2(void)

{

uchari,j,page=0;

//wrcmd(0x40);

//wrcmd(0x00);//setinitialdisplaylineregister

for(i=com/8+1;i>0;i--)

{

wrcmd(0xb0+page);//setpageaddress

wrcmd(0x10);

wrcmd(0x00);//setcolumeaddress

for(j=0;j

{

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

wrdata(0x33);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

wrdata(0xcc);

}

page++;

}

wrcmd(0xaf);

}

ucharcodea[]={0x03,0x0F,0x1F,0x1E,0x3C,0x38,0x38,0x38,0x38,0x38,0x3D,0x1F,0x1F,0x3F,0x7B,0x30,

0xF0,0xFC,0xFE,0x1E,0x0F,0x07,0x07,0x07,0x07,0x87,0xCF,0x9E,0xFE,0xFC,0xF0,0x00};

voidgray_setmode(void)

{

delay_n_ms(30);

graywhite();

gray1();

gray2();

gray3();

gray4();

gray5();

gray6();

gray7();

gray8();

gray9();

gray10();

gray11();

gray12();

gray13();

gray14();

grayblack();

delay_n_ms(30);

}

voidwhrite_data(ucharpage,ucharcode_com)

{

uchart,y;

wrcmd(0xb0+page);//setpageaddress

wrcmd(0x10);

wrcmd(0x00);//setcolumeaddress

for(t=0;t<128;t++)

{

for(y=0;y<4;y++)

{

wrdata(code_com);

}

}

}

voidcom_scan(uintspeed)

{

uchars,x,page=0,code_com=0x01,mark;

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

{

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

{

whrite_data(page,code_com);

whrite_data(page+8,code_com);

if(mark==1)

{

whrite_data(page-1,0x00);

whrite_data(page+8-1,0x00);

mark=0;

}

code_com*=2;

if(s==7)

{

whrite_data(page-1,0x00);

whrite_data(page,0x80);

whrite_data(page+8-1,0x00);

whrite_data(page+8,0x80);

mark=1;

}

delay_n_ms(speed);

}

code_com=0x01;

page++;

}

wrcmd(0xaf);

}

voidwhrite_data_seg(ucharNO,ucharcode_com,ucharpage)

{

uchart,y;

wrcmd(0xb0+page);//setpageaddress

wrcmd(0x10);

wrcmd(0x00);//setcolumeaddress

for(t=0;t<64+NO;t++)

{

if((t==NO-1)||(t>=(NO-1+64)))

{

for(y=0;y<4;y++)

{

wrdata(code_com);

}

}

elseif((t

{

for(y=0;y<4;y++)

{

wrdata(0x00);

}

}

}

}

voidseg_scan(uintspeed)

{

uchari,j;

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

{

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

{

whrite_data_seg(i,0xff,j);

}

delay_n_ms(speed);

}

}

voidgraphic_change(uchar*p)

{

uchari,j,y,code_logo;

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

{

wrcmd(0xb0+i);//setpageaddress

wrcmd(0x10);

wrcmd(0x00);//setcolumeaddress

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

{

code_logo=p[(j*16)+15-i];

for(y=0;y<4;y++)

{

wrdata(code_logo);

}

}

}

wrcmd(0xaf);

}

main()

{

delay_10us();

init();

gray_setmode();//灰度程式设置

while

(1)

{

display_off();

display_all();

delay_n_ms(2000);

display_off();

delay_n_ms(1000);

display_fl1();

delay_n_ms(2000);//黑白方格测试部分

display_fl2();//黑白方格测试部分

delay_n_ms(2000);

display_off();

seg_scan

(1);

display_off();

com_scan(200);

graphic_change(logo_pic);

delay_n_ms(2000);

}

}

以下是库程序:

#include

#include

#definenop_nop_()

#defineucharunsignedchar

#defineuintunsignedint

#definecom128

#defineseg128

#defineADDMAP0x08//P2^3

#defineSUBMAP0x04//P2^2

#defineADDVOP0x02//P2^1

#defineSUBVOP0x01//P2^0

#definemapmax9

#defineKEY_INP2

sbita0=P3^3;

sbitrw=P3^2;

sbite=P3^1;

sbitreset=P3^4;

sbitcs1=P3^5;

voiddelay_10us()

{

uchari;

for(i=1;i>0;i--)

{

}

}

voiddelay_n_ms(uintn)

{

uinti,j;

for(j=n;j>0;j--)

{for(i=86;i>0;i--)

{

}

}

}

voidwrcmd(ucharcmd)

{

a0=0;

rw=0;

cs1=0;

nop;

e=1;

nop;

nop;

P1=cmd;

nop;

nop;

e=0;

//cs1=1;

//rw=1;

}

voidwrdata(ucharData)

{

a0=1;

rw=0;

cs1=0;

nop;

e=1;

nop;

nop;

P1=Data;

nop;

nop;

e=0;

//cs1=1;

//rw=1;

}

voidgray1(void)

{

wrcmd(0x38);

wrcmd(0xf5);//2byteinstructionsetmode:

64HZandEXT=1

delay_n_ms(200);

wrcmd(0x84);

wrcmd(3);

wrcmd(0x85);

wrcmd(3);

wrcmd(0x86);

wrcmd(3);

wrcmd(0x87);

wrcmd(3);

wrcmd(0x38);

wrcmd(0xf4);//2byteinstructionsetmode:

64HZandEXT=0;

}

voidgray2(void)

{

wrcmd(0x38);

wrcmd(0xf5);//2byteinstructionsetmode:

64HZandEXT=1

delay_n_ms(200);

wrcmd(0x88);

wrcmd(6);

wrcmd(0x89);

wrcmd(6);

wrcmd(0x8a);

wrcmd(6);

wrcmd(0x8b);

wrcmd(6);

wrcmd(0x38);

wrcmd(0xf4);//2byteinstructionsetmode:

64HZandEXT=0;

}

voidgray3(void)

{

wrcmd(0x38);

wrcmd(0xf5);//2byteinstructionsetmode:

64HZandEXT=1

delay_n_ms(200);

wrcmd(0x8c);

wrcmd(9);

wrcmd(0x8d);

wrcmd(9);

wrcmd(0x8e);

wrcmd(9);

wrcmd(0x8f);

wrcmd(9);

wrcmd(0x38);

wrcmd(0xf4);//2byteinstructionsetmode:

64HZandEXT=0;

}

voidgray4(void)

{

wrcmd(0x38);

wrcmd(0xf5);//2byteinstructionsetmode:

64HZandEXT=1

delay_n_ms(200);

wrcmd(0x90);

wrcmd(12);

wrcmd(0x91);

wrcmd(12);

wrcmd(0x92);

wrcmd(12);

wrcmd(0x93);

wrcmd(12);

wrcmd(0x38);

wrcmd(0xf4);//2byteinstructionsetmode:

64HZandEXT=0;

}

voidgray5(void)

{

wrcmd(0x38);

wrcmd(0xf5);//2byteinstructionsetmode:

64HZandEXT=1

delay_n_ms(200);

wrcmd(0x94);

wrcmd(15);

wrcmd(0x95);

wrcmd(15);

wrcmd(0x96);

wrcmd(15);

wrcmd(0x97);

wrcmd(15);

wrcmd(0x38);

wrcmd(0xf4);//2byteinstructionsetmode:

64HZandEXT=0;

}

voidgray6(void)

{

wrcmd(0x38);

wrcmd(0xf5);//2byteinstructionsetmode:

64HZandEXT=1

delay_n_ms(200);

wrcmd(0x98);

wrcmd(18);

wrcmd(0x99);

wrcmd(18);

wrcmd(0x9a);

wrcmd(18);

wrcmd(0x9b);

wrcmd(18);

wrcmd(0x38);

wrcmd(0xf4);//2byteinstructionsetmode:

64HZandEXT=0;

}

voidgray7(void)

{

wrcmd(0x38);

wrcmd(0xf5);//2byteinstructionsetmode:

64HZandEXT=1

delay_n_ms(200);

wrcmd(0x9c);

wrcmd(21);

wrcmd(0x9d);

wrcmd(21);

wrcmd(0x9e);

wrcmd(21);

wrcmd(0x9f);

wrcmd(21);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1