




免费预览已结束,剩余31页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 目目 录录 摘摘 要要 3 第一章第一章 绪论绪论 5 1 1 选题背景 5 1 2 计算器简介 5 1 2 1 基本结构 5 1 2 2 计算器的特点 5 1 2 3 计算器与计算机的区别 6 1 3 简易计算器的设计目标 6 第二章系统的工作原理第二章系统的工作原理 7 2 1 系统的框架图 7 2 2 系统的工作流程 7 第三章简易计算器的硬件及软件设计第三章简易计算器的硬件及软件设计 9 3 1 KEIL UVISION2 软件环境介绍 9 3 2 主要元器件介绍 9 3 2 1 矩阵键盘 9 3 2 2 单片机 AT89S52 10 3 2 3LED 数码管 11 3 3 各模块功能设计 11 3 3 1 键盘输入模块 11 3 3 2 控制模块 14 3 3 3 计算模块 16 3 3 4 显示模块 18 3 3 5 晶振与复位模块 18 第五章结束语第五章结束语 22 2 参考文献 23 附录一 24 附录二 25 3 摘摘 要要 此设计是一种基于单片机技术的简易计算器的方案 本次设计 所所提出的一种基于单片机技术的简易计算器的方案 采用具有数 据处理能力的中央处理器 CPU 随机存储器 RAM 只读存储器 ROM 多 种 I O 口和中断系统 定时器 计时器等功能集成到一块硅片上构成 的一个小而完善的计算机系统 单片机 配以 C 语言编写的执行 软件 能更好的解决计算器计算的问题 随着数字生活的到来 单 片机在生活中越显重要 单片机能将大量的逻辑功能集成与一个集 成电路中 而 C 编写的执行软件对数字的操作简单直观 本文讨论了单片机技术的计算器的构思 设计方案 工作原理 主要系统包括单片机 AT89C52 译码器 74 138 数据锁存器 74HC45 矩阵键盘 LED 显示器等 主要组成部分包括 键盘输入 模块 运算模块 控制模块 显示模块块 通过键盘输入数值单片 机进行运算后送往 LED 显示器显示 关键词 关键词 矩阵键盘 单片机 LED 显示器 译码器 数据锁存器 C 语言 4 Abstract This design is one of simple calculator based on single chip microcomputer technology of the plan the design of the proposed based on single chip processor technology of simple calculator plan the data processing ability has the central processor CPU RAM random access memory read only memory ROM a variety of I O mouth and interrupt system timer timer function integration to a piece of silicon wafer that constitutes a small and perfect computer system a single chip microcomputer match with the implementation of the software written in C language the better to solve the problem of calculation of calculator With the arrival of the digital life microcomputer in the life more important microcontroller can deliver a large amount of logic function integration and an integrated circuit and C write software to the execution of the digital easy operation This paper discussed the single chip microcomputer calculator of conception design working principle mainly including AT89C52 single chip microcomputer system decoder 74 138 data latches 74 HC45 matrix keyboard LED display etc The main components include the keyboard input module an operation module control module display module pieces Through the keyboard input numerical microcontroller operations to LED display after Keywords Matrix keyboard SCM LED display decoder data latches 5 第一章第一章 绪论绪论 1 1 选题背景 当今社会 随着科学技术的不断发展 人们需要计算的地方也越来越多 也越来越繁重 在科学界 有些科学计算大到百亿千亿或小到小数点后十位 又有些乘方开方 三角函数 N 次开方更是令人苦不堪言 在生活中 有一些 人在生意场上更是要进行快速而准确的计算 因此 计算器是人们一种不错的 选择 1 21 2 计算器简介计算器简介 计算器 calculator counter 一般是指 电子计算器 该名词由日文 传入中国 计算器能进行数学运算的手持机器 拥有集成电路芯片 但结构简 单 比现代电脑结构简单得多 可以说是第一代的电子计算机 电脑 且功能 也较弱 但较为方便与廉价 可广泛运用于商业交易中 是必备的办公用品之 一 1 2 11 2 1 基本结构基本结构 计算器一般由运算器 控制器 存储器 键盘 显示器 电源和一些可选 外围设备及电子配件通过人工或机器设备组成 低档计算器的运算器 控制器 由数字逻辑电路实现简单的串行运算 其随机存储器只有一 二个单元 供累 加存储用 高档计算器由微处理器和只读存储器实现各种复杂的运算程序 有 较多的随机存储单元以存放输入程序和数据 键盘是计算器的输入部件 一般 采用接触式或传感式 为减小计算器的尺寸 一键常常有多种功能 显示器是 计算器的输出部件 有发光二极管显示器或液晶显示器等 除显示计算结果外 还常有溢出指示 错误指示等 计算器电源采用交流转换器或电池 电池可用 交流转换器或太阳能转换器再充电 为节省电能 计算器都采用 CMOS 工艺制作 的大规模集成电路 见互补金属 氧化物 半导体集成电路 并在内部装有定时 不操作自动断电电路 计算器可选用的外围设备有微型打印机 盒式磁带机和 磁卡机等 6 襟抱堂网络策划机构评论 计算器这一小小的程序机器实际上是从计算机 中割裂出来的衍生品 但因其方便快捷的操作模式 已经被广泛应用于商业等 日常生活中 极大的方便了人们对于数字的整合运算 1 2 21 2 2 计算器的特点计算器的特点 从某种角度而言 广义的 计算机 概念是包括 电子计算器 的 电子 计算器中也有集成电路 但计算器的功能简便 价格更加便宜 利于携带与稳 定性好 1 2 31 2 3 计算器与计算机的区别计算器与计算机的区别 与电子计算机的最大区别在于 计算器只是简单的计算工具 有些机型具备函数计算功能 有些机型具备 一定的贮存功能 但一般只能存储几组数据 计算机则具备复杂存贮功能 控制功能 更加强大 在中国俗称 电脑 计算器和计算机一样都能够实现数据的录入 处理 存储和输出 但它所 以 区别于计算机的就是 它不能自动地实现这些操作过程 必须由人来操作完成 而计算机通过编制程序能够自动进行处理 所以以自动化程度来区别二者 就 在于是否需要人工干预其运行 实际上二者还有另一个本质性的区别 计算器使用的是固化的处理程序 只能完成特定的计算任务 而计算机借助操作系统平台和各类应用软硬件 可 以无限扩展其应用领域 也就是说 是否具有扩展性是二者的本质区别 单片机又称单片微控制器 它不是完成某一个逻辑功能的芯片 而是把一个计 算机系统集成到一个芯片上 概括的讲 一块芯片就成了一台计算机 在计算 机应用与智能化控制的科学家 工程师手中 它和计算机的本质相同 可以开 发出针对各类电子电气产品的应用 例如洗衣机 但对于用户来说 他们并不 需要知道洗衣机里的单片机的接口和编程语言 只要能操作洗衣服就行 因此 单片机用于某个具体的电子产品上就需要配合简洁方便的人机界面 用户只使 用它的特定功能 1 31 3 简易计算器的设计目标简易计算器的设计目标 7 1 通过矩阵键盘可输入 0 9 的数值和控制加 减 乘 除 清零 等于等功 能 2 输入的数值可依次在八位 7 段 LED 数码管上显示 3 可进行 0 99999999 之间的整数的四则运算 第二章系统的工作原理第二章系统的工作原理 2 12 1 系统的框架图系统的框架图 系统开始工作后 先由键盘输入键值 控制模块对键值进行检测录入存储 然 后经运算模块运算后送出显示 其框架图如下 键盘显示 控制 运算 2 22 2 系统的工作流程系统的工作流程 下图为系统总的工作流程 比较简单 涉及到具体模块的流程将在后面的内容 中讲到 图 2 1 8 开始 等待 输入键值 超过8位 C 输入第二个键值 清零 等待操作符 C 等待操作符 运算 显示结束 图 2 2 9 第三章简易计算器的硬件及软件设计第三章简易计算器的硬件及软件设计 3 13 1 keilkeil uvision2uvision2 软件环境介绍软件环境介绍 Keil uVision2 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语 言软件开发系统 使用接近于传统 c 语言的语法来开发 与汇编相比 C 语言 在功能上 结构性 可读性 可维护性上有明显的优势 因而易学易用 而且大 大的提高了工作效率和项目开发周期 他还能嵌入汇编 您可以在关键的位置嵌 入 使程序达到接近于汇编的工作效率 KEILC51 标准 C 编译器为 8051 微控制 器的软件开发提供了 C 语言环境 同时保留了汇编代码高效 快速的特点 C51 编译器的功能不断增强 使你可以更加贴近 CPU 本身 及其它的衍生产品 C51 已被完全集成到 uVision2 的集成开发环境中 这个集成开发环境包含 编 译器 汇编器 实时操作系统 项目管理器 调试器 uVision2 IDE 可为它们 提供单一而灵活的开发环境 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具 全 Windows 界面 使您能在很短的时间内就能学会使用 keil c51 来开发您的单片 机应用程序 另外重要的一点 只要看一下编译后生成的汇编代码 就能体会到 Keil C51 生成的目标代码效率非常之高 多数语句生成的汇编代码很紧凑 容易理 解 在开发大型软件时更能体现高级语言的优势 3 23 2 主要元器件介绍主要元器件介绍 3 2 13 2 1 矩阵键盘矩阵键盘 在键盘中按键数量较多时 为了减少 I O 口的占用 通常将按键排列成矩 阵形式 如图 1 所示 在矩阵式键盘中 每条水平线和垂直线在交叉处不直接 连通 而是通过一个按键加以连接 这样 一个端口 如 P1 口 就可以构成 4 4 16 个按键 比之直接将端口线用于键盘多出了一倍 而且线数越多 区别 越明显 比如再多加一条线就可以构成 20 键的键盘 而直接用端口线则只能多 出一键 9 键 由此可见 在需要的键数比较多时 采用矩阵法来做键盘是合 10 理的 矩阵式结构的键盘显然比直接法要复杂一些 识别也要复杂一些 上图中 列线通过电阻接正电源 并将行线所接的单片机的 I O 口作为输出端 而列线 所接的 I O 口则作为输入 这样 当按键没有按下时 所有的输入端都是高电 平 代表无键按下 行线输出是低电平 一旦有键按下 则输入线就会被拉低 这样 通过读入输入线的状态就可得知是否有键按下了 3 2 23 2 2 单片机单片机 AT89S52AT89S52 AT89S52 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统可编程 Flash 存储器 使用 Atmel 公司高密度非易失性存储器技术制造 与工业 80C51 产品指令和引脚完全兼容 片上 Flash 允许程序存储器在系统可编程 亦适于常规编程器 在单芯片上 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 使得 AT89S52 在众多嵌入式控制应用系统中得到广泛应用 图 3 1 图 3 2 11 3 2 3LED3 2 3LED 数码管数码管 LED 数码管实际上是由七个发光管组成 8 字形构成的 加上小数点就是 8 个 这些段分别由字母 a b c d e f g dp 来表示 当数码管特定的段加上电压后 这些特定的段就会发亮 以形成我们眼睛看到的 2 个 8 数码管字样了 如 显 示一个 2 字 那么应当是 a 亮 b 亮 g 亮 e 亮 d 亮 f 不亮 c 不亮 dp 不亮 LED 数码管有一般亮和超亮等不同之分 也有 0 5 寸 1 寸等不同的尺寸 小尺寸 数码管的显示笔画常用一个发光二极管组成 而大尺寸的数码管由二个或多个 发光二极管组成 一般情况下 单个发光二极管的管压降为 1 8V 左右 电流不 超过 30mA 发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管 发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管 常用 LED 数 码管显示的数字和字符是 0 1 2 3 4 5 6 7 8 9 A B C D E F 3 33 3 各模块功能设计各模块功能设计 3 3 13 3 1 键盘输入模块 键盘输入模块 1 本设计中键盘分布键值如下表所示 789 456 123 0C 2 工作原理 图 3 3 12 本设计采用 P3 口作为矩阵键盘输入口 开始工作后 单片机先对矩阵键盘的行 进行扫描若无键按下 即先使 P3 为 11110000 然后检测外来输入 若有输入 则可使四位的 0 其中一位置 1 即完成了按键行号的输入 列扫描原理同行扫 描相同 不过 P3 初始为 00001111 检测完行号与列号后 从而产生一个 8 位 二进制码 即可对键盘值进行输入 程序实现见附录 char jianpan 段 矩阵键盘的工作原理可以用以下框图简单表示 行扫描 列扫描 有键按下 返回键值 是 否 本设计键值与八位码对应关系 键值8 二进制位码十六进制 00001100018 10001010014 20010010024 30100010034 40001001012 50010001022 60100001042 图 3 4 13 70001000111 80010000121 90100000141 101000000181 111000001082 12 1000010084 13 1000100088 140100100048 C 150010100028 3 矩阵键盘与单片机的电路连接如下面两幅图所示 表 3 2 图 3 5 14 3 3 23 3 2 控制模块控制模块 控制模块控制着数字录入 数字录入是进行计算的前提 它是将从矩阵键盘上 输入的数值 运算符等录入单片机处理器进行处理 从而得出运算结果 程序 见附录二 KONGZHI 段 本设计数字录入模块工作流程如下 15 等待 键值 第一个键值为 运算符 个位为0十位为 空 旧结果不参与运算 个位为0 十位 为空 旧结果作为第一个 数参与运算 八位有效数字 开始 否 是 是 否 数值超过八位 清零 是 否 计算 运算符为 显示 否 等待 输入 结束 判断运算符 等待运算符输入 C C或第九位数是 是 否第二个数录入 否 C 是 否 图 3 6 16 3 3 33 3 3 计算模块计算模块 计算模块作为计算器的的核心模块共有加 减 乘 除四个部分 其设计 原理是先将键盘输入的 BCD 码数字转换为十进制数字 然后再对其进行运算 由于由于最后需要进行输出显示 所以我们对最终结果又做了一次转换将结果 转换为 BCD 码 以便在 LED 上显示 下面以加法为例对计算模块进行原理介 绍 完整程序段见附录二 jisuan 段 void jisuan char k char a 8 char b 8 char r 8 数组 r 用于存储计算结果的 BCD 码 long i x y i 0 x 0 存储第一个数 y 0 存储第二个数 for i 7 i 0 i 数值转化 将代表空格的 12 转化为数字 0 因为个位不 显示空格 默认为 0 所以不转化 while a i 12 a i 0 while b i 12 b i 0 x a 4 x 10000 x x x a 0 a 1 10 a 2 100 a 3 1000 a 5 100000 a 6 1000000 a 7 100 00000 将键盘输入的第一个数转换为十进制数 y b 4 y 10000 y y y b 0 b 1 10 b 2 100 b 3 1000 b 5 100000 b 6 1000000 b 7 100 00000 将键盘输入的第二个数转换为十进制数 17 if k 10 加法运算 x x y if x 99999999 大于 8 位 显示 Err r 0 11 r r 1 11 r r 2 10 E r 3 12 空格 r 4 12 r 5 12 r 6 12 r 7 12 else r 0 x 10 r 1 x 100 10 r 2 x 1000 100 r 3 x 10000 1000 r 4 x 100000 10000 r 5 x 1000000 100000 r 6 x 10000000 1000000 r 7 x 10000000 此段的功能是利用求余的方法将计算结果转换为 BCD 码 从以上程序段中我们可以看出 C 语言的简单与直观 再进行加法运算时只要输 入 就能对数字进行运算 若选用汇编语言 代码将变得很复杂 18 3 3 43 3 4 显示模块显示模块 本设计采用了八位 LED 数码管 可以显示 0 99999999 之间的任意整数 由于 LED 数码管有八个 若采用静态显示 则最少需要 56 根数据线与八根地址 线 这对只有 40 根引脚的单片机是不可能实现的 所以我们采用了动态扫描的 显示方法 其原理是不同时刻对不同位上的数码管进行选通 同时对其进行数 码输出 当扫描频率很高时 将不会看到数码关的闪烁 本设计利用了定时器 中断来实现间时显示 程序段见附录二 XIANSHI 段 电路图 为了使 LED 的显示能与单片机速度能够匹配 因此在 P1 口与 LED 之间加入 了 74HC245 锁存器 3 3 53 3 5 晶振与复位模块晶振与复位模块 图 3 7 图 3 8 19 本模块的晶振为 12MHz 其为单片机工作提供时钟频率 是单片机必不可少 的部件 另外 为防止单片机由于各种原因而出现死机现象 本模块专门设计了一 个独立的 RST 键 按下它可对单片机进行复位 20 第四章设计仿真第四章设计仿真 4 14 1 仿真软件仿真软件 ProteusProteus 介绍介绍 Proteus 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件 该软件中国总代理为广州风标电子技术有限公司 它不仅具有其它 EDA 工具 软件的仿真功能 还能仿真单片机及外围器件 它是目前最好的仿真单片机及 外围器件的工具 虽然目前国内推广刚起步 但已受到单片机爱好者 从事单 片机教学的教师 致力于单片机开发应用的科技工作者的青睐 Proteus 是世 界上著名的 EDA 工具 仿真软件 从原理图布图 代码调试到单片机与外围电 路协同仿真 一键切换到 PCB 设计 真正实现了从概念到产品的完整设计 是 目前世界上唯一将电路仿真软件 PCB 设计软件和虚拟模型仿真软件三合一的 设计平台 其处理器模型支持 8051 HC11 PIC10 12 16 18 24 30 DsPIC33 AVR ARM 8086 和 MSP430 等 2010 年即将增加 Cortex 和 DSP 系列处理器 并持续增加其他系列处理器模型 在编译方面 它也支持 IAR Keil 和 MPLAB 等多种编译器 4 24 2 仿真电路仿真电路 由于一些芯片如 74138 译码器不能在 Proteus 中仿真 因此在仿真时对原 电路图进行了一些改进 得到了仿真电路图 该电路仅用于仿真之用 21 由于电路图的不同 对程序也要略作修改 将原程序段中的 unsigned char code Pianxuan 0 x00 0 x01 0 x02 0 x03 0 x04 0 x05 0 x06 0 x07 改为 unsigned char code Pianxuan 0 x01 0 x02 0 x04 0 x08 0 x10 0 x20 0 x40 0 x80 编译生成 hex 文件 加载到单片机中即可仿真 图 4 1 仿真电路图 22 第五章结束语第五章结束语 经过多天的努力 终于完成了简易计算器的设计 为了是课程设计尽善尽 美 我们参考了大量的单片机教程 也从中学习了很多课堂上学不到的东西 简易计算机的设计是对我们这一学期的单片机学习的一个总结 从中我发 现了个人学习的很多问题 例如 拘泥于形式 举一反三的能力较差 不懂变 通 正是这些原因 致使我在做设计时走了很多弯路 把简单的问题复杂了 这在设计的程序段中可能会有体现 因此 如何更简单的解决问题仍是我今后 努力的目标 23 参考文献参考文献 1 解月珍等 信号产生电路 M 北京 电子工业出版社 1994 11 13 2 张友德等 单片微型机原理 应用与实验 M 上海 复旦大学出版社 1993 10 11 3 蒋辉平主编 单片机原理与应用设计 北京航空航天大学出版社 2007 24 附录一 简易计算器电路图 25 附录二 include include define LEDS 8 char jianpan void XIANSHI char dsp 9 0 0 12 12 12 12 12 12 12 void jisuan char k char c1 8 char c2 8 unsigned char code Pianxuan 0 x00 0 x01 0 x02 0 x03 0 x04 0 x05 0 x06 0 x07 unsigned char code MAXUAN 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 4 0 x92 0 x82 0 xF8 0 x80 0 x90 5 9 0 x86 0 xAF 0 xFF 0 x7F 0 xBF void main void char i j k c char a 8 b 8 TMOD 0 TL0 1000 256 TH0 1000 256 EA 1 ET0 1 TR0 1 KONGZHI do for i 1 i 9 i 26 dsp 0 jianpan if c 2 for j 2 j9 c 0 if dsp 0 0 else if dsp 0 9 break else for j i j 0 j dsp j dsp j 1 if i 9 do dsp 0 jianpan if dsp 0 14 dsp 0 10 dsp 1 0 for i 2 i 9 i dsp i 12 c 0 27 while dsp 0 15 else if dsp 0 14 dsp 1 0 for i 2 i 9 i dsp i 12 c 0 while dsp 0 15 if dsp 0 14 dsp 0 10 dsp 0 14 dsp 1 0 for i 2 i 9 i dsp i 12 c 0 while dsp 0 14 do if c 0 k dsp 0 for i 0 i 8 i a i dsp i 1 28 dsp 1 0 for i 2 i 9 i dsp i 12 c 1 goto KONGZHI else if c 1 for i 0 i 8 i b i dsp i 1 c 2 if dsp 0 15 jisuan k a b for i 0 i 8 i a i dsp i 1 k dsp 0 c 1 goto KONGZHI while dsp 0 15 jisuan k a b goto KONGZHI while
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Stearoyl-L-carnitine-chloride-Standard-生命科学试剂-MCE
- rac-Butoconazole-d5-Nitrate-生命科学试剂-MCE
- 报关员资格证考试题型及答案
- 第4课 希腊城邦和亚历山大帝国 课件 九年级历史上册
- 海水考试题及答案
- 保安队长笔试考试题目及答案
- 电测仪表理论知识培训课件
- 2025年筛分设备项目规划申请报告
- 高考历史考试题及答案:元代山西晋商的早期商业活动(如盐业)
- 高考历史考试题及答案:宋代福建地区的瓷器烧制(德化瓷)
- 夫妻流产同意协议书
- 《氢化工基础》课件-4.非均相分离
- 小儿麻醉护理课件
- DB64 2000-2024 自然资源调查监测技术规程
- DB22-T3409-2022-餐饮用醇基液体燃料安全使用技术规范-吉林省
- 项目经理考核试题及答案
- 车载信息娱乐系统的设计与开发-全面剖析
- 安检岗位培训课件模板
- 2025-2030中国水产饲料原料和产品行业市场现状供需分析及投资评估规划分析研究报告
- 腹膜透析换液操作医学
- 静电检测专业知识培训课件
评论
0/150
提交评论