当前位置:文档之家› 基于单片机设计的计算器毕业论文

基于单片机设计的计算器毕业论文

基于单片机设计的计算器毕业论文
基于单片机设计的计算器毕业论文

南昌工程学院

毕业设计 (论文)

机械与电气工程学院(院)系电气工程及其自动化专业

毕业设计(论文)题目基于单片机设计的计算器(硬件)

学生姓名

班级

学号

指导教师

完成日期 2010 年 6 月 18 日

基于单片机设计的计算器(硬件)

The calculator based on the design of MCU (hardware)

总计毕业设计(论文) 34 页

表格 6 个

插图 18 幅

摘要

近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域。

作为微型机的一个主要分支,单片机在结构上的最大特点是把CPU、RAM和ROM存储器、定时器和多种I/O接口电路集成在一块超大规模集成电路芯片上。从它的组成和功能来看,一块单片机芯片其实就是一台计算机。

本次设计是采用MSC-51单片机来设计的六位数计算器, 采用C语言进行程序编写实现计算器功能。外接4X5的键盘,通过键盘扫描来完成输入数的控制,输出采用1602液晶显示,并设有清零键可随时完成计算与显示的清零。计算器将完成的0至99999整数的加/减/乘/除运算。

关键字:单片机AT89S52 1602液晶矩阵键盘 C语言

Abstract

In recent years, as computer penetration in the social field and large-scale development of integrated circuits, microcontroller applications are continually deepening, because of its powerful function, small size, low power consumption, cheap, reliable, easy to use, etc. therefore particularly suitable for systems with control of more and more widely used in automatic control, intelligent instruments, meters, data acquisition, military products and home appliances fields.

As one of the main branch of microcomputer, microcontroller in the structure of the biggest feature is the CPU, RAM and ROM memory, timer and multiple I / O interface circuit integrated on a VLSI chip. The composition and function from its point of view, a single chip is

actually a computer.

This design is the use of MSC-51 microcontroller to design the six-digit calculator, using C programming language to achieve calculator functions. 4X5external keyboard, the keyboard scan to finish by the number of control values and the 1602 output with human-type liquid crystal to achieve,and has cleared at any time to complete key calculation and display clear. Calculator to complete from 0 to 99999 plus / minus / multiply / divide.

Key words: MCU AT89S52; LCD1602; Matrix Keyboard; C language

目录

摘要 I

ABSTRACT II

第一章引言 1

1.1 选题的依据及课题的意义 1

1.2 研究概况及发展趋势综述 1

1.3 实验设计要求 2

1.4.总体设计思路 2

第二章设计方案论证与选择 3

2.1 控制部分的设计方案论证与选择 3

2.2 显示电路的设计方案论证与选择 4

2.3 单片机电源部分的设计方案论证与选择 6 2.4 键盘设计方案论证与选择 8

2.5 单片机复位电路的设计方案论证与选择 9 2.6 系统组成 10

第三章重要器件的知识介绍 11

3.1 单片机的知识介绍 11

3.1.1单片机功能特性 11

3.1.2单片机各引脚功能说明 11

3.1.3单片机时钟电路 13

3.1.4 LED提示电路 14

3.2 1602液晶显示资料 15

第四章计算器的软件编程 16

4.1 程序设计思想 16

4.2 4*5键盘扫描程序 17

4.3 1602液晶显示程序 18

第五章计算器使用说明 19

结语 20

参考文献 21

致谢 22

附录 23

第一章引言

单片机设计的计算器在人们的日常中是比较的常见的电子产品之一。其特点是携带方便与价格廉价,因此广泛运用于商业交易与生活实用中,可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计用单片机来设计一个六位数的计算器。

1.1 选题的依据及课题的意义

单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。

通过编程可加深对C语言的理解及51单片机系列的硬件、及其指令,还有从硬件上了解单片机是如何扩展外部电路的。如:这次用到了1602液晶,掌握了1602的硬件原理后我们可以使其与单片机相连,通过对单片机的控制,给1602发出指令或数据。通过这次毕业设计可以学到一种学习方法,对于一块陌生的芯片,我们可通过提供给的芯片资料,了解其运作,然后达到运用的目的。

1.2 研究概况及发展趋势综述

单片机设计的计算器有输入单元(按键)运算单元(MCU)显示单元(LCD)三大部分组成,键盘执行数据采集以及操作的输入,MCU按照固化好的程序运算出结果送入LCD显示。

早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL

i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。目前,高端的32位单片机主频已经超过300MHz

