基于单片机的电子的计算器.docx

上传人:b****5 文档编号:8204856 上传时间:2023-01-29 格式:DOCX 页数:42 大小:1.38MB
下载 相关 举报
基于单片机的电子的计算器.docx_第1页
第1页 / 共42页
基于单片机的电子的计算器.docx_第2页
第2页 / 共42页
基于单片机的电子的计算器.docx_第3页
第3页 / 共42页
基于单片机的电子的计算器.docx_第4页
第4页 / 共42页
基于单片机的电子的计算器.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

基于单片机的电子的计算器.docx

《基于单片机的电子的计算器.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子的计算器.docx(42页珍藏版)》请在冰豆网上搜索。

基于单片机的电子的计算器.docx

基于单片机的电子的计算器

目录

1前言1

1.1系统开发背景1

1.2系统开发意义1

1.3设计目的1

2方案2

2.1芯片2

2.2输入模块3

2.2.1方案构思3

2.2.2显示模块4

2.2.3方案构思4

2.2.4方案比较与选择5

3系统硬件设计及说明5

3.1系统组成及总体框图5

3.1.1元件简介5

3.1.2AT89S52特点6

3.1.374LS08简要说明11

3.1.4LCD1602液晶显示屏12

4设计原理分析14

4.1设计方案的确定15

4.2计算器硬件方案及硬件资源分配15

4.2.1硬件资源分配15

4.3键盘电路的设计16

4.4显示电路的设计17

5计算器的软件设计18

5.1计算器的软件规划18

5.2键盘扫描的程序设计18

5.3显示模块的程序设计20

5.4主程序的设计21

5.5软件的可靠性设计21

结束语22

致谢23

附录一实物图24

附录二软件程序26

基于单片机的电子的计算器

摘要:

简易计算器是一种非常广泛日常工具,对现代社会越来越流行。

它可以进行一些简易的计算。

本系统可进行简易的计算信息,还具有时间校准等功能。

该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

本系统硬件部分由AT89S52单片机、LCD1602液晶屏、键盘、指示灯系统等部分构成。

软件部分在keil环境下用C51语言编写,包括简易计算显示等。

关键字:

AT89S52;液晶屏LCD1602;矩阵键盘

1前言

1.1系统开发背景

随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。

电子产品的更新速度快就不足惊奇了。

计算器在人们的日常中是比较的常见的电子产品之一。

如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好的为各个行业服务,成了如今电子领域重要的研究课题。

系统开发意义

今天,人们的日常生活中已经离不开计算器了,社会的各个角落都有它的身影,比如商店,办公室,学校……。

因此设计一款简单实用的计算器会有很大的实际意义。

设计目的

本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。

通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。

1、对字符液晶显示模块的工作原理,如初始化、清屏、显示、调用及外特性有较清楚的认识,并会使用LCD(液晶显示模块)实现计算结果的显示;掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以及利用单片机对液晶模块的驱动和操作;

2、在充分分析内部逻辑的概念,进行软件和调试,学会使用,并能够以其为平台设计出具有四则运算能力简易计算器的硬件电路和软件程序。

方案

芯片

本设计中的芯片可以采用两种方案,一种是以FPGA为核心处理芯片,配备相应的外设;另一种是以AT89S52处理器,配备相应的外设。

方案一:

采用FPGA控制

FPGA是一种高密度的可编程逻辑器件,自从Xilinx公司1985年推出第一片FPGA以来,FPGA的集成密度和性能提高很快,其集成密度最高达500万门/片以上,系统性能可达200MHz。

由于FPGA器件集成密度高,方便易用,开发和上市周期短,在数字设计和电子生产中得到迅速普及和应用,并一度在高密度的可编程逻辑器件领域中独占鳌头。

但是基于SRAM编程的FPGA,其编程信息需存放在外部存储器上,需外部存储器芯片,且使用方法复杂,保密性差,而其对于一个简单的计算器而言,使用FPGA有点大材小用,成本太高。

方案二:

采用AT89S52

单片机是单片微型机的简称,故又称为微控制器MCU(MicroControlUnit)。

通常由单块集成电路芯片组成,内部包含有计算机的基本功能部件:

中央处理器CPU,存储器和I/O接口电路等。

因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

