




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密级 NANCHANG UNIVERSITY 学学 士士 学学 位位 论论 文 设文 设 计 计 THESIS OF BACHELOR 2011 2015 年 中文题目 基于单片机的简易计算器 英文题目 Simple calculator based on single chip microcomputer 学 院 南昌大学共青学院 系 别 电子信息工程 专业班级 11 级电子信息工程 学生姓名 向广宇 学 号 8120211037 指导教师 谭金平 二 一 五 年 六 月 学士学位论文原创性声明 本人郑重声明 所呈交的论文是本人在导师的指导下独立进行研究所 取得的研究成果 除了文中特别加以标注引用的内容外 本论文不包含任 何其他个人或集体已经发表或撰写的成果作品 对本文的研究做出重要贡 献的个人和集体 均已在文中以明确方式标明 本人完全意识到本声明的 法律后果由本人承担 本人签名 日期 摘 要 近年来随着科技的飞速发展 以单片机技术为基础的电子产品在不断推广和应用 单片机技术的发展也带来了传统计算方式的改变 在目前市场上采用的计算器大部分 都是基于单片机技术设计的 采用单片机结合软件编程技术实现的电子计算器 可以 控制多种显示单元 同时可以根据需要方便对产品功能的升级和完善 考虑到价格成 本的约束 本系统中央处理器由市场上较为成熟的 51 单片机来承担 51 单片机价格低 廉操作简单 外围接口丰富 可以很好的实现系统的各项功能要求 键盘输入部分采 用 4 4 矩阵键盘来实现 16 个按键分别完成 0 9 数字的输入和加 减 乘 除 等号 5 个计算键的功能 最后一个按键实现清除计算内容的功能 显示 单元采用 LCD1602 液晶显示屏显示 液晶显示效果相比数码管更加稳定 无闪烁同时显示字符内容丰富 关键词 单片机 计算器 液晶显示器 Simple calculator design base on MCU Abstract In recent years with the rapid development of technology SCM technology based electronic products continue to spread and the application of SCM technology development has also brought a change in the traditional method of calculation In the current calculator market most of which are microcontroller based which is designed by single chip combination of software programming technology of electronic calculators you can control a variety of display units at the same time also easily to upgrade and improve product functionality required Taking into account constraints of the cost price the central processor of the system take use of the more mature microcontroller 51 in the market which has low price and rich peripheral interfaces also simple to operate so it can be very good to achieve the functional requirements of the system the keyboard input part 4 4 matrix keypad or 16 keys are 0 9 complete input and processing subtraction multiplication division equals five key functions to calculate calculate the final key to achieve clear content features the display unit using LCD1602 display LCD digital effects compared to more stable flicker free display rich character content simultaneously Keyword MCU calculator LCD display 目 录 第一章 前 言 5 1 1 课题背景 5 1 2 课题研究的目的和意义 5 1 3 计算器设计的任务和要求 6 第二章 简易计算器的方案设计 7 2 1 系统设计方案论述 7 2 2 系统设计方案比较与论证 8 2 2 系统设计方选择 9 第三章 系统硬件电路设计 10 3 1 系统电源接口电路设计 10 3 2 单片机最小系统设计 11 3 2 1 系统单片机选型 11 3 2 2 系统单片机最小系统电路设计 12 3 3 系统显示电路设计 13 3 3 1 系统显示器件选择 13 3 3 2 系统显示电路设计 14 3 4 系统矩阵键盘输入电路设计 15 3 5 系统整体电路设计分析 16 第四章 计算器的软件系统设计 18 4 1 系统软件编程环境介绍 18 4 2 系统主程序流程图 18 4 3 系统子程序介绍 20 第五章 系统的仿真与调试 22 5 1 系统仿真软件介绍 22 5 2 系统仿真结果分析 22 第六章 实物的制作与调试 25 6 1 电路的安装过程 25 6 2 系统的调试及问题 25 总结 27 致 谢 27 参考文献 29 附录 A 系统源程序 30 附录 B 系统电路图 38 附录 C 系统仿真图 39 附录 D 系统实物图 39 基于单片机的简易计算器设计论文 7 第一章 前 言 1 1 课题背景 在人们的日常生活中 计算器的使用已经和人们的生活密切相关 当今人们对日 常生活的便利性要求越来越高 传统的口算和珠算的计算方式由于诸多的不便已经不 能满足人们对便利性的要求 携带方便 使用便捷的简易计算器是目前市场上最受消 费者亲睐的产品 计算是我们日常生活中不可避免的一个环节 小到市场买菜 大到 买房置家 计算都会如影随形 因而计算器的开发具有广阔的应用市场 目前市场上 的计算器种类已经很多 但是大多数计算器功能相对较多 体积较大 价格相对较贵 不利于家庭的推广和使用 本文正是基于携带方便 功能简易 成本低廉为应用背景 进行开发和设计 最终设计完成一款能够实现简单计算功能的廉价计算器 1 2 课题研究的目的和意义 计算是伴随人们日常生活的一个概念 计算工具是一个从古至今一直存在而又不 断发展的 在遥远的古代人们用简单的数字的多少来计算 这种计算在我们如今的日 常生活中还能看到 当我们问三四岁的小孩简单的加法运算时 我们会发现大部分儿 童还是会伸出手指来数数的多少来进行简单的加减运算 虽然计算的方式古老 但是 却简单可行 在后来 中国珠算的发明与使用使得计算的速度和准确性得到很大的提 高 珠算在中国的计算领域有这悠久的历史 直到上个世纪 80 年代之前珠算还是大多 从事会计与相关计算领域方面较为常用的工具 然而随着科技的进步 电子计算器的 发明与使用是计算领域内的又一次革新 电子计算器无论在计算速度还是可靠性方面 相比珠算都有了很大的提高 另外电子计算器操作简单 不需要专业的学习和培训即 可操作 因而随着电子计算器的发明和使用 珠算很快便从中国一千多年的应用历史 中退出了市场 在现实生活中 我们总是会被各种繁琐的计算问题而烦心 由于生活节奏的提高 面对突然来到的计算问题 我们已经没有足够的时间和耐心拿上笔和纸进行计算了 计算器已经成为我们日常生活中不可或缺的计算工具了 在大多的工作场合我们会发 现每个人的办公工具中 计算器已经是必不可少的了 因而如何结合所学电子知识 开发一款价格低廉 操作简单 计算准确可靠性高的计算器具有和好的开发价值和应 用前景 设计完成一款价格低廉 操作方便的简易计算器对自己不仅具有很好的锻炼 基于单片机的简易计算器设计论文 8 意义 同时也具有很好的市场需求 适当的进行完善即可推广到市场上应用 1 3 计算器设计的任务和要求 本设计采用宏晶科技公司生产的STC89C52单片机作为系统的核心控制单元 然后以 此单片机为基础结合外围所需的硬件电路 最后在硬件设计平台上完成软件代码的验 证 最终完成简易数字计算器各项功能要求 此简易数字计算器主要电路模块包括 单片机最小系统 矩阵键盘电路 液晶LCD显示电路 系统电源电路等单元组成 系统 所使用的主要元器件包括 STC89C52单片机 4 4矩阵键盘 液晶显示屏LCD1602 DC 直流电源等 本设计主要实现的功能和要求包括 1 实现100000000以内的加法运算功能 2 实现100000000以内的减法运算功能 3 实现100000000的乘法运算功能 4 实现100000000的除法运算功能 5 系统计算时输入数字和符号以及运算结果 显示功能 6 系统输入错误时具有清除的功能 基于单片机的简易计算器设计论文 9 第二章 简易计算器的方案设计 2 1 系统设计方案论述 本次设计所要实现的功能主要有加减乘除的运算 能够实现上述运算的设计方案 进行简要的介绍 方案一 以 51 单片机为基础 结合键盘输入电路 电源转换电路 单片机复位电 路和晶体振荡电路以及液晶显示电路进行设计完成 其硬件设计框图如图 2 1 所示 图 2 1 方案二 以 51 单片机为基础 结合键盘输入电路 电源转换电路 单片机复位电 路和晶体振荡电路以及 LED 数码管显示电路进行设计完成 其硬件设计框图如图 2 2 所示 图 2 2 STC89C52 单 片机 晶体振荡 电路 单片机复 位电路 矩阵键盘 输入电路 LCD 液晶显示电路 系统电源转换 电路 晶体振荡 电路 单片机复 位电路 矩阵键盘 输入电路 Led 数码管显示电路 系统电源转换 电路 STC89C52 单 片机 基于单片机的简易计算器设计论文 10 方案三 以 ARM 为平台 结合电源转换电路以及液晶 LCD 显示电路进行设计完成 其硬件设计框图如图 2 3 所示 图 2 3 2 2 系统设计方案比较与论证 方案一以 51 单片机为核心结合液晶显示电路来实现具有以下优点 1 STC89C52 单片机是目前市场上主流的 51 单片机型号 其价格低廉 IO 端口丰 富 在很多中低端的电子产品上具有很广泛的应用 2 以 STC89C52 单片机作为方案设计的控制核心 开发相对容易 开发周期相对 较 短 可以有效的节约开发时间 3 采用液晶 LCD 作为系统的显示界面 液晶显示效果稳定 显示字符数相对较多 而且能够很好的显示运算符号 方案二相比方案一来讲 采用 LED 数码管显示界面代替 LCD 液晶 相比方案一成本 价格更为低廉 开发费用和周期更短 不足之处是数码管显示效果存在一定的闪烁现 象 同时显示字符数有限 如果计算的位数较多就需要级联较多个数的数码管才能实 现 同时市场上通用的数码管一般不能直接显示运算符 如需要直观的显示运算符则 需要单独定做 这样又会使得设计成本得到提高 方案三相比前两个方案讲 外围电路更加简单 由于 ARM 芯片内部已经集成了晶体 振荡电路和看门狗复位电路 因而不需要在单独外接复位电路和晶振电路 这样使得 外围电路更加简单 可以有效的缩减线路板的体积 使得整个设计体积更小 携带更 为方便 除此之外 ARM 处理器处理速度相比 51 单片机更为快捷 以 ARM 为控制核心 STM3 的 ARM 平台 矩阵键盘输 入电路 LCD 液晶显示电路 系统电源转换 电路 基于单片机的简易计算器设计论文 11 的计算器反应灵敏度更高 方案三的不足之处是 ARM 处理器价格相对较高 开发难度 大 开发周期长 2 2 系统设计方选择 基于本文是以价格低廉 开发容易和使用方便为开发背景的前提下 经过对上述 3 种方案的论证和比较 方案一更能符合课题开发的背景 因而本文设计方案最终以方 案一为基础进行设计 基于单片机的简易计算器设计论文 12 第三章 系统硬件电路设计 3 1 系统电源接口电路设计 系统电源电路主要完成供电系统的稳压滤波和开关控制功能 此部分电路如图 3 1 所示 图 3 1 系统电源管理电路 图 3 1 为系统 5V 输出电压管理电路 其中 J1 为 DC005 电源输入接口 用于连接 DC9V 直流电源 SW1 为系统电源开关 用于控制整个系统的电源的开启与关闭 C1 为 电解电容 一般取值在 220uf 到 680uf 之间 此电解电容是用于滤除电源线上存在的 高频干扰 U1 为三端稳压芯片 LM7805 LM7805 输入电压范围在 7 16V 情况下 稳定输 出直流 5V 电压 输出稳定度在 5V 正负 0 05mv 的波动内变化 能够很好的保证单片机 系统电压的稳定性 电容 C1 和 C4 分别用于滤除输出电压上存下的低频干扰和高频干 扰 LED 为电源指示灯 当系统电源输出正常的情况下 LED 灯点亮 电阻 R1 为 1K 阻值 的限流电阻 保证 LED 在允许的工作电流下工作 避免 LED 被电流过高造成的损坏 D0 为整理二极管 在此是为了防止输入电源极性反接造成后续电路器件的烧坏 当电 源极性反接时 二极管 D0 的反向截止功能可以对后续电路进行有效的保护 3 2 单片机最小系统设计 3 2 1 系统单片机选型 单片机为整个系统的控制核心 单片机型号的选择好坏直接会影响到整个系统设计 基于单片机的简易计算器设计论文 13 的成败 因而选择一款合适的单片机对整个系统设计的成功与否起着至关重要的作用 目前市场上单片机种类型号千差万别 从基础的 8 位单片机到高端的 64 位单片机 价 格从几元到上百元不等 选择单片机要首先要考虑价格因素 由于本系统设计是简易 型计算器 因而功能相对较少 不需要较多的 IO 端口以及强大的存储空间 所以不需 要选择价位较高的高端的单片机 考虑到目前市场上应用较为广泛的 51 位单片机完全 能够达到设计的功能要求 因而本设计首选单片机是 51 单片机 宏晶科技公司生产的 STC89C52 单片机是目前国产单片机中性价比较高的型号 此单片机价格低廉 端口丰 富完全兼容国外大品牌 Atmel 公司的 AT89S52 单片机 价格相比 Atmel 公司的单片机 只有其价格的一般 鉴于以上分析 本文最终选择宏晶科技的 STC89C52 单片机作为简 易计算器的主控单片机 STC89C52 单片机的引脚图如图 3 2 所示 图3 2 STC89C52引脚图 STC89C52单片机具有以下标准功能 与MCS 51单片机产品兼容 8K字节在系统可编程Flash存储器 1000次擦写周期 全静态操作 0Hz 33Hz 三级加密程序存储器 32个可编程I O口线 三个16位定时器 计数器 八个中断源 全双工UART串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 基于单片机的简易计算器设计论文 14 看门狗定时器 双数据指针 掉电标识符 3 2 2 系统单片机最小系统电路设计 单片机最小系统电路是整个计算器系统的核心 单片机最小系统电路设计的好坏 直接决定整个系统的设计成败 因而在设计单片机最小系统电路之前一定要对单片机 的工作原理有一个系统的学习 要知道单片机正常工作所需的必备条件 要了解单片 机系统电路的组成以及各部分的主要功能 单片机最小系统电路一般由单片机 晶振 电路 复位电路组成 此部分设计完成的电路如图 3 3 所示 图 3 3 单片机最小系统电路图 如图 3 3 所示 其中 Y1 为 11 0592M 的晶体振荡器 选择 11 0592M 是为了便于计 算单片机运行的周期 Y1 两端的电容 C7 C8 接在放大器的反馈回路中构成并联振荡 电路 电容 C7 和 C8 应选择瓷片电容 至于电容容值的大小没有严格的限定 只是电 容容量的大小会轻微影响振荡频率的高低 振荡器工作的稳定性 起振的难易程度及 温度的稳定性 如果使用石英晶体 推荐电容使用 30pF 士 l0pF STC89C52 单片机为高电平复位使能 在单片机最小系统电路设计中需要保证上电 的时候能够复位单片机 同时当系统运行 过程中出现跑飞或者进入死循环的时候能够 通过相应的按键实现单片机的复位 因而单片机复位需要有上电复位和按键复位两种 复位方式 复位电路设计如图 3 3 所示 其中 S0 为复位按键 上电复位的工作原理为 通电时 电容两端相当于短路 于是单片机的复位引脚上为高电平 然后电源通过电 阻对电容 C6 充电 单片机复位引脚端电压慢慢下降 降到一定程度 即为低电平 单 片机开始正常工作 按键复位的工作原理为 当 S0 被按下后 电容 C6 迅速放电 使单 片机复位引脚为高电平 从而实现复位 当 S0 弹起后 电源通过 10K 的电阻 R5 放 基于单片机的简易计算器设计论文 15 电 电平变为低电平 复位停止 3 3 系统显示电路设计 3 3 1 系统显示器件选择 目前市场上的计算器显示屏主要包括以下几种 1 OLED 段码液晶屏 此种液晶屏只能显示固定的数字和字符 由于简易计算器的 运算符号种类较少 因而考虑到 OLED 段码液晶屏的价格相对较低 在一些简单的计算 器上应用较多 2 LED 数码管显示屏 近年来随着 LED 技术的发展 LED 数码管应用场合也逐渐 增 多 LED 数码管显示亮度较高 同时 LED 颜色种类较多 客户可以根据自己的喜好选择 自己喜欢的颜色 不足之处是 LED 数码管功耗较高 显示效果会有轻微的闪烁 长时 间观看不利于眼睛的保护 3 LCD 液晶屏 目前市场上主要用到的液晶屏分为字符型液晶屏和中文汉字液晶 屏 字符型 LCD 液晶显示 液晶显示模块具有体积小 功耗低 显示内容丰富等特 点 现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件 中文 汉字液晶屏体积尺寸较大 同时价格较贵 考虑到价格和体积因素 字符型 LCD 液晶 更适合本系统设计的需要 采用 LCD 液晶显示价格适中 显示效果稳定 不足是亮度 效果会相对降低 综合以上几种显示器件的优缺点 系统最终采用 LCD 液晶显示器做系统的显示器件 系统选用字符型 LCD1602 作为显示部分 3 3 2 系统显示电路设计 系统显示电路主要包括单片机控制器 单片机 P0 口上拉电阻 LCD1602 液晶显示器 和对比度调节电阻器组成 此部分电路如图 3 4 所示 基于单片机的简易计算器设计论文 16 图 3 4 系统显示器件电路图 由图 3 4 所示 液晶 LCD1602 的 1 脚为接地端 2 脚为电源引脚 此款液晶显示器 采用 DC5V 电压供电 此处 VCC 接 5V 电压 3 脚为液晶显示器的对比度调节引脚 通过 电阻 R6 接地 R6 阻值可以选择 2 2K 到 4 7K 之间的电阻 也可以接 4 7K 的可调电位 器接地 可通过改变此电阻的阻值大小来调节液晶的对比度 4 脚 5 脚 6 脚为液晶 片选控制引脚 分别连接到单片机的 P25 P26 P27 端口 7 14 脚为数据接口 与单 片机的 P0 口相连实现数据的传输 15 16 脚为液晶的背光控制脚 分别接到电源和 地 如果悬空不接则不使用背光 3 4 系统矩阵键盘输入电路设计 按键输入电路用来完成密码的输入和修改 按键输入电路采用 4 4 矩阵键盘实现 矩阵键盘电路如图 3 5 所示 图 3 5 系统矩阵键盘输入电路 系统矩阵键盘对应按键功能如图 3 6 所示 基于单片机的简易计算器设计论文 17 图 3 6 系统矩阵键盘按键功能说明 如上表所示 0 9 位数字键 当运算时按下对应数字的按键即可输入相应数字 符 号键 号对应计算器的运算功能键 当输入完相应的数字 后按下对应的运算符后即可执行相应的计算操作 清除键指的是当运算过程中如果操 作错误可以按下清除键完成对本次运算的清除功能 按下清除键以后即可进行再次运 算操作 3 5 系统整体电路设计分析 当系统各部分电路设计完成后 需要对各部分电路进行总体汇总 然后对完整的电 路进行可行性分析论证 在保证系统电路的完整性和可靠性的前提下方可进行下一步 的软件设计以及成品组装 系统汇总完成的总体电路如图 3 7 所示 图 3 7 系统整体电路图 图 3 7 为系统整体电路图 主要包括电源部分电路 矩阵键盘输入电路 单片机 最小系统电路以及液晶显示电路 4 大部分组成 系统电源电路用了完成系统电压的稳 压和滤波作用 因为单片机系统需要在比较稳定的 5V 电压系统下工作 因而要想保证 整个系统能够稳定可靠的运行 首先要保证系统电源电路稳定可靠 所以增加稳压滤 波电路是必不可少的环节 考虑到计算器输入键盘部分由 0 9 共 10 个数字键 5 个运 基于单片机的简易计算器设计论文 18 算符号键 一个清除键 共需要 16 个按键 因而系统设计键盘输入部分采用 4 4 的矩 阵键盘 共 16 个按键完成 显示界面采用 LCD1602 字符型液晶显示屏 LCD1602 液晶 能够显示 2 行 32 个字符 可以很好的满足系统设计的要求 基于单片机的简易计算器设计论文 19 第四章 计算器的软件系统设计 4 1 系统软件编程环境介绍 系统软件设计采用 C 语言编程 编译环境为 Keil Keil c51 是美国Keil Software 公司出品的51 系列兼容单片机C 语言软件开发 系统 和汇编相比 C 在功能上 结构性 可读性 可维护性上有明显的优势 因而 易学易用 Keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具 全Windows 界 面 另外重要的一点 只要看一下编译后生成的汇编代码 就能体会到Keil c51 生成 的目标代码效率非常之高 多数语句生成的汇编代码很紧凑 容易理解 在开发大型 软件时更能体现高级语言的优势 Keil C51 可以完成编辑 编译 连接 调试 仿真等整个开发流程 开发人员可 用IDE 本身或其它编辑器编辑C 或汇编源文件 然后分别有C51 及A51 编辑器编译连 接生成单片机可执行的二进制文件 HEX 然后通过单片机的烧写软件将HEX 文件 烧入单片机内 软件主要三个方面 一是初始化系统 二是数据采集 三是数据处理 并进行显示 这三个方面的操作分别在主程序中来进行 程序采用模块化的结构 这 样程序结构清楚 易编程和易读性好 也便于调试和修改 4 2 系统主程序流程图 系统主程序主要包括系统的初始化 键盘扫描 运算的执行以及液晶的显示等 系 统主程序流程图如图 4 1 所示 按键扫描 判断是否有按键按下 基于单片机的简易计算器设计论文 20 图 4 1 系统主程序流程图 系统主程序流程如图 4 1 所示 当系统上电后首先完成各个组件的初始化 一个 开始 系统初始化 液晶显示输入数 字和运算符 判断是否按下 号键 执行运算操作 显示计算结果 是 否 否 是 判断是否按下清 除键 是 是 是 否 基于单片机的简易计算器设计论文 21 系统的初始化是程序运行必不可少的环节 系统初始化部分主要包括 单片机初始化 液晶显示初始化 矩阵键盘初始化等 初始化完成以后系统首先要扫描矩阵键盘 通 过判断矩阵键盘对应的单片机 IO 端口是否发生变化来判断是否进入有效的运算操作 当按键扫描到有按键输入时 单片机通过键盘键值的判断来确定输入的是数字还是运 算符 同时通过控制液晶屏实时显示输入的运算数字和运算符 当单片机判断到有 键按下后开始执行运算符前后数字的相应运算 然后把运算的结果显示在液晶屏 的 符之后 此时如果系统检测到清除功能键按下则系统返回到按键扫描状态 如 果没有清除键按下 则一直保留此次运算的状态 4 3 系统子程序介绍 系统子程序主要包括按键扫描子程序和液晶显示子程序 按键扫描子程序是通过 检测矩阵键盘所接的单片机 IO 端口的电平变化来实现 矩阵键盘电路设计成 4X4 矩阵 式 在程序中可以先判断按键编码 然后根据编码将键盘代表的数值送到相应的存储 单元 再进行功能选择或数据处理 液晶显示子程序主要完成在显示字符发生变化时 通过单片机控制液晶的读写操作来完成显示字符的更新 按键扫描子程序流程图如图 4 2 所示 按键扫描 判断是否有按键按下 基于单片机的简易计算器设计论文 22 图 4 2 系统按键扫描子程序流程图 系统按键扫描是通过对矩阵键盘行列扫描的方式实现的 系统首先对行进行扫描 检测出 4 行当中是否有一行对应的端口电平发生变化 如果有则进行列的扫描 同样 如果 4 列中的一列端口电平发生了变化 则电平发生变化的行列交叉处的按键码值即 可检测出来 此时单片机就可以通过对端口电平的变化来判断出所按下的按键具体位 置 然后即可记录下对应按键所对应的数字或者符号 如此循环检测即可完成按键的 扫描工作 开始 键盘端口电平初始化 行列端口扫描 判断行端口电平是否 发生变化 得出对应行列 交叉线处按键 码值 是 否 否 是 判断列端口电平 是否发生变化 基于单片机的简易计算器设计论文 23 第五章 系统的仿真与调试 5 1 系统仿真软件介绍 Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件 Proteus 不仅具有其它 EDA 工具软件的仿真功能 还能仿真单片机及外围器件 它是目前比较 好的仿真单片机及外围器件的工具 虽然目前国内推广刚起步 但已受到单片机爱好 者 从事单片机教学的教师 致力于单片机开发应用的科技工作者的青睐 Proteus 是世界上著名的 EDA 仿真工具 从原理图布图 代码调试到单片机与外围 电路协同仿真 它是目前世界上唯一将电路仿真软件 PCB 设计软件和虚拟模型仿真软 件三合一的设计平台 其处理器模型支持 8051 HC11 PIC10 12 16 18 24 30 DsPIC33 AVR ARM 8086 和 MSP430 等多种型号 的单片机 5 2 系统仿真结果分析 系统完成加法运算的仿真运行效果图如图 5 1 所示 图 5 1 系统运行仿真效果图 系统完成加法运算的运行效果图 5 1 所示 加数分别为 123 和 56 完成运算符为 加法运算 运算得出的结果为 179 经验证运算结果正确 液晶显示内容和实际运算输 出数字及运算符完全一致 系统加法运算仿真运行正确无误 系统完成减法运算的仿真运行效果图如图 5 2 所示 基于单片机的简易计算器设计论文 24 图 5 2 系统减法运算仿真效果图 系统完成减法运算的运行效果图 5 2 所示 减数和被减数分别为 456 和 123 完成 运算符为减法运算 运算得出的结果为 333 经验证运算结果正确 液晶显示内容和实 际运算输出数字及运算符完全一致 系统减法运算仿真运行正确无误 系统完成乘法运算的仿真运行效果图如图 5 3 所示 图 5 3 系统乘法运算仿真效果图 系统完成乘法运算的运行效果图 5 3 所示 乘数和被乘数分别为 45 和 2 完成运 算符为乘法运算 运算得出的结果为 90 经验证运算结果正确 液晶显示内容和实际 运算输出数字及运算符完全一致 系统乘法运算仿真运行正确无误 系统完成除法运算的仿真运行效果图如图 5 4 所示 基于单片机的简易计算器设计论文 25 图 5 4 系统除法运算运行仿真图 系统完成除法运算的运行效果图 5 4 所示 除数和被除数分别为 10000 和 5 完成 运算符为除法运算 运算得出的结果为 2000 经验证运算结果正确 液晶显示内容和 实际运算输出数字及运算符完全一致 系统除法运算仿真运行正确无误 基于单片机的简易计算器设计论文 26 第六章 实物的制作与调试 6 1 电路的安装过程 元件在安装时 注意事项如下 1 晶振要紧挨单片机的晶振引脚 晶振引线的太长会直接影响到晶振的起震效果 引线太长会造成晶振不起震的情况出现 2 装配时 应该先安装那些需要安装底座的器件 比如说单片机 液晶显示屏等 由于这些器件价格较贵 如果直接装配到板子上 一旦系统安装出现意外情况不得不 重新焊接的时候 这些主要器件就没法再次利用了 3 各种元器件的安装时应尽量留出较大的空间 这样既可以避免器件太近存在的 短 路隐患也利于元器件的散热 4 在元器件焊接之前应该先用纱布将元器件的引脚打磨一遍 这样可以将元件引 脚氧化的部分去除掉 以便于焊接 在焊接过程中还要注意焊锡的量要得当 过多可 能造成电路短路 过少有可能造成虚焊 最后可以在板子的四个角上安装四个固定柱 一方面可以增加整个结构的美观 另一方面也可以使避免电路板放在导电体上发生短 路的危险 通过以上步骤 一个完整的电路硬件部分就制作完成了 这时可以再检查一下是 否有元器件漏焊 焊错的情况 以确保电路的正确 6 2 系统的调试及问题 在调试过程中 曾遇到以下问题 1 当硬件连接无误 在系统启动后液晶不显示 系统没有反应 经过分析这种情 况有以下几种可能 第一 硬件电路中存在虚焊 或电路接线焊错 第二 芯片插反 了导致电路短路 第三 液晶电路焊接错误 遇到这种情况首先要用万用表检查芯片的供电电压是否为 5V 如果不是就检查供 电电路有没有问题 如果两端有电压就检查一下单片机有没有插反 通过逐步排查最 终找到问题是因为单片机供电引脚虚焊造成的 2 键盘输入显示乱码 和设计的键值不符 经检查发现矩阵键盘的行列端口定义 与仿真接口定义不一致引起的 后重新修改端口问题得以解决 基于单片机的简易计算器设计论文 27 3 初期系统显示不稳定 这有可能是系统电压不稳定 或者 STC89C52 芯片的 31 引脚 EA 引脚没有接高电平 经过排查发现系统电源电路中未加滤波电容 由于仿真 电路不存在电源干扰问题 所以在仿真中可以稳定运行的情况下 根据仿真电路制作 出的实物可能会出现由于外界干扰带来的系统工作不稳定情况 这种情况一般是由电 源的干扰造成 可以通过增加电源端的滤波电容来解决这种问题 基于单片机的简易计算器设计论文 28 总结 本文采用 STC89C52 单片机设计完成了一款简易计算器的制作 经过实际测试 功 能稳定操作方便 能够达到计算器的基本功能要求 通过适当的包装和完善即可得到 很好的推广和应用 此次设计对我具有很好的锻炼效果 同时也是对自己所学知识的 一次综合检验 在整个毕业设计过程中 我对大学四年所学的知识有了一个系统的认 识和理解 尤其是对本课题所用到的单片机及其相关知识有了进一步的掌握 对单片 机相关软件的使用水平得到了提高 为今后的工作奠定了坚实的基础 本课题软件和硬件相结合 有相当大的难度 同时也有很大的实用性 在做毕业 设计的过程中 我的理论和实践水平都有了较大的提高 在课题的设计与制作过程中 遇到了不少问题 在老师和同学的指导和帮组下最终得到逐一的解决 通过此次毕业 设计制作不仅使我的实际动手能力得带了提高 也使我和同学老师之间的沟通和协作 能力得到了提高 这些都为我今后进入公司工作打下了很好的基础 为我今后的生活 和工作积累了宝贵的财富 同时由于时间和费用的限制 此款计算器只是实现了计算 器的基础功能 诸如开方等一些常用功能未能够实现 基于单片机的简易计算器设计论文 29 致 谢 四年的本科学习生涯即将结束 在本人做毕业设计中 得到了我的导师的悉心指导 和无私帮助 他严谨的治学态度和谦和的为人给我留下了深刻的印象 本课题在选题及研究过程中得到谭老师的悉心指导 谭老师多次询问研究进程 并为我指点迷津 帮助我开拓研究思路 精心点拨 热忱鼓励 谭老师一丝不苟的作 风 严谨求实的态度 踏踏实实的精神 让我受益终身 通过这次毕业设计 使我得到了一次用专业知识 专业技能分析和解决问题全面 系统的锻炼 使我对单片机的基本原理以及单片机编程技巧的掌握方面都能向前迈了 一大步 为日后迈入职场打下了良好的基础 在我毕业设计的过程中 我在谭老师的 精心指导和严格要求下 获得了丰富的理论知识 极大地提高了实践能力 并对当前 电了领域的研究状况和发展方向有了一定的了解 这对我今后进一步学习传感器方面 的知识有极人的帮助 在此 我衷心感谢谭老师的指导和支持 在未来的工作和学习 中 我将以更好的成绩来回报老师 在此 我还要感谢在一起愉快的度过我大学生活的全体老师和同学们 正是由于 你们的帮助和支持 我才能克服一个一个的困难和疑惑 直至本文的顺利完成 最后 再次对各位评委老师表示衷心的感谢 感谢你们能给我提出宝贵的指导意见 让我顺 利通过毕业答辩 谢谢 基于单片机的简易计算器设计论文 30 参考文献 1 李朝青 单片机原理及接口技术 M 北京 北京航空航天大学出版社 2005 2 康华光 电子技术基础模拟部分 第五版 M 北京 高等教育出版社 2005 3 阎石 数字电子技术基础 第四版 M 北京 高等教育出版社 2005 4 白延敏 51单片机典型系统开发实例精讲 M 北京 电子工业出版社 2009 5 张齐 杜群贵 单片机应用系统设计技术 M 北京 电子工业出版社 2007 6 杨金岩等 8051单片机数据传输接口扩展技术与应用实例 M 北京 人民邮电出 版社 2005 7 求是科技 单片机通信技术与工程实践 M 北京 人民邮电出版社 2005 8 郭永贞主编 数字电子技术 M 西安电子科技大学出版社 2000 9 李广弟 单片机基础 M 北京 北京航空航天大学出版社 2001 10 张洪润 电子线路与电子技术 M 清华大学出版社 M 2005 11 张齐 杜群贵 单片机应用系统设计技术 M 电子工业出版社 2004 12 张伟 基于8051单片机的无线温控系统设计 J 北京 中国高新技术企业 2010 34 7 13 徐爱钧 智能化测量控制仪表原理与设计 第二版 北京航天航空大学出版社 2004 9 14 孙育才等 MCS 51 系列单片微型计算机及其应用 第 4 版 东南大学出版社 2004 3 15 李萍等 智能仪器实验指导书 大连交通大学 2007 9 16 单片机应用技术 C 语言 中国劳动社会保障出版社 2006 6 17 武庆生 仇梅等著 单片机原理与应用 电子科技大学出版 1998 12 18 朱定华著 单片机原理与接口技术 电子工业出版社 2001 4 19 王宜怀 刘晓升等著 嵌入式应用技术基础教程 北京清华大学出版社 2005 7 20 王威著 HCS12 微控制器原理及应用 北京航空航天大学出版社 2007 10 基于单片机的简易计算器设计论文 31 附录 A 系统源程序 include include include include include include LCD1602 h void shortdelay uchar i 短延时 for i 0 i void longdelay uint i 长延时 uint j for i 0 i for j 100 j 0 j void delay int i 延时程序 int j for i 0 i for j 0 j 100 j void io init 初试状态 P1 0 xff 键盘扫描部分 unsigned char key scan unsigned char key unsigned char temp uint flag io init P1 0 xf0 flag 0 loop temp P1 0 xf0 基于单片机的简易计算器设计论文 32 while temp P1 0 xfe delay 1 if P1flag 1 break case 0 xde key 0 x12 flag 1 break case 0 xbe key 0 x13 flag 1 break case 0 x7e key 0 x14 flag 1 break if flag goto exit else P1 0 xfd delay 1 if P1flag 1 break case 0 xdd key 0 x22 flag 1 break case 0 xbd key 0 x23 flag 1 break case 0 x7d key 0 x24 flag 1 break if flag goto exit else P1 0 xfb delay 1 if P1flag 1 break case 0 xdb key 0 x32 flag 1 break 基于单片机的简易计算器设计论文 33 case 0 xbb key 0 x33 flag 1 break case 0 x7b key 0 x34 flag 1 break if flag goto exit else P1 0 xf7 delay 1 if P1flag 1 break case 0 xd7 key 0 x42 flag 1 break case 0 xb7 key 0 x43 flag 1 break case 0 x77 key 0 x44 flag 1 break exit return key if temp 0 goto loop 键盘扫描完 显示初始化 void initpindata bit i P0 口初始化 if i 1 pindata 0 xff else pindata 0X00 void setRS bit i 寄存器选择信号 if i 1 pinRS 1 else pinRS 0 void setRW bit i 读写操作控制 基于单片机的简易计算器设计论文 34 if i 1 pinRW 1 else pinRW 0 void setE bit i 使能信号 if i 1 pinE 1 else pinE 0 uint read BF AC 读 BF 以及 AC 的值 uint temp initpindata 1 setRS 0 setRW 1 setE 1 shortdelay 1 temp pindata shortdelay 10 setE 0 return temp bit statuscheck 判忙 return bit read BF AC void writeinstruc uint instruc 写指令函数 while statuscheck initpindata 0 setRS 0 setRW 0 setE 0 pindata instruc setE 1 基于单片机的简易计算器设计论文 35 shortdelay 10 setE 0 void writedata uint data1 写数据到 RAM initpindata 0 setRS 1 setRW 0 setE 0 pindata data1 setE 1 shortdelay 10 setE 0 uint readdata void 从 RAM 中读数据函数 uint temp initpindata 1 setRS 1 setRW 1 setE 1 shortdelay 1 temp pindata shortdelay 10 setE 0 return temp 显示程序 X 为行号 Y 为列号 date 为要显示的数据 void dispcharacter int x uint y uint data1 uint temp while statuscheck temp y x if x temp 0 x40 基于单片机的简易计算器设计论文 36 setDDRAM Add temp writedata data1 vod LCDreset LCD 复位函数 clearscreen cursorreturn void initLCD LCD 初始化 LCDreset inputmode 0 x06 增量方式 不移位 dispcontrol 0 x0c 显示开 光标关 闪
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论