基于51单片机的多功能计算器设计

合集下载

51单片机实现多模式计算器

51单片机实现多模式计算器

51单⽚机实现多模式计算器介绍单⽚机型号: 普中89C51能够最⼤输出4位数结果,保留两位⼩数。

实现计算器⼀些功能。

适⽤于C51单⽚机。

模式1: 加减陈除模式2: 三⾓函数模式3: 阶乘,开⽅,e的x次⽅,log运算若有错误和不规范之处,还恳请各位看官多多指教。

经验吸取保留两位⼩数的时候由于c语⾔float精度、⽆符号整数和浮点数强制类型转换等问题,总是有误差。

我最后选择将结果加上0.005再进⾏强制类型转换(向下取整)从⽽模拟了四舍五⼊,问题得以解决。

long型很重要,单⽚机⾥float 和long型是4个字节,⽽int是2个字节若处理的数据⼤于255,不想溢出的话就不要⽤int调试的时候,可以使⽤在怀疑有错误的地⽅加上led显⽰,或者数码管显⽰的代码。

根据单⽚机上的显⽰来获取错误反馈。

代码/*Author: WuYE*/#include "reg52.h"#include "math.h"#include "string.h"typedef unsigned char u8;typedef unsigned int u16;#define GPIO_KEY P1 //定义数码管为P1引脚#define GPIO_DIG P0 //定义矩阵键盘引脚#define PI 3.14159sbit LSA = P2 ^ 2; //定义数码管引脚sbit LSB = P2 ^ 3; //sbit LSC = P2 ^ 4; //sbit k1 = P3 ^ 1; //定义独⽴按键引脚sbit k2 = P3 ^ 0; //sbit k3 = P3 ^ 2; //sbit k4 = P3 ^ 3; //u8 code numbertube[20] = { //定义数码管显⽰的数值0x3f, 0x06, 0x5b, 0x4f, 0x66, //显⽰0~9数字0x6d, 0x7d, 0x07, 0x7f, 0x6f, //0Xbf, 0x86, 0xdb, 0xcf, 0xe6, //显⽰0~9带⼩数点数字0xed, 0xfd, 0x87, 0xff, 0xbf //};u8 opkenkey = 0; //按下数码管不再显⽰0000u8 model = 0; //计算器模式为初始模式u8 AllowOutPutResult = 0; //默认不允许输出结果,因为不满⾜计算条件u8 numberseat = 0; //保存当前输⼊的数字的位数u8 number[4]; //保存输⼊的数字的数组u8 StopCalc = 0; //计算结束后就关闭计算器计算功能,但是按键检测功能仍然活跃。

基于51单片机的计算器设计

基于51单片机的计算器设计

基于51单片机的计算器设计计算器作为一种常用的电子设备,广泛应用于各个领域。

在本文中,我们将基于51单片机来设计一个简单的计算器,并对其进行详细介绍。

一、设计目标我们所设计的计算器需要具备以下功能:1.实现基本的算术运算,包括加、减、乘、除等;2.具备显示功能,能够将输入和运算结果以数字的形式显示在液晶屏上;3.提供清零和删除功能,方便计算器的操作;4.具备较高的计算精度和稳定性。

二、硬件设计计算器的硬件设计主要包括键盘输入、液晶屏输出和计算程序控制三个部分。

1.键盘输入为了简化设计的复杂度,我们采用矩阵键盘来实现输入功能。

矩阵键盘由多个行和多个列交叉连接而成,通过扫描行和列的方式来检测键盘输入的按键信息。

2.液晶屏输出我们选择16x2字符液晶显示屏来作为计算结果的输出设备。

这种液晶屏可以显示16个字符,每个字符由5x8像素点阵组成,具备较好的显示效果。

3.计算程序控制我们将基于51单片机来编写计算器的计算程序,并通过电路连接键盘输入和液晶屏输出设备。

通过读取键盘输入的按键信息,计算程序能够判断用户输入的数字和操作符,并进行相应的计算操作。

最后,计算结果将以数字的形式显示在液晶屏上。

三、软件设计计算器的软件设计主要包括键盘扫描与输入处理、计算程序控制和液晶屏显示三个模块。

1.键盘扫描与输入处理通过循环扫描矩阵键盘的行和列,可以得到按键信息。

根据按键信息的不同,我们可以判断用户输入的数字和操作符,并将其传递给计算程序模块进行处理。

同时,我们需要对一些特殊按键(如清零和删除)做特殊处理。

2.计算程序控制计算程序模块将根据键盘输入的数字和操作符,进行相应的算术运算。

我们可以采用栈的数据结构来处理运算符和运算数,以实现复杂的算术运算。

3.液晶屏显示计算结果将以数字的形式显示在液晶屏上。

我们可以通过51单片机的GPIO口控制液晶显示屏的操作,包括写入指令和写入数据。

通过设定光标位置及写入数字数据,可以将计算结果显示在液晶屏的指定位置上。

基于51单片机的计算器设计实验报告(DOC)

基于51单片机的计算器设计实验报告(DOC)

基于51单片机的计算器设计实验报告班级:__12电子2_姓名:___风间__学号:___2015年1月6日一、实验目的1.初步尝试运用单片机进行系统设计;2.掌握矩阵键盘的中断扫描显示;3.掌握液晶或数码管的动态显示;4.掌握数据的存储和掉电保护。

二、实验设备及器材Keil c、 proteus、及单片机开发板。

三、实验内容基本要求:1完成标准型计算器的基本功能2.4*4矩阵键盘(0~9、+、-、*、/、=、%)进行数据的输入及加、减、乘、除基本运算,运用1602液晶或数码管进行显示3. 要求开机显示学号四、设计思路根据计算器的功能要求,选择AT89C51为主控机,通过扩展必要的外围接口电路,实现对计算器的设计。

外部主要由4*4矩阵键盘和一个液晶显示屏构成,内部由一块AT89C51单片机构成。

计算器电路包括四个模块:选用LCD作为显示部分,矩阵键盘作为输入部分,运算模块,单片机控制部分。