单片机广泛应用于智能产品,智能仪表,测控技术,智能接口等,具有操作简单、实用方便、价格便宜等优点。

其中AT89S52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器。

该器件与工业标准的MCS-51指令集和输出管脚相兼容;且是单片机中最典型的代表,应用于各种控制领域。

方案比较与选择:

通过以上两种方案的论证和比较,从设计的实用性、方便性和成本等诸多方面考虑,最终选择了以AT89S52单片机作为中央处理单元进行计算器的设计,这样设计能够实现对九位整数加、减、乘、除的四则运算。

输入模块

1.1.1方案构思

方案一:

采用独立式按键作为输入模块

独立式按键输入模块,其特点是:

直接用I/O口构成单个按键电路,接口电路配置灵活、按键识别和软件结构简单;但是当键数较多时,占用I/O口较多,比较浪费资源。

其原理图如图1-2-1所示。

图2.2.1独立的功能按键

方案二:

采用矩阵式键盘作为输入模块

矩阵式按键输入模块,其特点是:

电路和软件稍复杂,但相比之下,当键数越多时,越节约I/O口,比较节省资源。

其原理图如图2-2-2所示。

图2.2.2矩阵键盘输入

方案比较与选择

本设计中的输入模块使用的是矩阵键盘输入。

键盘输入预置用于计算,按键较多。

若是采用独立按键,需频繁按键,为软件设计增加负担,且操作界面不友好;若是采用矩阵式按键,可以方便地输入一个数值,使操作界面更具有人性化,且节约了宝贵的I/O口资源。

通过对比,故采用方案二作为系统输入模块。

显示模块

方案构思

方案一:

采用LED数码管静态显示

采用LED数码管的静态显示,其特点是:

其亮度较高;这种显示方式接口,编程容易且管理简单;不足的是,占用的I/O的线资源较多。

如果采用单片机或CPLD/FPGA来控制的话,势必存在浪费I/O口资源的问题。

如图1-3-1所示。

图2.3.14位数码管静态显示

方案二:

采用LED数码管动态显示

采用LED数码管的动态显示,其特点是:

其亮度比静态显示的亮度要差一些;但其电路比较简单,适合于显示位数较多的情况。

如图1-3-2所示。

图2.3.24位数码管的动态显示

方案三:

采用LCD1602液晶显示

采用LCD1602液晶显示,其特点是:

可以调节其背光亮度,这种显示方式接口,编程虽然有些麻烦,但管理较方便,占用的I/O口资源线也不多。

方案比较与选择

本设计中的显示模块使用的是LCD1602液晶显示。

在计算器运算中,需显示的数字、符号较多,按很据个方面的特点,而后可以发现LCD液晶显示,虽然在价格上的确是稍贵于LED数码管;但数码管在硬件设计电路中,会因线太多、线路复杂而过于繁琐,则舍弃LED数码管,选择LCD液晶显示。

通过对比,故采用方案三作为系统显示模块。

系统硬件设计及说明

系统组成及总体框图

图3.1系统组成及总体框图

元件简介

AT89S52特点

图3.2.1-1单片机AT89S52

1、主要性能:

•8031CPU与MCS-51兼容

  •8K字节可编程FLASH存储器(寿命:

1000写/擦循环)

  •全静态工作:

0Hz-33MHz

  •三级加密程序存储器

  •128*8位内部RAM

  •32条可编程I/O线

  •三个16位定时器/计数器

  •八个中断源

  •全双工UART串行通道

•低功耗的闲置和掉电模式

•掉电后中断可唤醒

•看门狗定时器

•双数据指针

•掉电标识符

•片内振荡器和时钟电路

管脚说明:

  VCC:

供电电压。

GND:

接地。

2、AT89S52的功能特性

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

此外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8位微控制器8K字节在系统可编程Flash。

同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

3、AT89S52引脚功能介绍

AT89S52单片机为40引脚芯片,见图3.2.1-2。

图3.2.1-2AT89S52引脚图

(1)口线:

P0、P1、P2、P3共四个八位口。

P0口:

