自DSPLCD设计报告.docx

上传人:b****5 文档编号:6355859 上传时间:2023-01-05 格式:DOCX 页数:12 大小:318.53KB
下载 相关 举报
自DSPLCD设计报告.docx_第1页
第1页 / 共12页
自DSPLCD设计报告.docx_第2页
第2页 / 共12页
自DSPLCD设计报告.docx_第3页
第3页 / 共12页
自DSPLCD设计报告.docx_第4页
第4页 / 共12页
自DSPLCD设计报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

自DSPLCD设计报告.docx

《自DSPLCD设计报告.docx》由会员分享,可在线阅读,更多相关《自DSPLCD设计报告.docx(12页珍藏版)》请在冰豆网上搜索。

自DSPLCD设计报告.docx

自DSPLCD设计报告

DSP设计报告

----液晶显示

 

ﻩﻩﻩ学院:

物信学院

专业:

电子信息科学与技术

班级:

11电信一班

姓名:

何得中

学号:

20111060108

 

一、引言

简单地说,数字信号处理就是用数值计算的方式对信号进行加工的理论和技术,它的英文原名叫digitalsignalprocessing,简称DSP。

另外DSP也是digital signalprocessor的简称,即数字信号处理器,它是集成专用计算机的一种芯片,只有一枚硬币那么大。

有时人们也将DSP看作是一门应用技术,称为DSP技术与应用。

《DSP》这门课介绍的是:

将事物的运动变化转变为一串数字,并用计算的方法从中提取有用的信息,以满足我们实际应用的需求。

本次课程设计主要采用TI公司的DSP芯片TMS320F2812A驱动液晶显示模块RT12864J,在CCS2软件平台上,实现静态图片的显示。

关键词:

DSP;LCD12864;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<64;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;//关闭南北方向的交通灯

ﻩDelay(10);

ﻩTurnOnLCD();ﻩ//打开显示

LCDCLS();ﻩﻩ// 清除显示内存

}

voiddisp_picture(uchar *img)

{

ﻩintj,k,n;

CTRLCDCMDR=0xc0;ﻩ// 设置显示起始行

Delay(10);

CTRLCDCR=0;

ﻩDelay(10);

ﻩfor(j=0;j<64;j++)

ﻩ{

ﻩﻩfor(k=0;k<8;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;j++)

{

for (k=0;k<8;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使用说明书》

九、附录

硬件原理图

 

   

 

硬件仿真截图:

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

当前位置:首页 > 成人教育 > 电大

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

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