4×4 矩阵键盘计算器设计

长沙学院

课程设计说明书

题目4×4 矩阵键盘计算器设计系(部) 机电工程系

专业(班级) 机械设计制造及其自动化2班姓名

学号

指导教师程立志

起止日期2010.12.27-2011.1.3

计算机接口及应用课程设计任务书

系(部):机电工程系专业:08机械设计制造及自动化

指导教师:日期:2010-12-20

长沙学院课程设计鉴定表

摘要

近几年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结合,加以完善。

本任务是个简易得三位数的减法运算,用4×4 矩阵键盘及计算器设计,利用数码管实现255内的减法运算。程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。本任务重在设计构思与团队合作,使得我们用专业知识,专业技能分析和解决问题全面系统的锻炼。

关键词:单片机,AT89C51,矩阵键盘,数码管

ABSTRACT

In recent years, along with the rapid development of science and technology, the application of SCM is unceasingly thorough, it causes the traditional control test technology increasingly updates. In real-time detection and automatic control of single-chip microcomputer application system, often as a core component to use, only microcontroller aspects of knowledge is not enough, should according to specific hardware combined, and perfects.

This task is a simple three digits, subtract with 4 * 4 matrix keyboard and a calculator design, use digital tube realization within the 255 subtract. Program is according to the teaching material and within the network reference and compiled program, on the function is not perfect, restrictions also more. This task focuses on design conception and team cooperation, make us with professional knowledge, professional skills to analyze and solve problems of full system exercise.

Keywords:Single-chip,AT89C51,Matrix keyboard,digital tube

目录

摘要 ....................................................................................................................................... I ABSTRACT ................................................................................................................................ II 第1章课题概述 (1)

1.1 课题概述 (1)

1.2 课题要求 (2)

第2章系统设计 (3)

2.1 设计思路 (3)

2.2 框图设计 (3)

2.3 知识点 (3)

2.4 硬件设计 (4)

2.4.1 电路原理图 (4)

2.4.2 元件选择 (5)

2.4.3 PCB制版及效果 (9)

2.5 软件设计 (10)

2.5.1 程序流程图 (10)

2.6 系统仿真及调试 (11)

2.6.1 硬件调试 (11)

2.6.2 软件调试 (11)

2.6.3 软硬件调试 (11)

结论 (11)

参考文献 (14)

附录 (15)

第1章课题概述

1.1 课题概述

随着当今时代的电子领域的发展,尤其是自动化的控制领域,传统的分立元件或数字逻辑电路构成的控制系统正被智能化的单片机所取代。主要是因为单片机具有体积小、功能强、成本低、能耗低、应用面积广等优点。可以说,智能控制系统的核心就是单片机。单片机的应用已经贯穿到了我们生活各个方面。

本设计是基于51系列单片机的进行的计算模式的设计,可以完成矩阵键盘输入,并进行减的8位无符号数字的运算,在输入的同时数据要同步动态显示在LED显示器上。单片机总体功能的简介:

(1)智能产品:单片机与传统的机械产品相结合,使传统的机械产品结构简单,控制智能化,使机电成为一个有机的整体,减少人工的体力脑力活。目前,利用单片机构成的智能产品已广泛应用于家用电器、办公设备及各种工厂的机床。

(2)智能仪器:各种传感器、变送器、控制仪已普遍的采用单片机应用系统。它集测量、处理、控制等功能于一体,具有各种智能化功能,如储存、数据处理、查找等功能;

(3)测控技术:用单片机构成的各种工业控制系统中的数据采集系统具有工作稳定可靠、抗干扰能力强的优点;

(4)智能接口:在计算机系统中,除通用的外部设备外,还有许多外部通信、采集、多路分配管理、驱动控制等接口都是利用单片机与主机并行加工处理,大大的减少接口的通信密度,极大的提高了接口控制管理水平。

1.2 课题要求

根据题目《4×4 矩阵键盘计算器设计》,设计需满

足以下要求:

1、分别识别16个键盘值;

2、设定前10个为0到9,后面键值分别是A、B、C、D,—,最后一个键值为

确认键;

3、利用数码管实现255内的减法运算。

4、对4×4 矩阵键盘先进行全扫描,再进行行扫描。

5、在LED数码管里面动态显示扫描的内容。

第2章系统设计

2.1 设计思路

设计主要是利用AT89C51进行数据处理,利用4×4矩阵键盘的按键扫描,利用LED 数码管的动态显示。该设计首先是运用矩阵键盘的按键扫描,然后把扫描得到的键值进行译码,其次把译码所得的数值进行处理,最后将处理后的值进行动态显示。矩阵键盘和数码管分别接在P1和P0,这样大大的节约了单片机的I/O端口。

2.2 框图设计

图2.1系统结构框图

对4×4 矩阵键盘的按键进行全扫描和行扫描,把扫描的结果进行处理,处理后的结果放到LED数码管了里面进行动态显示。

2.3 知识点

本设计主要是运用到了《单片机原理及接口技术》里面所学的一些单片机的知识,有时钟电路及89C51 CPU时序、LED动态显示原理、汇编语言程序设计知识。

2.4 硬件设计

2.4.1 电路原理图

利用proteus 仿真电路,电路图2.2,晶振接在XTAL1、XTAL2口上,复位电路接在REST 口上,矩阵键盘的四列接在P1口的低四位,矩阵键盘的四行接在P1口的高四位,LED 数码管的段选码接口于P0口相连,LED 数码管的位选码接口于P2.5-P2.7相连。

1-89C51单片机芯片 2-开关 3-电源 4-接地 5—电容

