《AT89C会员共享51单片机C实现简易计算器,可在线阅读,更多相关信息《AT89C请在人文库网上搜索51单片机C实现简易计算器(14页收藏版)。
1、AT89C51单片机简易计算器的设计1.根据功能和指标要求,选择木制系统MCS-51系列单片机为主控机。 对计算器的设计是通过扩展必要的外围接口电路来实现的。具体设计如下:(1)为了设计简单的计算器,可以进行四个操作 为了获得更好的显示效果,使用它LCD显示数据和结果。(2)键盘包舌数字键(09)( 、-、x、三)、 清除键和等号键,所以只需要16个键,集成计算用于设计 键盘。(3)执行过程:启动显示零,等待输入值,当输入数字时 过LCD显示,当键入时 、-、*、/运算符,计算器在内部执行数值 转换和存储,等待再次输入值,再次输入值后显示输入值 值。
二、按等号就会在LCD上输出运算结果。(4)错误提示:计算器执行过程中出现错误时,会出现错误LCD上显示 当输入值或计算结果大于计算器算结果大于计算器时 计算器在范围内LCD提示溢出;当除数为0时,计算器将在LCD 提示错误。系统模块图:图1系统方案图2。硬件设计(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(2)键盘接口电路计算器输入数字等功能按钮需要大量按钮,如果米用独立 在这种情况下,编程会很简单,但会占用很多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硬件图MM74C引脚说明:引脚。KBM (Keyboard Mask,脚6):内部消除开关弹跳电路外加电 容的引脚。OE (Output Enable,脚13):芯片致能脚,连接低电位会导致芯片 能。(9) DA (Data Available,脚12):数据有效输出脚。按下任何按钮时, 该脚位输出高电位,按钮释放后,该脚将恢复到低电位。MM74C对每个按钮的响应如下表所示:Truth Table。
6、s(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), X218Y5 (。
7、Notel), X319Y6 (Note 1),X4DAA01010101TB0011D011AC111100000D11110000UE(Note1)00001111TNote 1:Omntor MM74C922如下图5所示,在本设计中,计算器输入键盘的四条行线和列线分别连接到MM74C922的X1-X4. Y1-Y4引脚,MM74C922的数据输出口和单片机P2 口相连,MM74C922的DA引脚穿过非门连 接收单片机/INTO脚,当MM74C当922检测到键盘输入时,DA产生 与之相连的高电平/INTO检测到低电平,中断单片机,中断单片机 机从P2 口的低四位读入键盘上按下的键。
8、值。C1.U3:B.74CW *X1X2X3X4Y1Y2Y3Y4AB CDBMSCA-E Ko D-o吐2 .12 nr j 图5 键盘接口电路图(3)LCD采用显示模块本设计LCD显示输出数据的液晶显示器。通过D0-D7引脚向LCD写指令或数据LCD实现不同的功能或显示相应的数据。LCD!图6 LCD模块(4)运算模块(单片机控制)MCS-51单片机集成在芯片中CPU、RAM、ROM、定时 器/计数器和多功能I/O等待计算机所需的基本功能部件。如果按 它由以下功能部件组成,即微处理器(CPU)、数据存储 器(RAM)、程序存储器(ROM/EPROM)、并行I/O。
9、 口,串行口, 定时器/计数器、中断系统和特殊功能寄存器(SFR) o单片机由程序操作,可修改。通过不同的程序实现不同的程序 通过使用单片机编写的程序,具有相同的功能,特别是一些特殊和独特的功能 高智能、高效、高可靠性的顺序!因此,我们使用单片机 为计算器的主要功能部件,可以很快地实现运算功能。3、现实生活中熟悉的软件设计计算器的主要功能如下:1.键盘输入;2.数值显示;3.力、减、乘、除四个操作;4.9对错误的控制和提示;对于上述功能,计算器软件程序应完成以下模块的设计:1。键盘输入检测模块2LCD显示模块;3.算术操作模块4.错误处理和提示模块。系统总流程图分块程序设计1 。
10.键盘输入检测程序设计按键时,单片机响应外部中断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)目前的火冷是否超过2idisplay(num);elsedataoverflow();elseswitch(key)case c。
11、: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;caseif (operators)arithmet。
12、ic();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;i0;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 dataoverflow()int i=0;clearLCD();for(i=0;i8;i )write_data(overflowi);四、在线调试过程中,一开始没有做数值溢岀方而的控制,导致LCD输入数据或计算结果与实际不一致。计算后得到有 符号长整形的表示范围为-48-47,2的30次方24是木计算器中最大的 为控制数值溢出,值溢出,修改后,LCD显示正确。