基于DSP芯片的键盘控制LCD显示.docx
《基于DSP芯片的键盘控制LCD显示.docx》由会员分享,可在线阅读,更多相关《基于DSP芯片的键盘控制LCD显示.docx(39页珍藏版)》请在冰豆网上搜索。
基于DSP芯片的键盘控制LCD显示
****大学
***********学院
《课程设计报告》
题目:
基于DSP芯片的键盘控制LCD显示
专业:
通信工程
班级:
一班
姓名:
*******
学号:
************
指导教师:
******
年月日
信息与电气工程学院
课程设计任务书
2015—2016学年第一学期
专业:
学号:
姓名:
课程设计名称:
DSP原理与应用
设计题目:
基于DSP芯片的键盘控制LCD显示
完成期限:
自2015年12月21日至2015年12月25日共1周
设计依据、要求及主要内容(可另加附页):
一、设计依据
通过4*4的行列式键盘,TMS320F2407的8个I/O口与之相连,用扫描法来进行按键识别。
使行线一直处于高电平,在某一时刻只让一条列线处于低电平,而其余列线处于高电平。
那么按下键的那列电平就会拉成低电平,判断出哪列为低电平就可以判断出按键号码。
二、设计要求
1.要求正确掌握CCS2000的安装和调试方法,以及DSP实验箱下载调试的步骤;
2.要求正确掌握键盘信号的输入和DSPI/O的使用;
3.要求键盘信号之间的时序能正确识别和引入。
三、主要内容
1.根据行列式键盘的特点,进行键盘控制系统的整体研究与设计;
2.熟练掌握CCS2000软件的使用,并能够按要求对设计的电路进行仿真,实现相应的功能;
3.LCD液晶显示屏实时显示按键的信息;
4.采用软件编程的方法实现按键信息的提取和显示。
指导教师(签字):
批准日期:
年月日
摘要
随着21世纪的到来,电子信息行业将是人类社会的高科技行业之一,式设施现代化的基础,也是人类通往科技巅峰的直通路。
电子行业的发展从长远来看很重要,但最主要的还是科技问题。
行列式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。
是它能准时、实时、高效地显示按键信息,以提高工作效率和资源利用率。
行列式键盘乃是当今使用最为广泛的键盘模式之一,该系统以8个端口连接控制4*4个按键,即时在LCD数码管上。
单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是插上2407主控板的DSP实验箱和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。
4*4矩阵式键盘采用插上2407主控板的DSP实验箱为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用汇编语言编程。
单片机将检测到的按键信号转换成数字量,显示于LCD显示器上。
该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。
关键字:
插上2407主控板的DSP实验箱;行列式;LCD;键盘
一、实验目的.................................................5
二、实验设备.................................................5
三、实验原理.................................................6
四、实验步骤.................................................7
五、程序.....................................................8
六、实验总结.................................................25
七、参考文献.................................................25
基于DSP芯片的键盘控制LCD显示
一、实验目的
1.掌握CCS2000的安装和调试方法,以及DSP实验箱下载调试的步骤;
2.掌握键盘信号的输入,DSPI/O口的使用;
3.掌握键盘信号之间时序的正确识别和引入。
二、实验设备
1.一台装有CCS2000软件的计算机;
CCS2000具有以下特性:
TI编译器的完全集成的环境:
CCS2000目标管理系统,内建编辑器,所有的调试和分析能力集成在一个Windows环境中。
对c和DSP汇编文件的目标管理:
目标编辑器保持对所有文件及相关内容的跟踪。
它只对最近一次编译中改变过的文件重新编译,以节省编译时间。
高集成的编辑器调整C和DSP汇编代码:
CCS2000的内建编辑器支持C和汇编文件的动态语法加亮显示。
使用户能很容易地阅读代码和当场发现语法错误,对编辑和调试时的后台编辑:
用户在使用编译器和汇编器时没有必要退出系统到DOS环境中,因为CCS2000会自动将这些工具装载在它的环境中。
在其窗口中,错误会加亮显示只要双击错误就可以直接到达出错处。
PDM允许将命令传播给所有的或所选择的处理器。
在任何算法点观察信号的图形窗口探针,图形显示窗口使用户能够观察时域或频域内的信号。
2.插上2407主控板的DSP实验箱;(仿真器模块,显示控制模块,DSP评估板模块,行列式键盘模块)
ICETEK-LF2407-A板是一块很独立的目标板,它非常适合检验LF2407DSP的性能,此外,本目标板提供了LF240x系列芯片进行扩展和运行软件的标准平台。
ICETEK-LF2407-A板使用了TMS320LF2407DSP芯片,兼容所有LF2407的使用代码,它具有2.5K字节的片上数据存储器,128K板上存储器,片上UART,DAC7625模数转换器。
此EVM板还提供了DSP的扩展引脚,方便了用户外搭所需电路。
许多用户接口可利用简单的代码进行扩展,从而缩短了调试时间。
ICETEK-LF2407-A 板功能:
它主要的接口包括目标存储器接口、模拟接口、CAN总线接口、并口、用户指示灯和开关、外部扩展接口。
LF2407提供了128K的静态存储器,外部I/O口支持相应的64k I/O端口,片上的CAN总线和RS232端口可用做扩展连接。
3.DSP硬件仿真器。
三、实验原理
实验箱上提供一个4x4的行列式键盘。
2407的8个I/O口与之相连,这里按键的识别方法是扫描法。
键被按下时,与此键相连的行线电平将由与此键相连的列线电平决定,而行线的电平在无按键按下时处于高电平状态。
如果让所有的列线也处于高电平,那么键按下与否不会引起行线电平的状态变化,始终为高电平。
所以,让所有的列线处于高电平是无法识别出按键的。
现在反过来,让所有的列线处于低电平,很明显,按键所在的行电平将被拉成低电平。
根据此行电平的变化,便能判断此行一定有按键被按下,但还不能确定是哪个键被按下。
假如是5键按下,为了进一步判定是哪一列的键被按下,可在某一时刻只让一条列线处于低电平,而其余列线处于高电平。
那么,按下键的那列电平就会拉成低电平,判断出哪列为低电平就可以判断出按键号码。
读者可以通过下面的键位去加深理解其含义
实验流程图:
由图可知,插上2407主控板的DSP实验箱的主芯片扫描矩阵键盘模块,矩阵键盘按键返回数据给实验箱主控制芯片,再由DSP芯片控制液晶显示模块,输入数据到液晶显示模块,然后完成实验流程,按下矩阵键盘的任意一个按键都能显示相对应的数据。
四、实验步骤
1.把2407模块小板插到大板上电脑显示会要安装驱动,按照流程安装好驱动;打开液晶模块的电源开关;
2.在CCS2000环境中打开本实验的工程编译(.\key\zkey.pjt)
,生成输出文件,通过仿真器把执行代码(.out的文件)下载到DSP芯片;
2.运行
;按下键盘按键,液晶会显示所按键的号码。
4.调试及性能分析
点击“运行”按键,进行仿真,点击右边4*4按键,则数码管显示0~F,仿真结果符合实验要求。
5.系统实现的功能
基本功能:
通过键盘输入,在LCD液晶显示屏上显示相应的数值;
功能优势:
键盘输入,插上2407主控板的DSP实验箱控制,LCD液晶显示屏显示。
五、程序
r16.set280h
r17.set282h
r18.set284h
r21.set286h
r22.set288h;r22为调用显示一次的列数
r23.set28ah;r24显示起始页
r24.set28ch;r24显示起始列
r25.set28eh;r25显示结束页
r26.set290h
keydata.set292h;存放键值
rowdata.set294h;存放行数
scandata.set296h;存放扫描值
keybuffer.set298h;读写键值缓冲
dp_user.set5h
keydata1.set29ah
lcdtab.set29ch
lcddata.set29eh
pbdatdir.set709ah
dp_pf2.set0e1h
padatdir.set7098h
pcdatdir.set709ch
mcra.set7090h
mcrb.set7092h
mcrc.set7094h
pedatdir.set7095h
pfdatdir.set7096h
;;;;;;以F口的低四位为输出,C口的7,6,5,0为输入,调试以通
.data
tab00:
;--文字:
E--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,007H,006H,004H,004H,004H,004H,004H,004H,004H,007H,007H,004H,004H,000H
.word000H,0C0H,080H,000H,01FH,007H,002H,002H,002H,002H,002H,0FFH,0FFH,000H,000H,000H
.word000H,006H,001H,000H,0C0H,000H,000H,000H,000H,000H,000H,0FFH,0FFH,000H,000H,000H
.word000H,000H,0C0H,0C0H,040H,040H,040H,040H,040H,040H,040H,0C0H,0C0H,040H,040H,000H
tab01:
;--文字:
0--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,000H,001H,003H,006H,004H,004H,004H,006H,003H,001H,000H,000H,000H,000H
.word000H,01FH,0FFH,0C0H,000H,000H,000H,000H,000H,000H,000H,0E0H,0FFH,01FH,000H,000H
.word000H,0F0H,0FEH,007H,001H,000H,000H,000H,000H,000H,001H,00FH,0FEH,0F0H,000H,000H
.word000H,000H,000H,000H,080H,0C0H,040H,040H,040H,0C0H,080H,000H,000H,000H,000H,000H
tab02:
;--文字:
F--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,007H,006H,006H,004H,004H,004H,004H,004H,004H,004H,007H,007H,004H,004H,000H
.word0C0H,080H,000H,01FH,007H,002H,002H,002H,002H,002H,002H,0FFH,0FFH,000H,000H,000H
.word000H,000H,000H,0C0H,000H,000H,000H,000H,000H,000H,000H,0FFH,0FFH,000H,000H,000H
.word000H,000H,000H,000H,000H,000H,000H,000H,000H,040H,040H,0C0H,0C0H,040H,040H,000H
tab03:
;--文字:
D--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,000H,001H,003H,002H,006H,004H,004H,004H,004H,007H,007H,004H,004H,000H
.word000H,01FH,0FFH,0E0H,000H,000H,000H,000H,000H,000H,000H,0FFH,0FFH,000H,000H,000H
.word000H,0F0H,0FCH,00FH,001H,000H,000H,000H,000H,000H,000H,0FFH,0FFH,000H,000H,000H
.word000H,000H,000H,000H,080H,080H,0C0H,040H,040H,040H,040H,0C0H,0C0H,040H,040H,000H
tab04:
;--文字:
7--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,006H,007H,006H,006H,006H,006H,006H,006H,006H,007H,007H,001H,000H,000H
.word000H,000H,000H,000H,0C0H,030H,00CH,003H,000H,000H,000H,000H,080H,0E0H,000H,000H
.word000H,000H,000H,000H,000H,000H,000H,080H,07FH,00FH,000H,000H,000H,000H,000H,000H
.word000H,000H,000H,000H,000H,000H,000H,000H,0C0H,0C0H,000H,000H,000H,000H,000H,000H
tab05:
;--文字:
8--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,000H,001H,003H,006H,004H,004H,004H,004H,006H,003H,001H,000H,000H,000H
.word000H,000H,0F0H,0F8H,00CH,003H,003H,003H,003H,006H,00FH,01DH,0F8H,0F0H,000H,000H
.word000H,000H,03EH,07FH,0E1H,0C0H,080H,000H,000H,000H,000H,080H,0C1H,07FH,03EH,000H
.word000H,000H,000H,000H,080H,080H,040H,040H,040H,040H,040H,080H,080H,000H,000H,000H
tab06:
;--文字:
9--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,000H,000H,001H,002H,004H,004H,004H,004H,004H,002H,003H,001H,000H,000H
.word000H,000H,03FH,0FFH,083H,001H,000H,000H,000H,000H,000H,000H,081H,0FFH,07EH,000H
.word000H,000H,0E0H,0FCH,01EH,083H,081H,040H,040H,040H,040H,0C0H,083H,003H,000H,000H
.word000H,000H,000H,000H,000H,000H,080H,0C0H,040H,040H,040H,040H,080H,080H,000H,000H
tab07:
;--文字:
C--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,007H,003H,002H,004H,004H,004H,004H,006H,002H,001H,000H,000H,000H,000H
.word000H,060H,080H,000H,000H,000H,000H,000H,000H,000H,000H,080H,0E0H,07FH,00FH,000H
.word000H,00CH,003H,001H,000H,000H,000H,000H,000H,000H,000H,001H,00FH,0FEH,0F0H,000H
.word000H,000H,000H,080H,080H,040H,040H,040H,040H,040H,080H,080H,000H,000H,000H,000H
tab08:
;--文字:
4--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,000H,000H,007H,007H,003H,000H,000H,000H,000H,000H,000H,000H,000H,000H
.word000H,000H,000H,000H,0FFH,0FFH,0FFH,080H,060H,018H,00CH,003H,000H,000H,000H,000H
.word000H,010H,010H,010H,0FFH,0FFH,0FFH,010H,010H,010H,010H,010H,090H,070H,010H,000H
.word000H,020H,020H,020H,0E0H,0E0H,0E0H,020H,020H,020H,000H,000H,000H,000H,000H,000H
tab09:
;--文字:
5--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,006H,006H,006H,006H,006H,006H,006H,006H,006H,007H,000H,000H,000H,000H
.word000H,000H,000H,003H,006H,00CH,008H,008H,008H,008H,004H,0C2H,03FH,000H,000H,000H
.word000H,000H,0FCH,0FFH,003H,000H,000H,000H,000H,000H,000H,000H,00CH,00FH,000H,000H
.word000H,000H,000H,000H,080H,080H,040H,040H,040H,040H,040H,040H,080H,000H,000H,000H
tab10:
;--文字:
6--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,001H,003H,004H,004H,004H,004H,006H,002H,001H,000H,000H,000H,000H,000H
.word000H,000H,081H,083H,006H,004H,004H,004H,004H,002H,003H,0E1H,07FH,00FH,000H,000H
.word000H,0FCH,0FFH,001H,000H,000H,000H,000H,000H,000H,001H,087H,0FEH,0F8H,000H,000H
.word000H,000H,000H,080H,080H,040H,040H,040H,040H,0C0H,080H,000H,000H,000H,000H,000H
tab11:
;--文字:
B--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,001H,003H,003H,006H,004H,004H,004H,004H,004H,007H,007H,004H,004H,000H
.word000H,000H,0F0H,0F9H,00DH,006H,002H,002H,002H,002H,002H,0FFH,0FFH,000H,000H,000H
.word000H,03EH,0FFH,081H,000H,000H,000H,000H,000H,000H,000H,0FFH,0FFH,000H,000H,000H
.word000H,000H,000H,080H,0C0H,040H,040H,040H,040H,040H,040H,0C0H,0C0H,040H,040H,000H
tab12:
;--文字:
1--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,000H,000H,000H,000H,000H,007H,003H,001H,001H,001H,001H,000H,000H,000H
.word000H,000H,000H,000H,000H,000H,000H,0FFH,0FFH,000H,000H,000H,000H,000H,000H,000H
.word000H,000H,000H,000H,000H,000H,000H,0FFH,0FFH,000H,000H,000H,000H,000H,000H,000H
.word000H,000H,000H,040H,040H,040H,0C0H,0C0H,0C0H,0C0H,040H,040H,040H,000H,000H,000H
tab13:
;--文字:
2--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,000H,003H,003H,006H,004H,004H,004H,004H,004H,002H,001H,000H,000H,000H
.word000H,000H,0F8H,0FCH,006H,001H,000H,000H,000H,000H,000H,000H,030H,0F0H,000H,000H
.word000H,000H,00FH,001H,000H,000H,080H,040H,020H,010H,008H,004H,002H,001H,000H,000H
.word000H,000H,000H,0C0H,0C0H,0C0H,0C0H,0C0H,0C0H,0C0H,0C0H,0C0H,0C0H,0C0H,000H,000H
tab14:
;--文字:
3--
;--宋体24;此字体下对应的点阵为:
宽x高=16x32--
.word000H,000H,000H,000H,003H,003H,006H,004H,004H,004H,004H,002H,003H,001H,000H,000H
.word000H,000H,000H,0F0H,0F9H,00DH,007H,002H,002H,002H,000H,000H,0E0