简易计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
齐鲁理工学院
课程设计说明书
题目简易计算器设计
课程名称单片机原理及应用
二级学院机电工程学院
专业电气工程及其自动化
班级 2014级
学生姓名王军可
学号 201410530042
指导教师王艳玲
设计起止时间:2014 年12月5日至2014年12月16日
目录
摘要 (3)
1 设计思路 (4)
2 原件功能 (4)
2.1 运算模块AT89C51 (4)
2.2 AT89S51的引脚功能 (5)
2.3 AT89C51的基本操作 (6)
3 键盘输入 (7)
4 液晶模块简介 (8)
4.1 LCD1602简介及引脚功能 (8)
5 程序流程图与总原理图 (9)
5.1 流程图 (9)
5.2 仿真原理图 (10)
6 结论 (11)
参考文献: (11)
致谢 (12)
附录A 程序编写 (13)
附录B 仿真图与原件清单 (20)
简易计算器设计
摘要:近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。
本设计采用AT89C51芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加减乘除运算及LCD 显示。实例所设计的计算器是用LCD1602显示的,当然也可以用其他的器件显示,如LED 显示屏,这样就可以显示出更多的字符。科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。现在应用较广泛的是科学计算器,但在市场还是需要简易计算器,因为其价格低廉,设计简单,使用方便被广泛的运用于我们的日常生活之中。关键词:AT89C51LCD1602单片机LED
1 设计思路
本次课程设计的最终目的是要实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于寄存器所存的数据较少,很难实现多位数的四则运算,C语言确有着解决汇编语言的优点,所以选用C语言完成该程序的制作,首先运用单片机AT89C51扫描4*4矩阵键盘,从而实现按键的输入功能,键盘的输入是按照每行的电平扫描,并判断按下数字键之后是否有符号键,如果没有则在原数之后添加数字,如果按下符号接收符号后数据,并判断是否有等号键按下,如果按下,则调用运算函数和输出结果。
2 原件功能
2.1 运算模块AT89C51
AT89C51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以进行很快地实现运算功能,如图所示:
2.2 AT89S51的引脚功能
VCC:供电电压
GND:接地
P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可
吸收8TTL门电流。当P1口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,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口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0,P3.1串行输出口, P3.2、P3.3 外部中断,P3.4记时器0外部输入,P3.5记时器1外部输入,P3.6外部数据存储器写选通,P3.7外部数据存储器读选通,P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
PSEN 29 :该引是外部程序存储器的选通信号输出端。当AT89C51由外部程序存储器取指令或常数时,每个机器周期输出2个脉冲即两次有效。但访问外部数据存储器时,将不会有脉冲输出。
EA/Vpp 31 :外部访问允许端。当该引脚访问外部程序存储器时,应输入低电平。要使AT89S51只访问外部程序存储器(地址为0000H-FFFFH),这时该引脚必须保持低电平。对Flash存储器编程时,用于施加Vpp编程电压。
2.3 AT89C51的基本操作
AT89C51复位引脚RST/VP通过片内一个施密特触发器(抑制噪声作用)与片内复位电路相连,施密特触发器的输出在每一个机器周期由复位电路采样一次。当振荡电路工作,并且在RST引脚上加一个至少保持2个机器周期的高电平时,就能使AT89C51完成一次复位。
复位不影响RAM的内容。复位后,PC指向0000H单元,使单片机从起始地址0000H 单元开始重新执行程序。所以,当单片机运行出错或进入死循环时,可按复位键重新启动。