单片机课程设计-键盘输入在LED数码管上的显示_第1页
单片机课程设计-键盘输入在LED数码管上的显示_第2页
单片机课程设计-键盘输入在LED数码管上的显示_第3页
单片机课程设计-键盘输入在LED数码管上的显示_第4页
单片机课程设计-键盘输入在LED数码管上的显示_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东北石油大学课程设计课 程 单片机的控制系统课程设计题目键盘输入在LED数码管上的显示院 系电气信息工程学院专业班级 学生姓名 学生学号 指导教师 东北石油大学课程设计任务书课程 单片机的控制系统课程设计 题目 键盘输入在LED数码管上的显示 专业姓学号主要内容、基本要求、主要参考资料等主要内容:完成键盘输入在LED数码管上的显示。基本要求:了解4X4键盘的工作原理。熟悉SPCE061A单片机控制数码管显示的方法。掌握4X4键盘的使用方法。掌握4X4键盘控制数码管显示的方法。参考资料:肖洪兵.跟我学用单片机[J].北京:北京航空航天大学出版社,2002.8何立民.单片机高级教程第1版[M].北京:北京航空航天大学出版社,2001.6赵晓安.MCS-51单片机原理及应用[M].天津:天津大学出版社,2001.3李广第.单片机基础第1版[M].北京:北京航空航天大学出版社,1999.5徐惠民.单片微型计算机原理与应用[M].北京:北京邮电大学出版社,1996.2袁勤勇.嵌入式系统构件[M].北京:北京机械工业出版社,2002.完成期限 指导教师 专业负责人 年月曰TOC\o"1-5"\h\z\o"CurrentDocument"第1章设计的研究背景及目的要求 1\o"CurrentDocument"1.1研究背景 1\o"CurrentDocument"1.2设计目的 1\o"CurrentDocument"1.3硬件选择 1\o"CurrentDocument"1.4设计内容 1\o"CurrentDocument"第2章设计的基本原理及硬件连接方案 2\o"CurrentDocument"4X4键盘扫描原理图 2\o"CurrentDocument"SPCE061A获取4X4键盘键值原理 2\o"CurrentDocument"2.3硬件连接 3\o"CurrentDocument"第3章软件设计方案 5\o"CurrentDocument"3.1设计步骤 5\o"CurrentDocument"3.2设计程序 6\o"CurrentDocument"第4章调试结果与分析 7\o"CurrentDocument"4.1调试结果 7\o"CurrentDocument"4.2结果分析 7结论与体会 8\o"CurrentDocument"参考文献 9\o"CurrentDocument"附录 10第1章设计的研究背景及目的要求1.1研究背景用单片机驱动LED数码管有很多方法,按显示方式可分静态显示和动态(扫描)显示;按译码方式可分硬件译码和软件译码。静态显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。LED数码管的外围电路一般需要一个限流电阻和加大驱动电流的晶体管。LED数码管是由发光二级管显示字段组成的显示器,有“8”字段和“米”字段之分,这种显示器有共阳极和共阴极两种。实际上不用驱动电路即可达到正常亮度,为了可靠性设计可采用晶体管构成驱动电路。1.2设计目的在单片机的产品设计中,人机界面是非常重要的部分,而且随着系统的日益复杂,以及人们对产品的人机交互能力的要求不断提升,常握单片机系统中的人机界面基础设计能力成为了学习单片机的基础课程,而4X4键盘的操作和LED数码管的动态显示是人机界面设计的基础内容,掌握这些基础设计能力,加深对人机界面的认识,同时提高人机界面系统设计能力。1.3硬件选择装有Windows系统和u’nSP™IDE仿真环境的PC机一台,口’nSP™十六位单片机实验箱一个。本设计用到的实验箱硬件模块为:SPCE061A核心及周边电路模块(包含32个I/O口)。半导体数码管,4X4键盘。做此实验用51板也可以,因为51板也提供了相应的LED模组,因为实验室里面给我们提供了61板,所以我决定选用SPCE061A单片机实验箱。1.4设计内容给4X4键盘的每个键定义一个功能,其中把定义为0〜9的键盘称为数字键,把定义成DEL的键称为删除键,把定义成ENT的键成为确认键,其他键称为保留键。如果是数字键按下,把代表数字显示在数码管上:按键按下时,6位数码管靠右边显示该键的代表数字;继续按键时,已经显示在数码管上的数字左移一位,按键代表的数字显示在最右边的数码管上。

