欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片机课程设计--键盘输入在LED数码管上的显示.doc

    • 资源ID:61747247       资源大小:255KB        全文页数:16页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机课程设计--键盘输入在LED数码管上的显示.doc

    东 北 石 油 大 学课 程 设 计课 程 单片机的控制系统课程设计 题 目 键盘输入在LED数码管上的显示 院 系 电气信息工程学院 专业班级 学生姓名 学生学号 指导教师 年 月 日东北石油大学课程设计任务书课程 单片机的控制系统课程设计题目 键盘输入在LED数码管上的显示专业 姓名 学号 主要内容、根本要求、主要参考资料等主要内容:完成键盘输入在LED数码管上的显示。根本要求: 1了解 4×4 键盘的工作原理。2熟悉 SPCE061A 单片机控制数码管显示的方法。3掌握 4×4 键盘的使用方法。4掌握 4×4 键盘控制数码管显示的方法。参考资料:1J.北京:北京航空航天大学出版社,2002.8 21版M.北京:北京航空航天大学出版社,2001.63用M.天津:天津大学出版社,2001.3 4李广第.单片机根底第1版M.北京:北京航空航天大学出版社,1999.55徐惠民.单片微型计算机原理与应用M.北京:北京邮电大学出版社,1996.26 袁勤勇.嵌入式系统构件M.北京:北京机械工业出版社,2002.完成期限 指导教师 专业负责人 年 月 日目 录第1章 设计的研究背景及目的要求11.1 研究背景11.2 设计目的11.3 硬件选择11.4 设计内容1第2章 设计的根本原理及硬件连接方案22.1 4X4键盘扫描原理图22.2 SPCE061A获取4×4键盘键值原理22.3 硬件连接3第3章 软件设计方案53.1 设计步骤53.2 设计程序6第4章 调试结果与分析74.1 调试结果74.2 结果分析7结论与体会8参考文献9附录10第1章 设计的研究背景及目的要求 研究背景用单片机驱动LED数码管有很多方法,按显示方式可分静态显示和动态扫描显示;按译码方式可分硬件译码和软件译码。静态显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。LED数码管的外围电路一般需要一个限流电阻和加大驱动电流的晶体管。LED数码管是由发光二级管显示字段组成的显示器,有“8”字段和“米字段之分,这种显示器有共阳极和共阴极两种。实际上不用驱动电路即可到达正常亮度,为了可靠性设计可采用晶体管构成驱动电路。1.2 设计目的在单片机的产品设计中,人机界面是非常重要的局部,而且随着系统的日益复杂,以及人们对产品的人机交互能力的要求不断提升,常握单片机系统中的人机界面根底设计能力成为了学习单片机的根底课程,而4X4键盘的操作和LED数码管的动态显示是人机界面设计的根底内容,掌握这些根底设计能力,加深对人机界面的认识,同时提高人机界面系统设计能力。 硬件选择装有Windows系统和nSP IDE仿真环境的PC机一台,nSP 十六位单片机实验箱一个。本设计用到的实验箱硬件模块为:SPCE061A核心及周边电路模块包含32个I/O口。半导体数码管,4×4键盘。做此实验用51板也可以,因为51板也提供了相应的LED模组,因为实验室里面给我们提供了61板,所以我决定选用SPCE061A单片机实验箱。 设计内容给 4×4 键盘的每个键定义一个功能,其中把定义为 09 的键盘称为数字键,把定义成 DEL 的键称为删除键,把定义成 ENT 的键成为确认键,其他键称为保存键。如果是数字键按下,把代表数字显示在数码管上:按键按下时,6 位数码管靠右边显示该键的代表数字;继续按键时,已经显示在数码管上的数字左移一位,按键代表的数字显示在最右边的数码管上。第2章 设计的根本原理及硬件连接方案 4X4键盘扫描原理图键盘按其接线方法有:直接式键盘、行列式键盘又称矩阵键盘、串转并键盘等;在本设计中,采用4X4的行列式键盘,即键盘排列为4行、4列,共16个按键。4×4键盘的电路图如图 1-3所示,分别定义这16个按键盘为KEY116。图 2-1 4×4键盘电路图图中C1C4为4×4键盘的列扫描线,L1L4为4×4键盘的行扫描线。先使行扫描线输出高电平,然后读取列扫描线的状态,得到与按键横向位置对应的4位列码;如果是有键被按下时,那么对应的列扫描线必然会被读回高电平,如果是无键盘按下时,那么读取的列码必定全是0低电平。这也就可以判断有无按键的按下了。 SPCE061A获取4×4键盘键值原理单片机与该电路连接时,使用4个端口作为输出口,接4条行扫描线;使用4个端口作为输入口,接4条列扫描线。使用SPCE061A的IOA815八个端口作4×4键盘的扫描,IOA03接行扫描线,IOA47接列扫描线。IOA15IOA14IOA13IOA12SPCE061A IOA 11 IOA10 IOA9 IOA8L1L2L3L44X4键盘C1C2C3C4图 2-2 SPCE061A和4×4键盘电路连接图如上图中,IOA12IOA15设置为输出口,接行扫描线;IOA8IOA11设置为带下拉电阻的输入口,接列扫描线。按照4×4键盘的工作原理,先只把IOA12输出高电平,其他都输出低电平,扫描IOA8到IOA11四个输入口的值,如果每个输入口的值还是0;再把IOA13输出高电平,其他都输出低电平,扫描IOA8到IOA11四个输入口的值,如果每个输入口还没有检测到高电平;从IOA14输出高电平扫描,从IOA15输出高电平扫描,直到检测到高电平,保存扫描行值和列码。2.3 硬件连接硬件连接图如图 2-3,IOA0IOA7连接和6位数码管的ag、dp,IOA口的高八位IOA15IOA8连接4×4键盘的L1L4、C1C4,IOB15IOB12连接数码管的位信号14,IOB2IOB1连接数码管的位信号56,IOB0连接数码管的分隔符信号DD。即把JP4、JP5的引脚全部用跳线短接起来,用一根排线连接J28和JP7,注意J27和JP7的连接顺序连接顺序为:J27的第0号引脚连接JP7的C4引脚,J27的第7号引脚连接JP7的L1引脚。abcdefgDP6位数码管123456DDIOA0IOA1IOA2IOA3IOA4 IOA15IOA5 IOA14IOA6 IOA13IOA7 IOA12SPCE061AIOB15 IOA11IOB14 IOA10IOB13 IOA9IOB12 IOA8IOB2IOB1IOB0L1L2L3L44X4键盘C1C2C3C4图 2-3 硬件连接图第3章 软件设计方案3.1 设计步骤cyd,在工程里新建C语言文件main.c。2.拷贝并添加头文件SPCE061A.ccyd。,如图3-1所示。开始HI初始化系统取键值 确认键按下确认键按下标志1数字键按下且确认键没有按下当前显示的数字左移一位按键代表的数字显示在最右边的数码管上删除键按下且确认键没有按下当前显示的数字右移一位最左边的数码管显示0其他清看门狗图 3-1 主程序流程图4. Rebuild All。5.根据硬件连接图连接实验箱电路。6.下载程序到实验箱,运行。数码管的状态,分析是否和设计要求相符。3.2 设计程序由于程序过多,如附录所示。第4章 调试结果与分析4.1 调试结果给 4×4 键盘的每个键定义一个功能,其中把定义为 09 的键盘称为数字键,把定义成DEL的键称为删除键,把定义成ENT的键成为确认键,其他键称为保存键。如果是数字键按下,把代表数字显示在数码管上:按键按下时,6位数码管靠右边显示该键的代表数字;继续按键时,已经显示在数码管上的数字左移一位,按键代表的数字显示在最右边的数码管上。如果是删除键按下时,每按一次删除键显示在最右边数字被删除,其他数字右移一位,最右边一位显示 0,比方在第 5 个数码管上显示“8,在第 6 个数码管上显示“9,当按一次删除键时,在第 6 个数码管上显示“8,第 5 个数码管显示按键前第四个数码管显示的内容或者说删除了9。4.2 结果分析此设计验证了键盘输入在LED数码管上的显示的功能。可能会出现的问题就是在按键时候需要注意,当保存键按下时,不做任何操作。当按确认键时,按任何键将不起作用。结论与体会设计结论:1. 设计中我遇到了按键分辨的问题。2. 我采用的解决方法是自己在纸上记下自己定义的功能。3. 此次设计的优点是程序简单,不过缺点是操作繁琐。很难理清按键顺序。4. 我建议能够简化操作步骤,使电路图连接更清晰。操作起来能够得心应手。心得体会:单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、存放器和原理有一定地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,也许你看不明白,但这并不要紧,因为你还缺乏实践经验。现在单片机应用广泛,因此各个厂家分别推出了自己的单片机,按内部结构体系派系分:51系列、PIC系列、AVR系列、摩托罗拉等等!因为他们的编程方法和调试过程以及内部指令结构有一定的相似,只要学精通一款就OK了!尤其是用C语言编程,就几乎不用分什么派系,但是我们要选择一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,MCS-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比拟多,用的人也很多。参考文献1J.北京:北京航空航天大学出版社,2002.8 21版M.北京:北京航空航天大学出版社,2001.63用M.天津:天津大学出版社,2001.3 4李广第.单片机根底第1版M.北京:北京航空航天大学出版社,1999.55徐惠民.单片微型计算机原理与应用M.北京:北京邮电大学出版社,1996.2 6 袁勤勇.嵌入式系统构件M.北京:北京机械工业出版社,2002.附录#include "SPCE061A.h"#include "Dig.h"#include "Key.h"int main(void)int Ent_Flag = 0;unsigned int uiKey;unsigned int uiData6 = 1,0,0,0,0,1;uiData0 = 0;uiData5 = 0;Key_Init();DIG_Init();while(1)uiKey = Key_Get();switch(uiKey)Case KEY_0:if(Ent_Flag = 0)uiData0 = uiData1; uiData1 = uiData2;uiData2 = uiData3;uiData3 = uiData4;uiData4 = uiData5;uiData5 = 7; break;case KEY_1:if(Ent_Flag = 0) uiData0 = uiData1;uiData1 = uiData2;uiData2 = uiData3;uiData3 = uiData4;uiData4 = uiData5;uiData5 = 8; break; case KEY_2: if(Ent_Flag = 0) uiData0 = uiData1;uiData1 = uiData2;uiData2 = uiData3;uiData3 = uiData4;uiData4 = uiData5;uiData5 = 9; break;case KEY_3: break;case KEY_4:if(Ent_Flag = 0)uiData0 = uiData1; uiData1 = uiData2;uiData2 = uiData3;uiData3 = uiData4;uiData4 = uiData5;uiData5 = 4; break;case KEY_5: if(Ent_Flag = 0) uiData0 = uiData1;uiData1 = uiData2;uiData2 = uiData3;uiData3 = uiData4;uiData4 = uiData5;uiData5 = 5; break;case KEY_6: if(Ent_Flag = 0) uiData0 = uiData1; uiData1 = uiData2;uiData2 = uiData3;uiData3 = uiData4;uiData4 = uiData5;uiData5 = 6;break;case KEY_7: break;case KEY_8: if(Ent_Flag = 0) uiData0 = uiData1;uiData1 = uiData2;uiData2 = uiData3;uiData3 = uiData4;uiData4 = uiData5;uiData5 = 1;break;case KEY_9: if(Ent_Flag = 0) uiData0 = uiData1; uiData1 = uiData2;uiData2 = uiData3;uiData3 = uiData4;uiData4 = uiData5;uiData5 = 2;break;case KEY_A: if(Ent_Flag = 0) uiData0 = uiData1;uiData1 = uiData2;uiData2 = uiData3;uiData3 = uiData4;uiData4 = uiData5;uiData5 = 3;break;case KEY_B:break;case KEY_C: if(Ent_Flag = 0) uiData5 = uiData4; uiData4 = uiData3;uiData3 = uiData2;uiData2 = uiData1;uiData1 = uiData0;uiData0 = 0; break;case KEY_D: if(Ent_Flag = 0) uiData0 = uiData1; uiData1 = uiData2;uiData2 = uiData3;uiData3 = uiData4;uiData4 = uiData5;uiData5 = 0; break;case KEY_E: break;case KEY_F: Ent_Flag = 1;break;default:break;DIG_Set(1,g_DatauiData0); DIG_Set(2,g_DatauiData1); DIG_Set(3,g_DatauiData2); DIG_Set(4,g_DatauiData3); DIG_Set(5,g_DatauiData4); DIG_Set(6,g_DatauiData5); *P_Watchdog_Clear = 0x0001; 东北石油大学课程设计成绩评价表课程名称单片机的控制系统课程设计题目名称键盘输入在LED数码管上的显示学生姓名学号指导教师姓名职称序号评价工程指 标总分值评分1工作量、工作态度和出勤率按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。202课程设计质量课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写标准,图表完备正确。453创新工作中有创新意识,对前人工作有一些改良或有一定应用价值。54辩论能正确答复指导教师所提出的问题。30总分评语:指导教师: 年 月 日

    注意事项

    本文(单片机课程设计--键盘输入在LED数码管上的显示.doc)为本站会员(e****s)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开