P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

  当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0不具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

  此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。

  在flash编程和校验时,P1口接收低8位地址字节。

  引脚号第二功能:

  P1.0T2(定时器/计数器T2的外部计数输入),时钟输出

  P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

  P1.5MOSI(在系统编程用)

  P1.6MISO(在系统编程用)

  P1.7SCK(在系统编程用)

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

  P3口亦作为AT89S52特殊功能(第二功能)使用,如表3.2.1所示。

表3.2.1P3口管脚备选功能

端口引脚

第二功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

/INT0(外部中断0)

P3.3

/INT1(外部中断1)

P3.4

T0(记时器0外部输入)

P3.5

T1(记时器1外部输入)

P3.6

/WR(外部数据存储器写选通)

P3.7

/RD(外部数据存储器读选通)

在flash编程和校验时,P3口也接收一些控制信号。

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

(2)其他引脚说明:

RST:

复位输入。

晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。

看门狗计时完成后,RST脚输出96个晶振周期的高电平。

特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。

DISRTO默认状态下,复位高电平有效。

ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。

FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

XTAL1,XTAL2接石英晶体振荡器。

如图3.2.1-3所示外接晶体引脚图。

图3.2.1-3晶振外接结构引脚图

XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。

内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。

晶振的频率可以在1MHz-24MHz内选择,在本设计电路中选用了12MHz。

电容取20PF左右。

机器周期=12×时间周期,如12MHz的机器周期为1微秒。

控制或复位引脚

RESET此脚为高电平时(约2个机器周期)可将单片机复位。

RST/VPD——当出现两个机器周期高电平时,单片机复位。

复位后,P0~P3输出高电平;SP寄存器为07H;其它寄存器全部清0;不影响RAM状态。

如图3.2.1-4所示。

图3.2.1-4按键电平复位

 AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。

(3)AT89S52的编程方法

编程前,须按编程模式表设置好地址、数据及控制信号;顺序如下:

①在地址线上加上要编程单元的地址信号。

②在数据线上加上要写入的数据字节。

③激活相应的控制信号。

④将EA/Vpp端加上+12V编程电压。

⑤每对Flash存储阵列写入一个字节或每写入一个程序机密位,加上一个ALE/PROG编程脉冲。

每个字节写入周期是自身定时的,大多数约为50us。

改变编程单元的地址和写入的数据,重复①—⑤步骤,直到全部文件编程结束。

单片机的现状及发展方向:

单片机是为了工业控制需要满足而诞生的,是自动控制系统的核心部件,因而也主要用于工业控制、智能化仪器仪表、家用电器中。

它具有体积小,功能多、价格低、使用方便、系统设计灵活等优点,应用领域不断扩大,除了工业控制,智能化仪表,通讯,家用电器外,在智能化高档电子玩具产品中也大量采用单片机芯片作为核心控制部件。

由于单片机主要面向工业控制,工作环境比较恶劣,入高温,强电磁干扰,甚至含有腐蚀性气体,在太空中工作的单片机控制系统,还必须具有抗辐射能力,这决定了单片机CPU于通用微机CPU具有不同的技术特征和发展方向:

●可靠性高;

●控制功能往往很强,数值计算交叉;

●指令系统比通用微处理器慢的多;

●X系列芯片取代;

●抗干扰性强,工作温度范围宽。

74LS08简要说明

74LS08为四组2输入端与门(正逻辑),其主要电特性的典型值如下表3.2.2所示:

􀩟表3.2.274LS08主要电特性的典型值

型号

tPLH

tphl

PD

74LS08

8ns

10ns

17mW

74LS08逻辑图如下图3.2.2:

图3.2.274LS08逻辑图

引出端符号

1A-4A输入端

1B-4B输入端

1Y-4Y输出端

74LS08功能表如下表3.2.3所示:

表3.2.374LS08功能表(Y=AB)

Inputs

Output

A

B

Y

L

L

H

H

L

H

L

H

L

L

L

H

极限值:

电源电压…………7V

输入电压…………7V

A-B间电压………5.5V

输出截止态电压………7V

工作环境温度………0~70℃

存储温度…………-65~150℃

推荐工作条件如表2.2.4所示:

表2.2.4推荐工作条件

74LS08

最小

额定

最大

单位

电源电压VCC

4.75

5

5.25

V

输入高电平电压ViH

2

V

输入低电平电压ViL

0.8

V

输出高电平电流IOH

-400

μA

输出低电平电流IOL

8

mA

