AT89S52单片机实现简易计算器(C语言程序)

AT89S52单片机实现简易计算器(C语言程序),第1张

本文设计基于AT89S52单片机的简易计算器。它的功能是:

(1)计算器至少能正常显示8位数。

(2)卡机时,显示0。第一次按下时,显示D1;第二次按下时,显示D1D2。

(3)计算器能对整数进行简单的加、减、乘、除四则运算,在做除法时能自动舍去小数部分。

(4)运算结果超过可显示的位数时能进行出错提示。

总体设计

计算器以AT89S52单片机为核心芯片,通过扫描键盘来得到数据,另外通过CPU将得到的数据按要求进行运算并将结果送到显示电路进行显示。

框图设计

基于AT89S52单片机的简易计算器由电源电路、单片机主控电路、按键电路、显示电路和复位电路几部分组成,框图组成如下图所示。

AT89S52单片机实现简易计算器(C语言程序),AT89S52单片机实现简易计算器(C语言程序),第2张

基于AT89S52单片机的简易计算器系统框图

系统设计 电路原理图

AT89S52单片机实现简易计算器(C语言程序),AT89S52单片机实现简易计算器(C语言程序),第3张

基于AT89S52单片机简易计算器电路原理图

程序流程图

由于本设计主要是算法问题,所以程序采用C语言编写。主函数对单片机进行初始化,并不断调用扫描函数和运算函数。显示函数采用1ms定时中断来对显示数据进行实时跟新。基于AT89S52单片机简易计算器程序流程图如下图所示。

AT89S52单片机实现简易计算器(C语言程序),AT89S52单片机实现简易计算器(C语言程序),第4张

简易计算器程序流程图

代码编写

#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]);

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2718167.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存