AT89C51单片机C实现简易计算器_第1页
AT89C51单片机C实现简易计算器_第2页
AT89C51单片机C实现简易计算器_第3页
AT89C51单片机C实现简易计算器_第4页
AT89C51单片机C实现简易计算器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、AT89C51单片机简易计算器的设计一、总体设计根据功能和指标要求,木系统选用MCS-51系列单片机为主控机。 通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了 得到较好的显示效果,采用LCD显示数据和结果。(2)另外键盘包扌舌数字键(09)、符号键(+、-、x、三)、 清除键和等号键,故只需要16个按键即可,设计中采用集成的计算 键盘。(3)执行过程:开机显示零,等待键入数值,当键入数字,通 过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值 转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数 值

2、,按等号就会在LCD上输出运算结果。(4)错误提示:当计算器执行过程中有错误时,会在LCD上显示 相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示 范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。系统模块图:图1系统方案图二、硬件设计(一)、总体硬件设计本设计选用AT89C51单片机为主控单元。显示部分:釆用LCD静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。总体设计效果如下图:旳山畑F0 M旳勿. F0 4A5旳WDP3.iTnP】x.TTTuM.nrrplP3HDP3.MJE Pl倆?3UAVIB

3、V?CYMD4蚩10FP(二)、键盘接口电路计算器输入数字和其他功能按键要用到很多按键,如果米用独立 按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口 资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方 案。矩阵键盘采用四条I/O线作为行线,四条I/O线作为列线组成键 盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的 个数就为4X4个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。矩阵键盘的工作原理:计算器的键盘布局如图2所示:一般有16个键组成,在单片机中 正好可以用一个P口实现26个按键功能,这种形式在单片机系统中也 最常用。9 6

4、3 二口 8 5 0 37 4A B c D 图2 矩阵键盘布局图矩阵键盘内部电路图如图3所示:厂Y1Y4 (脚1脚4) : 44键盘第一列至第四。 X1X4 (脚11、10、8、7): 44键盘第一行至第四行。DOADOD (DataoutAD,脚1417):按键之BCD码输出,其中 DOA 为 LSB, DOD 为 MSB。 VCC (脚18 ):电源脚,+3V+15Vo abl26计算公式大全 GND (脚9):接地管脚。新艺图库 OSC (Oscillator,脚5):键盘扫描电路之频率所需外加电容的连 fitQ一IiirH3 j1G-3-厂Hr为了进一步节省单片机I/O 口资源,我们

5、在设计中使用了MM74C922芯片。MM74C922是一款4*4键盘扫描IC,它可检测到与 之相连的4*4键盘的按键输入,并通过数据输出口将按键相应的编码 输出。其引脚图如图4所示:图4MM94C22硬件图MM74C922引脚说明:引脚。KBM (Keyboard Mask,脚6):内部消除开关弹跳电路所外加电 容的引脚。OE (Output Enable,脚13):芯片致能脚,接低电位可使芯片致 能。(9) DA (Data Available,脚12):数据有效输岀脚。任一按键按下时, 此脚位会输出高电位,按键释放后此脚又会恢复为低电位。MM74C922对各按键的响应如下表所示:Truth

6、 Tables(Pins 0 through 11)Switch Position0Y1.X11 Y1?X22Y1.X33Y1.X44Y2.X15Y2.X26Y2.X37Y2.X48Y3.X19Y3.X210Y3.X311Y3,X4DA A010101010101T 8001100110011A C000011110000O D000000001111U E (Note 1)T000000000000(Pins 12 through 19)Switch Position12Y4.X113Y4.X214Y4?X315 Y4,X416丫 5(Note 1). X117Y5 (Note 1), X2

7、18Y5 (Notel), X319Y6 (Note 1),X4DAA01010101TB0011D011AC111100000D11110000UE(Note1)00001111TNote 1:Omntor MM74C922如下图5所示,在本设计中,计算器输入键盘的4条行线、列线分别连接到MM74C922的X1-X4. Y1-Y4引脚,MM74C922的数据输出口与单片机的P2 口相连,MM74C922的DA引脚经过一个非门连 接到单片机的/INTO脚,当MM74C922检测到键盘输入时,DA产生 高电平,与之相连的/INTO检测到低电平,给单片机一个中断,单片 机从P2 口的低四位读入键盘

8、上按下的键的值。C1.U3:B.74CW TXr?. rf74C922 TB*X1X2X3X4Y1Y2Y3Y4AB CDBMSCA-E Ko D-o吐2 .12 nr j 图5 键盘接口电路图(三)、LCD显示模块本设计采用LCD液晶显示器来显示输出数据。通过D0-D7引脚向LCD写指令字或写数据以使LCD实现不同的功能或显示相应数据。LCD!图6 LCD模块(四)运算模块(单片机控制)MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时 器/计数器和多功能I/O等一台计算机所需要的基本功能部件。如果按 功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储 器(RAM)

9、、程序存储器(ROM/EPROM)、并行I/O 口、串行口、 定时器/计数器、中断系统及特殊功能寄存器(SFR) o单片机是靠程序运行的,并且可以修改。通过不同的程序实现不 同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程 序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作 为计算器的主要功能部件,可以很快地实现运算功能。三、软件设计现实生活中人们熟知的计算器,其功能主要如下:1、键盘输入;2、数值显示;3、力口、减、乘、除四则运算;4、九对错误的控制及提示;针对上述功能,计算器软件程序要完成以下模块的设计:1、键盘输入检测模块2、LCD显示模块;3、算术运算模块4、错误

10、处理及提示模块。系统总流程图分块程序设计1、 键盘输入检测程序设计有键按下时,单片机响应外部中断0,转入外部中断0中断处理函数,在中断处理函数中完成对按键的判断,以进行下一步的程序处理。拿* “*外部中断0处理函数void INT_0(void) interrupt 0 using 0key=translate(P2&OxOf); if(key=,01)判断按卜的键是否为数值n u m=num 10+( key-*O); if (operators0)y=num;iny=l;elsex=num;if(num.8)当前火讥是否超出限二idisplay(num);elsedataoverflow(

11、);elseswitch(key)case c:x=0;y=0; num=0; iny=O; operators=0;display(num);break;case =*:arithmetic();iny=O;operators=0;num=0;break;caseif (operators)arithmetic();operators=l;num=0;break;case,J:if (operators)arithmetic();operators=2;num=0;break;caseif (operators)arithmetic();operators=3;num=0;break;cas

12、eif (operators)arithmetic();operators=4;num=0;break;2、LCD显示程序设计利用LCD静态显示,通过程序向LCD写指令字或数据使LCD完成不Pl=Oxff;while(x&0x80)RS=O;R_W=1;EN=1;x=Pl;EN=O;for (i=0;i10;i+);EN=0;/*关闭使能信:严/void clearLCD() write_com(0x01);/LCD 显示函数void display(longa) long tempbc; int lenth=l/i/j; clearLCD(); if(a0;i-)b=l;for(j=0;jH;j+)b=bT0;write_data(0x30+a/b);a=a%b;3、算术运算程序设计4、错误处理及提示程序设计“杠除数为处理函数杠 int i=0;clearLCD();for(i=0;i5;i+)write_data(error(i);/数值溢出处理函数void dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论