简易计算器设计说明书概要
学生用计算器说明书

学生用计算器说明书一、前言亲爱的同学们,欢迎使用这款专为学生设计的计算器。
它将成为您学习过程中的得力助手,帮助您更轻松、更准确地完成各种数学计算。
为了让您能够充分发挥它的功能,我们为您准备了这份详细的说明书,请仔细阅读。
二、产品概述1、外观设计这款计算器采用了简约时尚的外观设计,尺寸适中,方便携带。
按键布局合理,操作手感舒适,能够有效减少误触。
2、显示屏配备了高清液晶显示屏,数字和符号显示清晰,易于读取。
三、按键功能介绍1、数字键(0 9)用于输入数字。
2、四则运算键(+、、×、÷)进行加、减、乘、除四则运算。
3、等号键(=)得出计算结果。
4、小数点键()输入小数。
5、清除键(AC)清除所有输入和计算结果。
6、退格键(←)删除前一个输入的数字或字符。
7、平方根键(√)计算一个数的平方根。
8、百分数键(%)将数字转换为百分数形式,或进行百分数的计算。
9、倒数键(1/x)计算一个数的倒数。
10、存储键(M+、M、MR)用于存储和调用计算结果。
四、基本运算操作1、加法运算例如:计算 2 + 3,依次按下“2”、“+”、“3”、“=”,显示屏将显示“5”。
2、减法运算比如:计算5 2,依次按下“5”、“”、“2”、“=”,显示屏将显示“3”。
3、乘法运算要计算 2 × 3,按下“2”、“×”、“3”、“=”,结果显示“6”。
4、除法运算若计算 6 ÷ 2,按“6”、“÷”、“2”、“=”,屏幕显示“3”。
五、高级运算功能1、平方根计算要计算 9 的平方根,按下“9”、“√”,显示屏显示“3”。
2、百分数计算比如计算 20 的 50%,输入“20”、“×”、“50”、“%”、“=”,结果为“10”。
3、倒数计算求 2 的倒数,按下“2”、“1/x”,显示屏显示“05”。
六、存储功能的使用1、存储数值先计算出一个结果,例如 5 + 3 = 8,然后按下“M+”,将结果 8 存储起来。
计算器说明书

1 设计课题任务、功能要求说明及总体方案介绍1.1 设计课题任务课题:简易计算器任务:设计一个具有特定功能的计算器。
该计算器上电或按键复位后能自动显示系统提示界面,进入准备工作状态。
能实现基本的加、减、乘、除四则运算。
1.2 功能要求说明在本次工程实践中,主要完成如下方面的设计任务:(1)计算器上电或按键复位后能显示初始化界面(2)2秒后进入计算器界面(3)按键能进行加、减、乘、除运算并显示结果(4)按清零键后能进行下一次计算1.3 设计课题总体方案介绍及工作原理说明计算器的总体功能原理是以AT89S52单片机为主要控制核心,通过外接4*4行列式键盘作为控制信号输入源,一块12864液晶作为显示器件,通过按键控制,单片机实时地去执行,在12864液晶上显示界面。
系统控制原理图如图1所示。
液晶显示电路AT89S52电源电路复位电路下载电路键盘电路图1系统控制原理图2 设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能简要介绍2.1.1 AT89S52控制模块考虑到设计功能需要,控制器的功能用于外部键盘信号的接收和识别、液晶模块的显示控制、复位电路等,我们选择了AT89S52系列单片机,具有反应速度极快,工作效率特高的特点。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
计算器说明书

计算器说明书1 设计课题任务、功能要求说明及总体⽅案介绍1.1 设计课题任务课题:简易计算器任务:设计⼀个具有特定功能的计算器。
该计算器上电或按键复位后能⾃动显⽰系统提⽰界⾯,进⼊准备⼯作状态。
能实现基本的加、减、乘、除四则运算。
1.2 功能要求说明在本次⼯程实践中,主要完成如下⽅⾯的设计任务:(1)计算器上电或按键复位后能显⽰初始化界⾯(2)2秒后进⼊计算器界⾯(3)按键能进⾏加、减、乘、除运算并显⽰结果(4)按清零键后能进⾏下⼀次计算1.3 设计课题总体⽅案介绍及⼯作原理说明计算器的总体功能原理是以AT89S52单⽚机为主要控制核⼼,通过外接4*4⾏列式键盘作为控制信号输⼊源,⼀块12864液晶作为显⽰器件,通过按键控制,单⽚机实时地去执⾏,在12864液晶上显⽰界⾯。
系统控制原理图如图1所⽰。
液晶显⽰电路AT89S52电源电路复位电路下载电路键盘电路图1系统控制原理图2 设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能简要介绍2.1.1 AT89S52控制模块考虑到设计功能需要,控制器的功能⽤于外部键盘信号的接收和识别、液晶模块的显⽰控制、复位电路等,我们选择了AT89S52系列单⽚机,具有反应速度极快,⼯作效率特⾼的特点。
AT89S52是⼀种低功耗、⾼性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
使⽤Atmel 公司⾼密度⾮易失性存储器技术制造,与⼯业80C51 产品指令和引脚完全兼容。
⽚上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯⽚上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌⼊式控制应⽤系统提供⾼灵活、超有效的解决⽅案。
AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O ⼝线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,⼀个6向量2级中断结构,全双⼯串⾏⼝,⽚内晶振及时钟电路。
课设简易计算器设计说明

摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
本任务是个简易的两位数的四则运算,程序都是根据教材和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。
本任务重在设计构思,使得我用专业知识、专业技能分析和解决问题全面系统的锻炼。
本系统的设计说明重点介绍了如下几方面的容:1)简易计算器的基本功能,同时对计算器设计的原理也进行了简要的阐述;2)介绍了系统的总体设计、给出了系统的整体结构框图,并对其进行了功能模块划分与所采用的元器件进行了详细说明;3)对系统各功能模块的软、硬件实现进行了详细的设计说明。
关键词:MCS-51 8051单片机计算器围加减乘除目录第一章绪论21.1课题简介21.2设计目的31.3设计任务3第二章简易计算器系统简介32.1 单片机发展现状32.2 计算器的历史42.3 单片机概述5第三章系统总体设计与主要器件简介53.1 MSC-51芯片简介53.2 中断系统63.3 时钟电路73.4 MCS-51系列单片机简介7外部引脚说明:113.5 相关知识12第四章简易计算器的设计134.1 计算器硬件电路设计134.2 计算器程序设计144.3 系统硬件设计15参考文献17第一章绪论1.1课题简介单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。
在工业生产中,电流、电压、温度、压力和流量也都是常用的被控参数。
本设计是采用8051单片机,该单片机具有集成度高,运算快速快,体积小、运行可靠,价值低廉的特点,适宜于温湿度等过程控制。
鉴于这样的重要性,我们打算设计一种基于单片机的多路温度巡检系统,实现对不同场合温度时时变化的控制与监测。
1.2设计目的通过本次工程实践,运用微机原理与接口技术所学知识与查阅相关资料,完成简易计算器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。
数码管显示简易计算器说明书

fZEE
图1-1数码管硬件电路原理图
1.2
4*4矩阵键盘行输入接单片机P1.0-P1.3,列输入接单片机P1.4-P1.7,通过扫描方式
检测是否有键按下,并确定键值,使用矩阵键盘时注意给P10矩阵键盘选择端使能。对键
盘进行编号,S3-S18,按下相应按键,在数码管上显示相应键值 (0-F)。例如按下S10键, 显示A,按下S0键,显示0。
图2-1键盘扫描程序流程图
22算术运算程序设计
算术运算程序的过程为:先判断输入的运算符是+、-、*、/中的哪一个,若是+或-,
则要判断运算结果是否溢出,溢出则显示错误信息,没溢出就显示运算结果,若是/,则要
先判断除数是否为零,为零就显示错误信息,不为零则显示运算结果,若是-,则直接显示
运算结果。其流程图如图2.2所示。
、原理图设计说明
1.1数码管硬件电路设计
1
1
1.2矩阵键盘电路设计:2
、程序设计说明.3.
2.1键盘扫描程序设计3
2.2算术运算程序设计4
2.3显示程序设计5
三、 工作原理图及程序流程图6
四、 程序清单9
五、 参考文献15
、原理图设计说明
1.1数码管硬件电路设计
数码管数据显示的硬件电路由单片机、4位共阳极数码管、位驱动电路、限流电阻等组 成。实验板中用杜邦线将P7与单片机10口相连(这里以P0口为例)。用跳线将P8与单 片机P2低四位相连,P0口送出数码管段选码,P2送出位选码。
图2-2算术运算程序设计流程图
2.3
先是程序的过程为:显示开始时,先进行LED的初始化,判断是否显示,
返回,若显示,则进行相应功能的设置,然后送地址和数据,再判断是否显示完 返回,没有显示完则继续送地址。、程序设Biblioteka 说明2.1键盘扫描程序设计
基于51单片机简易计算器的设计

No:毕业设计说明书题目:基于51单片机简易计算器的设计系别:自动化工程系专业:机电一体化技术*名:***学号: ************指导老师:***职称:副教授2013年6月简易计算器是一种非常广泛日常工具,对现代社会越来越流行。
它可以进行一些简易的计算。
本系统提供详细的时、分、秒、年、月、日的时间信息,同时还可进行简易的计算信息,还具有时间校准等功能。
该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
本系统硬件部分由AT89S52单片机、LCD1602液晶屏、键盘、指示灯系统等部分构成。
软件部分在keil环境下用C51语言编写,包括时间设置、时间显示、简易计算显示等。
关键字:AT89S52;液晶屏LCD1602;键盘Simple calculator is a very broad everyday tool for modern society is more and more popular. It can carry on some simple calculation. This system provides detailed, minutes and seconds, year, month, day time information, and at the same time but also for simple calculation information, but also has time calibration etc. Function. This circuit AT89S52 SCM as the core, power consumption is small, can be in 3 V of low-pressure work, voltage can choose 3 ~ 5 V voltage power supply. This system hardware part AT89S52 SCM by LCD1602 LCD screen, keyboard, indicator system, part. Software in under the environment of keil with C51 language, including time set, time display, simple calculation shows, etc. In the programming process found on existing knowledge to finish writing task difficult, the teachers and students of help to finish the program part of the code.Keyword:AT89S52;AT89S52 devices; LCD1602 LCD screen; keyboard引言众所周知单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
简易计算器设计

摘要:计算器(calculator ;counter)一般是指“电子计算器”,该名词由日文传入中国。
计算器能进行数学运算。
计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备组成。
低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。
使用简单计算器可进行加(+)、减(-)、乘(*)、除(/)、开方(sqrt)、百分数(%)、倒数(1/x)等简单算术计算。
本次设计只完成加(+)、减(-)、乘(*)、除(/)运算。
关键字:加减乘除、优先级、进制转换、数据选择、有效数字、正负1 设计内容与设计要求1、1基本内容:设计一个简易计算器1、2基本要求:①实现最大输入两位十进制数字的四则运算(加减乘除)②能够实现多次连算(无优先级,从左到右计算结果)如12+34×56-78÷90+9=36.75③最大长度以数码管最大个数为限,溢出报警④有正负数区分;⑤除法不能除尽时小数保留2位有效数字1、3扩展要求:能够区分运算优先级(先乘除,后加减)如12+34×56-78÷90+9=1924.132 方案选择能够进行区分优先级的计算,先乘除,后加减。
乘除运算同步进行,从左往右;乘除结束后的数据进行加减运算。
3 系统具体设计3、1总体框架(总电路图附录1)3、2各个模块设计①乘法模块(VHDL附录2)当乘法符号的上升沿的时候读入反馈的结果(包括数据及正负号)并输出到data1、data1_pn;当乘法符号的下降沿的时候读入数据(包括数据及正负号)并输出到data2、data2_pn。
并进行计算,结果的数据由乘法器计算得到;结果的正负号即为两个相乘数据的正负号取异或。
数据为保留两位小数,输出的当成被乘数的数乘上100。
元件例化:②除法模块(VHDL 附录3)当除法符号的上升沿的时候读入反馈的结果(包括数据及正负号)并输出到data1、data1_pn;当除法符号的下降沿的时候读入数据(包括数据及正负号)并输出到data2、data2_pn 。
简易计算器设计报告

