本文设计基于AT89S52单片机的简易计算器。它的功能是:
(1)计算器至少能正常显示8位数。
(2)卡机时,显示0。第一次按下时,显示D1;第二次按下时,显示D1D2。
(3)计算器能对整数进行简单的加、减、乘、除四则运算,在做除法时能自动舍去小数部分。
(4)运算结果超过可显示的位数时能进行出错提示。
总体设计计算器以AT89S52单片机为核心芯片,通过扫描键盘来得到数据,另外通过CPU将得到的数据按要求进行运算并将结果送到显示电路进行显示。
框图设计基于AT89S52单片机的简易计算器由电源电路、单片机主控电路、按键电路、显示电路和复位电路几部分组成,框图组成如下图所示。
基于AT89S52单片机的简易计算器系统框图
系统设计 电路原理图
基于AT89S52单片机简易计算器电路原理图
程序流程图由于本设计主要是算法问题,所以程序采用C语言编写。主函数对单片机进行初始化,并不断调用扫描函数和运算函数。显示函数采用1ms定时中断来对显示数据进行实时跟新。基于AT89S52单片机简易计算器程序流程图如下图所示。
简易计算器程序流程图
代码编写#include P #include《》
#define LEDS 8
/***按键程序***/ char keyscan();
/***显示程序***/ void display();
char dsp[9]={0,0,12,12,12,12,12,12,12}; //初始化显示数组
/***计算程序***/
void calculate(char k,char c1[8],char c2[8]);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)