静态特性(TA为工作环境温度范围)如表2.2.5所示:

表2.2.5静态特性

参数

测试条件【1】

最小

最大

单位

VIK输入嵌位电压

Vcc=最小

-1.5

V

VOH输出高电平电压

Vcc=最小,VIH=2V,IOH=最大

2.7

V

VOL输出低电平电压

Vcc=最小,VIL=最大,IOL=最大

0.5

V

II最大输入电压时输入电流

Vcc=最大

0.1

mA

IIH输入高电平电流

Vcc=最大

20

uA

IIL输入低电平电流

Vcc=最大

mA

IOS输出短路电流

Vcc=最大

-20

-100

mA

ICCH输出高电平时电源电流

Vcc=最大

4.8

mA

ICCL输出低电平时电源电流

Vcc=最大

8.8

mA

注[1]:

测试条件中的“最小”和“最大”用推荐工作条件中的相应值。

动态特性(TA=25℃)如表2.2.6所示:

表2.2.6动态特性

参数

测试条件

最大

单位

tPLH输出由低到高传输延迟时间

Vcc=5V,CL=15Pf,RL=2KΩ

15

ns

tPHL输出由高到低传输延迟时间

20

ns

LCD1602液晶显示屏

1、应用简介

模块内部自带字符发生存储器(CGROM),字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是(41H),显示时模块把代码41H发给液晶模块,我们就能在液晶上看到字母“A”。

1602液晶模块内部的控制器共有11条控制指令,丰富的指令可以完成液晶的时序控制、工作方式式设置和数据显示等。

采用的LCD1602液晶模块是标准16针插座,接口电路如图3.2.3所示:

关于LCD1602的详细资料见表3.2.3-1和表3.2.3-2。

图3.2.3LCD接口电路

表3.2.3-1LCD1602引脚说明

第1脚

VSS为地电源

第2脚

VDD接5V正电源

第3脚

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚

RS为寄存器选择,高电平选择数据寄存器、低电平选择指令寄存器。

第5脚

RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时(00)可以写入指令或者显示地址;

当RS为低电平RW为高电平时(01)可以读入忙信号;

当RS为高电平RW为低电平时(10)可以写入数据。

第6脚

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚

D0~D7为8位双向数据线。

第15~16脚

背光阳极和背光阴极。

表3.2.3-2LCD1602指令表

指令1

清显示指令码01H,光标复位到地址00H位置;

指令2

光标复位指令码02H,光标返回到地址00H位置;

指令3

光标和显示模式设置

I/D位→光标移动方向,高电平右移,低电平左移;

S位→屏幕上所有文字是否左移或者右移,高电平有效,低电平无效;

指令4

显示开关控制

D位→控制整体显示的开与关,高电平表示开显示,低电平表示关显示;

C位→控制光标的开与关,高电平表示有光标,低电平表示无光标;

B位→控制光标是否闪烁,高电平闪烁,低电平不闪烁;

指令5

光标或显示移位

S/C位→高电平时移动显示的文字,低电平时移动光标

指令6

功能命令设置

DL位---高电平时为4位数据总线,低电平时为8位总线;

N—位低电平时为单行显示,高电平时为双行显示;

F—位低电平时显示5x7的点阵字符,高电平时为5x10的点阵字符;

指令7

字符发生器RAM地址设置

指令8

DDRAM地址设置

指令9

读忙信号和光标地址

BF位→为忙标志位,高电平表示忙,此时模块不能接收命令或者数据

指令10

写数据

指令11

读数据

2、LCD的特点:

(1)低压微功耗;

(2)平板型结构;

(3)被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳);

(4)显示信息量大(因为像素可以做得很小);

(5)易于彩色化(在色谱上可以非常准确的复现);

(6)无电磁辐射(对人体安全,利于信息保密);

(7)长寿命(这种器件几乎没有什么劣化问题,因此寿命极长,但是液晶背光寿命有限,不过背光部分可以更换)。

设计原理分析

设计方案的确定

本设计需要使用LCD液晶显示屏和编码键盘。

故选择静态显示和用编码键盘。

使用LCD液晶显示屏显示运算结果。

主程序进行初始化,其他的程序选择模块式的方式。

首先对每个模块进行调试,当模块调试成功

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1