基于MSP430F2254单片机计算器设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MSP430F2254单片机计算器设计

基于MSP430F2254单片机计算器设计   [摘要] 本系统采用MSP430F2254单片机作为控制中心,由键盘输入实现加、减、乘、除、开方并通过键盘复用(shift)实现了清零、平方、取倒数等功能,经过单片机运算,并将运算式和结果显示在LCD上。键盘输入采用中断方式,节省了CPU的资源,提高CPU的工作效率。   [关键词] MSP430 键盘 LCD1602 计算器      一、方案选择与论证   1、系统组成[1]   本系统由单片机控制模块、键盘输入模块、LCD显示模块三个基本模块组成,由各个模块组成的系统框图如图1所示。      图1   2、各模块方案选择与论证   (1)单片机控制中心模块[2]   单片机是整个系统中最主要的控制和运算模块,它就像是指挥中心指挥调度其他的两个模块。   方案一:采用8051单片机。51单片机具有布尔处理功能,并且可以进行位操作,但是由于目前市场的发展趋势51单片机渐渐的被52系列单片机和MSP430单片机所替代。   方案二:采用MSP430单片机。MSP430单片机具有低功耗、速度快、集成度高的特点,并且抗干扰能力强、保密性好、价格合理,430单片机的P1和P2口可以作为外部中断,这正好满足了系统采用键盘中断的要求。MSP430单片机市场发展迅速,利于以后的学习和运用。但是430单片机不能进行位操作。   进过比较后,根据要求,本系统选用方案二。   (2)键盘输入模块   键盘输入模块是系统中的数据信息来源,将键值输入到单片机中进行处理。   方案一:采用扫描方式输入。键盘扫描方式程序编写简单易懂,容易实现,但是它要求CPU不断的对键盘进行扫描,大大的占用了CPU的资源,使得系统的功耗增高,浪费了时间。   方案二:采用中断方式输入。中断方式编写程序较为复杂,通过每按一次键产生一次中断,CPU相应中断,这种方式CPU只需要在有中断产生时再去相应键盘的输入程序即可,在没有中断时,CPU可以进行其它工作,也可以进入低功耗模式,很大程度上提高了CPU的利用率,节约了资源。   经过比较之后,本系统选用方案二。   (3)显示模块    显示是最终运算式和结果输出模块,也是最直接的显示本系统功能的模块。   采用LCD1602液晶显示屏。液晶显示器具有显示质量高、发光恒定、不会刷新亮点和闪烁、体积小、电流小、字迹清晰以及功耗低的特点。本实验才用了16×2个字符,5×7点阵,8位数据接口的液晶显示。LCD1602市场应用非常普遍,它显示16×2个字符已经完全能够满足计算器的要求,且第一行显示运算式,第二行用于显示运算结果,清晰明了,视觉效果较好。   二、硬件系统设计与实现   1、单片机模块[3]   关于单片机芯片的详细介绍见文献[3]。   2、键盘输入模块   本系统中采用的是4*4的键盘,其中每一列均通过10K的上拉电阻接至电源端。外接上拉电阻可以起到保护作用,以及使得键盘取值更加稳定,不易出错。   3、LCD1602显示模块[4]   本系统中采用的LCD1602显示16*2个字符,即一行显示16个,分为两行显示。通过软件编程,第一行用于显示计算式,第二行用于显示运算结果,使得其清晰明了。   三、软件系统设计及其实现   1、单片机初始设置[5]   由于本系统的程序并不是很复杂,所以首先我们关闭看门狗,以避免系统运行不正常。对于键盘中断输入要使用的P1口的低四位设置为行输入方向,高四位为输出方向,P2口的低四位设置为列输出方向。P3、P4连接LCD,均为输出方向。   2、LCD1602显示设置[4]   LCD显示包括忙检查,写控制字设置,写内容设置,显示位置设置以及对LCD1602进行初始化设置(包括清屏等)。这些显示设置均由设定1602的三个状态端口确定,即RS数据/命令选择端(1/0),R/W读写选择端(1/0),E使能信号(读时,E=1,写时,E=010高脉冲)。   3、键盘中断输入模块   (1)键盘取值分析   键盘如何能够准确取值是系统进行运算的基础,应该尽量保证取值的正确性。因此在键盘取值阶段,我们选择了双重保险。定义一个变量key_pass()。首先我们先通过P1口的低四位输入的哪一位为0判断出是哪一行有键按下,再分别置每一列输出为1,即P2口的低四位分别置为高电平,其余三位为低电平,再判断此时该行是否相应的变为高电平,消除按键抖动,如果该行变为高电平,则判断为该行与该列相交的键被按下,取出该键的键值。其流程为图3所示。       图3   (2)显示结果   定义显示结果函数xianshi(int res),因为实现的计算器为输入两个两位数的运算,结果

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档