单片机控制的简单计算器任务书
(完整版)基于51单片机的数码管简易计算器

基于51/52单片机的简易计算器制作11级自动化2班王栎斐宋为为闫巨东一、题目利用单片机芯片STC89C52、四位八段共阳数码管及已制作好的电路板等器件设计制作一个计算器。
二、任务与要求要求计算器能实现加减乘除四种运算具体如下1. 加法:四位整数加法计算结果若超过八位则显示计算错误2. 减法:四位整数减法计算结果若超过八位则显示计算错误3. 乘法:多位整数乘法计算结果若超过四位则显示计算错误4. 除法:整数除法5. 有清除功能三、课程设计简述总体设计思路简述1.按照系统设计的功能的要求初步确定设计系统由主控模块、显示模块、键扫描接口电路共三个模块组成。
主控芯片使用STC89C52单片机。
2.键盘电路采用4*4矩阵键盘电路。
3.显示模块采用共阳极数码管构成。
四、硬件电路五、软件编程部份#include<reg52.h>#define uchar unsigned char#define uint unsigned int//uchar code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};//共阴极// 0 1 2 3 4 5 6 7 8 9 熄灭-//uchar code loc[]={0xff,0xfe,0xfd,0xfb,0xf7};//uchar code ero[]={0x79,0x50,0x5c};uchar code num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x40};//共阳极uchar code loc[]={0x00,0x80,0x40,0x20,0x10};uchar code ero[]={~0x79,~0x50,~0x5c};uint n=0,n1=0,n2=0; //赋初值uchar flag=0; //计算类型选择关键字void delay(int t);void display(int n);void error();main(){while(1){uchar temp;//第一行检测P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xfe;if(temp!=0xfe){temp=P3;switch(temp){case 0xee:n1=0;n2=0;n=0;flag=0;break; //清零case 0xde:n1=10*n1+0;n=n1;break;case 0xbe: if(flag==1)n=n2+n1; //=if(flag==2)n=n2-n1;if(flag==3)n=n2*n1;if(flag==4)n=n2/n1;n1=0;break;case 0x7e: // +n2=n1;n1=0;flag=1;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}//扫描第二行P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case 0xed:n1=10*n1+1;n=n1;break; //4case 0xdd:n1=10*n1+2;n=n1;break; //5case 0xbd:n1=10*n1+3;n=n1;break; //6case 0x7d:// -n2=n1;n1=0;flag=2;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}//扫描第三行P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case 0xeb:n1=10*n1+4;n=n1;break;case 0xdb:n1=10*n1+5;n=n1;break;case 0xbb:n1=10*n1+6;n=n1;break;case 0x7b: // *n2=n1;n1=0;flag=3;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}//扫描第四行P3=0xf7;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case 0xe7:n1=10*n1+7;n=n1;break; //7case 0xd7:n1=10*n1+8;n=n1;break; //8case 0xb7:n1=10*n1+9;n=n1;break; //9case 0x77: // /n2=n1;n1=0;flag=4;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}display(n);}}//延时函数void delay(int t){int x,y;for(x=0;x<t;x++)for(y=0;y<t;y++);}//数码管显示void display(int n){//溢出处理uchar g,s,b,q;int abs;if((n>9999)||(n<-999)) error();//正数if((n>=0)&&(n<=9999)) {g=n%10;s=n/10%10;b=n/100%10;q=n/1000%10;P0=num[g];delay(5);P2=loc[4];delay(2);P2=loc[0];delay(3);if(n>=10){P0=num[s];P2=loc[3];delay(2);P2=loc[0];delay(3);}if(n>=100){P0=num[b];P2=loc[2];delay(2);P2=loc[0];delay(3);}if(n>=1000){P0=num[q];P2=loc[1];delay(2);P2=loc[0];delay(3);}}//负数if((n<0)&&(n>=-999)){abs=-n;g=abs%10;s=abs/10%10;b=abs/100%10;q=abs/1000%10;P0=num[g];P2=loc[4];delay(2);P2=loc[0];delay(2);if((abs/10%10>0)||(abs/100%10>0)){P0=num[s];P2=loc[3];;delay(2);P2=loc[0];delay(2);if((abs/100%10>0)){P0=num[b];P2=loc[2];delay(2);P2=loc[0];delay(2);if((abs/1000%10>0)){P0=num[q];P2=loc[1];delay(2);P2=loc[0];delay(2);}else{P0=num[11];P2=loc[1];delay(2);P2=loc[0];delay(2);}}else{P0=num[11];P2=loc[2];delay(2);P2=loc[0];delay(2);}}else{P0=num[11];P2=loc[3];delay(2);P2=loc[0];delay(2);}}}//溢出显示void error(){P2=loc[1];P0=ero[0];delay(2);P2=loc[0];delay(3);P2=loc[2];P0=ero[1];delay(2);P2=loc[0];delay(3);P2=loc[3];P0=ero[1];delay(2);P2=loc[0];delay(3);P2=loc[4];P0=ero[2];delay(2);P2=loc[0];delay(3); }。
单片机的简易计算器