简易计算器总体设计说明书编制单位:侏罗纪工作室作者:zhangmangui版本:V0.2发布日期:2011-2-6审核人:批准人:1.1背景前面刚采用单片机设计完,感觉只会熟练使用定时器和中断,为了更好的能够掌握单片机的一些外围设备,当然这些设备都将在后面的一些器件中用到,所以我必须设计一些小的系统去熟悉这些外围设备,这些设备有矩阵键盘,液晶显示,A/D D/A转换,点阵、DS1302时钟芯片,热、光、温度采集,红外采集,串行通信等。
此次设计是为了联系矩阵键盘而设计的,再设计中所采用的键盘扫描我自认为是比较独特的,没有采用中断后扫描,但有中断扫描的效果。
关于计算器的功能方面,将在下面介绍。
2、总体设计2.1电路图如下数码管及对应的编号k8 k7 k6 k5 k4 k3 k2 k12、软件模块的设计源程序如下:/************************************************文件名:简易计算器.c*描述:本次设计一个计算器,能够进行+-* /运算创建人:zhangmangui时间:2011-02-20***********************************************/#include<reg52.H>#include <INTRINS.H>#include<stdio.h>#include<math.h>#define uchar unsigned char#define uint unsigned intsbit p14=P1^4; //矩阵键盘输入sbit p15=P1^5;sbit p16=P1^6;sbit p17=P1^7;sbit s0=P2^0; 、、//8位数码管位选sbit s1=P2^1;sbit s2=P2^2;static int k1,k2,k3,k4,k5,k6,k7,k8; //8位数码管相应显示的数static int key,jkey; // 当前按键值和保存+-*/键值static int flag=0,flag1=0;long int end1,end2,end3; //被加数、加数、和的存储单元uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00 }; //0~9及全灭的对应段显数void delay(){ uint i,j;for(i=0; i<3; i++)for(j=0; j<500; j++) ;}void delay1(void){ uint n;for(n=100;n>0;n--);}void delay20ms(){ uint i,j;for(i=0; i<10; i++)for(j=0; j<1500; j++) ;}void lcdshaom(void) //数码管扫描{while(s0==0 && s1==0 && s2==0){P0=table[k8];delay1();P0=0x00;s0=1;s1=0;s2=0;}while(s0==1 && s1==0 && s2==0){P0=table[k7];delay1();P0=0x00;s0=0;s1=1;s2=0;}while(s0==0 && s1==1 && s2==0){P0=table[k6];delay1();P0=0x00;s0=1;s1=1;s2=0;}while(s0==1 && s1==1 && s2==0){P0=table[k5];delay1();P0=0x00;s0=0;s1=0;s2=1;}while(s0==0 && s1==0 && s2==1){P0=table[k4];delay1();P0=0x00;s0=1;s1=0;s2=1;}while(s0==1 && s1==0 && s2==1){P0=table[k3];delay1();P0=0x00;s0=0;s1=1;s2=1;}while(s0==0 && s1==1 && s2==1){P0=table[k2];delay1();P0=0x00;s0=1;s1=1;s2=1;}while(s0==1 && s1==1 && s2==1){P0=table[k1];delay1();P0=0x00;s0=0;s1=0;s2=0;}}jzsaomiao() //扫描键盘返回键值{uint col=0;uint row=0;P1=0xfe;_nop_();_nop_();if(P1!=0xfe){ col=0;if(p14==0)row=0;if(p15==0)row=1;if(p16==0)row=2;if(p17==0)row=3;}P1=0xfd;_nop_();_nop_();if(P1!=0xfd){ col=1;if(p14==0)row=0;if(p15==0)row=1;if(p16==0)row=2;if(p17==0)row=3;}P1=0xfb;_nop_();_nop_();if(P1!=0xfb){ col=2;if(p14==0)row=0;if(p15==0)row=1;if(p16==0)row=2;if(p17==0)row=3;}P1=0xf7;_nop_();_nop_();if(P1!=0xf7){ col=3;if(p14==0)row=0;if(p15==0)row=1;if(p16==0)row=2;if(p17==0)row=3;}return (col*4+row);}void runhig(void) //输入被加数和加数时的移位显示{if(k1==0 && k2==10)k1=key;else{k8=k7;k7=k6;k6=k5;k5=k4;k4=k3;k3=k2;k2=k1;k1=key;}}/*void runlow(void){if(k1==0 && k2==10)k1=key;else{k8=k7;k7=k6;k6=k5;k5=k4;k4=k3;k3=k2;k2=k1;k1=key;}} */void jisuan(void) //计算器的核心,判断操作及计算结果{ long int i;if(key!=3 && key!=7 && key!=11 && key!=15 && key!=12 && key!=14) //判断是否按+-*/ 清零和= 按键{flag=0;switch(key){case 0 :key=1;break;case 1 :key=2;break;case 2 :key=3;break;case 8 :key=7;break;case 9 :key=8;break;case 10:key=9;break;case 13:key=0;break;default: ;}if(flag==0 && flag1==0) //flag==0则输入被加数{runhig();lcdshaom();}if(flag==0 && flag1==1) //flag1==1则输入加数{runhig();lcdshaom();}}else{if(flag==0 && flag==0){if(k8==10) //当k~==10时说明数码管全灭,为了计算相应的值,需将其改为0k8=0;if(k7==10)k7=0;if(k6==10)k6=0;if(k5==10)k5=0;if(k4==10)k4=0;if(k3==10)k3=0;if(k2==10)k2=0;end1=k8*10000000+k7*1000000+k6*100000+k5*10000+k4*1000+k3*100+k2*10 +k1; //不是数字键按下则计算被加数并保存_nop_();_nop_();}flag1=1;if(key==14) //按下=按键{flag=0;flag1=0;if(k8==10)k8=0;if(k7==10)k7=0;if(k6==10)k6=0;if(k5==10)k5=0;if(k4==10)k4=0;if(k3==10)k3=0;if(k2==10)k2=0;end2=k8*10000000+k7*1000000+k6*100000+k5*10000+k4*1000+k3*100+k2*10 +k1; //计算加数_nop_();_nop_();switch (jkey){case 3 :end3=end1+end2;break; ?、//计算结果case 7 :end3=end1-end2;break;case 11:end3=end1*end2;break;case 15:end3=end1/end2;break;default:;}k8=end3/10000000; i=end3%10000000; //转换显示k7=i/1000000; i=i%1000000;k6=i/100000; i=i%100000;k5=i/10000; i=i%10000;k4=i/1000; i=i%1000;k3=i/100; i=i%100;k2=i/10; i=i%10;k1=i;end1=0;end2=0;end3=0;lcdshaom();}if(flag==0 && flag1==1) //如果按下+-*/则数码管只显示0{k1=0; k2=10;k3=10;k4=10;k5=10;k6=10;k7=10;k8=10;//runhig();lcdshaom();}if(key==12) //清零按键{flag=0;flag1=0;end1=0;end2=0;end3=0;jkey=0;k1=0; k2=10;k3=10;k4=10;k5=10;k6=10;k7=10;k8=10;lcdshaom();}if(key==3|| key==7 || key==11 || key==15) //按下+-*/则保存键值{jkey=key;lcdshaom();}}// lcdshaom();}//void EX0_time() interrupt 0//{jisuan(); }void main(void){P0=0x00;k1=0; k2=10;k3=10;k4=10;k5=10;k6=10;k7=10;k8=10;//EX0=1;//IT0=1;//EA=1;while(1){ P1=0xf0;delay();lcdshaom();if(P1!=0xf0){delay20ms();if(P1!=0xf0) //条件成立则说明有按键按下这样就可以不用中断key=jzsaomiao();delay20ms();jisuan(); //按键一次判断并计算一次delay20ms();lcdshaom();}}}3、演示结果112 + 112 =224 的过程4、总结程序中存在问题,希望您能指教。
vb课设计程简易计算器说明书