6-晶振 7-数码管 8-电阻 图2.2 proteus 仿真电路图

1

2

3

4 5 7

8

6

2.4.2 元件选择

1、元件清单

表2.1电路元件清单

2、关键元件

a.AT89C51

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图片见下图:

图2.3 A T89C51

(1).主要特性:

·与MCS-51兼容

·4K字节可编程闪烁存储器

寿命:1000写/擦循环

数据保留时间:10年

·全静态工作:0Hz-24Hz

·三级程序存储器锁定

·128*8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

(2).管脚说明:

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址

信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下所示:

口管脚备选功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

(3).振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

b.矩阵键盘

首先判别键盘中有无键按下,由单片机I/O口向键盘送全扫描字,然后按读入列线状态;来判断。方法是:向行线输出全扫描字00H,把全部行线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根列线电平悲拉置低电平,从而使列输入不全为1.

判断键盘中哪一个按键悲按下是通过将行线逐行置低电平后,检查列输入状态实现的。方法是:依次给行线送低电平,然后检查所有列线状态,称行扫描。如果全为1,则所按下的键不在此行;如果不全为1,则所按下的键必在此行,而且是在与零电平列线相交的那个键。

2.4.3 PCB制版及效果

图2.4 PCB制图

图2.5 3D模型图

图2.3是利用proteus里面自带的软件绘制的PCB制版,图2.4是它的3D模仿出来的立体效果。

2.5 软件设计

2.5.1 程序流程图

图2.6

初始化后,程序开始进入主程序,1、进行按键判断,如果有键按下,继续往下执行,否则重新扫描;2、如果有键按下,延时5MS;3、再次按键判断,如果有键按下,继续往下执行,否则重新扫描;4、如果有键按下,确定按键位置;5、再次进行按键判断,如果有键按下,继续往下执行,否则,表示出错,重新扫面;6、如果有键按下,对按键译码;7、判断是否按键释放,如果释放,继续往下执行,否则等待;8、对送来的译码值进行数据处理;9、把处理的数据,放到LED数码管中动态显示。

2.6 系统仿真及调试

系统的调试主要通过proteus软件进行仿真。

单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。一般方法是排除明显的硬件故障,在进行综合调试,排除可能的软(硬)件故障。

2.6.1 硬件调试

硬件调试分为静态调试和动态调试,对于硬件调试而言,只要认真焊接,硬件一般不会出现什么问题的。

静态调试一般采用的工具是万用表,它是用户系统未工作时的一种硬件检测。

动态调试是在用户系统工作的情况下发现和排查错误的一种硬件检测。调试步骤为:首先把电路分为若干模块,调试过程中与该模块无关的元件可以不加考虑,这样可把故障限定在一定的范围内,故障清除后,把各个模块合在一起进行联调,即可完成整个硬件调试工作。

2.6.2 软件调试

软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。

2.6.3 软硬件调试

软硬件调试是指把调试无误的软件程序灌进单片机芯片内部,接通电源后,检查硬件工作是否有预期的效果,如果没有则需要检测软件是否在现实功能上有欠缺。若有错误,通过写软件来调试,直至达到预期效果,则设计圆满成功。

本课程设计调试结果如下图所示

图2.7 效果图

结论

很快一周多的时间又过去了,一个星期的课程设计对于我们初学者来说并不简单,毕竟我们对单片机这门课程花的时间很少,上课的时间和上机的时间仅仅那么多,所以我们对这门课程的知识只了解了一个大概。对于这一个星期的成就我感到很欣慰,能够自己编出一个程序运用到实践当中。

刚开始我们都不知道如何动笔,看到那么多的课题,心中在暗暗的想,我们真的能做好一个吗,纠结了好久才把课题选好。选好课题后也不只从何处下手,我们只得到处查询资料和网上借鉴。我们都知道这个课程设计的关键是流程图和程序的编写。我们不急不忙的看了很多相似的程序和流程图,和向老师的请教才将流程图给画出个大概来,当然万事开图难吗,第一步做好了以后。我们就得开始编写程序了,这是最关键的了,首先我们认真的看了书本上的相似程序,将这个程序看懂了解透。我们才开始着手编写程序,当然在编写程序的这个过程是最复杂最麻烦了。老是出现各种各样的问题,这就需要我们能静下心了,同样我们也得考验同学之间团结合作能力了。自己编的程序自己往往很难发现错误,我们便便请教班上的高手解答。实在不懂得就求助老师了。在各种方法使尽后,程序终于出来了,一个程序的编写就花了我们课程设计的一大半的时间。此后说明书的书写也是项不小的工程,要将所有的东西集合起来还真的不简单。老是发现缺这却那得。一个人书写后还得要几个人的审查才感最终确定。

当然经过这次课程设计我们学会了很多,对单片机这门课程有了更好的了解,这也是一次理论知识运用到实践当中的考验,同时也为我们以后的毕业设计提供了参考。

参考文献

[1]于殿泓,王新年. 单片机原理与程序设计实验教程[D].西安电子科技大学

出版社,2007:94-95

[2]戴佳,苗龙,陈斌.51单片机应用系统开发典型实例[D].中国电力出版社,

2005:20-47

[3]朱家建.单片机原理及应用.高等教育出版社[D],2002:171-181

[4]韩志军,沈晋源,王振波.单片机应用系统设计[D].机械工业出版社,

2005:120-129

[5]楼然苗,李光飞.51系列单片机设计实例[D].北京航空航天大学出版社,

2003:77-84

[6]李朝青.单片机原理及接口技术[D]. 北京航空航天大学出版社,2006:1-277

相关文档
最新文档