




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、AT89C51单片机简易计算器得设计一、总体设计根据功能与指标要求,本系统选用MCS-5系列单片机为主控机。 通过扩展必要得外围接口电路,实现对计算器得设计。具体设计如下:(1)由于要设计得就是简单得计算器,可以进行四则运算,为 了得到较好得显示效果,采用LCD显示数据与结果。(2)另外键盘包括数字键(09)、符号键(+、-、x、+)、 清除键与等号键,故只需要16个按键即可,设计中采用集成得计算 键盘。(3)执行过程:开机显示零,等待键入数值,当键入数字,通 过LCD示出来,当键入+、-、*、/运算符,计算器在内部执行数值 转换与存储,并等待再次键入数值,当再键入数值后将显示键入得数 值,按
2、等号就会在LCDt输出运算结果。(4)错误提示:当计算器执行过程中有错误时,会在 LCDt显示 相应得提示,如:当输入得数值或计算得到得结果大于计算器得表示 范围时,计算器会在LCDt提示溢出;当除数为0时,计算器会在LCD 上提示错误。系统模块图:圏1系筑方案图二、硬件设计(一)、总体硬件设计本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用 4*4键盘;利用MM74C92为4*4得键盘 扫描IC,读取输入得键值。总体设计效果如下图:*3 呼 E*Cdf/三二Clb箭也1H'li- -fnTp l.p 切屮町紅1Dl-llJ TD + Td g电
3、1 *i>H -rn憎起二世Pn L 4TT311 叩 “ebj n丄 MUIJtL-J.-VMJts时4竹 陀站4"Z TZnv=1 QRtDN 1 PL 二巧.155讣:*)网1rr-HPl %T1PM百E.N C Fil rP) J耶.ryua-B. 旨 Mb TH1STT H -.勞.£J_: R*:奇的I mIHUlkEMnirIt0 B.Ea(二)、键盘接口电路计算器输入数字与其她功能按键要用到很多按键,如果采用独立按键得方式,在这种情况下,编程会很简单,但就是会占用大量得I/O 口资源,因此在很多情况下都不采用这种方式, 而就是采用矩阵键盘 得方案。矩阵
4、键盘采用四条I/O线作为行线,四条I/O线作为列线组 成键盘,在行线与列线得每个交叉点上设置一个按键。这样键盘上按 键得个数就为4X 4个。这种行列式键盘结构能有效地提高单片机系统 中I/O 口得利用率。矩阵键盘得工作原理:计算器得键盘布局如图2所示:一般有16个键组成,在单片机中 正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也 最常用DB:*0回冃图2矩阵键盘布局图1旧 11*_1'1 Q:11<1 创一'1Utu矩阵键盘内部电路图如图3所示:为了进一步节省单片机I/O 口资源,我们在设计中使用了 MM74C92芯片。MM74C92就是一款4*4键盘扫描
5、IC,它可检测到与 之相连得4*4键盘得按键输入,并通过数据输出口将按键相应得编码 输出。其引脚图如图4所示:图4 MM94C22硬件图MM74C922I 脚说明:(1) Y1Y4 (脚1脚 4): 44键盘第一列至第四。X1X4 (脚11、10、8、7): 44键盘第一行至第四行。 DOA DOD(Dataout AD,脚 1417):按键之 BCD码输出,其 中 DOA为 LSB DOD MSBVCC (脚18):电源脚,+3V+15V ab126计算公式大全(5) GND (脚9):接地管脚。新艺图库(6) OSC (Oscillator ,脚5):键盘扫描电路之频率所需外加电容 得连引
6、脚。KBM (Keyboard Mask,脚6):内部消除开关弹跳电路所外加电 容得引脚。(8) OE (Out put En able,脚13):芯片致能脚,接低电位可使芯片 致能。(9) DA (Data Available ,脚12):数据有效输出脚。任一按键按 下时,此脚位会输出高电位,按键释放后此脚又会恢复为低电位。MM74C92对各按键得响应如下表所示:Truth Tablesp(i isD'thfougti 11)SwitchPosition "d N T AO uTABC0£ (Note 101234579 a 1011¥1X1 Y1JC2
7、 V1,X3 YtX4 Y2.X1 Y2.X2 V2,X3 ¥2X4 Y3,X1 Y3,X2 Y3Jt3fl0 (J c00000QQ'O'000001000如下图5所示,在本设计中,计算器输入键盘得4条行线、列线 分别连接到MM74C92得X1-X4、Y1-Y4引脚,MM74C92得数据输出 口与单片机得P2 口相连,MM74C92得DA引脚经过一个非门连接到 单片机得/INTO脚,当MM74C92检测到键盘输入时,DA产生高电平, 与之相连得/INTO检测到低电平,给单片机一个中断,单片机从P2口得低四位读入键盘上按下得键得值。 十Qu3切U3强目- - - -
8、- - _ . . -£.nHfU1 -Keiut 9ECXIK4Y1Vi73Y49 7-2-y;计:j5:S: 74HGM ,汀吕;T"tJt4?4CS22<T> 1a945I 612i 3QLC-JClAc寸(Pins 13 ffiroijij,hi 119Switch Poailitlon12Y4,X113¥4X214Y4,X315Y4,X416Y5(hole11, X117Y5 fNote 1), X2IB¥6 fNorte 1h X31»¥6 Note 1). X4DA A01锁0101T 000110011A
9、C111I00000 011110000U FUiNoTw 1 TiDi0fl01111图5 键盘接口电路图(三)LCD显示模块本设计采用LCD液晶显示器来显示输出数据。通过D0-D7引脚向 LCD写指令字或写数据以使LCD实现不同得功能或显示相应数据。 - LCDI' LMJ3L-TD<t总奥 eaaaaBe&斗謂I耶国申匪目皐创图6 LCD模块(四)运算模块(单片机控制)MCS-51单片机就是在一块芯片中集成了 CPU RAM ROM定时器 /计数器与多功能I/O等一台计算机所需要得基本功能部件。如果按功 能划分,它由如下功能部件组成,即微处理器(CPU、数据存储器(
10、RAM、程序存储器(ROM/E PROM并行I/O 口、串行口、定时器 /计数器、中断系统及特殊功能寄存器(SFR。单片机就是靠程序运行得,并且可以修改。通过不同得程序实现 不同得功能,尤其就是特殊得独特得一些功能,通过使用单片机编写 得程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片 机作为计算器得主要功能部件,可以很快地实现运算功能。三、软件设计现实生活中人们熟知得计算器,其功能主要如下:1、2、3、4、键盘输入;数值显示;力口、减、乘、除四则运算;对错误得控制及提示;1、2、3、4、针对上述功能,计算器软件程序要完成以下模块得设计: 键盘输入检测模块LCD显示模块;算术运算模块
11、错误处理及提示模块。系统总流程图分块程序设计1、 键盘输入检测程序设计 有键按下时,单片机响应外部中断 0,转入外部中断 0 中断处理函数, 在中断处理函数中完成对按键得判断,以进行下一步得程序处理。 /* 外部中断 0处理函数 void INT_0( void ) interrupt 0 key=translate(P2&0x0f); if (key<= '9' &&key>='0' )*/using 0/ 判断按下得键就是否为数值num=num*10+(key- '0' if (operators>0
12、) y=num; iny=1;else x=num;if (num<134217728&&num>-134217728) / 当前数值就是否超出限定范围 display(num);elsedataoverflow();); elseswitch (key) case'c' : x=0; y=0; num=0; iny=0; operators=0; display(num); break ;casearithmetic(); iny=0; operators=0; num=0; break ;'+' : if (operators)
13、arithmetic(); operators=1; num=0; break ;case '-' :if (operators) arithmetic(); operators=2; num=0; break ;case '*' :if (operators)casearithmetic(); operators=3; num=0; break ;case '/' :if (operators) arithmetic(); operators=4;num=0; break ;2、 利用功能或显示相应数据。LCD显示程序设计LCD静态显示,通过程
14、序向LCD写指令字或数据使LCD完成不同/*LCD 初始化函数 void*/init_LCM()write_(0x30);write_(0x30);write_(0x30);write_(0x38);write_(0x08);write_(0x01);write_(0x06);write_(0x0e);/*LCD 写数据函数 */ write_data( char ddata)voidRS=1;/* 写指令 */R_W=0;EN=1;/* 使能信号开 */P仁ddata; /*将数据送入p1 口 */EN=0;/* 使能信号关 */ check_BF();/*LCD 写指令函数 */ writ
15、e_( char mand)voidRS=0;/* 写指令 */R_W=0;EN=1;/*使能信号开*/P仁mand/*将数据送入p1 口 */EN=0;/* 使能信号关 */check_BF();/*LCD 检查忙碌函数 */void check_BF()char i,x=0x80;P1=0xff;while (x&0x80)RS=0;R_W=1;EN=1;x=P1;EN=0;for (i=0;i<10;i+);EN=0;/* 关闭使能信号 */*LCD 清屏函数 */ void clearLCD() write_(0x01);/*LCD 显示函数 */ void displa
16、y( long a)long temp,b,c=-1; int lenth=1,i,j; clearLCD();if (a<0) a=a*c;write_data( '-' ); temp=a;while (temp=temp/10)!=0) lenth+;for (i=lenth;i>0;i-) b=1;for (j=0;j<i-1;j+) b=b*10; write_data(0x30+a/b); a=a%b;算术运算程序设计3、4、错误处理及提示程序设计/*除数为处理函数 *void dealerror()int i=0;clearLCD();for (i=0;i<5;i+)write_data(er
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025外籍人员劳务合同
- 2025物业委托管理合同模板
- 化工过程安全管理讲座
- 版二手房购买合同
- 2025机械设备购销合同范本3
- 2025如何辨别工程承包合同的有效性
- 煤矿顶板事故案例分析与经验交流
- 2025室内墙面装修合同模板
- 大学课件生物工程设备离子交换分离原理及设备
- 第十七章-防治煤与瓦斯突出的区域性措施
- TCI 324-2024 冠心病患者防治精准护理技术规范
- 港航实务 皮丹丹 教材精讲班课件 51-第2章-2.5.2-铺面基层施工
- 桥门式起重机拆卸、搬迁、安装施工方案
- Unit 3 Sports and Fitness Reading for Writing 词汇与写作 教学设计-2023-2024学年高一上学期英语人教版(2019)必修第一册
- 灌注桩后注浆施工技术规程1
- 《大数据导论(第2版)》全套教学课件
- 职业病防护设施与个体防护用品的使用和维护
- 新疆能源(集团)有限责任公司招聘笔试题库2024
- AECOPD合并呼吸衰竭护理查房
- 2024年全国高中数学联赛北京赛区预赛一试试题(解析版)
- 2025届新高考化学热点精准复习 高三化学复习备考的方法与策略
评论
0/150
提交评论