交通与汽车工程学院课程设计说明书课程名称: 程序设计基础课程设计课程代码: 8234580 ______________题目: 简易计算器程序设计年级/专业/班:2009级/热能与动力工程(汽车发动机)/ 3 班学生姓名: 魏学行学号:312009********* __________开始时间:2010 年______ 月26 日完成时间:2010 年______ 月21 日课程设计成绩:指导教师签名:年—月—日摘要....................................................................... -2 -1引言 ..................................................................... -3 -1.1选题背景................................................................ -3 -1.2任务与分析............................................................. -3 -2方案设计.................................................................. -4 -3界面设计.................................................................. -4 -4代码设计及程序调试....................................................... -5 -5软件使用说明.............................................................. -6 -总结与体会................................................................. -12 -致谢....................................................................... -14 -参考文献............................... -15 -随着计算机的不断更新发展,计算器扮演着极为重要的角色,Win dows环境下的Visual Basic 提供了丰富的图形功能。
简易计算器的设计

简易计算器的设计报告一、课题要求根据所学的单片机知识,设计一简易计算器,要求能进行加减乘除等简单运算。
二、设计方案应用矩阵键盘,LCD1602,Atmega16单片机,利用所学的LED 显示和键盘的输入等知识设计简易计算器。
1、Atmega16单片机的PA 口与键盘相连,实现按键的输入;2、Atmega16单片机的PB 口与液晶显示屏相连,实现LED 的显示。
三、单元模块的设计1、LED 的显示LED 数码显示器是单片机嵌入式系统中经常使用的显示器件LED , 数码显示器有共阳极和共阴极两种结构形式。
此设计所用的LED 数码显示器为LCD1602液晶显示屏。
该液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
该液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA 移动通信工具等众多领域。
在仿真软件的连接中,将LCD1602的4,5,6,10,11,12,13,14的引脚分别与PB 端口相连,7,8,9引脚分别与4,5,6引脚共用一个PB 端口。
(如仿真图所示)LED 显示这一模块所涉及的主要程序如下: while (1){// Place your code here do {result = is_key_pre(); }while (result != 1);keypressed = which_key();result = date_or_ope(keypressed); if (result == 1) {deal_date();} else{deal_ope();} lcd_clear(); display();delay_ms(300); };2、键盘的输入D 714D 613D 512D 411D 310D 29D 18D 07E6R W 5R S 4V S S 1V D D 2V E E3LCD1LM016L在单片机嵌入式系统中,按键和键盘是一个基本和常用的接口,它是构成人机对话通道的一种常用的方式。
课程设计说明书-计算器

C#程序设计及课程设计课程设计说明书设计题目:计算器目录1 引言 (2)1.1课程设计的目的 (2)1.2本选题的内容要求 (2)1.3 软件开发运行环境 (2)2 总体设计 (3)2.1设计思路 (3)2.2软件总体结构图 (3)2.3主要功能模块的设计 (3)3 详细设计与实现 (4)3.1 主界面模块 (4)3.1.1主界面功能设计 (4)3.1.2主界面设计 (4)3.1.3主界面主要代码 (4)3.2 计算过程演示 (10)3.2.1乘法运算过程演示 (10)3.2.2求根以及连续操作的演示 (11)4 小结和展望 (13)参考文献 (13)1引言1.1课程设计的目的本课程设计将实现一个简单计算器。
其类似于Windows附件中自带的计算器。
但这个计算器实现了更复杂的功能,具有简洁大方的图文外观。
即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。
在课程设计中,系统开发平台为Windows 2000XP.程序设计设计语言采用Visual C#。
1.2本选题的内容要求1)可以显示计算数字2)可以进行加减乘除四则运算3)可以实现进制转换,求根4)可以进行清零运算5)可以进行连续计算1.3 软件开发运行环境本软件开发平台:Visual Studio本软件运行环境:Windows 7或以上版本2总体设计2.1设计思路先新建窗体应用程序创建数字与运算符的按钮,再完善相关的代码部分。
点击按钮中的数字键和运算符键就能进行简单的加、减、乘、除四则运算;还能通过用户自己在文本框中输入数字,进行简单运算。
计算流程:首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量中,然后重置文本框内容,随后输入第二个计算数据时,用同样的办法保存数据,最后通过控制运算符先将字符串数据转化成单精度类型,然后计算出结果并显示到文本框当中。
简单计算器课程设计(DOC)

