本设计是16键盘简易计算器

上传人:hs****ma 文档编号:431085583 上传时间:2022-09-09 格式:DOC 页数:33 大小:280.50KB
返回 下载 相关 举报
本设计是16键盘简易计算器_第1页
第1页 / 共33页
本设计是16键盘简易计算器_第2页
第2页 / 共33页
本设计是16键盘简易计算器_第3页
第3页 / 共33页
本设计是16键盘简易计算器_第4页
第4页 / 共33页
本设计是16键盘简易计算器_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《本设计是16键盘简易计算器》由会员分享,可在线阅读,更多相关《本设计是16键盘简易计算器(33页珍藏版)》请在金锄头文库上搜索。

1、河南理工大学本科课程设计报告摘要 本设计是16键盘简易计算器,利用一片AT89C51单片机,其并行口外接44矩阵式键盘,和八位七段共阴极LED数码管。系统的功能是:(1)模拟的计算器能显示8位数字,开机运行时,只显示最低位为“0”,其余不显示;(2)44键盘分别表示:0到9,+,-,/,CL;(3)第一次按下,显示“D1”,第二次按下,显示“D1D2”,第三次按下,显示“D1D2D3”8个全显示完毕,再次按下按键时,给出 “嘀”的提示音;(4)可以对计算结果小于256的两个无符号数进行加、减、乘、除运算。单片机程序用汇编语言编写,经过Wave软件调试,生成HEX文件,再用Proteus软件进行

2、计算机仿真。程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字09和功能键与清零键的代号。动态显示程序,是先建立待显示缓冲区地址指针和共阴极数码管的段代码表;缓冲区内容通过查表得相应的段代码,再用位选信号动态扫描显示。主程序在初始化后调用键盘程序,再判断返回的值。若为数字09,则根据按键的次数进行保存和显示的处理,当按键次数超过八时,喇叭位置一;若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零,然后进入BCD码程序,将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程

3、序的最开始。目录1 概述3 1.1 用单片机实现的计算器 1.2 我做简易模拟计算器的过程 1.3 系统的基本功能2 系统总体方案及硬件设计4 2.1 总体方案42.2 硬件设计42.2.1 键盘电路设计4 2.2.2 动态显示电路53 软件设计7 3.1 键盘检测程序7 3.2 动态显示程序9 3.3 键盘散转程序103.3.1 数字的保存显示103.3.2 功能键与清零键103.3.3 BCD码程序114 Proteus软件仿真12 4.1 操作过程 4.2 运行效果图5 课程设计体会16参考文献17附:源程序18计算器模拟系统电路图32 1 概述1.1 单片机实现的计算器在我们的日常生活

4、中,计算器随处可见,从小商店到会计师的办公桌上,到处都离不开它。计算器的作用不可小视,即便是功能及其简单的计算器也大有用武之地,因为它能提高我们做各种小事情的效率,大大减少我们计算的出错率,从而把宝贵的精力和时间放在更重要的事情上面。大部分计算器都是用单片机实现的。单片机是指一个集成在一块芯片上的完整计算机系统。它主要是作为控制部分的核心部件,依靠程序,通过修改程序可实现不同的功能。具有体积小、质量轻、价格便宜,功能强,灵活方便等特点。1.2 我做简易模拟计算器的过程我在设计前,先明确系统的具体要求,再去查阅网络和图书馆的相关资料,了解情况,然后规划好大体的硬件方案和软件设计过程。画好草图后再

5、参考资料上的程序模块,将它们加以改造并组合,在计算机上调试与仿真。程序的主要模块是行列式键盘的扫描检测和数码管的动态显示以及按键的判别与处理部分。在编程的过程中遇到了不少困难,出现了不少错误,但我都一一想办法去解决,并在解决问题的过程中巩固了单片机课程的基础知识,提高了汇编语言的编写能力,并熟悉了调试软件Wave和仿真软件proteus的使用方法和常见问题,有了第一次设计单片机系统的宝贵经历。1.3 系统的主要功能本系统能显示八位数字,开机运行时只显示最低位为“0”, 其余不显示。44键盘分别表示:0到9,+,/,CL(清零)。第一次按下0到9键,显示“D1”,第二次按下0到9键,显示“D1D

