单片机课程设计 简易计算器的设计
单片机的简易计算器
![单片机的简易计算器](https://img.taocdn.com/s3/m/2579095315791711cc7931b765ce0508763275e1.png)
单片机的简易计算器单片机简易计算器的设计与实现一、引言计算器是一种用于计算数学运算的工具,现在已经成为人们日常生活中必不可少的设备之一、在这个数字化的时代,我们经常需要进行简单的数学运算,如加、减、乘、除等。
为了满足人们的需求,我们可以使用单片机来设计和实现一个简易的计算器。
二、设计目标我们的设计目标是实现一个能够进行基本的加减乘除四则运算的简易计算器。
具体来说,我们希望计算器能够实现以下功能: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.测试并调试系统,确保计算结果的准确性。
七、总结通过使用单片机,我们成功地设计并实现了一个简易的计算器。
这个计算器不仅能够进行基本的加减乘除四则运算,还具备了简单的误操作处理能力。
在实际使用中,我们可以通过添加更多的功能和改进设计来进一步完善这个简易计算器。
单片机的简易计算器毕业设计
![单片机的简易计算器毕业设计](https://img.taocdn.com/s3/m/58e7168f0408763231126edb6f1aff00bed570c0.png)
单片机的简易计算器毕业设计简易计算器是一种基本、常见的电子设备,它能够对数字进行简单的加减乘除运算。
单片机作为一种小型、低功耗的微型计算机,非常适合用于设计和实现计算器的功能。
在本文中,我们将以单片机为基础,设计和实现一个简易计算器。
一、设计思路1.硬件设计:-使用单片机作为主控制器。
-接入键盘矩阵和显示器。
-使用LED灯作为指示灯,用于显示运算符和结果。
2.软件设计:-通过键盘输入数字和运算符。
-将输入的数字和运算符转换成相应的控制信号。
-进行运算,并将结果显示在屏幕上。
3.功能实现:-实现加法、减法、乘法和除法运算。
-提供清零、退格和等号等功能。
-支持小数和负数的输入和运算。
-提供错误提示功能,例如除数不能为零等。
二、具体实现1.硬件实现:-将键盘矩阵的行和列与单片机的IO口相连,通过扫描来检测按键的输入。
-将显示器与单片机的IO口相连,通过控制引脚来发送和接收数据。
-将LED灯与单片机的IO口相连,设置相应的引脚状态来显示不同的指示信号。
2.软件实现:-使用C语言编写程序,通过中断和轮询的方式,实现键盘输入的检测和数据的读取。
-将读取到的数据进行解析,并根据不同的按键进行相应的操作。
-根据输入的数字和运算符,进行相应的运算并输出结果。
3.功能实现:-加法、减法、乘法和除法运算可以通过相应的算法实现,例如加法可以通过循环和位运算来实现。
-清零功能可以将运算结果和输入的数字都清零,退格功能可以删除输入的最后一个数字或运算符。
-支持小数运算可以在运算过程中进行进位和进位操作,支持负数运算可以通过判断运算符来进行相应的处理。
-错误提示功能可以通过对输入的数据进行检查和判断来实现,例如判断除数是否为零。
三、总结通过上述的设计和实现,我们可以成功地设计和制作一个单片机的简易计算器。
通过这个计算器,用户可以进行简单的加减乘除运算,同时还具备清零、退格、小数和负数等功能。
这个计算器可以应用在日常生活中的计算场景,方便用户进行各种简单的运算操作。
51简易计算器课程设计
![51简易计算器课程设计](https://img.taocdn.com/s3/m/e6c99ef1d0f34693daef5ef7ba0d4a7302766cd3.png)
51简易计算器课程设计一、课程目标知识目标:1. 学生能理解并掌握51简易计算器的基本原理和功能。
2. 学生能够运用所学的编程知识,编写出具备加、减、乘、除基本运算功能的51简易计算器程序。
3. 学生能够理解并运用51单片机的内外部中断,实现计算器按键识别与功能调用。
技能目标:1. 学生能够熟练使用51单片机的开发环境和编程工具。
2. 学生通过实践操作,掌握51单片机的I/O口编程,提高动手实践能力。
3. 学生能够通过团队协作,解决编程过程中遇到的问题,提升问题解决能力。
情感态度价值观目标:1. 学生培养对单片机编程的兴趣,增强学习计算机科学的热情。
2. 学生在课程实践中,养成动手操作、观察问题、思考问题的良好习惯。
3. 学生通过团队协作,培养沟通与协作意识,增强团队荣誉感。
本课程针对五年级学生设计,课程性质为实践性较强的信息技术课程。
结合学生特点,课程目标注重培养学生的学习兴趣和动手能力,同时考虑教学要求,将目标分解为具体的学习成果,为后续的教学设计和评估提供依据。
二、教学内容1. 51单片机基本原理与结构:介绍51单片机的组成、工作原理及特点,让学生对51单片机有整体的认识。
- 教材章节:第一章 51单片机概述2. 51单片机开发环境与编程工具:学习如何搭建51单片机开发环境,掌握编程工具的使用。
- 教材章节:第二章 51单片机开发环境与编程工具3. I/O口编程:学习51单片机I/O口的基本操作,实现计算器按键输入与LED显示。
- 教材章节:第三章 I/O口编程与应用4. 基本运算程序编写:学习编写加、减、乘、除基本运算的程序,掌握运算逻辑。
- 教材章节:第四章 算术运算程序设计5. 中断编程与应用:学习51单片机中断原理,运用外部中断实现按键识别与功能调用。
- 教材章节:第五章 中断系统及其应用6. 简易计算器程序设计与实现:将所学知识综合运用,设计并实现具备基本运算功能的简易计算器。
- 教材章节:第六章 综合应用实例教学内容根据课程目标进行科学性和系统性组织,制定详细的教学大纲,确保教学内容的安排和进度。
单片机简易计算器设计
![单片机简易计算器设计](https://img.taocdn.com/s3/m/cb8b23a3534de518964bcf84b9d528ea81c72fc3.png)
单片机简易计算器设计一、引言:计算器是一种用于进行数学运算的工具,可以提供基本的算术运算功能。
单片机是一种集成电路,具有微处理器、存储器、计数器和输入/输出接口等功能,适合用于设计和实现计算器。
本篇文章将介绍如何设计和实现一款基于单片机的简易计算器。
二、设计目标:本文设计的简易计算器具有以下功能:1.能够进行四则运算,包括加法、减法、乘法和除法;2.具有输入和输出功能,可以输入运算表达式,并输出计算结果;3.采用简单直观的按键输入方式,便于用户操作。
三、设计原理:1.系统框图:```_______________输入/输接口I______________\/_______________单片机芯(CPU______________```2.硬件设计:使用单片机来处理计算表达式和输出计算结果。
输入/输出接口IC负责处理用户输入和显示输出。
单片机芯片是整个计算器系统的核心,负责执行算术运算的逻辑。
3.软件设计:(1)初始化:设置单片机芯片工作环境,包括引脚配置、定时器设置等。
(2)输入处理:使用按键输入方式获取用户输入的数值和运算符,按下等号键时开始计算。
(3)运算处理:根据输入的数值和运算符进行相应的运算操作,得出计算结果。
(4)输出显示:将计算结果输出到显示装置上。
四、实现步骤:1.硬件实现:根据设计原理中的系统框图,采购和连接合适的输入/输出接口IC以及单片机芯片。
2.软件编程:(1)初始化:根据单片机芯片的型号和文档,编写初始化程序,包括引脚配置、定时器设置等。
(2)输入处理:编写输入处理程序,包括按键输入方式、数值和运算符的提取等。
(3)运算处理:编写运算处理程序,根据输入的数值和运算符,实现相应的运算逻辑。
(4)输出显示:编写输出显示程序,将计算结果输出到显示装置上。
3.实验验证:将硬件和软件进行调试和验证,确保计算器可以正常工作并满足设计目标。
4.优化改进:根据实验结果,对计算器进行优化和改进,提升计算器的性能和用户体验。
基于51单片机的简易计算器设计
![基于51单片机的简易计算器设计](https://img.taocdn.com/s3/m/b2dcf2bd8662caaedd3383c4bb4cf7ec4afeb6c1.png)
基于51单片机的简易计算器设计基于51单片机的简易计算器设计一、引言随着微电子技术和嵌入式技术的发展,越来越多的智能化设备被应用于日常生活中。
其中,基于51单片机的简易计算器设计具有广泛的应用价值。
本文将介绍如何使用51单片机设计一个简易计算器,实现加减乘除的基本运算功能。
二、设计方案1.硬件组成:本设计采用51单片机作为主控芯片,与键盘、显示器等外围设备相连。
键盘用于输入数字和运算符,显示器则用于显示运算结果。
2.软件设计:软件部分包括主程序和子程序。
主程序负责初始化硬件、读取键盘输入和显示运算结果。
子程序包括加减乘除的运算子程序,可根据输入的运算符和操作数进行相应的运算。
3.算法实现:在加减乘除的运算子程序中,采用基本的数学运算方法实现。
对于加法,直接将两个操作数相加;对于减法,将两个操作数相减;对于乘法,采用循环相乘的方法;对于除法,采用循环相除的方法。
三、实验结果在实验中,我们成功地使用51单片机设计了一个简易计算器,实现了加减乘除的基本运算功能。
在测试过程中,我们输入了不同的数字和运算符,得到了正确的运算结果。
同时,我们也测试了计算器的稳定性,发现其在连续运算时表现良好,没有出现明显的误差或故障。
四、结论基于51单片机的简易计算器设计具有简单易行、实用性强等优点。
通过实验测试,我们验证了其可行性和稳定性。
此外,该设计还可以根据需要进行扩展和优化,例如增加更多的运算功能、优化算法等。
未来,我们可以进一步研究如何提高计算器的运算速度和精度,以及如何将其应用于更多的实际应用场景中。
五、改进意见与展望1.增加更多的运算功能:例如实现括号、开方、指数等高级运算,满足更复杂的数学计算需求。
2.优化算法:针对现有的加减乘除运算算法进行优化,提高运算速度和精度。
例如采用更高效的除法算法,减少运算时间。
3.增加存储功能:在计算器中加入存储单元,使得用户可以在多个步骤之间进行数据传递和保存。
4.增强人机交互界面:优化显示器的显示效果,增加用户输入的便捷性,提高用户体验。
51单片机简易计算器设计
![51单片机简易计算器设计](https://img.taocdn.com/s3/m/018e9d42ba68a98271fe910ef12d2af90242a8ea.png)
51单片机简易计算器设计一、设计思路计算器的基本功能包括加法、减法、乘法和除法。
我们可以使用按键作为输入方式,将输入的数字和操作符暂时保存在内存中,然后根据操作符进行相应的运算。
最后再将运算结果显示在数码管上。
具体设计思路如下:1.确定计算器所需的硬件组件:数码管、按键、51单片机和相关电路。
2.定义按键与数字和操作符的对应关系。
3.编写51单片机的程序,实现按键输入、运算和结果显示的功能。
二、硬件设计1.数码管:使用常见的7段数码管作为显示器,通过引脚连接到51单片机的IO口。
2.按键:使用4个按键分别表示数字输入键、加法键、减法键和等于键。
三、软件设计1.初始化:将数码管引脚设为输出模式,将按键引脚设为输入模式。
2.按键处理:采用中断方式检测按键输入,通过编程判断所按的键。
3.数字输入:将按键所对应的数字保存在变量中,最多支持四位数的输入。
4.操作符输入:将按下的操作符保存在变量中。
5.运算:根据保存的操作符进行相应的运算,并将结果保存在变量中。
6.结果显示:将结果显示在数码管上。
四、代码实现下面是一个示例代码的框架,供参考:```c#include <reg52.h>sbit SDA = P0^0; // I2C总线数据线sbit SCL = P0^1; // I2C总线时钟线//定义按键的IO口sbit BUTTON0 = P1^0; // 数字输入键sbit BUTTON1 = P1^1; // 加法键sbit BUTTON2 = P1^2; // 减法键sbit BUTTON3 = P1^3; //等于键unsigned char num1 = 0; // 第一个操作数unsigned char num2 = 0; // 第二个操作数unsigned char op = 0; // 操作符unsigned char result = 0; // 运算结果//判断按键所对应的数字或操作符void buttonif (BUTTON0 == 0) // 数字输入键//将按键所对应的数字保存在变量中//显示数字}else if (BUTTON1 == 0) // 加法键//保存操作符为加号}else if (BUTTON2 == 0) // 减法键//保存操作符为减号}else if (BUTTON3 == 0) //等于键//根据保存的操作符进行相应的运算//将结果保存在变量中//显示结果}void mainwhile (1)button(; // 按键处理}```五、总结通过以上的设计思路和示例代码,我们可以轻松地实现一个简易的计算器。
单片机课程设计简易计算器设计
![单片机课程设计简易计算器设计](https://img.taocdn.com/s3/m/157893cd8662caaedd3383c4bb4cf7ec4bfeb66a.png)
调试与测试:对硬件和软件进行调试,确保计算器能够正常工作
制作报告:编写设计报告,包括需求分析、硬件设计、软件设计、调 试与测试等内容
Part Three
硬件设计
电路原理图设计
单片机:作为核心控制单元,负责接收输入信号、处理数据、输出结果 输入设备:键盘或触摸屏,用于输入数字和运算符号 显示设备:LED或LCD,用于显示计算结果 电源:提供稳定的电源电压,保证系统正常工作 连接线:将各个部件连接起来,实现信号传输和电源供应 保护电路:防止过压、过流、过热等异常情况对系统造成损害
成本:价格、开发成本、维护成本等
开发环境:开发工具、编程语言、开发 文档等
应用领域:计算器、智能家居、工业控 制等
兼容性:与其他硬件、软件的兼容性
技术支持:厂商技术支持、社区资源等
设计流程概述
需求分析:确定计算器的功能需求,如加减乘除、平方根等
硬件设计:选择合适的单片机型号,设计电路原理图,选择元器件
稳定性测试: 对集成后的系 统进行稳定性 测试,确保系 统在各种环境 下能够稳定运
行
安全性测试: 对集成后的系 统进行安全性 测试,确保系 统能够抵御各
种安全威胁
测试环境搭建
硬件环境:单片机、显示器、键盘、电源等 软件环境:单片机开发环境、测试软件等 测试工具:万用表、示波器、逻辑分析仪等 测试步骤:编写测试程序、执行测试程序、记录测试结果、分析测试结果等
功能测试与调试
测试方法:黑 盒测试、白盒 测试、灰盒测
试等
测试内容:输 入输出、功能 实现、性能指
标等
调试工具:调 试器、仿真器、 逻辑分析仪等
调试技巧:断 点设置、单步 执行、变量监
单片机课程设计计算器
![单片机课程设计计算器](https://img.taocdn.com/s3/m/48c5738b250c844769eae009581b6bd97f19bca8.png)
单片机课程设计 计算器一、课程目标知识目标:1. 学生能理解单片机的基本原理和功能,掌握计算器的设计流程。
2. 学生能运用所学知识,设计并实现一个具有基本运算功能的单片机计算器。
3. 学生了解并掌握单片机编程的基本语法和逻辑结构。
技能目标:1. 学生掌握使用单片机开发工具进行程序编写、调试和下载的方法。
2. 学生具备分析问题、设计算法和解决问题的能力,能运用单片机技术解决实际计算问题。
3. 学生能够通过小组合作,进行项目设计和实践,提高团队协作能力。
情感态度价值观目标:1. 学生培养对单片机技术及电子工程的兴趣,激发创新意识和探索精神。
2. 学生通过动手实践,体验成功解决问题的喜悦,增强自信心和自主学习能力。
3. 学生在学习过程中,树立正确的价值观,认识到科技发展对社会进步的重要性。
课程性质:本课程为实践性较强的课程,要求学生在理论学习的基础上,动手实践,完成单片机计算器的设计与制作。
学生特点:学生处于高年级阶段,已具备一定的电子技术基础和编程能力,具备独立思考和解决问题的能力。
教学要求:结合学生特点,注重理论与实践相结合,引导学生通过小组合作,完成课程任务,达到课程目标。
同时,关注学生的个性差异,提供个性化的辅导和支持。
在教学过程中,注重培养学生的创新能力、实践能力和团队协作能力,为后续学习打下坚实基础。
二、教学内容根据课程目标,教学内容分为以下三个部分:1. 理论知识学习:- 单片机原理与结构:讲解单片机的组成、工作原理及性能特点,对应教材第1章。
- 编程语言基础:介绍单片机编程的基本语法、逻辑结构和编程规范,对应教材第2章。
2. 实践技能培养:- 硬件设计与连接:学习如何选用合适的元器件,设计计算器硬件电路,对应教材第3章。
- 软件编程与调试:掌握单片机程序编写、调试和下载的方法,对应教材第4章。
3. 项目实践:- 计算器设计与实现:结合所学知识,分组进行计算器项目设计,包括硬件选型、电路设计、程序编写和调试等,对应教材第5章。
单片机课程设计——简单计算器的设计
![单片机课程设计——简单计算器的设计](https://img.taocdn.com/s3/m/3d10a56f48d7c1c708a14578.png)
《单片机与接口技术》课程设计报告课题名称简易计算器的设计学院自动控制与机械工程学院专业机械设计制造及其自动化班级机制6班姓名学号时间2013年1月7日至2013年1月18日目录一﹑课程设计的目的和要求 (3)1﹑设计目的 (3)2﹑设计任务及要求 (3)二﹑设计步骤及思路 (3)1、设计的步骤 (3)2﹑设计思路 (3)三﹑硬件电路设计 (4)1﹑总体设计 (4)2﹑单元电路的设计 (4)3﹑总电路图 (7)四﹑软件设计 (7)五﹑调试说明 (9)1﹑未启动仿真时,初始状态 (9)2﹑开启仿真以后 (10)3﹑计算过程演示 (10)六﹑设计体会 (11)七﹑参考文献 (13)八、附录 (13)附录一 (13)附录二 (13)一﹑课程设计的目的和要求1﹑设计目的单片机课程作为独立的教学环节,是自动化及相关专业集中实践性环节系列之一,是学习完《单片机与接口技术》课程后,并在进行相关课程设计基础上进行的一次综合练习。
单片机课程设计过程中,我们通过查阅资料,接口设计、程序设计、安装调试等环节,完成一个基于MCS-51系列单片机,涉及多种资源应用,并具有综合应用功能的小应用课程设计,使我们不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路﹑电子元件等方面的知识进一步加深认识,同时在软件编程﹑调试﹑相关仪器设备和相关软件的使用技能等方面得到较全面的锻炼和提高。
课程设计以学生认知为主体,充分调动学生的积极性,重视学生自学能力的培养,根据具体课题安排时间确定课题的设计、编程和调试内容,分团队开展课程设计活动,按时完成每部分工作。
坚持独立完成,实现课题规定的各项指标,并写出设计报告。
要求学生自己查阅资料和充分利用所学知识,根据所要设计系统所要达到的功能,划分软硬件功能、选择器件、编写相关程序,用Proteus 在计算机上绘图并用Keil进行程序编写进行防真,再对整个系统做调试运行,有问题再进一步调试修改,直至达到设计的要求和取得满意的效果,最后编写系统说明书,其内容包括系统的功能介绍,使用范围,主要性能指标,使用方法,注意事项等。
单片机设计实验报告简单计算器的设计
![单片机设计实验报告简单计算器的设计](https://img.taocdn.com/s3/m/c29b47772bf90242a8956bec0975f46527d3a7a1.png)
目录1.总体方案选择 (2)1.1 实验要求: (2)1.2方案设计 (2)2.硬件原理电路图的设计及分析 (3)2.1主控模块 (3)2.1.1 STC89C52单片机主要特性 (3)2.1.2 STC89C52单片机管脚图 (4)2.1.3 STC89C52单片机的中断系统 (5)2.1.4 STC89C52单片机的定时/计数器 (5)2.2矩阵键盘模块设计: (5)2.2.1矩阵键盘原理介绍 (5)2.2.2矩阵键盘电路设计 (6)2.3 LCD液晶显示器简介 (7)2.3.1液晶模块简介 (7)2.3.2液晶显示部分与89S52的接口 (8)3系统软件设计 (10)3.1系统软件流程图 (10)3.2系统整体原理图 (11)4.系统调试 (12)4.1硬件调试 (12)4.2软件调试 (12)4.3调试结果 (13)5.心得体会131.总体方案选择1) 1.1 实验要求:2)通过小键盘实现数据的输入, 并在LED数码管上显示3)实现+、-、*、/4)在LED数码管上显示结果并有清零, 退出功能1.2方案设计本系统以STC89C52单片机为控制核心, 对系统进行初始化, 主要完成对键盘的响应、液晶显示灯功能的控制, 起到总控和协调各模块之间工作的作用。
单片机通过检测键盘读取使用者按下对用功能的按键, 然后通过单片机内部运放把运算的结果显示在液晶屏幕上。
图1-1系统结构框图本系统结构如图1-1所示, 本设计可分为以下模块: 单片机主控模块、键盘模块、功率放大模块、闹铃模块、按键设置模块。
下面对各个模块的设计方案逐一进行论证分析。
2.硬件原理电路图的设计及分析2.1主控模块STC89C52有40个引脚, 4个8位并行I/O口, 1个全双工异步串行口, 同时内含5个中断源, 2个优先级, 2个16位定时/计数器。
STC89C52的存储器系统由4K的程序存储器(掩膜ROM), 和128B的数据存储器(RAM)组成。
单片机 课设 简易计算器设计(减、除)
![单片机 课设 简易计算器设计(减、除)](https://img.taocdn.com/s3/m/c2f00c49fe4733687e21aaf3.png)
第1章.设计原理本次课程设计我用8255完成了对开关和二极发光管的控制来实现简单计算器的运算。
首先是用开关来输入数据,然后使开关发光管的相应地亮灭。
8255接法:D0接系统的D0口;CS接系统的P27;WR接系统的WR;RD接系统的RD; A口接LED;A0A1口接系统的A0,A1;C口接开关。
设计分两大部分:减法程序和除法程序。
每一部分首先输入数据,然后由控制口控制相应的二极管发光并且延时显示一段时间,然后在数据显示时间内输入第二个数据,然后由系统控制显示,显示完毕后显示计算结果,依然延时显示一段时间。
在每次的计算之前都由系统控制将第一个数据保存,以便计算。
由此,我的程序实现了简单的减、法运算。
第2章.设计方案2.1硬件部分设计方案硬件系统是指构成微机系统的实际装置,通常是由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。
单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种拓展接口电路、外部设备等才能构成一个单片机应用系统。
2.1.1 单片机部分PC机一台,TD-NMC+实验教学系统一台。
2.1.2 输入部分采用开关控制输入,电路配置灵活,软件结构简单。
2.1.3 显示部分在单片机应用系统中,使用的显示器主要有LED(发光二极管显示器)、LCD 液晶显示亲以及CRT接口。
本实验采用8个发光二极管亮灭来表示数字。
2.2软件部分设计方案软件部分的设计思路时将整个程序划分为开关输入部分、显示部分、运算程序部分。
运算程序部分包括减、除2个子程序。
软件流程大致如下:开始,然后是进行开关输入数据,b口控制输入,然后a,b口相关,即把开关和LED二极数码发光管相关,使开关控制二极管。
接下来使输入数据延时显示一段时间,然后输入下一个数据,先保存第一个输入数据后进行算术运算。
然后延时显示结果。
程序流程图如下:开始输入被减/除数延时显示被减/除数输入减/除数延时显示减/除数保存被减/除数计算结果延时显示结果图1.1第3章系统元器件简介3.1 SST89E554RC 简介SST89E554RC 具有在系统可编程(ISP)和在应用可编程(IAP)技术,该器件是 SST 公司推出的 8 位微控制器 FlashFlex51 家族中的一员,内置仿真程序,完全取代传统的硬件仿真器和编程器。
基于51单片机的简易教学计算器设计
![基于51单片机的简易教学计算器设计](https://img.taocdn.com/s3/m/76a6cf49773231126edb6f1aff00bed5b9f373f8.png)
基于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单片机的简易计算器](https://img.taocdn.com/s3/m/f9d454ecdc3383c4bb4cf7ec4afe04a1b071b0a8.png)
新基于51单片机的简易计算器一、引言计算器是一种广泛应用的电子设备,用于进行常见的数值运算。
在现代社会,计算器是广大人们日常生活和学习中常用的工具之一、本文将介绍一种新基于51单片机的简易计算器的设计和实现,该计算器具有计算基本四则运算的功能,并且操作简便、界面友好。
二、设计实现1.系统硬件设计该计算器的硬件主要由51单片机、LCD显示屏、按键开关、电源等组成。
(1)51单片机:使用51系列单片机作为计算器的核心处理器,它具有处理能力强、易编程等特点,可以快速实现计算功能。
(2)LCD显示屏:采用16*2字符LCD显示屏,用于显示计算结果和用户输入的数字。
(3)按键开关:设置数字键盘开关、运算符键盘开关、等号键开关等,用户通过按下对应的按键输入数字和运算符。
(4)电源:使用直流电源供电,通过稳压电路和滤波电路提供稳定的电压和电流。
2.系统软件设计该计算器的软件主要由嵌入式C语言编写,实现了计算基本四则运算的功能。
(1)初始化:在系统启动时对各个设备进行初始化设置,包括LCD显示屏的初始化、按键开关的初始化等。
(2)用户输入:通过按键开关读取用户输入的数字和运算符,将其保存在缓冲区中。
(3)计算功能:根据用户输入的数字和运算符,通过判断运算符的类型进行相应的数值计算,并将结果保存在特定的寄存器中。
(4)结果显示:将计算结果从寄存器中读取并显示在LCD显示屏上,用户可以直观地看到计算结果。
三、系统特点1.硬件结构简单:该计算器的硬件结构简单,主要由几个常见元件组成,易于制作和调试。
2.操作简便:用户只需通过按键输入数字和运算符,即可完成计算操作,无需进行复杂的设置和调试。
3.界面友好:通过LCD显示屏直观地显示计算结果,用户可以清楚地了解计算过程和结果。
4.功能强大:该计算器可以进行基本的四则运算,满足大多数日常计算需求。
四、应用范围该简易计算器可以广泛应用于日常生活和学习中,包括商品购物计算、数学运算、财务统计等场景。
基于单片机简易计算器的设计
![基于单片机简易计算器的设计](https://img.taocdn.com/s3/m/ca230b1eb207e87101f69e3143323968011cf40f.png)
基于单片机简易计算器的设计在我们的日常生活和工作中,计算器是一个非常实用的工具。
从简单的数学运算到复杂的科学计算,它都能为我们提供快速准确的结果。
而基于单片机设计的简易计算器,不仅具备基本的计算功能,还具有体积小、成本低、易于实现等优点。
一、设计背景随着电子技术的不断发展,单片机的应用越来越广泛。
它在控制、测量、通信等领域都发挥着重要作用。
而将单片机应用于计算器的设计,可以实现更加智能化和个性化的计算功能。
同时,对于学习电子技术的人来说,设计一个基于单片机的简易计算器也是一个很好的实践项目,可以帮助我们更好地理解单片机的工作原理和编程方法。
二、系统总体设计1、功能需求简易计算器应具备基本的四则运算(加、减、乘、除)功能,能够处理整数和小数的运算。
同时,还应具备清零、退位、等号等操作功能。
2、硬件设计硬件部分主要包括单片机最小系统、键盘输入模块、显示模块等。
单片机最小系统是整个系统的核心,负责控制和处理数据。
键盘输入模块用于接收用户的输入指令,显示模块用于显示计算结果。
3、软件设计软件部分主要采用 C 语言进行编程。
通过编写程序,实现对键盘输入的识别和处理,以及对计算结果的输出显示。
三、硬件电路设计1、单片机最小系统单片机选用常见的 STC89C52 芯片,它具有价格低廉、性能稳定等优点。
最小系统包括单片机芯片、晶振电路和复位电路。
晶振电路为单片机提供时钟信号,复位电路用于系统的初始化。
2、键盘输入模块键盘采用4×4 矩阵键盘,通过行列扫描的方式获取用户的输入信息。
键盘上的按键分别对应数字 0-9、四则运算符号、清零、退位和等号等功能。
3、显示模块显示模块选用 1602 液晶显示屏,它可以显示两行字符,每行 16 个字符。
通过单片机的控制,将计算结果和输入的算式显示在屏幕上。
四、软件程序设计1、主程序主程序主要负责初始化系统、扫描键盘、处理输入和计算结果等。
首先,对单片机的各个端口进行初始化设置,然后进入一个无限循环,不断扫描键盘,当检测到有按键按下时,根据按键值进行相应的处理。
(完整)基于51单片机的简易计算器设计
![(完整)基于51单片机的简易计算器设计](https://img.taocdn.com/s3/m/ae72d671e418964bcf84b9d528ea81c758f52e9c.png)
(完整)基于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单片机的简易计算器设计](https://img.taocdn.com/s3/m/d6e4710df6ec4afe04a1b0717fd5360cba1a8d33.png)
基于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单片机的简易计算器设计的详细步骤和主要函数说明。
你可以根据这个设计框架进行具体的代码实现。
单片机简易计算器课程设计
![单片机简易计算器课程设计](https://img.taocdn.com/s3/m/8ad3a98e185f312b3169a45177232f60dccce779.png)
单片机简易计算器课程设计一、课程目标知识目标:1. 学生能理解单片机的基本结构及其工作原理,掌握简易计算器的硬件组成。
2. 学生能掌握C语言编程的基本语法,运用其编写简易计算器的程序代码。
3. 学生能了解简易计算器的工作流程,理解其功能模块的设计与实现。
技能目标:1. 学生能够运用所学知识,设计并搭建简易计算器的硬件电路。
2. 学生能够运用C语言编写简易计算器的程序,实现加、减、乘、除等基本运算功能。
3. 学生能够对计算器程序进行调试和优化,解决实际问题。
情感态度价值观目标:1. 学生通过课程学习,培养对单片机及编程的兴趣,激发探究精神。
2. 学生在团队协作中学会沟通、分享,培养合作意识,增强团队精神。
3. 学生能够认识到所学知识在生活中的应用,体会科技改变生活的意义。
课程性质:本课程为实践性较强的课程,要求学生动手操作,结合理论知识进行实际应用。
学生特点:学生已具备一定的电子基础和编程知识,对单片机有一定了解,但实践能力有待提高。
教学要求:注重理论与实践相结合,引导学生主动参与,培养其动手能力和解决问题的能力。
通过课程学习,使学生能够将所学知识运用到实际项目中,提高其综合素质。
二、教学内容1. 硬件知识:- 单片机基本结构:介绍51单片机的内部结构、工作原理及其引脚功能。
- 硬件电路设计:讲解简易计算器的硬件组成,包括按键、显示屏、电源等模块。
2. 软件编程:- C语言基础:复习C语言基本语法,包括变量、数据类型、运算符、控制结构等。
- 编程实践:根据简易计算器的功能需求,编写程序代码,实现基本运算功能。
3. 系统设计与实现:- 系统设计:分析简易计算器的功能模块,设计程序流程图。
- 系统实现:指导学生搭建硬件电路,编写程序代码,实现简易计算器的功能。
4. 调试与优化:- 调试方法:教授程序调试方法,培养学生解决问题的能力。
- 优化策略:讨论程序优化策略,提高计算器性能。
教学内容安排与进度:1. 第1周:单片机基本结构及硬件电路设计。
基于51单片机的简易计算器设计
![基于51单片机的简易计算器设计](https://img.taocdn.com/s3/m/b38cef65492fb4daa58da0116c175f0e7dd1194d.png)
基于51单片机的简易计算器设计一、引言计算器是一种执行基本数学运算的电子设备,现在市面上有各种类型的计算器,从小型的手持计算器到大型的科学计算器。
本设计基于51单片机设计了一种简易计算器,可以实现加法、减法、乘法和除法等基本运算。
二、设计思路1.系统硬件设计本设计使用的51单片机芯片选择了常用的STC89C52芯片,具有强大的功能和稳定性。
外设有键盘、数码管和LCD液晶显示屏。
2.系统软件设计系统的软件设计基于C语言进行,使用51单片机的汇编语言和C语言进行编程。
软件主要分为键盘输入处理、运算处理和结果显示三个部分。
三、系统硬件设计1.键盘输入部分使用4x4矩阵键盘作为输入设备,将键盘的4行4列分别接入到51单片机的4个IO口上,通过行列扫描的方式来检测按键的状态。
2.数码管显示部分使用共阳极的数码管来显示结果,通过提供适当的电压和信号控制来显示所需的数字。
3.LCD液晶显示屏为了方便用户查看输入和结果,本设计还使用了LCD液晶显示屏。
通过串口通信将结果传输到液晶显示屏上进行显示。
四、系统软件设计1.键盘输入处理通过行列扫描的方式检测键盘的按键状态,当检测到按键按下时,将对应的按键值存储起来。
2.运算处理根据用户的输入进行相应的运算处理。
根据检测到的按键值进行不同的运算操作,如加法、减法、乘法和除法。
3.结果显示将运算的结果通过串口通信传输到LCD液晶显示屏上进行显示。
五、系统实现1.硬件连接将键盘的行列引脚接到51单片机的对应IO口上,数码管和LCD液晶显示屏也分别连接到单片机的IO口上。
2.软件编码通过C语言编写系统软件,包括键盘输入处理、运算处理和结果显示三个模块。
3.调试测试将编写好的软件烧录到单片机上,通过键盘输入进行测试,并观察数码管和LCD液晶显示屏上的输出结果。
六、总结本设计基于51单片机实现了一个简易计算器,通过键盘输入进行基本的运算操作,并将结果通过数码管和LCD液晶显示屏进行显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录摘要 (1)绪论 (1)1.设计要求及功能分析 (1)1.1 设计要求 (1)1.2 基本功能 (2)2.设计方案 (2)2.1 硬件部分设计方案 (2)2.1.1 单片机部分 (2)2.1.2 按键部分 (2)2.1.3 显示部分 (2)2.2 软件部分设计方案 (2)3.系统的硬件总体设计 (4)3.1 系统的总体硬件设计 (4)3.2 键盘连接电路 (4)3.3 显示屏连接电路 (5)3.4 单片机芯片AT89C51 (6)3.5 外接电路 (7)4.系统的软件总体设计 (8)4.1 键盘识别程序设计 (8)4.2 显示程序 (11)4.3 运算程序 (11)5.元器件清单及程序清单 (12)5.1 元器件清单 (12)5.2 程序清单 (12)6.软件仿真 (18)6.1 仿真验证 (18)6.2 性能分析 (20)6.3 出现故障及其原因 (20)6.4 解决方法 (20)结论 (20)参考文献 (21)致谢 (21)附录PCB图 (22)简易计算器的设计学生:李飞马鹏超舒宏超指导老师:王孝俭摘要:单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可,用它来做一些控制电器一类不是很复杂的工作足矣了。
我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
单片机比专用处理器最适合应用于嵌入式系统,因此它得到了最多的应用。
事实上单片机是世界上数量最多的计算机。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
而个人电脑中也会有为数不少的单片机在工作。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。
关键词:单片机、计算器、控制电路、仿真。
绪论设计要求掌握数码管移位动态扫描显示的编程方法,掌握矩阵扫描的编程方法,掌握数据在内部运算的编程方法。
设计任务实现最大8位正整数加、减、乘、除,具备清零、等于功能,16个按键功能依次为:数字0、数字1、数字2、数字3、数字4、数字5、数字6、数字7、数字8、数字9、清零、等于、加、减、乘、除。
1.设计要求及功能分析1.1设计要求:本次单片微型计算机与接口技术课程设计做的是利用C51单片机为主体的计算器,实现了简单的加、减、乘、除功能。
采取的是键盘输入和液晶显示屏的输出结果显示。
主要硬件构成部分由四个,一个AT89C51单片机芯片,一个液晶显示屏,一个4*4键盘和一个排阻(10K)做P0口的上拉电阻,可以实现16位的数值操作计算。
1.2基本功能:首先,计算器可现实8位数字,开机运行时,只有数码管最低位显示为“0”,其他位全部不显示;其次,可以对计算结果在16位以内的;两个无符号数进行加、减、乘、除运算,并显示计算结果,如果输入操作数和输出结果超过16位,则会显示“error”,以提示使用者输入错误,应清零后重新输入。
最后,运算时,如果按错了可以使用清零键直接清零,重新输入数据,运算过程中,如果运算表达式是加、减、乘、除混合运算,可以进行连续运算,不需要按等号键,运算规则则是从左到右,不区分运算等级。
即认为加减乘除是同等级的运算。
2.设计方案2.1硬件部分设计方案2.1.1 单片机部分单片机以AT89C51来作为核心元器件。
2.1.2 按键部分方案一:采用4*4行列式键盘,分别设定数字键和功能键,采用查询方式,每次有键按下时,先判断是实数字键还是功能键,但是这种方式采用了大量的I/O口线。
方案二:采用独立式按键,独立式按键借口电路配置灵活,软件结构简单。
虽然采用独立式按键时每个按键必须占用一根I/O口线,但是在本实验中根据实际的需要采用通过四个按键即只占用四个I/O口线,而如果采用4*4行列式键盘时占用8个I/O 口线,所以我们采用一方案。
2.1.3 显示部分在单片机应用系统中,使用的显示器主要有LED(发光二极管显示器)、LCD液晶显示亲以及CRT接口。
方案一:使用8位LED数码管来显示,LED显示器是由发光二极管显示字段组成的显示器件,在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极和共阳极两种,它具有成本低廉、配置灵活和单片机接口方便等特点。
方案二:使用液晶显示器来显示。
液晶是介于固态和液态间的有机化合物,将其加热会变成透明液态,冷却后变成结晶的浑浊固态。
在电机的作用下,产生冷热变化,从而影响它的透光性,来达到显示的目的。
LCD还具有以下优点:(1)低压、微功耗;(2)显示信息量大;(3)长寿命;(4)无辐射、无污染。
2.2软件部分设计方案软件部分的设计思路时将整个程序划分为键盘扫描部分、显示部分、运算程序部分、清屏显示部分。
对于其中的键盘扫描部分在编写时又分为动态扫描和静态扫描;运算程序部分包括加、减、乘、除四个子程序。
软件流程大致如下:开始,然后是系统的初始化,进行键盘扫描,对扫描的键值进行判断(分为数字键和功能键),如果是数字键,执行数字处理子程序,即显示数字并将数值存储;如果是命令键,即先判断是否为清屏,如为清屏键,则执行清屏子程序,若为加减乘除运算键则显示相应的符号并存储结果,若都不是则为=键,即要先判断上个符号位,然后调用对应的运算子程序运算,就可以得到需要的结果。
图1 系统原理框图3. 系统的硬件总体设计3.1 系统的总体硬件设计硬件系统是指构成微机系统的实际装置,通常是由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。
单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种拓展接口电路、外部设备等才能构成一个单片机应用系统。
单片机芯片选择AT89C51,显示区域使用显示屏,键盘是4*4普通矩阵键盘,P0口接上拉电阻,芯片的P0口和P3口的前5脚接入数字显示屏,键盘横行A~D接入单片机芯片AT89C51的后四个接口,键盘的竖行1~4则分别接入单片机芯片AT89C51的P2口的前四个接口。
另外12M Hz晶振接入单片机芯片AT89C51的XTAL1接口。
系统总接线图如下:图2 系统硬件总接线图3.2 键盘连接电路本设计之中使用的是4*4的普通键盘,我们可以使用其行列号来识别被按下的按键以此来获知被按键的信息,因此将行输出信号和列输出信号分别接入单片机芯片C51的P2口,通过循环扫描,读取行列的数据来判断是否有按键被按下,如果有则调用按键识别程序来识别具体按键,并执行相应的操作,按键识别是根据按键时得到的列代码与行代码的结合,在汇编语言中进行查表来判断是哪个键。
键盘如图:图3 数字输入键盘3.3 显示屏连接电路如上所述,当数字输入键盘有键按下的时候,经过程序识别,则会有相应结果被送入显示屏得到显示。
如果是数字键则直接放入液晶显示缓冲区,如果再次有数字键按下,则应将缓冲区的数字向高位移动一位,以构成两位数,之前输入的置之高位,并记录按键次数,每输入一个键值都调用显示程序出来;如果是运算符,则执行相应的运算,送入单片机芯片C51内进行计算后将结果调用显示程序显示结果。
该设计中选取的是LM0202型号液晶显示屏,如下图:图4 液晶显示屏3.4 单片机芯片AT89C51应本次课程设计的要求,此设计之中选取的是C51芯片,取代了之前设计之中的pic 芯片。
芯片包含有一个8位CPU;一个片内振荡器及时钟电路;4KB ROM程序存储器;128B RAM数据存储器;可寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;32条可编程的I/O线(4个8位并行I/O端口);两个16位的定时/计数器;一个可编程全双工串行口;5个中断源、两个优先级嵌套终端结构。
芯片如下图:图5 单片机芯片AT89C513.5 外接电路为了进一步强化该设计的功能,所以在单片机芯片C51外围添加了时钟脉冲芯片和复位电路,这样就可以对其电路频率进行调节。
这个电路当中,是选取的是12M的晶振,对其两头电容接地,并一端接入芯片XALT1端口输入,调节芯片内部频率。
另外一端,高电平通过按钮接入单片机芯片RST端口,并接一个电容和一个电阻,降低电流冲击对芯片的影响。
时钟脉冲电路和复位电路如下图:图6 时钟脉冲电路和复位电路由此,就是由以上的键盘连接电路、显示屏连接电路、外部电路和芯片共同构成了整个设计的硬件结构部分。
4.系统的软件总体设计编程语言当中,汇编语言比较接近底层,编程效率高;C语言则语言灵活,在编写算法中会比较方便。
但是我们在学习中是学习的汇编语言,我们还是对于单片机的编程更加熟悉,尽管汇编语言在计算器中涉及到算法之中会比较繁琐,但是我们还是选择汇编语言。
4.1 键盘识别程序设计首先将P2口送0E0H,将P1口弦送1在读P1口的数据当P1口低四位全1时说明没有键按下;再扫描下一行,如果P1口不是全1,则说明有键按下,将P2口高四位和低四位组合成一个字节,放入R5寄存器中,通过延迟技术来进行按键去抖,判断按键是否松开,如松开则将得到的键值进行判断是哪一个键。
如果是数字键则首先将其对应的数字放入缓冲区30H,同时将键值放入结果缓冲区,并调用显示程序,显示键值。
在调用扫描键盘程序,如果再有键值输入则将原来的数值在显示屏高位依次移一位,将刚键入的数值放入最低位,并将原来的数值乘十加上刚键入的键值的数放入结果缓冲区,然后调用显示程序;如果是运算符,则记录运算符标志,加法用01H表示,剑法使用02H表示,乘法使用03H 表示,除法使用04H表示,并将结果缓冲区的数转移到中间结果红区,将结果缓冲区清零,等待输入运算数据,当按下等号时,根据记录的运算符标志,判断运算类型,执行运算将结果依次除以10取余数放入结果显示缓冲区,调用显示程序。
依次循环执行。
键盘识别程序流程图如下:图7 键盘识别程序流程图图8 键盘扫描程序流程图4.2 显示程序显示程序是将30H~37H单元设置成液晶显示屏显示缓冲区,分别存放各个位置的数据,40H单元作为输入数据的计数单元。