ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:809.78KB ,
资源ID:3239635      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3239635.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易计算器.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简易计算器.docx

1、简易计算器湖南人文科技学院课程设计报告课程名称: 单片机原理及应用课程设计设计题目: 简易计算器 系 别: 通信与控制工程系 专 业: 自动化 班 级: 一班 学生姓名: 陈彬 王冬林 学 号: * * 起止日期: 2012年12月24日 2013年01月06日* * 教研室主任: 岳周 指导教师评语: 指导教师签名: 年 月 日成绩评定项 目权重成绩1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总 成 绩 教研室审核意见:教研室主任签字: 年 月 日教学系审核意见: 主任签字: 年 月 日 摘 要该简易计算器以STC89C52单片机为

2、核心,显示模块数码管,利用C语言编写相应程序进行四位自然数的有效四则运算。该计算器计算精度不高,只能实现简单的加减乘除,且有效数字位数有限。该装置由STC89C52模块,4x4键盘(包括19,+,-,*,/等十六个字符),数码管组成。STC89C52为主模块,其控制键盘及显示模块。键盘可以实现数字及运算符号的输入,数码管可以进行人机交互,显示按下键盘所对应的字符以及显示运算结果。此计算器采用浮点运算采用3字节二进制补码表示,有效数字6位。对于输入输出,采用3字节BCD码浮点数格式,有效数字只有4位,因此最终有效数字只有4位。可进行连续输入,例如:1.23+4.56*8.23/234.8 ,但是

3、运算结果为从左到右,这也是8位简易计算器的方式。其可进行错误判断,溢出、除零等错误将显示一个字符 E 。关键词:STC89C52、C语言、数码管显示 简易计算器1 设计要求 设计一个简易计算器,要求能够进行简单的加减乘除运算,具体要求如下:1. 4X4键盘输入,LED显示。2. 浮点运算采用3字节二进制补码表示,有效数字6位。对于输入输出,采用3 字节BCD码浮点数格式,有效数字只有4位,因此最终有效数字只有4位。3. 可进行连续输入,例如:1.23+4.56*8.23/234.8 ,但是运算结果为从左到右,这也是8位简易计算器的方式。4. 可进行错误判断,溢出、除零等错误将显示一个字符 E

4、。5. 由于键盘只有16个按键,安排如下: +-+ | 7 | 8 | 9 | + | | 4 | 5 | 6 | - | | 1 | 2 | 3 | * | | 0 | . | = | / | +-+ 图1 设计要求2 方案论证与对比2.1 方案一主控芯片采用STC89C52单片机,8255A为辅助扩展芯片(控制键盘信号采集以及数码管显示),采用普通数码管显示。由于此方案采用了扩展芯片,程序设计较为复杂。而且采用普通数码管显示,并不能显示“+”、“-”、“*”、“/”等运算符号。系统原理框图如图2所示:图2 方案一系统方框图2.2 方案二只采用STC89C52单片机,由此芯片直接控制显示屏以

5、及键盘。从而可以省去8255芯片,以节省资金。显示屏采用的是1602的液晶显示屏。采用液晶显示屏的优势是能够计算更多位的数值且能够显示出各种运算符号。此方案可以减少设备费用,降低程序的复杂性,也能更好的显示出计算过程,人机互动性增强。系统原理框图如图3所示。 图3 方案二系统方框图2.3 方案对比与选择以上两个方案都是可行的,都能实现简单的加减乘除功能。两者的最大区别就在于方案二直接采用STC89C52芯片控制以及采用1602液晶屏显示,程序要简单易用易控制,而且能够很好的显示各种运算符号。基于实用性,经济性,我们决定采用第二方案作为设计的整体方案。3 单元电路设计与计算3.1 主控芯片 ST

6、C89C52 STC89C52是一个低功耗,高性能CMOS 8位单片机,片内含4k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用STC公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。STC89C52具有如下特点:40个引脚(引脚图如图3所示),4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内

7、时钟振荡器。此外,STC89C52RC设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 图4 STC89C52芯片引脚图VCC(40):5V;GND(20):接地;P0口(3932):P0口为8位漏极开路双向I/O口,每引脚可吸收8个TTL门电流;P1口(18):P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流

