当前位置:文档之家› 简易计算器的设计与制作

简易计算器的设计与制作

电信学院毕业设计(说明书)毕业设计(说明书)题目专业:应用电子技术班级:学号:学生姓名:校外指导教师:俞海云校内指导教师:李翠凤二零一五年四月简易计算器的设计与制作摘要:近十几年,单片机技术发展的很快,其中电子产品的更新速度迅猛。

计算器是我们日常生活中比较常见的电子产品之一。

在很多领域的数据处理中要用到数学运算,作为计算机自动处理系统更显得重要。

此项目设计以单片机为核心部件的计算器,采用4*4矩阵式键盘,16个键依次对应0—9、“+”、“-”、“*”、“/”、“=”和清除键。

使用单片机最小应用系统1模块,简单方便。

采用LCD1602A作显示。

本次设计是以STC89C52单片机为核心器件,外围辅助器件为LCD显示器、控制按键来设计的计算器。

利用此设计熟悉单片机微控制器及C语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。

掌握Microsoft Visual C++ 6.0应用程序开发环境,常用的LCD显示器的使用方法和一般键盘的使用方法。

本计算器系统简单,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。

关键词:STC89C52;LCD1602;计算器;矩阵键盘目录1. 绪论 (2)1.1 系统开发的背景和意义 (2)1.2 设计目的 (2)1.3 设计任务 (2)2. 方案论证与比较 (3)2.1 主机方案设计与选择 (3)2.1.1 方案一:采用FPGA控制 (3)2.1.2 方案二:采用STC9C52单片机 (3)2.2 从机方案设计与选择 (4)2.2.1 方案一:采用8255A芯片控制采集和数码管显示 (4)2.2.2 方案二:采用液晶LCD1602做为显示 (4)3. 系统设计及说明 (5)3.1 系统总框图 (5)3.2 元件介绍 (5)4. 系统硬件设计 (11)4.1 外接键盘电路设计 (11)4.2 显示电路设计 (11)5. 系统程序设计 (12)5.1 键盘扫描程序设计 (12)5.2 显示模块的程序设计 (13)5.3 运算程序设计 (14)6. 调试 (15)6.1 硬件调试 (15)6.2 软件的调试 (16)结论 (17)致谢 (18)参考文献 (19)附录A 元件清单 (20)附录B 原理图 (21)附录C PCB图 (22)附录D 实物图 (23)绪论1.1系统开发的背景和意义随着社会的发展,科学地额进步,人们的生活水平在逐步提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。

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

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

充分利用已有的软件和硬件条件设计出更出色的电子产品之一。

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

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

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

1.2设计目的通过本次课题设计,应用《单片机应用基础》、《计算机应用基础》等所学相关知识及查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。

通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。

1.3设计任务在本次课程设计中,主要完成如下方面的设计任务:(1)简要阐述单片机技术发展的国内外现状及LED动态显示和矩阵键盘基本原理;(2)掌握MCS-51系列某种产品(例如8051)的最小电路及外围扩展电路的设计方法;(3)了解单片机数据转换功能及工作过程;(4)完成主要功能模块的硬件电路设计及必要的参数确定;(5)用protel软件完成原理电路图的绘制。

2.方案论证与比较2.1主机方案设计与选择2.1.1方案一:采用FPGA控制FPGA是一种高密度的可编程逻辑器件,自从XiLin公司1985年崔出第一片FPGAD以来,FPGA的集成密度和性能提高好呢快,其集成密度高达500万门/片以上,系统性能可达200MHz。

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

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

2.1.2方案二:采用STC9C52单片机单片机是单片微型机的简称,即MicroControlUnit(MCU)。

通常由单块集成电路组成,内部包含有计算机的基本功能部件:中央处理器CPU、存储器和I/O 几口电路等。

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

单片机广泛用于智能产品,智能仪表、测控技术、智能接口等,具有操作简单,实用方便,价格便宜等优点,而其中有STC89C52以MCS-51位内核,是经典的单片机代表。

同时它的功耗低,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适合于常规编程器,拥有8位CPU,使其与众多嵌入式控制应用系统能够灵活结合。

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

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

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

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

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

方案二符合了轻便、成本低、使用简单等优点,因此我们选择方案二。

2.2从机方案设计与选择2.2.1方案一:采用8255A芯片控制采集和数码管显示采用8255A为辅助扩展芯片(控制键盘信号采集以及数码管显示),采用普通数码管显示。

由于此方案采用了扩展芯片,程序设计较为复杂。

而且采用普通数码管显示,并不能显示“+”、“-”“*”“/”等运算符号。

同时数码管显示编程实际编写比较复杂,参数多容易混乱。

2.2.2方案二:采用液晶LCD1602做为显示LCD1602已经使用的很普遍了,LCD1602采用标准的14脚(无背光)或者16脚(带背光)接口,1602液晶模块的读写操作、屏幕和光标操作都是通过指令编程来实现的。

市面上的字符液晶大多数是基于HD44780液晶芯片的,控制原理完全相同的,因此HD44780写的液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以用于大部分的液晶,也包括1602。

在对液晶模块初始化的过程中我们需要先设置其显示模式,在液晶模块显示字符光标是自动右移的,无需人工干预。

每次输入指令前都要判断液晶模块是否处于忙的状态。

1602液晶模块内部的字符发生储存器(CGROM)已经储存了160个不同的点阵字符图形。

同时1602的价格便宜,供货商多,基本的电子商店都能买到。

省事省力,体积也小。

适合于这个方案。

因此我们选择整体的方案二。

3.系统设计及说明3.1系统总框图图3.1方案二系统框图3.2元件介绍STC89C52:STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。

STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。

具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

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

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

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

最高运作频率35MHz,6T/12T可选。

参数特点:1. 增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[2]2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机)3.工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512 字节RAM6. 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。

7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片8. 具有EEPROM 功能9. 共3 个16 位定时器/计数器。

即定时器T0、T1、T210.外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒11. 通用异步串行口(UART),还可用定时器软件实现多个UART12. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)STC89C52RC引脚功能说明:VCC(40引脚):电源电压 VSS(20引脚):接地 P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。

作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。

在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。

此时,P0口内部上拉电阻有效。

在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。

验证时,要求外接上拉电阻。

P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。

P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。

对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。

P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流(I/L)。

此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见下表3-2-1:在对Flash ROM编程和程序校验时,P1接收低8位地址。

相关主题