自DSPLCD设计报告Word格式.docx
《自DSPLCD设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《自DSPLCD设计报告Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
C语言
二、设计目的
1.加深对DSP技术的理解,掌握液晶显示的工作原理;
2.了解如何驱动液晶模块,从而实现字符、图片的显示;
3.培养自主学习、正确分析和解决问题的能力。
三、设计内容
1.简单设计一个驱动程序,使得LCD12864模块在DSP芯片的驱动下,可以任意显示一张128*64的图片。
2.利用C编程语言编写合适的能实现1中要求的基本具体功能的语言程序。
四、功能介绍
静态显示一张128*64的图片。
五、基本原理
1.液晶控制引脚
命令控制接口的地址为0x108001,数据控制接口的地址为0x108003和0x108004,辅助控制接口的地址为0x108002。
2.液晶控制命令
ﻩ开显示:
0x3fﻩﻩﻩ设置显示起始行:
0xc0+行号
设置操作页:
0xb8+页号 ﻩ设置操作列:
0x40+列号
3.液晶显示原理
液晶显示模块中有两片显示缓冲存储器,分别对应屏幕显示的像素,向其中写入数值将改变显示,写入“1”则显示一点,写入“0”则不显示。
其地址与像素的对应方式如下:
4.数据传送
由于液晶显示模块相对运行在高主频下的DSP属于较为慢速设备,连接时需要考虑数据线上信号的等待问题;
电平转换:
由于DSP为3.3V设备,而液晶显示模块属于5V设备,所以在连接控制线、数据线时需要加电平隔离和转换设备,如:
ICETEK-CTR板上使用了74LS245。
5.程序流程图
六、设计实现
1.查阅资料熟悉C语言并了解实验目的编写如下程序:
#include"
DSP281x_Device.h"//DSP281xHeaderFile
#include "
DSP281x_Examples.h"
//DSP281x ExamplesIncludeFile
#include"
f2812a.h"
#defineuintunsignedint
#defineucharunsignedchar
#defineCTRGR*(int *)0x108000ﻩ//全局控制寄存器
#defineCTRLCDCMDR *(int*)0x108001ﻩ//液晶命令控制寄存器
#defineCTRLCDCR*(int*)0x108002ﻩﻩ//液晶控制寄存器
#defineCTRLCDLCR*(int *)0x108003//液晶左半屏控制寄存器
#defineCTRLCDRCR*(int*)0x108004//液晶右半屏控制寄存器
#defineCTRLA*(int*)0x108005//发光二极管控制寄存器
#defineCTRLR*(int*)0x108007ﻩ//辅助控制寄存器
ucharmap[]={
0xFF,0x7F,0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xFC,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0x8F,0x8F,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xE3,0x01,0x9C,0xFF,0xFF,0xFF,0xFF,0xFF,0x71,0x00,0x30,0xFF,0xFF,0xFF,0xEF,0xFF,0x38,0x00,0x20,0xFF,0xFF,0xFF,0xCF,0x7F,0x3E,0x00,0x40,0xFE,0xFF,0xFF,0xCF,0x3F,0x1F,0x00,0x40,0xFE,0xFF,0xFF,0x8F,0x9F,0x1F,0x00,0x80,0xFE,0xFF,0xFF,0x8F,0xCF,0x1F,0x00,0x80,0xFC,0xFF,0xFF,0x8F,0xE7,0x1F,0x00,0x80,0xFC,0xFF,0xFF,0x27,0xE7,0x1F,0x00,0x80,0xFC,0xFF,0xFF,0x27,0xF3,0x7F,0x00,0xC0,0xFE,0xFF,0xFF,0x37,0xFB,0xFF,0x00,0xC0,0xFE,0xFF,0xFF,0x33,0xF9,0xFF,0x03,0x60,0xFE,0xFF,0xFF,0x33,0xF9,0xFF,0x0F,0x20,0xFF,0xFF,0xFF,0x33,0xFC,0xFF,0x79,0x18,0xFF,0xFF,0xFF,0x33,0xFC,0xFF,0x81,0x83,0xFF,0xFF,0xFF,0x03,0xFC,0xFF,0x07,0x80,0xFF,0xFF,0xE7,0x03,0xFC,0xFF,0xFF,0x9E,0xFF,0xFF,0x03,0x00,0xFC,0xFF,0xFF,0x3F,0xFF,0x3F,0x10,0x00,0xFC,0xFF,0xFF,0x3F,0xFF,0x0F,0x38,0x07,0xFC,0xFF,0xFF,0x7F,0xFE,0xC1,0x39,0x0E,0xFC,0xFF,0xFF,0x7F,0x04,0xF0,0x3F,0x3C,0xFC,0xFF,0xFF,0xFF,0x00,0xFE,0xFF,0x3C,0xF9,0xFF,0xFF,0xFF,0xE3,0xFF,0x3F,0x3E,0xF9,0xFF,0xFF,0xFC,0xE3,0xFF,0x3F,0x7E,0xF9,0xFF,0x7F,0xF8,0xE3,0xFF,0x7F,0x7E,0xFB,0xFF,0xFF,0xF3,0xE3,0x0F,0x7F,0x7E,0xF3,0xFF,0xFF,0xE7,0xE3,0x1F,0x00,0x7E,0xF3,0xFF,0xFF,0xCF,0xE3,0xFF,0x00,0x7E,0xE7,0xFF,0xFF,0xCF,0xE3,0xFF,0x7F,0x7E,0xCF,0xFF,0xFF,0xDF,0xE1,0xFF,0x7F,0x7E,0x8F,0x1F,0xFC,0x9F,0xC0,0x1F,0x00,0x7E,0x0F,0x1F,0xFC,0x9F,0x84,0x07,0x00,0x7E,0x2F,0x1F,0xFF,0x1F,0x1E,0xE3,0x7F,0x7E,0x6F,0xFE,0xFF,0x1F,0x7E,0xF0,0xFF,0x7F,0x7F,0xFE,0xFF,0x3F,0xFE,0xF8,0xFF,0x7F,0xFF,0xFE,0xFF,0x3F,0xFF,0xFB,0xFF,0x7F,0xFF,0xFC,0xFF,0x3F,0xFF,0xB3,0xFF,0x7F,0xFF,0xFC,0xFF,0x3F,0xFF,0x93,0xFF,0x7F,0xFF,0xFC,0xFF,0x1F,0xFF,0x87,0xFD,0x7F,0xFF,0xFC,0xFF,0x9F,0xFF,0x8F,0xFD,0x7F,0xFF,0xFC,0xFF,0x9F,0xFF,0x07,0xFD,0x7F,0xFF,0xFC,0xFF,0x9F,0xFF,0x23,0xFC,0x7F,0xFF,0xFC,0xFF,0x9F,0xFF,0x73,0xF0,0x7F,0xFF,0xFD,0xFF,0xDF,0xFF,0xF9,0x03,0x3F,0xFF,0xF9,0xFF,0xCF,0xFF,0xF9,0x0F,0x00,0xFF,0xF9,0xFF,0xCF,0xFF,0xB9,0xFF,0x81,0xFF,0xF9,0xFF,0xCF,0xFF,0xB3,0xFF,0xBF,0xFF,0xF3,0xFF,0xCF,0xFF,0x87,0xFD,0x3F,0xFF,0xF3,0xFF,0xE7,0xFF,0x8F,0xFD,0xBF,0xFF,0xE7,0xFF,0xE7,0xFF,0x3F,0xFC,0x9F,0xFF,0xCF,0xFF,0xF3,0xFF,0x7F,0x00,0x80,0xFF,0x8F,0xFF,0xF3,0xFF,0xFF,0x01,0xE0,0xFF,0x1F,0xFF,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x78,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x4F,0xF2,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9F,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFC,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE1,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE9,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCD,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x38,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xF1,0x9B,0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xDF,0xF3,0xFF,0xFF,0xC1,0xFF,0x7F,0xFE,0xCF,0xF7,0xFF,0xFF,0x00,0xFE,0x7F,0xFF,0xC1,0xE7,0xFF,0x7F,0xFE,0xFC,0x7F,0xFF,0xCC,0xE7,0xFF,0x3F,0xFF,0xF9,0x7F,0xFE,0xDD,0xE7,0xFF,0x3F,0xF7,0xF3,0x1F,0xFE,0xF9,0xE7,0xFF,0x3F,0xF7,0xF7,0x87,0xFC,0xF9,0xE7,0xFF,0x1F,0xF0,0xE7,0xE1,0xF9,0xF3,0xE7,0xFF,0xC7,0xC3,0x67,0xFC,0x73,0xF0,0xE7,0xFF,0xF3,0x1F,0x27,0xFF,0x07,0xFF,0xE7,0xFF,0xFC,0x7F,0x84,0x7F,0xC0,0xFF,0xE7,0x7F,0xFE,0xFF,0x01,0x00,0xF0,0xFF,0xE7,0x3F,0x7F,0x80,0xC1,0xF8,0xF9,0xFF,0xE7,0x9F,0x3F,0x1E,0xB8,0xF3,0xFD,0xFF,0xE7,0xDF,0x9F,0x07,0x3E,0xE7,0xFC,0xFF,0xE7,0xCF,0x9F,0x03,0x3E,0xEF,0xFC,0x0F,0xF0,0xCF,0x9F,0x03,0x7F,0xCE,0xFD,0x01,0xF2,0xEF,0x3F,0x07,0x78,0xCE,0xF9,0xF9,0xF7,0xEF,0x7F,0x9E,0x78,0xDE,0xF9,0xFF,0xE7,0xEF,0x7F,0xBC,0x7F,0xDE,0xF3,0xFF,0xE7,0xEF,0x3F,0x8F,0x7C,0xDE,0xE7,0xFF,0xE7,0xEF,0x9F,0x83,0x78,0xDF,0x8F,0xFF,0xE7,0xCF,0xDF,0x83,0x3F,0xCF,0x1F,0xFE,0xE7,0xCF,0x9F,0x03,0x3F,0xCF,0x7F,0xF0,0xE7,0x9F,0x1F,0x3F,0x9F,0xE7,0xFF,0xF7,0xF7,0x9F,0x3F,0x00,0xCE,0xE7,0xFF,0xFF,0xF3,0x3F,0xFF,0x00,0xEE,0xF3,0xFF,0xFF,0xF8,0x7F,0xFC,0x7F,0x78,0xF8,0xFF,0x03,0xFC,0xFF,0xF8,0x1F,0x00,0x7E,0x00,0x80,0xF0,0xFF,0xC3,0x81,0xF1,0x0F,0xE0,0x67,0xF2,0xFF,0x0F,0xF0,0xE1,0xFF,0x8F,0x67,0xF7,0xFF,0xEF,0xFE,0x89,0xFF,0x3F,0x32,0xF7,0xFF,0xEF,0xF8,0x09,0xFE,0xFF,0x90,0xF7,0xFF,0xCF,0xF9,0x84,0xE0,0xFF,0xC3,0xF7,0xFF,0x8F,0x7F,0x36,0x07,0xFF,0xFF,0xF3,0xFF,0x1F,0x0C,0x77,0x7F,0xF8,0xFF,0xF9,0xFF,0x7F,0xE0,0x67,0xFE,0xC3,0xFF,0xF3,0xFF,0xFF,0xFF,0xE7,0xF8,0x0F,0xFE,0xE7,0xFF,0xFF,0xFF,0xCF,0xE3,0x61,0xF0,0xE7,0xFF,0xFF,0xFF,0xDF,0x07,0xF8,0xC1,0xE7,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xC8,0xE7,0xFF,0xFF,0xFF,0x7F,0xFE,0x3F,0xDE,0xE7,0xFF,0xFF,0xFF,0xFF,0xF0,0x87,0xDF,0xE7,0xFF,0xFF,0xFF,0xFF,0x03,0xE0,0xDF,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9F,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xE6,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
voidDelay(uintxx)ﻩ // 延时子程序
{
ﻩwhile(xx--);
}
void TurnOnLCD()ﻩﻩ//打开显示
{
CTRLCDCMDR=0x3f;
ﻩﻩ//打开显示
ﻩDelay(10);
CTRLCDCR=0;
ﻩDelay(2048);
}
voidLCDCLS()ﻩﻩﻩﻩ//清除屏幕显示内容
inti,j;
CTRLCDCMDR=0xc0;
ﻩﻩ//设置显示起始行
Delay(10);
ﻩ
CTRLCDCR=0;
ﻩDelay(10);
for( i=0;
i<
8;
i++)
ﻩ{
CTRLCDCMDR=0xb8+i;
ﻩﻩ//设置操作页
ﻩDelay(10);
ﻩCTRLCDCR=0;
ﻩﻩDelay(10);
ﻩCTRLCDCMDR=0x40;
ﻩ//设置操作列
Delay(10);
ﻩCTRLCDCR=0;
Delay(10);
ﻩfor( j=0;
j<
64;
j++ )
ﻩﻩ{
ﻩCTRLCDLCR=0;
ﻩ
ﻩDelay(10);
ﻩﻩCTRLCDCR=0;
ﻩﻩDelay(10);
ﻩ}
ﻩﻩCTRLCDCMDR=0xb8+i;
ﻩDelay(10);
CTRLCDCR=0;
ﻩDelay(10);
ﻩﻩCTRLCDCMDR=0x40;
ﻩﻩ//设置操作列
Delay(10);
ﻩCTRLCDCR=0;
ﻩDelay(10);
ﻩﻩfor(j=0;
j++)
ﻩ{
ﻩﻩﻩCTRLCDRCR=0;
ﻩDelay(10);
ﻩﻩCTRLCDCR=0;
ﻩDelay(10);
ﻩ}
}
voidlcdinit()
CTRGR=0x80;
ﻩ//初始化ICETEK-CTR
ﻩDelay(10);
ﻩCTRGR=0x0;
Delay(10);
CTRGR=0x80;
Delay(10);
ﻩCTRLA=0;
ﻩ//关闭东西方向的交通灯
ﻩDelay(10);
CTRLR=0x40;
//关闭南北方向的交通灯
ﻩTurnOnLCD();
ﻩ//打开显示
LCDCLS();
ﻩﻩ// 清除显示内存
voiddisp_picture(uchar *img)
ﻩintj,k,n;
CTRLCDCMDR=0xc0;
ﻩ// 设置显示起始行
Delay(10);
CTRLCDCR=0;
ﻩDelay(10);
ﻩfor(j=0;
64;
j++)
ﻩﻩfor(k=0;
k<
k++)
{
ﻩCTRLCDCMDR=0xb8+k;
ﻩﻩ// 设置操作页
ﻩDelay(10);
ﻩCTRLCDCR=0;
ﻩDelay(10);
ﻩﻩCTRLCDCMDR=0x40+j;
//设置显示起始列
ﻩﻩﻩDelay(10);
ﻩCTRLCDCR=0;
ﻩﻩDelay(10);
ﻩCTRLCDLCR=img[n];
ﻩﻩn++;
ﻩDelay(10);
ﻩCTRLCDCR=0;
ﻩDelay(10);
ﻩﻩ
ﻩﻩ}ﻩ
ﻩ}
ﻩfor(j=0;
j<64;
{
for (k=0;
k<
k++)
ﻩﻩCTRLCDCMDR=0xb8+k;
ﻩ//设置操作页
ﻩDelay(10);
ﻩCTRLCDCR=0;
Delay(10);
ﻩCTRLCDCMDR=0x40+j;
ﻩﻩ//设置显示起始列
ﻩﻩﻩDelay(10);
ﻩﻩCTRLCDCR=0;
ﻩDelay(10);
CTRLCDRCR=img[n];
ﻩn++;
ﻩﻩDelay(10);
ﻩﻩCTRLCDCR=0;
ﻩDelay(10);
ﻩ}ﻩﻩ
ﻩ}
voidmain(void)
ﻩInitSysCtrl();
lcdinit();
disp_picture(map);
}
2将程序下载到既定的实验板上运行;
3进行实验的调试让实验板上的液晶模块与所要实现的功能匹配;
4撰写设计报告。
七、心得体会
本次设计总共经历了一个星期,时间不长,但对我而言收获颇多。
每天都在自己的设计进度上向前思考,思考下一步该怎么实现,遇到的问题该怎么解决,感觉这一周很压抑却也很充实。
回想现在,每次自己克服一个技术性难关时,是多么的开心,尤其第一次看到实验板上的液晶模块显示字符时的感受,现在仍然记忆犹新。
虽然最后设计只完成了最最基本的绘图功能,还有其他的一些功能未能来得及实现,但心里依旧充满了成就感。
通过这次设计,一方面让我更进一步认识了DSP特点,另一方面也巩固了我的编程方面的能力,同时大大增强了我的自信心。
我也总结了许多我还应该改进的地方,多查资料,多思考,对解决问题起到帮助性作用。
面对困难,要知难而进;
另外要学会淡定从容面对挑战,在动手实践的过程中一定要专心致志心无旁骛,这样才会有所收获。
这次设计让我学到了了许多书本上学不到的知识,使我受益匪浅。
八、参考文献
《手把手教你学DSP》 北京航空航天大学出版社
《C程序设计》ﻩﻩ清华大学出版社
《ICETEK-F2812-A-S60-V2.2》
《RT12864系列点阵型LCM使用说明书》
九、附录
硬件原理图
硬件仿真截图: