1、 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳毕业设计凌阳, 拇指 凌阳 (论文) 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 题 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 目 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌
2、阳 基于 AT89C51单片 机的计算器系统 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指
3、凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 姓 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 名 凌阳,
4、拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 XXX 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
5、 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 学 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 号 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 XXXXXXXX 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指
6、凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 专业班级 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 09通信工程 X 班 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳
7、, 拇指 凌阳凌阳, 拇指 凌阳 指导教师 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指凌阳 凌阳, 拇指 凌阳 XXXX 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳,
8、拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 学 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 院 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 信息 科学 与工程 学 院 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指
9、凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 完成日期 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2012 年 5 月 17 日 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指
10、凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 I 凌阳, 拇指 凌阳 摘 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 要 凌阳, 拇指 凌阳 当今社会的快速发展 , 拇指 科技的进步 , 拇指 人们的生活水平不断提高 。 食指 微电子的发展更是快速 , 拇指 人们开始使用开发电子产品 , 拇指 给生活、工作带来便利 。 食指 单片机的应用刚好适应了人们的需求 , 拇指 同时它更加贴近于生活 。 食指 计算器在人们生活中 , 拇指 是非常常见的一个电子产品 , 拇指 但是它还在发展中 , 拇指 以后一定会出现更加强大的计
11、算器 , 拇指 基于这样的理念 , 拇指 本次设计是基于单片机设计的简易计算器 。 食指 凌阳, 拇指 凌阳 该设计系统是一个实现加、减、乘、除的 简易 计算器 , 拇指 它的硬件主要由六 部分组成 , 拇指 一个 AT89C51 单片机芯片 , 拇指 一个八位共阳极的数码管 , 拇指 一个 4*4 的键盘 , 拇指 一个排阻 (10K)做 P0 口的上拉 电阻 , 拇指 一个晶振电路 , 拇指 一个复位电路 , 拇指 它可以实现结果低于 65535 的加、减、乘、除运算 。 食指 凌阳, 拇指 凌阳 报告详细介绍了 系统实现的过程 , 拇指 硬件的组成原理和软件实现思想 , 拇指 系统的难点
12、在于显示程序部分的设计跟键盘键值识别部分的设计 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 关键词: 计算器 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 AT89C51 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 数码管 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 汇编 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳 ,拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 III 目 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳,
13、拇指 凌阳 录 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳摘 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 要 I 凌阳, 拇指 凌阳 Abstract 错误 !未定义书签。 凌阳, 拇指 凌阳 第 1 章 概述 4 凌阳, 拇指 凌阳 1.1 MCS-51 单片机 应用 前景 4 凌阳, 拇指 凌阳 1.2 简易计算器实现的功能 错误 !未定义书签。 凌阳, 拇指 凌阳 1.3 本文工作 4 凌阳, 拇指 凌阳 第 2 章 系统总体方案及硬件设计 错误 !未定义书签。 凌阳, 拇指 凌阳 2.1 系统实现的思想 错误 !未定义书签。 凌阳, 拇指 凌阳 2.2
14、硬件的选择 错误 !未定义书签。 凌阳, 拇指 凌阳 2.2.1 MCS-51 芯片介绍 错误 !未定义书签。 凌阳, 拇指 凌阳 2.2.2 八位共阳极数码管 介绍 错误 !未定义书签。 凌阳, 拇指 凌阳 2.2.3 4*4 键盘 介绍 错误 !未定义书签。 凌阳, 拇指 凌阳 2.2.4 排阻 介绍 错误 !未定义书签。 凌阳, 拇指 凌阳 2.3 硬件的设计流程 错误 !未定义书签。 凌阳, 拇指 凌阳 第 3 章 系统软件设计 5 凌阳, 拇指 凌阳 3.1 数码管 显示程序设计 错误 !未定义书签。 凌阳, 拇指 凌阳 3.2 键盘识别程序设计 7 凌阳, 拇指 凌阳 3.3 运算
15、程序设计 错误 !未定义书签。 凌阳, 拇指 凌阳 3.4 蜂鸣器程序设计 错误 !未定义书签。 凌阳, 拇指 凌阳 第 4 章 实现结果 5 凌阳, 拇指 凌阳 第 5 章 总结与展望 9 凌阳, 拇指 凌阳 参考文献 14 凌阳, 拇指 凌阳 附 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 录 15 凌阳, 拇指 凌阳 致 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 谢 错误 !未定义书签。 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇
16、指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 4 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 概述 凌阳, 拇指 凌阳 1.1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 MCS-51 单片机 应用前景 凌阳, 拇指 凌阳 单片机是一种集成在电路芯片 , 拇指 是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断系统、定时器 /计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、 A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统 。 食指 凌阳, 拇指 凌阳 其中 AT8
17、9S51 单片机是一种新型的在线 可编程的单片机 , 拇指 内部有: 4K字节、 Flash 存储器 , 拇指 它使得单片机产品的软件可在线升级 , 拇指 也使得单片机的学习开发、程序的下载较过去方便许多 。 食指 凌阳, 拇指 凌阳 最近几年 , 拇指 单片机以其体积小、价格廉、面向控制等独特优点 , 拇指 在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用 。 食指 与此同时 , 拇指 单片机应用系统的可靠性成为人们越来越关注的重要课题 。 食指 影响可靠性的因素是多方面的 , 拇指 如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等 。 食指 其中系
18、统的抗干扰性能是系统可 靠性的重要指标 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 1.2 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 简易计算器实现的功能 凌阳, 拇指 凌阳 1.这次 设计的 计算器可显示 8位数字 , 拇指 开机后 , 拇指 初始化最低位显示 0, 拇指 其余的不显示 , 拇指 等待按键按下 。 食指 凌阳, 拇指 凌阳 2.第一次按键按下 , 拇指 最低位显示“ A1” ;第二次 按键 按下 ,原先的低位数值向高位移动 , 拇指 显示“ A1A2” , 拇指 第三次按键按下 , 拇指 显示“ A1A2A3” , 拇指 等到 8个数全部显示完毕后 ,
19、 拇指 这时再次输入一个数 , 拇指 不会再显示 , 拇指 仍然显示原先 的 8 个数 。 食指 凌阳, 拇指 凌阳 3.该计算器可以实现结果小于 65535 数据的两个无符号型数的 “ +、 -、 *、 /” 计算 , 拇指 如果输入的预计算的数超过 65535, 拇指 则运算时报错 , 拇指 显示“ ERROR” ,如果结果超过 65535 仍然报错 , 拇指 显示“ ERROR” , 拇指 以提示使用者输入错误 , 拇指 应清零后 再重新输入 。 食指 凌阳, 拇指 凌阳 4.运算时 , 拇指 如果输入错误 可按清零键清零 , 拇指 重新输入数据 , 拇指 运算过程中 , 拇指 如果运算
20、的表达式是加、减、乘、除混合运算 , 拇指 可以连续运算 , 拇指 不需按等号键 , 拇指 运算规则是从左到右 , 拇指 不 区分运算等级 , 拇指 即、 -、 *、 /认为是同级别的运算 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 5 1.3 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 本文工作 凌阳, 拇指 凌阳 本次设计工作 , 拇指 主要分为 2个部分: 凌阳, 拇指 凌阳 是数码管显示部分的设计 : 凌阳, 拇指 凌阳 这里采用动态显示 , 拇指 八位共阳极数码管 中的 A,B,C,D,E,F,G,DP 分别跟 AT89C51 的P0.0-P0.7 相连 , 拇
21、指 因为 P0 作为在 I/O方式使用的时候 , 拇指 必须接上拉电阻才能正常工作 , 拇指 这里我外接了一个排阻 , 拇指 P0 口在这里是作为字码控制端使 用;数码管的 1,2,3,4,5,6, 拇指 7,8 分别跟 AT89C51 的 P2.0-P2.7相连 , 拇指 P2 口作为数码管的为控制端 ,拇指 在数码管显示的过程中 , 拇指 可以减少相应的遍历次数 , 拇指 动态显示每一位 。 食指 凌阳, 拇指 凌阳 二 .键盘识别部分的设计 : 凌阳, 拇指 凌阳 计算器实现计算的基础是可以获取到用户键入的键值 , 拇指 所以键盘识别是整个系统中不可或缺的部分 。 食指 选用 4*4键盘
22、 。 食指 采用软件识别键值并执行相应的操作 , 拇指 键盘的第 0 行到第 3行依次与单片机的 P3.4 P3.7管脚相连 ,键盘的第 0列到第 3列依次与单片机的 P1.0 P1.3 管脚相连 ,程序运行时 , 拇指 一次扫描每一行 , 拇指 判断是否有键按下 , 拇指 每一行没按下的标志是全为 1, 拇指 如果不全为 1, 拇指 证明这一行有键按下 ,拇指 则进入键盘识别程序 , 拇指 之后数码管显示;如果全为 1, 拇指 则扫描下一行 , 拇指 步骤如上 ,拇指 凌阳, 拇指 凌阳 如果没有按键按下 , 拇指 则显示一个 0。 食指 等待按键按下 , 拇指 再进入扫描程序 。 食指 凌
23、阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 系统总体方案及硬件设计 凌阳, 拇指 凌阳 系统实现的思想 凌阳, 拇指 凌阳 简易计算机看起来简单 , 拇指 其实真正做起来 , 拇指 难度很大 , 拇指 要考虑的方面很多 , 拇指 尤其是键盘识别模块跟数码管显示模块 。 食指 首先进行显示程序的设计 , 拇指 这里我让 P2口作为位扫描 , 拇指 让 P0 口作为断码输出 , 拇指 分开工作 , 拇指 在调用数码管显示程序时 , 拇指 P2 口循环扫描每一位 , 拇指 同时 P0口针对性的输出 , 拇指 从
24、而实现显示的功能 。 食指 我把要显示的数据存放在八个显示缓存区中 , 拇指 通过控制八个缓存区来控制相应的显示内容 。 食指 显示时 , 拇指 根据八个缓存区中的数字调用相应的代码执行段 , 拇指 实现循环输出 。 食指 比如我们要显示 5678, 拇指 则将缓存区中的内容 , 拇指 从低位开始放入 08H、 07H、 06H、 05H, 拇指 其余的四个为放入 11H, 拇指 表示这四个数码管是熄灭状态 , 拇指 当执行显示后 , 拇指 显示 5678, 拇指高四位因为是熄灭状态 , 拇指 所以不显示 。 食指 程序初始化显示 0, 拇指 即最低位放 00H,其余6 的放 11H, 拇指
25、等待用户按键输入 。 食指 凌阳, 拇指 凌阳 然后对键盘识别程序设计 , 拇指 这里按键采用 4*4矩形键盘 , 拇指 通过扫描行、列来定位按键位置 , 拇指 分别是 4行、 4列 。 食指 在这里我把行接在 P3口的高四位 , 拇指 把列接在 P1口的 低 四位 。 食指 程序主要 思想 , 拇指 就是双重循环 , 拇指 外部遍历行 , 拇指 内部遍历对应的列 , 拇指 如果全为 1, 拇指 则表示这一行没有按键按下 , 拇指 换行继续扫描 , 拇指 否则 , 拇指 通过行跟列组合 ,拇指 找到按键的位置 , 拇指 对其按键的数字进行识别 , 拇指 如果是数字键 , 拇指 直接放入数据缓存
26、区中 , 拇指 再有数据加入 , 拇指 则原先的数据向高位移动一位 , 拇指 将刚输入的数放在最低位 ,拇指 凌阳, 拇指 凌阳 同时记录按键的次数 , 拇指 以便显示的时候统计 。 食指 如果是运算符 , 拇指 则先进行相应的运算 , 拇指 再显示结果 。 食指 凌阳, 拇指 凌阳 在这里 , 拇指 我把 +、 -、 *、 /运算做成了相 应的程序模块 , 拇指 这样使用的时候就可以直接调用 , 拇指 效率更高 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.2 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 硬件的选择 凌阳, 拇指 凌阳 2.2.1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
27、MCS-51 芯片介绍 凌阳, 拇指 凌阳 作为主流的单片机品种 , 拇指 MCS-51 系列单片机市场份额占有量巨大 , 拇指 PHILIPS 公司、 ATMEL公司等纷纷开发了以 8051 为内核的单片机产品 , 拇指 这些产品都归属于 MCS-51 单片机系列 。 食指 其内核是 8051CPU, 拇指 CPU 的内部集成有运算器和控制器 , 拇指 运算器完成 运算操作(包括数据运算、逻辑运算等) , 拇指 控制器完成取指令、对指令译码以及执行指令 。 食指 MCS-51 单片机的片内资源有:凌阳, 拇指 凌阳 1.中央处理器 : 凌阳, 拇指 凌阳 中央处理器 (CPU)是整个单片机的
28、核心部件 , 拇指 是 8 位数据宽度的处理器 , 拇指 能处理 8 位二进制数据或代码 , 拇指 CPU 负责控制、指挥和调度整个单元系统协调的工作 , 拇指 完成运算和控制输入输出功能等操作 。 食指 凌阳, 拇指 凌阳 2.数据存储器 (RAM): 凌阳, 拇指 凌阳 8051 内部有 128 字节数据存储器( RAM)和 21 个专用寄存器单元 , 拇指 它们是统一编址 的 , 拇指 专用寄存器有专门的用途 , 拇指 通常用于存放控制指令数据 , 拇指 不能用作用户数据的存放 , 拇指 用户能使用的 RAM 只有 128 个字节 , 拇指 可存放读写的数据 , 拇指 运算的中间结果或用
29、户定义的字型表 。 食指 凌阳, 拇指 凌阳 3程序存储器 (ROM): 凌阳, 拇指 凌阳 8051 共有 4K 字节程序存储器( ROM) , 拇指 用于存放用户程序和数据表格 。 食指 凌阳, 拇指 凌阳 4.定时 /计数器 (ROM): 凌阳, 拇指 凌阳 7 8051 有两个 16 位的可编程定时 /计数器 , 拇指 以实现定时或计数 , 拇指 当定时 /计数器产生溢出时 , 拇指 可用中断方式控制程序转向 。 食指 凌阳, 拇指 凌阳 5.并行输入输出 (I/O)口: 凌阳, 拇指 凌阳 8051 共有 4 个 8 位的并行 I/O 口 (P0、 P1、 P2、 P3), 拇指 用
30、于对外部数据的传输 。 食指 凌阳, 拇指 凌阳 6.全双工串行口: 凌阳, 拇指 凌阳 8051 内置一个全双工异步串行通信口 , 拇指 用于与其它设备间的串行数据传送 , 拇指 该串行口既可以用作异步通信收发器 , 拇指 也可以当同步移位器使用 。 食指 凌阳, 拇指 凌阳 7.中断系统: 凌阳, 拇指 凌阳 8051 具备较完善的中断功能 , 拇指 有五个中断源(两个外中断、两个定时 /计数器中断和一个串行中断) , 拇指 可基本满足 不同的控制要求 , 拇指 并具有 2 级的优先级别选择 。 食指 凌阳, 拇指 凌阳 8.时钟电路: 凌阳, 拇指 凌阳 8051 内置最高频率达 12M
31、Hz 的时钟电路 , 拇指 用于产生整个单片机运行的时序脉冲 , 拇指 但需外接晶体振荡器和振荡电容 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.2.2 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 八位共阳极数码管介绍 凌阳, 拇指 凌阳 为了显示 8 位数据 , 拇指 这里采用 8 位共阳极数码管显示数据 。 食指 LED 数码有共阳跟共阴两种 , 拇指 把这些 LED 发光二极管的正极接到一块(一块是拼成一个 8 字加一个小数字)而作为一个引脚 ,拇指 就叫 共阳的 , 拇指 相反的 , 拇指 就叫共阴的 , 拇指 那么应用时这个脚就分别的接 VCC 跟 GND。 食指 再把多个这样
32、的 8 字装在一起就成了多位的数码管了 。 食指 凌阳, 拇指 凌阳 2.2.3 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 4*4 键盘介绍 凌阳, 拇指 凌阳 本次设计采用 4*4 矩阵键盘 , 拇指 矩阵键盘又称为行列式键盘 , 拇指 它是用 4条 I/O线作为行线 , 拇指 4条 I/O 线作为列线组成的键盘 。 食指 在行线和列线的每一个交叉点上 , 拇指 设置一个按键 。 食指 这样键盘中按键的个数是 4 4个 。 食指 这种行列式键盘结构能够有效地提高单片机系统中 I/O口的利用率 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.2.4 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
33、排阻介绍 凌阳, 拇指 凌阳 为了适应 P0端口 , 拇指 要在 P0处接一个排阻 。 食指 排阻是将多个电阻集中封装在一起 , 拇指组合制成的 。 食指 排阻具有装配方便、安装密度高等优点 , 拇指 目前已大量应用在电视机、显示器、电脑主板、小家电中 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.3 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 硬件的设计流程 凌阳, 拇指 凌阳 8 凌阳, 拇指 凌阳 本次设计硬件主要分为六大模块 , 拇指 一个 AT89C51 单片机芯片 , 拇指 一个八位共阳极的数码管 , 拇指 一个 4*4的键盘 , 拇指 一个排阻 (10K)做 P0 口的上拉电
34、阻 , 拇指 一个晶振电路 , 拇指一个复位电路 。 食指 数码管的 A,B,C,D,E,F,G,DP 跟单片机的 P0.0 P0.7管脚相连 , 拇指P0 口做为单片机的字码控制端 , 拇指 数码管的 1, 拇指 2, 拇指 3, 拇指 4, 拇指 5, 拇指 6, 拇指 7, 拇指 8各引脚跟单片机的 P2.0 P2.7 管脚 相连; P0口工作在 I/O模式时 , 拇指 要接上拉电阻 , 拇指 这里 P0口又跟一个排阻相连 ; 4*4键盘的第 0行到第 3行依次与单片机的 P3.4 P3.7 相连 ,拇指 键盘的第 0列到第 3列依次与单片机的 P1.0 P1.3相连 。 食指 为了实现
35、单片机正常的工作状态 , 拇指 需在 XTAL1和 XTAL2 引脚连接一个晶体振荡器或者陶瓷振荡器 , 拇指 并接两个电容后接地即可 , 拇指 在使用时对于电容的选择有一定的要求 。 食指 凌阳, 拇指 凌阳 当外接晶体振荡器的时候 , 拇指 电容值一般选择 C1=C2=30+10pF 或 30-10pF; 凌阳, 拇指 凌阳 当外接陶瓷振荡器的时候 , 拇指 电容值一般选择 C1=C2=40+10pF 或 40-10pF; 凌阳, 拇指 凌阳 AT89C51 接 12MHZ 晶振 。 食指9 系统软件设计 凌阳, 拇指 凌阳 2.1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 数码管 显示设计
36、 凌阳, 拇指 凌阳 为了能让数码管动态显示 , 拇指 在这里把 30H-37H设置成数码管显示缓存区 , 拇指 38H-2FH设置成结果缓存区 , 拇指 同时为了显示的时候节省遍历的次数 , 拇指 把 40H 设置为输入数据个数判断位 。 食指 如果运算结果超出了 8 位 , 拇指 则显示“ error” 。 食指 调用显示程序时 , 拇指可以根据 40H的计数个数来显示位数 , 拇指 这样可以节省遍历的次数 , 拇指 提高效率 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 1.数码管显示流程: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.2 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
37、键盘识别程序设计 凌阳, 拇指 凌阳 键盘识别程序是本次设计中比较重要的一部分 , 拇指 在这里 , 拇指 P3 口的高四位我用来表示 行 , 拇指 P1 口的低四位用来表示列 , 拇指 在进行键盘识别时 , 拇指 首先 P3 口送 0E0H, 拇指 P1 口送 1, 拇指 再次读 P1 口的数据 , 拇指 因为 P1低四位表示对应的四列 , 拇指 如果 P1口低四位全为 1, 拇指 则表示该行没有按键按下 , 拇指 换下一行 , 拇指 再进行遍历 。 食指 如果不全为 1, 拇指 则表示有按键按下 , 拇指 则通过判断找到这个列的位置 , 拇指 然后行跟列数据进行组合 , 拇指 以便之后判断
38、具体的数值 。 食指 按键去抖动 , 拇指 判断是否已经放开 , 拇指 如 果松开则去判断具体的数 , 拇指 如果是数字则把结果放入结果缓存区中 , 拇指 调用显示程序 , 拇指 显示; 再调用键盘10 识别程序 , 拇指 如果再有数字 , 拇指 则把原先的数据向高位移一位 , 拇指 最低位放入新的键值 ,拇指 并将原来的数值乘上 10加上刚加入的数值 , 拇指 放入到结果缓存区中 。 食指 如果是运算符 ,拇指 则记录运算符标志 , 拇指 这里为了更形象的表示运算符 , 拇指 加法用 01H 表示 , 拇指 减法用 02H表示 , 拇指 乘法用 03H 表示 , 拇指 除法用 04H 表示
39、。 食指 并将结果缓冲区的数转移到中间结果缓冲区 , 拇指 将结果缓冲区清零 , 拇指 等待输入运算数据 , 拇指 当按等 号时 , 拇指 根据记录的运算符标志 , 拇指 判断是那种运算 , 拇指 执行运算结果 , 拇指 之后再调用显示程序 , 拇指 显示数据 。 食指 凌阳, 拇指 凌阳 键码 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 键值 键码 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 键值 EE 7 BE 1 凌阳, 拇指 凌阳 ED 8 BD 2 凌阳, 拇指 凌阳 EB 9 BB 3 凌阳, 拇指 凌阳 E7 / B7 - 凌阳, 拇指 凌阳 DE 4 7E CL 凌阳, 拇指 凌阳 DD 5 7D 0 凌阳, 拇指 凌阳 DB 6 7B = 凌阳, 拇指 凌阳 D7 * 77 + 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