




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与技术系 硬件课程设计实验 1 基于基于 AT89C51AT89C51 单片机简易计算器的设计单片机简易计算器的设计 摘 要 单片机的出现是计算机制造技术高速发展的产物 它是 嵌入式控制系统的核心 如今 它已广泛的应用到我们生活的各个 领域 电子 科技 通信 汽车 工业等 本设计是基于51系列单 片机来进行的数字计算器系统设计 可以完成计算器的键盘输入 进行加 减 乘 除六位数范围内的基本四则运算 并在LCD上显示 相应的结果 设计电路采用AT89C51单片机为主要控制电路 利用 MM74C922作为计算器4 4键盘的扫描IC读取键盘上的输入 显示采用 字符LCD静态显示 软件方面使用C语言编程 并用PROTUES仿真 关键词 硬件课程设计 简单计算器 单片机 LCD 正 文 一 总体设计一 总体设计 根据功能和指标要求 本系统选用MCS 51系列单片机为主控机 通过扩展必要的外围接口电路 实现对计算器的设计 具体设计如 下 1 由于要设计的是简单的计算器 可以进行四则运算 为了 得到较好的显示效果 采用LCD 显示数据和结果 2 另外键盘包括数字键 0 9 符号键 清除键和等号键 故只需要16 个按键即可 设计中采用集成的计算 键盘 3 执行过程 开机显示零 等待键入数值 当键入数字 通 计算机科学与技术系 硬件课程设计实验 2 过LCD显示出来 当键入 运算符 计算器在内部执行数值 转换和存储 并等待再次键入数值 当再键入数值后将显示键入的 数值 按等号就会在LCD上输出运算结果 4 错误提示 当计算器执行过程中有错误时 会在LCD上显 示相应的提示 如 当输入的数值或计算得到的结果大于计算器的表 示范围时 计算器会在LCD上提示溢出 当除数为0时 计算器会在 LCD上提示错误 系统模块图 二 硬件设计二 硬件设计 一 一 总体硬件设计 本设计选用 AT89C51 单片机为主控单元 显示部分 采用 LCD 静态显示 按键部分 采用 4 4 键盘 利用 MM74C922 为 4 4 的键盘 扫描 IC 读取输入的键值 总体设计效果如下图 计算机科学与技术系 硬件课程设计实验 3 二 键盘接口电路 计算器输入数字和其他功能按键要用到很多按键 如果采用独 立按键的方式 在这种情况下 编程会很简单 但是会占用大量的 I O 口资源 因此在很多情况下都不采用这种方式 而是采用矩阵 键盘的方案 矩阵键盘采用四条I O 线作为行线 四条I O 线作为 列线组成键盘 在行线和列线的每个交叉点上设置一个按键 这样 键盘上按键的个数就为4 4个 这种行列式键盘结构能有效地提高 单片机系统中I O 口的利用率 矩阵键盘的工作原理 计算器的键盘布局如图2所示 一般有16个键组成 在单片机中 正好可以用一个P口实现16个按键功能 这种形式在单片机系统中也 最常用 计算机科学与技术系 硬件课程设计实验 4 图 2 矩阵键盘布局图 矩阵键盘内部电路图如图3所示 为了进一步节省单片机 I O 口资源 我们在设计中使用了 MM74C922 芯片 MM74C922 是一款 4 4 键盘扫描 IC 它可检测到与 之相连的 4 4 键盘的按键输入 并通过数据输出口将按键相应的编 码输出 其引脚图如图 4 所示 计算机科学与技术系 硬件课程设计实验 5 图 4 MM94C22 硬件图 MM74C922 引脚说明 1 Y1 Y4 脚 1 脚 4 44 键盘第一列至第四 2 X1 X4 脚 11 10 8 7 44 键盘第一行至第四行 3 DOA DOD Dataout A D 脚 14 17 按键之 BCD 码输出 其 中 DOA 为 LSB DOD 为 MSB 4 VCC 脚 18 电源脚 3V 15V ab126 计算公式大全 5 GND 脚 9 接地管脚 新艺图库 6 OSC Oscillator 脚 5 键盘扫描电路之频率所需外加电容 的连引脚 7 KBM Keyboard Mask 脚 6 内部消除开关弹跳电路所外加 电容的引脚 8 OE Output Enable 脚 13 芯片致能脚 接低电位可使芯 计算机科学与技术系 硬件课程设计实验 6 片致能 9 DA Data Available 脚 12 数据有效输出脚 任一按键按 下时 此脚位会输出高电位 按键释放后此脚又会恢复为低电位 MM74C922 对各按键的响应如下表所示 如下图 5 所示 在本设计中 计算器输入键盘的 4 条行线 列 线分别连接到 MM74C922 的 X1 X4 Y1 Y4 引脚 MM74C922 的数据输 出口与单片机的 P2 口相连 MM74C922 的 DA 引脚经过一个非门连接 到单片机的 INT0 脚 当 MM74C922 检测到键盘输入时 DA 产生高电 平 与之相连的 INT0 检测到低电平 给单片机一个中断 单片机 从 P2 口的低四位读入键盘上按下的键的值 计算机科学与技术系 硬件课程设计实验 7 图 5 键盘接口电路图 三 LCD 显示模块 本设计采用 LCD 液晶显示器来显示输出数据 通过 D0 D7 引脚 向 LCD 写指令字或写数据以使 LCD 实现不同的功能或显示相应数据 图 6 LCD 模块 四 运算模块 单片机控制 四 运算模块 单片机控制 MCS 51 单片机是在一块芯片中集成了CPU RAM ROM 定时器 计数器和多功能I O等一台计算机所需要的基本功能部件 如果按功 计算机科学与技术系 硬件课程设计实验 8 能划分 它由如下功能部件组成 即微处理器 CPU 数据存储器 RAM 程序存储器 ROM EPROM 并行I O 口 串行口 定时 器 计数器 中断系统及特殊功能寄存器 SFR 单片机是靠程序运行的 并且可以修改 通过不同的程序实现 不同的功能 尤其是特殊的独特的一些功能 通过使用单片机编写 的程序可以实现高智能 高效率 以及高可靠性 因此我们采用单 片机作为计算器的主要功能部件 可以很快地实现运算功能 三 软件设计三 软件设计 现实生活中人们熟知的计算器 其功能主要如下 1 键盘输入 2 数值显示 3 加 减 乘 除四则运算 4 对错误的控制及提示 针对上述功能 计算器软件程序要完成以下模块的设计 1 键盘输入检测模块 2 LCD显示模块 3 算术运算模块 4 错误处理及提示模块 系统总流程图 计算机科学与技术系 硬件课程设计实验 9 开始 初始化参数 初始化 LCD 显示 有键输入 读取键码 LCD 显示 数字键清零键功能键 状态清零输入数值 数值送显示缓冲 Y N 等待数值输入 结果送显示缓冲 根据上次功能键和输 入的数据计算结果 本次功能键 等待数值输入 结果送显示缓冲 等待数值输入 结果送显示缓冲 计算机科学与技术系 硬件课程设计实验 10 分块程序设计 1 键盘输入检测程序设计 有键按下时 单片机响应外部中断 0 转入外部中断 0 中断处理函 数 在中断处理函数中完成对按键的判断 以进行下一步的程序处 理 外部中断0处理函数 void INT 0 void interrupt 0 using 0 key translate P2 if key 0 判断按下的键是否为数值 num num 10 key 0 if operators 0 y num iny 1 else x num if num 134217728 当前数值是否超出限定范围 display num else dataoverflow else switch key case c x 0 y 0 num 0 iny 0 operators 0 display num break 计算机科学与技术系 硬件课程设计实验 11 case arithmetic iny 0 operators 0 num 0 break case if operators arithmetic operators 1 num 0 break case if operators arithmetic operators 2 num 0 break case if operators arithmetic operators 3 num 0 break case if operators arithmetic operators 4 num 0 break 2 LCD 显示程序设计 利用 LCD 静态显示 通过程序向 LCD 写指令字或数据使 LCD 完成不 同功能或显示相应数据 LCD初始化函数 void init LCM write com 0 x30 计算机科学与技术系 硬件课程设计实验 12 write com 0 x30 write com 0 x30 write com 0 x38 write com 0 x08 write com 0 x01 write com 0 x06 write com 0 x0e LCD写数据函数 void write data char ddata RS 1 写指令 R W 0 EN 1 使能信号开 P1 ddata 将数据送入p1口 EN 0 使能信号关 check BF LCD写指令函数 void write com char command RS 0 写指令 R W 0 EN 1 使能信号开 P1 command 将数据送入p1口 EN 0 使能信号关 check BF LCD检查忙碌函数 void check BF char i x 0 x80 P1 0 xff while x R W 1 EN 1 x P1 EN 0 for i 0 i 10 i 计算机科学与技术系 硬件课程设计实验 13 EN 0 关闭使能信号 LCD清屏函数 void clearLCD write com 0 x01 LCD显示函数 void display long a long temp b c 1 int lenth 1 i j clearLCD if a0 i b 1 for j 0 j i 1 j b b 10 write data 0 x30 a b a a b 3 算术运算程序设计 计算机科学与技术系 硬件课程设计实验 14 开始 运算符是 加乘减除 除数为 0 运算结果溢出 错误信息送显 示缓冲 数值送显示缓 冲 YY N N 4 错误处理及提示程序设计 除数为处理函数 void dealerror int i 0 clearLCD for i 0 i 5 i write data error i 数值溢出处理函数 计算机科学与技术系 硬件课程设计实验 15 void dataoverflow int i 0 clearLCD for i 0 i 8 i write data overflow i 四 联机调试四 联机调试 在联机调试的过程中 一开始没有做数值溢出方面的控制 导 致LCD显示的输入数据或计算结果与实际不相符 后来经过计算得到 有符号长整型的表示范围为 2147483648 2147483647 遂取2的30 次方1073741824为本计算器的最大表示范围 以此来控制数值溢出 修改后 LCD显示正确 五 总结五 总结 课程设计是培养我们综合运用所学知识 发现 提出 分析和 解决实际问题 锻炼实践能力的重要环节 是对我们实际工作能力 的具体训练和考察过程 随着科学技术发展的日新日异 单片机已 经成为当今计算机应用中空前活跃的领域 在生活中可以说得是无 处不在 因此作为计算机专业的学生来说掌握单片机的开发技术是 十分重要的 我们的题目是基于单片机设计简易计算器 对于我们这些实践 中的新手来说 这是一次考验 这次课程设计我们学到很多很多的 东西 学会了怎么在遇到问题时去解决问题 不仅巩固了以前所学 过的知识 而且学到了很多在书本上所没有学到过的知识 掌握了 一种系统的研究方法 可以进行一些简单的编程 通过这次课程设 计算机科学与技术系 硬件课程设计实验 16 计使我懂得
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年物资储备仓库消防安全知识测试题目
- 2025年美容美发技术实操模拟题及参考答案
- 七颗钻教学课件
- 中国功夫音乐教学课件
- 2025年物资储备仓库管理信息化应用技能测试题库及解析
- 2025年中级操作工考试必-备知识点炼油工艺原理及设备结构
- 2025年特岗教师招聘考试初中地理重点知识点解析与练习
- 2025年初级电工电路基础知识和实操模拟题及答案
- 2025年焊接工艺面试通关秘籍模拟题及答案解析
- 企业级SOA实施方法论的研究与探讨
- 风系统平衡调试要点
- JG/T 272-2010预制高强混凝土薄壁钢管桩
- 仙居两山生物科技有限公司生物酶及辅酶环评报告
- 货运平台代扣代缴协议书
- 日本所有番号分类
- T/CATCM 026-2023中药液体废弃物循环利用指导原则
- 过程稽核培训
- (高清版)DG∕TJ 08-7-2021 建筑工程交通设计及停车库(场)设置标准
- 2025景观园林设计合同
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读课件
- 人教九年级英语上册Unit 7《单元写作》课件
评论
0/150
提交评论