简单计算器课程设计一. 课程设计的目的Java语言是此刻流行的网络编程语言,它拥有面向对象、跨平台、散布应用等特色。
面向对象的开发方法是此刻世界最流行的开发方法,它不单具有更切近自然的语义,并且有益于软件的保护和继承。
为了进一步稳固讲堂上所学到的知识,深刻掌握Java语言的重要观点及其面向对象的特征,锻炼学生娴熟的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java 程序设计课程设计。
经过此次课程设计,稳固所学Java 语言基本知识,增进Java 语言编写基本功,掌握 JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。
使学生经过该教课环节与手段,把所学课程及有关知识加以举一反三,全面掌握 Java 语言的编程思想及面向对象程序设计的方法,为此后从事实质工作打下坚固的基础。
二. 设计方案论证1.开发环境:JAVA编程工具 JDK 1.5.0 ,操作系统WindowsXP.2.功能描绘 :本计算器能够进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还能够进行(八进制, 十进制, 十六进制)之间的互相变换, 八进制最多能够输入19 位数, 十进制最多能够输入18 位数,十六进制最多能够输入14 位数,backspace 表示退格,clear 表示初始化,在window 下直接运转(Jsp2003.bat )即可,界面为灰白对称。
3.纲要设计 :**********************************************************类名 : This_number_too_big作用 :自定义的异样类,用来办理计算结果溢出继承的父类 : Exception类实现的接口 :没有**********************************************************class This_number_too_big extends Exception{}// 自定义的一个结果溢出异样类**********************************************************类名 : Jsp2003作用:主类继承的父类 : Frame 类实现的接口 : ItemListener类,ActionListener类**********************************************************class Jsp2003 extends Frame implements ItemListener,ActionListener{public int number=0,length=18;//number 是用来记录输入的数字个数,//length是用来设置在不一样进制下同意输入的最多半字位数,默以为十进制char mark='n';//设置运算符号为没有即为‘ n’,它的值是‘ +’‘ - ’‘ * ’‘ / ’public double data=0;//设置运算数据为零public char ch;//用到暂时寄存所按按钮的第一个字符public boolean Refresh=false;//设置 lab 能否要在输入数据的时候刷新,初始为否4.主要方法说明://用来办理按了运算符后的计算 -public void js() throws This_number_too_big //指定由method抛出异常{if (mark=='n') //没有运算符{mark=ch; //,则设置运算符为刚才输入的字符,data=Double.parseDouble(lab.getText());//则设置运算数据为lab 的值Refresh=true;// 则设置下一次输入的时候要刷新lab}else //假如采纳的是连续运算(即没有使用‘=’号)则运转下边的语句{switch (mark) //依据运算符计算结果,并把结果保留到data{ case '+': data+=Double.parseDouble(lab.getText()); break;case '-': data-=Double.parseDouble(lab.getText()); break;case '*': data*=Double.parseDouble(lab.getText()); break;case '/': data/=Double.parseDouble(lab.getText()); break;}lab.setText(Double.toString(data)); //显示运算结果mark=ch;// 设置运算符为刚才按下的运算符Refresh=true;// 则设置下一次输入的时候要刷新 labnumber=lab.getText().length();//设置输入的字符个数// System.out.println(lab.getText());//用来调试用的if (data>Double.MAX_VALUE)//假如 data 超出 double 种类的最大值则抛出自定义的一个异样类{throw new This_number_too_big(); }}}//end js() methodpublic void enter()//办理输入字符{if(Refresh==true)//假如已经设置了运算符则在下一次输入数据的时候要把从前 lab 的内容消除去{lab.setText("0"); number=0; Refresh=false;}if(lab.getText().charAt(0)=='0'&& lab.getText().length()==1)//假如 lab 的内容为 0 则, lab 的内容将被所输入的字符取代,//不然直接在 lab 的内容后边加上所输入的字符{lab.setText(Character.toString(ch)); number++;}elseif(number<length){number++;lab.setText(lab.getText()+ch);}}//end enter() method//八进制或十六进制变换成十进制I public String goto_10(String s,long l)//参数 s:是要变换的字符串,因为输入的控制,保证了字符串的合法性;//参数 l :使用来设置是将 8 进制仍是 16 进制变换成 10 进制,它的有效值为8或 16;{ String str=s; //用来变换的字符串long j=l; //表示进制long lg=0,jing=1;//lg用来记录权乘和,jing用来记录位权char cha;//暂时记录要变换的字符for(int i=1;i<=str.length();i++){ cha=str.charAt(str.length()-i);switch(cha){ case '1': lg=lg+1*jing;break;case '2': lg=lg+2*jing;break;case '3': lg=lg+3*jing;break;case '4': lg=lg+4*jing;break;case '5': lg=lg+5*jing;break;case '6': lg=lg+6*jing;break;case '7': lg=lg+7*jing;break;case '8': lg=lg+8*jing;break;case '9': lg=lg+9*jing;break;case 'A': lg=lg+10*jing;break;case 'B': lg=lg+11*jing;break;case 'C': lg=lg+12*jing;break;case 'D': lg=lg+13*jing;break;case 'E': lg=lg+14*jing;break;case 'F': lg=lg+15*jing;break;}jing*=j; //位权升一级,为下次使用做好准备}return Long.toString(lg);}//end String goto_10() method}3.系统流程图开始初始化数据Double result=0; //储存结果Boolean newnum=true; //能否新数String lastop=” =”; /储存操作符按下数字按钮按下操作符( +-* 、 =)按钮判断把目前文本框的内容转为double 后传给calc 方法calc(double.parsedouble(txt.gettext()))newnumTrue false文本框显示新数;文本框接着显示Lastop=”操作txt.settext(“数txt.settext(txtgettext()+ ”符”newnum=true 字”)newnum=false 数字”)4.详尽设计第一剖析这个说要达成的任务,它的主要任务是达成十六进制、十进制、八进制和二进制之间的互相转变,需要包括负数,但不用考虑小数。
简易计算器的设计

