1、语言二、设计目的加深对DP技术的理解,掌握液晶显示的工作原理;2了解如何驱动液晶模块,从而实现字符、图片的显示;3.培养自主学习、正确分析和解决问题的能力。三、设计内容 1.简单设计一个驱动程序,使得LCD1864模块在SP芯片的驱动下,可以任意显示一张128*64的图片。2.利用C编程语言编写合适的能实现中要求的基本具体功能的语言程序。四、功能介绍静态显示一张*64的图片。五、基本原理 1.液晶控制引脚 命令控制接口的地址为0101,数据控制接口的地址为008003和0x10804,辅助控制接口的地址为0x002。.液晶控制命令开显示:03f 设置显示起始行:xc0+行号设置操作页:08+页
2、号 设置操作列:0x0+列号3液晶显示原理液晶显示模块中有两片显示缓冲存储器,分别对应屏幕显示的像素,向其中写入数值将改变显示,写入“1”则显示一点,写入“0”则不显示。其地址与像素的对应方式如下:4.数据传送由于液晶显示模块相对运行在高主频下的DP属于较为慢速设备,连接时需要考虑数据线上信号的等待问题;电平转换:由于S为3.3设备,而液晶显示模块属于5设备,所以在连接控制线、数据线时需要加电平隔离和转换设备,如:IETEK-CTR板上使用了7LS25。5.程序流程图 六、设计实现.查阅资料熟悉C语言并了解实验目的编写如下程序:#cde SP81x_Dvice.h / S281x Heaer
3、ie#inclueDSP28x_xamples.h / DP8xExamls Incude ie#ncd f2812a.h#deine it unsignd in#dfine cr usigned car#defin CR *(int*)0x1800 /全局控制寄存器#efine CTRLCCD*(int )x108001液晶命令控制寄存器dfie CTLCCR *(t *)0x02/液晶控制寄存器#deie TLCDLC *(it)0x100 /液晶左半屏控制寄存器#fie TRCDRCR *(int )0x10804 /液晶右半屏控制寄存器#dn CTRL *(int *)00800 /发
4、光二极管控制寄存器#deine CTRLR *(int *)x1807 /辅助控制寄存器uhar m0xFF,0x,000,0xF8,0xF,0xFF,0xFF,0xFF,xF,0x1,x,0x0,0xF,0FF,0xF,xFF,0xF,x8,x,07,xF,xFF,0xFF,0xFF,0xFF,0xE3,0x01,xC,0FF,0xFF,0xFF,0xFF,xF,71,x0,x3,0F,0xFF,0xFF,0EF,0xFF,38,0x00,0x20,F,xFF,0F,xCF,0x7F,3E,000,04,0xFE,xFF,0F,0,0x3F,0x1F,00,0x40,0xFE,0xF,0F,
5、0x8,x9F,0x1F,0x,00,xFE,0F,0xFF,0F,0xF,0x1F,0x,0x80,0FC,0xF,0xFF,0xE7,01F,0x00,8,0xC,0xF,0xFF,0x2,xE7,0x1F,000,0,0xF,0xFF,0xFF,0x27,0xF,07F,x00,0x,0xFE,xFF,xFF,0x3,0F,xFF,0x,0xC0,0FE,0xFF,xFF,0x3,0xF9,0F,003,0x60,0xFE,0xFF,0xF,033,0x9,0xF,F,0x0,0xFF,0xFF,xFF,0x33,xFC,0xF,0x79,018,0x,0xFF,xFF,033,xC,0
6、F,081,0x3,0FF,0xFF,0xFF,0x0,0xFC,0FF,0x07,0x80,0xFF,FF,0x7,0x03,xFC,0F,0xF,0x9E,0xF,xFF,0x0,0x00,0xFC,0FF,0xF,0x3F,0x,x3,010,0x0,FC,0xFF,0xF,0xF,0x,0F,0x3,007,0xFC,0F,0xFF,0x,0FE,0xC1,0x3,00E,0xFC,0F,0FF,xF,004,0xF,0x3,0x3C,xFC,x,FF,0xF,0x00,xE,xFF,xC,xF9,0FF,0F,0xFF,0x3,0F,3F,0xE,0x9,x,xFF,0xFC,0xE
7、3,0xFF,0F,07,0x9,0xFF,x7F,0F,0E3,0FF,07,0xE,0xFB,0xF,0x,0F3,xE3,0xF,07,x,0xF3,0xF,xF,0xE7,0x3,0F,0x,x7E,0F,0xF,0xF,0xC,0xE3,xF,0x00,x7E,E7,xF,xFF,0xCF,0x3,0xF,07F,0x7,0xCF,xF,0FF,0x,0xE1,F,x7F,,08F,0x1F,0x,0x9F,0xC0,1F,x00,x7E,0x0F,0x1F,0xF,0x9,0x84,x7,0x,0x7E,0xF,x1F,0xF,0F,0x1E,0xE,x7F,0x7,06F,0xF
8、E,0xFF,x1F,0x,0xF,0xF,0x7F,07F,0xFE,0xFF,0x3F,0FE,0x,xF,x7F,0xFF,0xFE,0F,0x3F,0xF,xFB,0FF,0F,0FF,0xF,0xFF,0xF,0F,B3,0xFF,0x7F,0F,xF,0xF,0x3,0xF,0x3,xF,0x,0xFF,0xFC,0xFF,0xF,0xF,0x87,0xF,0x7,0FF,0xF,0xF,0x9F,0xF,0x8,xFD,07F,F,0xC,0xFF,0x9F,0xF,0x7,0D,0xF,0FF,0xFC,0xFF,09F,0xF,0x23,xFC,0x7F,0F,0F,xF,x
9、F,0xFF,03,0xF0,07F,0xFF,0xFD,0xF,0xDF,0xF,09,00,0x3F,F,F9,xF,0xCF,0xFF,0xF,0x0F,0x00,0xF,0xFF,0CF,xFF,0xB9,0xFF,0x1,F,0xF,0xFF,0xC,0xFF,0xB,F,xB,0xFF,xF3,xF,C,0xFF,0x7,0xFD,0x3,0F,0F3,F,0xE,xFF,0x8F,0xFD,0x,F,0xE7,0xFF,0xE7,0F,x3F,xC,09F,0xFF,xCF,0xF,0F3,0FF,0xF,00,080,xF,x8F,0xFF,0xF,0xF,xF,0x1,0E,
10、xFF,0xF,0xFF,0xF9,0xFF,0FF,0F,xFF,xF,0x3F,78,0xF0,xFF,0FF,0xFF,0xF,0xFF,0xFF,x0,0xF0,FF,xFF,0xF,0xFF,0xF,0xF,0x07,0F0,0xFF,xFF,0xF,xFF,0xFF,0xF,0xF,x0,0xFF,xFF,xFF,0xF,0xF,xF,0x4F,0xF2,0F,0xFF,0xFF,0xFF,FF,0F,09F,0xF9,0xFF,0xF,xFF,0xF,0xFF,0F,0x1F,xF8,0xFF,FF,0xF,0xF,0F,0xF,0x3F,0xFC,0xFF,0xF,0xF,0x
11、FF,xFF,0xFF,0xFF,x,xF,0x,0xFF,0xFF,0xFF,0xFF,xF,FF,0xFF,0F,xFF,0xFF,0xFF,xF,0xFF,0x,FF,0xFF,0x1F,FC,0xFF,0xF,0xF,0FF,xF,0F,xCF,08,0xF,xF,xF,0xFF,0xF,0xF,0x7,0xF,0xF,0F,0xF,0xFF,0xF,FF,0xE,0xF3,xFF,0xFF,0xFF,0FF,0x,xF,0E1,3,0xFF,0xF,0xFF,xF,0FF,0xFF,0xE9,xF3,0xFF,0xF,0FF,0xF,0xF,0xFF,xCD,0F7,0xF,0xF,
12、0xF,0xF,0xF,0x07,38,0xF0,0xFF,0FF,0xF,0xF,0xF,xF,xB,0xF1,0F,xFF,xFF,0xFF,xFF,0x,x,0x3,0F,0FF,0C,xFF,0xF,0xE,0xCF,xF7,xFF,0xF,x00,0xF,0xF,FF,xC1,0xE7,0xF,0x7,0xFE,xFC,0x7F,0FF,0CC,0xE,xF,x3F,0,F9,x7F,,0D,07,xFF,03,x7,0xF3,x1F,xFE,0F9,x7,xFF,0x,0F7,0xF,0x8,xF,0xF9,0x7,0xFF,0x1F,0F,0E,0xE1,0xF9,xF3,0E7
13、,0F,0x,0x3,0x67,0x,0x,xF0,xE7,0xF,0xF3,0x,0x2,0x,0x07,0xFF,xE,FF,0xC,0x7F,x8,x7,0x0,0FF,0E,0x7F,0xE,0xF,0x1,00,0xF,0FF,0xE7,x3F,0xF,0x8,0xC1,0xF8,0xF9,FF,0xE,0x9F,0x3F,x1E,0xB8,3,0xFD,0xFF,0xE7,DF,0xF,0,0x3E,0xE7,0xFC,0xFF,xE7,0CF,0x9,0x03,0xE,EF,0xFC,00F,xF0,0xCF,9,0x03,0xF,0,0F,x1,2,xF,0x,0x07,0x7
14、8,xCE,0xF9,F9,0x7,0xEF,0x7F,0x9E,0x7,xDE,0xF9,0,0xE,0xEF,x7F,0,0x7F,0xE,xF3,xFF,0x7,xEF,0x,0F,0C,0xD,0x,xFF,0x,0xEF,0xF,0x83,0x78,0F,0x8F,0FF,0E7,0xF,0x,0x83,0x3F,0xCF,0x1F,0xFE,0x7,0xC,0xF,0x03,03F,xC,0x7,0xF0,0xE,0x9F,0x1,0x3,0F,0E,0xFF,07,0xF7,09,0x3F,0x0,xC,x,0xFF,0xFF,0x,0x3,0F,0x00,0xEE,F3,xFF
15、,0xFF,xF,x7F,0FC,0x7F,x78,0xF8,0xFF,0x0,0x,0F,0F8,0x1F,x00,0x7E,0x00,0x80,0F0,0xF,0xC3,0x1,x1,0xF,0xE0,67,xF2,0xFF,0xF,0xF0,E,0xFF,08F,67,0F7,F,0xEF,xFE,89,0xFF,03,0x2,0F7,0xFF,0xE,0F8,009,0xF,xFF,09,0xF7,0F,0xC,0xF9,0x4,xE0,0xFF,0C,0x7,0xF,0x8F,07F,0x36,007,0xF,0FF,0xF3,0xFF,0x1F,00C,077,x7F,0F8,0x
16、FF,0xF9,0,x7F,0xE0,x67,0xF,0xC3,xF,0x3,0xF,0xFF,xFF,7,F,0x0F,0xFE,0xE7,xFF,0xF,0xF,0x,E3,06,00,0xE,0xFF,0FF,0xFF,0xF,0x07,0xF8,0xC1,0x7,0FF,0F,0xFF,0xF,0FF,xFF,xC8,0E7,0xF,xFF,0xF,0x7F,0FE,0x3F,0E,0xE7,0FF,0xFF,0xFF,0xF,0xF0,0x87,0xD,0xE,FF,xFF,0xFF,FF,003,0x,xDF,0xE7,0xFF,0xFF,0FF,x,0xFF,0xFF,0xDF,
17、xEF,0xF,0xF,0xFF,xFF,0FF,0xF,0F,0F,0xF,0xFF,0xFF,xFF,xF,0FF,09,0EF,0xF,0xFF,0xF,0xF,0xF,0xF,3F,xEF,0xF,0F,0xF,0FF,xF,0xFF,03,0xE6,xF,xF,xFF,0xFF,0xFF,0FF,xF,00,0xF,0xF,0F,0xF,0xFF,xFF,0xFF,0xFF,0xFF,0xF,0xFF,0xF,0xFF,0xFF,0xF,0F,0xF,xFF,0F,0xFF,0xF,0xF,0xFF,0xFF,;oi Deay(it xx) /延时子程序while(x-);voidr
18、nLCD() / 打开显示 CTRCDMDR0x3f; /打开显示Deay(10); CTRCC0;Dea(2048); void LCCL() / 清除屏幕显示内容 in i,j; CTCCDR=0xc; 设置显示起始行 Dea(1); CTRLCDCR0;Delay(10); for(=0;i8;+ ) CTLDMD=0b+i;/设置操作页 Delay(10); CTRLC0;Dy(10); RCDCMRx40; /设置操作列 Day(10); CTLCDC; Dlay(10); for(j=;j64;j+) CTRLCDL=; Delay(1); CTRCR=0; Delay(1); C
19、TRLCDCMD=0xb8+i; Delay(0); CTRLCD=0; De(10);TLCDCMDR=0x40; /设置操作列 De(0); CTRLCR=0; elay(1);fo ( j=0;j+ ) CTRLCCR=; elay(0); CTLCCR0; lay(10); void ldinit() TR0x8; / 初始化CEEKDelay(1);CTRGR=0x0; Deay(10); CTRGR=x8; Dey(10);RLA=; / 关闭东西方向的交通灯Dela(1); CTR=0x4; / 关闭南北方向的交通灯TuLCD(); 打开显示 LDLS(); /清除显示内存vid
20、 dip_icture(uchar*g)int j,k,n; CTRLCDCMDR0c0; /设置显示起始行 Delay(0); TLCDR=0;Dely(0);for(j=0;;j+)o (=;k+) CRLCCMD=0xb8+k;/设置操作页 eay(1); CRLCDCR0; Dela(1); CTRLCMDR=0x40+j; / 设置显示起始列ay(1); CTRLCDR=0; Day(10); TLCDLCR=imgn; n+; Delay(10); TRLCDCR=; Deay(10); fo(j=0;64; for(k=0;k+) CTLCDCMR=xb+k; / 设置操作页 D
21、eay(0); CRLCDR0; Da(); CRLCDCMD0x40+j;/ 设置显示起始列Dely(10); CTRLCDR=; eay(10); CTLCDCR=img; n+; Del(1); CTRLDC=0; ely(1); oid main(vod)Initystrl(); lcdinit(); disicure(ap); 2将程序下载到既定的实验板上运行;3进行实验的调试让实验板上的液晶模块与所要实现的功能匹配;4撰写设计报告。七、心得体会本次设计总共经历了一个星期,时间不长,但对我而言收获颇多。每天都在自己的设计进度上向前思考,思考下一步该怎么实现,遇到的问题该怎么解决,感觉
22、这一周很压抑却也很充实。回想现在,每次自己克服一个技术性难关时,是多么的开心,尤其第一次看到实验板上的液晶模块显示字符时的感受,现在仍然记忆犹新。虽然最后设计只完成了最最基本的绘图功能,还有其他的一些功能未能来得及实现,但心里依旧充满了成就感。通过这次设计,一方面让我更进一步认识了DSP特点,另一方面也巩固了我的编程方面的能力,同时大大增强了我的自信心。我也总结了许多我还应该改进的地方,多查资料,多思考,对解决问题起到帮助性作用。面对困难,要知难而进;另外要学会淡定从容面对挑战,在动手实践的过程中一定要专心致志心无旁骛,这样才会有所收获。这次设计让我学到了了许多书本上学不到的知识,使我受益匪浅。八、参考文献手把手教你学DSP 北京航空航天大学出版社C程序设计 清华大学出版社ICTKF281-A-S0-2.2T284系列点阵型LCM使用说明书九、附录硬件原理图 硬件仿真截图:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1