




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子设计结课论文 题 目 系 别 专 业 学生姓名 学 号 题目类型 题目类型 理论研究 实验研究 工程设计 工程技术研究 软件开发 年 月 日 基于基于 5151 单片机的简易计算器单片机的简易计算器 摘要 摘要 工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置 的 在本次工程实践中 我以 智能化测量控制仪表原理与设计 MCS 51 系列单片微 型计算机及其应用 课程中所学知识为基础 设计了简易计算器 本系统以 MCS 51 系列 中的 8051 单片机为核心 能够实现两位数的四则运算 该系统通过检测矩阵键盘扫描 判断是否按键 经数据转换把数值送入数码管动态显示 本系统的设计说明重点介绍了如下几方面的内容 1 基于单片机简易计算器的基本功能 同时对矩阵键盘及 1602 显示原理进行了简 单的阐述 2 介绍了系统的总体设计 给出了系统的整体流程框图 并对其进行了功能模块划 分及所采用的元器件进行了详细说明 3 对系统各功能模块的软 硬件实现进行了详细的设计说明 关键词 关键词 MCS 51 8051 单片机 计算器 加减乘除 目录 目录 第一章第一章 绪论绪论 1 1 2 设计目的 1 1 3 设计任务 1 1 4 章节安排说明 1 第二章第二章 计算器系统简介计算器系统简介 2 2 1 单片机发展现状 2 2 2 计算器系统现状 2 2 3 简易计算器系统简介 3 第三章第三章 主要器件简介主要器件简介 4 3 1 MCS 51 系列单片机简介 4 3 2 其它器件简介 7 3 2 1 1602 显示 7 3 2 2 矩阵按键 7 第四章第四章 计算器系统设计计算器系统设计 9 4 1 计算器硬件电路设计 9 4 2 2 主程序设计 9 结语 17 参考文献参考文献 18 第一章 绪论 1 第一章 绪论 1 1 课题简介课题简介 单片机由于其微小的体积和极低的成本 广泛的应用于家用电器 工业控制等领域 中 在工业生产中 单片机微型计算机是微型计算机的一个重要分支 也是颇具生命力 的机种 单片机微型计算机简称单片机 特别适用于控制领域 故又称为微控制器 本系统就是充分利用了 8051 芯片的 I O 引脚 系统统采用 MSC 51 系列单片机 Intel8051 为中心器件来设计计算器控制器 实现了能根据实际输入值显示并存储 计算 程序则是参照教材 至于位数和功能 如果有需要可以设计扩充原系统来实现 1 2 设计目的 通过本次工程实践 运用 智能化测量控制仪表原理与设计 MCS 51 系列单片微 型计算机及其应用 所学知识及查阅相关资料 完成简易计算器的设计 达到理论知识 与实践更好结合 提高综合运用所学知识和设计能力的目的 通过本次设计训练 可以使我们在基本思路和基本方法上对基于 MCS 51 单片机的嵌 入式系统设计有一个比较感性的认识 并具备一定程度的设计能力 1 3 设计任务 在本次工程实践中 主要完成如下方面的设计任务 1 简要综述单片机技术发展的国内外现状及数码管动态显示和矩阵键盘基本原理 2 掌握 MCS 51 系列某种产品 例如 8051 的最小电路及外围扩展电路的设计方法 3 了解单片机数据转换功能及工作过程 4 完成主要功能模块的硬件电路设计及必要的参数确定 5 用 protues 软件完成原理电路的绘制 6 完成系统设计说明书 1 4 章节安排说明 整个设计总共分为四个章节 第一章是前言部分 主要介绍了设计基于单片机简易 计算器的意义 目的及主要内容 第二章简要介绍了单片机发展的国内外现状及键盘扫 描 数据转换 和动态显示原理进行了简要的说明 第三章是器件简介 这一部分主要 介绍了系统的所用主要器件的选择 第四章是系统详细设计阶段 分为硬件设计和程序 设计 按照程序设计的各部分实现的功能不同 将整个软件系统分成了三个块 并对每 第二章 计算器系统简介 2 一个功能块所采用的元器件进行了详细介绍 此外还编写了主要功能模块的基本程序 详尽阐述了各模块的工作过程 还有总流程图 源代码 硬器件铺线图 第二章 计算器系统简介 3 第二章 计算器系统简介 2 1 单片机发展现状 单片机的发展趋势 低功耗 CMOS 化 微型单片化 主流与多品种共存 单片机从 8 位 16 位到 32 位 数不胜数 应有尽有 有与主流 C51 系列兼容的 也有不兼容的 但 它们各具特色 互成互补 为单片机的应用提供广阔的天地 纵观单片机的发展过程 可以预示单片机的发展趋势 大致有 1 低功耗 CMOS 化 MCS 51 系列的 8051 推出时的功耗达 630mW 而现在的单片机普遍都在 100mW 左右 随着对单片机功耗要求越来越低 现在的各个单片机制造商基本都采用了 CMOS 互补金属 氧化物半导体工艺 象 80C51 就采用了 HMOS 即高密度金属氧化物半导体工艺 和 CHMOS 互补高密度金属氧化物半导体工艺 CMOS 虽然功耗较低 但由于其物理特征决定 其工作速度不够高 而 CHMOS 则具备了高速和低功耗的特点 这些特征 更适合于在要 求低功耗象电池供电的应用场合 所以这种工艺将是今后一段时期单片机发展的主要途 径 2 微型单片化 现在常规的单片机普遍都是将中央处理器 CPU 随机存取数据存储 RAM 只读程 序存储器 ROM 并行和串行通信接口 中断系统 定时电路 时钟电路集成在一块单一 的芯片上 增强型的单片机集成了如 A D 转换器 PMW 脉宽调制电路 WDT 看门狗 有些单片机将 LCD 液晶 驱动电路都集成在单一的芯片上 这样单片机包含的单元电路就 更多 功能就越强大 甚至单片机厂商还可以根据用户的要求量身定做 制造出具有自 己特色的单片机芯片 此外 现在的产品普遍要求体积小 重量轻 这就要求单片机除了功能强和功耗低 外 还要求其体积要小 现在的许多单片机都具有多种封装形式 其中 SMD 表面封装 越 来越受欢迎 使得由单片机构成的系统正朝微型化方向发展 3 主流与多品种共存 现在虽然单片机的品种繁多 各具特色 但仍以 80C51 为核心的单片机占主流 兼 容其结构和指令系统的有 PHILIPS 公司的产品 ATMEL 公司的产品和中国台湾的 Winbond 系列单片机 所以 C8051 为核心的单片机占据了半壁江山 而 Microchip 公司的 PIC 精 简指令集 RISC 也有着强劲的发展势头 中国台湾的 HOLTEK 公司近年的单片机产量与日 俱增 与其低价质优的优势 占据一定的市场分额 此外还有 MOTOROLA 公司的产品 日 本几大公司的专用单片机 在一定的时期内 这种情形将得以延续 将不存在某个单片 机一统天下的垄断局面 走的是依存互补 相辅相成 共同发展的道路 第二章 计算器系统简介 4 2 2 计算器系统现状 计算器一般由运算器 控制器 存储器 键盘 显示器 电源和一些可选外围设 备及电子配件通过人工或机器设备组成 低档计算器的运算器 控制器由数字逻辑电 路实现简单的串行运算 其随机存储器只有一 二个单元 供累加存储用 高档计算 器由微处理器和只读存储器实现各种复杂的运算程序 有较多的随机存储单元以存放 输入程序和数据 键盘是计算器的输入部件 一般采用接触式或传感式 为减小计算 器的尺寸 一键常常有多种功能 显示器是计算器的输出部件 有发光二极管显示器 或液晶显示器等 除显示计算结果外 还常有溢出指示 错误指示等 计算器电源采 用交流转换器或电池 电池可用交流转换器或太阳能转换器再充电 为节省电能 计 算器都采用 CMOS 工艺制作的大规模集成电路 见互补金属 氧化物 半导体集成电路 并在内部装有定时不操作自动断电电路 计算器可选用的外围设备有微型打印机 盒式磁带机和磁卡机等 2 3 简易计算器系统简介 本计算器是以 MCS 51 系列 8051 单片机为核心构成的简易计算器系统 该系统通过 单片机控制 实现对 4 4 键盘扫描进行实时的按键检测 并把检测数据存储下来 整个 计算器系统的工作过程为 首先存储单元初始化 显示初始值和键盘扫描 判断按键位 置 查表得出按键值 单片机则对数据进行储存与相应处理转换 之后送入数码管动态 显示 整个系统可分为三个主要功能模块 功能模块一 实时键盘扫描 功能模块二 数据转换为了数码管显示 功能模块三 数码管动态显示 第三章 主要器件简介 5 第三章 主要器件简介 3 1 MCS 51 系列单片机简介 8051 是 MCS 51 系列单片机的典型产品 以这一代表性的机型进行系统的讲解 8051 单片机包含中央处理器 程序存储器 ROM 数据存储器 RAM 定时 计数器 并行接口 串行接口和中断系统等几大单元及数据总线 地址总线和控制总线等三大总 线 现在我们分别加以说明 中央处理器中央处理器 中央处理器 CPU 是整个单片机的核心部件 是 8 位数据宽度的处理器 能处理 8 位 二进制数据或代码 CPU 负责控制 指挥和调度整个单元系统协调的工作 完成运算和控 制输入输出功能等操作 数据存储器数据存储器 RAM RAM 8051 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元 它们是统一编 址的 专用寄存器只能用于存放控制指令数据 用户只能访问 而不能用于存放用户数 据 所以 用户能使用的 RAM 只有 128 个 可存放读写的数据 运算的中间结果或用户 定义的字型表 图 3 1 8051 内部结构图 程序存储器程序存储器 ROM ROM 8051 共有 4096 个 8 位掩膜 ROM 用于存放用户程序 原始数据或表格 定时定时 计数器计数器 ROM ROM 8051 有两个 16 位的可编程定时 计数器 以实现定时或计数产生中断用于控制程序 转向 并行输入输出并行输入输出 I O I O 口 口 8051 共有 4 组 8 位 I O 口 P0 P1 P2 或 P3 用于对外部数据的传输 全双工串行口全双工串行口 8051 内置一个全双工串行通信口 用于与其它设备间的串行数据传送 该串行口既 可以用作异步通信收发器 也可以当同步移位器使用 第三章 主要器件简介 6 中断系统 中断系统 8051 具备较完善的中断功能 有两个外中断 两个定时 计数器中断和一个串行中 断 可满足不同的控制要求 并具有 2 级的优先级别选择 时钟电路 时钟电路 8051 内置最高频率达 12MHz 的时钟电路 用于产生整个单片机运行的脉冲时序 但 8051 单片机需外置振荡电容 单片机的结构有两种类型 一种是程序存储器和数据存储器分开的形式 即哈佛 Harvard 结构 另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一 的结构 即普林斯顿 Princeton 结构 INTEL 的 MCS 51 系列单片机采用的是哈佛结构的 形式 而后续产品 16 位的 MCS 96 系列单片机则采用普林斯顿结构 下图是 MCS 51 系列单片机的内部结构示意图 3 2 图 3 2 MCS 51 结构图 MCS 51 的引脚说明 MCS 51 系列单片机中的 8031 8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构 右图是它们的引脚配置 40 个引脚中 正电源和地线两根 外置石英振荡器的时钟线两 根 4 组 8 位共 32 个 I O 口 中断口线与 P3 口线复用 现在我们对这些引脚的功能加以 说明 MCS 51 的引脚说明 MCS 51 系列单片机中的 8031 8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构 右图是它们的引脚配置 40 个引脚中 正电源和地线两根 外置石英振荡器的时钟线两 根 4 组 8 位共 32 个 I O 口 中断口线与 P3 口线复用 现在我们对这些引脚的功能加以 说明 如图 3 3 第三章 主要器件简介 7 图 3 3 双列直插式封装引脚图 Pin9 RESET Vpd复位信号复用脚 当 8051 通电 时钟电路开始工作 在 RESET 引脚 上出现 24 个时钟周期以上的高电平 系统即初始复位 初始化后 程序计数器 PC 指向 0000H P0 P3 输出口全部为高电平 堆栈指针写入 07H 其它专用寄存器被清 0 RESET 由高电平下降为低电平后 系统即从 0000H 地址开始执行程序 然而 初始复位不 改变 RAM 包括工作寄存器 R0 R7 的状态 8051 的初始态 8051 的复位方式可以是自动复位 也可以是手动复位 此外 RESET Vpd还是一复用 脚 Vcc掉电其间 此脚可接上备用电源 以保证单片机内部 RAM 的数据不丢失 见下图 3 4 为两种复位方式和两种时钟方式 Pin30 ALE 当访问外部程序器时 ALE 地址锁存 的输出用于锁存地址的低位字 节 而访问内部程序存储器时 ALE 端将有一个 1 6 时钟频率的正脉冲信号 这个信号可 以用于识别单片机是否工作 也可以当作一个时钟向外输出 更有一个特点 当访问外 部程序存储器 ALE 会跳过一个脉冲 如果单片机是 EPROM 在编程其间 将用于输入编程脉冲 Pin29 当访问外部程序存储器时 此脚输出负脉冲选通信号 PC 的 16 位地址 数据将出现在 P0 和 P2 口上 外部程序存储器则把指令数据放到 P0 口上 由 CPU 读入并 执行 Pin31 EA Vpp程序存储器的内外部选通线 8051 和 8751 单片机 内置有 4kB 的程 序存储器 当 EA 为高电平并且程序地址小于 4kB 时 读取内部程序存储器指令数据 而 超过 4kB 地址则读取外部指令数据 如 EA 为低电平 则不管地址大小 一律读取外部程 序存储器指令 显然 对内部无程序存储器的 8031 EA 端必须接地 第三章 主要器件简介 8 在编程时 EA Vpp脚还需加上 21V 的编程电压 3 2 其它器件简介 3 2 1 1602 显示 1602 液晶模块内部的字符发生存储器已经存储了 160 个不同的点阵字符图形 这些 字符有 阿拉伯数字 英文字母的大小写 常用的符号 和日文假名等 每一个字符都 有一个固定的代码 比如大写的英文字母 A 的代码是 01000001B 41H 显示时模块 把地址 41H 中的点阵字符图形显示出来 我们就能看到字母 A 因为 1602 识别的是 ASCII 码 试验可以用 ASCII 码直接赋值 在单片机程序中还可 以用字符型常量或变量赋值 如 A 3 2 2 矩阵按键 键盘是单片机系统中最常用的人机对话输入设备 用户通过键盘向单片机输入数据或 指令 键盘控制程序需完成的任务有 监测是否有键按下 有键按下时 在无硬件去抖 的动电路时 应用软件延时方法消除按键抖动影响 当有多个键同时按下时 只处理一 个按键 不管一次按键持续多长时间 仅执行一次按键功能程序 矩阵按键扫描程序是一种节省 IO 口的方法 按键数目越多节省 IO 口就越可观 思路 先判断某一列 行 是否有按键按下 再判断该行 列 是那一只键按下 但是 在程 序的写法上 采用了最简单的方法 使得程序效率最高 本程序中 如果检测到某键按 下了 就不再检测其它的按键 这完全能满足绝大多数需要 又能节省大量的 CPU 时间 本键盘扫描程序的优点在于 不用专门的按键延时程序 提高了 CPU 效率 也不用中 断来扫描键盘 节省了硬件资源 另外 本键盘扫描程序 每次扫描占用 CPU 时最短 不论有键按下或者无键按下都可以在很短的时间完成一次扫描 第四章 计算器系统设计 9 第四章 计算器系统设计 4 1 计算器硬件电路设计 8051 单片机一片 4 4 键盘一个 1602 lcd 一个 连线和电阻和开关若干 8051 单 片机的 P3 口作键盘口 P0 为 1602 接口 4 2 计算器程序设计 include define uchar unsigned char define uint unsigned int uchar j 在键盘检测函数中使用 判断是否有按键按下 有则加 1 sbit d P2 6 点按键判断 void delay uchar z 延时函数 uchar x y for x z x 0 x for y 110 y 0 y uchar code A 0 1 2 3 4 5 6 7 8 9 lcd 调用显示数组 uchar keyscan 键盘检测 uchar temp key j 0 if d 0 delay 100 if d 0 key 16 while d 0 j P3 0 xfe temp P3 if temp 0 xfe delay 100 第四章 计算器系统设计 10 temp P3 if temp 0 xfe j switch temp case 0 x7e key 3 break case 0 xbe key 2 break case 0 xde key 1 break case 0 xee key 0 break while P3 0 xfe P3 0 xfd temp P3 if temp 0 xfd delay 100 temp P3 if temp 0 xfd j switch temp case 0 x7d key 7 break case 0 xbd key 6 break case 0 xdd key 5 break case 0 xed key 4 break while P3 0 xfd P3 0 xfb temp P3 if temp 0 xfb 第四章 计算器系统设计 11 delay 100 temp P3 if temp 0 xfb j switch temp case 0 x7b key 11 break case 0 xbb key 10 break case 0 xdb key 9 break case 0 xeb key 8 break while P3 0 xfb P3 0 xf7 temp P3 if temp 0 xf7 delay 100 temp P3 if temp 0 xf7 j switch temp case 0 x77 key 15 break case 0 xb7 key 14 break case 0 xd7 key 13 break case 0 xe7 key 12 break while P3 0 xf7 return key sbit rs P1 0 定义 lcd 引脚 第四章 计算器系统设计 12 sbit rw P1 1 sbit en P2 5 void wc uchar a lcd 写指令函数 delay 5 rs 0 写指令 rw 0 写 P0 a en 0 delay 10 en 1 void wd uchar a lcd 写数据函数 delay 5 rs 1 写数据 rw 0 写 P0 a en 0 delay 5 en 1 unsigned long sum1 sum2 sum1 为第一个数 sum2 为第二个数 uchar g1 s1 小数位 float sum 1 sum 2 xs1 xs2 把按下的小数记为 xs void main uchar i k ji dian xsw1 xsw2 ts i 统计数字按下次数 k 为判断是否按下运算符并判断是 什么运算 ji 为按下总次数 显示地址用 dain 为记是否按下点 xsw 为输入的小数位的多少的标注 d 1 delay 15 wc 0 x38 delay 15 wc 0 x38 第四章 计算器系统设计 13 delay 15 wc 0 x38 wc 0 x0c wc 0 x06 wc 0 x01 wc 0 x80 0 x0f wd 0 x30 初始位为 0 wc 0 x80 0 x0f while 1 keyscan if j 0 当有按键按下 keyscan 函数使 j 才写入数据 if keyscan 15 如果输入为归零 k 0 sum1 0 sum2 0 ji 0 sum 1 0 sum 2 0 xsw1 0 xsw2 0 xs1 0 xs2 0 ts 0 dian 0 wc 0 x06 wc 0 x01 wc 0 x80 0 x0f wd 0 x30 wc 0 x80 0 x0f 归零 else if 9 keyscan switch keyscan case 10 wd A keyscan k 1 break case 11 wd A keyscan k 2 break case 12 wd A keyscan k 3 break case 13 wd A keyscan k 4 break else if 0 keyscan keyscan 16 如果按下为数字或小数点 第四章 计算器系统设计 14 ji lcd 显示用到 标记地址 if k 0 判断是否按下运算符 如果按下 把后面的数交给 sum2 if keyscan 16 如果按下为小数点 wd A 16 显示点 dian 表示已经按下点 sum 0 else if dian 0 wd A keyscan xsw2 按下多少位小数 xs2 xs2 10 keyscan else wd A keyscan sum2 a keyscan sum2 sum2 10 keyscan else if keyscan 16 如果按下为小数点 wd A 16 显示点 dian 表示已经按下点 else if dian 0 wd A keyscan xsw1 按下多少位小数 xs1 xs1 10 keyscan else 第四章 计算器系统设计 15 wd A keyscan sum1 a keyscan sum1 sum1 10 keyscan wc 0 x07 写指令 写一个屏幕右移 else if keyscan 14break case 2 sum 1 sum1 xs1 100 break case 3 sum 1 sum1 xs1 1000 break else sum 1 sum1 if xsw2 0 switch xsw2 case 1 sum 2 sum2 xs2 10 break case 2 sum 2 sum2 xs2 100 break case 3 sum 2 sum2 xs2 1000 break else sum
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理技能考核试题及答案分享
- 探讨2024年高级审计师保持专业敬业的态度试题及答案
- 护士职业压力的缓解方法初级护师考试试题及答案
- 大纲简介无人机驾驶员考试试题及答案
- 2025年中级会计考试的经典试题及答案
- 2024年审计师高频试题及答案
- 2024年审计师变化趋势与试题及答案
- 护理安全文化的建立与实践试题及答案
- 2025年建筑行业法规解读试题及答案
- 一级建造师考试常见误区试题及答案
- 2024年株洲国创轨道科技有限公司招聘笔试冲刺题(带答案解析)
- 2024年山东省潍坊市二模化学试卷
- “超说明书用药”管理规定及流程
- 基于微信小程序的运动健身管理系统的设计与实现
- AI+蛋白质行业研究报告 2024
- 利昕报废汽车回收拆解有限公司报废汽车回收拆解建设项目环评可研资料环境影响
- 农产品加工企业管理培训
- 校车驾驶员交通安全培训
- 我国军事科技发展
- 飞机维修员入门教程
- 超声引导下神经阻滞下肢篇
评论
0/150
提交评论