单片机课程设计 简易计算器的设计

合集下载

单片机的简易计算器

单片机的简易计算器

单片机的简易计算器单片机简易计算器的设计与实现一、引言计算器是一种用于计算数学运算的工具,现在已经成为人们日常生活中必不可少的设备之一、在这个数字化的时代,我们经常需要进行简单的数学运算,如加、减、乘、除等。

为了满足人们的需求,我们可以使用单片机来设计和实现一个简易的计算器。

二、设计目标我们的设计目标是实现一个能够进行基本的加减乘除四则运算的简易计算器。

具体来说,我们希望计算器能够实现以下功能: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.测试并调试系统,确保计算结果的准确性。

七、总结通过使用单片机,我们成功地设计并实现了一个简易的计算器。

这个计算器不仅能够进行基本的加减乘除四则运算,还具备了简单的误操作处理能力。

在实际使用中,我们可以通过添加更多的功能和改进设计来进一步完善这个简易计算器。

单片机的简易计算器毕业设计

单片机的简易计算器毕业设计

单片机的简易计算器毕业设计简易计算器是一种基本、常见的电子设备,它能够对数字进行简单的加减乘除运算。

单片机作为一种小型、低功耗的微型计算机,非常适合用于设计和实现计算器的功能。

在本文中,我们将以单片机为基础,设计和实现一个简易计算器。

一、设计思路1.硬件设计:-使用单片机作为主控制器。

-接入键盘矩阵和显示器。

-使用LED灯作为指示灯,用于显示运算符和结果。

2.软件设计:-通过键盘输入数字和运算符。

-将输入的数字和运算符转换成相应的控制信号。

-进行运算,并将结果显示在屏幕上。

3.功能实现:-实现加法、减法、乘法和除法运算。

-提供清零、退格和等号等功能。

-支持小数和负数的输入和运算。

-提供错误提示功能,例如除数不能为零等。

二、具体实现1.硬件实现:-将键盘矩阵的行和列与单片机的IO口相连,通过扫描来检测按键的输入。

-将显示器与单片机的IO口相连,通过控制引脚来发送和接收数据。

-将LED灯与单片机的IO口相连,设置相应的引脚状态来显示不同的指示信号。

2.软件实现:-使用C语言编写程序,通过中断和轮询的方式,实现键盘输入的检测和数据的读取。

-将读取到的数据进行解析,并根据不同的按键进行相应的操作。

-根据输入的数字和运算符,进行相应的运算并输出结果。

3.功能实现:-加法、减法、乘法和除法运算可以通过相应的算法实现,例如加法可以通过循环和位运算来实现。

-清零功能可以将运算结果和输入的数字都清零,退格功能可以删除输入的最后一个数字或运算符。

-支持小数运算可以在运算过程中进行进位和进位操作,支持负数运算可以通过判断运算符来进行相应的处理。

-错误提示功能可以通过对输入的数据进行检查和判断来实现,例如判断除数是否为零。

三、总结通过上述的设计和实现,我们可以成功地设计和制作一个单片机的简易计算器。

通过这个计算器,用户可以进行简单的加减乘除运算,同时还具备清零、退格、小数和负数等功能。

这个计算器可以应用在日常生活中的计算场景,方便用户进行各种简单的运算操作。

51简易计算器课程设计

51简易计算器课程设计

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. 简易计算器程序设计与实现:将所学知识综合运用,设计并实现具备基本运算功能的简易计算器。

- 教材章节:第六章 综合应用实例教学内容根据课程目标进行科学性和系统性组织,制定详细的教学大纲,确保教学内容的安排和进度。

单片机简易计算器设计

单片机简易计算器设计

单片机简易计算器设计一、引言:计算器是一种用于进行数学运算的工具,可以提供基本的算术运算功能。

单片机是一种集成电路,具有微处理器、存储器、计数器和输入/输出接口等功能,适合用于设计和实现计算器。

本篇文章将介绍如何设计和实现一款基于单片机的简易计算器。

二、设计目标:本文设计的简易计算器具有以下功能:1.能够进行四则运算,包括加法、减法、乘法和除法;2.具有输入和输出功能,可以输入运算表达式,并输出计算结果;3.采用简单直观的按键输入方式,便于用户操作。