第2章设计的基本原理及硬件连接方案2.14X4键盘扫描原理图键盘按其接线方法有:直接式键盘、行列式键盘(又称矩阵键盘)、串转并键盘等;在本设计中,采用4X4的行列式键盘,即键盘排列为4行、4列,共16个按键。4X4键盘的电路图如图1-3所示,分别定义这16个按键盘为KEY1〜16。C4C2L1i—oo—L3—oo—C2L1i—oo—L3—oo—I~~oo-宕。n-oo—I—oo—1—0O—1—0o—1业

1—01—0o—1图2-14X4键盘电路图图中C1〜C4为4X4键盘的列扫描线,L1〜L4为4X4键盘的行扫描线。先使行扫描线输出高电平,然后读取列扫描线的状态,得到与按键横向位置对应的4位列码;如果是有键被按下时,则对应的列扫描线必然会被读回高电平,如果是无键盘按下时,则读取的列码必定全是0(低电平)。这也就可以判断有无按键的按下了。SPCE061A获取4X4键盘键值原理单片机与该电路连接时,使用4个端口作为输出口,接4条行扫描线;使用4个端口作为输入口,接4条列扫描线。使用SPCE061A的IOA8〜15八个端口作4X4键盘的扫描,I0A0〜3接行扫描线,IOA4〜7接列扫描线。图2-2SPCE061A和4X4键盘电路连接图如上图中,IOA12〜IOA15设置为输出口,接行扫描线;IOA8〜IOA11设置为带下拉电阻的输入口,接列扫描线。按照4X4键盘的工作原理,先只把IOA12输出高电平,其他都输出低电平,扫描IOA80IOA11四个输入口的值,如果每个输入口的值还是0;再把IOA13输出高电平,其他都输出低电平,扫描IOA8到IOA11四个输入口的值,如果每个输入口还没有检测到高电平;从IOA14输出高电平扫描,从IOA15输出高电平扫描,直到检测到高电平,保存扫描行值和列码。2.3硬件连接硬件连接图如图2-3,IOA0-IOA7连接和6位数码管的a〜g、dp,IOA口的高八位【OA15〜IOA8连接4X4键盘的L1〜L4、C1〜C4,IOB15〜IOB12连接数码管的位信号1〜4,IOB2-IOB1连接数码管的位信号5〜6,IOB0连接数码管的分隔符信号DD。即把JP4、JP5的引脚全部用跳线短接起来,用一根排线连接J28和JP7,注意J27和JP7的连接顺序(连接顺序为:J27的第0号引脚连接JP7的C4引脚,J27的第7号引脚连接JP7的L1引脚)。

