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

简易计算器的设计与制作

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

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

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

此项目设计以单片机为核心部件的计算器,采用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系统开发的背景和意义随着社会的发展,科学地额进步,人们的生活水平在逐步提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。

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

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

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

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

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

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

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位地址。

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

相关主题