6、2”,第三次按下0到9键,显示“D1D2D3” 8个全显示完毕时,再次按下按键时,会给出 “嘀”的提示音。 可以对计算结果小于256的两个无符号数进行加、减、乘、除运算。 2 系统总体方案及硬件设计21 系统总体方案 系统采用一片AT89C51芯片,44矩阵式键盘和八位共阴极数码显示管,P1口接键盘电路,负责接收键盘按下的信号;P2口接数码管位选信号端,负责依次选中各管显示;P0口接数码管abcdefg端,负责输出段代码,并且要接上上拉电阻;P3.0位接喇叭电路,负责在超出数码管显示范围时,发出警告。22 硬件电路设计 221 矩阵式键盘工作原理:矩阵式键盘是相对于独立式键盘而言的,也叫行列式

7、键盘,是当键数较多时为节省I/O点而采取的一种结构。首先,判断整个键盘上有无键按下。方法是:将列全输出为0,行全输出为1;然后读入行的状态,如果当键盘上没有键闭合时,行、列线之间是断开的,即行状态不会变成0;若行读入的状态全为1,则无键按下,若不全为1则有键按下。其次,若有键按下则逐列扫描,确定被按键的物理位置。方法是:依次将列线送低电平0,检查对应行线的状态;若行线全为1,则按键不在此列;若不全为1,则按键必在此列,且是与0电平行线相交的那个键。最后,计算键值。如图所示,键号是按从左到右,从上至下的顺序编排的,按这种编排规律,各行的行首键给以固定编号00H,04H,08H,0CH,并作为该行

8、的行号;列号依次为0,1,2,3。根据按键的物理位置,可得键值的计算公式:键值=行号+列号矩阵键值设置如图: 矩阵式键盘的构成方式如图: P1.4 P1.5 P1.6 P1.7 P1.0 P1.1 P1.2 P1.3 电路图说明:P1.0到P1.3分别接矩阵键盘的一二三四行,P1.4到P1.7分别接矩阵键盘的一二三四列。222 动态数码显示电路LED显示器具有耗电少,成本低廉,配置简单灵活,安装方便,耐振动,使用寿命长等优点。但显示内容有限,且不能显示图形,因而应用有局限性。LED的结构:如图,7段LED由7个发光二极管按“日”字形排列,所有发光二极管的阳极连在一起称共阳极接法,阴极连在一起称

9、为共阴极接法。LED的工作原理:当选用共阴极的LED显示器时,当某个发光二极管的阳极加入高电平时,对应的二极管点亮,实际上就是送一个用不同电平组合代表的数据字(显示码)来控制LED的显示,此数据称为字符的段代码或称为字型码。 字型码与LED显示器各段的关系为:D7 D6 D5 D4 D3 D2 D1 D0dp g f e d c b a 共阴极的段代码表如下: 0 1 2 3 4 5 6 7 8 9 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH LED显示器的显示方式有静态显示方式和动态显示方式。 所谓静态显示方式,就是在任意时刻 ,所有显示器都按照各自接受的

10、字行码同时显示对应的字符。静态显示方式的优点是显示程序简单,亮度高,无闪烁,不需经常扫描显示器,节省CPU时间。缺点是占用I/O口资源较多,所用元器件多,硬件成本高,功耗大。所以常用在显示器位数较少的单片机系统中。 动态扫描显示方式是单片机应用系统中最常用的显示方式之一。它是把所有显示器的同名字段相互并联在一起,并把它们接到字型口上。为了防止各个显示器同时显示出相同的字符,每个显示器的公共端还要受另一组信号控制,即把它们接到字位口上。在字型码和字位码两组信号的控制下,使各数码管循环轮流显示。虽然在任一时刻只有一位显示器被点亮,但当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象。这种

11、显示需要一个接口完成字型码的输出(字型选择),另一接口完成各数码管的轮流点亮(数位选择)。动态显示缺点是有闪烁,因为用元器件少,占I/O线少,必须扫描,花费CPU时间,编程复杂(有多个LED时尤为突出)。在系统电路中,P2.0到2.7分别接数码管位选端的8到1;P0.0到0.7分别接数码管显示端ABCDEFG和DP端。注意P0口要接上拉电阻RESPACK-8。3 软件设计31 键盘检测程序键盘检测程序的任务是:确定有无键按下,判断哪一个键按下,还要消除按键在闭合或断开时的抖动。 对照上面硬件设计部分里的键值图,将键盘功能设定如下:7894561230=CL 确定有无键按下的流程图如下: 开始 全行输出1 全列输出0行全为1? Y NA=0,无键按下A0,有键按下 返回键盘检测程序流程图如下: 开始动态显示程序DIR有键按下=1? N延时80ms Y 有键按下=1? N Y全行输出1,第1列送低电平行线全为1? N此列有键按下 Y此列无键按下循环结束否?列号加行号得键的位置,即键值 Y延时40ms N 列值加1下一列送低电平键释放否?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号