7,下面的代码是操控液晶全屏显现图片,代码如下:
//程序功用:在12864液晶上显现两幅图片,一个为阴码图片,一个为阳码图片
//*本程序我现已试过,调通,能够运用液晶是有两根线WREN串行操控的
//*这儿是液晶的串行衔接操控,能够大大节约单片机的IO口,可是数据处理起来要比并行衔接的要慢,所以假如要求显现内容数据较大,
//*对显现的实时性要求较高的话(比方接连显现多幅图画,演示动画等),应该考虑并行衔接。假如单片机的IO口不行,或对显现内容的容
//*量和实时性要求不高的话,能够考虑用串行衔接的办法
//有或许是由于msp430g2553的处理才能较强,我现在用串行衔接办法,显现下面的几幅图画,显现作用很好,看不出有什么数据传输速度慢的问题
//msp430g2553有16K的flash512B的RAM所以能够寄存的下几张图片的数据的
#include“msp430g2553.h”
#include“ser_12864.h”
#include“qq.h”//要显现图片的数据信息
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//关狗
BCSCTL1=CALBC1_12MHZ;//设定cpu时钟DCO频率为12MHz
DCOCTL=CALDCO_12MHZ;
P2DIR|=BIT5+BIT4;//液晶的两条线
init_lcd();//初始化液晶
Clear_GDRAM();//铲除GDRAM中的随机数据
//Draw_PM(qq1);
for(;;)
{
//wr_lcd(comm,0x34);//翻开扩展功用方式,绘图显现封闭
////反白指令
//wr_lcd(comm,0x04);//一起反白1、3行
//wr_lcd(comm,0x05);//一起反白2、4行
//wr_lcd(comm,0x36);
//
//delay_ms(1000);
//
//wr_lcd(comm,0x34);
//wr_lcd(comm,0x04);//再次反白1、3行,适当于封闭1、3行反白
//wr_lcd(comm,0x05);//再次反白2、4行,适当于封闭2、4行反白
//wr_lcd(comm,0x36);
//delay_ms(1000);
Draw_PM(qq1);//显现图画显现阴码格局的图形
delay_ms(1000);//推迟调查液晶屏幕显现
Draw_PM(qq2);//显现阳码格局的图形
delay_ms(1000);
Draw_PM(zhu);
delay_ms(1000);//显现心爱猪的图片
Draw_PM(zifu);//显现汉字的图片
delay_ms(1000);
Draw_PM(monkey1);//显现山公的阴码图片
delay_ms(1000);
Draw_PM(monkey2);//显现山公的阳码图片
delay_ms(1000);
Draw_PM(QQ);//显现Q哥Q妹形象
delay_ms(1000);
Draw_PM(zhangbin);//显现我自己制造的字符图片
delay_ms(1000);
Draw_PM(dianxin0903xiaolian1);//显现我自己制造的字符图片阴码图片
delay_ms(1000);
Draw_PM(dianxin0903xiaolian2);//显现我自己制造的字符图片阳码图片
delay_ms(1000);
}
}
//本程序的功用完成了,是阴码格局的图形和阳码格局的图形替换循环显现
//我本想是用反白的办法完成这种作用的,可是没有成功,估量是由于反白不能一起整屏反白的原因吧
8,好了,上面的代码是msp430g2553串行操控液晶的,是能够直接用的。把上面的代码看理解,液晶的基本功用应该就把握了,下面就在贴出一些常用的显现函数,这些函数都是我常常用的,很不错:
////
{
ucharpos=0;//初始化
ucharcnt=0;//传递过来的是指针,cnt为偏移量,然后一个字符一个字符的写入。
switch(y0)
{
case0:pos=0x80+x;break;
case1:pos=0x90+x;break;
case2:pos=0x88+x;break;
case3:pos=0x98+x;break;
default:break;
}
wr_lcd(comm,pos);//写地址
while(*(p+cnt)!=)
{
wr_lcd(dat,*(p+cnt));//写数据
cnt++;
};
}
//*******************************************************************************************
voidwr_int(ucharx,uchary0,uintNUM)//**********************************************整型数据显现
{
uchara_SHOW[5];
a_SHOW[0]=(NUM/1000)+0;//qian//只能显现数据的最终4位
a_SHOW[1]=(NUM/100)+0;//bai
a_SHOW[2]=(NUM/10)+0;//shi
a_SHOW[3]=NUM+0;//ge
a_SHOW[4]=;//加上字符串的计数标志
wr_string(x,y0,a_SHOW);
}
//*******************************************************************************************
voidwr_float(ucharx,uchary0,floatNUM)//********************************8浮点型数据显现
{
uchara_SHOW[7];
longintt;
t=NUM*1000;//先乘以1000,再按整数办法显现,方式只能为xx.xxx,所以精度只能到小数点后三位
a_SHOW[0]=(t/10000)+0;//shi
a_SHOW[1]=(t/1000)+0;//ge
a_SHOW[2]=.;//
a_SHOW[3]=(t/100)+0;//shifen
a_SHOW[4]=(t/10)+0;//baifen
a_SHOW[5]=t+0;//qianfen
a_SHOW[6]=;
wr_string(x,y0,a_SHOW);
}
好了关于液晶方面就介绍到这儿吧,介绍的比较粗糙。假如要更具体的介绍的话,能够参阅液晶的手册。不过假如把上面的程序都看懂,弄理解的话,对液晶的一般运用应该是没问题的。
下面就介绍一下液晶显现图片所用到的取模软件的运用。
二,液晶取模软件的运用
要运用液晶显现图片,或字符型的图片,那么这幅图片的数据信息肯定是要的,并且这些数据往往都很巨大。那么如何来发生这些巨大的数据,靠咱们手艺编写,那个太不实际了。着就需要取模软件的协助了。我用到的这款软件是PCtoLCD2002,作者是陈新汀,感谢作者供给了这么好用的一款软件。
这款软件功用强大,运用方便,下面我就我常常用到的一些功用介绍一下吧,更具体的介绍能够参阅其他的材料。
下面的设置对应的为12864液晶的ST7920操控器,
一),用PCtoLCD2002液晶取模软件对图片取模,注意事项及常用设置如下:
1,PCtoLCD2002取模只支撑.bmp格局的图画
2,用12864显现图片时,取模用的图片像素巨细不要超越128*64,假如超越会呈现一些问题。能够比它小
3,还能够调整像素方位,上下左右移动要显现图片的方位,也能够上下左右翻转,镜像等。
4,也能够针对每一个像素点进行修改操作,对某一个像素点单击左键,显现。单击右键,撤销显现,假如一向按住左键,就能够进行画图等操作了。
5,也能够只正对有像素点的图片规模进行取模,其他边上的空白不取模,这有能够削减数据量,节约存储容量。
6,也能够在PCtoLCD2002新建一个图片,然后设置像素的巨细,然后就能够直接在上面进行绘图了,相同也是点击左键显现,点击右键撤销显现。就好像是直接针对液晶屏进行绘图相同,然后能够保存。
7,假如在方式中挑选为字符方式,就能够直接在该软件中输入要显现的字符,直接制造成字符图片。还能够更改字体,巨细等字符特点。
8,12864液晶显现默许是逐行的,所以在取模时,一般挑选逐行取模
9,由于在单片机向液晶传输数据时是高位在前,所以在取模时设置为顺向(高位在前)
10,输出数制选为16进制数
11,自定义格局选为C51格局,由于咱们是用C言语进行编程的。假如是用汇编编程,挑选A51格局
12,由于生成的数据最终要放在一个数组中,所以要去掉行前缀大括号,行后缀仅保存一个逗号。不然的话生成的数据的每一行的前面和后边都会有一对大括号。
二),假如想自己制造文字的图片,然后取模让液晶显现,除了直接在PCtoLCD2002中的字符方式中进行制造外,还能够运用windows自带的画图附件,运用设置办法如下:
1,在图画的特点选项中设置图画的分辨率:宽度为128,高度为64,其他的为默许值即可。点击确认。
2,然后能够向设置好的图纸上增加字符(点击左面工具栏上的A,增加字符),写入汉字,能够调理字符的巨细字体等特点。好了之后,保存
3,由于PCtoLCD2002取模只支撑.bmp格局的图画,所以保存时要保存成.bmp格局。(一般保存成24位图.bmp格局)
4,然后就能够依照对图片取模的办法,对刚刚制造保存的字符图片进行取模了。
依照上面的办法,应该就能够自己制造图片和字符图片的数据了。
好了,上面,对12864进行了比较全面可是适当粗糙的介绍,更全面具体的用法请参阅数据手册。在运用液晶或许其他任何一款单片机或芯片时,最具体,最威望的材料永远都是它对应的数据手册。
全部其他的材料,不管多么的具体,丰厚都是以手册为根底的,所以我们在运用是必定不必依靠这种材料,只能作为一种参阅。遇到问题,自己多看手册,多考虑,才能把常识转化为自己的。
运用12864实时显现曲线图,演示动画我还没有做,做好了再补上来。其实把前面的把握了,应该不难的。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/256244.html