性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。

1.3实验设计要求

根据设计要求,设计一个计算器,预计所能达到功能如下

(1)该计算器能进行六位数的运算,即运算结果可从0到999999;

(2)能进行加减乘除4种运算,精确到小数点后三位;

(3)能对错误进行提示,比如被除数等于0,乘法运算结果大于999999等;

(4)含有清除单个最低位数据和全部输入数据的功能;

(5)能够实现加减乘除四则混合运算,能够实现连续计算,并能判断运算优先级;

(6)进行正负数运算;

1.4 总体设计思路

设计主要采用以下基本模块来实现,控制器模块,输入模块,输出模块和电源模块。通过对控制器进行编程,使其对输入模块的信号进行处理计算,然后通过输出模块反馈给使用者以计算结果。该系统的结构框图如下图所示

图1-1 系统组成方框图

第二章设计方案论证与选择

2.1 控制部分的设计方案论证与选择

方案一采用单片机AT89S52芯片

AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准 MCS-51指令系统及

80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

方案二采用单片机AT89C52芯片

AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。

综上所述,AT89C51不支持ISP,只能采用昂贵的编程器来下程序.AT89S52支持ISP,可采用并口,用下载线,即可下程序,因此用AT89S52作为控制器,不仅功能易于实现,并且有其成本低、技术成熟和功耗小等优点,因此我们采用方案一。

2.2 显示电路的设计方案论证与选择

方案一采用LCD 1602型液晶显示

(一)基本特性

a、显示特性

· 单5V电源电压,低功耗、长寿命、高可靠性

· 内置192种字符(160个5

7点阵和32个5

10点阵字符)

· 显示方式:SIN、半透、正显

· 驱动方式:1/16DUTY,1/5BIAS

· 视角方向:6点

· 背光方式:底部LED

· 通讯方式:4位或8位并口可选

· 标准的接口特性:适配MC51和M6800系列MPU的操作时序。

b、物理特性如表2-1所示

表2-1 物理特性

外形尺寸80*36*14 单位可视范围

64.6(w)

16.0(H)

mm 显示容量16字符二行

点尺寸

0.55

0.75

mm 点间距0.08 mm (二)接口定义

表 2-2接口定义

管脚号符

功能

1 VSS 电源地

2 VDD 电源电压(+5V)

3 V0 LCD驱动电压(可调)

4 RS 寄存器选择输入端,输入MPU选择模块内部寄存器类型信号RS=0当MPU 进行写模块操作,指向指令寄存器

当MPU进行读操作,指向地址计数器;RS=1,无论MPU是读操作还是写操作,均指向数据寄存器

5 R/W 读写控制输入端,输入MPU选择读/写操作信号:

R/W=0 读操作;R/W=1 写操作

6 E

使能信号输入端,入MPU 选择读/写操作使能信号; 读操作时,高电平有效;写操作时,下降沿有效

7 DB0 数据输入/输出口,MPU 与模块之间的数据传送通道 4位通讯 方式时, 不使用 DB0~7

8 DB1 数据输入/输出口,MPU 与模块之间的数据传送通道 9

DB2 数据输入/输出口,MPU 与模块之间的数据传送通道

10 DB3 数据输入/输出口,MPU 与模块之间的数据传送通道 11 DB4 数据输入/输出口,MPU 与模块之间的数据传送通道 12 DB5 数据输入/输出口,MPU 与模块之间的数据传送通道 13 DB6 数据输入/输出口,MPU 与模块之间的数据传送通道 14 DB7 数据输入/输出口,MPU 与模块之间的数据传送通道 15 A

背光灯正极

16 K 背光灯负极

LCD 1602液晶有16个引脚,它能显示32个字符,且硬件电路设计简单,显示美观。

LCD 1602与单片机的接口电路如图2-1所示

图2-1LCD 1602与单片机接口电路

方案二采用汉字图形点阵液晶显示器RT12864M显示方案

RT12864M汉字图形点阵液晶显示模块,可显示汉字及图形。供电电源为

3.3V~+5V(内置升压电路,无需负压),能采用并行和串行两种通信方式。并有光标显示、画面移位、自定义字符、睡眠模式等功能。其与单片机的接口电路如图2-2所示

图2-2 12864与单片机的接口电路

综上所叙,LCD 1602液晶的设计简单,且能满足设计要求,故我们选择LCD 1602液晶作为显示部分。

2.3 单片机电源部分的设计方案论证与选择

方案一用固定式三端稳压器7805

