基于51单片机的计算器开题报告
基于51单片机的简易计算器设计报告
基于51单片机的简易计算器设计【摘要】单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。
本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除八位数范围内的基本四则运算,并在LCD上显示相应的结果。
设计电路采用AT89S51单片机为主要控制电路,利用4*4矩阵键盘作为计算器的数字以及运算符的输入。
显示采用字符LCD静态显示。
软件方面使用C语言编程,并用开发板制作并演示。
【关键词】计算器,单片机,LCD,矩阵键盘AbstractThe emergence of computer chip manufacturing technology, rapid development of the product, which is the core of embedded control systems, and now, it has been widely applied to all areas of our lives, electronics, technology, communications, automotive, industrial and so on. The design is based on the 51 computers for digital system design calculator, you can complete the calculator keyboard, to add, subtract, multiply, and divide within the scope of the basic six-digit arithmetic, and the corresponding results on the LCD display . AT89C51 microcontroller circuit design as the main control circuit, use MM74C922 4 * 4 keypad as a calculator scan IC to read keyboard input. Character LCD display with a static display. Software using the C programming language, and use PROTUES simulation.Keywords:calculator,MCU,LCD,Matrix keyboard目录摘要 (1)一、系统总体设计 (1)1.1设计概述 (1)1.2设计思路 (1)1.3系统总体模块图: (2)1.4系统方案 (2)二、硬件系统设计 (2)2.1主控芯片A T89S52单片机 (2)2.2 LCD1602液晶显示屏 (3)2.3键盘接口电路 (4)2.4 清零、音乐开关、开方和多次方运算功能模块 (5)2.5电源模块设计 (6)三、软件系统设计 (6)3.1总体设计 (6)3.2子程序设计 (8)3.2.1液晶显示程序设计 (8)3.2.2 矩阵键盘扫描程序设计 (8)3.2.3 AC清零程序设计 (9)3.2.4 声音开关子程序设计 (10)四、系统功能测试 (10)4.1总体实物测试 (10)4.2 各项功能测试 (11)4.3 多次测试 (11)五、总结 (12)六、结束语 (12)参考文献 (13)附录 (14)附1:计算器原理图 (14)附2:主程序清单 (14)附3:键盘扫描子程序 (21)附4:LCD1602显示程序 (24)附5:LCD1602显示字符表 (28)附6: LCD接口信号说明 (29)附7: LCD写操作时序图 (29)一、系统总体设计1.1设计概述本设计使用AT89S52单片机作为主控芯片,通过计算机键盘进行数据输入,进行相应的加、减、乘、除的运算,并在LCD上显示相应的结果,主要功能特点如下:(1)LCD的第一行显示运算式子,第二行显示运算结果,在任何时候按下AC清零按键时候,都必须退出当前计算,返回初始状态,等下新的一次运算。
基于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单片机的计算器开题报告
主要研究内容
本系统的研究分三部分:
1.探头选择。
2.软件设计。
3.语音报警。
实验设计
8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。
主要参考文献(研究综述:作者、题目、杂志、卷号、页码)
【1】杨文龙编.单片机原理及应用[M].西安:西安电子科技大学出版社,2005.
【2】杨将新,李华军编.单片机程序设计及应用[M].北京:电子工业出版社,2006.
【3】陈有卿,张晓东编.报警集成电路和报警器制作实例[M].北京:北京人民邮电出版社2001.
(2)以MCS-51单片机为核心,开发一个完整)使用Protel软件,绘制原理图、PCB,并进行元器件安装、焊接及调试检测达到预期的目的。
论文(设计)拟定提纲
第一部分:引言
第二部分:单片机计算器的设计方案
第三部分:硬件、软件的设计
第四部分:安装、调试
第五部分:结论、致谢、参考文献与附录
指导教师意见及建议
签字:年月日
课题答辩组意见及建议
组长签字:年月日
系主任意见
签字:年月日
闽西职业技术学院电气工程系
毕
业
设
计
开
题
报
告
班级:
学号:姓名:指导老师:
毕业设计开题报告
论文(设计)题目
基于单片机的红外线监控报警器设计
学生姓名
林文虎
系、专业
应用电子
指导教师
林金亮
基于单片机计算器开题报告
基于单片机计算器开题报告基于单片机计算器开题报告一、引言计算器是人们日常生活中必不可少的工具,它能够快速完成数学运算,提高计算效率。
随着科技的不断发展,计算器也在不断升级和改进。
本文将介绍基于单片机的计算器开题报告,探讨如何设计一个功能强大、易于使用的计算器。
二、背景目前市面上的计算器种类繁多,从简单的四则运算到科学计算器,功能各异。
然而,大多数计算器都存在一些问题,如操作繁琐、显示不清晰等。
为了解决这些问题,我们决定设计一个基于单片机的计算器。
三、目标我们的目标是设计一个功能齐全、易于使用的计算器,具备以下特点:1. 界面简洁明了,显示清晰,操作方便;2. 支持基本的四则运算,并具备科学计算功能;3. 具备存储和检索计算结果的功能;4. 具备实时计算和反馈功能,能够提高用户体验。
四、设计思路基于单片机的计算器设计有以下几个关键步骤:1. 选择合适的单片机:我们将根据计算器的功能需求,选择适合的单片机芯片,如ATmega系列。
2. 界面设计:我们将设计一个简洁明了的界面,采用液晶显示屏,并通过按键进行输入和操作。
3. 硬件设计:根据计算器的功能需求,设计合适的电路板,包括按键输入电路、显示电路和计算电路等。
4. 软件开发:编写单片机的程序代码,实现计算器的各项功能,包括基本的四则运算、科学计算、存储和检索等。
5. 测试和优化:对设计的计算器进行测试,发现问题并进行优化,确保计算器的稳定性和准确性。
五、预期成果我们预期的成果是设计出一个功能齐全、易于使用的基于单片机的计算器。
该计算器将具备以下特点:1. 界面简洁明了,显示清晰,操作方便;2. 支持基本的四则运算,并具备科学计算功能;3. 具备存储和检索计算结果的功能;4. 具备实时计算和反馈功能,提高用户体验。
六、创新点本设计的计算器有以下几个创新点:1. 界面简洁明了:通过合理的界面设计和显示方式,使用户能够清晰地看到输入和计算结果。
2. 科学计算功能:除了基本的四则运算,我们还将加入科学计算功能,如三角函数、指数运算等,满足更多用户的需求。
51单片机简易计算器设计报告
51单片机简易计算器设计报告
本文将介绍51单片机简易计算器的设计报告。
该计算器通过
16位的LCD显示屏实现了基本计算功能,包括加、减、乘、除、取反、开方等。
1. 硬件设计
该计算器的核心部件是STC89C52单片机。
STC89C52是一种
高性能、低功耗的8位单片机,拥有8KB的Flash程序存储器和128字节的内部RAM,可提供多种功能和通讯接口。
通过
I/O口与LCD模块通讯,实现输出功能。
该计算器使用16位的LCD显示屏,显示范围为-99.99~99.99,共有6个数字位。
显示屏使用了ST7920控制器,可通过串行、并行等多种方式控制。
2. 软件设计
该计算器的软件设计主要包括三部分:键盘扫描,计算功能和LCD显示。
键盘扫描:该计算器采用4x5矩阵键盘,通过程序对键盘进行扫描,实现对不同按键的检测。
计算功能:该计算器可以实现基本的四则运算、取反、开方等功能。
对于四则运算,通过栈来实现计算,将运算符压入栈中,然后将操作数从栈中取出进行计算。
LCD显示:该计算器使用16位的LCD显示屏,通过程序控制数据和命令的传输,将计算结果显示在LCD屏幕上。
3. 总结
通过对51单片机简易计算器的设计报告,可以看出该计算器实现了基本的计算功能,通过硬件设计和软件设计相结合,将计算器的功能实现得十分完整。
该计算器的设计初步掌握了51单片机的应用,有助于后续项目的开展。
陈芳基于51单片机的计算器称开题报告2
哈工大华德应用技术学院毕业设计(论文)开题报告学生姓名:***学号:**********专业:应用电子与通信技术系论文题目:基于51单片机的计算器指导老师:20 年10 月27 日一、课程题目和课题研究现状基于51单片机的计算器。
随着社会的不断发展,科技的不断创新。
计算器已在数十年间遍布千家万户,对于计算器的百年历史,1946年2月15日,在美国宾夕法尼亚大学,世界上第一台电子计算器ENIAC正式投入了运行。
在隆重的揭幕仪式上,ENIAC 表演了它的“绝招”:在1秒钟内进行5000次加法运算;在1秒钟内进行500次乘法运算。
这比当时最快的电器计算器的运算速度要抉1000多倍。
全场起立欢呼,欢呼科学技术进入了一个新的历史发展时期。
数学家把聪明给了电子计算器,电子计算器将使数学家变得更加明。
而且电子计算器不仅是一种工具,它与其它的工具都不相同:电子计算器是人脑的一个侧面的延伸。
因为电子计算器不仅具有非凡的计算能力,速度之快令人望尘莫及,而且还能够仿真人的某些思维功能,按照一定的规则进行逻辑判和逻辑推理,代替人的部分脑力劳动。
1976年,数学家凭借电子计算器去证明四色定理,“依靠机器完成了人没有能够完成的事情”,轰动了整个国际数学界。
计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器,使用ASIC设计的计算器,如使用纯软件实现的计算器等,未来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。
二、选题的目的和意义本次做的计算器是以单片机(AT89S52)为核心,结合相关的元器件(1 602液晶、74ls373锁存、6264RAM、矩阵键盘等),再配以相关的软件,达到制作计算器的目的,电子计算器是日常生活中常用的电子计算仪器,广泛应用于超市、大中型商场、大小企业。
电子计算器具有精度高、体积小、应用范围广、易于操作使用等优点。
目前科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。
基于51单片机的计算器设计实验报告
实验报告
班级:
12电子2
姓名:
风间
学号:
2015年1月6日
一、
1.初步尝试运用单片机进行系统设计;
2.掌握矩阵键盘的中断扫描显示;
3.掌握液晶或数码管的动态显示;
4.掌握数据的存储和掉电保护。
二、
Keil c、proteus、及单片机开发板。
三、
基本要求:
1完成标准型计算器的基本功能
2.4*4矩阵键盘(0~9、+、-、*、/、=、%进行数据的输入及加、减、乘、除 基本运算,运用1602液晶或数码管进行显示
FDET^VD
PCLVA11
PH 5V**7
WTJM^
■ 口j
PQ卅Q+
prw肚旺
RBT
PDVAA<
PD7MD7
R.1W
PEMi口
rtsti
Ml
K
iP7伽ii
f13
P7<w'ftn
PHAU
l£
PW
P3fyp-aJi
・H IfOCIJi i
P1Z
pa^nrrn
P1J
333!llf~1
P3mTEJ
F 1 f
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;
lcde n=0;
//判断忙或空闲
//禁止读写
delay(1);
lcde n=1;
毕业设计基于51单片机实验板设计开题报告及任务书
毕业设计(论文)开题报告及任务书
设计(论文)题目
基于51单片子
指导教师
XXX
1.选题目的和意义:
单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。同时,一个学习与应用单片机的新高潮正在大规模地兴起。
2单片机驱动LED灯
3单片机驱动数码管,采用共阴连接,驱动加上小数点的八段数码管。
4单片机驱动蜂鸣器,单片机机I/O口连接三极管驱动蜂鸣器。
5单片机中断
6串口接口的max232芯片与单片机的连接用于串口通信
3.完成设计(论文)的条件、方法及措施,包括实验设计、调研计划、资料收集、参考文献等内容。
一实验设计
(1)初步确定课题。(2)利用互联网查阅单片机相关知识。(3)图书馆节约相关书本。
(4)与指导教师及同学共同探讨。(5)利用电脑Protel软件、设计电路图,参考相关芯片资料及电路图实现单片机各模块整合,制作出简单实验板。
二调研计划
2010年11月1日——12月1日收集资料,方案设计。
2010年12月2日——2011年1月1日方案整理,设计电路图,成品制作。
4.指导教师意见及建议:
签字:
年月日
注:此表前三项由学生填写后交指导教师签署意见,否则不得开题。
为适合广大的单片机学习者和爱好者。实验板集下载实验于一体,不用专门的下载器,编程器,简单易学,省钱省力。通过对各种实验的操作了解单片机的功能及结构,从而更好的开发新产品,做项目。
2.主要研究内容:
本设计以STC89C52单片机为中心控制系统,主要由51最小系统、复位电路、晶振电路、
串口通信MAX232电路,电源电路,发光二极管模块,数码管显示模块,蜂鸣器模块,独立按键模块组成。
基于51单片机简易计算器课程设计报告
基于51单片机简易计算器课程设计报告
基于51单片机简易计算器课程设计报告
1. 研究背景
•计算器是人们日常生活和工作中常用的工具之一。
•通过设计简易计算器,可以加深学生对51单片机的理解和应用。
2. 目标和需求
•设计一个基于51单片机的简易计算器,能够进行基本的四则运算和开方运算。
•要求计算器能够显示输入和计算结果。
•要求计算器具备简单的界面和操作。
3. 设计方案
•使用51单片机作为计算器的控制核心。
•通过键盘输入数字和运算符,并显示在液晶屏上。
•根据输入的运算符,进行相应的计算,并将结果显示在液晶屏上。
4. 硬件设计
•使用51单片机作为主控芯片。
•连接液晶屏模块,用于显示输入和计算结果。
•连接键盘模块,用于输入数字和运算符。
5. 软件设计
•使用C语言进行编程。
•设计主程序,包括初始化、输入处理和计算输出等功能。
•设计函数,实现基本的四则运算和开方运算。
6. 实验结果
•成功设计并实现了基于51单片机的简易计算器。
•可以正常进行基本的四则运算和开方运算。
•输入和计算结果能够准确显示在液晶屏上。
7. 总结与展望
•通过设计这个简易计算器,学生对51单片机的理解和应用能力有了提高。
•下一步可以考虑增加更多的功能,如科学计算和数据存储等。
以上是本次基于51单片机简易计算器课程设计的报告。
通过这个实验,学生对51单片机的应用能力得到了提升,进一步增强了对计算器的理解。
在未来的课程设计中,可以进一步拓展功能,提升计算器的实用性和功能性。
单片机设计报告-基于51单片机的简易计算器设计
设计任务
在本次工程实践中,主要完成如下方面的设计任务: 1)简要综述单片机技术发展的国内外现状及数码管动态显示和矩阵键盘基本原理; 2)掌握 MCS-51 系列某种产品的最小电路及外围扩展电路的设计方法; 3)了解单片机数据转换功能及工作过程; 4)完成主要功能模块的硬件电路设计及必要的参数确定; 5)用 Protues 软件完成原理电路的绘制并实现与 Keil uVision4 软件的连接仿真; 6)完成系统实物设计。
设计目的
通过本次课程设计,运用《数字电子技术基础》、《单片微型计算机原理及应用》所 学知识及查阅相关资料,完成简易计算器的设计,达到理论知识与实践更好结合、提高 综合运用所学知识和设计能力的目的。
通过本次设计训练,可以使我们在基本思路和基本方法上对基于 MCS-51 单片机的嵌 入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。
2
电子课程设计报告
目录
基于 51 单片机的简易计算器设计
摘要.................................................................................................................................................................. 2 目录.................................................................................................................................................................. 3 前言.................................................................................................................................................................. 4
基于51单片机的简易计算器设计报告
基于51单片机简易计算器设计报告一、研究意义计算器(Calculator)是微型电子计算机的一种特殊类型。
它与一般通用计算机的主要区别在于程序输入方式的不同。
计算器的程序一般都已经固定,只需按键输入数据和运算符号就会得出结果,很容易就能掌握。
而一般计算机的程序可以根据需要随时改动,或重新输入新的程序。
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算(有的还带有数据总加、求平均值等统计运算)。
现代电子计算器首次问世是1963年。
那时的计算器是台式的,在美国波士顿的电子博览会上展出过。
与计算机相比,它小巧玲珑,计算迅捷,一般问题不必事先编写复杂的程序。
随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。
这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能机器人。
二、设计方案1)硬件部分设计单片机以AT89C51来做为核心元器件,按键部分采用4*4行列式键盘,分别设定数字键和功能键,采用查询方式,每次有键按下时,先判断是实数字键还是功能键。
但是这种方式采用了大量的I/O口线。
在单片机应用系统中,使用的显示器主要有LED(发光二极管显示器)、LCD液晶显示器以及CRT接口。
使用液晶显示器来显示。
液晶是介于固态和液态间的有机化合物,将其加热会变成透明液态,冷却后变成结晶的混浊固态。
在电的作用下,产生冷热变化,从而影响它的透光性,来达到显示的目的。
LCD还具有以下几个优点(1)低压、微功耗(2)显示信息量大(3)长寿命(4)无辐射,无污染。
2)软件部分设计软件部分的设计思路是将整个程序划分为键盘扫描部分,显示部分,运算程序部分,清屏显示部分。
基于单片机的简易电子计算器设计开题报告
授人以渔
能力为本
第3页
5.指导教师意见:
该基于单片机的简易电子计算器设计符合专业培养要求,具有一定的实际运用意义,该生对 该题目分析清晰,时间分配合理,同意该生开题: 20 年 月 日
授人以渔
能力为本
⑵ 采用相应的技术手段,进行论文课题图纸的设计。 ⑶ 应用实用仪器设备及工具加以适当验证。 ⑷ 采用适宜软件进行必要的仿真及绘图。
主要内容:
LED 数码管显示模 块
指示模块
主控制模块
电源模块
矩阵键盘模块
授人以渔
能力为本
第2页
本设计是以 AT89S51 单片机为核心的八位计算器模拟系统设计,采用 C 语言进行程序编写实 现计算器的功能。外接 4×4 矩阵键盘,通过键盘的扫描完成输入数的控制,并驱动电路使数值与 结果在七段共阳极数码管上正常显示,并设有清零键可以随时完成计算与显示的清零。计算器将 完成 0 至 99999999 整数的一次加、减、乘、除以及小数,负数的运算。开机即显示 0,等待键入 数值的输入,输入的数字将通过数码管显示出来,再输入一个运算符号之后,计算器在内部执行 数值转换和存储并等待再次输入一个数值。当再输入一个整数数值后,按等于键后数码管上显示 结果。
更出色的计算器,使其更好的为各个行业服务,成了如今电子领域重要的研究课题。
今天,人们的日常生活中已经离不开计算器了,社会的各个角落都有它的身影,比如商店,
办公室,学校……。因此设计一款简单实用的计算器会有很大的实际意义。
2、选题研究的方法与主要内容 选题研究的方法:
⑴ 文献资料法:查阅了大量相关的文献资料,对基于单片机的简易计算器进行了深入地研 究,完成了论文撰写的理论基础及准备工作。
科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。 本设计的计算器通过 C 语言的编程来实现各个元器件功能,告别了以前复杂的电路设计的计算器 模式。此设计的计算器更加小型化和轻便化,在整数的加减乘除的计算方面更加的方便快捷。 未 来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。
51单片机简易计算器设计报告(一)
51单片机简易计算器设计报告(一)背景介绍在数字化时代,计算器作为一种简单易用的工具,越来越得到人们的关注和热爱。
而基于51单片机的简易计算器,不仅可以成为一种学习电子技术的手段,还具有满足简单计算需求的实用性。
设计思路本计算器采用键盘输入和数码管输出的电路设计,为用户提供加、减、乘、除、小数点、退位以及等于等功能。
1.键盘输入采用矩阵键盘的方式,将所有按键按行列排列,并利用51单片机中断方式来读取键值。
2.计算处理通过编写相应的程序代码,计算出用户输入的两个数值及操作符的结果,并将结果存储在数据缓存器中,最后将其输出至数码管。
3.数码管显示根据计算结果的数据类型,将其经过相应的转换处理后,通过数码管将结果输出至用户。
设计技术1.软件编写软件编写方面,采用汇编语言进行编写,代码总长度为2.2KB 左右。
其中,以中断方式读取键值、实现数值存储与判断、计算处理、数码管的结果输出等作为关键点进行编写。
2.硬件搭建硬件搭建方面,需要按照电路图进行搭建,并将51单片机与相关周边电路进行连接。
根据设计思路,将键盘、数码管、电源、指示灯等设备按照需求进行连接。
可改进之处虽然 51单片机的简易计算器的搭建能够满足基本计算需求,但其在以下几方面还有可改进之处:•添加计算科学函数,如三角函数、对数函数等。
•改进操作方式,使其更加符合人体工程学原理。
•添加储存器,使用户能够将计算结果进行存储和调用。
总结通过本次对基于51单片机的简易计算器的设计与实现,我们深入了解了电子技术的基本概念和硬件搭建原理,并了解到了简单嵌入式系统的工作原理。
虽然该计算器在功能和效率方面还有待改进,但对于初学者来说,其对于电子技术的学习和实验还是很有价值和意义的。
•编写的汇编代码过于繁琐,可考虑使用高级语言编写以提高效率和易读性。
•在电路搭建时需注意布线的合理性,尽量避免出现干扰和信号损失的问题。
综上所述,基于51单片机的简易计算器的设计和实现虽存在一些不足,但还是很有价值的。
基于单片机的计算器设计开题报告
研究内容(包括:本人对开展论题研究工作的设想,列出具体研究内容和重点拟解决的问题)
本论文设计题目是简单计算器的设计,根据设计要求分析,硬件主要由四部分组成,核心部分为AT89S52单片机芯片,按键部分是一个4×4键盘,采用软件识别键值,并执行相应的操作。显示部分是一个LCD1602液晶显示器。软件部分主要用C程序语言来编程。大致执行过程:开机显示零,等待输入数值,当键入数字时,通过显示器显示出来,当键入+、-、*、/运算符时,计算器在内部执行数值存储和转换,并等待再次输入数值,当再次输入数值后,显示新输入的数值,按等号就会在显示器上输出运算结果
答辩时,能够简明的阐述设计(论文)的主要内容,对主要问题的回答基本正
确,或经教师启发后正确地回答,但缺乏深入的分析。
比较注重礼貌和仪容仪表。
60-69分
答辩时,能够阐述设计(论文)的主要内容,主要问题能回答出,或经答辩教
师启发答出,回答问题较为肤浅。
注意礼貌和仪容仪表。
60分以下
答辩时,不能正确阐述设计(论文)的主要内容,基本概念不清楚或有重大错
指导教师签字:学生签字:年月日
第二次指导:
指导方式:(请选择)面谈□电话□电子邮件□其它□
指导教师签字:学生签字:年月日
第三次指导:
指导方式:(请选择)面谈□电话□电子邮件□其它□
指导教师签字:学生签字:年月日
第四次指导:
指导方式:(请选择)面谈□电话□电子邮件□其它□
指导教师签字:学生签字:年月日
基于51单片机简易计算器课程设计报告
基于51单片机简易计算器课程设计报告引言:计算器是现代社会中常见的电子设备之一,它能够帮助人们进行各种数学运算,提高计算效率。
本文将介绍基于51单片机的简易计算器的设计过程及实现方法。
一、设计目标本次设计的目标是实现一个简易计算器,能够进行基本的加减乘除运算,并能够显示计算结果。
通过该设计,旨在加深学生对51单片机的理解,培养其实际操作能力。
二、硬件设计1. 电源模块:采用稳压电源模块,提供稳定的电压给单片机及其他电路模块。
2. 单片机模块:采用51单片机,作为计算器的核心控制模块,负责接收按键输入、进行运算和显示结果。
3. 按键模块:设计合适的按键电路,用于输入数字和操作符。
4. 显示模块:采用数码管或液晶显示屏,显示计算结果。
5. 连接线:将各个模块连接起来,确保信号的传输畅通。
三、软件设计1. 初始化:设置单片机的工作模式、端口方向和初始状态。
2. 按键扫描:通过轮询的方式检测按键是否被按下,若有按键按下则进行相应的处理。
3. 输入处理:根据按键的顺序和操作符的位置进行输入的处理,将输入的数字和操作符分别存储在相应的变量中。
4. 运算处理:根据输入的操作符进行相应的运算,得出计算结果。
5. 结果显示:将计算结果通过数码管或液晶显示屏进行显示。
6. 清零处理:在计算结果显示完毕后,对相关的变量进行清零处理,以便进行下一次的计算。
四、功能实现1. 加法运算:通过按下"+"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。
2. 减法运算:通过按下"-"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。
3. 乘法运算:通过按下"*"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。
基于51单片机的计算器课程设计实验报告
项目一:简单计算器1。
实验题目:用51单片机实现简单的计算器功能2。
实验截图:1).实验运行前截图:2).实验运行后截图:3.实验代码:#include<reg52。
h〉#include〈intrins.h〉#include〈math.h>#include<defined。
H>#include〈LCD1602.h>unsigned char table1[16]; //1602第一行显示字符unsigned char table2[16]; //1602第二行显示字符unsig ned char code table_error[] = ”error”;/*键扫描函数*/unsigned char keyscan() //扫描键盘函数{unsigned char key_l,key_h,addres,num;P0=0x0f;key_l=P0;P0=0xf0;key_h=P0;addres=key_l | key_h;if(addres!=0xff){Delayms(1);if(addres!=0xff){P0=0x0f;key_l=P0;P0=0xf0;key_h=P0;addres=key_l | key_h;switch(addres){case 0xee:num='1’;break;case 0xde:num=’2';break;case 0xbe:num=’3’;break;case 0xed:num='4';break;case 0xdd:num='5’;break;case 0xbd:num=’6';break;case 0xeb:num=’7’;break;case 0xdb:num='8’;break;case 0xbb:num='9’;break;case 0xd7:num='0’;break;//按键0case 0xe7:num=’C';break;//按键*case 0xb7:num=’=';break;//按键#case 0x7e:num='/’;break;//按键Acase 0x7d:num=’*’;break;//按键Bcase 0x7b:num='—’;break;//按键Ccase 0x77:num='+';break;//按键D}while(addres!=0xff){P0=0x0f;key_l=P0;P0=0xf0;key_h=P0;addres=key_l | key_h;}return num;}}return 0;}void clear_lcd(void)//清屏{unsigned char j;for(j=0;j〈16;j++){table1[j]=’\0’;table2[j]='\0';}}void main(){unsigned char i=0,j;unsigned char key;unsigned char flag_operator = 0;//加减乘除标志位unsigned char flag_equ = 0;//等于标志位unsigned char flag_key = 0;//运算位标志bit flag_MaxValue = 0;bit flag_minus = 0;//负数long int value = 0; //最终运算结果unsigned long int value_H =0; //第一个数据unsigned long int value_L = 0;//第二个数据unsigned long int temp[]={1, 10, 100,1000,10000,100000,1000000,10000000,100000000};Initialize_LCD();while(1){key=keyscan();if(key != 0){if(key == ’C')//清除键C按下{clear_lcd();i=0;flag_operator = 0; flag_equ = 0; value = 0; value_H =0; value_L = 0; flag_key = 0; flag_minus=0;}else{for(j=0; j<i; j++){table1[15—i+j] = table1[15—i+j+1];}table1[15] = key;//table1[i] = key;i++;}if(key == '='){for(j=0; j〈16; j++)//确定运算符位置{if(table1[j] == ’=’){flag_equ = j;flag_key++;break;}if( table1[j]== ’+' || table1[j] == ’—' || table1[j] == ’*' ||table1[j] == '/'){flag_operator = j;flag_key++;}}for(j=16—i; j〈flag_operator; j++) //第一个数据处理{//value_H = value_H + (table1[j]-48) * ( pow(10 ,(flag_operator—j-1)));value_H = value_H + (table1[j]—48) * temp[flag_operator—j—1];}for(j=flag_operator+1; j〈15; j++) //第二个数据处理{//value_L = value_L + (table1[j]-48) * pow( 10 , (flag_equ—j—1));value_L = value_L + (table1[j]—48) * temp[flag_equ—j—1];}if(table1[flag_operator] == '+'){value = value_H + value_L;}else if(table1[flag_operator]== ’-'){value = value_H — value_L;}else if(table1[flag_operator] == '*'){value = value_H * value_L;}else if(table1[flag_operator]== ’/’){value = value_H / value_L;}if(value == 0)table2[15] = (value + 48);else if(value<0){value = abs(value);flag_minus = 1;}else if(value〉2000000000){flag_MaxValue = 1;//break;}j=15;while(value!=0){table2[j] = (value%10 + 48);value = value/10;j—-;}if(flag_minus) //负数{table2[j] = ’—’;}}if(flag_key 〉2 || table1[0] == '0' || flag_MaxValue==1 ){ShowString(5,1,table_error);while(keyscan() != 'C’);clear_lcd();i=0;flag_operator = 0; flag_equ = 0; value = 0; value_H =0; value_L = 0; flag_key = 0; flag_minus=0;}}ShowString(0,0,table1);ShowString(0,1,table2);}}。
基于单片机的简易计算器设计开题报告
[4]胡学海.单片机原理及应用系统设计.北京.京电子工业出版社,2005
[5]王金明. 数字系统设计[M].北京:电子工业出版社,2009
[6]谭浩强.C程序设计(第三版).北京.清华大学出版社,2005
六﹑指导教师意见:(对课题的深度﹑广度及工作量的意见)
毕业设计开题报告
班级
xxx
学号
xxxx
姓名
xxx
指导教师
xxx
课题名称
简易计算器的设计及制作
一﹑课题背景:
1956年,美国贝尔实验室用进晶体管代替真空管,制成了世界上第一台全晶体管计算器,它使计算器的体积、重量、耗能量都大为减少,但计算能力较差。现在,除了日本、美国以外,欧亚的多功能计算机发展也很迅速。国外电子计算器正向着智能化、高精度、小体积方向发展,所以用单片机实现多功能计算器的设计是很具有推广性的。近年来,国内电子计算机发展也比较迅速,不少厂家推出了与卡西欧科学计算器功能类似的产品,如深圳金泰福的XX产品;广州罗纳多计算器等,一定程度上实现了计算器芯片的国产化,但价格高,扩展功能不足。充分表明,我国的多功能计算器发展中还存在问题,具有很大的发展空间。现在市场计算器类型多样化,功能越趋多功能化。单片机能方便的实现计算器的设计,单片机也越来越多的应用于计算器的设计中。
二﹑课题研究的意义:
计算器是日常工作和学习生活中的常用工具,人们利用它代替了许多复杂计算,包括加减乘除和其他运算。尤其是小型计算器,它携带方便,在生活中用起来方便快捷,成为了财政、学习、生意上都青睐的必需品。它的需求广泛,在计算器的发展上存在很大的空间和市场意义。单片机在我国的各行各业得到了广泛使用,单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心。如今,它已经广泛应用到我们生活中的各个领域,如:电子、科技、通信、汽车、工业等。一般只需几块钱,有着经济廉价的优势,用单片机可以很方便的实现计算器的设计。
基于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上清零和等于功能为了提升用户体验,我们还可以添加清零和等于功能。
基于C51单片机计算器实训报告
目录一、设计的意义二、设计的流程三、设计的原理四、设计的模块五、元器件清单六、成品的制作七、设计的总结一、设计的意义计算器是日常工作和学习生活中的常用工具,人们利用它代替了许多复杂计算,包括加减乘除和其他运算。
尤其是小型计算器,它携带方便,在生活中用起来方便快捷,成为了财政、学习、生意上都青睐的必需品。
它的需求广泛,在计算器的发展上存在很大的空间和市场意义。
单片机在我国的各行各业得到了广泛使用,单片机的出现是计算机制造技术高速发展的产物。
如今,它已经广泛应用到我们生活中的各个领域,如:电子、科技、通信、汽车、工业等。
一般只需几块钱,有着经济廉价的优势,用单片机可以很方便的实现计算器的设计。
本设计是以单片机为基础设计出简单的一次式计算器。
二、设计的流程本设计的计算器硬件电路采用三部分电路模块构成,第一部分是键盘模块,采用4*4矩阵键盘作为输入电路;第二部分是LCD1602液晶显示模块;第三部分是以89C52单片机作为控制核心。
软件程序主要由三部分组成:主程序、按键扫描程序和LCD1602显示程序。
下图为硬件模块框图:下图为设计流程图:三、设计的原理硬件电路原理图:四、设计的模块1、电源模块:电源的设计采用了自锁开关控制电源正极的接通与断开,当P1接上+5V直流电源时;若S1没有按下,此时S1的1与5端口接通,+5V电流不流通到电路,电路不工作;当S1按下后,3与5端口接通,此时+5V电流流通到电路是电路工作。
2、89C52单片机模块:此模块式是本设计的控制核心模块,常称为单片机最小系统;单片机最小系统由三部分组成:STC89C52芯片部分、复位部分(由按键开关、极性电容、10K电阻组成)、晶振部分(由12M石英晶振、两个30PF的瓷片电容组成)。
主要起程序的输入与控制、程序的复位、时间频率控制的作用。
3、4*4矩阵键盘模块:键盘可分为两类:编码键盘和非编码键盘。
编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
签字:年月日
课题答辩组意见及建议
组长签字:年月日
系主任意见
签字:年月日
(2)以MCS-51单片机为核心,开发一个完整的系统,包括硬件设计和软件的编程。
(3)使用Protel软件,绘制原理图、PCB,并进行元器件安装、焊接及调试检测达到预期的目的。
论文(设计)拟定提纲
第一部分:引言
第二部分:单片机计算器的设计方案
第三部分:硬件、软件的设计
第四部分:安装、调试
第五部分:结论、致谢、参考文献与附录
完成论文(设计)的条件、方法及措施
硬件条件:MCS-51单片机,中央处理器,数据存储器(RAM),程序存储器(ROM),定时/计数器(ROM),并行输入输出(I/O)口,全双工串行口,中断系统,时钟电路。
软件条件:电子绘图软件Protel 99 SE、Multisim2001、Keil。
方法:(1)通过网络及各种相关书籍者、题目、杂志、卷号、页码)
【1】杨文龙编.单片机原理及应用[M].西安:西安电子科技大学出版社,2005.
【2】杨将新,李华军编.单片机程序设计及应用[M].北京:电子工业出版社,2006.
【3】陈有卿,张晓东编.报警集成电路和报警器制作实例[M].北京:北京人民邮电出版社2001.
。
主要研究内容
本系统的研究分三部分:
1.探头选择。
2.软件设计。
3.语音报警。
实验设计
8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。
闽西职业技术学院电气工程系
毕
业
设
计
开
题
报
告
班级:
学号:姓名:指导老师:
毕业设计开题报告
论文(设计)题目
基于单片机的红外线监控报警器设计
学生姓名
林文虎
系、专业
应用电子
指导教师
林金亮
选题目的、价值和意义
说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。
【4】高文焕,刘润生编.电子线路基础[M].北京:北京高等教育出版社,1997.
【5】王世昌编.电子线路辅导和题选[M].上海:上海科学技术文献出版社,1999.
【6】王远编.模拟电子技术基础学习指导书北[M].北京:清华大学出版社,1998.
【7】邱关源主编.电路(上﹑下册)[M].第四版.北京:高等教育出版社,1999.