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