单片机的简易计算器单片机简易计算器的设计与实现一、引言计算器是一种用于计算数学运算的工具,现在已经成为人们日常生活中必不可少的设备之一、在这个数字化的时代,我们经常需要进行简单的数学运算,如加、减、乘、除等。
为了满足人们的需求,我们可以使用单片机来设计和实现一个简易的计算器。
二、设计目标我们的设计目标是实现一个能够进行基本的加减乘除四则运算的简易计算器。
具体来说,我们希望计算器能够实现以下功能:1.输入两个数字进行计算,并显示结果。
2.支持加法、减法、乘法和除法运算。
3.具备简单的误操作处理能力,如输入错误提示等。
三、设计思路我们将使用8051系列单片机来设计和实现计算器。
具体的设计思路如下:1.使用矩阵键盘作为输入设备,通过扫描矩阵键盘来获取输入的数字和运算符。
2.通过数码管来显示计算结果。
3.使用中断处理器来处理键盘输入和计算结果的显示。
4.根据输入的运算符进行相应的运算,然后将结果显示在数码管上。
四、硬件设计1.选择合适的单片机,如STC89C52,AT89S52等,它们都是基于8051核心的单片机。
2.连接矩阵键盘到单片机的IO口,通过矩阵键盘的扫描来获取输入的数字和运算符。
3.连接数码管到单片机的IO口,用于显示计算结果。
五、软件设计1.在主程序中初始化单片机的IO端口和中断向量。
2.编写中断服务程序,用于处理键盘输入和计算结果的显示。
3.设计一个状态机来处理键盘输入和计算结果的显示。
4.根据状态机的状态来进行相应的运算和显示。
六、实现步骤1.编写主程序,包括对IO口和中断向量的初始化。
2.编写中断服务程序,用于处理键盘输入和计算结果的显示。
3.设计一个状态机,并实现状态机的状态转换和运算结果的计算。
4.测试并调试系统,确保计算结果的准确性。
七、总结通过使用单片机,我们成功地设计并实现了一个简易的计算器。
这个计算器不仅能够进行基本的加减乘除四则运算,还具备了简单的误操作处理能力。
在实际使用中,我们可以通过添加更多的功能和改进设计来进一步完善这个简易计算器。
基于单片机简易计算器设计的任务书