8、;P2口(2128):P2口为内部上拉电阻器的8位双向I/O口,P2口缓冲器可接收和输出4个TTL门电流;P3口(1017):P3口是8个带内部上拉电阻器的双向I/O口,可接收和输出4个TTL门电流,P3口也可作为AT89C51的特殊功能口;RST(9):复位输入。当振荡器复位时,要保持RST引脚2个机器周期的高电平时间;ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,它可用作对外部输出的脉冲或用于定时目的,要注意的是,每当访问外

9、部数据存储器时,将跳过1个ALE脉冲;PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期2次PSEN有效,但在访问外部数据存储器时,这2次有效的PSEN信号将不出现;EA/VPP(31):当EA保持低电平时,外部程序存储器地址为(0000HFFFFH)不管是否有内部程序存储器。FLASH编程期间,此引脚也用于施加12V编程电源(VPP);XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入; XTAL2(18):来自反向振荡器的输出; 3.2 液晶显示模块液晶显示模块选用长沙太阳人公司的1602液晶模块,2行*16列字符显示,并行8数据通信,可以

10、满足本系统中显示的要求。我在平时的练习中利用开发板已经调过液晶显示的模块,利用C语言模块的可移植性,直接将模块移植过来,根据实际情况更改数组内容,即可实现对本设计中需要显示的参数进行显示。1602液晶与单片机的连接电路如下所示:图5 1602液晶接口电路1602 采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD 接5V正电源第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:RW 为

11、读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW 共同为低电平时可以写入指令或者显示地址,当RS 为低电平RW 为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7 为8位双向数据线。第1516脚:空脚 1602 液晶模块内部的字符发生存储器(CGROM)已经存储了160 个不同的点阵字符图形,如表1 所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块

12、把地址41H 中的点阵字符图形显示出来,我们就能看到字母“A” 表1 CGROM和CGRAM中字符代码与字符图形对应关系1602 液晶模块内部的控制器共有11 条控制指令,如表2 所示, 表2 指令表它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1 为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H 位置指令2:光标复位,光标返回到地址00H指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示

13、关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标指令6:功能设置命令 DL:高电平时为4 位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7 的点阵字符,高电平时显示5x10 的点阵字符指令7:字符发生器RAM地址设置指令8:DDRAM地址设置指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据指令11:读数据 1602液晶显示模块可以和单片

14、机STC89C52 直接接口,电路原理图如附图2 所示。3.3 键盘检测模块3.3.1 键盘设置键盘输入采用4*4的矩阵键盘。4*4键盘分别与P3.0P3.7相连。P3.0P3.3作为输入口(回送线),P3.4P3.7作为输出口(扫描线)。16个按键分别用于控制数字“09”以及数学运算符号“+、-、*、/”。 键盘模块电路如下图所示: 图6 键盘模块电路3.3.2 键盘原理当进行扫描时,扫描信号由列引脚输入键盘。以1000、0100、0010 和0001 的顺序每次扫描不同的列,然后读取列引脚的信号就可以判断是哪个键被按下。识别键盘上哪个键被压下的过程的扫描步骤:1.检测是否所有键都都松开了,

15、若没有则反复检测。2.但所有键都松开了,再检测是否有键压下,若无键一下则反复检测。3.如有键压下,要消除键抖动,确认有键压下。4.对压下的键进行编码,将该键的行列信号转换成16 进制码,由此确定哪个键被压下了。如出现多键重按的情况,只有在其它键均释放后,仅剩一个键闭合时,才把此键当作本次压下的键。5.该键释放后,再回到2。4 系统工作流程系统在开机上电后,系统处于等待状态,没有任何动作。等待输入数字以及运算符号,一旦有相应的按键按下,系统就会执行相应的动作。5 详细仪器清单 表格 1仪器清单仪器名称数量STC89C5211602液晶显示屏1按键166 总结与思考电子设计正在当今社会发挥越来越重要的作用,其采用的软硬件结合技术也逐渐成熟,该模拟系统正是采用软硬相结合的方法实现的。STC89C52是一种低功耗、高性能CMOS 8位微控制器,具有8K在

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1