毕业设计-基于at89c51单片机的电子计算器设计内容摘要:

4 5 6 7 8 9 + / = 点 西安工程大学本科毕业设计(论文) 7 LCD 显示模块设计 LCD1602,工业字符型液晶,能够同时显示 16x02 即 32 个字符( 16 列 2 行),故简称 1602。 1602LCD 液晶具有功耗低、显示内容丰富、清晰,显示信息量大,显示速度较快,界面友好等而得到广泛应用,因此使用 1602 液晶显示屏,可以方便的显示多种字符,特别适用于单片机计算器的双行显示。 液晶显示模块的设计: 图 22液晶显示 清零、音乐开关、开方和多 次方运算功能模块 设计 本设计要求在任何时候按下 AC清零键,都必须退出当前操作,数据清零,准备下一次的运算,故应采用独立键盘产生下降沿输入给单片机外部中断处理。 对于声音开关按键,由于要求随时关闭或打开声音提示,本设计也采用独立按键产生下降沿输入给单片机的外部中断处理。 而开方或多次方运算,则可与矩阵键盘一起检测,也当做一个运算符处理。 具体功能按键设计如下图: 西安工程大学本科毕业设计(论文) 8 图 23功能按键设 图中, AC 为清零按键、 KeyBeep 为声音开关按键、 KeySqrt 为开方按键、KeyPow 为多次方按键。 电源模块 设计 由于 AT89S52 和 LCD1602 都是采用 5V 供电,而且其他模块功能也采用 5V 电平,本系统采用 LM7805 作为稳压芯片,经过初级和次级的电容滤波,最终得到稳定的 5V 电压供给系统使用。 图 24电源 主控模块设计 西安工程大学本科毕业设计(论文) 9 MSC51 芯片简介 MCS51 单片机内部结构 : 图 25单片机内部结构图 8051 的复位方式可以是自动复位,也可以是手动复位。 其 复位电路图如下: 图 26复位电路 AT89S52 AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 DIP 封装 Flash 存储器。 使用 Atmel 公司高密度非易失性存储 器技术制造,与工业80C51 产品指令和引脚完全兼容。 片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。 在单芯片上,拥有灵巧的 8 位 CPU 和在系统 可编程 Flash,使得 西安工程大学本科毕业设计(论文) 10 AT89S52 为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52 的最大优点是可以在线编程,在调试程序的时候,可直接带电烧录程序,烧录完成即可自动复位运行,非常适合调试程序。 而且 AT89S52 可编程一千多次以上,的确是一种价格低廉的开发芯片。 单片机的最小系统设计: 图 27最小系统 西安工程大学本科毕业设计(论文) 11 第 3 章 软件设计 显示程序设计 LCD1602 在上电以后,应该先等待 50 毫秒左右,让其内部芯片初始化后再对其进行操作。 在对其操作时,应参考其时序图,先把命令写入其内部寄存器设置它的工作方式和状态。 要显示数据的时候,先设置好显示坐标,再往里面写入要显示的ASCII 码, LCD 则通过刷新和替换来显示新的数据。 其程序流程图如下图所示: 图 31显示程序流程图 其程序位于后面附录 键扫程序设计 由于矩阵键盘采用 4行 4列的结构,每一行每一列各对应一个 I/O口,故程序应 开始 初始化 设置坐标 发送 ASII 显示数据 西安工程大学本科毕业设计(论文) 12 该逐行查询,一旦查询到有某一行的按键被按下了,则根据读取到的 I/O 总线口的数据即可查询到是哪一列的按键被按下了,最后对应行列返回一个按键值回主函数。 其程序流程图如下: 否 否 否 否 图 32 矩阵键盘程序流程图 其程序位于后面附录 开始 按键赋初值 第一行有键按下。 第二行有键按下。 第三行有键按下。 第四行有键按下。 判断是哪一列的按键 返回按键初始值 返回行列对应的按键值 结束 西安工程大学本科毕业设计(论文) 13 清零程序设计 根据系统要求以及硬件结构, AC 按键直接接入单片机外部中段 0,则程序应使用中断来清除各数据存储变量达到清零的目的,并把清零标志位至 1,在主程序中不断查询标 志位,若为 1,则清零后。 其程序框图如下图: 图 33清零程序流程图 其程序如下: /***清零中断程序 ******/ void EX0_int() interrupt 0 { if(beepflag==1) //若开声音则每一次按键均鸣叫 { beep=0。 delayms(100)。 beep=1。 } 中断 0 入口 LCD 清屏显示0 各数据存储清零 清零标志位置 1 返回主程序 西安工程大学本科毕业设计(论文) 14 lcdwrite_(0x01)。 //显示清屏 lcd_setxy(0,0)。 lcdwrite_data(39。 039。 )。 lcd_setxy(0,0)。 num=39。 N39。 //数字初始化 keynum1=0,keynum2=0,sign=0。 ans1=0,ans2=0,ans=0,point=0。 conflag=0,newcalc=0。 ac=1。 } 声音开关程序设计 根据要求,声音开关使用外部中断 1 来处理,当按下声音开关时,触发单片机进入外部中断 1,在中断程序里,通过对声音开关标志位取反,在按键扫描过程中,加入对声音标志位的判断,若为 1,则发出声音,即 可实现声音提示功能。 其程序框图如下图: 否 图 34声音开关程序流程图 中断 1 入口 声音标注位取反 声音标志位为 1。 开声音提示 返回主程序 西安工程大学本科毕业设计(论文) 15 其程序如下: /***声音中断程序 ******/ void EX1_int() interrupt 2 { beepflag=~beepflag。 if(beepflag==1) //若开声音则每一次按键均鸣叫 { beep=0。 delayms(100)。 beep=1。 } } 总体设计 整体程序包括:电子计算器 .C、 和 本系统采用大小循环嵌套方式的软件设计思想,大循环则一直在运行,使计算器一直处于工作状态,并不断扫描按键,小循环用于识别数字是否输入完,一旦检测到输入的是运算符,则转换输入数值并储存起来,最后按下等于号以后则根据运算符计算两个数值的大小,并通过 LCD 显示。 软件系统总框图如下: 西安工程大学本科毕业设计(论文) 16 是 是 否 是 是 是 否 是 否 图 35 总程序流程图 其程序位于后面附录 开始 初始化 有按键按下。 键盘扫描 返回值为09。 计算第一次输入的数值大小 键盘扫描 LCD 显示 计算第二次输入的数值大小 运算计算结果 返回值为09。 继续有按键被按下。 有按键按下。 按键值为09。 西安工程大学本科毕业设计(论文) 17 第 4 章 系统仿真及原理图 Proteus 仿真 系统仿真图见下图: 图 41系统仿真图 西安工程大学本科毕业设计(论文) 18 图 42加法运算 图 43减法运算 西安工程大学本科毕业设计(论文) 19 图 44乘法运算 图 45除法运算 西安工程大学本科毕业设计(论文) 20 图 46开根号运算 图 47幂运算 西安工程大学本科毕业设计(论文) 21 图 48错误提示 1 图 49错误提示 2 西安工程大学本科毕业设计(论文) 22 Protel 原理图 系统原理图见下图: 图 410系统原理图 西安工程大学本科毕业设计(论文) 23 第 5 章 系统调试 问题与分析 硬件常见故障 逻辑错误:它是由设计错误或加工过程中的工艺性错误所造成的。 这类错误包括错线、开路、短路等。 元器件失效:有两方面的原因:一是器件本身已损坏或性能不符合要求;二是组装错误造成元件失效,如电解电容、集成电路安装方向错误等。 可靠性差:因其可靠性差的原因很多,如金属化孔、接插件接触不良会造成系统时好时坏,经不起振动;走线和布局不合理也会引起系 统可靠性差。 电源故障:若样机由电源故障,则加电后很容易造成器件损坏。 电源故障包括电压值不符合设计要求,电源引线和插座不对,功率不足,负载能力差。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。