基于AT89C51单片机的计算器设计与仿真

这篇具有很好参考价值的文章主要介绍了基于AT89C51单片机的计算器设计与仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/87759134?spm=1001.2014.3001.5503
基于AT89C51单片机的计算器设计与仿真

源码获取
主要内容:
本次设计所提出的一种基于单片机技术的简易计算器的方案,能更好的解决计算机计算的问题,随着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集成电路中,使用起来十分方便。
基本要求:
1、计算器电路设计图;
2、计算器设计源程序;
3、keil运行源程序;
4、proteus中仿真;
5、运行结果分析。
主要参考资料:
[1] 谭浩强.C.程序设计.北京:清华大学出版社,2002
[2] 王为青,程国刚.单片机 Keil Cx51 应用技术开发,北京:人民邮电大学出版社,2007
[3] 马忠梅等.单片机的C语言应用程序设计.北京航空航天大学出版社,2003.
[4] 王晋凯.简简单单学通51单片机开发 [M].清华大学出版社,2014.
[5] 刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007.

摘 要
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新.在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。
计算机在人们的日常生活中是比较常见的电子产品之一.可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89c51单片机、7SEG-MPX2-CC数码管显示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及汇编语言编程,对其片资源及各个I/0端口的功能和基本用途的了解。掌握应用程序开发环境,常用的7SEG-MPX2-CC数码管显示器的使用方法和一般键盘的使用方法。
此设计是基于单片机技术的简易计算器的方案,本次设计所提出的一种基于单片机技术的简易计算器的方案,采用具有数据处理能力的中央处理器CPU,随机存储器ROM,多种I/0口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统-—单片机,配以汇编语言编写的执行程序,能更好的解决计算机计算的问题,随着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集成电路中,使用起来十分方便。

关 键 词:AT89C51;单片机技术;计算器;7SEG-MPX2-CC数码管

目录
目录
摘 要 1
目录 2
1 概述 4
1.1 设计思想 4
1.2 单片机概述 4
1.3 设计目的 5
1.4 设计要求 5
2 系统总体方案 6
2.1 方案的设计一 6
2.2 方案的设计二 6
2.3 整体设计 7
3 系统分析与设计 8
3.1 电路设计原理 8
3.2 键盘接口电路 8
3.3显示模块 10
3.4运算模块 10
4 系统程序设计 12
4.1 系统电路图 12
4.2 程序源代码 12
5 系统仿真和调试 20
5.1 Keil uVision与Porteus仿真软件 20
5.1.1 Keil uVision 20
5.1.2 Porteus 20
5.2 测试结果图 21
5.3 测试结果分析 22
6 心得与体会 23
参考文献 24

1 概述
1.1 设计思想
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。
计算机在人们的日常生活中是比较常见的电子产品之一.可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89c51单片机、7SEG-MPX2-CC数码管显示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及汇编语言编程,对其片资源及各个I/0端口的功能和基本用途的了解。掌握应用程序开发环境,常用的7SEG-MPX2-CC数码管显示器的使用方法和一般键盘的使用方法。
此设计是基于单片机技术的简易计算器的方案,本次设计所提出的一种基于单片机技术的简易计算器的方案,采用具有数据处理能力的中央处理器CPU,随机存储器ROM,多种I/0口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统-—单片机,配以汇编语言编写的执行程序,能更好的解决计算机计算的问题,随着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集成电路中,使用起来十分方便。
1.2 单片机概述
当今时代,是一个新技术层出不穷的时代。在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。过去习惯于传统电子领域的工程师、技术员正面临着全新的挑战,如不能在较短时间内学会单片机,势必会被时代所遗弃,只有勇敢地面对现实,挑战自我,加强学习,争取在较短的时间内将单片机技术融会贯通,才能跟上时代的步伐。
它所给人带来的方便也是不可否定的,它在一块芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
1.3 设计目的
通过本次课程设计,运用《单片机微型计算机原理及应用》所学到的知识及查询相关资料,完成简易计算器的设计,进一步提高单片机的系统设计和开发能力,达到理论知识与实践更好的结合,提高综合运用所学知识和设计能力的目的。
1.4 设计要求
要求设计一个单片机应用系统,利用keil和proteus软件完成系统软硬件的设计及模拟调试。实现八位数(可为带小数点)的加减乘除运算,通过按键输入十进制数据.利用六位数码管显示运算结果。并实现复位操作。由于要设计的是简单的计算器,可以进行四则运算,为了得到教好的显示效果,采用7SEG-MPX2-CC数码管显示数据和结果.、另外键盘包括数字键(O—9)、符号键(+、一、、/)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算机键盘来,当键入+、-、、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值后将显示键入的数值,按等号就会在7SEG-MPX2-CC上输出运算结果,执行程序:开机显示零,等待键入数值,当键入数字,通过7SEG-MPX2-CC显示出。