三、设计原理:1.系统框图:```_______________输入/输接口I______________\/_______________单片机芯(CPU______________```2.硬件设计:使用单片机来处理计算表达式和输出计算结果。

输入/输出接口IC负责处理用户输入和显示输出。

单片机芯片是整个计算器系统的核心,负责执行算术运算的逻辑。

3.软件设计:(1)初始化:设置单片机芯片工作环境,包括引脚配置、定时器设置等。

(2)输入处理:使用按键输入方式获取用户输入的数值和运算符,按下等号键时开始计算。

(3)运算处理:根据输入的数值和运算符进行相应的运算操作,得出计算结果。

(4)输出显示:将计算结果输出到显示装置上。

四、实现步骤:1.硬件实现:根据设计原理中的系统框图,采购和连接合适的输入/输出接口IC以及单片机芯片。

2.软件编程:(1)初始化:根据单片机芯片的型号和文档,编写初始化程序,包括引脚配置、定时器设置等。

(2)输入处理:编写输入处理程序,包括按键输入方式、数值和运算符的提取等。

(3)运算处理:编写运算处理程序,根据输入的数值和运算符,实现相应的运算逻辑。

(4)输出显示:编写输出显示程序,将计算结果输出到显示装置上。

3.实验验证:将硬件和软件进行调试和验证,确保计算器可以正常工作并满足设计目标。

4.优化改进:根据实验结果,对计算器进行优化和改进,提升计算器的性能和用户体验。

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

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

基于51单片机的简易计算器设计基于51单片机的简易计算器设计一、引言随着微电子技术和嵌入式技术的发展,越来越多的智能化设备被应用于日常生活中。

其中,基于51单片机的简易计算器设计具有广泛的应用价值。

本文将介绍如何使用51单片机设计一个简易计算器,实现加减乘除的基本运算功能。

二、设计方案1.硬件组成:本设计采用51单片机作为主控芯片,与键盘、显示器等外围设备相连。

键盘用于输入数字和运算符,显示器则用于显示运算结果。

2.软件设计:软件部分包括主程序和子程序。

主程序负责初始化硬件、读取键盘输入和显示运算结果。

子程序包括加减乘除的运算子程序,可根据输入的运算符和操作数进行相应的运算。

3.算法实现:在加减乘除的运算子程序中,采用基本的数学运算方法实现。

对于加法,直接将两个操作数相加;对于减法,将两个操作数相减;对于乘法,采用循环相乘的方法;对于除法,采用循环相除的方法。

三、实验结果在实验中,我们成功地使用51单片机设计了一个简易计算器,实现了加减乘除的基本运算功能。

在测试过程中,我们输入了不同的数字和运算符,得到了正确的运算结果。

同时,我们也测试了计算器的稳定性,发现其在连续运算时表现良好,没有出现明显的误差或故障。

四、结论基于51单片机的简易计算器设计具有简单易行、实用性强等优点。

通过实验测试,我们验证了其可行性和稳定性。

此外,该设计还可以根据需要进行扩展和优化,例如增加更多的运算功能、优化算法等。

未来,我们可以进一步研究如何提高计算器的运算速度和精度,以及如何将其应用于更多的实际应用场景中。

五、改进意见与展望1.增加更多的运算功能:例如实现括号、开方、指数等高级运算,满足更复杂的数学计算需求。

2.优化算法:针对现有的加减乘除运算算法进行优化,提高运算速度和精度。

例如采用更高效的除法算法,减少运算时间。

3.增加存储功能:在计算器中加入存储单元,使得用户可以在多个步骤之间进行数据传递和保存。

4.增强人机交互界面:优化显示器的显示效果,增加用户输入的便捷性,提高用户体验。

51单片机简易计算器设计