简易计算器的设计一、引言计算器是一种常见的电子设备,用于进行数学运算。
然而,现在的计算器功能复杂,有时不易使用。
因此,为了满足用户的需求,我设计了一款简易计算器,以提供简单、直观和用户友好的界面。
二、设计目标1.提供基本数学运算功能,包括加、减、乘、除。
2.确保用户友好的界面设计,使用户易于操作。
3.提供结果的显示,并能够滚动以适应较长的计算结果。
4.支持清零功能,以便用户开始新的计算。
三、设计方案1.界面设计(1)计算器外观:采用手持式设计,与传统计算器外观类似,包括一个屏幕和一组按键。
(2)屏幕设计:使用液晶显示屏,具有高分辨率和抗眩光功能。
屏幕的大小根据实际需求来确定。
2.功能设计(1)基本运算功能:设计四个基本运算按键(加、减、乘、除)和一个等于键用于运算结果的计算。
(2)数字输入:提供0-9数字按键,以(3)小数点输入:提供小数点按键,以便用户输入小数。
(4)清零功能:提供一个清零键,以便用户能够轻松开始新的计算。
(5)结果显示:设计一个屏幕用于显示计算结果,并且能够滚动显示较长的结果。
3.系统设计(1)按钮交互:当用户按下数字、运算符或者清零键时,系统会根据不同按键的输入执行相应的操作。
(2)数学运算:系统在接收到运算符时,会将当前数字和运算符保存起来,当接收到等于键时,执行相应的数学运算并将结果显示在屏幕上。
(3)界面更新:系统根据用户输入时时更新屏幕上的数字和运算符。
四、流程图1.设计输入部分的流程图:(系统等待用户输入)↓(用户输入数字和运算符)↓(显示用户输入的结果)2.设计运算部分的流程图:(系统等待用户输入)↓(用户输入数字和运算符)↓(按下等于键)↓(执行数学运算)↓(显示计算结果)3.设计清零部分的流程图:(系统等待用户输入)↓(用户按下清零键)↓(清除屏幕上的显示内容)五、功能展示```_________________________________________ 2024计算器________________7,8________,________4,5________,________1,2________,________0,.________,________+,-________,________*,/________,________=,C____________,________,________,__________。
学生用计算器说明书

学生用计算器说明书一、产品概述学生用计算器是专为学生设计的一种便携式电子计算器,具有基本计算、科学计算、统计计算等多种功能,方便学生在学习和考试中进行数学运算和数据分析。
本说明书将详细介绍学生用计算器的功能特点、操作方法和注意事项。
二、功能特点1.基本计算功能:学生用计算器可以进行加减乘除等基本运算,支持整数和小数的计算,满足学生日常的数学计算需求。
2.科学计算功能:学生用计算器还具有科学计算功能,可以进行指数、对数、三角函数等高级数学运算,帮助学生解决复杂的数学问题。
3.统计计算功能:学生用计算器还拥有统计计算功能,可以进行数据的输入、求和、平均值、标准差等统计分析,方便学生进行数据处理和统计学习。
4.方程求解功能:学生用计算器还具备方程求解功能,可以解一元二次方程、一元三次方程等各种类型的方程,帮助学生快速求解数学题目。
5.矩阵运算功能:学生用计算器还支持矩阵运算,可以进行矩阵的加减乘除、行列式计算、逆矩阵求解等操作,方便学生学习线性代数知识。
三、操作方法1.基本计算:通过按下数字键和运算符键进行基本的加减乘除运算,按下等号键得到结果。
2.科学计算:通过选择对应的功能键(如指数、对数、三角函数等),输入相应的参数,按下等号键得到结果。
3.统计计算:通过选择统计功能键,按照提示输入数据,按下等号键得到统计结果。
4.方程求解:通过选择方程求解功能键,按照提示输入方程参数,按下等号键得到方程的解。
5.矩阵运算:通过选择矩阵运算功能键,按照提示输入矩阵参数,按下等号键得到矩阵运算的结果。
四、注意事项1.正确输入:在使用学生用计算器时,要确保输入的数字和运算符正确无误,避免输入错误导致计算结果错误。
2.按键操作:要注意按键的正确操作方法,按下等号键前要确保已经输入完整的计算式或参数,避免误按导致错误结果。
3.电池更换:学生用计算器使用电池供电,当计算器出现电池低电量提示时,应及时更换电池以确保正常使用。
c语言简单计算器的设计说明书

尼玛大学课程设计说明书学院、系:尼玛学院专业:尼玛工程学生姓名:李尼玛学号:1xxx438 设计题目:简单计算器的设计起迄日期: 2013年10月11日~2013年11月16日指导教师:王尼玛日期: 2013年11月16日1 设计目的●通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固C语言课程学习过的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!●通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。
为后续各门计算机课程的学习和毕业设计打下坚实基础。
2 任务概述设计程序代码使其能够:接受一个字符串,然后由左至右对其进行判断,如若是没有括号的四则运算,则直接计算并输出其值;若是带有括号,则对其括号进行判断,划分,并得出运算优先级,进行先后计算,最终得出其值。
3 模块划分程序主要由void SplitK(char *str);、void SplitPrem(char *str);、void Combine(float f1,char Operate,float f2);、void StringBracket(char *str);四个函数模块组成。
分别实现:字符判断,优先级判断,运算实现等的功能。
4 主要函数说明及其N-S图5 程序运行数据及其结果图5.1 加法运算1+1=2图5.2 减法运算 1-1=0图5.3 组合运算1:(1+3)*2=8图5.4 组合运算2:(12-2)/3=3.336 课程设计心得这次“简单计算器制作”的课程设计不仅让我对C语言的熟悉程度上升到了另一个高度。
它是我在编程路途上的一次小的跳跃。
而且在处理非常规数据类型的运算的锻炼下,使我对编程语言有了一个新的认识。
当看着一个具有界面的计算器的模型成品出现在自己面前时,心中有着无限感慨,原来编程也不是非常遥不可及的,原来在编程的趣味性中能让我学到更多有意思的知识。
简易计算器说明书

(7)其他基本函数,例如求平方根或百分比键 (%)
更高级的模块也许会有一个单数值记忆按键(M+,M-),可在需要时叫回。
高级电子计算器
较高级的科学计算器或工程型计算器支持三角函数、统计与其他函数。而最先进的现代计算器甚至可显示图型,并且包含计算机代数系统。这种计算器可以编写程序,且内含了代数方程式求解程序、经济模型甚至游戏程序。这类计算器可显示填满显示屏的单一数值。并可将数字以科学记数法表现至9.999999999*10。如果用户试图输入一过大的数值或运算产生过大数值的算式(例如输入100!,即100阶乘),则计算器仅显示错误一词。因为存储器如此有限的计算器无法存储如此巨大的输入(>=10^160)。
1)在程序之中加入足够的操作提醒环节,使得使用者能够清楚的掌握操作流程和界面。
2)程序中分类完成+、-、*、/、x^y、求余、x为底y的对数、求平均,sin、cos、tan、exp、ln、以10为底的对数、取整、平方、立方、绝对值,进制之间的转换;使用者可以根据个人的需要在提示后输入相应的代码,然后进行相应的运算,最后在运算结果中查找自己需要的即可;如需做多步骤运算,只要在上一次运算结束后按照提示输入相应代码即可选择是继续进行运算还是退出程序,操作简便。
3.2算法说明10
4调试分析14
4.1调试目的14
4.2测试要求14
4.3测试方法14
4.4调试与测试结果17
5总结19
参考文献21
致谢22
附录23
1概述
通过本项课程设计,可以培养独立思考、 综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!通过C语言课程设计,使自己了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。
学生用计算器说明书

学生用计算器说明书一、产品概述欢迎使用本款学生用计算器,它是专门为学生设计的一款功能强大、操作简便的计算工具。
无论是日常的数学作业、考试,还是解决复杂的数学问题,它都能为您提供准确、快速的计算支持。
二、外观及按键介绍1、显示屏清晰显示计算结果和输入的算式。
能够显示多行数据,方便查看历史计算记录。
2、数字键包括 0 9 十个数字键,用于输入数字。
3、运算符号键有加(+)、减()、乘(×)、除(÷)等基本运算符号键。
还有平方(²)、开方(√)、百分号(%)等特殊运算符号键。
4、功能键清除键(AC):清除所有输入和计算结果。
清除当前输入键(CE):仅清除当前输入的数字或运算符。
回退键(←):删除前一个输入的字符。
等于键(=):得出计算结果。
5、存储键存储(M+):将当前计算结果存入存储器。
读取存储(MR):读取存储器中的数值进行计算。
清除存储(MC):清除存储器中的数据。
6、模式切换键可以切换标准计算模式、科学计算模式等。
三、基本操作1、开机与关机按下“ON”键开机,屏幕显示初始界面。
长时间不使用时,按下“OFF”键关机。
2、数字输入直接点击数字键输入相应的数字。
3、运算操作输入数字和运算符号后,按下“=”键得出结果。
4、清除操作若输入有误,可使用“CE”键清除当前输入;使用“AC”键清除所有输入和计算结果。
四、科学计算功能1、平方根与立方根计算输入要计算平方根或立方根的数字,然后按下“√”或“³√”键。
2、三角函数计算例如,计算正弦函数 sin,输入角度值后,按下“sin”键。
3、指数与对数计算输入底数和指数,按下“^”键进行指数运算;输入真数,按下“log”键进行对数运算。
五、存储器功能使用1、存储数值进行计算得到结果后,按下“M+”键将结果存入存储器。
2、读取存储数值按下“MR”键读取存储器中的数值,可用于后续计算。
3、清除存储器按下“MC”键清除存储器中的数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心。
如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。
计算器的出现给我们的生活带来了巨大的便利,计算器在我们的生活中随处可见,也是我们日常生活中不可缺少的工具。
本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除简单的基本四则运算,并在LCD上显示相应的结果。
设计电路采用AT89C51单片机为主要控制电路,利用按键作为计算器的键盘的输入。
显示采用字符LCD 静态显示。
软件方面使用C语言编程,并用PROTUES仿真。
单片微型计算机简称单片机。
它是在一块芯片上集成中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口电路等部件,构成一个完整的微型计算机。
它的特点是:高性能,高速度,体积小,价格低廉,稳定可靠,应用广泛。
单片机比专用处理器最适合应用于嵌入式系统,因此它得到了最多的应用。
本文介绍了单片机的产生发展、功能特点、应用开发等内容。
【关键词】简单计算器单片机 LCD 应用发展背景近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。
与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。
影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。
其中系统的抗干扰性能是系统可靠性的重要指标。
本设计采用80c51 芯片,实现了利用单片机进行了一个简单计算器设计。
允许对输入数据进行加减乘除运算及LCD 显示.如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。
LCD液晶显示器是Liquid Crystal Display 的简称,LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。
现在LCD已经替代CRT成为主流,价格也已经下降了很多,并已充分的普及。
故采用LCD.设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。
本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除基本四则运算,并在LCD上显示相应的结果;设计电路采用AT89C51单片机为主要控制电路,显示采用字符LCD静态显示;软件方面使用C 语言编程,并用PROTUES仿真i。
目录摘要 .................................................................................................................................................... 背景 ....................................................................................................................................................1.绪论 (1)1.1设计的目的意义 (1)1.2.设计的任务和要求 (1)1.3 计算器设计所用的方法 (1)2. 方案设计 (2)2.1方案论述 (2)2.2 方案论证 (3)3.整体设计 (3)4.硬件系统框架 (4)4.1 Lcd1602显示器 (4)4.2单片机 (6)4.3复位电路 (7)4.4 按键电路 (7)5. 软件设计程序框图 (8)5.1程序流程图 (8)5.2 程序模块化编写 (9)5.3主函数程序设计 (10)6软件仿真与调试 (12)6.1 Proteus 仿真软件的介绍 (12)6.2 Proteus 电路仿真图 (12)6.3 软件调试 (13)6.4 测试分析 (13)总结 (14)【参考文献】..................................................................................................................................... 附录 ....................................................................................................................................................1.绪论1.1设计的目的意义随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。
电子产品的更新速度快就不足惊奇了, 单片机的应用已经越来越贴近生活,电子计算器在我们的生活中随处可见,给我们的生活带来了巨大的便利,随着技术的不断更新,用单片机来实现一些电子设计也变得容易起来。
通过本次项目设计,应用所学相关知识资料,来完成简易计算器的设计,以达到理论与实际更好相结合进一步提高综合运用所学知识和设计能力的目的。
通过本次设计的训练,可以使我在基本思路和基本方法上对基于51 单片机的嵌入式系统有一个比较感性的认识,并具备一定程度的设计能力。
1.2.设计的任务和要求为了满足计算器的基本要求,可以基本的运算(加减乘除),数据归零和出错警告提示,我们采用基于单片机设计计算器,并用LCD字符液晶显示器显示数据,4*4 的矩阵键盘实现数据输入.分别对键盘输入检测模块;LCD显示模块;算术运算模块;按键处理及提示模块进行设计,并用设计了系统方框图,同时使用了KeiluVision4与Proteus软件进行了仿真分析其设计结果1.3 计算器设计所用的方法①以单片机为控制器件,采用c语言进行程序设计,采用单片机智能控制,结合外围电子电路,可以进行“加、减、乘、除”四则运算。
②使用单片机最小系统设计计算器系统,系统以单片机为主控单元,③借助Proteus软件,进行仿真,对设计原理、检测方法进行验证。
④借助了KeiluVision4软件对程序进行了调试和修改。
⑤在基于51单片机的开发板上进行了测试。
2.方案设计2.1方案论述①方案一根据功能和指标要求,本系统选用MCS-51系列单片机AT89C51为主控机。
通过扩展必要的外围接口电路,实现对计算器的设计。
计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。
用七段数码管作为显示电路,矩阵键盘作为输入电路。
模块图如图1.1所示。
图2.1.1 方案一模块图②方案二根据计算器的功能要求,选择AT89C51为主控机,通过扩展必要的外围接口电路,实现对计算器的设计。
外部主要由4*4按键键盘和一个液晶显示屏构成,内部由一块AT89C51单片机构成。
计算器电路包括四个部分:选用LCD作为显示部分,键盘作为输入部分,运算模块,单片机控制部分。
模块图如图2.2所示。
图2.1.2 方案二模块图2.2 方案论证方案一:这种方案功能简单,在生活中使用较少,缺乏实际于运用价值,用数码管显示,不能显示字符,所以不能显示运算过程。
方案二:此种方案较为经济,方便,具有模块化的特点,因为将计算运算电路全部集成在了51单片机上,具有高效率,运算功能强大。
lcd1602字符液晶显示器可以显示运算过程,便于计算,随着价格的下降,已经成为了生活中计算器的主流配置。
综上所述:所以我们小组采用方案二,采用89c51单片机为运算处理模块,使用lcd1602字符液晶显示器来做显示模块,矩阵键盘为输入模块,这种设计便于观看,大大提升了我们使用计算器的便利度。
3.整体设计根据简易计算器的功能和指标要求,本设计系统选用MCS-51系列单片机AT89C51为主控机。
通过扩展必要的外围接口电路,实现对简易计算器的设计。
计算器电路包括三个部分:显示电路、4*4按键电路、单片机微控制电路。
具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用lcd1602字符液晶显示器,显示数据和结果。
(2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、.和等号键,故只需要16 只按键即可。
(3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。
(4)数据溢出或出现错误,会进行出错提示。
整体设计框图如下图所示图1.3 线路原理框图4.硬件系统框架4.1 Lcd1602显示器4.1.1 LCD1602显示器LCD1602已很普遍了,具体介绍我就不多说了,市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的。
字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。
如下图:图 4.1.1 LCD1602显示器4.1.2 引脚功能图4.1.2 引脚功能图液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
4.1.3 LCD1602的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如下表所示:图4.1.3 控制指令4.14 液晶显示模块液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙判别标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图4.1.4是1602的内部显示地址。
图4.1.4 1602LCD内部显示地址4.2单片机AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S51为众多嵌入式控制应用系统提供高灵活、更有效的解决方案。