2 系统总体方案

2.1 方案的设计一
根据功能和指标要求,本系统选用MCS-51系列单片机AT89C51为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。用七段数码管作为显示电路,矩阵键盘作为输入电路。模块图如图2.1所示。
基于AT89C51单片机的计算器设计与仿真

图2.1 方案一模块图
2.2 方案的设计二
根据计算器的功能要求,选择AT89C51为主控机,通过扩展必要的外围接口电路,实现对计算器的设计。外部主要由4*4矩阵键盘和一个液晶显示屏构成,内部由一块AT89C51单片机构成。计算器电路包括四个部分:选用7SEG-MPX2-CC数码管作为显示部分,矩阵键盘作为输入部分,运算模块,单片机控制部分。模块图如图2.2所示。
基于AT89C51单片机的计算器设计与仿真

图2.2 方案二模块图
2.3 整体设计
根据简易计算器的功能和指标要求,本设计系统选用MCS-51系列单片机AT89C51为主控机。通过扩展必要的外围接口电路,实现对简易计算器的设计。计算器电路包括三个部分:显示电路、44键扫描电路、单片机微控制电路。具体设计如下:
(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用七段数码管显示数据和结果。
(2)另外键盘包括数字键(0~9)、符号键(+、一、×、÷)、清除键和等号键,故只需要16个按键即可。
(3)执行过程:开机显示零,等待键入数值,当键入数字,通过数码管显示出来,当键入+、一、
、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在数码管上输出运算结果。
(4)错误提示:当计算器执行过程中有错误时,会在数码管显示上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在数码管上提示溢出;当除数为0时,计算器会在七段数码管上提示错误。

3 系统分析与设计
3.1 电路设计原理
基于AT89C51单片机的计算器设计与仿真

图3.1 系统总流程图

3.2 键盘接口电路
计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/0口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条I/0线作为行线,四条I/0 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/0口的利用率。
矩阵键盘的工作原理:
计算器的键盘布局如图3.2所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。

基于AT89C51单片机的计算器设计与仿真

图3.2 矩阵键盘布局图
电路中采用4%4键盘作为输入电路模块的话,电路连线会比较简单,而且这种行列式键盘结构能有效地提高单片机系统中I/0口的利用率。但是在硬件电路设计的过程中,实验室没有提供矩阵键盘,所以我们将44的矩阵键盘换成了16个独立按键。采用独立按键的方式的话,会占用大量的I/0口资源,但是在这种情况下,编程会很简单。
矩阵键盘内部电路图如图3.3所示。

基于AT89C51单片机的计算器设计与仿真

图3.3 矩阵键盘内部电路图
3.3显示模块
本设计采用7SEG-MPX2-CC数码管显示屏来显示输出数据。7SEG-MPX2-CC数码管图如图3.4所示。
基于AT89C51单片机的计算器设计与仿真

图3.4 7SEG-MPX2-CC数码管图
3.4运算模块
MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/0等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行1/o口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。
单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机AT89C51作为计算器的主要功能部件,可以很快地实现运算功能。
管脚说明:
VCC:供电电压。
GND:接地。
P0 口: PO口为一个8位漏级开路双向I/0口,每脚可吸收8TTL门电流。当PO口的管脚第一次写1时,被定义为高阻输入。PO能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,PO口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/o口,PL口缓冲器能接收输出4 TTL门电流.P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/0口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口: P3口管脚是8个带内部上拉电阻的双向I/0口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2/INTO(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 TO(记时器О外部输入)
P3.5 T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持 RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在 SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN :外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET:当/EA端保持高电平时,此间内部程序存储器。在 FLASH编程期间,此引脚也用于施加 12V编程电源(VPP) 。
XTAL1 :反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。
4 系统程序设计
4.1 系统电路图
基于AT89C51单片机的计算器设计与仿真

图4.1 系统总电路图
4.2 程序源代码文章来源地址https://www.toymoban.com/news/detail-435407.html


```c
//头文件
#include <reg52.h>
#include <ctype.h>		//isdigit()函数
#include <stdlib.h>		//atol()函数
//宏定义
#define uint unsigned int
#define uchar unsigned char
#define ulint unsigned long
//位定义
sbit LS_WEA = P1^0;
sbit LS_WEB = P1^1;
sbit LS_WEC = P1^2;		//74HC138译码器位定义
sbit LED = P1^3;		//LED
sbit BUZZER = P1^4;		//蜂鸣器
uchar handle_x[9], handle_y[9];		//键盘返回字符存放数组,用于存放键盘返回的字符
uchar code display[] = {
   
		0x3f,  //  0
		0x06,  //  1
		0x5b,  //  2
		0x4f,  //  3
		0x66,  //  4
		0x6d,  

到了这里,关于基于AT89C51单片机的计算器设计与仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于AT89C51单片机的温度检测报警设计

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87777752?spm=1001.2014.3001.5503 源码获取 主要内容: 基于51单片机设计一个温度检测报警器,至少具有以下功能:温度的检测和超过设定值时的报警功能 基本要求: 1、功能齐全,要配有功能说明;

    2024年02月03日
    浏览(29)
  • 基于AT89C51单片机的交通灯设计

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87779238?spm=1001.2014.3001.5503 源码获取 主要内容: 在日常生活中,交通灯是一项必不可少的公共设施,可 以维护道路的畅通和交通的秩序。如若交通灯发生故障,那 么后果可想而知。因此,交通灯

    2024年02月08日
    浏览(18)
  • 基于AT89C51单片机的温度计设计

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87773445 源码获取 主要内容: 设计一个简易温度计;要求电路实现如下功能: 设计通过单片机和数码管、led灯等组成,可以显示温度,并且可以显示大于零度的温度和小于零度的温度,还可以超出

    2024年02月05日
    浏览(22)
  • 基于AT89C51单片机的简易计算机设计

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87715642?spm=1001.2014.3001.5503 源码获取 主要内容: 本设计是以单片机AT89C51为核心的简易计算器设计,要通过芯片AT89C51实现计算器程序运行来完成加、减、乘和除的简单计算功能。 基本要求: 1、采

    2024年02月08日
    浏览(27)
  • 基于AT89C51单片机的电子万年历系统

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87708258 源码获取 主要内容: 电子万年历系统以实时时钟芯片DS1302和AT89C52单片机为主要研究对象,着重进行51单片机控制系统的设计研究和如何读取DS1302内部时钟信息的研究。以及运用18B20进行实

    2024年02月09日
    浏览(27)
  • 基于AT89C51单片机的电子秒表设计与仿真

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87775018添加链接描述 源码获取 主要内容: 设计一个电子秒表,至少具有以下功能:开始/暂停、记录、复位等。设计方案主要分为实验的系统分析,具体的设计方案,以及最终的测试,最终完成实

    2024年02月16日
    浏览(27)
  • 基于AT89C51单片机的倒数计时器设计

    1.设计任务 利用AT89C51单片机为核心控制元件,设计一个简易的数字电压表,设计的系统实用性强、操作简单,实现了智能化、数字化。 本设计采用单片机为主控芯片,结合 周边 电路组成 LED 彩灯的 闪烁 控制系统器,用来控制 红色 的LED 闪烁 发光,实现 LED灯在倒计时结束后

    2024年02月03日
    浏览(30)
  • 基于AT89C51单片机的电子时钟设计与仿真

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87779867?spm=1001.2014.3001.5503 源码获取 主要内容: 使用DS1302芯片作为计时设备,用6个7段LED数码管或者LCD162作为显示设备,实现时钟功能; 基本要求: (1)可以分别设定小时、分钟和秒,复位后时

    2024年02月06日
    浏览(24)
  • 基于AT89C51单片机的电子琴设计与仿真

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87848430?spm=1001.2014.3001.5503 源码获取 主要内容: 设计一个简易的电子琴,至少具有可以弹奏并发出不同的音调。电子琴方案主要分为实验的系统分析,具体的实施方案,以及最终的实验检验,最终

    2024年02月07日
    浏览(25)
  • 基于AT89C51单片机的智能浇花系统设计

    目 录 摘 要 I ABSTRACT I 1 绪论 1 1.1 课题背景和意义 1 1.1.1选题背景 1 1.1.2研究意义 1 1.2 国内外发展现状及趋势 2 1.3研究主要内容 3 2 总体设计方案 5 2.1 浇灌系统设计的需求 5 2.2 总体设计方案选定 5 3 系统硬件设计 6 3.1 LCD1602显示接口线路 6 3.2 ADC0832简介 6 3.3 湿度传感器介绍 7

    2024年02月05日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包