基于单片机简易计算器设计的任务书湄洲湾职业技术学院毕业设计(论文)任务书学生姓名:班级:学号:题目:基于单片机的简易计算器设计内容要求:一、任务计算器是日常工作和学习生活中的常用工具,人们利用它代替了许多复杂计算,包括加减乘除和其他运算。
尤其是小型计算器,它携带方便,在生活中用起来方便快捷,成为了财政、学习、生意上都青睐的必需品。
它的需求广泛,在计算器的发展上存在很大的空间和市场意义。
单片机在我国的各行各业得到了广泛使用,单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心。
如今,它已经广泛应用到我们生活中的各个领域,如:电子、科技、通信、汽车、工业等。
一般只需几块钱,有着经济廉价的优势,用单片机可以很方便的实现计算器的设计。
本课题模拟计算器设计硬件电路采用三部分电路模块构成,第一部分是键盘模块电路,采用4*4矩阵式键盘作为输入电路;第二部分是LCD1602液晶显示模块;第三部分是以51单片机作为控制核心。
软件程序主要由三部分组成:主程序、按键扫描程序和LCD1602显示程序。
图系统组成及总体框图二、设计要求:1、用单片机stc89C51设计一个简易计算器,并用1602液晶显示相应的数据。
2、用protel 99se 设计电路图,pcb 图等3、可以进行简单的加减乘除运算4、最大可以9999*9999,如果运算有错误可以提示。
5、可以通过proteus 仿真。
三、规定阅读的文献:STC89C51主控制模电源模块LCD 液晶显示屏模块4X4键盘模块【1】张靖武,周灵杉.单片机系统的PROTEUS设计与仿真[M].北京:北京电子工业出版社【2】靳达.求是科技.单片机应用系统开发实例导航[M].:人民邮电出版社,2006【3】刘守义.单片机应用技术[M].:西安电子科技大学出版社,2001【4】林志琦.基于PROTEUS的单片机可视化软硬件仿真[M].北京:北京航空航天大学出版社,2006【5】胡汉才.单片机原理及接口技术.清华大学出版社,1996【6】徐江海.单片机实用教程[M].北京:机械工业出版社,2007.【7】肖洪兵.跟我学用单片机.北京:北京航空航天大学出版社,2002.8【8】夏继强.单片机实验与实践教程.北京:北京航空航天大学出版社,2001【9】谭浩强.C语言程序设计[M].北京:清华大学出版社,2000.【10】刘福基.C语言程序设计与实训教程[M].北京:科学出版社,2004.【11】张磊.C语言程序设计[M].北京:高等教育出版社,2005.【12】严桂兰.C语言程序设计[M].厦门:厦门大学出版社,2006 指导教师签名:年月日教研室主任:年月日。
基于单片机的LCD显示计算器设计任务书

Hale Waihona Puke 学生姓名梁俊龙学号
201201080220
指导教师
苏熠
学院名称
移动通信与软件学院
专业名称
通信技术
毕业设计题目
基于单片机的LCD显示计算器设计
题目来源
实习实践(√)理论研究()
一、基本任务与要求
基本任务:本设计是实现一个有加、减、乘、除、计算功能的多功能计算器。它的硬件主要由四部分组成,一个STC89C52单片机芯片,一块LCD1602液晶显示器,一个4*4的键盘。采用STC89C52单片机为主要控制电路,然后使用液晶显示管显示数据,利用4*4矩阵键盘加上一些功能键完成电路的输入操作部分。电路比较简单,但是很实用方便。
要求:
1.以题目为中心,收集相关资料。
2.该设计采用ST89C52芯片进行数据处理,计算输出结果由LCD1602液晶器显示等基本功能。
3.设计应具有4*4键盘来输入数据,能够进行小数运算,可以计算不超过13位数的加减乘除,采用电池供电等基本功能。
5.运用Protous进行仿真实现。
6.运用C语言实现软件相关功能。
7.焊接完成作品并调试。
二、工作内容及时间安排
1.选题:
2014年9月6日前
2.开题报告:
2014年9月11日前
3.收集资料及实施研究:
2014年9月15日前
4.完成初稿:
2014年10月15日前
5.完成修改稿:
2014年11月10日前
6.完成定稿:
2014年11月30日前
7.答辩:
2014年12月13日前
51单片机简易计算器设计-51单片机简易计算器课程设计