a—— IOA0b— IOA1c IOA2dIOA3—eIOA4IOA15——L1fIOA5IOA14——L2gIOA6IOA13——L3DPIOA7IOA12——L46位数码管SPCE061A4X4键盘1— IOB15IOA11—— C12— IOB14IOA10—— C23 IOB13IOA9 C34IOB12IOA8——C45IOB26IOB1DDIOB0 图2-3硬件连接图第3章软件设计方案3.1设计步骤建立一个新工程cyd,在工程里新建C语言文件main.c。拷贝并添加头文件SPCE061A.C和SPCE061A.inc到新建工程cyd。按照程序流程图编写程序,如图3-1所示。图3-1主程序流程图RebuildAll。根据硬件连接图连接实验箱电路。下载程序到实验箱,运行。观察实验箱LED数码管的状态,分析是否和设计要求相符。3.2设计程序由于程序过多,如附录所示。第4章调试结果与分析4.1调试结果给4X4键盘的每个键定义一个功能,其中把定义为0〜9的键盘称为数字键,把定义成DEL的键称为删除键,把定义成ENT的键成为确认键,其他键称为保留键。如果是数字键按下,把代表数字显示在数码管上:按键按下时,6位数码管靠右边显示该键的代表数字;继续按键时,已经显示在数码管上的数字左移一位,按键代表的数字显示在最右边的数码管上。如果是删除键按下时,每按一次删除键显示在最右边数字被删除,其他数字右移一位,最右边一位显示0,比如在第5个数码管上显示“8”,在第6个数码管上显示“9”,当按一次删除键时,在第6个数码管上显示“8”,第5个数码管显示按键前第四个数码管显示的内容(或者说删除了9)。4.2结果分析此设计验证了键盘输入在LED数码管上的显示的功能。可能会出现的问题就是在按键时候需要注意,当保留键按下时,不做任何操作。当按确认键时,按任何键将不起作用。结论与体会设计结论:设计中我遇到了按键分辨的问题。我采用的解决方法是自己在纸上记下自己定义的功能。此次设计的优点是程序简单,不过缺点是操作繁琐。很难理清按键顺序。我建议能够简化操作步骤,使电路图连接更清晰。操作起来能够得心应手。心得体会:单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有一定地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,也许你看不明白,但这并不要紧,因为你还缺乏实践经验。现在单片机应用广泛,因此各个厂家分别推出了自己的单片机,按内部结构体系派系分:51系列、PIC系列、AVR系列、摩托罗拉等等……!因为他们的编程方法和调试过程以及内部指令结构有一定的相似,只要学精通一款就OK了!尤其是用C语言编程,就几乎不用分什么派系,但是我们要选择一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,MCS-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。参考文献肖洪兵.跟我学用单片机[J].北京:北京航空航天大学出版社,2002.8何立民.单片机高级教程第1版[M].北京:北京航空航天大学出版社,2001.6赵晓安.MCS-51单片机原理及应用[M].天津:天津大学出版社,2001.3李广第.单片机基础第1版[M].北京:北京航空航天大学出版社,1999.5徐惠民.单片微型计算机原理与应用[M].北京:北京邮电大学出版社,1996.2袁勤勇.嵌入式系统构件[M].北京:北京机械工业出版社,2002.附录#include"SPCE061A.h”#include"Dig.h"#include"Key.h"intmain(void)intEnt_Flag=0;unsignedintuiKey;unsignedintuiData[6]={1,0,0,0,0,1};uiData[0]=0;uiData[5]=0;Key_Init();DIG_Init();while(1)uiKey=Key_Get();switch(uiKey)CaseKEY_0:if(Ent_Flag==0){uiData[0]=uiData[1];uiData[1]=uiData[2];uiData[2]=uiData[3];uiData[3]=uiData[4];uiData[4]=uiData[5];uiData[5]=7;}break;caseKEY_1:if(Ent_Flag==0){uiData[0]=uiData[1];uiData[1]=uiData[2];uiData[2]=uiData[3];uiData[3]=uiData[4];uiData[4]=uiData[5];uiData[5]=8;}break;caseKEY_2:if(Ent_Flag==0){uiData[0]=uiData[1];uiData[1]=uiData[2];uiData[2]=uiData[3];uiData[3]=uiData[4];uiData[4]=uiData[5];uiData[5]=9;}break;caseKEY_3break;caseKEY_4:if(Ent_Flag==0)uiData[0]=uiData[1];uiData[1]=uiData[2];uiData[2]=uiData[3];uiData[3]=uiData[4];uiData[4]=uiData[5];uiData[5]=4;}break;caseKEY_5:if(Ent_Flag==0){uiData[0]=uiData[1];uiData[1]=uiData[2];uiData[2]=uiData[3];uiData[3]=uiData[4];uiData[4]=uiData[5];uiData[5]=5;break;caseKEY_6:if(Ent_Flag==0)uiData[0]=uiData[1];uiData[1]=uiData[2];uiData[2]=uiData[3];uiData[3]=uiData[4];uiData[4]=uiData[5];uiData[5]=6;break;caseKEY_7:break;caseKEY_8:if(Ent_Flag==0){uiData[0]=uiData[1];uiData[0]=uiData[1];uiData[0]=uiData[1];uiData[1]=uiData[2];uiData[2]=uiData[3];uiData[3]=uiData[4];uiData[4]=uiData[5];uiData[5]=0;break;caseKEY_E:break;caseKEY_F:Ent_Flag=1;break;default:break;DIG_Set(1,g_Data[uiData[0]]);DIG_Set(2,g_Data[uiData[1]]);DIG_Set(3,g_Data[uiData⑵]);DIG_Set(4,g_Data[uiData[3]]);DIG_Set(5,g_Data[uiData[4]]);DIG_Set(6,g_Data[uiData[5]]);*P_Watchdog_Clear=0x0001;}}uiData[1]=uiData[2];uiData⑵=uiData[3];uiData[3]=uiData[4];uiData[4]=uiData[5];uiData[5]=1;break;caseKEY_9:if(Ent_Flag==0)(uiData[0]=uiData[1];uiData[1]=uiData[2];uiData⑵=uiData[3];uiDat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论