基于51单片机的简易计算器.doc

上传人:xin****828 文档编号:6701485 上传时间:2020-03-02 格式:DOC 页数:26 大小:453.55KB
返回 下载 相关 举报
基于51单片机的简易计算器.doc_第1页
第1页 / 共26页
基于51单片机的简易计算器.doc_第2页
第2页 / 共26页
基于51单片机的简易计算器.doc_第3页
第3页 / 共26页
点击查看更多>>
资源描述
摘要 目录 摘要 第一章 绪论 1 1 课题简介 1 2 设计目的 1 3 简易计算器系统简介 第二章 总体电路设计 第三章 主要模块介绍 3 1AT89C51 3 2LED 数码管的结构及工作原理 3 3 矩阵按键 3 4 蜂鸣器模块 第四章 计算器系统设计 4 1 计算器硬件 4 2 系统框图 4 3 程序设计 结语 参考文献 摘要 摘 要 课程设计教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的 在本次课程设计中 我以 MCS 51 系列单片微型计算机及其应用 课程中所学知识 为基础 设计了简易计算器 本系统以 MCS 51 系列中的 AT89C51 单片机为核心 能 够实现六位数的四则运算 该系统通过检测矩阵键盘扫描 判断是否按键 经数据 转换把数值送入数码管显示 本系统的设计说明重点介绍了如下几方面的内容 1 基于单片机简易计算器的基本功能 同时对矩阵键盘及 LED 数码管显示原 理进行了简单的阐述 2 介绍了系统的总体设计 给出了系统的整体流程框图 并对其进行了功能模 块划分及所采用的元器件进行了详细说明 3 对系统各功能模块的软 硬件实现进行了设计说明 关键词 MCS 51 单片机 计算器 加减乘除 摘要 第一章 绪论 1 1 课题简介 单片机由于其微小的体积和极低的成本 广泛的应用于家用电器 工业控制等 领域中 在工业生产中 单片机微型计算机是微型计算机的一个重要分支 也是颇 具生命力的机种 单片机微型计算机简称单片机 特别适用于控制领域 故又称为 微控制器 本系统就是充分利用了 51 芯片的 I O 引脚 系统统采用 MSC 51 系列单片机 AT89C51 为中心器件来设计计算器控制器 1 2 设计目的 通过本次工程实践 运用 MCS 51 系列单片微型计算机及其应用 所学知识及 查阅相关资料 完成简易计算器的设计 达到理论知识与实践更好结合 提高综合 运用所学知识和设计能力的目的 通过本次设计训练 可以使我们在基本思路和基本方法上对基于 MCS 51 单片机 的嵌入式系统设计有一个比较感性的认识 并具备一定程度的设计能力 1 3 简易计算器系统简介 本计算器是以 MCS 51 系列 AT89C51 单片机为核心构成的简易计算器系统 该系 统通过单片机控制 实现对 4 4 键盘扫描进行实时的按键检测 并把检测数据存储 下来 整个计算器系统的工作过程为 首先存储单元初始化 显示初始值和键盘扫 描 判断按键位置 查表得出按键值 单片机则对数据进行储存与相应处理转换 之后送入 LED 数码管显示 整个系统可分为三个主要功能模块 功能模块一 实时 键盘扫描 功能模块二 数据转换为了数码管显示 功能模块三 LED 数码管显示 摘要 第二章 总体电路设计 本次设计采用AT89C51单片机作为控制芯片 采用单片机上的按键来模仿输入信 号 通过键盘扫描将输入按键信号读入单片机 根据按键的号码进行不同的显示 并通过蜂鸣器发出信号 显示模块则利用六位八段数码管 进行按键号码的显示 本系统功能由硬件和软件两大部分协调完成 硬件部分主要完成按键输入的模拟 蜂鸣器的驱动 按键号码的显示等功能 而软件主要完成对按键输入的扫描 中断 对数据初始化及数码显示管的显示控制等功能 第三章 主要模块介绍 3 1 AT89C51 简介 AT89C51 是一种带 4K 字节 FLASH 存储器 FPEROM Flash Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS 8 位微处理器 俗称单片机 AT89C51 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机 单片机的可擦除 只读存储器可以反复擦除 1000 次 该器件采用 ATMEL 高密度非易失存储器制造技术 制造 与工业标准的 MCS 51 指令集和输出管脚相兼容 由于将多功能 8 位 CPU 和闪 烁存储器组合在单个芯片中 ATMEL 的 AT89C51 是一种高效微控制器 AT89C51 是它 的一种精简版本 AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价 摘要 廉的方案 图1 AT89C51芯片内部引脚图 3 2 LED 数码管的结构及工作原理 LED 数码管 LED Segment Displays 是由多个发光二极管封装在一起组成 8 字型的器件 引线已在内部连接完成 只需引出它们的各个笔划 公共电极 LED 数码管常用段数一般为 7 段有的另加一个小数点 还有一种是类似于 3 位 1 型 位数有半位 1 2 3 4 5 6 8 10 位等等 LED 数码管根据 LED 的接法不同分为共阴和共阳两类 了解 LED 的这些特性 对编程是很重要的 因为不同类型的数码管 除了它们的硬件电路有差异外 编程方法也是不同的 图 摘要 4 5 是共阴和共阳极数码管的内部电路 它们的发光原理是一样的 只是它们的电 源极性不同而已 颜色有红 绿 蓝 黄等几种 LED 数码管广泛用于仪表 时钟 车站 家电等场合 选用时要注意产品尺寸颜色 功耗 亮度 波长等 下面将介 绍常用 LED 数码管内部引脚图 图 2 这是一个八段两位带小数点 10 引脚的 LED 数码管 每一笔划都是对应一个字母表示 DP 是小数点 数码管分为共阳极的 LED 数码管 共阴极的 LED 数码管两种 下图例举的是共阳极 的 LED 数码管 共阳就是 8 段的显示字码共用一个电源的正 LED 数码管原理图示意如图 3 图 3 LED 数码管原理图 从上图可以看出 要是数码管显示数字 有两个条件 1 是要在 VT 端 3 8 摘要 脚 加正电源 2 要使 a b c d e f g dp 端接低电平或 0 电平 这样才能显 示的 共阳极 LED 数码管的内部结构原理图 图 4 共阳极 LED 数码管的内部结构原理图 共阴极 LED 数码管的内部结构原理图 摘要 图 5 共阴极 LED 数码管的内部结构原理图 表 1 显示数字对应的二进制电平信号 LED 数码管要正常显示 就要用驱动电路来驱动数码管的各个段码 从而显示出我 们要的数位 因此根据 LED 数码管的驱动方式的不同 可以分为静态式和动态式两 类 摘要 静态显示驱动 静态驱动也称直流驱动 静态驱动是指每个数码管的每一个段码都由一个单片机的 I O 口进行驱动 或者使用如 BCD 码二 十进位转换器进行驱动 静态驱动的优点是 编程简单 显示亮度高 缺点是占用 I O 口多 3 3 矩阵按键 键盘是单片机系统中最常用的人机对话输入设备 用户通过键盘向单片机输入 数据或指令 键盘控制程序需完成的任务有 监测是否有键按下 有键按下时 在 无硬件去抖的动电路时 应用软件延时方法消除按键抖动影响 当有多个键同时按 下时 只处理一个按键 不管一次按键持续多长时间 仅执行一次按键功能程序 矩阵按键扫描程序是一种节省 IO 口的方法 按键数目越多节省 IO 口就越可观 思路 先判断某一列 行 是否有按键按下 再判断该行 列 是那一只键按下 但是 在程序的写法上 采用了最简单的方法 使得程序效率最高 本程序中 如 果检测到某键按下了 就不再检测其它的按键 这完全能满足绝大多数需要 又能 节省大量的 CPU 时间 本键盘扫描程序的优点在于 不用专门的按键延时程序 提高了 CPU 效率 也 不用中断来扫描键盘 节省了硬件资源 另外 本键盘扫描程序 每次扫描占用 CPU 时最短 不论有键按下或者无键按下都可以在很短的时间完成一次扫描 图 6 矩阵键盘电路图 摘要 3 4 蜂鸣器模块 单片机的 P0 7 经三极管驱动扬声器 当有按键输入时 单片机 P0 7 输出低电 平 与此引脚相连的 PNP 型三极管基电极也为低电平 三极管导通 压电蜂鸣器两 端获得 5V 电压而鸣叫 当 P0 7 输出高电平时 三极管截止 蜂鸣器停止发声 蜂 鸣器模块如图 3 9 所示 图 7 蜂鸣器模块电路原理图 第四章 计算器系统设计 4 1 计算器硬件 AT89C51 单片机一片 4 4 键盘一个 6 位共阳极的八段数码管一个 连线和电 阻和开关若干 51 单片机的 P2 口作键盘口 其中 P2 4 P2 7 为键盘扫描输出线 P2 0 P2 3 为键盘扫描输入线 键盘由 4 4 共 16 个按键组成 10 个数字键 由 0 9 组成 5 个运算符号 加减乘除等于 组成 1 个清除键 作用相当于整体复位 摘要 6 个数码管用于显示当前数值的十万 万 千 百 十 个 P1 口接 6 个数码管的 八段 P0 口分别接 6 个数码管的公共端 P1 口输出数码管的字形码 P0 口输出数 码管的字位码 4 2 系统框图 1 主程序流程图 摘要 图 8 主程序流程图 2 键盘扫描流程图 图 9 键盘扫描流程图 4 3 程序设计 摘要 include define uchar unsigned char define uint unsigned int sbit dula P2 6 sbit wela P2 7 sbit beep P2 3 uchar temp key uchar fun long int num1 num2 res uchar aa dis uchar code table 0 x00 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x 6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 0 x71 uchar code weixuan 0 xdf 0 xef 0 xf7 0 xfb 0 xfd 0 xfe void delay unsigned char i uchar j k for j i j 0 j for k 125 k 0 k void bee beep 0 delay 255 delay 255 beep 1 摘要 key scan P3 0 xfe temp P3 temp temp if temp 0 xf0 delay 10 if temp 0 xf0 temp P3 switch temp case 0 xee key 0 break case 0 xde key 1 break case 0 xbe key 2 break case 0 x7e key 3 break 摘要 while temp 0 xf0 temp P3 temp temp P3 0 xfd temp P3 temp temp if temp 0 xf0 delay 10 if temp 0 xf0 temp P3 switch temp case 0 xed key 4 break case 0 xdd key 5 break case 0 xbd key 6 摘要 break case 0 x7d key 7 break while temp 0 xf0 temp P3 temp temp P3 0 xfb temp P3 temp temp if temp 0 xf0 delay 10 if temp 0 xf0 temp P3 switch temp case 0 xeb key 8 break case 0 xdb 摘要 key 9 break case 0 xbb key 10 break case 0 x7b key 11 break while temp 0 xf0 temp P3 temp temp P3 0 xf7 temp P3 temp temp if temp 0 xf0 delay 10 if temp 0 xf0 temp P3 switch temp 摘要 case 0 xe7 key 12 break case 0 xd7 key 13 break case 0 xb7 key 14 break case 0 x77 key 15 break while temp 0 xf0 temp P3 temp temp void Init num1 0 num2 0 摘要 wela 1 P0 0 xdf wela 0 dula 1 P0 table 1 dula 0 key 16 aa 0 dis 0 res 0 void dis play long int nm uchar a1 a6 long int shu shu nm if shu 0 wela 1 P0 0 xdf wela 0 dula 1 P0 table 1 摘要 dula 0 else for a6 0 a6 10 switch key case 10 Init break CE case 11 switch fun case 0 res num1 num2 dis 2 break case 1 res num1 num2 dis 2 break case 2 res num1 num2 dis 2 break case 3 res num1 num2 dis 2 break break case 12 fun 0 aa 1 shanshuo break case 13 fun 1 aa 1 shanshuo break case 14 fun 2 aa 1 shanshuo break case 15 fun 3 aa 1 shanshuo break else switch aa case 0 num1 num1 10 key 摘要 break case 1 dis 1 num2 num2 10 key break key 16 void main Init while 1 key scan check display 摘要 结语 课程设计是培养学生综合运用所学知识 发现 提出 分析和解决实际问题 锻炼 实践能力的重要环节 是对学生实际工作能力的具体训练和考察过程 随着科学技术 发展的日新日异 单片机已经成为当今计算机应用中空前活跃的领域 在生活中可 以说得是无处不在 因此作为二十一世纪的大学来说掌握单片机的开发技术是十分 重要的 回顾起此次单片机课程设计 我感慨颇多 的确 从选题到定稿 从理论到实 践 可以说得是苦多于甜 但是可以学到很多很多的的东西 通过这次课程设计使 我懂得了理论与实际相结合是很重要的 只有理论知识是远远不够的 只有把所学 的理论知识与实践相结合起来 从理论中得出结论 才能真正为社会服务 从而提 高自己的实际动手能力和独立思考的能力 通过这次课程设计使我得到了一次用专 业知识 专业技能分析和解决问题全面系统的锻炼 使我们在单片机的基本原理 单片机应用系统开发过程 以及在常用编程设计思路技巧 特别是 C 语言 的掌握 方面都能向前迈了一大步 为日后成为合格的应用型人才打下良好的基础 摘要 参考文献 微机原理及其应用 温淑焕 中国农业科学技术出版社 51 单片机快速上手 陈志旺 机械工业出版社 新概念 51 单片机 C 语言教程 郭天祥 电子工业出版社 51 系列单片机设计实例 楼然苗 北京航空航天大学出版社 MCS 51 系列单片微型计算机及其应用 第 4 版 孙育才 东南大学出版社 参考文献
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 其他分类 > 大学论文


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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