51单⽚机简易计算器设计-51单⽚机简易计算器课程设计⽬录⼀、设计任务和要求 (2)1、设计要求 (2)2、设计⽅案的确定 (2)⼆、硬件设计 (2)1、单⽚机最⼩系统 (2)2、键盘电路的设计 (3)3、显⽰电路的设计 (3)4、系统硬件电路图 (4)三、软件设计 (5)1 系统设计 (5)2 显⽰电路的设计 (6)3、程序清单 (8)四、调试与仿真 (14)五、试验箱实物图 (14)六、⼼得体会 (15)⼀、设计任务和要求1、设计要求利⽤单⽚机设计并制作简易计算器。
具体要求如下:1、4*4按键⽤于0~9的数字输⼊、加减乘除、等于、清零功能;2、能实现简单的加减乘除运算;3、输⼊数字及计算结果通过LED或LCD显⽰器显⽰。
2、设计⽅案的确定按照设计要求,本课题需要使⽤数码管显⽰和扩展4*4键盘,由于AT89C51芯⽚的I⼝不够多,⽽且为了硬件电路设计的简单化,故选择串⾏动态显⽰和⽤P1⼝扩展4*4键盘,扩展的4*4键盘定义⼗个数字键,六个功能键,使⽤串⾏动态显⽰显⽰运算结果。
主程序进⾏初始化,采⽤⾏列扫描进⾏查表得出键值,每次按键后调⽤显⽰⼦程序。
⼆、硬件设计简易数字计算器系统硬件设计主要包括:键盘电路,显⽰电路以及其他辅助电路。
下⾯分别进⾏设计。
1.单⽚机最⼩系统单⽚机最⼩系统就是⽀持主芯⽚正常⼯作的最⼩部分,包括主控芯⽚、复位电路和晶振电路。
(1)、复位电路复位电路本设计采⽤上电与⼿动复位电路,电阻分别选取100和10K,电容选取10uF,系统⼀上电,芯⽚就复位,或者中途按按键也可以进⾏复位。
(2)、晶振电路图三晶振电路晶振电路是单⽚机的⼼脏,它⽤于产⽣单⽚机⼯作所需要的时钟信号。
单⽚机的晶振选取11.0592MHz,晶振旁电容选取30pF。
2.键盘电路的设计键盘可分为两类:编码键盘和⾮编码键盘。
编码键盘是较多按键(20个以上)和专⽤驱动芯⽚的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,⽆需系统软件⼲预。
单片机实践简易计算器实验报告

零基础DIY单片机简易计算器实践
单片机是一种很有趣的微处理器,它广泛应用于电子产品中。
学习单片机可以帮助我们更深入理解计算机原理和底层运作。
本实验将介绍如何使用单片机来制作一个简易计算器。
所需材料:
1. 单片机开发板
2. 4位7段显示器
3. 数字按键开关
4. 杜邦线
5. 电位器
6. 板子外壳
步骤1:连接电路
将数码管和数字按键开关与单片机开发板连接。
使用杜邦线将每个组件的引脚连接到开发板的相应引脚。
电位器可用于调节数码管显示的亮度。
步骤2:编写程序
使用C语言编写程序。
程序需要识别按键输入的数字和运算符,
并根据不同的情况显示计算结果。
程序中需要使用条件语句、循环语
句和函数等基本语言结构。
步骤3:测试程序
将编写好的程序上传到单片机开发板中。
测试程序的过程中要注
意按键输入的顺序和正确性。
如果按键输入错误,程序需要能够正确
地识别并给出错误提示。
步骤4:完成外壳
将单片机开发板和数码管装进铝盒中,并将数字按键开关与外壳
相连。
在外壳上打开一个窗口,以便能看到数码管和按键。
为了美观,可以涂上一些喜欢的颜色或加上小贴纸等装饰。
通过这个实验,我们深入了解了单片机的基本原理和运作方式,
掌握了C语言编程语言基础知识,并制作了一个实用的计算器。
在实
践中,我们不仅锻炼了问题解决能力和动手能力,还增强了对电子产
品的兴趣和信心。
单片机课程设计报告——简易电子计算器