三端稳压集成电路7805只有三条引脚输出,分别是输入端、接地端和输出端。它的样子象是普通的三极管。

用7805组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。

常见78系列的输入输出压差为7V,所以正常范围内12V是7805的输入电压上限。当电压再高时,虽然也可以继续稳压,但输出电流能力将受到很大影响。因此这里使用9V电池作为电源。

如图2-3,7805系列稳压器输出固定的正电压5V,输入端接电容C1可以进一步滤除纹波,输出端接电容C2能改变负载的瞬态影响,使电路稳定工作C1、C2最好采用漏电流小的钽电容。如果采用电解电容,电容要比图中数值增加10倍。

图2-3 固定式三端稳压器

方案二用7805加一些外围器件

虽然7805三端集成稳压管内部有过流、过热和安全区的保护电路,但其输出仍有可能发生过压的危险。因此本电路加了过压保护电路,电路如图2-4所示,该电路由稳压管VD3、电阻R3和晶闸管VS组成。

图2-4可扩流过压保护5V稳压电源

综上所述,方案一电路简单,而且已符合本次设计的要求,第二种方案所用元件较多,性价比不高,所以选择方案一。

2.4键盘设计方案论证与选择

方案一通过PS2协义,用键盘同单片机相接,从而实现单片机与键盘通信

现在PC机广泛采用的PS/2接口为miniDIN 6引脚的连接器。其引脚图为1—数据线(DATA);2—未用;3—电源地(GND);4—电源(+5 V);5—时钟(CLK);6—未用。其电路如图2-5所示

图2-5键盘与单片机接口图

由1-7图可知,使用键盘硬件结构比较简单,但键盘的体积太大。

方案二独立键盘

独立键盘为一端接地,另一端接I/O口,并且要接上拉电阻。这种键盘的硬件都很容易实现,但每一个按键就要用一个I/O口,非常的浪费单片机的I/O口资源。

方案三自制编码键盘

如图2-6是15个按键的编码键盘所示,这种键盘有编程简单,占用资源少,但其硬件比较复杂,要用很多的二极管,不是很理想。

图2-6 自制15个按键的编码键盘电路图

方案四 4*5矩阵式键盘

其矩阵式键盘电路图如图2-7所示

图2-7 4*5矩阵式键盘电路图

综上所述,矩阵式键盘的硬件简单,使用的I/O口也不多,而且这种键盘的编程方法已很成熟。所以本次键盘部分采用这种矩阵式键盘。

2.5单片机复位电路的设计方案论证与选择

复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。

RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,若使用频率为11.0592MHz的晶振,则复位信号持续时间应超过4

s才能完成复位操作。

方案一自动上电复位电路

通过外部复位电路的RC电路充放电来实现的。

方案二手动按键复位电路

按键电平复位是通过使复位端经电阻与VCC电源接通而实现的。为了保证复位信号

持续时间超过4

s,从而实现复位功能,故选择电容为10

F,R2的电阻为10k。

其复位电路如下图2-8

图2-8 复位电路

综上所述,自动复位需去电再通电才能复位,而手动复位电路可以随时复位,尤其是程序跑飞时,只需按下键就可以复位。因此选择手动按键复位电路作为单片机复位电路。

2.6 系统组成

经过方案最终论证与比较,最终确定的系统组成框图如图2-9 所示。其中单片机作为主控设备对采集输入信号后并进行处理,最后通过输出设备输出给使用者。该系统的结构框图如图2-9所示

图2-9

第三章重要器件的知识介绍

3.1 单片机的知识介绍

ATMEL公司生产的AT89S52型单片机是方便程序下载程序且好用,而且能够满足本设计的要求。

3.1.1单片机功能特性

(1)与MCS-51单片机产品兼容

(2)8K字节在系统可编程Flash存储器

(3)1000次擦写周期

(4)全静态操作:0Hz~33MHz

(5)三级加密程序存储器

(6)32个可编程I/O口线

(7)三个16位定时器/计数器八个中断源

(8)全双工UART串行通道

(9)低功耗空闲和掉电模式

(10)掉电后中断可唤醒

(11)看门狗定时器

(12)双数据指针

3.1.2 单片机各引脚功能说明

AT89S52的功能引脚如图3-1所示

图3-1 AT89S52的引脚图

VCC:供电电压。

GND:接地。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

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

XTAL2:来自反向振荡器的输出。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被

外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89S52的一些特殊功能口,如表3-1所示

表3-1 AT89S52的一些特殊功能口

相关主题
文本预览
相关文档 最新文档