模块图如图所示:计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。

具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用1602液晶显示数据和结果。

(2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,需要16个按键。

(3)执行过程:开机显示学号,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。

线路原理框图如图所示。

五、基于proteus的硬件原理图六、软件流程图七、程序代码#include<reg51.h> //头文件#define unit unsigned int#define uchar unsigned charvoid xuehao(void);sbit SPK=P1^0;sbit lcden=P2^3;sbit rs=P2^4;sbit rw=P2^0;sbit busy=P0^7;char i,j,temp,num,num_1;long a,b,c; //a,第一个数 b,第二个数 c,得数float a_c,b_c;uchar flag,fuhao;//flag表示是否有符号键按下,fuhao表征按下的是哪个符号uchar code table[]={7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0,};uchar code table1[]={7,8,9,0x2f-0x30,4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30,0x2b-0x30};void delay(uchar z) // 延迟函数{uchar y;for(z;z>0;z--)for(y=0;y<110;y++);}void check() // 判断忙或空闲{do{P0=0xFF;rs=0;rw=1;lcden=0; //禁止读写delay(1); //等待,液晶显示器处理数据lcden=1; //允许读写}while(busy==1); //判断是否为空闲,1为忙,0为空闲}void write_com(uchar com) // 写指令函数{P0=com;rs=0;rw=0;lcden=0;check();lcden=1;}void write_date(uchar date) // 写数据函数{P0=date;rs=1;rw=0;lcden=0;check();lcden=1;}void init() //1602初始化函数{num=-1;lcden=1;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x80);write_com(0x01);num_1=0;i=0;j=0;a=0; //第一个参与运算的数b=0; //第二个参与运算的数c=0;flag=0;fuhao=0;SPK=0; //蜂鸣器打开delay(1000); //延时SPK=1; //蜂鸣器关闭}void keyscan() // 键盘扫描程序{P3=0xfe;if(P3!=0xfe){delay(20);if(P3!=0xfe){SPK=0;delay(1000);SPK=1;temp=P3&0xf0;switch(temp){case 0xe0:num=0;break;case 0xd0:num=1;break;case 0xb0:num=2;break;case 0x70:num=3;break;}}while(P3!=0xfe);if(num==0||num==1||num==2) //如果按下的是'7','8'或'9 {if(j!=0){write_com(0x01);j=0;}if(flag==0) //没有按过符号键{a=a*10+table[num];}else //如果按过符号键{b=b*10+table[num];}}else //如果按下的是'/'{flag=1;fuhao=4; //4表示除号已按}i=table1[num];write_date(0x30+i);}P3=0xfd;if(P3!=0xfd){delay(5);if(P3!=0xfd){SPK=0;delay(1000);SPK=1;temp=P3&0xf0;switch(temp){case 0xe0:num=4;break;case 0xd0:num=5;break;case 0xb0:num=6;break;case 0x70:num=7;break;}}while(P3!=0xfd);if(num==4||num==5||num==6&&num!=7) //如果按下的是'4','5'或'6' {if(j!=0){write_com(0x01);j=0;}if(flag==0){a=a*10+table[num];}else{b=b*10+table[num];}}else{flag=1;fuhao=3; //3表示乘号已按}i=table1[num];write_date(0x30+i);}P3=0xfb;if(P3!=0xfb){delay(5);if(P3!=0xfb){SPK=0;delay(1000);SPK=1;temp=P3&0xf0;switch(temp){case 0xe0:num=8;break;case 0xd0:num=9;break;case 0xb0:num=10;break;case 0x70:num=11;break;}}while(P3!=0xfb);if(num==8||num==9||num==10) //如果按下的是'1','2'或'3' {if(j!=0){write_com(0x01);j=0;}if(flag==0){a=a*10+table[num];}else{b=b*10+table[num];}}else if(num==11){flag=1;fuhao=2; //2表示减号已按}i=table1[num];write_date(0x30+i);}P3=0xf7;if(P3!=0xf7){delay(5);if(P3!=0xf7){SPK=0;delay(1000);SPK=1;temp=P3&0xf0;switch(temp){case 0xe0:num=12;break;case 0xd0:num=13;break;case 0xb0:num=14;break;case 0x70:num=15;break;}}while(P3!=0xf7);switch(num){case 12:{write_com(0x01);a=0;b=0;flag=0;fuhao=0;} //按下的是"清零"break;case 13:{ //按下的是"0"if(flag==0) //没有按过符号键{a=a*10;write_date(0x30);P1=0;}else if(flag==1) //如果按过符号键{b=b*10;write_date(0x30);}}break;case 14:{j=1;if(fuhao==1){write_com(0x80+0x4f); //按下等于键,光标前进至第二行最后一个显示处write_com(0x04); //设置从后住前写数据,每写完一个数据,光标后退一格c=a+b;while(c!=0){write_date(0x30+c%10);c=c/10;}write_date(0x3d);a=0;b=0;flag=0;fuhao=0;}else if(fuhao==2){write_com(0x80+0x4f);write_com(0x04);if(a-b>0)c=a-b;elsec=b-a;while(c!=0){write_date(0x30+c%10);c=c/10;}if(a-b<0)write_date(0x2d);write_date(0x3d);a=0;b=0;flag=0;fuhao=0;}else if(fuhao==3){write_com(0x80+0x4f);write_com(0x04);c=a*b;while(c!=0){write_date(0x30+c%10);c=c/10;}write_date(0x3d);a=0;b=0;flag=0;fuhao=0;}else if(fuhao==4){write_com(0x80+0x4f);write_com(0x04);i=0;c=(long)(((float)a/b)*1000);while(c!=0){write_date(0x30+c%10);c=c/10;i++;if(i==3)write_date(0x2e);}if(a/b<=0)write_date(0x30);write_date(0x3d);a=0;b=0;flag=0;fuhao=0;}}break;case 15:{write_date(0x30+table1[num]);flag=1;fuhao=1;} break;}}}void xuehao() //开机显示学号{write_com(0x80); //从第一行第一位开始write_date('1');write_date('2');write_date('0');write_date('0');write_date('4');write_date('0');write_date('1');write_date('2');write_date('1');write_date('7');}void main() //主函数{init();xuehao();while(1){keyscan();}}八、运行结果图开机显示学号:加法运算:乘法运算:九、扩展功能在基本的功能上加了蜂鸣器电路,使按键的时候能发出声音。

基于51单片机计算器设计

基于51单片机计算器设计

单片机设计报告设计题目:计算器学院:班级:学生姓名:指导教师:成绩:目录第1章绪论 (2)1.1 课题简介 (2)1.2 设计目的 (2)1.3 设计任务 (2)第2章电路结构及工作原理 (4)2.1 总体设计方案 (4)2.2 51系列单片机简介 (4)2.3 矩阵按键 (5)2.4 LCD显示 (6)2.5运算模块 (7)2.6总设计图 (7)第3章软件设计 (8)3.1软件流程图 (8)3.1.1 键盘模块设计流程图 (8)3.1.2显示模块流程图 (9)3.1.3计算模块程序流程 (9)3.2程序设计 (10)第4章调试与仿真 (20)4.1 C51单片机软件开发系统Keil (20)4.2 proteus的操作 (20)结论 (21)心得体会 (22)致谢 (23)参考文献 (24)第1章绪论1.1 课题简介当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活还是学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且比较容易出错。

计算器作为一种快速通用的计算工具方便了用户的使用。

计算器可谓是我们最亲密的电子伙伴之一。

本设计着重在于分析计算器软件可开发过程中的环节和步骤,并从时间经验出发对计算器设计做了详细的分析和研究。

单片机由于其微小的体积和极低的成本,广泛的应用于家电、工业控制等领域中。

在工业生产中,单片微型计算机是微型计算机的一个重要的分支,也是颇具生命力的机种。

单片微型计算机简称单片机,特别适用于控制领域,故又称微控制器。

本系统就是充分利用了AT89C51芯片的I/O引脚。

系统以采用51单片机实现能根据实际输入值显示并存储的功能,计算程序是参照课件。

至于数和功能,如果需要可以通过设计扩充系统来实现。

1.2设计目的通过本次项目设计,应用所学相关知识资料,来完成简易计算器的设计,以达到理论与实际更好相结合进一步提高综合运用所学知识和设计能力的目的。

基于51单片机计算器设计

基于51单片机计算器设计

基于51单片机计算器设计计算器是一种常见的电子设备,可以进行数学运算、数据处理等功能。

本文将基于51单片机进行计算器设计。

一、设计目标:1.实现基本的数学运算功能,如加减乘除、取余等。

2.能够进行复杂的数学运算,如平方、开方等。

3.具备记忆功能,能够存储中间结果和运算符号。

4.设置输入界面,允许用户输入数字和操作符。

5.显示运算结果和中间过程。

二、硬件系统设计:1.使用51单片机作为主控芯片,具有高集成度和处理能力。

2.连接光栅液晶显示屏,用于显示数值和操作符。

3.连接矩阵键盘,用于获取用户的输入。

4.连接电源电路,保证计算器正常运行。

三、软件系统设计:1.确定界面设计,包括数值显示区、操作符显示区和功能键区。

2.设计输入处理模块,根据用户输入获取相应的数值和操作符,并进行相应的处理。

3.设计运算模块,根据用户输入的操作符进行相应的数学运算,并将结果存储起来。

4.设计显示模块,将计算结果和中间过程显示在液晶屏上。

5.设计存储模块,用来存储中间运算结果和操作符号。

四、软件流程设计:1.系统初始化:包括设置显示模式、清零中间结果等。

2.输入处理:通过矩阵键盘输入数字和操作符,并进行相应的处理。

3.运算处理:根据用户输入的操作符,进行相应的数学运算,并将结果存储起来。

4.结果显示:将计算结果和中间过程显示在液晶屏上。

5.存储结果:将计算结果和操作符存储起来,以备后续计算。

五、测试和调试:在设计完成后,需要进行系统测试和调试,确保计算器的各项功能正常运行。

首先进行单元测试,验证各个模块的功能是否按照设计要求正确执行。

然后进行综合测试,模拟用户输入各种情况下的运算过程,检测是否能够正确进行运算并显示结果。

如果发现问题,则进行调试和修改,直到计算器满足设计要求。

六、总结:基于51单片机进行计算器设计,可以实现基本的数学运算功能,并具备记忆功能。

设计步骤包括确定硬件系统和软件系统设计,设计界面、输入处理、运算处理、显示和存储模块,进行测试和调试确保计算器功能正常运行。

基于51单片机计算器设计

基于51单片机计算器设计

基于51单片机计算器设计计算器是一种常用的计算工具,用来进行加减乘除等基本运算。

本文将介绍基于51单片机的计算器设计,主要包括功能设计、硬件设计和软件设计。

一、功能设计:1.基本计算功能:实现加法、减法、乘法和除法四种基本运算功能。

2.小数运算功能:支持小数的四则运算。

3.多位数运算功能:支持多位数的四则运算。

4.括号运算功能:支持括号运算,可以进行复杂的运算。

5.求平方功能:支持对一个数求平方。

6.求开方功能:支持对一个数求开方。

7.求倒数功能:支持对一个数求倒数。

8.清零功能:清零计算器,重新开始计算。

9.删除功能:删除输入的数字或者运算符。

二、硬件设计:硬件设计主要包括51单片机、LCD显示屏、矩阵按键、蜂鸣器和电源电路等。

1.51单片机:作为计算器的核心控制器,负责接收输入的数据和指令,并进行相应的计算和显示。

2.LCD显示屏:用于显示计算器的输入和输出结果。

3.矩阵按键:用于接收用户输入的数字和运算符。

4.蜂鸣器:用于发出提示音,比如输入错误时进行报警。

5.电源电路:提供计算器运行所需的电源。

三、软件设计:1.输入处理:计算器通过矩阵按键接收用户输入的数字和运算符,并使用数组保存输入的数据和指令。

2.数字运算:计算器需要根据用户输入的数字和运算符进行相应的运算,如加法、减法、乘法和除法等。

3.显示处理:计算器使用LCD显示屏将输入和计算结果显示出来。

4.错误处理:计算器需要对用户输入错误进行相应的处理,如输入非法字符时进行提示或报警。

5.性能优化:计算器需要进行相关的性能优化,如加入负责时间延迟,以适应不同的使用场景。

四、总结:本文介绍了基于51单片机的计算器设计,包括功能设计、硬件设计和软件设计。

这种计算器可以实现基本的四则运算功能,并支持小数运算、多位数运算和括号运算等复杂运算。

通过合理的硬件设计和软件设计,可以使得计算器更加稳定和可靠。

这种设计不仅可以提高计算器的使用体验,还可以为用户提供更多的计算功能和更加便捷的计算方式。

基于51单片机计算器的设计

基于51单片机计算器的设计

职业技术学院毕业设计报告(论文)系别:通信与电子系专业:汽车电子技术班级:汽车电子一班学生姓名:学生学号:设计(论文)题目:基于51 单片机计算器的设计指导教师:起讫日期:毕业设计报告(论文)摘要基于51 单片机计算器的设计摘要:计算器(calculator ;counter )一般是指“电子计算器” ,该名词由日文传入中国。

计算器能进行数学运算的手持机器,拥有集成电路芯片,但结构简单,比现代电脑结构简单得多,可以说是第一代的电子计算机(电脑),且功能也较弱,但较为方便与廉价,可广泛运用于商业交易中,是必备的办公用品之一。

本任务是个简单的多位数四则运算,程序是根据教材和网络中的程序参考编写而成,在功能上还不是很完善,限制也不较多。

本任务重在设计结构和自我锻炼,让我们用专业的知识专业的技能分析和解决问题,全面系统的锻炼。

报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计计算器将完成的功能有整数的加、减、乘、除等。

关键词:MCS-51 8051单片机,计算器,加减乘除目录摘要 ................... 错误! 未定义书签1.绪论 (5)2.系统软件设计方案 (6)2.1设计目标和实现方法 (6)2.2整体方案论证 (6)3.系统硬件的设计与介绍 (7)3.1复位电路的设计与运用 (7)3.2时钟振荡器电路的设计与运用 (7)3.3输入电路的设计 (7)3.4输出电路的设计 (10)4.系统软件的设计与介绍 (12)1. 绪论 中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。

这种算筹多是 用竹子制成,也有用木头,兽骨充当材料的。

大约二百七十枚一束,放在布袋里 可以随身携带。

直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明, 明代时期的珠算盘已经与现代的珠算盘几乎没有差别。

17 世纪初,西方国家的计算工具已经有了较大的发展, 英国数学家纳皮尔发 明的"纳皮尔算筹 " ,英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅 能做加减乘除、 乘方、开方运算, 甚至可以计算三角函数, 指数函数和对数函数, 这些计算工具不仅带动了计算器的快速发展, 也为实现现代计算器发展奠定了良 好的基础,成为现代社会应用广泛的计算工具。

基于51单片机的计算器设计

基于51单片机的计算器设计

基于51单片机的计算器设计一、引言计算器(Calculator)是一种专用的电子计算设备,用于简便地进行基本数学计算。

随着科技的发展,计算器的功能也逐渐丰富,并在日常生活中得到广泛应用。

本文将介绍一种基于51单片机的计算器设计方案,以满足人们对计算器的基本需求。

二、设计方案1.硬件设计(1)51单片机:作为计算器的核心,负责处理各项计算任务。

(2)显示屏:用于显示用户输入的数据和计算结果。

(3)按键模块:用于接收用户输入的数字和操作符。

(4)存储器:用于存储用户输入的数据和计算结果。

(5)电源模块:用于为计算器供电。

2.软件设计计算器的软件设计主要包括输入处理、运算处理和输出显示三个模块。

(1)输入处理:当用户按下数字键或操作符键时,计算器会根据当前输入的字符进行相应的处理。

例如,数字键按下后,将数字添加到当前输入的数字中;操作符键按下后,将当前输入的数字和操作符添加到存储器中。

(2)运算处理:当用户按下等号键时,计算器会根据存储器中的数字和操作符进行相应的运算处理。

例如,当存储器中包含两个数字和一个操作符时,计算器会根据操作符进行相应的运算,并将结果保存到存储器中。

(3)输出显示:当计算器完成运算处理后,将结果显示在显示屏上供用户查看。

同时,计算器还需要提供清除键和退格键等功能,以方便用户进行操作。

三、实现步骤1.初始化:将51单片机的各引脚设置为输入或输出,并设置相应的初始参数。

同时,初始化存储器、显示屏和按键模块等硬件设备。

2.输入处理:通过按键模块检测用户输入,并根据当前输入的字符进行相应的处理。

例如,当用户按下数字键时,将数字添加到当前输入的数字中;当用户按下操作符键时,将当前输入的数字和操作符添加到存储器中。

3.运算处理:当用户按下等号键时,计算器会根据存储器中的数字和操作符进行相应的运算处理。

例如,当存储器中包含两个数字和一个操作符时,计算器会根据操作符进行相应的运算,并将结果保存到存储器中。

基于51单片机的多功能计算器设计说明

基于51单片机的多功能计算器设计说明

微机原理课程设计设计课题基于51单片机的计算器设计学院姓名学号专业班级指导教师设计时间南华大学【摘要】当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且人脑比较容易出错。

计算器作为一种快速通用的计算工具方便了用户的使用。

计算器可谓是我们最亲密的电子伙伴之一。

本设计着重在于分析计算器设计开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。

本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用4×4矩阵键盘再加上4个独立按键,可以进行加、减、乘、除7位带符号数字运算,同时支持括号的嵌套使用级浮点数的运算,并在LCD1602上显示操作过程。

本次设计注重设计方法及流程,首先根据原理设计电路,利用keil编程,借助实验开发平台进行仿真实验,进而利用altium designer 制作PCB,最后到焊接元器件,直至调试成功。

在设计的同时,特别注重keil软件和altium designer软件的使用方法和技巧以及常用的LCD显示器和矩阵键盘的设计和使用方法。

【关键词】计算器,STC89C52,矩阵键盘,1602液晶目录1 系统方案设计...................................................... - 5 -1.1 设计目的及要求............................................... - 5 -1.1.1 设计目的............................................... - 5 -1.1.2 设计要求............................................... - 5 -1.2 方案论证及选择............................................... - 5 -1.2.1 方案一采用FPGA控制................................... - 6 -1.2.2 方案二采用STC89C52 ................................... - 6 -1.2.3 方案比较及选择......................................... - 6 -2 单元电路设计...................................................... - 7 -2.1 工作原理.................................................... - 7 -2.2 硬件电路设计................................................ - 8 -2.2.1 单片机电路设计........................................ - 8 -2.2.2 键盘模块电路.......................................... - 9 -2.2.3 蜂鸣器提示电路........................................ - 9 -2.2.4 液晶显示电路......................................... - 10 -2.3 软件设计.................................................... - 11 -2.3.1 键盘扫描.............................................. - 11 -2.3.2 表达式的处理.......................................... - 11 -2.4 altium designer 原理图设计及PCB制作....................... - 13 -2.4.1 原理图设计........................................... - 13 -2.4.2 PCB制作.............................................. - 14 -2.4.3 设计结果............................................. - 15 - 3系统测试.......................................................... - 16 -3.1 整数运算.................................................... - 16 -3.2 浮点数运算.................................................. - 17 -3.3 输入出错的情况.............................................. - 17 -4 结论与心得体会................................................... - 19 -5 参考文献......................................................... - 20 -附录1 元器件清单.............................................. - 21 - 附录2 程序清单................................................ - 22 -1 系统方案设计1.1 设计目的及要求1.1.1 设计目的通过本次课题设计,应用《单片机应用基础》、《数据结构》等所学相关知识及查阅资料,完成实用计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。

基于51单片机的简易教学计算器设计

基于51单片机的简易教学计算器设计

基于51单片机的简易教学计算器设计设计目的:本设计旨在基于51单片机实现一个简易的教学计算器,可以进行基本的四则运算,并具备一些辅助功能,帮助学生进行数学计算和学习。

设计要求:1.显示器:使用液晶显示器(LCD)来显示操作数和计算结果。

2.键盘输入:设计一个按键矩阵作为输入设备,用于输入数字和操作符。

3.四则运算:实现加法、减法、乘法和除法四种基本运算。

4.辅助功能:提供开平方、取倒数等辅助功能。

5.界面友好:界面清晰、操作简单。

硬件设计:1.51单片机(AT89C52):作为计算器的核心芯片,控制程序运行和与外围设备的交互。

2.液晶显示器(LCD):用于显示操作数和计算结果。

3.按键矩阵:用于输入数字和操作符。

4.运算模块:用于进行四则运算和辅助功能计算。

软件设计:1.系统初始化:初始化51单片机和LCD屏幕,设置键盘矩阵的引脚。

2.输入处理:通过按键矩阵检测用户输入,并将输入的字符存储在缓冲区中。

3.表达式计算:根据用户输入的表达式,通过逆波兰表达式算法将其转换为后缀表达式,并进行计算得到结果。

4.显示结果:将计算结果显示在LCD屏幕上。

5.辅助功能:根据用户选择的辅助功能,进行相应的计算,并显示结果。

6.重置功能:提供清零功能,将计算器的状态和显示结果重置。

操作流程:1.系统初始化:开机时,系统进行初始化,屏幕显示“计算器”字样。

2.输入操作数和操作符:用户通过按键矩阵输入操作数和操作符。

3.计算结果:用户输入“=”符号后,计算器根据输入的表达式进行计算,并将结果显示在LCD屏幕上。

4.辅助功能:在计算结果显示完成后,用户可选择进行辅助功能,如开平方、取倒数等操作。

5.重置功能:用户可通过按下“C”键进行重置,将计算器状态和显示结果清零。

总结:本设计基于51单片机实现了一个简易的教学计算器,具备基本的四则运算功能和一些辅助功能。

其使用液晶显示器作为显示设备,利用按键矩阵进行输入操作,通过逆波兰表达式算法进行计算,并将结果显示在屏幕上。

基于51单片机的计算器设计

基于51单片机的计算器设计

目录第一章引言 (3)1、1 简述简易计算器、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、31、2 本设计主要任务、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、31、3 系统主要功能、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、4第二章系统主要硬件电路设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、42、1 系统的硬件构成及功能、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、42、2 键盘电路设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、52、3 显示电路设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、6第三章系统软件设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、73、1 计算器的软件规划、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、73、2 键盘扫描的程序设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、73、3 显示模块的程序设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、83、4 主程序的设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、93、5 软件的可靠性设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、9第四章调试、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、9 第五章结束语、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、10参考文献、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、11 附录源程序、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、11第一章引言1、1 简述简易计算器近几年单片机技术的发展很快,其中电子产品的更新速度迅猛。

基于单片机的多功能计算器设计_课程设计任务书

基于单片机的多功能计算器设计_课程设计任务书

电子信息工程专业综合课程设计任务书摘要:单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活中的各个领域,电子、科技、通信、汽车、工业等。

我们这次设计的多功能科学计算器也是利用AT89C51单片机制作而成。

该计算器设计是采用C语言编写,实现了六位数范围内的加、减、乘、除基本的四则运算,此外该计算器除了具备基本的计算功能以外还具有计时和倒计时的功能,也就是说该计算器具有两个工作模式,计算模式和计时模式,而计时模式里又包含正计时和倒计时的功能,这样一个简易的计算器实现了多功能,比较实用和方便。

该设计电路是采用AT89C51单片机为主要控制电路,然后使用74LS245缓冲驱动电路驱动六位LED数码管显示数据,利用加上4×4矩阵键盘完成电路的实际操作。

电路比较简单,但是很实用方便。

关键字:AT89C51 多功能74LS245 LED 矩阵键盘目录1.方案论证与选择 (4)1.1输入模块 (4)1.2显示模块: (5)2.其他硬件电路模块功能介绍: (6)2.1驱动模块 (6)2.2主控制模块 (7)2.3操作模块 (8)3.软件设计 (9)3.1主功能计算器部分 (9)3.2计时和倒计时部分 (9)3.3功能按键 (9)3.4软件流程图 (9)4硬件设计 (11)4.1电路工作框图 (11)4.2 硬件电路图 (12)4.3引脚锁定 (12)5.电路测试结果 (12)5.1代码提示信息 (12)5.2模式转换电路图 (13)5.3错误提示电路图 (14)5.4正常计算结果显示图 (14)6.该设计电路的改进思想 (15)7.小结 (15)8.参考文献 (16)附录(程序清单) (16)基于单片机的多功能计算器设计1.方案论证与选择1.1输入模块方案一:采用独立式按键作为输入模块,其特点:直接用I/O口构成单个按键电路,接口电路配置灵活、按键识别和软件结构简单,但是当键数较多时,占用I/O口较多,比较浪费资源;其原理图如图1所示:图1 独立的功能按键方案二:采用矩阵式键盘作为输入电路,其特点:电路和软件稍复杂,但相比之下,当键数越多时越节约I/O口,比较节省资源。

基于51单片机简易计算器课程设计报告

基于51单片机简易计算器课程设计报告

基于51单片机简易计算器课程设计报告引言:计算器是现代社会中常见的电子设备之一,它能够帮助人们进行各种数学运算,提高计算效率。

本文将介绍基于51单片机的简易计算器的设计过程及实现方法。

一、设计目标本次设计的目标是实现一个简易计算器,能够进行基本的加减乘除运算,并能够显示计算结果。

通过该设计,旨在加深学生对51单片机的理解,培养其实际操作能力。

二、硬件设计1. 电源模块:采用稳压电源模块,提供稳定的电压给单片机及其他电路模块。

2. 单片机模块:采用51单片机,作为计算器的核心控制模块,负责接收按键输入、进行运算和显示结果。

3. 按键模块:设计合适的按键电路,用于输入数字和操作符。

4. 显示模块:采用数码管或液晶显示屏,显示计算结果。

5. 连接线:将各个模块连接起来,确保信号的传输畅通。

三、软件设计1. 初始化:设置单片机的工作模式、端口方向和初始状态。

2. 按键扫描:通过轮询的方式检测按键是否被按下,若有按键按下则进行相应的处理。

3. 输入处理:根据按键的顺序和操作符的位置进行输入的处理,将输入的数字和操作符分别存储在相应的变量中。

4. 运算处理:根据输入的操作符进行相应的运算,得出计算结果。

5. 结果显示:将计算结果通过数码管或液晶显示屏进行显示。

6. 清零处理:在计算结果显示完毕后,对相关的变量进行清零处理,以便进行下一次的计算。

四、功能实现1. 加法运算:通过按下"+"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。

2. 减法运算:通过按下"-"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。

3. 乘法运算:通过按下"*"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。

(完整)基于51单片机的简易计算器设计

(完整)基于51单片机的简易计算器设计

(完整)基于51单片机的简易计算器设计基于51单片机的简易计算器设计计算器作为一种常见的电子设备,既能满足日常生活的计算需求,又能帮助人们提高工作效率。

本文将介绍基于51单片机的简易计算器的设计。

该计算器具备加减乘除的基本计算功能,并支持用户输入和结果显示。

下面将从材料准备、电路连接和程序设计三个方面详细介绍该计算器的设计。

一、材料准备在设计计算器之前,我们需要准备以下材料:1. 51单片机开发板:用于控制计算器的整个运行过程;2. 液晶显示屏:用于显示用户输入的数字和计算结果;3. 数字按键:用于用户输入数字和运算符;4. 连接线:用于连接51单片机开发板、液晶显示屏和数字按键。

二、电路连接1. 连接液晶显示屏和51单片机开发板:将液晶显示屏的VCC、GND、SCL和SDA引脚分别与开发板上对应的引脚连接。

2. 连接数字按键和51单片机开发板:将数字按键的引脚依次与开发板上的IO口引脚连接,其中有一根引脚需要连接到开发板的中断口。

三、程序设计1. 初始化设置:在程序开始时,进行液晶显示屏和数字按键的引脚初始化设置,以及相应的中断设置。

2. 输入处理:通过数字按键输入,获取用户输入的数字和运算符,并将其保存到相应的变量中。

3. 运算处理:根据用户输入的运算符,对相应的数字进行加、减、乘、除的运算,并将结果保存到一个变量中。

4. 结果显示:将运算结果显示在液晶显示屏上,以便用户查看计算结果。

5. 重置处理:在每次运算结束后,对相关变量进行重置,以便下一次计算。

通过以上程序设计,我们可以完成基于51单片机的简易计算器的设计。

在实际使用过程中,用户只需要通过数字按键输入相应的数字和运算符,计算器就可以自动进行运算,并将结果显示在液晶显示屏上,方便用户进行查看。

总结本文介绍了基于51单片机的简易计算器的设计。

通过合理的材料准备、电路连接和程序设计,我们可以实现一个具备加减乘除功能的计算器。

该计算器不仅能满足人们日常的计算需求,还能帮助提高工作效率。

基于51单片机的简易计算器设计

基于51单片机的简易计算器设计

基于51单片机的简易计算器设计设计一个基于51单片机的简易计算器,主要功能包括加减乘除四则运算和百分数计算。

下面是设计的详细步骤:1.硬件设计:-使用51单片机作为主控芯片。

-连接16x2的LCD显示屏,用于显示输入和计算结果。

-连接16个按键开关,用于输入运算符和数字。

-连接4个LED灯,用于指示四则运算的选择。

2.软件设计:-初始化LCD显示屏,并显示欢迎信息。

-监听按键输入,在接收到输入后,根据输入的按键值判断操作类型。

-如果按键值对应数字键,保存输入的数字,并在LCD上显示当前输入的数字。

-如果按键值对应四则运算符(+、-、*、/),保存当前输入的数字,并保存运算符。

-如果按键值对应等号(=),根据保存的数字和运算符进行相应的运算,计算结果保存并显示在LCD上。

-如果按键值对应清零(C),将所有保存的数据清空,并显示初始状态。

-如果按键值对应百分号(%),将当前数字除以100并显示在LCD上。

3.主要函数说明:- void init_lcd(:初始化LCD显示屏。

- void display_lcd(char* str):将指定字符串显示在LCD上。

- void clear_lcd(:清空LCD显示屏。

- char get_key(:获取按键输入的值。

- void calculate(:根据保存的数字和运算符进行计算。

- void add_digit(char digit):将输入的数字添加到当前数字中。

- void set_operator(char op):保存运算符。

- void clear_data(:清空所有保存的数据。

4.主要流程:-初始化LCD显示屏并显示欢迎信息。

-在循环中监听按键输入,并根据输入的按键值进行相应的操作。

-根据不同的按键值,调用不同的函数进行处理。

-最后计算结果显示在LCD上。

以上是基于51单片机的简易计算器设计的详细步骤和主要函数说明。

你可以根据这个设计框架进行具体的代码实现。

基于51单片机简易计算器课程设计报告(一)

基于51单片机简易计算器课程设计报告(一)

基于51单片机简易计算器课程设计报告(一)基于51单片机简易计算器课程设计报告1. 介绍在本次课程设计中,我设计了一个基于51单片机的简易计算器。

本报告将会详细介绍该计算器的设计思路、功能实现以及课程设计中遇到的问题与解决方法。

2. 设计思路功能需求•支持基本的加、减、乘、除运算•具备数字输入与显示功能•具备清零和等于功能•具备连续计算功能硬件设计本计算器的硬件设计主要包括51单片机、LCD显示模块以及按键输入模块。

其中,51单片机负责控制计算器的逻辑,LCD显示模块用于显示计算结果和用户输入,按键输入模块用于接收用户的输入。

软件设计计算器的软件设计主要分为以下几个部分: - 初始化:初始化51单片机、LCD模块以及按键模块。

- 按键扫描:通过扫描按键模块,获取用户的输入。

- 数字输入与显示:根据用户输入,将数字显示在LCD上。

- 运算逻辑:根据用户输入的运算符和数字,执行相应的计算操作,并将结果显示在LCD上。

3. 功能实现初始化在初始化阶段,我们需要初始化51单片机的GPIO口、LCD模块以及按键模块。

具体的初始化代码如下:// 初始化51单片机的GPIO口// 初始化LCD模块// 初始化按键模块按键扫描为了获取用户的输入,我们需要通过按键模块进行扫描。

具体的按键扫描代码如下:// 扫描按键模块// 如果检测到按键按下,则进行相应的处理数字输入与显示当用户按下数字键时,我们将获取到的数字输入缓存起来,并将其显示在LCD上。

具体的数字输入与显示代码如下:// 获取按键输入的数字// 将数字添加到输入缓存// 将输入缓存显示在LCD上运算逻辑当用户按下运算符键时,我们需要根据输入的数字和运算符执行相应的计算操作,并将结果显示在LCD上。

具体的运算逻辑代码如下:// 获取运算符输入// 根据运算符和输入的数字执行相应的计算操作// 将计算结果显示在LCD上清零和等于功能为了提升用户体验,我们还可以添加清零和等于功能。

基于51单片机的数字计算器的设计

基于51单片机的数字计算器的设计

《单片机技术及其应用》课程设计报告专业:通信工程班级:09312班姓名:某某某学号:09031069指导教师:二0一二年六月十八日目录1设计目的 (1)2 设计题目描述与要求 (1)3 设计过程 (2)4硬件总体方案及说明 (7)5 软件总体方案及设计流程 (11)6 调试与仿真 (16)7 心得体会 (18)8 指导老师意见 (19)9 参考文献 (19)附录一 (19)附录二 (31)基于51单片机的数字计算器的设计1设计目的简易计算器的原理与设计是单片机课程设计课题中的一个。

在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用和单片机完整程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。

单片机课程设计既巩固了课本学到的理论,还学到了单片机硬件电路和程序设计,简易计算器课程设计通过自己动手用计算机电路设计软件,编写和调试,最后仿真,来加深对单片机的认识,充分发挥我们的个人创新和动手能力,并提高我们对单片机的兴趣,同时学习查阅资料、参考资料的方法。

本设计是基于51系列的单片机进行的简易计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED 上相应的显示结果。

设计过程在硬件与软件方面进行同步设计。

硬件选择AT89C51单片机和74ls164,输入用4×4矩阵键盘。

显示用5位7段共阴极LED静态显示。

软件从分析计算器功能、流程图设计,再到程序的编写进行系统设计。

选用编译效率最高的Keil软件进行编程,并用proteus仿真。

2 设计题目描述与要求基于AT89C51数字计算器设计的基本要求与基本思路:(1)扩展4*4键盘,其中10个数字,5个功能键,1个清零(2)使用五位数码管接口电路(3)完成十进制的四则运算(加、减、乘、除)(4)实现低于三位小于255数字的连续运算(5)使用keil 软件编写程序(6)最后用ptoteus 仿真3 设计过程3.1设计思路按照2的设计要求,本课题需要使用数码管显示和扩展4*4键盘,由于实验箱的硬件电路已经固定,故选择串行静态显示和用P1口扩展4*4键盘,扩展的4*4键盘定义十个数字键,六个功能键,使用串行静态显示显示运算结果。

基于51单片机实验报告(计算器)

基于51单片机实验报告(计算器)

基于51单片机实验报告(计算器)一.计算器模块1.功能介绍利用8051 单片机硬件资源和常用外围电路如LCD1602,七段数码管,时钟(DS1302)温度传感器(18B20)等实现一个能做简单四则运算,并具有时钟显示,温度显示附加功能的计算器。

2.设计方案利用STC89C52为内核的单片机,PC机。

四则运算利用4*4矩阵键盘实现从0—9和运算符号的输入,并将操作过程和结果显示在LCD1602上。

时钟显示和温度显示,可以利用DS1302产生年份,月份,日期,星期,时,分,秒的数据,并将数据送往LCD1602显示,同样可以利用单片机开发板上面集成的DS18B20温度传感器来测试周围环境的温度,将获取的温度通过在LCD1602来显示。

系统设计框图3.具体实现代码计算器四则运算部分主要分为键盘扫描的键值读取,判断运算符号实现乘除优先级计算,LCD1602显示。

键盘扫描常用的有行扫描法,线反转法,此处我们用行扫描法,可以更明了读取键值。

unsigned char temp;key = null;//第一行按键P3 = 0xfe;temp = P3;temp = temp & 0xf0;if (temp != 0xf0){delay(10); //延时软件去抖动temp = P3;temp = temp & 0xf0;if (temp != 0xf0) //确认有键按下{temp = P3;switch (temp){case 0xee:key = 'D'; //读键值break;case 0xde:key = 0;break;case 0xbe:key = '=';break;case 0x7e:key = '/';break;}flag++;}}读完按键值之后我们需要读取运算的数字与运算符号,通过判断键值为数字则通过nun=nun*10+key,计算出数字,判断键值为运算符号则读出数字和键值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理课程设计设计课题基于51单片机的计算器设计学院姓名学号专业班级指导教师设计时间南华大学【摘要】当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且人脑比较容易出错。

计算器作为一种快速通用的计算工具方便了用户的使用。

计算器可谓是我们最亲密的电子伙伴之一。

本设计着重在于分析计算器设计开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。

本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用4×4矩阵键盘再加上4个独立按键,可以进行加、减、乘、除7位带符号数字运算,同时支持括号的嵌套使用级浮点数的运算,并在LCD1602上显示操作过程。

本次设计注重设计方法及流程,首先根据原理设计电路,利用keil编程,借助实验开发平台进行仿真实验,进而利用altium designer 制作PCB,最后到焊接元器件,直至调试成功。

在设计的同时,特别注重keil软件和altium designer软件的使用方法和技巧以及常用的LCD显示器和矩阵键盘的设计和使用方法。

【关键词】计算器,STC89C52,矩阵键盘,1602液晶目录1 系统方案设计 ...................................................................................................... - 5 -1.1 设计目的及要求 .......................................................................................... - 5 -1.1.1 设计目的........................................................................................... - 5 -1.1.2 设计要求........................................................................................... - 5 -1.2 方案论证及选择 .......................................................................................... - 5 -1.2.1 方案一采用FPGA控制................................................................... - 6 -1.2.2 方案二采用STC89C52 ................................................................... - 6 -1.2.3 方案比较及选择................................................................................ - 6 -2 单元电路设计 ...................................................................................................... - 7 -2.1 工作原理 ................................................................................................... - 7 -2.2 硬件电路设计 ............................................................................................ - 8 -2.2.1 单片机电路设计 .............................................................................. - 8 -2.2.2 键盘模块电路.................................................................................. - 9 -2.2.3 蜂鸣器提示电路 .............................................................................. - 9 -2.2.4 液晶显示电路................................................................................- 10 -2.3 软件设计 ...................................................................................................- 11 -2.3.1 键盘扫描.........................................................................................- 11 -2.3.2 表达式的处理..................................................................................- 11 -2.4 altium designer 原理图设计及PCB制作 .............................................- 13 -2.4.1 原理图设计 ...................................................................................- 13 -2.4.2 PCB制作 .......................................................................................- 14 -2.4.3 设计结果.......................................................................................- 15 - 3系统测试 ..............................................................................................................- 16 -3.1 整数运算 ...................................................................................................- 16 -3.2 浮点数运算................................................................................................- 17 -3.3 输入出错的情况 ........................................................................................- 17 -4 结论与心得体会.................................................................................................- 19 -5 参考文献............................................................................................................- 20 -附录1 元器件清单.........................................................................................- 21 - 附录2 程序清单 ............................................................................................- 22 -1 系统方案设计1.1 设计目的及要求1.1.1 设计目的通过本次课题设计,应用《单片机应用基础》、《数据结构》等所学相关知识及查阅资料,完成实用计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。

通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。

1.1.2 设计要求在本次课程设计中,主要完成如下方面的设计要求:1、掌握MCS-51系列某种产品(例如8051)的最小电路及外围扩展电路的设计方法;2、计算器能实现基本的加、减、乘、除四则运算;3、支持浮点数运算;4、支持括号运算,允许括号的多层正确嵌套;5、较为友好的界面显示,对输入实时显示,对计算结果输出显示;6、能够具备比较完善的报错系统1.2 方案论证及选择基于设计要求,笨设计考虑了两种设计方案,他们均可以实现计算器的功能,但基于设计目的及微控制器的广泛运用,比较两种方案的优劣,最终选择基于51单片机的计算器设计。

1.2.1 方案一采用FPGA控制FPGA是一种高密度的可编程逻辑器件,自从Xilinx公司1985年推出第一片FPGA以来,FPGA的集成密度和性能提高很快,其集成密度最高达500万门/片以上,系统性能可达200MHz。

由于FPGA器件集成度高,方便易用,开发和上市周期短,在数字设计和电子生产中得到迅速普及和应用,并一度在高密度的可编程逻辑器件领域中独占鳌头。

但是而基于SRAM编程的FPGA,其编程信息需存放在外部存储器上,需外部存储器芯片,且使用方法复杂,性差,而其对于一个简单的计算器而言,实用FPGA有点大材小用,成本太高。

相关文档
最新文档