东北石油大学课程设计2011年7月8日课程单片机控制系统课程设计题目4×4键盘在LCD显示屏上的应用院系电气信息工程学院专业班级自动化08-03学生姓名文晶学生学号080601140304指导教师王婷婷李艳辉东北石油学院课程设计任务书课程单片机控制系统课程设计题目4×4键盘在LCD显示屏上的应用专业自动化姓名文晶学号080601140304一.主要内容:键盘控制LCD显示屏显示不同内容。每个数字键均有对应图片显示;当按下数字键时,数字键对应的图片在LCD显示屏上显示。二.基本要求:1.进一步掌握SPCE061A控制LCD显示屏显示的方法。2.熟悉4×4键盘的使用方法。三.参考资料:1.罗亚非.凌阳16位单片机[M].应用基础北京航空航天大学出版社,2005.2.李坚.初学凌阳单片机[M].高等教育出版社,2005.3.凌阳科技.凌阳16位单片机开发实例[M].北京:航空航天大学出版社,2006.4.侯媛彬.凌阳单片机原理及其毕业设计精选[M].科学出版社,2006.5.卢胜利.基于凌阳SPCE061A设计实验平台的专业综合设计教程机[M].械工业出版社,2007.6.参考网站:—2011.7.8指导教师专业负责人2011年7月1日目录第1章概述............................................................11.14×4键盘LCD显示的研究背景....................................11.2凌阳单片机简介...................................................11.34×4键盘LCD显示的设计目的和要求..............................2第2章4×4键盘LCD显示的基本原理及方案..............................32.14×4键盘的工作原理.............................................32.2SPCE061A获取4×4键盘键值原理..................................42.3图片显示的原理...................................................42.4基本方案.........................................................6第3章程序设计.........................................................73.1主程序流程图.....................................................73.2程序代码.........................................................83.3调试及结果分析...................................................8第4章结论与体会.......................................................9参考文献...............................................................10附录...................................................................11单片机的控制系统课程设计1第1章概述1.14×4键盘LCD显示的研究背景本题目用的是凌阳科技公司设计了µ\u8217XnSP™十六位单片机实验箱,应用SPCE061A单机。本次设计主要应用AT89C51单片机为核心控制元件,与键盘、LCD等模块组成核心主控制模块,通过软硬件设计,通过程序对键盘进行行列扫描的方式驱动LCD1602进行显示。发挥51单片机C语言的优势,对键盘、LCD1602模块进行编程。设计一个简易的4×4键盘LCD显示器。1.2凌阳单片机简介凌阳的16位单片机的CPU内核采用凌阳最新推出的MicrocontrollerandSignalProcessor16位微机处理器芯片,以下简μ’nSP™。围绕μ’nSP™所形成的16位u’nSP系列单片机,以下简称μ’nSP™家族。采用的是模块式集成结构,它以μ’nSP™内核为中心集成不同规模的ROMPAM和功能丰富的各种外设部件。μ’nSP™内核是一个通用的和结构。除此之外的其它功能模块均为可选结构。以及这种结构可大可小可有可无,借助这种通用结构附加可选结构的积木式的构成,便可成为各种系列的派生产品,以适合不同场合,这样做无疑会使每种派生产品具有更强的功能和更低的成本。μ’nSP™家族有有以下特点:体积小,集成度高,可靠性好易于扩展。μ’nSP™家族把各功能把各功能部件模块化地集成在一个芯片里。内部采用总线结构,因为减少了各功能部件之间的连接,提高了其可靠性和抗干扰能力,另外,模块化的结构易于系列的扩展,以适应不同用户的需求。具有较强的中断处理能力。μ’nSP™家族的中断系统支持10个中断向量及10余个中断源,适合实时应用领域。高性能价格比:μ’nSP™家族片内带有高寻址能力的ROM,静态RAM和多功能的I/O口,另外μ’nSP™的指令系统提供出具有较高运算速度的16位,16位的乘法运算指令和内积运算指令,为其应用添加了DSP功能,使得μ’nSP™家族运用在复杂的数字信号处理方面既很便利又比专用的DSP芯片廉价。SPCE061A的开发是通过在线调试器PROBE实现的。它既是一个编程器(即程序烧写器),又是一个实时在线调试器。用它可以替代在单片机应用项目的开发过程中常用的软件工具——硬件在线实时仿真器和程序烧写器。它利用了SPCE061A片内置的在线仿真电路ICE(In-CircuitEmulator)接口和凌阳公司的在线串行编程技术。PROBE工作于凌阳IDE集成开发环境软件包下,其5芯的仿真头直接连接到目标电路板上SPCE061A相应管脚,直接在目标电路板上的CPU---SPCE061A调试、运行用户编制的程序。PROBE的另一头是标准25针打印机接口,直接连接到计算机打印口与上位机通讯,在计算机IDE集成开发环境软件包下,完成在线调试功能。单片机的控制系统课程设计21.34×4键盘LCD显示的设计目的和要求在单片机的产品设计中,人机界面是非常重要的部分,而且随着系统的日益复杂,以及人们对产品的人机交互能力的要求不断提升,常握单片机系统中的人机界面基础设计能力成为了学习单片机的基础课程,而4X4键盘的操作和LCD显示屏的动态显示是人机界面设计的基础内容,掌握这些基础设计能力,加深对人机界面的认识,同时提高人机界面系统设计能力。本次设计要求键盘控制LCD显示屏显示不同内容。每个数字键均有对应图片显示;当按下数字键时,数字键对应的图片在LCD显示屏上显示。进一步掌握SPCE061A控制LCD显示屏显示的方法。熟悉4×4键盘的使用方法。单片机的控制系统课程设计3第2章4×4键盘LCD显示的基本原理及方案2.14×4键盘的工作原理在一般应用中,键盘按其接线方法有:直接式键盘、行列式键盘(又称矩阵键盘)、串转并键盘等;在实验箱中,采用4×4的行列式键盘,即键盘排列为4行、4列,共16个按键。4×4键盘的电路图如图2-1所示,分别定义这16个按键盘为KEY1~16。图2-14×4键盘电路图图中C1~C4为4×4键盘的列扫描线,L1~L4为4×4键盘的行扫描线。行列式键盘的操作一般完成两个任务,一是检测是否有键被按下,二是识别被按下的键是哪一个。一般会采用行列扫描法,可以同时完成上述两项任务。基本的扫描原理是:先使行扫描线输出高电平,然后读取列扫描线的状态,得到与按键横向位置对应的4位列码;如果是有键被按下时,则对应的列扫描线必然会被读回高电平,如果是无键盘按下时,则读取的列码必定全是0。这也就可以判断有无按键的按下了。一旦检测到有键按下时,还需要有一个延时的消除抖动的操作,以消除按键时带有的抖动信号;一般延时在15ms左右即可。延时后,如还能检测到有按键按下,则可确定当前是有键按下,可进入获取键值的操作。获取键值时,采用行列依次扫描的方法。首先使第一行扫描线输出高电平,其它的行扫描线输出低电平,然后读取列扫描线的状态,得到列码;如果本行无键按下,则得到的列码为全0,并扫描下一行;如本行有键按下,则会读取到对应的列码值,并退出扫描,进行键值计算。当第一行扫描没有检测到按键时,则扫描下一行,即使第二行扫描线输出高电平,其它行扫描线输出低电平,其它与前面所述类似。在行列扫描时,可以用一个变量记录下当前扫描的行号,在计算键值时可以利用此行号以及列码得知是哪一行、哪一列上的按键按下了。如:当S5按单片机的控制系统课程设计4下时,应该检测出第二行扫描时读到有效的列码0001(C4~C1)。2.2SPCE061A获取4×4键盘键值原理单片机与该电路连接时,使用4个端口作为输出口,接4条行扫描线。使用SPCE061A的IOA8~15八个端口作4×4键盘的扫描,IOA0~3接行扫描线,IOA4~7接列扫描线。IOA12~IOA15设置为输出口,接行扫描线;IOA8~IOA11设置为带下拉电阻的输入口,接列扫描线。按照4×4键盘的工作原理,先只把IOA12输出高电平,其他都输出低电平,扫描IOA8到IOA11四个输入口的值,如果每个输入口的值还是0;再把IOA13输出高电平,其他都输出低电平,扫描IOA8到IOA11四个输入口的值,如果每个输入口还没有检测到高电平;从IOA14输出高电平扫描,从IOA15输出高电平扫描,直到检测到高电平,保存扫描行值和列码。如果一直没有检测到高电平,则没有键按下。比如当S5按下时,分别从IOA12、IOA13或者IOA15输出高电平,其他输出低电平时,检测到从IOA8到IOA11四个输入口的值都为0,但是当从IOA14输出高电平,其他都输出低电平时,检测到从IOA8到IOA11四个输入口的值为1000(IOA11~IOA8)。把扫描到高电平时的行值保存在寄存器里,即把IOA12~IOA15输出值0100(IOA15~IOA12)保存起来,这时候IOA口的键码为01001000B,根据扫描到IOA口的键码自己定义一种算法,计算想要得到的键值。2.3图片显示的原理1.DMTool字模提取工具利用DMTool字模提取工具提取BMP位图字模的步骤如下:第一步,导入图片:打开DMTool工具,新建一个DMTool的工程,在“Picture”的下拉菜单点击“ImportPictures…”。点击“ImportPictures…”后出现下图的对话框,在IDE的安装路径\SPCE061A\example\model_Exa\ex3_LCD501_Graphic\picture\sunplus找到我们要提取的图片sp1。注意:利用“ImportPictures…”菜单导入图象的选项只能导入BMP格式的位图;DMTool工具可以最终生成字模数据的尺寸为240×240点,所以用户在导图象时要注意图象的尺寸;但由于SPLC501液晶显示器的屏幕大小为128×64点,则在SPLC501液晶显示模块上显示的图片尺寸就不能超过128×64点,如超过则无法显示。用户可以利用图像处理的软件对原始图像进行修改后再导入DMTool中,提取合适的图像字模数据。选择sp1,点击“打开”。按照图中选择“sourceimage”和“Invariable”,点击“OK”就导入图片了。如图2-1,导入的图片就出现在Regionbar转换列表和操作区中。单片机的控制系统课程设计5图2-1图片出现在Regionbar转换列表和操作区中第二步,提取字模并保存:点击图标,打开图2-2的对