51单片机简易计算器设计

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(; // 按键处理}```五、总结通过以上的设计思路和示例代码,我们可以轻松地实现一个简易的计算器。

单片机课程设计简易计算器设计

单片机课程设计简易计算器设计
软件设计:编写程序代码,实现计算器的功能
调试与测试:对硬件和软件进行调试,确保计算器能够正常工作
制作报告:编写设计报告,包括需求分析、硬件设计、软件设计、调 试与测试等内容
Part Three
硬件设计
电路原理图设计
单片机:作为核心控制单元,负责接收输入信号、处理数据、输出结果 输入设备:键盘或触摸屏,用于输入数字和运算符号 显示设备:LED或LCD,用于显示计算结果 电源:提供稳定的电源电压,保证系统正常工作 连接线:将各个部件连接起来,实现信号传输和电源供应 保护电路:防止过压、过流、过热等异常情况对系统造成损害
成本:价格、开发成本、维护成本等
开发环境:开发工具、编程语言、开发 文档等
应用领域:计算器、智能家居、工业控 制等
兼容性:与其他硬件、软件的兼容性
技术支持:厂商技术支持、社区资源等
设计流程概述
需求分析:确定计算器的功能需求,如加减乘除、平方根等
硬件设计:选择合适的单片机型号,设计电路原理图,选择元器件
稳定性测试: 对集成后的系 统进行稳定性 测试,确保系 统在各种环境 下能够稳定运

安全性测试: 对集成后的系 统进行安全性 测试,确保系 统能够抵御各
种安全威胁
测试环境搭建
硬件环境:单片机、显示器、键盘、电源等 软件环境:单片机开发环境、测试软件等 测试工具:万用表、示波器、逻辑分析仪等 测试步骤:编写测试程序、执行测试程序、记录测试结果、分析测试结果等
功能测试与调试
测试方法:黑 盒测试、白盒 测试、灰盒测
试等
测试内容:输 入输出、功能 实现、性能指
标等
调试工具:调 试器、仿真器、 逻辑分析仪等
调试技巧:断 点设置、单步 执行、变量监

单片机课程设计计算器

单片机课程设计计算器

单片机课程设计 计算器一、课程目标知识目标:1. 学生能理解单片机的基本原理和功能,掌握计算器的设计流程。

2. 学生能运用所学知识,设计并实现一个具有基本运算功能的单片机计算器。

3. 学生了解并掌握单片机编程的基本语法和逻辑结构。

技能目标:1. 学生掌握使用单片机开发工具进行程序编写、调试和下载的方法。

2. 学生具备分析问题、设计算法和解决问题的能力,能运用单片机技术解决实际计算问题。

3. 学生能够通过小组合作,进行项目设计和实践,提高团队协作能力。

情感态度价值观目标:1. 学生培养对单片机技术及电子工程的兴趣,激发创新意识和探索精神。

2. 学生通过动手实践,体验成功解决问题的喜悦,增强自信心和自主学习能力。

3. 学生在学习过程中,树立正确的价值观,认识到科技发展对社会进步的重要性。

课程性质:本课程为实践性较强的课程,要求学生在理论学习的基础上,动手实践,完成单片机计算器的设计与制作。

学生特点:学生处于高年级阶段,已具备一定的电子技术基础和编程能力,具备独立思考和解决问题的能力。

教学要求:结合学生特点,注重理论与实践相结合,引导学生通过小组合作,完成课程任务,达到课程目标。

同时,关注学生的个性差异,提供个性化的辅导和支持。

在教学过程中,注重培养学生的创新能力、实践能力和团队协作能力,为后续学习打下坚实基础。

二、教学内容根据课程目标,教学内容分为以下三个部分:1. 理论知识学习:- 单片机原理与结构:讲解单片机的组成、工作原理及性能特点,对应教材第1章。

- 编程语言基础:介绍单片机编程的基本语法、逻辑结构和编程规范,对应教材第2章。

2. 实践技能培养:- 硬件设计与连接:学习如何选用合适的元器件,设计计算器硬件电路,对应教材第3章。

- 软件编程与调试:掌握单片机程序编写、调试和下载的方法,对应教材第4章。

3. 项目实践:- 计算器设计与实现:结合所学知识,分组进行计算器项目设计,包括硬件选型、电路设计、程序编写和调试等,对应教材第5章。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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单元作为输入数据的计数单元。

相关文档
最新文档