本文設(shè)計(jì)基于A(yíng)T89S52單片機(jī)的簡(jiǎn)易計(jì)算器。它的功能是:
(1)計(jì)算器至少能正常顯示8位數(shù)。
(2)卡機(jī)時(shí),顯示0。第一次按下時(shí),顯示D1;第二次按下時(shí),顯示D1D2。
(3)計(jì)算器能對(duì)整數(shù)進(jìn)行簡(jiǎn)單的加、減、乘、除四則運(yùn)算,在做除法時(shí)能自動(dòng)舍去小數(shù)部分。
(4)運(yùn)算結(jié)果超過(guò)可顯示的位數(shù)時(shí)能進(jìn)行出錯(cuò)提示。
總體設(shè)計(jì)
計(jì)算器以AT89S52單片機(jī)為核心芯片,通過(guò)掃描鍵盤(pán)來(lái)得到數(shù)據(jù),另外通過(guò)CPU將得到的數(shù)據(jù)按要求進(jìn)行運(yùn)算并將結(jié)果送到顯示電路進(jìn)行顯示。
框圖設(shè)計(jì)
基于A(yíng)T89S52單片機(jī)的簡(jiǎn)易計(jì)算器由電源電路、單片機(jī)主控電路、按鍵電路、顯示電路和復(fù)位電路幾部分組成,框圖組成如下圖所示。
基于A(yíng)T89S52單片機(jī)的簡(jiǎn)易計(jì)算器系統(tǒng)框圖
系統(tǒng)設(shè)計(jì)
電路原理圖
基于A(yíng)T89S52單片機(jī)簡(jiǎn)易計(jì)算器電路原理圖
程序流程圖
由于本設(shè)計(jì)主要是算法問(wèn)題,所以程序采用C語(yǔ)言編寫(xiě)。主函數(shù)對(duì)單片機(jī)進(jìn)行初始化,并不斷調(diào)用掃描函數(shù)和運(yùn)算函數(shù)。顯示函數(shù)采用1ms定時(shí)中斷來(lái)對(duì)顯示數(shù)據(jù)進(jìn)行實(shí)時(shí)跟新?;贏(yíng)T89S52單片機(jī)簡(jiǎn)易計(jì)算器程序流程圖如下圖所示。
簡(jiǎn)易計(jì)算器程序流程圖
代碼編寫(xiě)
#include P #include《》
#define LEDS 8
/***按鍵程序***/ char keyscan();
/***顯示程序***/ void display();
char dsp[9]={0,0,12,12,12,12,12,12,12}; //初始化顯示數(shù)組
/***計(jì)算程序***/
void calculate(char k,char c1[8],char c2[8]);
評(píng)論