




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计任务书学生姓名: 专业班级: 电信1205班 指导教师: 胡君萍 工作单位: 信息工程学院 题 目:基于键盘输入单元的单片机实验或仿真和C语言开发初始条件:具备单片机和C语言的理论知识;具备电子电路的基础知识和设计能力;具备查阅资料的基本方法;熟悉常用的电子器件;熟悉Protues、Keil软件的使用要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 设计一种基于单片机的行列式键盘输入模块,能检测并判断是否有键按下;对按键开关进行时延的消抖;确定按键的键值,并实现相应状态的输入显示。2. 要求进行电路实验或实验,并使用C语言进行程序的开发。时间安排: 二十二周一周,其中3天程序设计,2天程序调试指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录1概述11.1 设计要求11.2 意义与目标11.3 51单片机简介11.4 伟福6000编辑器31.5 软件简介31.6 PROUTE软件简介32 总体设计5 2.1 功能分析5 2.2 基本设计思路53 综合程序设计93.1 程序设计94 仿真与实务制作124.1 仿真124.2 实物制作145 实践结果分析与总结165.1 实践结果165.2 总结与分析17参考文献18武汉理工大学单片机应用实践课程设计说明书摘要 本次课程实践设计,我们设计的一种基于单片机的行列式键盘输入模块,该模块能够检测到是否有键按下,并且对按键的按下进行时延迟消抖,能确定按键的简直,并在数码显示管中显示相应状态的输入。因此此次设计我们设计的是4*4的矩阵键盘,每一个键盘代表一个数字,按键按下,电路进行消抖并在数码显示管中显示相应的输入,该电路包含了消抖电路,中断系统,键盘模块等。本次课程设计我们成功实现了键盘的输入与显示和消抖过程。熟练运用并掌握了单片机的相关知识。关键词:单片机 消抖 矩阵键盘 汇编语言 AbstractPractical design of this course, we design a microcontroller based determinant keyboard input module, the module can detect whether there is a key press, and to delay shake elimination of the press the button, can determine the key is, and in digital tube display the corresponding state of the input.So our design is the design of 4 * 4 matrix keyboard, each represent a number, the keyboard button press, circuit to eliminate shake and in digital tube display the corresponding input, the circuit contains shake circuit and interrupt system, keyboard module, etc.The course design of our keyboard input and display is implemented and shake elimination process.Skillfully use and mastered the related knowledge of single chip microcomputer.Key words: single chip microcomputer shakes elimination matrix keyboard assembly language武汉理工大学单片机应用实践课程设计说明书1概述1.1 设计要求设计任务:基于键盘输入单元的单片机实验或仿真和C语言开发 初始条件:具备单片机和C语言的理论知识;具备电子电路的基础知识和设计能力;具备查阅资料的基本方法;熟悉常用的电子器件;熟悉Protues、Keil软件的使用 1.2 意义与目标设计意义:通过采用Protue各个、 wave6000、 STC-ISP 等软件设计基于单片机语言开发的仿真,设计汇编语言程序以及电路图,利用上述软件进行仿真验证程序的正确性和电路的正确性与合理性。通过本次课设,掌握单品及与接口技术课程的知识,深入了解51单片机的工作原理与各个工作方式。并掌握汇编语言的编程方式,了解单片机的存储方式。单片机课程是电子信息专业必修的课程,该课程在将来的学习和工作中占有十分重大的地位,掌握单片机的课程知识才能为将来的工作和学习打下良好的基础。课程实践要求我们活学活用,必须将所学知识运用到电路中去,这是对于我们动手能力的一大考验。1.3 51单片机简介单片机,全称单片微型计算机(single-chip microcomputer),又称微控制器(microcontroller),是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。运算器由运算部件算术逻辑单元、累加器和寄存器等几部分组成。算术逻辑单元的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。算术逻辑单元能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器;控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作;主要寄存器包括:累加器A、数据寄存器DR、指令寄存器IR、指令译码器ID、程序计数器PC、地址寄存器AR等。 51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。52系列的单片机一般不具备自编程能力。由于近年来的发展,51单片机现已经几乎停产,因此我们将采用52系列的单片机进行设计。MCS-51单片机内部包含哪些主要逻辑功能部件有:(1)一个8位的微处理器CPU。(2)一个片内振荡电路和时钟电路,只需外面接上一晶振或输入振荡信号就可产生单片机所需要的各种时钟信号。 (3)4KB的片内程序存储器ROM,用于烧录运行的程序、常数数据。(4)128B的片内数据存储器RAM,在程序运行时可以随时写入数据和读出,用于存放函数相互传递的数据、接收的外部数据、最后结果以及显示的数据等。(5)可寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路。(6)4个8位并行I/O端,每个端口既可以用作输入,也可以用于输出。(7)两个16位的定时器/计数器,每个定时器/计数器可以设置为计数方式,用于对外部事件信号进行计数,也可以设置为定时方式,满足各种定时要求。(8)一个可编程全双工串行I/O口,用于单片机之间的串行通信,或者单片机与PC机、其它设备、其它芯片之间的串行通信。(9)5个中断源、两个优先级嵌套中断系统。图1 89C51引脚图1.4 伟福6000编辑器伟福仿真软件集成了源程序编辑、编译、调试、反汇编等功能于一体。可仿真MCS51系列、MCS196系列、Microchip PIC系列CPU。强大的编辑功能,可实时显示指令的正误,丰富的窗口,可实时显示调试过程的寄存器、程序代码、调试状态等信息。通过使用伟福软件编辑器设计汇编语言,方便成ASM和HEX文件,便于用于程序的调试和修改。1.5 软件简介 STC-ISP 是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用.本次课程实践,我们采用对单片机进行下载编程烧录。1.6 PROUTE软件简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计,迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。Proteus软件的特点是: (1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 (2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 (3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。 (4)具有强大的原理图绘制功能。Proteus是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。2 总体设计2.1 功能分析 根据题目要求设计一种基于单片机的行列式键盘输入模块,能检测并判断是否有键按下;对按键开关进行时延的消抖;确定按键的键值,并实现相应状态的输入显示。针对题目要求我们设计的是4*4的矩阵键盘,16个键盘按键按下分别在数码显示管中显示09十位数字和ABCDEF六个字母。在硬件安装要求上,要具有消抖电路,显示电路以及复位等要求。在程序设计上采用汇编语言进行设计。2.2 基本设计思路经过思考与设计,设计的总体框图如下:89C51单片机矩阵是键盘电路 译码与显示电路中断消抖电路图2 电路框图设计思路:当按键按下,由于按键是机械触点,因此在闭合域断开时就会产生抖动,从而造成系统的不稳定,因此我们电路中要求有消抖电路。按键按下,通过设计程序89C51单片机进行扫描和判断判断按键的位置进行处理,将对应的输入状态经过处理输出显示,由于输出一般为高低电平,因此需要译码电路和显示电路将输入状态显示出来。1. 矩阵键盘电路A按键输入的特点:键盘实质上是依序按键开光的组合。通常使用的是机械弹性开关,利用机械触电的通断,实现按下时开光导通,释放时开关断开的功能。按键触点的一端和单片机的I/O端口引脚连接,另一端与电压限号相连,触电的通断即可引起端口引脚上的电压变化,单片机通过程序读入I/O端口引脚电平信号便可判断按键的状态。如图所示。图3 按键基础电路当开关S未被按下是,P1.7输入高电平,S闭合后,P1.7输入为低电平。但是由于机械触电的弹性作用及电压突跳等愿意,在触电闭合与断开瞬间,会出现电压抖动。(其过程将在消抖电路中详细说明)本次设计中我们将采用行列式键盘接口,工作原理如下:在键盘中按键数量较多时,wile减少I/0口的占用,通常将按键排列成矩阵形式,如图所示的行列式键盘,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,本来一个端口如(P1口)最多只有8个按键,现在就可以构成4*4=16个按键,比她直接将端口线用于键盘多出一倍,而且线数越多,却别越明显。由此可见,在需要键数比较多时,可采用行列式法做键盘。 图4 4*4行列式键盘在实际电路中我们的接口电路由8051的P1口高、低思维构成4x4横列式键盘。键盘的列线通过电阻接正电源,另一端接单片机的输入口线,行线的一段接输出口线,另一端悬空,故P1.7P1.4作为键盘扫描输入口弦;P1.3P1.0做键盘输出口线。只有某键被按下时,相应的行线和列线才会接通。B 按键识别方法(列扫描法)如图键盘扫描程序流程图所示,键盘识别方法采用列扫描法2. 消抖电路原因分析:按键开光是电子设备实现人机对话重要器件之一。由于大本分按。键是机械触点,在触点闭合和断开时都会产生抖动,为了避免抖动引起误动作造成系统的不稳定,就要求消除按键的抖动,确保按键每按一次只只做一次响应。如图所示按键按下时产生的抖动波形如下。图5 抖动波形根据单片机相关的课程知识和查阅资料可知,按键消抖一般采用硬件和软件消抖两种方法。在微机系统中一般采用软件延时消抖的消抖方法,但在我们此次硬件设计中,我们采用的是软件消抖的方法,在仿真中采用消抖电路的设计如下。图6消抖电路 由于此次我们设计4*4的矩阵键盘,键盘按键较多,我们舍弃了硬件消抖的方法而采用软件方法去抖,既检测出键闭合后执行一个延时程序,产生5ms40ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要有5ms40ms的延时,待后沿抖动消失后才能装入该键的处理程序。软件去抖流程图如下:图7 去抖流程图此次设计的去抖程序如下所示: DELAY2: ;40ms延时去抖动子程序8*FA*2=40ms MOV R5,#08HL7: MOV R6,#0FAHL8: DJNZ R6,L8 DJNZ R5,L7 RET改程序设计成子程序模式,需要时进行调用。3数码显示电路在本次设计中,我们采用的是共阳极数码显示管。一个数码管有八段:A,B,C,D,E,F ,G,H,DP,即由八个发光二极管组成; 因为发光二极管导通的方向是一定的(导通电压一般取为1.7V),该发光二极管的公共端接+5V的电压。共阳极位选为高电平(即1)选中数码管, 各段选为低电平(即0接地时)选中各数码段, 由0到f的编码为: uchar code table= 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e。图8 数码显示管3 综合程序设计3.1 程序设计设计程序的流程:图9 设计流程图程序设计如下:ORH 0000H AJMP MANIN ORG 0080HMAIN: MOV DPTR,#TAB ;将表头放入DPTR LCALL KEY ;调用键盘扫描程序 MOVC A,A+DPTR ;查表后将键值送入ACC MOV P0,A ;将Acc值送入P0口 LJMP MAIN ;返回调用子程序反复循环显示KEY: LCALL KS ;调用检测按键子程序 JNZ K1 ;A不为0时,有键按下,继续 LCALL DELAY2 ;无键按下调用延时去抖动程序 AJMP KEY ;返回继续检测有无按键按下K1: LCALL DELAY2 LCALL DELAY2 ;有键按下继续延时去抖动 LCALL KS ;再一次调用检测按键程序 JNZ K2 ;确认有按下进行下一步 AJMP KEY ;无键按下返回继续检测K2: MOV R2,#0EFH ;将扫描初值送入 R2暂存 MOV R4,#00H ;将第一列的列值00H送入R4暂存,R4用于存放列值。K3: MOV P1,R2 ;将R2的值送入P1口L6: JB P1.0,L1 ;P1.0等于1跳转到L1 MOV A,#00H ;将第一行的行值00H送入ACC AJMP LK ;跳转到键值处理程序L1: JB P1.1,L2 ;P1.1等于1跳转到L2 MOV A,#04H ;将第二行的行值送入ACC AJMP LK ;跳转到键值理程序进行键值处理L2: JB P1.2,L3 ;P1.2等于1跳转到L3 MOV A, #08H ;将第三行的行值送入ACC AJMP LK ;跳转到键值处理程序L3: JB P1.3,NEXT ;P1.3等于1跳转到NEXT处 MOV A,#0cH ;将第四行的行值送入ACCLK: ADD A,R4 ;行值与列值相加后的键值送入A PUSH ACC ;将A中的值送入堆栈暂存K4: LCALL DELAY2 ;调用延时去抖动程序 LCALL KS ;调用按键检测程序 JNZ K4 ;按键没有松开继续返回检测 POP ACC ;将堆栈的值送入ACC RETNEXT: INC R4 ;将列值加一 MOV A,R2 ;将R2的值送入A JNB ACC.7,KEY ;扫描完成跳至KEY处进行下一回合的扫描 RL A 、 ;扫描未完成将A中的值右移一位进行下一列的扫描 MOV R2,A ;将ACC的值送入R2暂存 AJMP K3 ;跳转到K3继续KS: MOV P1,#0FH ;将P1口高四位置0低四位置1 MOV A,P1 ;读P1口 XRL A,#0FH ;将A中的值与0FH异或 RET ;子程序返回DELAY2: ;40ms延时去抖动子程序8*FA*2=40ms MOV R5,#014HL7: MOV R6,#0FAHL8: DJNZ R6,L8 DJNZ R5,L7 RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H, 86H, 8EHEND4 仿真与实务制作4.1 仿真综合仿真电路如下图所示:图10 电路仿真图行列式键盘电路:图11 矩阵键盘消抖电路:图12 消抖电路数码显示电路:图13 数码显示电路置位电路:图14 置位电路仿真中我们那采用的是硬件电路进行消抖功能,而在实际电路中,由于键数较多,我们改为使用软件去抖的方法。利用伟福软件编辑器编辑汇编语言后,生成.HEX文件,将其导入到Protue软件仿真的电路图中,进行程序的处理。运行程序后,按下键盘,89C51单片机进行扫面程序等处理。数码显示管显示相应的响应状态。结果如下图所示。当按下某个键值时有:图15按键9按下显示综上所述,电路设计合理,程序设计成功,能够正确的响应按键按下的状态,行列式按键电路正常运行。4.2 实物制作根据仿真电路图焊接元件,要求连线正确,连接合理。元件布局整洁美观。实物图如下所示:图16 行列式键盘正面图17 行列式焊接面图18 最小系统5 实践结果分析与总
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 14 学习笔记说课稿小学心理健康五年级华中师大版
- 2025年经典牛顿力学题库及答案
- 数字会议考试试题及答案
- 2024年中国石油兰州石化公司招聘笔试真题
- 19. Gorilla on the Run!说课稿小学英语3a典范英语(Good English)
- 2025年内蒙古事业单位(医疗岗)面试试题(3)附答案
- 失效机理图像识别-洞察及研究
- 七年级英语下册 Unit 8 Is there a post office near here第3课时SectionB1a-2c说课稿 (新版)人教新目标版
- 2025秋苏教版科学一年级上册教学设计(附目录)
- 农村网络基础设施建设评估-洞察及研究
- (2025年标准)清理乱账服务协议书
- 2025年五粮液笔试考试题及答案
- 2025年4月自考00155中级财务会计试题及答案含评分标准
- 道路工程培训课件
- DGTJ08-2004B-2020 建筑太阳能光伏发电应用技术标准
- 国庆假期大学生安全教育
- 呼吸内科出科汇报
- JJF 2267-2025场磨式大气电场仪校准规范
- 2024-2025学年安徽合肥七年级上册数学第一次月考试卷及答案
- 荣耀机试题库及答案
- 云南省云南师大附中2026届高考适应性月考卷地理及答案(一)
评论
0/150
提交评论