1、设计要求
通过软件编程,利用 AT89S51 单片机实现设计简易的计算器功能,即可实现 简单加减乘除。实现计算器的键盘输入,进行加、减、乘、除基本四则运算,并 在显示设备上显示相应的结果。要求撰写课程设计报告,并在设计报告中列写系 统方案,画出系统框图;然后分析工作原理、画出硬件电路原理图;同时画出程 序框图,给出程序清单;之后,写出系统调试分析结果。并在最后写出对于本次 课程设计的心得体会。
二、课程设计成果要求(包括课程设计说明书、图纸、图表、软硬件等要求) 1,课程设计报告; 2,系统方案,画出系统框图; 3,分析工作原理、画出硬件电路原理图; 4,画出程序框图,给出程序清单; 5,写出系统调试分析结果 三、课程设计工作进度计划 星期一:设计硬件电路,焊接电路板; 星期二:编写程序,调试并编译生成.hex 文件; 星期三:烧录程序,结合硬件调试程序; 星期四:演示结果,撰写课程设计报告; 星期五:修改报告,打印并答辩。 四、主要参考资料 1.《单片机原理及应用》张毅刚主编,高教出版社,2012.11 2. C51 单片机有关教材和文献资料
指导教师(签名): 2013 年 12 月 20 日
系主任(签名): 2013 年 12 月 20 日
1
目录
1、设计要求.................................................................................................................. 1 2、简易计算器系统设计.............................................................................................. 1 3、简易计算器系统硬件设计...................................................................................... 1
《单片机技术》课程设计课题任务书(计算器)

(2)、显示程序模块
(3)、键盘程序模块
(4)、各种计算程序模块
三、设计要求
该计算器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。能实现(1)基本的加、减、乘、除、平方、开方;(2)三角函数运算;(3)十进制、十六进制转换运算;(4)其它功能。
主要参考资料
[1]李广弟.单片机基础[M].第3版.北京:北京航空航天大学出版社,2003.6.
[2]李全利.单片机原理及应用(C51编程)[M].北京:高等教育出版社,2012.12.
[3]马忠梅.单片机的C语言应用程序设计[M].第4版.北京:北京航空航天大学出版社,2003.6.
[4]李光飞.单片机C程序设计指导[M].北京:北京航空航天大学出版社,2003.01.
[5]李光飞.单片机课程设计实例指导[M].北京:北京航空航天大学出版社,2004.9.
湖南工学院《单片机技术》课程设计课题任务书
学院:电气与信息工程学院专业:电气1301~2
指导教师
王韧
学生姓名
课题名称
计算器
内容及任务
一、设计任务
设计一个具有特定功能的计算器。
二、设计内容
1、计算器的硬件系统
(1)、单片机最小系统模块
(2)、供电模块
(3)、显示模块
(4)、键盘模块
2、计算器的软件系统
教研室
意见
教研室主任:(签字)
年月日
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
吉林化工学院信息与控制工程学院
毕业设计(论文)开题报告
基于单片机简易计算器设计与仿真
Design and Simulation of a Simple Calculator Based on Single Chip Microcomputer Control
1. 本报告前6项内容由承担毕业论文(设计)课题任务的学生独立撰写;
2. 本报告必须在第八学期开学三周内交指导教师审阅并提出修改意见;
3. 学生须在小组内进行报告,并讨论;
4. 本报告作为指导教师、专业系或毕业论文(设计)指导小组审查学生能否承担该毕业设计(论文) 课题和是否按时完成进度的检查依据,并接受学校和教学院的抽查。